sdpdemux: fix and reflow some exits

This commit is contained in:
Mark Nauwelaerts 2010-10-05 17:04:10 +02:00
parent 216887d599
commit e0cb15cea0

View file

@ -1418,56 +1418,56 @@ gst_sdp_demux_start (GstSDPDemux * demux)
} }
} }
GST_SDP_STREAM_UNLOCK (demux); GST_SDP_STREAM_UNLOCK (demux);
gst_sdp_message_uninit (&sdp);
return TRUE; return TRUE;
/* ERRORS */ /* ERRORS */
done:
{
GST_SDP_STREAM_UNLOCK (demux);
gst_sdp_message_uninit (&sdp);
return FALSE;
}
transport_failed: transport_failed:
{ {
GST_ELEMENT_ERROR (demux, STREAM, TYPE_NOT_FOUND, (NULL), GST_ELEMENT_ERROR (demux, STREAM, TYPE_NOT_FOUND, (NULL),
("Could not create RTP stream transport.")); ("Could not create RTP stream transport."));
GST_SDP_STREAM_UNLOCK (demux); goto done;
return FALSE;
} }
no_manager: no_manager:
{ {
GST_ELEMENT_ERROR (demux, STREAM, TYPE_NOT_FOUND, (NULL), GST_ELEMENT_ERROR (demux, STREAM, TYPE_NOT_FOUND, (NULL),
("Could not create RTP session manager.")); ("Could not create RTP session manager."));
GST_SDP_STREAM_UNLOCK (demux); goto done;
return FALSE;
} }
could_not_parse: could_not_parse:
{ {
gst_sdp_message_uninit (&sdp);
GST_ELEMENT_ERROR (demux, STREAM, TYPE_NOT_FOUND, (NULL), GST_ELEMENT_ERROR (demux, STREAM, TYPE_NOT_FOUND, (NULL),
("Could not parse SDP message.")); ("Could not parse SDP message."));
GST_SDP_STREAM_UNLOCK (demux); goto done;
return FALSE;
} }
no_streams: no_streams:
{ {
gst_sdp_message_uninit (&sdp);
GST_ELEMENT_ERROR (demux, STREAM, TYPE_NOT_FOUND, (NULL), GST_ELEMENT_ERROR (demux, STREAM, TYPE_NOT_FOUND, (NULL),
("No streams in SDP message.")); ("No streams in SDP message."));
GST_SDP_STREAM_UNLOCK (demux); goto done;
return FALSE;
} }
sent_redirect: sent_redirect:
{ {
/* avoid hanging if redirect not handled */ /* avoid hanging if redirect not handled */
gst_sdp_message_uninit (&sdp);
GST_ELEMENT_ERROR (demux, STREAM, TYPE_NOT_FOUND, (NULL), GST_ELEMENT_ERROR (demux, STREAM, TYPE_NOT_FOUND, (NULL),
("Sent RTSP redirect.")); ("Sent RTSP redirect."));
GST_SDP_STREAM_UNLOCK (demux); goto done;
return FALSE;
} }
start_session_failure: start_session_failure:
{ {
GST_DEBUG_OBJECT (demux, "could not start session"); GST_ELEMENT_ERROR (demux, STREAM, TYPE_NOT_FOUND, (NULL),
("Could not start RTP session manager."));
gst_element_set_state (demux->session, GST_STATE_NULL); gst_element_set_state (demux->session, GST_STATE_NULL);
gst_bin_remove (GST_BIN_CAST (demux), demux->session); gst_bin_remove (GST_BIN_CAST (demux), demux->session);
demux->session = NULL; demux->session = NULL;
return FALSE; goto done;
} }
} }