Commit bf5a72a6 authored by Sebastian Dröge's avatar Sebastian Dröge

rtspsrc: Properly error out if binding the UDP sockets fails

udpsrc is not returning us a socket in that case.
parent 03d2ae15
......@@ -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
* so that NAT firewalls will open a hole for us */
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);
/* configure socket and make sure udpsink does not close it when shutting
* 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
* the RTCP packets it receives */
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);
/* configure socket and make sure udpsink does not close it when shutting
* down, it belongs to udpsrc after all. */
......@@ -3637,17 +3643,22 @@ gst_rtspsrc_stream_configure_udp_sinks (GstRTSPSrc * src,
/* ERRORS */
no_destination:
{
GST_DEBUG_OBJECT (src, "no destination address specified");
GST_ERROR_OBJECT (src, "no destination address specified");
return FALSE;
}
no_sink_element:
{
GST_DEBUG_OBJECT (src, "no UDP sink element found");
GST_ERROR_OBJECT (src, "no UDP sink element found");
return FALSE;
}
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;
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment