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
43class RtpVideoSender : public ::webrtc::RtpVideoSenderInterface,
46public:
47 // member variables
48 // NOLINTBEGIN
71 // NOLINTEND
72
73public:
74 // prevent constructor by default
75 RtpVideoSender& operator=(RtpVideoSender const&);
76 RtpVideoSender(RtpVideoSender const&);
77 RtpVideoSender();
78
79public:
80 // virtual functions
81 // NOLINTBEGIN
82 virtual ~RtpVideoSender() /*override*/ = default;
83
84 virtual void SetSending(bool enabled) /*override*/;
85
86 virtual bool IsActive() /*override*/;
87
88 virtual void OnNetworkAvailability(bool network_available) /*override*/;
89
90 virtual ::std::map<uint, ::webrtc::RtpState> GetRtpStates() const /*override*/;
91
92 virtual ::std::map<uint, ::webrtc::RtpPayloadState> GetRtpPayloadStates() const /*override*/;
93
94 virtual void DeliverRtcp(uchar const* packet, uint64 length) /*override*/;
95
96 virtual int ProtectionRequest(
97 ::webrtc::FecProtectionParams const* delta_params,
98 ::webrtc::FecProtectionParams const* key_params,
99 uint* sent_video_rate_bps,
100 uint* sent_nack_rate_bps,
101 uint* sent_fec_rate_bps
102 ) /*override*/;
103
104 virtual void SetRetransmissionMode(int retransmission_mode) /*override*/;
105
106 virtual void SetFecAllowed(bool fec_allowed) /*override*/;
107
108 virtual ::webrtc::EncodedImageCallback::Result OnEncodedImage(
109 ::webrtc::EncodedImage const& encoded_image,
110 ::webrtc::CodecSpecificInfo const* codec_specific_info
111 ) /*override*/;
112
113 virtual void OnBitrateAllocationUpdated(::webrtc::VideoBitrateAllocation const& bitrate) /*override*/;
114
115 virtual void OnVideoLayersAllocationUpdated(::webrtc::VideoLayersAllocation const& allocation) /*override*/;
116
117 virtual void OnTransportOverheadChanged(uint64 transport_overhead_bytes_per_packet) /*override*/;
118
119 virtual void OnBitrateUpdated(::webrtc::BitrateAllocationUpdate update, int framerate) /*override*/;
120
121 virtual uint GetPayloadBitrateBps() const /*override*/;
122
123 virtual uint GetProtectionBitrateBps() const /*override*/;
124
125 virtual void SetEncodingData(uint64 width, uint64 height, uint64 num_temporal_layers) /*override*/;
126
127 virtual ::std::vector<::webrtc::RtpSequenceNumberMap::Info>
128 GetSentRtpPacketInfos(uint ssrc, ::rtc::ArrayView<ushort const> sequence_numbers) const /*override*/;
129
130 virtual void OnPacketFeedbackVector(
131 ::std::vector<::webrtc::StreamFeedbackObserver::StreamPacketInfo> packet_feedback_vector
132 ) /*override*/;
133 // NOLINTEND
134
135public:
136 // member functions
137 // NOLINTBEGIN
138 MCNAPI ::webrtc::DataRate CalculateOverheadRate(
139 ::webrtc::DataRate data_rate,
140 ::webrtc::DataSize packet_size,
141 ::webrtc::DataSize overhead_per_packet,
142 ::webrtc::Frequency framerate
143 ) const;
144
145 MCNAPI void ConfigureSsrcs(::std::map<uint, ::webrtc::RtpState> const& suspended_ssrcs);
146
148 ::webrtc::Clock* clock,
149 ::std::map<uint, ::webrtc::RtpState> const& suspended_ssrcs,
150 ::std::map<uint, ::webrtc::RtpPayloadState> const& states,
151 ::webrtc::RtpConfig const& rtp_config,
152 int rtcp_report_interval_ms,
153 ::webrtc::Transport* send_transport,
154 ::webrtc::RtpSenderObservers const& observers,
156 ::webrtc::RtcEventLog* event_log,
157 ::webrtc::RateLimiter* retransmission_limiter,
158 ::std::unique_ptr<::webrtc::FecController> fec_controller,
159 ::webrtc::FrameEncryptorInterface* frame_encryptor,
160 ::webrtc::CryptoOptions const& crypto_options,
162 ::webrtc::FieldTrialsView const& field_trials,
163 ::webrtc::TaskQueueFactory* task_queue_factory
164 );
165
166 MCNAPI void SetActiveModulesLocked(bool sending);
167 // NOLINTEND
168
169public:
170 // constructor thunks
171 // NOLINTBEGIN
172 MCNAPI void* $ctor(
173 ::webrtc::Clock* clock,
174 ::std::map<uint, ::webrtc::RtpState> const& suspended_ssrcs,
175 ::std::map<uint, ::webrtc::RtpPayloadState> const& states,
176 ::webrtc::RtpConfig const& rtp_config,
177 int rtcp_report_interval_ms,
178 ::webrtc::Transport* send_transport,
179 ::webrtc::RtpSenderObservers const& observers,
181 ::webrtc::RtcEventLog* event_log,
182 ::webrtc::RateLimiter* retransmission_limiter,
183 ::std::unique_ptr<::webrtc::FecController> fec_controller,
184 ::webrtc::FrameEncryptorInterface* frame_encryptor,
185 ::webrtc::CryptoOptions const& crypto_options,
187 ::webrtc::FieldTrialsView const& field_trials,
188 ::webrtc::TaskQueueFactory* task_queue_factory
189 );
190 // NOLINTEND
191
192public:
193 // virtual function thunks
194 // NOLINTBEGIN
195 MCNAPI void $SetSending(bool enabled);
196
197 MCNAPI bool $IsActive();
198
199 MCNAPI void $OnNetworkAvailability(bool network_available);
200
201 MCNAPI ::std::map<uint, ::webrtc::RtpState> $GetRtpStates() const;
202
203 MCNAPI ::std::map<uint, ::webrtc::RtpPayloadState> $GetRtpPayloadStates() const;
204
205 MCNAPI void $DeliverRtcp(uchar const* packet, uint64 length);
206
208 ::webrtc::FecProtectionParams const* delta_params,
209 ::webrtc::FecProtectionParams const* key_params,
210 uint* sent_video_rate_bps,
211 uint* sent_nack_rate_bps,
212 uint* sent_fec_rate_bps
213 );
214
215 MCNAPI void $SetRetransmissionMode(int retransmission_mode);
216
217 MCNAPI void $SetFecAllowed(bool fec_allowed);
218
219 MCNAPI ::webrtc::EncodedImageCallback::Result $OnEncodedImage(
220 ::webrtc::EncodedImage const& encoded_image,
221 ::webrtc::CodecSpecificInfo const* codec_specific_info
222 );
223
225
227
228 MCNAPI void $OnTransportOverheadChanged(uint64 transport_overhead_bytes_per_packet);
229
230 MCNAPI void $OnBitrateUpdated(::webrtc::BitrateAllocationUpdate update, int framerate);
231
232 MCNAPI uint $GetPayloadBitrateBps() const;
233
234 MCNAPI uint $GetProtectionBitrateBps() const;
235
236 MCNAPI void $SetEncodingData(uint64 width, uint64 height, uint64 num_temporal_layers);
237
238 MCNAPI ::std::vector<::webrtc::RtpSequenceNumberMap::Info>
239 $GetSentRtpPacketInfos(uint ssrc, ::rtc::ArrayView<ushort const> sequence_numbers) const;
240
241 MCNAPI void
242 $OnPacketFeedbackVector(::std::vector<::webrtc::StreamFeedbackObserver::StreamPacketInfo> packet_feedback_vector);
243
244
245 // NOLINTEND
246
247public:
248 // vftables
249 // NOLINTBEGIN
250 MCNAPI static void** $vftableForStreamFeedbackObserver();
251
252 MCNAPI static void** $vftableForEncodedImageCallback();
253
254 MCNAPI static void** $vftableForVCMProtectionCallback();
255
256 MCNAPI static void** $vftableForFecControllerOverride();
257 // NOLINTEND
258};
259
260} // namespace webrtc
Definition _HeaderOutputPredefine.h:309
Definition Clock.h:13
Definition DataRate.h:10
Definition DataSize.h:10
Definition EncodedImage.h:12
Definition FecController.h:15
Definition FieldTrialsView.h:7
Definition FrameEncryptorInterface.h:11
Definition FrameTransformerInterface.h:17
Definition Frequency.h:10
Definition RateLimiter.h:12
Definition RtcEventLog.h:13
Definition RtpTransportControllerSendInterface.h:38
Definition RtpVideoSenderInterface.h:21
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)
static MCAPI void ** $vftableForFecControllerOverride()
MCAPI void ConfigureSsrcs(::std::map< uint, ::webrtc::RtpState > const &suspended_ssrcs)
MCAPI uint $GetProtectionBitrateBps() 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 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 RtpPayloadState.h:7
Definition RtpSenderObservers.h:7
Definition RtpState.h:7
Definition VideoLayersAllocation.h:7