View Source Membrane.H265.Parser.AUSplitter (Membrane H265 plugin v0.4.0)

Module providing functionalities to group H265 NAL units into access units.

The access unit splitter's behaviour is based on section 7.4.2.4.4 "Order of NAL units and coded pictures and association to access units" of the "ITU-T Rec. H.265 (08/2021)" specification.

Link to this section Summary

Types

A type representing an access unit - a list of logically associated NAL units.

t()

A structure holding a state of the access unit splitter.

Functions

Returns a structure holding a clear state of the access unit splitter.

Splits the given list of NAL units into the access units.

Link to this section Types

Specs

access_unit() :: [Membrane.H265.Parser.NALu.t()]

A type representing an access unit - a list of logically associated NAL units.

Specs

t()

A structure holding a state of the access unit splitter.

Link to this section Functions

Specs

new() :: t()

Returns a structure holding a clear state of the access unit splitter.

Link to this function

split(nalus, assume_au_aligned \\ false, state)

View Source

Specs

split([Membrane.H265.Parser.NALu.t()], boolean(), t()) :: {[access_unit()], t()}

Splits the given list of NAL units into the access units.

It can be used for a stream which is not completely available at the time of function invocation, as the function updates the state of the access unit splitter - the function can be invoked once more, with new NAL units and the updated state. Under the hood, split/2 defines a finite state machine with two states: :first and :second. The state :first describes the state before reaching the first segment of a coded picture NALu of a given access unit. The state :second describes the state after processing the first segment of the coded picture of a given access unit.