View Source Membrane.LiveCompositor.Lifecycle (Membrane LiveCompositor Plugin v0.9.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 output_registered() :: :output_registered

The output pad was linked and the TCP connection was established between pipeline and the compositor instance.