Membrane.VideoInterop.Source (membrane_video_interop v0.1.0)

Copy Markdown View Source

Receives %VideoInterop.Frame{} messages and exposes them on a Membrane pad.

The element is a bounded latest-frame ingress. Send {message_tag, frame} to the PID announced by :notify. Sending a matching message transfers frame ownership to the source; the sender must not release it afterward.

When downstream has no demand, a new frame replaces and releases the previously pending frame. Invalid matching frames and pending shutdown frames are also released by the source. Invalid ingress is reported to the parent as {:video_interop_source_error, reason}.

Element options

Passed via struct Membrane.VideoInterop.Source.t/0

  • notify

    pid() | nil

    Default value: nil
    Process notified with the source element PID when playback starts

  • message_tag

    atom() | String.t()

    Default value: :video_interop_frame
    Tag expected in {tag, frame} ingress messages

Pads

:output

Accepted formats:

VideoInterop.Format
Direction::output
Availability::always
Flow control::manual
Demand unit::buffers

Summary

Types

t()

Struct containing options for Membrane.VideoInterop.Source

Functions

Returns description of options available for this module

Types

t()

@type t() :: %Membrane.VideoInterop.Source{
  message_tag: atom() | String.t(),
  notify: pid() | nil
}

Struct containing options for Membrane.VideoInterop.Source

Functions

options()

@spec options() :: keyword()

Returns description of options available for this module