improve cleanup

Start stream when input socket is given.
This commit is contained in:
Wim Taymans 2015-05-27 16:08:51 +02:00
parent f50d1548d5
commit ac6d73f913
3 changed files with 21 additions and 0 deletions

View file

@ -560,6 +560,11 @@ on_client_disconnected (GObject *source_object,
}
g_variant_unref (ret);
g_clear_object (&priv->client);
g_clear_object (&priv->daemon);
g_bus_unwatch_name(priv->id);
priv->id = 0;
context_set_state (context, PV_CONTEXT_STATE_UNCONNECTED);
}

View file

@ -120,6 +120,9 @@ gst_pulsevideo_src_finalize (GObject * object)
{
GstPulsevideoSrc *pvsrc = GST_PULSEVIDEO_SRC (object);
g_object_unref (pvsrc->fd_allocator);
g_mutex_clear (&pvsrc->lock);
g_cond_clear (&pvsrc->cond);
g_free (pvsrc->source);
G_OBJECT_CLASS (parent_class)->finalize (object);

View file

@ -233,6 +233,14 @@ client_release_source_output (PvSource *source, PvSourceOutput *output)
static void
client_source_finalize (GObject * object)
{
PvClientSourcePrivate *priv = PV_CLIENT_SOURCE (object)->priv;
gst_element_set_state (priv->pipeline, GST_STATE_NULL);
g_clear_object (&priv->filter);
g_clear_object (&priv->sink);
g_clear_object (&priv->src);
g_clear_object (&priv->pipeline);
G_OBJECT_CLASS (pv_client_source_parent_class)->finalize (object);
}
@ -266,6 +274,11 @@ on_input_socket_notify (GObject *gobject,
g_object_set (priv->filter, "caps", NULL, NULL);
}
g_object_set (priv->src, "socket", socket, NULL);
if (socket)
gst_element_set_state (priv->pipeline, GST_STATE_PLAYING);
else
gst_element_set_state (priv->pipeline, GST_STATE_READY);
}
PvSourceOutput *