rtspsrc: Skip PTs with caps incompatible to the global caps

Otherwise empty caps are created while all following code assumes that
the caps will have exactly one structure, and then run into assertions.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4339>
This commit is contained in:
Sebastian Dröge 2023-04-04 19:23:14 +03:00 committed by GStreamer Marge Bot
parent 38dd5deb66
commit 43e4db9fc9

View file

@ -2301,6 +2301,13 @@ gst_rtspsrc_collect_payloads (GstRTSPSrc * src, const GstSDPMessage * sdp,
outcaps = gst_caps_intersect (caps, global_caps);
gst_caps_unref (caps);
if (gst_caps_is_empty (outcaps)) {
GST_WARNING_OBJECT (src,
" skipping pt %d with caps conflicting with the global caps", pt);
gst_caps_unref (outcaps);
continue;
}
/* the first pt will be the default */
if (stream->ptmap->len == 0)
stream->default_pt = pt;