From 6108407db1b2d4e7dd9d41244f2f555cc57c0e43 Mon Sep 17 00:00:00 2001 From: George Kiagiadakis Date: Thu, 26 Dec 2013 17:47:46 +0200 Subject: [PATCH] gstrtpbasepayload: use the session's suggested ssrc after a collision, if the session provides one Conflicts: gst-libs/gst/rtp/gstrtpbasepayload.c --- gst-libs/gst/rtp/gstrtpbasepayload.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gst-libs/gst/rtp/gstrtpbasepayload.c b/gst-libs/gst/rtp/gstrtpbasepayload.c index 03ff17a447..c6706b7175 100644 --- a/gst-libs/gst/rtp/gstrtpbasepayload.c +++ b/gst-libs/gst/rtp/gstrtpbasepayload.c @@ -449,10 +449,13 @@ gst_rtp_base_payload_src_event_default (GstRTPBasePayload * rtpbasepayload, /* choose another ssrc for our stream */ if (ssrc == rtpbasepayload->current_ssrc) { GstCaps *caps; + guint suggested_ssrc = 0; - do { + if (gst_structure_get_uint (s, "suggested-ssrc", &suggested_ssrc)) + rtpbasepayload->current_ssrc = suggested_ssrc; + + while (ssrc == rtpbasepayload->current_ssrc) rtpbasepayload->current_ssrc = g_random_int (); - } while (ssrc == rtpbasepayload->current_ssrc); caps = gst_pad_get_current_caps (rtpbasepayload->srcpad); caps = gst_caps_make_writable (caps);