rtsp-client: add stream transport to context
authorAleix Conchillo FlaquƩ <aleix@oblong.com>
Mon, 20 Oct 2014 22:40:59 +0000 (15:40 -0700)
committerWim Taymans <wtaymans@redhat.com>
Tue, 21 Oct 2014 09:44:40 +0000 (11:44 +0200)
We add the stream transport to the context so we can get the configured
client stream transport in the setup request signal.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=738905

gst/rtsp-server/rtsp-client.c
gst/rtsp-server/rtsp-context.h

index b00993a..2b5895b 100644 (file)
@@ -1833,6 +1833,8 @@ handle_setup_request (GstRTSPClient * client, GstRTSPContext * ctx)
   /* set in the session media transport */
   trans = gst_rtsp_session_media_set_transport (sessmedia, stream, ct);
 
+  ctx->trans = trans;
+
   /* configure the url used to set this transport, this we will use when
    * generating the response for the PLAY request */
   gst_rtsp_stream_transport_set_url (trans, uri);
index c2be87e..d21c31a 100644 (file)
@@ -53,27 +53,29 @@ typedef struct _GstRTSPContext GstRTSPContext;
  * @media: the media for the url can be %NULL
  * @stream: the stream for the url can be %NULL
  * @response: the response
+ * @trans: the stream transport, can be %NULL
  *
  * Information passed around containing the context of a request.
  */
 struct _GstRTSPContext {
-  GstRTSPServer       *server;
-  GstRTSPConnection   *conn;
-  GstRTSPClient       *client;
-  GstRTSPMessage      *request;
-  GstRTSPUrl          *uri;
-  GstRTSPMethod        method;
-  GstRTSPAuth         *auth;
-  GstRTSPToken        *token;
-  GstRTSPSession      *session;
-  GstRTSPSessionMedia *sessmedia;
-  GstRTSPMediaFactory *factory;
-  GstRTSPMedia        *media;
-  GstRTSPStream       *stream;
-  GstRTSPMessage      *response;
+  GstRTSPServer          *server;
+  GstRTSPConnection      *conn;
+  GstRTSPClient          *client;
+  GstRTSPMessage         *request;
+  GstRTSPUrl             *uri;
+  GstRTSPMethod           method;
+  GstRTSPAuth            *auth;
+  GstRTSPToken           *token;
+  GstRTSPSession         *session;
+  GstRTSPSessionMedia    *sessmedia;
+  GstRTSPMediaFactory    *factory;
+  GstRTSPMedia           *media;
+  GstRTSPStream          *stream;
+  GstRTSPMessage         *response;
+  GstRTSPStreamTransport *trans;
 
   /*< private >*/
-  gpointer            _gst_reserved[GST_PADDING];
+  gpointer            _gst_reserved[GST_PADDING - 1];
 };
 
 GType gst_rtsp_context_get_type (void);