From 9b2e1f9f360756e65cf137d3ef0f119bb73508c6 Mon Sep 17 00:00:00 2001 From: Dave Craig Date: Tue, 23 Feb 2016 18:12:54 +0200 Subject: [PATCH] rtph265depay: Don't assume that get_current_caps() returns non-NULL caps after has_current_caps() Remove calls to gst_pad_has_current_caps() which then go on to call gst_pad_get_current_caps() as the caps can go to NULL in between. Instead just use gst_pad_get_current_caps() and check for NULL. https://bugzilla.gnome.org/show_bug.cgi?id=759539 --- gst/rtp/gstrtph265depay.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gst/rtp/gstrtph265depay.c b/gst/rtp/gstrtph265depay.c index 2bee80bdee..eb0c2b7f75 100644 --- a/gst/rtp/gstrtph265depay.c +++ b/gst/rtp/gstrtph265depay.c @@ -296,6 +296,7 @@ static gboolean gst_rtp_h265_set_src_caps (GstRtpH265Depay * rtph265depay) { gboolean res; + GstCaps *old_caps; GstCaps *srccaps; if (!rtph265depay->byte_stream && @@ -507,9 +508,9 @@ gst_rtp_h265_set_src_caps (GstRtpH265Depay * rtph265depay) gst_buffer_unref (codec_data); } - if (gst_pad_has_current_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (rtph265depay))) { - GstCaps *old_caps = - gst_pad_get_current_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (rtph265depay)); + old_caps = + gst_pad_get_current_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (rtph265depay)); + if (old_caps != NULL) { /* Only update the caps if they are not equal. For * AVC we don't update caps if only the codec_data