mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-27 09:38:17 +00:00
rtspsrc: Properly error out if binding the UDP sockets fails
udpsrc is not returning us a socket in that case.
This commit is contained in:
parent
03d2ae154e
commit
bf5a72a6dd
1 changed files with 14 additions and 3 deletions
|
@ -3545,6 +3545,9 @@ gst_rtspsrc_stream_configure_udp_sinks (GstRTSPSrc * src,
|
||||||
/* configure socket, we give it the same UDP socket as the udpsrc for RTP
|
/* configure socket, we give it the same UDP socket as the udpsrc for RTP
|
||||||
* so that NAT firewalls will open a hole for us */
|
* so that NAT firewalls will open a hole for us */
|
||||||
g_object_get (G_OBJECT (stream->udpsrc[0]), "used-socket", &socket, NULL);
|
g_object_get (G_OBJECT (stream->udpsrc[0]), "used-socket", &socket, NULL);
|
||||||
|
if (!socket)
|
||||||
|
goto no_socket;
|
||||||
|
|
||||||
GST_DEBUG_OBJECT (src, "RTP UDP src has sock %p", socket);
|
GST_DEBUG_OBJECT (src, "RTP UDP src has sock %p", socket);
|
||||||
/* configure socket and make sure udpsink does not close it when shutting
|
/* configure socket and make sure udpsink does not close it when shutting
|
||||||
* down, it belongs to udpsrc after all. */
|
* down, it belongs to udpsrc after all. */
|
||||||
|
@ -3600,6 +3603,9 @@ gst_rtspsrc_stream_configure_udp_sinks (GstRTSPSrc * src,
|
||||||
* because some servers check the port number of where it sends RTCP to identify
|
* because some servers check the port number of where it sends RTCP to identify
|
||||||
* the RTCP packets it receives */
|
* the RTCP packets it receives */
|
||||||
g_object_get (G_OBJECT (stream->udpsrc[1]), "used-socket", &socket, NULL);
|
g_object_get (G_OBJECT (stream->udpsrc[1]), "used-socket", &socket, NULL);
|
||||||
|
if (!socket)
|
||||||
|
goto no_socket;
|
||||||
|
|
||||||
GST_DEBUG_OBJECT (src, "RTCP UDP src has sock %p", socket);
|
GST_DEBUG_OBJECT (src, "RTCP UDP src has sock %p", socket);
|
||||||
/* configure socket and make sure udpsink does not close it when shutting
|
/* configure socket and make sure udpsink does not close it when shutting
|
||||||
* down, it belongs to udpsrc after all. */
|
* down, it belongs to udpsrc after all. */
|
||||||
|
@ -3637,17 +3643,22 @@ gst_rtspsrc_stream_configure_udp_sinks (GstRTSPSrc * src,
|
||||||
/* ERRORS */
|
/* ERRORS */
|
||||||
no_destination:
|
no_destination:
|
||||||
{
|
{
|
||||||
GST_DEBUG_OBJECT (src, "no destination address specified");
|
GST_ERROR_OBJECT (src, "no destination address specified");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
no_sink_element:
|
no_sink_element:
|
||||||
{
|
{
|
||||||
GST_DEBUG_OBJECT (src, "no UDP sink element found");
|
GST_ERROR_OBJECT (src, "no UDP sink element found");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
no_fakesrc_element:
|
no_fakesrc_element:
|
||||||
{
|
{
|
||||||
GST_DEBUG_OBJECT (src, "no fakesrc element found");
|
GST_ERROR_OBJECT (src, "no fakesrc element found");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
no_socket:
|
||||||
|
{
|
||||||
|
GST_ERROR_OBJECT (src, "failed to create socket");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue