summaryrefslogtreecommitdiff
path: root/vp8/decoder/decodframe.c
diff options
context:
space:
mode:
authorPaul Wilkins <paulwilkins@google.com>2011-11-11 10:10:06 +0000
committerPaul Wilkins <paulwilkins@google.com>2011-11-11 18:31:21 +0000
commitbf25d4ad7f5f9c7b11894be140783da8ee640494 (patch)
tree187c1337db487b987bf9dd6ad8e81fadab4fdd8f /vp8/decoder/decodframe.c
parente01b39254b7289f124b2ba2b0fcdfb1e64aadd0c (diff)
downloadlibvpx-bf25d4ad7f5f9c7b11894be140783da8ee640494.tar
libvpx-bf25d4ad7f5f9c7b11894be140783da8ee640494.tar.gz
libvpx-bf25d4ad7f5f9c7b11894be140783da8ee640494.tar.bz2
libvpx-bf25d4ad7f5f9c7b11894be140783da8ee640494.zip
SEGMENTATION experiment:
Some initial cleanup to aid testing and debug. Pull code to choose temporal or spatial encoding out of encodeframe.c into a dedicated function in segmentation.c. For now disable broken temporal mode. Move the coding of "temporal_update" flag and only transmit if segment map update is indicated. Rename the functions read_mb_features() and write_mb_features() to read_mb_segid() and read_mb_segid() as they only read and write the macroblock segment id not any of the features. Change-Id: Ib75118520b1144c24d35fdfc6ce46106803cabcf
Diffstat (limited to 'vp8/decoder/decodframe.c')
-rw-r--r--vp8/decoder/decodframe.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/vp8/decoder/decodframe.c b/vp8/decoder/decodframe.c
index 963939cf0..5ba499155 100644
--- a/vp8/decoder/decodframe.c
+++ b/vp8/decoder/decodframe.c
@@ -1004,8 +1004,17 @@ int vp8_decode_frame(VP8D_COMP *pbi)
xd->segmentation_enabled = (unsigned char)vp8_read_bit(bc);
if (xd->segmentation_enabled)
{
- /* Signal whether or not the segmentation map is being explicitly updated this frame. */
+ // Read whether or not the segmentation map is being explicitly
+ // updated this frame.
xd->update_mb_segmentation_map = (unsigned char)vp8_read_bit(bc);
+
+#if CONFIG_SEGMENTATION
+ // If so what method will be used.
+ if ( xd->update_mb_segmentation_map )
+ xd->temporal_update = (unsigned char)vp8_read_bit(bc);
+#endif
+
+ // Is the segment data being updated
xd->update_mb_segmentation_data = (unsigned char)vp8_read_bit(bc);
if (xd->update_mb_segmentation_data)