From: Wim Taymans Date: Fri, 5 Mar 2010 12:27:18 +0000 (+0100) Subject: session: handle transport setup correctly X-Git-Tag: 1.19.3~495^2~1494 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=63addbc278c653c120c85a0fd16be7811a79559e;p=platform%2Fupstream%2Fgstreamer.git session: handle transport setup correctly Handle UDP, MCAST and TCP transport negotiation more correctly. Store the server session SSRC in the transport. --- diff --git a/gst/rtsp-server/rtsp-session.c b/gst/rtsp-server/rtsp-session.c index ea33fa0..b45530b 100644 --- a/gst/rtsp-server/rtsp-session.c +++ b/gst/rtsp-server/rtsp-session.c @@ -491,9 +491,24 @@ gst_rtsp_session_stream_set_transport (GstRTSPSessionStream *stream, st->trans = ct->trans; st->profile = ct->profile; st->lower_transport = ct->lower_transport; - st->client_port = ct->client_port; - st->interleaved = ct->interleaved; - st->server_port = stream->media_stream->server_port; + + switch (st->lower_transport) { + case GST_RTSP_LOWER_TRANS_UDP: + st->client_port = ct->client_port; + st->server_port = stream->media_stream->server_port; + break; + case GST_RTSP_LOWER_TRANS_UDP_MCAST: + ct->port = st->port = stream->media_stream->server_port; + st->destination = g_strdup (ct->destination); + break; + case GST_RTSP_LOWER_TRANS_TCP: + st->interleaved = ct->interleaved; + default: + break; + } + + if (stream->media_stream->session) + g_object_get (stream->media_stream->session, "internal-ssrc", &st->ssrc, NULL); /* keep track of the transports in the stream. */ if (stream->trans.transport)