rtpptdemux: do no assume sink caps are non NULL

This commit is contained in:
Mathieu Duponchelle 2018-02-21 19:59:04 +01:00
parent c8f442deb0
commit 359b0a86f1

View file

@ -325,23 +325,26 @@ gst_rtp_pt_demux_get_caps (GstRtpPtDemux * rtpdemux, guint pt)
g_value_unset (&ret); g_value_unset (&ret);
sink_caps = gst_pad_get_current_caps (rtpdemux->sink); sink_caps = gst_pad_get_current_caps (rtpdemux->sink);
if (caps == NULL) {
caps = gst_caps_ref (sink_caps);
} else {
GstStructure *s1;
GstStructure *s2;
guint ssrc;
caps = gst_caps_make_writable (caps); if (sink_caps) {
s1 = gst_caps_get_structure (sink_caps, 0); if (caps == NULL) {
s2 = gst_caps_get_structure (caps, 0); caps = gst_caps_ref (sink_caps);
} else {
GstStructure *s1;
GstStructure *s2;
guint ssrc;
gst_structure_get_uint (s1, "ssrc", &ssrc); caps = gst_caps_make_writable (caps);
gst_structure_set (s2, "ssrc", G_TYPE_UINT, ssrc, NULL); s1 = gst_caps_get_structure (sink_caps, 0);
s2 = gst_caps_get_structure (caps, 0);
gst_structure_get_uint (s1, "ssrc", &ssrc);
gst_structure_set (s2, "ssrc", G_TYPE_UINT, ssrc, NULL);
}
gst_caps_unref (sink_caps);
} }
gst_caps_unref (sink_caps);
GST_DEBUG ("pt %d, got caps %" GST_PTR_FORMAT, pt, caps); GST_DEBUG ("pt %d, got caps %" GST_PTR_FORMAT, pt, caps);
return caps; return caps;