Roc Toolkit internal modules
Roc Toolkit: real-time audio streaming
|
RTCP participant. More...
#include <iparticipant.h>
Public Member Functions | |
virtual ParticipantInfo | participant_info ()=0 |
Get local participant info. Invoked to know local CNAME, SSRC, etc. More... | |
virtual void | change_source_id ()=0 |
Change local SSRC to another randomly selected number. Invoked when SSRC collision is detected. More... | |
virtual bool | has_send_stream () |
Check whether pipeline has local sending stream. There can be only one local sending stream (or none). More... | |
virtual SendReport | query_send_stream (core::nanoseconds_t report_time) |
Query sending report for local sending stream. Report will be used to generate RTCP packets for remote receivers. More... | |
virtual ROC_ATTR_NODISCARD status::StatusCode | notify_send_stream (packet::stream_source_t recv_source_id, const RecvReport &recv_report) |
Notify local sending stream with receiver report. Report was gathered from RTCP packets from remote receiver. recv_source_id identifies remote receiver which sent report. In case of multicast sessions, one sending stream may have multiple receivers. More... | |
virtual size_t | num_recv_streams () |
Check how many local receiving streams are present. Multiple local receiving streams are allowed, each one corresponding to its own remote sender with unique sender SSRC. More... | |
virtual void | query_recv_streams (RecvReport *reports, size_t n_reports, core::nanoseconds_t report_time) |
Query receiving reports from local receiving streams. Reports will be used to generate RTCP packets for remote senders. reports points to a buffer of n_reports size, where n_reports <= num_recv_streams(). More... | |
virtual ROC_ATTR_NODISCARD status::StatusCode | notify_recv_stream (packet::stream_source_t send_source_id, const SendReport &send_report) |
Notify local receiving stream with sender report. Report was gathered from RTCP packets from remote sender. send_source_id identifies remote sender which sent report. If there are multiple receiving streams, each one will be notified with corresponding report. More... | |
virtual void | halt_recv_stream (packet::stream_source_t send_source_id) |
Terminate local receiving stream. Invoked when BYE packet is received from remote sender. send_source_id identifies remote sender which sent BYE. More... | |
RTCP participant.
Implemented by sender and receiver pipelines (see roc_pipeline module).
Used by rtcp::Communicator to generate reports for local sending and/or receiving streams, and to process reports from remote streams.
One RTCP participant is usually associated with zero or one local sending stream and one or a few (in case of multicast) remote sending streams.
For the local sending stream, multiple remote receivers may exists. Communicator will query one sending report from IParticipant for the sending stream, and notify IParticipant with multiple receiving reports, one for every discovered remote receiver.
For each local receiving stream, there is corresponding remote sender. Communicator will query receiving report from IParticipant for every local receiving stream, as will notify IParticipant with corresponding sender report for every local receiving stream.
Single IParticipant instance usually corresponds to a single RTP session. However, this is not a strict requirement: if configuration requires multiple related RTP sessions to transfer single logical source, e.g. one RTP session for media packets and another RTP session for FEC packets, then both RTP sessions will be associated with a single IParticipant instance.
Definition at line 49 of file iparticipant.h.
|
pure virtual |
Change local SSRC to another randomly selected number. Invoked when SSRC collision is detected.
|
inlinevirtual |
Terminate local receiving stream. Invoked when BYE packet is received from remote sender. send_source_id
identifies remote sender which sent BYE.
Definition at line 114 of file iparticipant.h.
|
inlinevirtual |
Check whether pipeline has local sending stream. There can be only one local sending stream (or none).
Definition at line 63 of file iparticipant.h.
|
inlinevirtual |
Notify local receiving stream with sender report. Report was gathered from RTCP packets from remote sender. send_source_id
identifies remote sender which sent report. If there are multiple receiving streams, each one will be notified with corresponding report.
Definition at line 106 of file iparticipant.h.
|
inlinevirtual |
Notify local sending stream with receiver report. Report was gathered from RTCP packets from remote receiver. recv_source_id
identifies remote receiver which sent report. In case of multicast sessions, one sending stream may have multiple receivers.
Definition at line 79 of file iparticipant.h.
|
inlinevirtual |
Check how many local receiving streams are present. Multiple local receiving streams are allowed, each one corresponding to its own remote sender with unique sender SSRC.
Definition at line 87 of file iparticipant.h.
|
pure virtual |
Get local participant info. Invoked to know local CNAME, SSRC, etc.
|
inlinevirtual |
Query receiving reports from local receiving streams. Reports will be used to generate RTCP packets for remote senders. reports
points to a buffer of n_reports
size, where n_reports
<= num_recv_streams().
Definition at line 95 of file iparticipant.h.
|
inlinevirtual |
Query sending report for local sending stream. Report will be used to generate RTCP packets for remote receivers.
Definition at line 69 of file iparticipant.h.