Decodes Annex B H.264 access units into leased NV12 DMA-BUF %VideoInterop.Frame{} payloads or
copied raw frames.
DMA-BUF output carries a concrete sync-file acquire fence. Its native storage and fence lifetime
are owned by a bounded VideoInterop.LeaseOwner with authenticated abandonment guards.
Presentation remains outside this package; connect canonical output to
Membrane.VideoInterop.Sink when frames need to be rendered.
Element options
Passed via struct Membrane.H264.Decoder.t/0
outputoutput_mode()Default value:
:dmabuf
Whether to emit canonical DMA-BUF or copied raw framesoutput_formatpixel_format()Default value:
:NV12
Pixel format to use for copied raw outputhw_deviceString.t()Default value:
"/dev/dri/renderD128"
Hardware decode devicedecoderdecoder_backend()Default value:
:auto
Decoder backend to usemax_in_flightpos_integer()Default value:
16
Maximum number of canonical frame leases
Pads
:input
Accepted formats:
%H264{alignment: :au, stream_structure: :annexb}| Direction: | :input |
| Availability: | :always |
| Flow control: | :auto |
:output
Accepted formats:
%Format{storage: %StorageFormat{fourcc: @nv12_fourcc}}%RawVideo{pixel_format: format, aligned: true} when format in @formats| Direction: | :output |
| Availability: | :always |
| Flow control: | :auto |
Summary
Types
Decoder backend to use.
Decoder output mode.
Supported copied output pixel formats.
Struct containing options for Membrane.H264.Decoder
Types
@type decoder_backend() :: :auto | :vaapi | :v4l2request | :v4l2m2m | :software
Decoder backend to use.
@type output_mode() :: :dmabuf | :raw
Decoder output mode.
@type pixel_format() ::
:I420
| :I422
| :I444
| :RGB
| :BGRA
| :RGBA
| :NV12
| :NV21
| :YV12
| :AYUV
| :YUY2
Supported copied output pixel formats.
@type t() :: %Membrane.H264.Decoder{ decoder: decoder_backend(), hw_device: String.t(), max_in_flight: pos_integer(), output: output_mode(), output_format: pixel_format() }
Struct containing options for Membrane.H264.Decoder
Functions
@spec options() :: keyword()
Returns description of options available for this module