Membrane.VideoMixer.Filter (membrane_video_mixer_plugin v2.2.6)

Copy Markdown View Source

Provides a Membrane.Filter that produces a video output of the same size and pixel properties of its primary video input, mixed with other video sources according to the provided filtering.

Element options

Passed via struct Membrane.VideoMixer.Filter.t/0

  • layout_builder

    layout_builder_t

    Required
    Returns a layout or a raw filter graph based on the input/output frame specifications.

  • builder_state

    any()

    Default value: nil
    Initial state for the filter graph builder.

Pads

:input

Accepted formats:

Membrane.RawVideo
Direction::input
Availability::on_request
Flow control::auto

Pad options:

  • role

    any()

    Default value: nil

  • fit_mode

    :crop | :fit

    Default value: :crop

:primary

Accepted formats:

Membrane.RawVideo
Direction::input
Availability::always
Flow control::auto

Pad options:

  • role

    atom()

    Default value: :primary

  • fit_mode

    :crop | :fit

    Default value: :crop

:output

Accepted formats:

Membrane.RawVideo
Direction::output
Availability::always
Flow control::auto

Summary

Types

Options for pad :input

Options for pad :primary

t()

Struct containing options for Membrane.VideoMixer.Filter

Functions

Returns description of options available for this module

Types

input_pad_opts()

@type input_pad_opts() :: [role: any(), fit_mode: :crop | :fit]

Options for pad :input

layout_builder_t()

@type layout_builder_t() :: (output_spec :: VideoMixer.FrameSpec.t(),
                       inputs :: %{required(any()) => VideoMixer.FrameSpec.t()},
                       builder_state :: any() ->
                         {:layout, VideoMixer.FilterGraph.layout()}
                         | {:layout, VideoMixer.FilterGraph.layout(),
                            slot_mapping :: %{required(atom()) => any()}}
                         | {:raw, VideoMixer.filter_graph_t()})

primary_pad_opts()

@type primary_pad_opts() :: [role: atom(), fit_mode: :crop | :fit]

Options for pad :primary

t()

@type t() :: %Membrane.VideoMixer.Filter{
  builder_state: any(),
  layout_builder: layout_builder_t()
}

Struct containing options for Membrane.VideoMixer.Filter

Functions

options()

@spec options() :: keyword()

Returns description of options available for this module