Current section

Files

Jump to
membrane_core lib membrane buffer metric count.ex
Raw

lib/membrane/buffer/metric/count.ex

defmodule Membrane.Buffer.Metric.Count do
@moduledoc """
Implementation of `Membrane.Buffer.Metric` for the `:buffers` unit.
> #### Deprecated {: .warning}
> This module is deprecated. The metric functionality has been moved to the internal API
> of the Membrane Framework and is no longer accessible via this behaviour.
"""
@behaviour Membrane.Buffer.Metric
require Membrane.Logger
@impl true
def buffer_size_approximation() do
ensure_deprecated_warning_printed()
1
end
@impl true
def buffers_size(buffers) do
ensure_deprecated_warning_printed()
length(buffers)
end
@impl true
def split_buffers(buffers, count) do
ensure_deprecated_warning_printed()
Enum.split(buffers, count)
end
defp ensure_deprecated_warning_printed() do
if Process.get({__MODULE__, :deprecated_warned}) == nil do
Membrane.Logger.warning("""
#{__MODULE__} is deprecated. The metric functionality has been moved to the internal \
API of the Membrane Framework.
""")
Process.put({__MODULE__, :deprecated_warned}, true)
end
end
end