12 #ifndef ROC_PIPELINE_RECEIVER_SESSION_H_
13 #define ROC_PIPELINE_RECEIVER_SESSION_H_
110 size_t n_reports)
const;
#define ROC_ATTR_NODISCARD
Emit warning if function result is not checked.
IArena & arena() const
Get arena.
Base class for List element.
Optionally constructed object.
Base class for object with reference counter.
Receiver session sub-pipeline.
ReceiverParticipantMetrics get_metrics() const
Get session metrics.
audio::IFrameReader & frame_reader()
Get frame reader.
void generate_reports(const char *report_cname, packet::stream_source_t report_ssrc, core::nanoseconds_t report_time, rtcp::RecvReport *reports, size_t n_reports) const
Generate RTCP reports to be delivered to sender.
ReceiverSession(const ReceiverSessionConfig &session_config, const ReceiverCommonConfig &common_config, const rtp::EncodingMap &encoding_map, packet::PacketFactory &packet_factory, audio::FrameFactory &frame_factory, core::IArena &arena)
Initialize.
bool refresh(core::nanoseconds_t current_time, core::nanoseconds_t *next_refresh)
Refresh pipeline according to current time.
bool reclock(core::nanoseconds_t playback_time)
Adjust session clock to match consumer clock.
size_t num_reports() const
Get number of RTCP reports to be generated.
bool is_valid() const
Check if the session was succefully constructed.
ROC_ATTR_NODISCARD status::StatusCode route_packet(const packet::PacketPtr &packet)
Route a packet to the session.
void process_report(const rtcp::SendReport &report)
Process RTCP report obtained from sender.
RTP encoding map. Thread-safe. Returned encodings are immutable and can be safely used from any threa...
FEC block decoder interface.
Audio frame decoder interface.
Audio resampler interface.
int64_t nanoseconds_t
Nanoseconds.
uint32_t stream_source_t
Packet stream identifier.
Optionally constructed object.
Base class for object with reference counter.
Route packets to writers.
Parameters common for all receiver sessions.
Receiver-side metrics specific to one participant (remote sender).
Parameters of receiver session.
Receiver report, for inspection on sender.
Sender report, for inspection on receiver.
Fills capture timestamp field in packets.
Various units used in packets.