summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuiqin Zou <guiqinzu@axis.com>2020-09-11 15:46:41 +0200
committerTim-Philipp Müller <tim@centricular.com>2020-11-16 08:52:01 +0000
commit853ecb377e7134e2fbc55a7bfc53d6c312949179 (patch)
tree82c3225d57bff658cb73a72c152dc393576b27f4
parent4dd802423beefb8f3c965341f54ad2adca957901 (diff)
rtsp-media: Get rates only on sender streams
When play a media with both sender and receiver stream, like ONVIF back channel audio in, gst_rtsp_media_get_rates call gst_rtsp_stream_get_rates for each stream to set the rates. But gst_rtsp_stream_get_rates return false for the receiver steam, which lead a g_assert crash. Instead to get rates on all streams, now just get rates on sender streams. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/170>
-rw-r--r--gst/rtsp-server/rtsp-media.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gst/rtsp-server/rtsp-media.c b/gst/rtsp-server/rtsp-media.c
index 8159697..7a7a2f1 100644
--- a/gst/rtsp-server/rtsp-media.c
+++ b/gst/rtsp-server/rtsp-media.c
@@ -2709,7 +2709,8 @@ gst_rtsp_media_get_rates (GstRTSPMedia * media, gdouble * rate,
g_assert (priv->streams->len > 0);
for (i = 0; i < priv->streams->len; i++) {
stream = g_ptr_array_index (priv->streams, i);
- if (gst_rtsp_stream_is_complete (stream)) {
+ if (gst_rtsp_stream_is_complete (stream)
+ && gst_rtsp_stream_is_sender (stream)) {
if (gst_rtsp_stream_get_rates (stream, rate, applied_rate)) {
if (first_stream) {
save_rate = *rate;