rtspsrc: use same protocols after redirect
authorWim Taymans <wim.taymans@collabora.co.uk>
Tue, 23 Jun 2009 14:35:36 +0000 (16:35 +0200)
committerWim Taymans <wim.taymans@collabora.co.uk>
Tue, 23 Jun 2009 14:39:36 +0000 (16:39 +0200)
After a redirect we want to use the same protocols that we were using for the
current url.

gst/rtsp/gstrtspsrc.c

index d0c007b..c49eddf 100644 (file)
@@ -3778,6 +3778,7 @@ error_response:
       case GST_RTSP_STS_MOVE_TEMPORARILY:
       {
         gchar *new_location;
+        GstRTSPLowerTrans transports;
 
         GST_DEBUG_OBJECT (src, "got redirection");
         /* if we don't have a Location Header, we must error */
@@ -3790,8 +3791,18 @@ error_response:
          * a new setup when it detects this state change. */
         GST_DEBUG_OBJECT (src, "redirection to %s", new_location);
 
+        /* save current transports */
+        if (src->url)
+          transports = src->url->transports;
+        else
+          transports = GST_RTSP_LOWER_TRANS_UNKNOWN;
+
         gst_rtspsrc_uri_set_uri (GST_URI_HANDLER (src), new_location);
 
+        /* set old transports */
+        if (src->url && transports != GST_RTSP_LOWER_TRANS_UNKNOWN)
+          src->url->transports = transports;
+
         src->need_redirect = TRUE;
         src->state = GST_RTSP_STATE_INIT;
         res = GST_RTSP_OK;