LeviLamina
Loading...
Searching...
No Matches
webrtc.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/external/absl/AnyInvocable.h"
7#include "mc/external/cricket/MediaType.h"
8#include "mc/external/rtc/AdapterType.h"
9#include "mc/external/webrtc/AV1Profile.h"
10#include "mc/external/webrtc/IceCandidateType.h"
11#include "mc/external/webrtc/PeerConnectionInterface.h"
12#include "mc/external/webrtc/Priority.h"
13#include "mc/external/webrtc/RTCErrorDetailType.h"
14#include "mc/external/webrtc/RTCErrorType.h"
15#include "mc/external/webrtc/RtpReceiverProxyWithInternal.h"
16#include "mc/external/webrtc/RtpSenderProxyWithInternal.h"
17#include "mc/external/webrtc/RtpTransceiverDirection.h"
18#include "mc/external/webrtc/RtpTransceiverProxyWithInternal.h"
19#include "mc/external/webrtc/ScalabilityMode.h"
20#include "mc/external/webrtc/SdpType.h"
21#include "mc/external/webrtc/VP9Profile.h"
22#include "mc/external/webrtc/VideoCodecType.h"
23#include "mc/external/webrtc/scoped_refptr.h"
24
25// auto generated forward declare list
26// clang-format off
27namespace cricket { class Candidate; }
28namespace cricket { class ContentInfo; }
29namespace cricket { class FeedbackParam; }
30namespace cricket { class FeedbackParams; }
31namespace cricket { class MediaContentDescription; }
32namespace cricket { class SessionDescription; }
33namespace cricket { struct Codec; }
34namespace cricket { struct RelayServerConfig; }
35namespace cricket { struct RidDescription; }
36namespace cricket { struct StreamParams; }
37namespace rtc { class CopyOnWriteBuffer; }
38namespace rtc { class IPAddress; }
39namespace rtc { class RTCCertificate; }
40namespace rtc { class SocketAddress; }
41namespace rtc { class StringBuilder; }
42namespace webrtc { class DataRate; }
43namespace webrtc { class DataSize; }
44namespace webrtc { class FieldTrialParameterInterface; }
45namespace webrtc { class FieldTrialsView; }
46namespace webrtc { class IceCandidateInterface; }
47namespace webrtc { class JsepIceCandidate; }
48namespace webrtc { class JsepSessionDescription; }
49namespace webrtc { class MediaStreamTrackInterface; }
50namespace webrtc { class PendingTaskSafetyFlag; }
51namespace webrtc { class RTCError; }
52namespace webrtc { class RTCStats; }
53namespace webrtc { class RTCStatsReport; }
54namespace webrtc { class RtpHeaderExtensionMap; }
55namespace webrtc { class RtpReceiverInterface; }
56namespace webrtc { class RtpReceiverInternal; }
57namespace webrtc { class RtpSenderInterface; }
58namespace webrtc { class RtpSenderInternal; }
59namespace webrtc { class RtpTransceiver; }
60namespace webrtc { class SessionDescriptionInterface; }
61namespace webrtc { class TaskQueueFactory; }
62namespace webrtc { class TimeDelta; }
63namespace webrtc { class Timestamp; }
64namespace webrtc { class TransceiverList; }
65namespace webrtc { class VideoFrameBuffer; }
66namespace webrtc { struct DataChannelInit; }
67namespace webrtc { struct H264ProfileLevelId; }
68namespace webrtc { struct RTPVideoHeader; }
69namespace webrtc { struct RtcpFeedback; }
70namespace webrtc { struct RtpCapabilities; }
71namespace webrtc { struct RtpCodecCapability; }
72namespace webrtc { struct RtpExtension; }
73namespace webrtc { struct RtpExtensionSize; }
74namespace webrtc { struct RtpParameters; }
75namespace webrtc { struct SdpParseError; }
76namespace webrtc { struct SsrcInfo; }
77// clang-format on
78
79namespace webrtc {
80// inner types
81enum : int {
82 // bitfield representation
83 KMaxEncoderBuffers = 1 << 3,
84};
85
86enum : int {
87 KMaxPreferredPixelFormats = 5,
88};
89
90enum : int {
91 KMaxSimulcastStreams = 3,
92};
93
94enum : int {
95 KMaxSpatialLayers = 5,
96};
97
98enum : int {
99 // bitfield representation
100 KMaxTemporalStreams = 1 << 2,
101};
102
103enum : int {
104 KRtpCsrcSize = 15,
105};
106
107// functions
108// NOLINTBEGIN
109MCNAPI bool AV1IsSameProfile(
110 ::std::map<::std::string, ::std::string> const& params1,
111 ::std::map<::std::string, ::std::string> const& params2
112);
113
114MCNAPI char const* AdapterTypeToStatsType(::rtc::AdapterType type);
115
116MCNAPI void
117AddAudioAttribute(::std::string const& name, ::std::string_view value, ::cricket::MediaContentDescription* desc);
118
119MCNAPI void AddFeedbackParameter(::cricket::FeedbackParam const& feedback_param, ::cricket::Codec* codec);
120
121MCNAPI void AddFeedbackParameters(::cricket::FeedbackParams const& feedback_params, ::cricket::Codec* codec);
122
123MCNAPI void AddFmtpLine(::cricket::Codec const& codec, ::std::string* message);
124
125MCNAPI void AddOrReplaceCodec(::cricket::MediaContentDescription* content_desc, ::cricket::Codec const& codec);
126
127MCNAPI void AddPacketizationLine(::cricket::Codec const& codec, ::std::string* message);
128
129MCNAPI void AddParameters(::std::map<::std::string, ::std::string> const& parameters, ::cricket::Codec* codec);
130
131MCNAPI void AddRtcpFbLines(::cricket::Codec const& codec, ::std::string* message);
132
133MCNAPI void AlignedFree(void* mem_block);
134
135MCNAPI void* AlignedMalloc(uint64 size, uint64 alignment);
136
137MCNAPI char const* CodecTypeToPayloadString(::webrtc::VideoCodecType type);
138
139MCNAPI ::webrtc::TimeDelta CompactNtpRttToTimeDelta(uint compact_ntp_interval);
140
141MCNAPI ::std::unique_ptr<::webrtc::TaskQueueFactory>
142CreateDefaultTaskQueueFactory(::webrtc::FieldTrialsView const* field_trials);
143
144MCNAPI ::webrtc::IceCandidateInterface* CreateIceCandidate(
145 ::std::string const& sdp_mid,
146 int sdp_mline_index,
147 ::std::string const& sdp,
149);
150
151MCNAPI ::std::unique_ptr<::webrtc::SessionDescriptionInterface>
152CreateSessionDescription(::webrtc::SdpType type, ::std::string const& sdp);
153
154MCNAPI ::std::unique_ptr<::webrtc::SessionDescriptionInterface>
155CreateSessionDescription(::webrtc::SdpType type, ::std::string const& sdp, ::webrtc::SdpParseError* error_out);
156
157MCNAPI ::std::unique_ptr<::webrtc::TaskQueueFactory> CreateTaskQueueStdlibFactory();
158
159MCNAPI void CreateTrackWithNoSsrcs(
160 ::std::vector<::std::string> const& msid_stream_ids,
161 ::std::string_view msid_track_id,
162 ::std::vector<::cricket::RidDescription> const& rids,
163 ::std::vector<::cricket::StreamParams>* tracks
164);
165
166MCNAPI void CreateTracksFromSsrcInfos(
167 ::std::vector<::webrtc::SsrcInfo> const& ssrc_infos,
168 ::std::vector<::std::string> const& msid_stream_ids,
169 ::std::string_view msid_track_id,
170 ::std::vector<::cricket::StreamParams>* tracks,
171 int msid_signaling
172);
173
174MCNAPI ::cricket::Codec
175GetCodecWithPayloadType(::cricket::MediaType type, ::std::vector<::cricket::Codec> const& codecs, int payload_type);
176
177MCNAPI bool GetDtmfCode(char tone, int* code);
178
179MCNAPI ::std::string GetLegacyCandidateTypeName(::cricket::Candidate const& c);
180
181MCNAPI void GetMediaStreamIds(::cricket::ContentInfo const* content, ::std::set<::std::string>* labels);
182
183MCNAPI bool GetMinValue(::std::vector<int> const& values, int* value);
184
185MCNAPI bool GetParameter(::std::string const& name, ::std::map<::std::string, ::std::string> const& params, int* value);
186
187MCNAPI uint64 GetRightAlign(uint64 start_pos, uint64 alignment);
188
189MCNAPI ::std::vector<::std::string const*> GetStatsReferencedIds(::webrtc::RTCStats const& stats);
190
191MCNAPI void H264GenerateProfileLevelIdForAnswer(
192 ::std::map<::std::string, ::std::string> const& local_supported_params,
193 ::std::map<::std::string, ::std::string> const& remote_offered_params,
194 ::std::map<::std::string, ::std::string>* answer_params
195);
196
197MCNAPI bool H264IsSameProfile(
198 ::std::map<::std::string, ::std::string> const& params1,
199 ::std::map<::std::string, ::std::string> const& params2
200);
201
202MCNAPI ::std::optional<::std::string> H264ProfileLevelIdToString(::webrtc::H264ProfileLevelId const& profile_level_id);
203
204MCNAPI bool HasDuplicateMsidLines(::cricket::SessionDescription* desc);
205
206MCNAPI char const* IceCandidateTypeToStatsType(::cricket::Candidate const& candidate);
207
208MCNAPI ::std::string_view IceCandidateTypeToString(::webrtc::IceCandidateType type);
209
210MCNAPI ::webrtc::RTCError
211InvokeSetParametersCallback(::absl::AnyInvocable<void(::webrtc::RTCError) &&>& callback, ::webrtc::RTCError error);
212
213MCNAPI bool IsFmtpParam(::std::string_view name);
214
215MCNAPI bool IsLegalRsidName(::std::string_view name);
216
217MCNAPI bool IsMandatoryHeaderExtension(::std::string const& uri);
218
219MCNAPI bool IsNewerSequenceNumber(ushort sequence_number, ushort prev_sequence_number);
220
221MCNAPI bool IsOpenMessage(::rtc::CopyOnWriteBuffer const& payload);
222
223MCNAPI bool IsRtcpPacket(::rtc::ArrayView<uchar const> packet);
224
225MCNAPI bool IsRtpPacket(::rtc::ArrayView<uchar const> packet);
226
227MCNAPI bool IsTokenChar(char ch);
228
229MCNAPI int Leb128Size(uint64 value);
230
231MCNAPI void
232MaybeCreateStaticPayloadAudioCodecs(::std::vector<int> const& fmts, ::cricket::MediaContentDescription* media_desc);
233
234MCNAPI bool ParseCandidate(
235 ::std::string_view message,
236 ::cricket::Candidate* candidate,
238 bool is_raw
239);
240
241MCNAPI bool ParseConnectionData(::std::string_view line, ::rtc::SocketAddress* addr, ::webrtc::SdpParseError* error);
242
243MCNAPI bool ParseDataChannelOpenAckMessage(::rtc::CopyOnWriteBuffer const& payload);
244
245MCNAPI bool ParseDataChannelOpenMessage(
246 ::rtc::CopyOnWriteBuffer const& payload,
247 ::std::string* label,
249);
250
251MCNAPI void ParseFieldTrial(
252 ::std::initializer_list<::webrtc::FieldTrialParameterInterface*> fields,
253 ::std::string_view trial_string
254);
255
256MCNAPI ::std::optional<::webrtc::H264ProfileLevelId> ParseH264ProfileLevelId(char const* str);
257
258MCNAPI ::webrtc::RTCError ParseIceServersOrError(
259 ::std::vector<::webrtc::PeerConnectionInterface::IceServer> const& servers,
260 ::std::set<::rtc::SocketAddress>* stun_servers,
261 ::std::vector<::cricket::RelayServerConfig>* turn_servers
262);
263
264MCNAPI ushort ParseRtpSequenceNumber(::rtc::ArrayView<uchar const> rtp_packet);
265
266MCNAPI uint ParseRtpSsrc(::rtc::ArrayView<uchar const> rtp_packet);
267
268MCNAPI bool ParseSctpMaxMessageSize(::std::string_view line, int* max_message_size, ::webrtc::SdpParseError* error);
269
270MCNAPI bool ParseSctpPort(::std::string_view line, int* sctp_port, ::webrtc::SdpParseError* error);
271
272MCNAPI ::std::optional<::webrtc::AV1Profile>
273ParseSdpForAV1Profile(::std::map<::std::string, ::std::string> const& params);
274
275MCNAPI ::std::optional<::webrtc::H264ProfileLevelId>
276ParseSdpForH264ProfileLevelId(::std::map<::std::string, ::std::string> const& params);
277
278MCNAPI ::std::optional<::webrtc::VP9Profile>
279ParseSdpForVP9Profile(::std::map<::std::string, ::std::string> const& params);
280
281MCNAPI ::webrtc::VideoCodecType PayloadStringToCodecType(::std::string const& name);
282
283MCNAPI ::std::optional<::cricket::Codec> PopWildcardCodec(::std::vector<::cricket::Codec>* codecs);
284
285MCNAPI int ResolveHostname(::std::string_view hostname, int family, ::std::vector<::rtc::IPAddress>& addresses);
286
287MCNAPI ::std::vector<uchar> RtpDescriptorAuthentication(::webrtc::RTPVideoHeader const& rtp_video_header);
288
289MCNAPI int RtpHeaderExtensionSize(
291 ::webrtc::RtpHeaderExtensionMap const& registered_extensions
292);
293
294MCNAPI ::webrtc::RtpTransceiverDirection RtpTransceiverDirectionFromSendRecv(bool send, bool recv);
295
296MCNAPI bool RtpTransceiverDirectionHasRecv(::webrtc::RtpTransceiverDirection direction);
297
298MCNAPI bool RtpTransceiverDirectionHasSend(::webrtc::RtpTransceiverDirection direction);
299
300MCNAPI ::webrtc::RtpTransceiverDirection
301RtpTransceiverDirectionIntersection(::webrtc::RtpTransceiverDirection lhs, ::webrtc::RtpTransceiverDirection rhs);
302
303MCNAPI ::webrtc::RtpTransceiverDirection RtpTransceiverDirectionReversed(::webrtc::RtpTransceiverDirection direction);
304
305MCNAPI char const* RtpTransceiverDirectionToString(::webrtc::RtpTransceiverDirection direction);
306
307MCNAPI ::webrtc::RtpTransceiverDirection
308RtpTransceiverDirectionWithRecvSet(::webrtc::RtpTransceiverDirection direction, bool recv);
309
310MCNAPI ::absl::AnyInvocable<void() &&>
312
313MCNAPI ::std::string_view ScalabilityModeToString(::webrtc::ScalabilityMode scalability_mode);
314
315MCNAPI bool
316SdpDeserialize(::std::string_view message, ::webrtc::JsepSessionDescription* jdesc, ::webrtc::SdpParseError* error);
317
318MCNAPI bool SdpDeserializeCandidate(
319 ::std::string_view message,
320 ::webrtc::JsepIceCandidate* jcandidate,
322);
323
324MCNAPI ::std::string SdpSerialize(::webrtc::JsepSessionDescription const& jdesc);
325
326MCNAPI ::std::string SdpSerializeCandidate(::cricket::Candidate const& candidate);
327
328MCNAPI ::std::string SdpSerializeCandidate(::webrtc::IceCandidateInterface const& candidate);
329
330MCNAPI ::std::optional<::webrtc::SdpType> SdpTypeFromString(::std::string const& type_str);
331
332MCNAPI char const* SdpTypeToString(::webrtc::SdpType type);
333
334MCNAPI ::std::optional<::webrtc::AV1Profile> StringToAV1Profile(::std::string_view str);
335
336MCNAPI ::std::optional<::webrtc::VP9Profile> StringToVP9Profile(::std::string const& str);
337
338MCNAPI ::webrtc::scoped_refptr<::webrtc::RTCStatsReport>
339TakeReferencedStats(::webrtc::scoped_refptr<::webrtc::RTCStatsReport> report, ::std::vector<::std::string> const& ids);
340
341MCNAPI ::std::optional<::webrtc::RtcpFeedback> ToRtcpFeedback(::cricket::FeedbackParam const& cricket_feedback);
342
343MCNAPI ::webrtc::RtpCapabilities ToRtpCapabilities(
344 ::std::vector<::cricket::Codec> const& cricket_codecs,
345 ::std::vector<::webrtc::RtpExtension> const& cricket_extensions
346);
347
348MCNAPI ::webrtc::RtpCodecCapability ToRtpCodecCapability(::cricket::Codec const& cricket_codec);
349
350MCNAPI ::std::string_view ToString(::webrtc::RTCErrorType error);
351
352MCNAPI ::std::string_view ToString(::webrtc::RTCErrorDetailType error);
353
354MCNAPI ::std::string ToString(::webrtc::DataRate value);
355
356MCNAPI ::std::string ToString(::webrtc::TimeDelta value);
357
358MCNAPI ::std::string ToString(::webrtc::DataSize value);
359
360MCNAPI ::std::string ToString(::webrtc::Timestamp);
361
362MCNAPI bool UnimplementedRtpParameterHasValue(::webrtc::RtpParameters const& parameters);
363
364MCNAPI void UpdateCodec(
366 int payload_type,
367 ::cricket::FeedbackParam const& feedback_param
368);
369
370MCNAPI void UpdateCodec(
372 int payload_type,
373 ::std::map<::std::string, ::std::string> const& parameters
374);
375
376MCNAPI void UpdateCodec(int payload_type, ::std::string_view name, ::cricket::MediaContentDescription* desc);
377
378MCNAPI void UpdateCodec(
379 int payload_type,
380 ::std::string_view name,
381 int clockrate,
382 int bitrate,
383 uint64 channels,
385);
386
387MCNAPI void UpdateFromWildcardCodecs(::cricket::MediaContentDescription* desc);
388
389MCNAPI void UpdateRtpHeaderExtensionPreferencesFromSdpMunging(
390 ::cricket::SessionDescription const* description,
391 ::webrtc::TransceiverList* transceivers
392);
393
394MCNAPI void UpdateVideoCodecPacketization(
396 int payload_type,
397 ::std::string_view packetization
398);
399
400MCNAPI bool VP9IsSameProfile(
401 ::std::map<::std::string, ::std::string> const& params1,
402 ::std::map<::std::string, ::std::string> const& params2
403);
404
405MCNAPI bool ValidAlignment(uint64 alignment);
406
407MCNAPI void WriteDataChannelOpenAckMessage(::rtc::CopyOnWriteBuffer* payload);
408
409MCNAPI bool WriteDataChannelOpenMessage(
410 ::std::string const& label,
411 ::std::string const& protocol,
412 ::std::optional<::webrtc::Priority> opt_priority,
413 bool ordered,
414 ::std::optional<int> max_retransmits,
415 ::std::optional<int> max_retransmit_time,
417);
418
419MCNAPI void WriteFmtpHeader(int payload_type, ::rtc::StringBuilder* os);
420
421MCNAPI void
422WriteFmtpParameter(::std::string_view parameter_name, ::std::string_view parameter_value, ::rtc::StringBuilder* os);
423
424MCNAPI bool WriteFmtpParameters(::std::map<::std::string, ::std::string> const& parameters, ::rtc::StringBuilder* os);
425
426MCNAPI int WriteLeb128(uint64 value, uchar* buffer);
427
428MCNAPI void WritePacketizationHeader(int payload_type, ::rtc::StringBuilder* os);
429
430MCNAPI void WriteRtcpFbHeader(int payload_type, ::rtc::StringBuilder* os);
431
432MCNAPI bool operator!=(::webrtc::scoped_refptr<::webrtc::VideoFrameBuffer> const& a, nullptr_t);
433
434MCNAPI bool operator!=(::webrtc::scoped_refptr<::rtc::RTCCertificate> const& a, nullptr_t);
435
436MCNAPI bool operator!=(::webrtc::scoped_refptr<::webrtc::PendingTaskSafetyFlag> const& a, nullptr_t);
437
438MCNAPI bool operator<(
441);
442
443MCNAPI bool operator==(::webrtc::scoped_refptr<::webrtc::VideoFrameBuffer> const& a, nullptr_t);
444
445MCNAPI bool operator==(::webrtc::scoped_refptr<::rtc::RTCCertificate> const& a, nullptr_t);
446
447MCNAPI bool operator==(::webrtc::scoped_refptr<::webrtc::PendingTaskSafetyFlag> const& a, nullptr_t);
448
449MCNAPI bool operator==(
452);
453
454MCNAPI bool operator==(
457);
458
459MCNAPI bool operator==(
462);
463
464MCNAPI bool operator==(
467);
468
469MCNAPI bool operator==(
472);
473
474MCNAPI bool operator==(
477);
478
479MCNAPI bool operator==(
482);
483
484MCNAPI bool operator==(
487);
488// NOLINTEND
489
490// static variables
491// NOLINTBEGIN
492MCNAPI ::std::add_lvalue_reference_t<char const[]> kBweTypeHistogram();
493
494MCNAPI ::webrtc::DataRate const& kCongestionControllerMinBitrate();
495
496MCNAPI double const& kDefaultBitratePriority();
497
498MCNAPI ::std::add_lvalue_reference_t<char const[]> kVP9FmtpProfileId();
499// NOLINTEND
500
501} // namespace webrtc
Definition AnyInvocable.h:8
Definition Candidate.h:15
Definition ContentInfo.h:12
Definition FeedbackParam.h:7
Definition FeedbackParams.h:12
Definition MediaContentDescription.h:23
Definition SessionDescription.h:18
Definition _HeaderOutputPredefine.h:265
Definition CopyOnWriteBuffer.h:11
Definition SocketAddress.h:12
Definition StringBuilder.h:7
Definition DataRate.h:10
Definition DataSize.h:10
Definition FieldTrialsView.h:7
Definition IceCandidateInterface.h:12
Definition JsepIceCandidate.h:16
Definition JsepSessionDescription.h:19
Definition MediaStreamTrackInterface.h:11
Definition RTCError.h:10
Definition RTCStats.h:12
Definition RtpHeaderExtensionMap.h:15
Definition RtpReceiverInterface.h:24
Definition RtpReceiverProxyWithInternal.h:8
Definition RtpSenderInterface.h:26
Definition RtpSenderProxyWithInternal.h:8
Definition RtpTransceiverProxyWithInternal.h:8
Definition TimeDelta.h:10
Definition Timestamp.h:10
Definition TransceiverList.h:18
Definition scoped_refptr.h:8
Definition buffer.h:5
Definition code.h:5
Definition Codec.h:14
Definition DataChannelInit.h:7
Definition H264ProfileLevelId.h:7
Definition RTPVideoHeader.h:12
Definition RtpParameters.h:7
Definition SdpParseError.h:7