3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/external/webrtc/ArrayView.h"
7#include "mc/external/webrtc/RTCPPacketType.h"
8#include "mc/external/webrtc/RTCPReceiver.h"
9#include "mc/external/webrtc/RTCPSender.h"
10#include "mc/external/webrtc/RtcpMode.h"
11#include "mc/external/webrtc/RtpRtcpInterface.h"
12#include "mc/external/webrtc/RtpSequenceNumberMap.h"
29namespace webrtc::rtcp {
class TmmbItem; }
42 struct RtpSenderContext {
56 RtpSenderContext& operator=(RtpSenderContext
const&);
57 RtpSenderContext(RtpSenderContext
const&);
82 ModuleRtpRtcpImpl2& operator=(ModuleRtpRtcpImpl2
const&);
83 ModuleRtpRtcpImpl2(ModuleRtpRtcpImpl2
const&);
89 virtual ~ModuleRtpRtcpImpl2() ;
93 virtual void SetRemoteSSRC(uint ssrc) ;
95 virtual void SetLocalSsrc(uint local_ssrc) ;
97 virtual void RegisterSendPayloadFrequency(
int payload_type,
int payload_frequency) ;
99 virtual int DeRegisterSendPayload(schar) ;
101 virtual void SetExtmapAllowMixed(
bool extmap_allow_mixed) ;
103 virtual void RegisterRtpHeaderExtension(::std::string_view uri,
int id) ;
105 virtual void DeregisterSendRtpHeaderExtension(::std::string_view uri) ;
107 virtual bool SupportsPadding() const ;
109 virtual
bool SupportsRtxPayloadPadding() const ;
111 virtual uint StartTimestamp() const ;
113 virtual
void SetStartTimestamp(uint timestamp) ;
115 virtual ushort SequenceNumber() const ;
117 virtual
void SetSequenceNumber(ushort seq_num) ;
119 virtual
void SetRtpState(::webrtc::
RtpState const& rtp_state) ;
121 virtual
void SetRtxState(::webrtc::
RtpState const& rtp_state) ;
123 virtual ::webrtc::
RtpState GetRtpState() const ;
125 virtual ::webrtc::
RtpState GetRtxState() const ;
127 virtual
void SetNonSenderRttMeasurement(
bool enabled) ;
129 virtual uint SSRC() const ;
131 virtual
void SetMid(::
std::string_view mid) ;
133 virtual
void SetRtxSendStatus(
int mode) ;
135 virtual
int RtxSendStatus() const ;
137 virtual ::
std::optional<uint> RtxSsrc() const ;
139 virtual
void SetRtxSendPayloadType(
int payload_type,
int associated_payload_type) ;
141 virtual ::
std::optional<uint> FlexfecSsrc() const ;
143 virtual
int SetSendingStatus(
bool sending) ;
145 virtual
bool Sending() const ;
147 virtual
void SetSendingMediaStatus(
bool sending) ;
149 virtual
bool SendingMedia() const ;
151 virtual
bool IsAudioConfigured() const ;
153 virtual
void SetAsPartOfAllocation(
bool part_of_allocation) ;
156 OnSendingRtpFrame(uint timestamp, int64 capture_time_ms,
int payload_type,
bool force_sender_report) ;
158 virtual
bool CanSendPacket(::webrtc::
RtpPacketToSend const& packet) const ;
162 virtual
void SendPacket(
167 virtual
bool TrySendPacket(
172 virtual
void OnBatchComplete() ;
174 virtual
void SetFecProtectionParams(
181 virtual
void OnAbortedRetransmissions(::webrtc::
ArrayView<ushort const> sequence_numbers) ;
183 virtual
void OnPacketsAcknowledged(::webrtc::
ArrayView<ushort const> sequence_numbers) ;
186 GeneratePadding(uint64 target_size_bytes) ;
189 GetSentRtpPacketInfos(::webrtc::
ArrayView<ushort const> sequence_numbers) const ;
191 virtual uint64 ExpectedPerPacketOverhead() const ;
193 virtual
void OnPacketSendingThreadSwitched() ;
195 virtual ::webrtc::RtcpMode RTCP() const ;
197 virtual
void SetRTCPStatus(::webrtc::RtcpMode method) ;
199 virtual
int SetCNAME(::
std::string_view c_name) ;
201 virtual ::
std::optional<::webrtc::
TimeDelta> LastRtt() const ;
203 virtual ::webrtc::
TimeDelta ExpectedRetransmissionTime() const ;
205 virtual
int SendRTCP(::webrtc::RTCPPacketType packet_type) ;
207 virtual
void GetSendStreamDataCounters(
218 virtual
void SetRemb(int64 bitrate_bps, ::
std::vector<uint> ssrcs) ;
220 virtual
void UnsetRemb() ;
222 virtual
void SetTmmbn(::
std::vector<::webrtc::rtcp::TmmbItem> bounding_set) ;
224 virtual uint64 MaxRtpPacketSize() const ;
226 virtual
void SetMaxRtpPacketSize(uint64 rtp_packet_size) ;
228 virtual
int SendNACK(ushort const* nack_list, ushort size) ;
230 virtual
void SendNack(::
std::vector<ushort> const& sequence_numbers) ;
232 virtual
void SetStorePacketsStatus(
bool enable, ushort number_to_store) ;
235 SendCombinedRtcpPacket(::
std::vector<::
std::unique_ptr<::webrtc::rtcp::RtcpPacket>> rtcp_packets) ;
237 virtual
int SendLossNotification(
238 ushort last_decoded_seq_num,
239 ushort last_received_seq_num,
240 bool decodability_flag,
241 bool buffering_allowed
246 virtual
void OnReceivedNack(::
std::vector<ushort> const& nack_sequence_numbers) ;
251 virtual
void OnRequestSendReport() ;
255 virtual ::webrtc::
RTPSender const* RtpSender() const ;
257 virtual ::webrtc::
RTPSender* RtpSender() ;
267 MCNAPI ModuleRtpRtcpImpl2(
360 MCNAPI
bool $OnSendingRtpFrame(uint timestamp, int64 capture_time_ms,
int payload_type,
bool force_sender_report);
394 MCNAPI ::webrtc::RtcpMode
$RTCP() const;
404 MCNAPI
int $SendRTCP(::webrtc::RTCPPacketType packet_type);
417 MCNAPI
void $SetRemb(int64 bitrate_bps, ::
std::vector<uint> ssrcs);
421 MCNAPI
void $SetTmmbn(::
std::vector<::webrtc::rtcp::TmmbItem> bounding_set);
427 MCNAPI
int $SendNACK(ushort const* nack_list, ushort size);
436 ushort last_decoded_seq_num,
437 ushort last_received_seq_num,
438 bool decodability_flag,
439 bool buffering_allowed
Definition Environment.h:7
MCAPI ::std::optional<::webrtc::RtpRtcpInterface::NonSenderRttStats > $GetNonSenderRttStats() const
MCAPI void $SetSequenceNumber(ushort seq_num)
MCAPI bool $SupportsPadding() const
MCAPI void * $ctor(::webrtc::Environment const &env, ::webrtc::RtpRtcpInterface::Configuration const &configuration)
MCAPI void $IncomingRtcpPacket(::webrtc::ArrayView< uchar const > rtcp_packet)
MCAPI::webrtc::RtcpMode $RTCP() const
MCAPI int $RtxSendStatus() const
MCAPI::webrtc::TimeDelta $ExpectedRetransmissionTime() const
MCAPI void $SetVideoBitrateAllocation(::webrtc::VideoBitrateAllocation const &bitrate)
MCAPI void PeriodicUpdate()
MCAPI void $SetRtxSendStatus(int mode)
MCAPI void $OnPacketsAcknowledged(::webrtc::ArrayView< ushort const > sequence_numbers)
MCAPI void $OnBatchComplete()
MCAPI bool $CanSendPacket(::webrtc::RtpPacketToSend const &packet) const
MCAPI void $SendPacket(::std::unique_ptr<::webrtc::RtpPacketToSend > packet, ::webrtc::PacedPacketInfo const &pacing_info)
MCAPI ::std::vector<::std::unique_ptr<::webrtc::RtpPacketToSend > > $FetchFecPackets()
MCAPI int $SetCNAME(::std::string_view c_name)
MCAPI void $SetRemoteSSRC(uint ssrc)
static MCAPI void ** $vftableForModuleRtpRtcp()
MCAPI int $SendLossNotification(ushort last_decoded_seq_num, ushort last_received_seq_num, bool decodability_flag, bool buffering_allowed)
MCAPI void $SetRtxSendPayloadType(int payload_type, int associated_payload_type)
MCAPI void $SetSendingMediaStatus(bool sending)
MCAPI::webrtc::RTCPSender::FeedbackState GetFeedbackState()
MCAPI void $SetMid(::std::string_view mid)
MCAPI void $SetRtpState(::webrtc::RtpState const &rtp_state)
MCAPI::webrtc::RTPSender const * $RtpSender() const
MCAPI void $SendNack(::std::vector< ushort > const &sequence_numbers)
MCAPI void $AssignSequenceNumber(::webrtc::RtpPacketToSend &packet)
MCAPI void $SetStorePacketsStatus(bool enable, ushort number_to_store)
MCAPI void $SetRemb(int64 bitrate_bps, ::std::vector< uint > ssrcs)
MCAPI void $SetFecProtectionParams(::webrtc::FecProtectionParams const &delta_params, ::webrtc::FecProtectionParams const &key_params)
MCAPI void $OnReceivedRtcpReportBlocks(::webrtc::ArrayView<::webrtc::ReportBlockData const > report_blocks)
MCAPI bool $SupportsRtxPayloadPadding() const
MCAPI int $SendNACK(ushort const *nack_list, ushort size)
MCAPI int64 rtt_ms() const
MCAPI int $DeRegisterSendPayload(schar)
MCAPI void $RegisterRtpHeaderExtension(::std::string_view uri, int id)
MCAPI void MaybeSendRtcp()
MCAPI void $SendCombinedRtcpPacket(::std::vector<::std::unique_ptr<::webrtc::rtcp::RtcpPacket > > rtcp_packets)
MCAPI bool $Sending() const
MCAPI bool $OnSendingRtpFrame(uint timestamp, int64 capture_time_ms, int payload_type, bool force_sender_report)
MCAPI void $DeregisterSendRtpHeaderExtension(::std::string_view uri)
MCAPI ::std::vector<::std::unique_ptr<::webrtc::RtpPacketToSend > > $GeneratePadding(uint64 target_size_bytes)
MCAPI uint64 $ExpectedPerPacketOverhead() const
static MCAPI void ** $vftableForRtpRtcpInterface()
MCAPI ::std::optional< uint > $FlexfecSsrc() const
MCAPI ::std::optional<::webrtc::TimeDelta > $LastRtt() const
MCAPI void $SetRtxState(::webrtc::RtpState const &rtp_state)
MCAPI bool $SendingMedia() const
MCAPI ::std::optional< uint > $RtxSsrc() const
MCAPI ushort $SequenceNumber() const
MCAPI void $OnRequestSendReport()
MCAPI void $RegisterSendPayloadFrequency(int payload_type, int payload_frequency)
MCAPI void $SetExtmapAllowMixed(bool extmap_allow_mixed)
MCAPI void $GetSendStreamDataCounters(::webrtc::StreamDataCounters *rtp_counters, ::webrtc::StreamDataCounters *rtx_counters) const
MCAPI::webrtc::RtpState $GetRtpState() const
MCAPI void $OnReceivedNack(::std::vector< ushort > const &nack_sequence_numbers)
MCAPI void $OnPacketSendingThreadSwitched()
MCAPI uint $StartTimestamp() const
MCAPI void $SetRTCPStatus(::webrtc::RtcpMode method)
MCAPI void $SetStartTimestamp(uint timestamp)
MCAPI uint64 $MaxRtpPacketSize() const
MCAPI void $SetLocalSsrc(uint local_ssrc)
MCAPI int $SendRTCP(::webrtc::RTCPPacketType packet_type)
MCAPI void $SetAsPartOfAllocation(bool part_of_allocation)
MCAPI bool $TrySendPacket(::std::unique_ptr<::webrtc::RtpPacketToSend > packet, ::webrtc::PacedPacketInfo const &pacing_info)
MCAPI ::std::vector<::webrtc::RtpSequenceNumberMap::Info > $GetSentRtpPacketInfos(::webrtc::ArrayView< ushort const > sequence_numbers) const
MCAPI::webrtc::RtpState $GetRtxState() const
MCAPI int $SetSendingStatus(bool sending)
MCAPI void $SetNonSenderRttMeasurement(bool enabled)
MCAPI void ScheduleMaybeSendRtcpAtOrAfterTimestamp(::webrtc::Timestamp execution_time, ::webrtc::TimeDelta duration)
MCAPI bool $IsAudioConfigured() const
MCAPI void $SetTmmbn(::std::vector<::webrtc::rtcp::TmmbItem > bounding_set)
MCAPI ::std::optional<::webrtc::RtpRtcpInterface::SenderReportStats > $GetSenderReportStats() const
MCAPI void $SetMaxRtpPacketSize(uint64 rtp_packet_size)
MCAPI::webrtc::RtpSendRates $GetSendRates() const
MCAPI void $OnAbortedRetransmissions(::webrtc::ArrayView< ushort const > sequence_numbers)
MCAPI ::std::vector<::webrtc::ReportBlockData > $GetLatestReportBlockData() const
Definition RTCPReceiver.h:54
Definition RTCPSender.h:24
Definition RTPSender.h:21
Definition ReportBlockData.h:14
Definition RtpPacketToSend.h:16
Definition RtpRtcpInterface.h:28
Definition RtpSendRates.h:7
Definition RtpSequenceNumberMap.h:7
Definition TimeDelta.h:10
Definition Timestamp.h:15
Definition VideoBitrateAllocation.h:7
Definition RtcpPacket.h:11
Definition FecProtectionParams.h:7
Definition ModuleRtpRtcpImpl2.h:42
Definition PacedPacketInfo.h:7
Definition RtpRtcpInterface.h:38
Definition RtpRtcpInterface.h:95
Definition RtpRtcpInterface.h:111
Definition StreamDataCounters.h:7