LeviLamina
Loading...
Searching...
No Matches
RtpVideoSender.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/external/webrtc/EncodedImageCallback.h"
7#include "mc/external/webrtc/RtpSequenceNumberMap.h"
8#include "mc/external/webrtc/RtpVideoSenderInterface.h"
9#include "mc/external/webrtc/StreamFeedbackObserver.h"
10#include "mc/external/webrtc/VCMProtectionCallback.h"
11#include "mc/external/webrtc/scoped_refptr.h"
12
13// auto generated forward declare list
14// clang-format off
15namespace webrtc { class Clock; }
16namespace webrtc { class DataRate; }
17namespace webrtc { class DataSize; }
18namespace webrtc { class EncodedImage; }
19namespace webrtc { class FecController; }
20namespace webrtc { class FieldTrialsView; }
21namespace webrtc { class FrameEncryptorInterface; }
22namespace webrtc { class FrameTransformerInterface; }
23namespace webrtc { class Frequency; }
24namespace webrtc { class RateLimiter; }
25namespace webrtc { class RtcEventLog; }
26namespace webrtc { class RtpTransportControllerSendInterface; }
27namespace webrtc { class TaskQueueFactory; }
28namespace webrtc { class Transport; }
29namespace webrtc { class VideoBitrateAllocation; }
30namespace webrtc { struct BitrateAllocationUpdate; }
31namespace webrtc { struct CodecSpecificInfo; }
32namespace webrtc { struct CryptoOptions; }
33namespace webrtc { struct FecProtectionParams; }
34namespace webrtc { struct RtpConfig; }
35namespace webrtc { struct RtpPayloadState; }
36namespace webrtc { struct RtpSenderObservers; }
37namespace webrtc { struct RtpState; }
38namespace webrtc { struct VideoLayersAllocation; }
39// clang-format on
40
41namespace webrtc {
42
46public:
47 // member variables
48 // NOLINTBEGIN
71 // NOLINTEND
72
73public:
74 // prevent constructor by default
75 RtpVideoSender& operator=(RtpVideoSender const&);
78
79public:
80 // virtual functions
81 // NOLINTBEGIN
82 // vIndex: 2
83 virtual ~RtpVideoSender() /*override*/;
84
85 // vIndex: 3
86 virtual void SetSending(bool enabled) /*override*/;
87
88 // vIndex: 4
89 virtual bool IsActive() /*override*/;
90
91 // vIndex: 5
92 virtual void OnNetworkAvailability(bool network_available) /*override*/;
93
94 // vIndex: 6
95 virtual ::std::map<uint, ::webrtc::RtpState> GetRtpStates() const /*override*/;
96
97 // vIndex: 7
98 virtual ::std::map<uint, ::webrtc::RtpPayloadState> GetRtpPayloadStates() const /*override*/;
99
100 // vIndex: 8
101 virtual void DeliverRtcp(uchar const* packet, uint64 length) /*override*/;
102
103 // vIndex: 0
104 virtual int ProtectionRequest(
105 ::webrtc::FecProtectionParams const* delta_params,
106 ::webrtc::FecProtectionParams const* key_params,
107 uint* sent_video_rate_bps,
108 uint* sent_nack_rate_bps,
109 uint* sent_fec_rate_bps
110 ) /*override*/;
111
112 // vIndex: 1
113 virtual void SetRetransmissionMode(int retransmission_mode) /*override*/;
114
115 // vIndex: 0
116 virtual void SetFecAllowed(bool fec_allowed) /*override*/;
117
118 // vIndex: 1
119 virtual ::webrtc::EncodedImageCallback::Result OnEncodedImage(
120 ::webrtc::EncodedImage const& encoded_image,
121 ::webrtc::CodecSpecificInfo const* codec_specific_info
122 ) /*override*/;
123
124 // vIndex: 9
125 virtual void OnBitrateAllocationUpdated(::webrtc::VideoBitrateAllocation const& bitrate) /*override*/;
126
127 // vIndex: 10
128 virtual void OnVideoLayersAllocationUpdated(::webrtc::VideoLayersAllocation const& allocation) /*override*/;
129
130 // vIndex: 12
131 virtual void OnTransportOverheadChanged(uint64 transport_overhead_bytes_per_packet) /*override*/;
132
133 // vIndex: 11
134 virtual void OnBitrateUpdated(::webrtc::BitrateAllocationUpdate update, int framerate) /*override*/;
135
136 // vIndex: 13
137 virtual uint GetPayloadBitrateBps() const /*override*/;
138
139 // vIndex: 14
140 virtual uint GetProtectionBitrateBps() const /*override*/;
141
142 // vIndex: 15
143 virtual void SetEncodingData(uint64 width, uint64 height, uint64 num_temporal_layers) /*override*/;
144
145 // vIndex: 16
146 virtual ::std::vector<::webrtc::RtpSequenceNumberMap::Info>
147 GetSentRtpPacketInfos(uint ssrc, ::rtc::ArrayView<ushort const> sequence_numbers) const /*override*/;
148
149 // vIndex: 1
150 virtual void OnPacketFeedbackVector(
151 ::std::vector<::webrtc::StreamFeedbackObserver::StreamPacketInfo> packet_feedback_vector
152 ) /*override*/;
153 // NOLINTEND
154
155public:
156 // member functions
157 // NOLINTBEGIN
158 MCNAPI ::webrtc::DataRate CalculateOverheadRate(
159 ::webrtc::DataRate data_rate,
160 ::webrtc::DataSize packet_size,
161 ::webrtc::DataSize overhead_per_packet,
162 ::webrtc::Frequency framerate
163 ) const;
164
165 MCNAPI void ConfigureSsrcs(::std::map<uint, ::webrtc::RtpState> const& suspended_ssrcs);
166
167 MCNAPI ::webrtc::DataRate GetPostEncodeOverhead() const;
168
169 MCNAPI bool IsActiveLocked();
170
171 MCNAPI bool NackEnabled() const;
172
174 ::webrtc::Clock* clock,
175 ::std::map<uint, ::webrtc::RtpState> const& suspended_ssrcs,
176 ::std::map<uint, ::webrtc::RtpPayloadState> const& states,
177 ::webrtc::RtpConfig const& rtp_config,
178 int rtcp_report_interval_ms,
179 ::webrtc::Transport* send_transport,
180 ::webrtc::RtpSenderObservers const& observers,
182 ::webrtc::RtcEventLog* event_log,
183 ::webrtc::RateLimiter* retransmission_limiter,
184 ::std::unique_ptr<::webrtc::FecController> fec_controller,
185 ::webrtc::FrameEncryptorInterface* frame_encryptor,
186 ::webrtc::CryptoOptions const& crypto_options,
188 ::webrtc::FieldTrialsView const& field_trials,
189 ::webrtc::TaskQueueFactory* task_queue_factory
190 );
191
192 MCNAPI void SetActiveModulesLocked(bool sending);
193 // NOLINTEND
194
195public:
196 // constructor thunks
197 // NOLINTBEGIN
198 MCNAPI void* $ctor(
199 ::webrtc::Clock* clock,
200 ::std::map<uint, ::webrtc::RtpState> const& suspended_ssrcs,
201 ::std::map<uint, ::webrtc::RtpPayloadState> const& states,
202 ::webrtc::RtpConfig const& rtp_config,
203 int rtcp_report_interval_ms,
204 ::webrtc::Transport* send_transport,
205 ::webrtc::RtpSenderObservers const& observers,
207 ::webrtc::RtcEventLog* event_log,
208 ::webrtc::RateLimiter* retransmission_limiter,
209 ::std::unique_ptr<::webrtc::FecController> fec_controller,
210 ::webrtc::FrameEncryptorInterface* frame_encryptor,
211 ::webrtc::CryptoOptions const& crypto_options,
213 ::webrtc::FieldTrialsView const& field_trials,
214 ::webrtc::TaskQueueFactory* task_queue_factory
215 );
216 // NOLINTEND
217
218public:
219 // destructor thunk
220 // NOLINTBEGIN
221 MCNAPI void $dtor();
222 // NOLINTEND
223
224public:
225 // virtual function thunks
226 // NOLINTBEGIN
227 MCNAPI void $SetSending(bool enabled);
228
229 MCNAPI bool $IsActive();
230
231 MCNAPI void $OnNetworkAvailability(bool network_available);
232
233 MCNAPI ::std::map<uint, ::webrtc::RtpState> $GetRtpStates() const;
234
235 MCNAPI ::std::map<uint, ::webrtc::RtpPayloadState> $GetRtpPayloadStates() const;
236
237 MCNAPI void $DeliverRtcp(uchar const* packet, uint64 length);
238
240 ::webrtc::FecProtectionParams const* delta_params,
241 ::webrtc::FecProtectionParams const* key_params,
242 uint* sent_video_rate_bps,
243 uint* sent_nack_rate_bps,
244 uint* sent_fec_rate_bps
245 );
246
247 MCNAPI void $SetRetransmissionMode(int retransmission_mode);
248
249 MCNAPI void $SetFecAllowed(bool fec_allowed);
250
251 MCNAPI ::webrtc::EncodedImageCallback::Result $OnEncodedImage(
252 ::webrtc::EncodedImage const& encoded_image,
253 ::webrtc::CodecSpecificInfo const* codec_specific_info
254 );
255
257
259
260 MCNAPI void $OnTransportOverheadChanged(uint64 transport_overhead_bytes_per_packet);
261
262 MCNAPI void $OnBitrateUpdated(::webrtc::BitrateAllocationUpdate update, int framerate);
263
264 MCNAPI uint $GetPayloadBitrateBps() const;
265
266 MCNAPI uint $GetProtectionBitrateBps() const;
267
268 MCNAPI void $SetEncodingData(uint64 width, uint64 height, uint64 num_temporal_layers);
269
270 MCNAPI ::std::vector<::webrtc::RtpSequenceNumberMap::Info>
271 $GetSentRtpPacketInfos(uint ssrc, ::rtc::ArrayView<ushort const> sequence_numbers) const;
272
273 MCNAPI void
274 $OnPacketFeedbackVector(::std::vector<::webrtc::StreamFeedbackObserver::StreamPacketInfo> packet_feedback_vector);
275 // NOLINTEND
276
277public:
278 // vftables
279 // NOLINTBEGIN
280 MCNAPI static void** $vftableForStreamFeedbackObserver();
281
282 MCNAPI static void** $vftableForEncodedImageCallback();
283
284 MCNAPI static void** $vftableForVCMProtectionCallback();
285
286 MCNAPI static void** $vftableForFecControllerOverride();
287 // NOLINTEND
288};
289
290} // namespace webrtc
Definition RateLimiter.h:5
Definition _HeaderOutputPredefine.h:260
Definition Clock.h:13
Definition DataRate.h:10
Definition DataSize.h:10
Definition EncodedImage.h:12
Definition FieldTrialsView.h:7
Definition FrameEncryptorInterface.h:11
Definition Frequency.h:10
Definition RateLimiter.h:12
Definition RtcEventLog.h:13
Definition RtpTransportControllerSendInterface.h:38
Definition RtpVideoSenderInterface.h:21
Definition RtpVideoSender.h:45
MCAPI void $OnBitrateAllocationUpdated(::webrtc::VideoBitrateAllocation const &bitrate)
MCAPI void $OnTransportOverheadChanged(uint64 transport_overhead_bytes_per_packet)
MCAPI void $SetRetransmissionMode(int retransmission_mode)
MCAPI RtpVideoSender(::webrtc::Clock *clock, ::std::map< uint, ::webrtc::RtpState > const &suspended_ssrcs, ::std::map< uint, ::webrtc::RtpPayloadState > const &states, ::webrtc::RtpConfig const &rtp_config, int rtcp_report_interval_ms, ::webrtc::Transport *send_transport, ::webrtc::RtpSenderObservers const &observers, ::webrtc::RtpTransportControllerSendInterface *transport, ::webrtc::RtcEventLog *event_log, ::webrtc::RateLimiter *retransmission_limiter, ::std::unique_ptr<::webrtc::FecController > fec_controller, ::webrtc::FrameEncryptorInterface *frame_encryptor, ::webrtc::CryptoOptions const &crypto_options, ::webrtc::scoped_refptr<::webrtc::FrameTransformerInterface > frame_transformer, ::webrtc::FieldTrialsView const &field_trials, ::webrtc::TaskQueueFactory *task_queue_factory)
MCAPI void $OnNetworkAvailability(bool network_available)
MCAPI::webrtc::DataRate CalculateOverheadRate(::webrtc::DataRate data_rate, ::webrtc::DataSize packet_size, ::webrtc::DataSize overhead_per_packet, ::webrtc::Frequency framerate) const
MCAPI void $OnVideoLayersAllocationUpdated(::webrtc::VideoLayersAllocation const &allocation)
MCAPI bool NackEnabled() const
static MCAPI void ** $vftableForFecControllerOverride()
MCAPI void ConfigureSsrcs(::std::map< uint, ::webrtc::RtpState > const &suspended_ssrcs)
MCAPI uint $GetProtectionBitrateBps() const
MCAPI::webrtc::DataRate GetPostEncodeOverhead() const
MCAPI void $SetSending(bool enabled)
MCAPI void $OnBitrateUpdated(::webrtc::BitrateAllocationUpdate update, int framerate)
MCAPI void SetActiveModulesLocked(bool sending)
static MCAPI void ** $vftableForEncodedImageCallback()
MCAPI void $SetEncodingData(uint64 width, uint64 height, uint64 num_temporal_layers)
MCAPI bool $IsActive()
MCAPI bool IsActiveLocked()
MCAPI void $OnPacketFeedbackVector(::std::vector<::webrtc::StreamFeedbackObserver::StreamPacketInfo > packet_feedback_vector)
MCAPI int $ProtectionRequest(::webrtc::FecProtectionParams const *delta_params, ::webrtc::FecProtectionParams const *key_params, uint *sent_video_rate_bps, uint *sent_nack_rate_bps, uint *sent_fec_rate_bps)
MCAPI void $SetFecAllowed(bool fec_allowed)
static MCAPI void ** $vftableForStreamFeedbackObserver()
MCAPI uint $GetPayloadBitrateBps() const
MCAPI void * $ctor(::webrtc::Clock *clock, ::std::map< uint, ::webrtc::RtpState > const &suspended_ssrcs, ::std::map< uint, ::webrtc::RtpPayloadState > const &states, ::webrtc::RtpConfig const &rtp_config, int rtcp_report_interval_ms, ::webrtc::Transport *send_transport, ::webrtc::RtpSenderObservers const &observers, ::webrtc::RtpTransportControllerSendInterface *transport, ::webrtc::RtcEventLog *event_log, ::webrtc::RateLimiter *retransmission_limiter, ::std::unique_ptr<::webrtc::FecController > fec_controller, ::webrtc::FrameEncryptorInterface *frame_encryptor, ::webrtc::CryptoOptions const &crypto_options, ::webrtc::scoped_refptr<::webrtc::FrameTransformerInterface > frame_transformer, ::webrtc::FieldTrialsView const &field_trials, ::webrtc::TaskQueueFactory *task_queue_factory)
MCAPI::webrtc::EncodedImageCallback::Result $OnEncodedImage(::webrtc::EncodedImage const &encoded_image, ::webrtc::CodecSpecificInfo const *codec_specific_info)
MCAPI ::std::map< uint, ::webrtc::RtpPayloadState > $GetRtpPayloadStates() const
MCAPI void $DeliverRtcp(uchar const *packet, uint64 length)
MCAPI ::std::vector<::webrtc::RtpSequenceNumberMap::Info > $GetSentRtpPacketInfos(uint ssrc, ::rtc::ArrayView< ushort const > sequence_numbers) const
MCAPI ::std::map< uint, ::webrtc::RtpState > $GetRtpStates() const
static MCAPI void ** $vftableForVCMProtectionCallback()
Definition StreamFeedbackObserver.h:7
Definition TaskQueueFactory.h:13
Definition Transport.h:12
Definition VCMProtectionCallback.h:12
Definition VideoBitrateAllocation.h:7
Definition scoped_refptr.h:8
Definition Alias.h:14
Definition BitrateAllocationUpdate.h:7
Definition CodecSpecificInfo.h:7
Definition CryptoOptions.h:7
Definition FecProtectionParams.h:7
Definition RtpConfig.h:7
Definition RtpSenderObservers.h:7
Definition VideoLayersAllocation.h:7