guint size;
gchar *respcont = NULL;
- GST_RTSP_STATE_LOCK (src);
-
restart:
src->need_redirect = FALSE;
GST_DEBUG_OBJECT (src, "free connection");
gst_rtsp_conninfo_close (src, &src->conninfo, TRUE);
}
- GST_RTSP_STATE_UNLOCK (src);
gst_rtsp_message_unset (&request);
gst_rtsp_message_unset (&response);
return FALSE;
src->methods =
GST_RTSP_SETUP | GST_RTSP_PLAY | GST_RTSP_PAUSE | GST_RTSP_TEARDOWN;
+ GST_RTSP_STATE_LOCK (src);
+
if (src->sdp == NULL) {
if (!(res = gst_rtspsrc_retrieve_sdp (src, &src->sdp)))
goto no_sdp;
if (!(res = gst_rtspsrc_open_from_sdp (src, src->sdp)))
goto open_failed;
+ GST_RTSP_STATE_UNLOCK (src);
+
return res;
/* ERRORS */
no_sdp:
{
GST_WARNING_OBJECT (src, "can't get sdp");
+ GST_RTSP_STATE_UNLOCK (src);
return FALSE;
}
open_failed:
{
GST_WARNING_OBJECT (src, "can't setup streaming from sdp");
+ GST_RTSP_STATE_UNLOCK (src);
return FALSE;
}
}
/* ERRORS */
create_request_failed:
{
- GST_RTSP_STATE_UNLOCK (src);
GST_ELEMENT_ERROR (src, LIBRARY, INIT, (NULL),
("Could not create request."));
ret = FALSE;
}
send_error:
{
- GST_RTSP_STATE_UNLOCK (src);
gst_rtsp_message_unset (&request);
GST_ELEMENT_ERROR (src, RESOURCE, WRITE, (NULL),
("Could not send message."));