mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-18 15:51:11 +00:00
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.
This commit is contained in:
parent
e9f273126b
commit
7eb37e2575
2 changed files with 25 additions and 4 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
2007-09-16 Wim Taymans <wim.taymans@gmail.com>
|
||||||
|
|
||||||
|
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_setup_streams),
|
||||||
|
(gst_rtspsrc_dup_printf):
|
||||||
|
Give meaningfull error when all streams failed to configure for some
|
||||||
|
reason.
|
||||||
|
|
||||||
2007-09-16 Wim Taymans <wim.taymans@gmail.com>
|
2007-09-16 Wim Taymans <wim.taymans@gmail.com>
|
||||||
|
|
||||||
* gst/rtp/README:
|
* gst/rtp/README:
|
||||||
|
|
|
@ -3384,6 +3384,7 @@ gst_rtspsrc_setup_streams (GstRTSPSrc * src)
|
||||||
/* reset some state */
|
/* reset some state */
|
||||||
src->free_channel = 0;
|
src->free_channel = 0;
|
||||||
src->interleaved = FALSE;
|
src->interleaved = FALSE;
|
||||||
|
src->need_activate = FALSE;
|
||||||
|
|
||||||
for (walk = src->streams; walk; walk = g_list_next (walk)) {
|
for (walk = src->streams; walk; walk = g_list_next (walk)) {
|
||||||
gchar *transports;
|
gchar *transports;
|
||||||
|
@ -3478,8 +3479,10 @@ gst_rtspsrc_setup_streams (GstRTSPSrc * src)
|
||||||
goto no_transport;
|
goto no_transport;
|
||||||
|
|
||||||
/* parse transport, go to next stream on parse error */
|
/* parse transport, go to next stream on parse error */
|
||||||
if (gst_rtsp_transport_parse (resptrans, &transport) != GST_RTSP_OK)
|
if (gst_rtsp_transport_parse (resptrans, &transport) != GST_RTSP_OK) {
|
||||||
continue;
|
GST_WARNING_OBJECT (src, "failed to parse transport %s", resptrans);
|
||||||
|
goto next;
|
||||||
|
}
|
||||||
|
|
||||||
/* update allowed transports for other streams. once the transport of
|
/* update allowed transports for other streams. once the transport of
|
||||||
* one stream has been determined, we make sure that all other streams
|
* 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,
|
GST_DEBUG_OBJECT (src,
|
||||||
"could not configure stream %p transport, skipping stream",
|
"could not configure stream %p transport, skipping stream",
|
||||||
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 */
|
/* clean up our transport struct */
|
||||||
gst_rtsp_transport_init (&transport);
|
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);
|
gst_rtsp_ext_list_stream_select (src->extensions, src->url);
|
||||||
|
|
||||||
/* we need to activate the streams when we detect activity */
|
/* if there is nothing to activate, error out */
|
||||||
src->need_activate = TRUE;
|
if (!src->need_activate)
|
||||||
|
goto nothing_to_activate;
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
|
@ -3570,6 +3578,12 @@ no_transport:
|
||||||
("Server did not select transport."));
|
("Server did not select transport."));
|
||||||
goto cleanup_error;
|
goto cleanup_error;
|
||||||
}
|
}
|
||||||
|
nothing_to_activate:
|
||||||
|
{
|
||||||
|
GST_ELEMENT_ERROR (src, STREAM, FORMAT, (NULL),
|
||||||
|
("No supported stream was found."));
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
cleanup_error:
|
cleanup_error:
|
||||||
{
|
{
|
||||||
gst_rtsp_message_unset (&request);
|
gst_rtsp_message_unset (&request);
|
||||||
|
|
Loading…
Reference in a new issue