OSDN Git Service

vp9_decoding: disable all seg reference for key frame or intra_only enabled frame
authorpeng.chen <peng.c.chen@intel.com>
Tue, 15 Mar 2016 07:11:10 +0000 (15:11 +0800)
committerXiang, Haihao <haihao.xiang@intel.com>
Thu, 17 Mar 2016 00:59:29 +0000 (08:59 +0800)
Signed-off-by: peng.chen <peng.c.chen@intel.com>
src/gen9_mfd.c

index 72c7183..3e95810 100644 (file)
@@ -1771,13 +1771,19 @@ gen9_hcpd_vp9_segment_state(VADriverContextP ctx,
 {
     struct intel_batchbuffer *batch = gen9_hcpd_context->base.batch;
 
+    int segment_ref = seg_param->segment_flags.fields.segment_reference;
+
+    if((pic_param->pic_fields.bits.frame_type == HCP_VP9_KEY_FRAME)
+            || (pic_param->pic_fields.bits.intra_only))
+        segment_ref = 0;
+
     BEGIN_BCS_BATCH(batch, 7);
 
     OUT_BCS_BATCH(batch, HCP_VP9_SEGMENT_STATE | (7 - 2));
     OUT_BCS_BATCH(batch, seg_id << 0); /* DW 1 - SegmentID */
     OUT_BCS_BATCH(batch,
                   seg_param->segment_flags.fields.segment_reference_enabled << 3 |
-                  seg_param->segment_flags.fields.segment_reference << 1 |
+                  segment_ref << 1 |
                   seg_param->segment_flags.fields.segment_reference_skipped <<0 ); /* DW 2 */
     if(pic_param->filter_level)
     {