shithub: libvpx

Download patch

ref: 576c2bb02127d6d3b898bf4737e9f4c5f9ca72df
parent: 653a25569ba09db521b3c6f26347fae000c7ae9b
author: Paul Wilkins <paulwilkins@google.com>
date: Fri Jun 7 09:27:08 EDT 2013

Fix bug in segment skip.

Wrong max data size (skip has no data) and use of vp9_get_segdata()
when it should be vp9_segfeature_active().

Change-Id: I1eb97d33df6e2a42cc589049f704266fe3639902

--- a/vp9/common/vp9_seg_common.c
+++ b/vp9/common/vp9_seg_common.c
@@ -13,7 +13,7 @@
 #include "vp9/common/vp9_seg_common.h"
 
 static const int seg_feature_data_signed[SEG_LVL_MAX] = { 1, 1, 0, 0 };
-static const int seg_feature_data_max[SEG_LVL_MAX] = { MAXQ, 63, 15, 15 };
+static const int seg_feature_data_max[SEG_LVL_MAX] = { MAXQ, 63, 15, 0 };
 
 // These functions provide access to new segment level features.
 // Eventually these function may be "optimized out" but for the moment,
--- a/vp9/decoder/vp9_detokenize.c
+++ b/vp9/decoder/vp9_detokenize.c
@@ -293,7 +293,7 @@
 }
 
 static int get_eob(MACROBLOCKD* const xd, int segment_id, int eob_max) {
-  return vp9_get_segdata(xd, segment_id, SEG_LVL_SKIP) ? 0 : eob_max;
+  return vp9_segfeature_active(xd, segment_id, SEG_LVL_SKIP) ? 0 : eob_max;
 }
 
 struct decode_block_args {
--- a/vp9/encoder/vp9_onyx_if.c
+++ b/vp9/encoder/vp9_onyx_if.c
@@ -746,7 +746,7 @@
       // Switch segmentation off.
       sf->static_segmentation = 0;
 #else
-  sf->static_segmentation = 0;
+      sf->static_segmentation = 0;
 #endif
       sf->comp_inter_joint_search_thresh = BLOCK_SIZE_SB8X8;
       sf->adpative_rd_thresh = 1;
--