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_builderlayout_builder_tRequired
Returns a layout or a raw filter graph based on the input/output frame specifications.builder_stateany()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:
roleany()Default value:
nilfit_mode:crop | :fitDefault value:
:crop
:primary
Accepted formats:
Membrane.RawVideo| Direction: | :input |
| Availability: | :always |
| Flow control: | :auto |
Pad options:
roleatom()Default value:
:primaryfit_mode:crop | :fitDefault value:
:crop
:output
Accepted formats:
Membrane.RawVideo| Direction: | :output |
| Availability: | :always |
| Flow control: | :auto |
Summary
Types
Options for pad :input
Options for pad :primary
Struct containing options for Membrane.VideoMixer.Filter
Types
@type input_pad_opts() :: [role: any(), fit_mode: :crop | :fit]
Options for pad :input
@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()})
@type primary_pad_opts() :: [role: atom(), fit_mode: :crop | :fit]
Options for pad :primary
@type t() :: %Membrane.VideoMixer.Filter{ builder_state: any(), layout_builder: layout_builder_t() }
Struct containing options for Membrane.VideoMixer.Filter
Functions
@spec options() :: keyword()
Returns description of options available for this module