From: Gwenole Beauchesne Date: Tue, 22 Apr 2014 15:25:15 +0000 (+0200) Subject: vp8: fix check for disabling the loop filter (again). X-Git-Tag: upstream/0.2.6+1190+g7f5b9ed~14 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=01c78c4b20a0d00034dc7e5c976ee87fa1226d7e;p=platform%2Fupstream%2Fgstreamer-vaapi.git vp8: fix check for disabling the loop filter (again). Improve condition to disable the loop filter. The previous heuristic used to check all filter levels, for all segments. It turns out that only the base filter_level value defined in the frame header needs to be checked. This fixes 00-comprehensive-013. --- diff --git a/gst-libs/gst/vaapi/gstvaapidecoder_vp8.c b/gst-libs/gst/vaapi/gstvaapidecoder_vp8.c index 07816de..7b82854 100644 --- a/gst-libs/gst/vaapi/gstvaapidecoder_vp8.c +++ b/gst-libs/gst/vaapi/gstvaapidecoder_vp8.c @@ -273,7 +273,7 @@ fill_picture (GstVaapiDecoderVp8 * decoder, GstVaapiPicture * picture) GstVp8Parser *const parser = &priv->parser; GstVp8FrameHdr *const frame_hdr = &priv->frame_hdr; GstVp8Segmentation *const seg = &parser->segmentation; - gint i, filter_levels; + gint i; /* Fill in VAPictureParameterBufferVP8 */ pic_param->frame_width = priv->width; @@ -330,12 +330,8 @@ fill_picture (GstVaapiDecoderVp8 * decoder, GstVaapiPicture * picture) /* In decoding, the only loop filter settings that matter are those in the frame header (9.1) */ - filter_levels = pic_param->loop_filter_level[0]; - if (seg->segmentation_enabled) { - for (i = 1; i < 4; i++) - filter_levels |= pic_param->loop_filter_level[i]; - } - pic_param->pic_fields.bits.loop_filter_disable = filter_levels == 0; + pic_param->pic_fields.bits.loop_filter_disable = + frame_hdr->loop_filter_level == 0; pic_param->prob_skip_false = frame_hdr->prob_skip_false; pic_param->prob_intra = frame_hdr->prob_intra;