Membrane Core v0.2.2 Membrane.Core.PullBuffer View Source

Buffer that is attached to the :input pad when working in a :pull mode.

It stores Membrane.Buffer, Membrane.Event and Membrane.Caps structs and prevents the situation where the data in a stream contains the discontinuities. It also guarantees that element won't be flooded with the incoming data.

Link to this section Summary

Types

Properties that can be passed when creating new PullBuffer

t()

Link to this section Types

Link to this type

prop_t() View Source
prop_t() ::
  {:preferred_size, pos_integer()}
  | {:min_demand, pos_integer()}
  | {:toilet, boolean()}

Properties that can be passed when creating new PullBuffer

Link to this type

props_t() View Source
props_t() :: [prop_t()]

Link to this type

t() View Source
t() :: %Membrane.Core.PullBuffer{
  current_size: non_neg_integer(),
  demand: non_neg_integer(),
  demand_pid: pid(),
  input_ref: Membrane.Element.Pad.ref_t(),
  metric: module(),
  min_demand: pos_integer(),
  name: Membrane.Element.name_t(),
  preferred_size: pos_integer(),
  q: Qex.t(),
  toilet: boolean()
}

Link to this section Functions

Link to this function

empty?(pull_buffer) View Source
empty?(t()) :: boolean()

Link to this function

new(name, demand_pid, input_ref, demand_unit, props) View Source

Link to this function

store(pb, type \\ :buffers, v) View Source
store(t(), atom(), any()) :: {:ok, t()} | {:error, any()}