diff options
author | Wim Taymans <wim.taymans@gmail.com> | 2007-09-17 02:05:14 +0000 |
---|---|---|
committer | Wim Taymans <wim.taymans@gmail.com> | 2007-09-17 02:05:14 +0000 |
commit | 7eb37e25750b1461875e698a03b310706dcfbe5b (patch) | |
tree | 39bb6734e8141b5a68ed5127b6ca6675cf8c4ffe /gst/rtsp | |
parent | e9f273126b14943529ebb1b9685d0a47bc9ad868 (diff) |
gst/rtsp/gstrtspsrc.c: Give meaningfull error when all streams failed to configure for some reason.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_setup_streams),
(gst_rtspsrc_dup_printf):
Give meaningfull error when all streams failed to configure for some
reason.
Diffstat (limited to 'gst/rtsp')
-rw-r--r-- | gst/rtsp/gstrtspsrc.c | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c index 689aa203..e0ca5361 100644 --- a/gst/rtsp/gstrtspsrc.c +++ b/gst/rtsp/gstrtspsrc.c @@ -3384,6 +3384,7 @@ gst_rtspsrc_setup_streams (GstRTSPSrc * src) /* reset some state */ src->free_channel = 0; src->interleaved = FALSE; + src->need_activate = FALSE; for (walk = src->streams; walk; walk = g_list_next (walk)) { gchar *transports; @@ -3478,8 +3479,10 @@ gst_rtspsrc_setup_streams (GstRTSPSrc * src) goto no_transport; /* parse transport, go to next stream on parse error */ - if (gst_rtsp_transport_parse (resptrans, &transport) != GST_RTSP_OK) - continue; + if (gst_rtsp_transport_parse (resptrans, &transport) != GST_RTSP_OK) { + GST_WARNING_OBJECT (src, "failed to parse transport %s", resptrans); + goto next; + } /* update allowed transports for other streams. once the transport of * one stream has been determined, we make sure that all other streams @@ -3518,8 +3521,12 @@ gst_rtspsrc_setup_streams (GstRTSPSrc * src) GST_DEBUG_OBJECT (src, "could not configure stream %p transport, skipping stream", stream); + goto next; } } + /* we need to activate at least one streams when we detect activity */ + src->need_activate = TRUE; + next: /* clean up our transport struct */ gst_rtsp_transport_init (&transport); } @@ -3527,8 +3534,9 @@ gst_rtspsrc_setup_streams (GstRTSPSrc * src) gst_rtsp_ext_list_stream_select (src->extensions, src->url); - /* we need to activate the streams when we detect activity */ - src->need_activate = TRUE; + /* if there is nothing to activate, error out */ + if (!src->need_activate) + goto nothing_to_activate; return TRUE; @@ -3570,6 +3578,12 @@ no_transport: ("Server did not select transport.")); goto cleanup_error; } +nothing_to_activate: + { + GST_ELEMENT_ERROR (src, STREAM, FORMAT, (NULL), + ("No supported stream was found.")); + return FALSE; + } cleanup_error: { gst_rtsp_message_unset (&request); |