diff --git a/lib/membrane/core/pipeline.ex b/lib/membrane/core/pipeline.ex index a20a5bfe1..981cc5c6e 100644 --- a/lib/membrane/core/pipeline.ex +++ b/lib/membrane/core/pipeline.ex @@ -57,6 +57,7 @@ defmodule Membrane.Core.Pipeline do state = %State{ module: params.module, + name: params.name, synchronization: %{ clock_proxy: clock_proxy, clock_provider: %{clock: nil, provider: nil}, diff --git a/lib/membrane/core/pipeline/callback_context.ex b/lib/membrane/core/pipeline/callback_context.ex index 0e4948e4e..9a5c723c9 100644 --- a/lib/membrane/core/pipeline/callback_context.ex +++ b/lib/membrane/core/pipeline/callback_context.ex @@ -18,6 +18,7 @@ defmodule Membrane.Core.Pipeline.CallbackContext do clock: state.synchronization.clock_proxy, children: state.children, module: state.module, + name: state.name, playback: state.playback, resource_guard: state.resource_guard, utility_supervisor: state.subprocess_supervisor diff --git a/lib/membrane/core/pipeline/state.ex b/lib/membrane/core/pipeline/state.ex index 7009da1e6..9c39a7038 100644 --- a/lib/membrane/core/pipeline/state.ex +++ b/lib/membrane/core/pipeline/state.ex @@ -45,6 +45,7 @@ defmodule Membrane.Core.Pipeline.State do # importance and possibly near other related fields. defstruct module: nil, + name: nil, playback: :stopped, internal_state: nil, children: %{}, diff --git a/lib/membrane/pipeline.ex b/lib/membrane/pipeline.ex index 2ae71cb7f..d4168b66a 100644 --- a/lib/membrane/pipeline.ex +++ b/lib/membrane/pipeline.ex @@ -338,6 +338,7 @@ defmodule Membrane.Pipeline do name = case Keyword.fetch(process_options, :name) do {:ok, name} when is_atom(name) -> Atom.to_string(name) + {:ok, {:via, Registry, {_registry, name}}} -> name _other -> nil end |> case do diff --git a/lib/membrane/pipeline/callback_context.ex b/lib/membrane/pipeline/callback_context.ex index a93454efd..25f88e736 100644 --- a/lib/membrane/pipeline/callback_context.ex +++ b/lib/membrane/pipeline/callback_context.ex @@ -18,6 +18,7 @@ defmodule Membrane.Pipeline.CallbackContext do :children => %{Membrane.Child.name() => Membrane.ChildEntry.t()}, :clock => Membrane.Clock.t(), :module => module(), + :name => term(), :playback => Membrane.Playback.t(), :resource_guard => Membrane.ResourceGuard.t(), :utility_supervisor => Membrane.UtilitySupervisor.t(),