From ccd7a136a92b43a94d3db61565352be0a59e3014 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Thu, 17 May 2007 14:56:39 +0000 Subject: [PATCH] gst/rtsp/gstrtspsrc.c: Ignore streams that fail the setup command, we will retry with a different transport later on. 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 | 11 +++++++++++ gst/rtsp/gstrtspsrc.c | 16 +++++++++++++++- gst/rtsp/rtspextwms.c | 4 ++-- 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 92e53834d3..251ebc1e38 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2007-05-17 Wim Taymans + + * 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 * ext/libpng/gstpngdec.c: (user_endrow_callback), (user_read_data): diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c index 88c606aa60..1586171392 100644 --- a/gst/rtsp/gstrtspsrc.c +++ b/gst/rtsp/gstrtspsrc.c @@ -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); } diff --git a/gst/rtsp/rtspextwms.c b/gst/rtsp/rtspextwms.c index 30e21362e4..b79a458608 100644 --- a/gst/rtsp/rtspextwms.c +++ b/gst/rtsp/rtspextwms.c @@ -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;