mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-29 05:40:27 -04:00
improve cleanup
Start stream when input socket is given.
This commit is contained in:
parent
f50d1548d5
commit
ac6d73f913
3 changed files with 21 additions and 0 deletions
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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 *
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue