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