View Source Membrane.VideoCompositor (Membrane Video Compositor plugin v0.7.0)
A bin responsible for doing framerate conversion on all input videos and piping them into the compositor element.
Bin options
Passed via struct Membrane.VideoCompositor.t/0
output_stream_format
Membrane.RawVideo.t()
Required
Stream format for the output video of the compositorhandler
Handler.t()
Required
Module implementing callbacks reacting to VC events. Specifies howMembrane.VideoCompositor.Scene
should look like. Describes what VC should compose.queuing_strategy
QueueingStrategy.t()
Default value:
Membrane.VideoCompositor.QueueingStrategy.Offline
Specifies used frames queueing strategymetadata
init_metadata()
Default value:
nil
User-specified init metadata passed to handler callbacks. Passing init metadata intoMembrane.VideoCompositor.Handler.handle_init/1
callback allows the user to alternate custom-implemented init callback logic.
Pads
:input
Accepted formats:
%RawVideo{pixel_format: :I420}
Direction: | :input |
Availability: | :on_request |
Pad options:
timestamp_offset
Membrane.Time.non_neg()
Default value:
0
Input stream PTS offset in nanoseconds. Must be non-negative.metadata
input_pad_metadata()
Default value:
nil
User-specified input stream metadata passed to handler callbacks. Passing pad metadata intoMembrane.VideoCompositor.Handler.handle_inputs_change/3
callback, allows the user to alternate custom-implemented callbacks logic, e.g. prioritizing input stream in theMembrane.VideoCompositor.Scene
structs returned from callback.
:output
Accepted formats:
%RawVideo{pixel_format: :I420}
Direction: | :output |
Availability: | :always |
Summary
Types
User-specified init metadata passed to handler callbacks.
Passing init metadata into Membrane.VideoCompositor.Handler.handle_init/1
callback allows
the user to alternate custom-implemented init callback logic.
User-specified input stream metadata passed to handler callbacks.
Passing pad metadata into Membrane.VideoCompositor.Handler.handle_inputs_change/3
callback, allows the user to alternate custom-implemented callbacks logic,
e.g. prioritizing input stream in the Membrane.VideoCompositor.Scene
structs returned from callback.
Options for pad :input
Struct containing options for Membrane.VideoCompositor
Types
@type init_metadata() :: any()
User-specified init metadata passed to handler callbacks.
Passing init metadata into Membrane.VideoCompositor.Handler.handle_init/1
callback allows
the user to alternate custom-implemented init callback logic.
@type init_options() :: %Membrane.VideoCompositor{ handler: Membrane.VideoCompositor.Handler.t(), metadata: init_metadata(), output_stream_format: Membrane.RawVideo.t(), queuing_strategy: Membrane.VideoCompositor.QueueingStrategy.t() }
@type input_pad_metadata() :: any()
User-specified input stream metadata passed to handler callbacks.
Passing pad metadata into Membrane.VideoCompositor.Handler.handle_inputs_change/3
callback, allows the user to alternate custom-implemented callbacks logic,
e.g. prioritizing input stream in the Membrane.VideoCompositor.Scene
structs returned from callback.
@type input_pad_options() :: %{ metadata: input_pad_metadata(), timestamp_offset: Membrane.Time.non_neg() }
@type input_pad_opts() :: [ timestamp_offset: Membrane.Time.non_neg(), metadata: input_pad_metadata() ]
Options for pad :input
@type t() :: %Membrane.VideoCompositor{ handler: Membrane.VideoCompositor.Handler.t(), metadata: init_metadata(), output_stream_format: Membrane.RawVideo.t(), queuing_strategy: Membrane.VideoCompositor.QueueingStrategy.t() }
Struct containing options for Membrane.VideoCompositor
Functions
@spec options() :: keyword()
Returns description of options available for this module