View Source Membrane.LiveCompositor.Lifecycle (Membrane LiveCompositor Plugin v0.10.0)
Lifecycle of the input and output streams.
Input pad
Output pad
Notifications
notification/0
defines notifications that will be sent to the parent process at the specific
moments of the stream lifecycle.
Summary
Types
The compositor instance received the input. The first frames/samples of that input are ready to be used.
Input finished processing. After this notification you can unregister without drooping any frames/samples
The compositor instance received the input, and the first frames/samples of that input are used
for rendering. This notification can only be sent if compositor was already started either via
composing_strategy: :real_time_auto_init
or with :start_composing
message.
The input pad was linked and the TCP connection was established between pipeline and the compositor instance.
The output pad was linked and the TCP connection was established between pipeline and the compositor instance.
Types
@type input_delivered() :: :input_delivered
The compositor instance received the input. The first frames/samples of that input are ready to be used.
For example, if you want to ensure that some inputs are ready before you send the
:start_composing
notification, you can wait for input_delivered/0
for specific inputs.
Note that you need to set composing_strategy:
to something other than :real_time_auto_init
if you want to send :start_composing
message yourself.
@type input_eos() :: :input_eos
Input finished processing. After this notification you can unregister without drooping any frames/samples
@type input_playing() :: :input_playing
The compositor instance received the input, and the first frames/samples of that input are used
for rendering. This notification can only be sent if compositor was already started either via
composing_strategy: :real_time_auto_init
or with :start_composing
message.
This notification is usually sent at the same time as input_delivered/0
except for 2 cases:
- First frames/samples of the input were delivered before composing was started.
- If input has the
offset
field defined.
@type input_registered() :: :input_registered
The input pad was linked and the TCP connection was established between pipeline and the compositor instance.
@type notification() :: {input_registered() | input_delivered() | input_playing() | input_eos() | output_registered(), Membrane.Pad.ref(), Membrane.LiveCompositor.Context.t()}
@type output_registered() :: :output_registered
The output pad was linked and the TCP connection was established between pipeline and the compositor instance.