From: Gwenole Beauchesne Date: Thu, 19 Jun 2014 15:08:47 +0000 (+0200) Subject: decoder: h264: fix DPB clear when no decoding actually started. X-Git-Tag: 0.5.9~73 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fupstream%2Fgstreamer-vaapi.git;a=commitdiff_plain;h=8db72147c7737eecfe3cdc57940840b45fd3261f 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. --- diff --git a/gst-libs/gst/vaapi/gstvaapidecoder_h264.c b/gst-libs/gst/vaapi/gstvaapidecoder_h264.c index 68c2b81..03dd51b 100644 --- a/gst-libs/gst/vaapi/gstvaapidecoder_h264.c +++ b/gst-libs/gst/vaapi/gstvaapidecoder_h264.c @@ -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); }