mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-19 07:00:10 -05:00
stream: data_loop is NULL when not connected
When there is no node (not connected) the data_loop should remain NULL.
This commit is contained in:
parent
784f003068
commit
9ba3792038
2 changed files with 12 additions and 2 deletions
|
|
@ -1448,7 +1448,10 @@ do_remove_callbacks(struct spa_loop *loop,
|
|||
static void hook_removed(struct spa_hook *hook)
|
||||
{
|
||||
struct filter *impl = hook->priv;
|
||||
pw_loop_invoke(impl->data_loop, do_remove_callbacks, 1, NULL, 0, true, impl);
|
||||
if (impl->data_loop)
|
||||
pw_loop_invoke(impl->data_loop, do_remove_callbacks, 1, NULL, 0, true, impl);
|
||||
else
|
||||
spa_zero(impl->rt_callbacks);
|
||||
hook->priv = NULL;
|
||||
hook->removed = NULL;
|
||||
}
|
||||
|
|
@ -1541,8 +1544,10 @@ int pw_filter_update_properties(struct pw_filter *filter, void *port_data, const
|
|||
static void node_event_destroy(void *data)
|
||||
{
|
||||
struct pw_filter *filter = data;
|
||||
struct filter *impl = SPA_CONTAINER_OF(filter, struct filter, this);
|
||||
spa_hook_remove(&filter->node_listener);
|
||||
filter->node = NULL;
|
||||
impl->data_loop = NULL;
|
||||
}
|
||||
|
||||
static const struct pw_impl_node_events node_events = {
|
||||
|
|
|
|||
|
|
@ -1344,8 +1344,10 @@ static int node_event_param(void *object, int seq,
|
|||
static void node_event_destroy(void *data)
|
||||
{
|
||||
struct pw_stream *stream = data;
|
||||
struct stream *impl = SPA_CONTAINER_OF(stream, struct stream, this);
|
||||
spa_hook_remove(&stream->node_listener);
|
||||
stream->node = NULL;
|
||||
impl->data_loop = NULL;
|
||||
}
|
||||
|
||||
static void node_event_info(void *data, const struct pw_node_info *info)
|
||||
|
|
@ -1707,7 +1709,10 @@ do_remove_callbacks(struct spa_loop *loop,
|
|||
static void hook_removed(struct spa_hook *hook)
|
||||
{
|
||||
struct stream *impl = hook->priv;
|
||||
pw_loop_invoke(impl->data_loop, do_remove_callbacks, 1, NULL, 0, true, impl);
|
||||
if (impl->data_loop)
|
||||
pw_loop_invoke(impl->data_loop, do_remove_callbacks, 1, NULL, 0, true, impl);
|
||||
else
|
||||
spa_zero(impl->rt_callbacks);
|
||||
hook->priv = NULL;
|
||||
hook->removed = NULL;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue