MediaCodecs.H264.AccessUnitSplitter (MediCodecs v0.10.0)

View Source

Module responsible for splitting a stream of H264 NAL units into access units.

Most of the code copied from https://github.com/membraneframework/membrane_h26x_plugin/blob/v0.10.5/lib/membrane_h264_plugin/h264/au_splitter.ex

Summary

Functions

Flushes the splitter and return the remaining nalus as an complete access unit

Creates a new access unit splitter.

Processes a NAL unit.

Types

access_unit()

@type access_unit() :: [binary()]

t()

@type t() :: %MediaCodecs.H264.AccessUnitSplitter{
  access_unit: access_unit(),
  parsed_pps: %{required(non_neg_integer()) => MediaCodecs.H264.NALU.t()},
  parsed_sps: %{required(non_neg_integer()) => MediaCodecs.H264.NALU.t()},
  previous_nalu: MediaCodecs.H264.NALU.t() | nil,
  sps: [binary()],
  stage: :first | :second
}

Functions

flush(splitter)

@spec flush(t()) :: access_unit()

Flushes the splitter and return the remaining nalus as an complete access unit

new()

@spec new() :: t()

Creates a new access unit splitter.

process(nalu_data, splitter)

@spec process(nalu :: binary(), t()) :: {access_unit() | nil, t()}

Processes a NAL unit.