diff --git a/lib/membrane/core/element/demand_controller/auto_flow_utils.ex b/lib/membrane/core/element/demand_controller/auto_flow_utils.ex index 8af904e18..93979661c 100644 --- a/lib/membrane/core/element/demand_controller/auto_flow_utils.ex +++ b/lib/membrane/core/element/demand_controller/auto_flow_utils.ex @@ -152,7 +152,7 @@ defmodule Membrane.Core.Element.DemandController.AutoFlowUtils do pad_to_queue_map = pad_ref_list |> Enum.filter(&hard_corcked?(&1, state)) - |> Map.new(&PadModel.get_data!(state, &1, [:auto_flow_queue])) + |> Map.new(&{&1, PadModel.get_data!(state, &1, :auto_flow_queue)}) state = handle_queued_items(pad_to_queue_map, state) @@ -176,7 +176,7 @@ defmodule Membrane.Core.Element.DemandController.AutoFlowUtils do {:empty, _empty_queue} -> pad_to_queue_map - |> Map.pop(pad_ref) + |> Map.delete(pad_ref) |> handle_queued_items(state) end end diff --git a/lib/membrane/core/element/effective_flow_controller.ex b/lib/membrane/core/element/effective_flow_controller.ex index 5a8729846..68ec75e63 100644 --- a/lib/membrane/core/element/effective_flow_controller.ex +++ b/lib/membrane/core/element/effective_flow_controller.ex @@ -132,9 +132,9 @@ defmodule Membrane.Core.Element.EffectiveFlowController do end) state.pads_data - |> Enum.filter(fn - {_pad_ref, %{direction: :input, flow_contorl: :auto}} -> true - _other -> false + |> Enum.flat_map(fn + {pad_ref, %{direction: :input, flow_control: :auto}} -> [pad_ref] + _other -> [] end) |> AutoFlowUtils.auto_adjust_atomic_demand(state) end