summaryrefslogtreecommitdiff
path: root/vp8/decoder/decodframe.c
diff options
context:
space:
mode:
authorJim Bankoski <jimbankoski@google.com>2012-02-13 08:21:24 -0800
committerJim Bankoski <jimbankoski@google.com>2012-02-13 12:31:12 -0800
commitaf8f1928d1ca6df5ae6961acebd524da585fa8ab (patch)
tree5b56a12f8ad6232628855509462f2a99365f6ca2 /vp8/decoder/decodframe.c
parent2d1ead342cbaaba5f5fd07c3165f48e1029d327c (diff)
downloadlibvpx-af8f1928d1ca6df5ae6961acebd524da585fa8ab.tar
libvpx-af8f1928d1ca6df5ae6961acebd524da585fa8ab.tar.gz
libvpx-af8f1928d1ca6df5ae6961acebd524da585fa8ab.tar.bz2
libvpx-af8f1928d1ca6df5ae6961acebd524da585fa8ab.zip
vp8 - config_featureupdates
Added a bit to signify that the feature changed since the last time we sent it, or not so that we don't need to send all the databits for every feature change. added config Change-Id: I8d3064ce90d4500bf0d5c6b87c664e46138dfcac
Diffstat (limited to 'vp8/decoder/decodframe.c')
-rw-r--r--vp8/decoder/decodframe.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/vp8/decoder/decodframe.c b/vp8/decoder/decodframe.c
index c5385a022..abf85eb28 100644
--- a/vp8/decoder/decodframe.c
+++ b/vp8/decoder/decodframe.c
@@ -1158,6 +1158,39 @@ int vp8_decode_frame(VP8D_COMP *pbi)
// For each of the segments features...
for (j = 0; j < SEG_LVL_MAX; j++)
{
+
+#if CONFIG_FEATUREUPDATES
+ // feature updated?
+ if (vp8_read_bit(bc))
+ {
+ int active=1;
+
+ if ( segfeature_active( xd, i, j ))
+ active=vp8_read_bit(bc);
+
+ // Is the feature enabled
+ if (active)
+ {
+ // Update the feature data and mask
+ enable_segfeature(xd, i, j);
+
+ data = (signed char)vp8_read_literal(
+ bc, seg_feature_data_bits(j));
+
+ // Is the segment data signed..
+ if ( is_segfeature_signed(j) )
+ {
+ if (vp8_read_bit(bc))
+ data = - data;
+ }
+ }
+ else
+ data = 0;
+
+ set_segdata(xd, i, j, data);
+ }
+
+#else
// Is the feature enabled
if (vp8_read_bit(bc))
{
@@ -1178,6 +1211,7 @@ int vp8_decode_frame(VP8D_COMP *pbi)
data = 0;
set_segdata(xd, i, j, data);
+#endif
}
}
}