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/4343>
This commit is contained in:
Sebastian Dröge 2023-04-04 19:23:14 +03:00 committed by Tim-Philipp Müller
parent cb08a6d8dc
commit da4c5c01d1

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;