Membrane Core v0.1.1 Membrane.PullBuffer View Source

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

It stores Membrane.Buffer, Membrane.Event and Membrane.Caps structs and prevents the situation when 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() ::
  {:preffered_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.PullBuffer{
  current_size: non_neg_integer(),
  demand: non_neg_integer(),
  metric: module(),
  min_demand: pos_integer(),
  name: Membrane.Element.name_t(),
  preferred_size: pos_integer(),
  q: Qex.t(),
  sink: {pid(), Membrane.Element.name_t()},
  sink_name: Membrane.Pad.name_t(),
  toilet: boolean()
}

Link to this section Functions

Link to this function empty?(pull_buffer) View Source
empty?(t()) :: boolean()
Link to this function fill(pb) View Source
fill(t()) :: {:ok, t()}
Link to this function new(name, sink, sink_name, demand_in, props) View Source
new(
  Membrane.Element.name_t(),
  {pid(), Membrane.Element.name_t()},
  Membrane.Pad.name_t(),
  Membrane.Buffer.Metric.unit_t(),
  props_t()
) :: t()
Link to this function store(pb, type \\ :buffers, v) View Source
store(t(), atom(), any()) :: {:ok, t()} | {:error, any()}