Commit 235e4620 authored by Thibault Saunier's avatar Thibault Saunier

pbutils: discoverer: Always set the pipeline back to NULL after an error

Otherwize the pipeline would be in an wrong state and on the next
iteration any kind of error could happen

Everytime an error happens in a pipeline the application has to set the
pipeline back to NULL instead of READY.

https://bugzilla.gnome.org/show_bug.cgi?id=733976
parent cf50b45f
......@@ -1514,12 +1514,20 @@ discoverer_cleanup (GstDiscoverer * dc)
GST_DEBUG ("Cleaning up");
gst_bus_set_flushing (dc->priv->bus, TRUE);
DISCO_LOCK (dc);
if (dc->priv->current_error) {
g_error_free (dc->priv->current_error);
DISCO_UNLOCK (dc);
gst_element_set_state ((GstElement *) dc->priv->pipeline, GST_STATE_NULL);
} else {
DISCO_UNLOCK (dc);
}
gst_element_set_state ((GstElement *) dc->priv->pipeline, GST_STATE_READY);
gst_bus_set_flushing (dc->priv->bus, FALSE);
DISCO_LOCK (dc);
if (dc->priv->current_error)
g_error_free (dc->priv->current_error);
dc->priv->current_error = NULL;
if (dc->priv->current_topology) {
gst_structure_free (dc->priv->current_topology);
......
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