mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-20 07:16:55 +00:00
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.
This commit is contained in:
parent
de02a5c190
commit
01c78c4b20
1 changed files with 3 additions and 7 deletions
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue