decoder: h264: fix DPB clear when no decoding actually started.

Fix dpb_clear() to clear previous frame buffers only if they actually
exist to begin with. If the decoder bailed out early, e.g. when it
does not support a specific profile, that array of previous frames
might not be allocated beforehand.
This commit is contained in:
Gwenole Beauchesne 2014-06-19 17:08:47 +02:00
parent cb9f98f0d5
commit 8db72147c7

View file

@ -855,8 +855,9 @@ dpb_clear(GstVaapiDecoderH264 *decoder, GstVaapiPictureH264 *picture)
/* Clear previous frame buffers only if this is a "flush-all" operation,
or if the picture is the first one in the access unit */
if (!picture || GST_VAAPI_PICTURE_FLAG_IS_SET(picture,
GST_VAAPI_PICTURE_FLAG_AU_START)) {
if (priv->prev_frames && (!picture ||
GST_VAAPI_PICTURE_FLAG_IS_SET(picture,
GST_VAAPI_PICTURE_FLAG_AU_START))) {
for (i = 0; i < priv->max_views; i++)
gst_vaapi_picture_replace(&priv->prev_frames[i], NULL);
}