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/4568>
This commit is contained in:
Sebastian Dröge 2023-04-04 19:23:14 +03:00 committed by GStreamer Marge Bot
parent a74bf2a45e
commit 8442bbf666

View file

@ -2251,6 +2251,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;