va: h265dec: Fix a crash because of missing reference frame.
authorHe Junyan <junyan.he@intel.com>
Thu, 24 Mar 2022 13:39:30 +0000 (21:39 +0800)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Fri, 25 Mar 2022 13:12:46 +0000 (13:12 +0000)
Some problematic H265 stream may miss the reference frame in the DPB,
and get some message like: "No short term reference picture for xxx".
So there may be empty entries in ref_pic_list0/1 when passing to
decode_slice() function of sub class. We need to check the NULL pointer.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2018>

subprojects/gst-plugins-bad/sys/va/gstvah265dec.c

index 05d55fc..4494446 100644 (file)
@@ -315,6 +315,9 @@ _get_reference_index (GstH265Decoder * decoder, GstH265Picture * picture)
   GstVaH265Dec *self = GST_VA_H265_DEC (decoder);
   guint8 i;
 
+  if (!picture)
+    return 0xFF;
+
   for (i = 0; i < 15; i++) {
     VAPictureHEVC *ref_va_pic = &self->pic_param.base.ReferenceFrames[i];