gst/rtsp/gstrtspsrc.c: Ignore streams that fail the setup command, we will retry...
authorWim Taymans <wim.taymans@gmail.com>
Thu, 17 May 2007 14:56:39 +0000 (14:56 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Thu, 17 May 2007 14:56:39 +0000 (14:56 +0000)
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send),
(gst_rtspsrc_setup_streams):
Ignore streams that fail the setup command, we will retry with a
different transport later on.
* gst/rtsp/rtspextwms.c: (rtsp_ext_wms_parse_sdp),
(rtsp_ext_wms_configure_stream):
Fix encoding name case.

ChangeLog
gst/rtsp/gstrtspsrc.c
gst/rtsp/rtspextwms.c

index 92e5383..251ebc1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2007-05-17  Wim Taymans  <wim@fluendo.com>
+
+       * gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send),
+       (gst_rtspsrc_setup_streams):
+       Ignore streams that fail the setup command, we will retry with a
+       different transport later on.
+
+       * gst/rtsp/rtspextwms.c: (rtsp_ext_wms_parse_sdp),
+       (rtsp_ext_wms_configure_stream):
+       Fix encoding name case.
+
 2007-05-16  Edward Hervey  <edward@fluendo.com>
 
        * ext/libpng/gstpngdec.c: (user_endrow_callback), (user_read_data):
index 88c606a..1586171 100644 (file)
@@ -3069,6 +3069,7 @@ gst_rtspsrc_setup_streams (GstRTSPSrc * src)
 
   for (walk = src->streams; walk; walk = g_list_next (walk)) {
     gchar *transports;
+    RTSPStatusCode code;
 
     stream = (GstRTSPStream *) walk->data;
 
@@ -3130,9 +3131,21 @@ gst_rtspsrc_setup_streams (GstRTSPSrc * src)
     rtsp_message_add_header (&request, RTSP_HDR_TRANSPORT, transports);
     g_free (transports);
 
-    if ((res = gst_rtspsrc_send (src, &request, &response, NULL) < 0))
+    /* handle the code ourselves */
+    if ((res = gst_rtspsrc_send (src, &request, &response, &code) < 0))
       goto send_error;
 
+    switch (code) {
+      case RTSP_STS_OK:
+        break;
+      case RTSP_STS_UNSUPPORTED_TRANSPORT:
+        /* cleanup of leftover transport */
+        gst_rtspsrc_stream_free_udp (stream);
+        goto next_stream;
+      default:
+        goto send_error;
+    }
+
     /* parse response transport */
     {
       gchar *resptrans = NULL;
@@ -3185,6 +3198,7 @@ gst_rtspsrc_setup_streams (GstRTSPSrc * src)
               stream);
         }
       }
+    next_stream:
       /* clean up our transport struct */
       rtsp_transport_init (&transport);
     }
index 30e2136..b79a458 100644 (file)
@@ -127,7 +127,7 @@ rtsp_ext_wms_parse_sdp (RTSPExtensionCtx * ctx, SDPMessage * sdp)
   if (maxps)
     gst_structure_set (src->props, "maxps", G_TYPE_STRING, maxps, NULL);
 
-  gst_structure_set (src->props, "encoding-name", G_TYPE_STRING, "x-asf-pf",
+  gst_structure_set (src->props, "encoding-name", G_TYPE_STRING, "X-ASF-PF",
       NULL);
   gst_structure_set (src->props, "media", G_TYPE_STRING, "application", NULL);
 
@@ -159,7 +159,7 @@ rtsp_ext_wms_configure_stream (RTSPExtensionCtx * ctx, GstRTSPStream * stream)
       encoding);
 
   /* rtx streams do not need to be configured */
-  if (!strcmp (encoding, "x-wms-rtx"))
+  if (!strcmp (encoding, "X-WMS-RTX"))
     return FALSE;
 
   return TRUE;