Membrane.RTC.Engine.Endpoint.Recording.Reporter (Membrane RTC Engine Recording Endpoint v0.3.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:video
or: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_added
call 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