summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2018-03-01 18:13:20 +0200
committerSebastian Dröge <sebastian@centricular.com>2018-03-01 20:27:10 +0200
commitf29fe76d7e9e7e602cdb09e053640849d670b32c (patch)
tree7ab3d9e2f60fdf491489711b90c5b9923387a910
parent43e758cdb1fae78cd7072c70197800f3eef0ab71 (diff)
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
-rw-r--r--gst/rtsp/gstrtspsrc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c
index 7143d7870..ce17a0e4d 100644
--- a/gst/rtsp/gstrtspsrc.c
+++ b/gst/rtsp/gstrtspsrc.c
@@ -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 */