Packages
membrane_core
0.10.1
1.3.4
1.3.3
1.3.2
1.3.1
1.3.0
1.2.7
1.2.6
1.2.5
retired
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.2.0-rc1
1.1.2
1.1.1
1.1.0
1.1.0-rc1
1.1.0-rc0
1.0.1
1.0.0
1.0.0-rc1
1.0.0-rc0
0.12.9
0.12.8
0.12.7
0.12.6
0.12.5
0.12.4
0.12.3
0.12.2
0.12.1
0.12.0
retired
0.11.5
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.2
0.10.1
0.10.0
0.9.0
0.8.2
0.8.1
0.8.0
0.7.0
0.6.1
0.6.0
0.5.3
0.5.2
0.5.1
0.5.0
0.4.3
0.4.2
0.4.1
0.4.0
0.3.2
0.3.1
0.3.0
0.2.2
0.2.1
0.2.0
0.1.1
0.1.0
Membrane Multimedia Framework (Core)
Current section
Files
Jump to
Current section
Files
lib/membrane/buffer/metric.ex
defmodule Membrane.Buffer.Metric do
@moduledoc """
Specifies API for metrics that analyze data in terms of a given unit
"""
alias Membrane.Buffer
alias __MODULE__
@type unit_t :: :buffers | :bytes
@callback buffer_size_approximation() :: pos_integer
@callback buffers_size([%Buffer{}] | []) :: non_neg_integer
@callback split_buffers([%Buffer{}] | [], non_neg_integer) ::
{[%Buffer{}] | [], [%Buffer{}] | []}
@spec from_unit(unit_t()) :: module()
def from_unit(:buffers), do: Metric.Count
def from_unit(:bytes), do: Metric.ByteSize
end