Membrane.RTC.Engine.Endpoint.Recording.Reporter (Membrane RTC Engine Recording Endpoint v0.4.0)
View SourceModule responsible for creating report with information needed to decode recorded streams.
Each stream is represented as a track that includes the following fields:
type- Specifies either:videoor:audio.encoding- Necessary for decoding.offset- Represents the offset compared to the first track (the first track always has an offset of 0). The the offset is calculated based on thehandle_pad_addedcall time.start_timestamp- Specifies the RTP timestamp of the first buffer.start_timestamp_wallclock- Denotes the wallclock timestamp of the first buffer.end_timestamp- Indicates the RTP timestamp of the last buffer.clock_rate- Necessary for decoding.metadata- Contains custom data attached by peer to the track.origin- Specifies the component that published the track.
Summary
Functions
Returns a specification to start this module under a supervisor.
Types
@type filename() :: String.t()
@type report() :: %{ recording_id: String.t(), tracks: %{required(filename()) => track_report()} }
@opaque state()
@type track_report() :: %{ type: Membrane.RTC.Engine.Track.t(), encoding: Membrane.RTC.Engine.Track.encoding(), offset: pos_integer(), start_timestamp: pos_integer(), start_timestamp_wallclock: pos_integer(), end_timestamp: pos_integer(), clock_rate: Membrane.RTP.clock_rate(), metadata: any(), origin: String.t() }
Functions
@spec add_track(pid(), Membrane.RTC.Engine.Track.t(), filename(), pos_integer()) :: :ok
Returns a specification to start this module under a supervisor.
See Supervisor.
@spec end_timestamp(pid(), Membrane.RTC.Engine.Track.id(), pos_integer()) :: :ok
@spec rtcp_packet( pid(), Membrane.RTC.Engine.Track.id(), Membrane.RTCP.SenderReportPacket.t() ) :: :ok
@spec start_timestamp(pid(), Membrane.RTC.Engine.Track.id(), pos_integer()) :: :ok
@spec stop(pid()) :: :ok