38 struct Configuration {
78 Configuration& operator=(Configuration
const&);
79 Configuration(Configuration
const&);
95 struct NonSenderRttStats {
106 NonSenderRttStats& operator=(NonSenderRttStats
const&);
107 NonSenderRttStats(NonSenderRttStats
const&);
111 struct SenderReportStats {
126 SenderReportStats& operator=(SenderReportStats
const&);
127 SenderReportStats(SenderReportStats
const&);
136 virtual void SetRemoteSSRC(uint ssrc) = 0;
138 virtual void SetLocalSsrc(uint local_ssrc) = 0;
140 virtual void SetMaxRtpPacketSize(uint64 rtp_packet_size) = 0;
142 virtual uint64 MaxRtpPacketSize()
const = 0;
144 virtual void RegisterSendPayloadFrequency(
int payload_type,
int payload_frequency) = 0;
146 virtual int DeRegisterSendPayload(schar) = 0;
148 virtual void SetExtmapAllowMixed(
bool extmap_allow_mixed) = 0;
150 virtual void RegisterRtpHeaderExtension(::std::string_view uri,
int id) = 0;
152 virtual void DeregisterSendRtpHeaderExtension(::std::string_view uri) = 0;
154 virtual bool SupportsPadding()
const = 0;
156 virtual bool SupportsRtxPayloadPadding()
const = 0;
158 virtual uint StartTimestamp()
const = 0;
160 virtual void SetStartTimestamp(uint timestamp) = 0;
162 virtual ushort SequenceNumber()
const = 0;
164 virtual void SetSequenceNumber(ushort seq_num) = 0;
170 virtual ::webrtc::RtpState GetRtpState()
const = 0;
172 virtual ::webrtc::RtpState GetRtxState()
const = 0;
174 virtual void SetNonSenderRttMeasurement(
bool enabled) = 0;
176 virtual uint SSRC()
const = 0;
178 virtual void SetMid(::std::string_view mid) = 0;
180 virtual void SetRtxSendStatus(
int mode) = 0;
182 virtual int RtxSendStatus()
const = 0;
184 virtual ::std::optional<uint> RtxSsrc()
const = 0;
186 virtual void SetRtxSendPayloadType(
int payload_type,
int associated_payload_type) = 0;
188 virtual ::std::optional<uint> FlexfecSsrc()
const = 0;
190 virtual int SetSendingStatus(
bool sending) = 0;
192 virtual bool Sending()
const = 0;
194 virtual void SetSendingMediaStatus(
bool sending) = 0;
196 virtual bool SendingMedia()
const = 0;
198 virtual bool IsAudioConfigured()
const = 0;
200 virtual void SetAsPartOfAllocation(
bool part_of_allocation) = 0;
202 virtual ::webrtc::RtpSendRates GetSendRates()
const = 0;
204 virtual ::webrtc::RTPSender* RtpSender() = 0;
206 virtual ::webrtc::RTPSender
const* RtpSender()
const = 0;
209 OnSendingRtpFrame(uint timestamp, int64 capture_time_ms,
int payload_type,
bool force_sender_report) = 0;
211 virtual bool TrySendPacket(
212 ::std::unique_ptr<::webrtc::RtpPacketToSend> packet,
223 virtual void OnBatchComplete() = 0;
225 virtual void SetFecProtectionParams(
230 virtual ::std::vector<::std::unique_ptr<::webrtc::RtpPacketToSend>> FetchFecPackets() = 0;
236 virtual ::std::vector<::std::unique_ptr<::webrtc::RtpPacketToSend>> GeneratePadding(uint64 target_size_bytes) = 0;
238 virtual ::std::vector<::webrtc::RtpSequenceNumberMap::Info>
241 virtual uint64 ExpectedPerPacketOverhead()
const = 0;
243 virtual void OnPacketSendingThreadSwitched() = 0;
245 virtual ::webrtc::RtcpMode RTCP()
const = 0;
247 virtual void SetRTCPStatus(::webrtc::RtcpMode method) = 0;
249 virtual int SetCNAME(::std::string_view c_name) = 0;
251 virtual ::std::optional<::webrtc::TimeDelta> LastRtt()
const = 0;
253 virtual ::webrtc::TimeDelta ExpectedRetransmissionTime()
const = 0;
255 virtual int SendRTCP(::webrtc::RTCPPacketType packet_type) = 0;
257 virtual void GetSendStreamDataCounters(
262 virtual ::std::vector<::webrtc::ReportBlockData> GetLatestReportBlockData()
const = 0;
264 virtual ::std::optional<::webrtc::RtpRtcpInterface::SenderReportStats> GetSenderReportStats()
const = 0;
266 virtual ::std::optional<::webrtc::RtpRtcpInterface::NonSenderRttStats> GetNonSenderRttStats()
const = 0;
268 virtual void SetRemb(int64 bitrate_bps, ::std::vector<uint> ssrcs) = 0;
270 virtual void UnsetRemb() = 0;
272 virtual int SendNACK(ushort
const* nack_list, ushort size) = 0;
274 virtual void SendNack(::std::vector<ushort>
const& sequence_numbers) = 0;
276 virtual void SetStorePacketsStatus(
bool enable, ushort number_to_store) = 0;
280 virtual int SendLossNotification(
281 ushort last_decoded_seq_num,
282 ushort last_received_seq_num,
283 bool decodability_flag,
284 bool buffering_allowed