rtspsrc: Ignore sendonly/recvonly attributes unless a backchannel is configured

This works around a bug in various ONVIF cameras that implement the
attributes the wrong way around. They still won't work with a
backchannel but at least normal playback will work for the time being.
It restores pre-1.14 behaviour where we would fail to preroll on any SDP
that lists a recvonly stream. For 1.16 a better solution should be
found.

The problem here is that the ONVIF spec has the meaning of the two
attributes the wrong way around in the examples, compared to RFC4566.

https://bugzilla.gnome.org/show_bug.cgi?id=793715
This commit is contained in:
Sebastian Dröge 2018-03-01 18:13:20 +02:00
parent 43e758cdb1
commit f29fe76d7e

View file

@ -1774,7 +1774,7 @@ gst_rtspsrc_collect_payloads (GstRTSPSrc * src, const GstSDPMessage * sdp,
if (gst_sdp_media_get_attribute_val (media, "recvonly") != NULL &&
/* We want to setup caps for streams configured as backchannel */
!stream->is_backchannel)
!stream->is_backchannel && src->backchannel != BACKCHANNEL_NONE)
goto recvonly_media;
/* Parse global SDP attributes once */