3#include "mc/_HeaderOutputPredefine.h"
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"
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; }
83 KMaxEncoderBuffers = 1 << 3,
87 KMaxPreferredPixelFormats = 5,
91 KMaxSimulcastStreams = 3,
95 KMaxSpatialLayers = 5,
100 KMaxTemporalStreams = 1 << 2,
109MCNAPI
bool AV1IsSameProfile(
110 ::std::map<::std::string, ::std::string>
const& params1,
111 ::std::map<::std::string, ::std::string>
const& params2
114MCNAPI
char const* AdapterTypeToStatsType(::rtc::AdapterType type);
123MCNAPI
void AddFmtpLine(
::cricket::Codec const& codec, ::std::string* message);
127MCNAPI
void AddPacketizationLine(
::cricket::Codec const& codec, ::std::string* message);
129MCNAPI
void AddParameters(::std::map<::std::string, ::std::string>
const& parameters,
::cricket::Codec* codec);
131MCNAPI
void AddRtcpFbLines(
::cricket::Codec const& codec, ::std::string* message);
133MCNAPI
void AlignedFree(
void* mem_block);
135MCNAPI
void* AlignedMalloc(uint64 size, uint64 alignment);
137MCNAPI
char const* CodecTypeToPayloadString(::webrtc::VideoCodecType type);
139MCNAPI ::webrtc::TimeDelta CompactNtpRttToTimeDelta(uint compact_ntp_interval);
141MCNAPI ::std::unique_ptr<::webrtc::TaskQueueFactory>
144MCNAPI ::webrtc::IceCandidateInterface* CreateIceCandidate(
145 ::std::string
const& sdp_mid,
147 ::std::string
const& sdp,
151MCNAPI ::std::unique_ptr<::webrtc::SessionDescriptionInterface>
152CreateSessionDescription(::webrtc::SdpType type, ::std::string
const& sdp);
154MCNAPI ::std::unique_ptr<::webrtc::SessionDescriptionInterface>
157MCNAPI ::std::unique_ptr<::webrtc::TaskQueueFactory> CreateTaskQueueStdlibFactory();
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
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,
174MCNAPI ::cricket::Codec
175GetCodecWithPayloadType(::cricket::MediaType type, ::std::vector<::cricket::Codec>
const& codecs,
int payload_type);
177MCNAPI
bool GetDtmfCode(
char tone,
int*
code);
183MCNAPI
bool GetMinValue(::std::vector<int>
const& values,
int* value);
185MCNAPI
bool GetParameter(::std::string
const& name, ::std::map<::std::string, ::std::string>
const& params,
int* value);
187MCNAPI uint64 GetRightAlign(uint64 start_pos, uint64 alignment);
189MCNAPI ::std::vector<::std::string const*> GetStatsReferencedIds(
::webrtc::RTCStats const& stats);
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
197MCNAPI
bool H264IsSameProfile(
198 ::std::map<::std::string, ::std::string>
const& params1,
199 ::std::map<::std::string, ::std::string>
const& params2
208MCNAPI ::std::string_view IceCandidateTypeToString(::webrtc::IceCandidateType type);
210MCNAPI ::webrtc::RTCError
213MCNAPI
bool IsFmtpParam(::std::string_view name);
215MCNAPI
bool IsLegalRsidName(::std::string_view name);
217MCNAPI
bool IsMandatoryHeaderExtension(::std::string
const& uri);
219MCNAPI
bool IsNewerSequenceNumber(ushort sequence_number, ushort prev_sequence_number);
227MCNAPI
bool IsTokenChar(
char ch);
229MCNAPI
int Leb128Size(uint64 value);
234MCNAPI
bool ParseCandidate(
235 ::std::string_view message,
245MCNAPI
bool ParseDataChannelOpenMessage(
247 ::std::string* label,
251MCNAPI
void ParseFieldTrial(
252 ::std::initializer_list<::webrtc::FieldTrialParameterInterface*> fields,
253 ::std::string_view trial_string
256MCNAPI ::std::optional<::webrtc::H264ProfileLevelId> ParseH264ProfileLevelId(
char const* str);
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
268MCNAPI
bool ParseSctpMaxMessageSize(::std::string_view line,
int* max_message_size,
::webrtc::SdpParseError* error);
272MCNAPI ::std::optional<::webrtc::AV1Profile>
273ParseSdpForAV1Profile(::std::map<::std::string, ::std::string>
const& params);
275MCNAPI ::std::optional<::webrtc::H264ProfileLevelId>
276ParseSdpForH264ProfileLevelId(::std::map<::std::string, ::std::string>
const& params);
278MCNAPI ::std::optional<::webrtc::VP9Profile>
279ParseSdpForVP9Profile(::std::map<::std::string, ::std::string>
const& params);
281MCNAPI ::webrtc::VideoCodecType PayloadStringToCodecType(::std::string
const& name);
283MCNAPI ::std::optional<::cricket::Codec> PopWildcardCodec(::std::vector<::cricket::Codec>* codecs);
285MCNAPI
int ResolveHostname(::std::string_view hostname,
int family, ::std::vector<::rtc::IPAddress>& addresses);
289MCNAPI
int RtpHeaderExtensionSize(
294MCNAPI ::webrtc::RtpTransceiverDirection RtpTransceiverDirectionFromSendRecv(
bool send,
bool recv);
296MCNAPI
bool RtpTransceiverDirectionHasRecv(::webrtc::RtpTransceiverDirection direction);
298MCNAPI
bool RtpTransceiverDirectionHasSend(::webrtc::RtpTransceiverDirection direction);
300MCNAPI ::webrtc::RtpTransceiverDirection
301RtpTransceiverDirectionIntersection(::webrtc::RtpTransceiverDirection lhs, ::webrtc::RtpTransceiverDirection rhs);
303MCNAPI ::webrtc::RtpTransceiverDirection RtpTransceiverDirectionReversed(::webrtc::RtpTransceiverDirection direction);
305MCNAPI
char const* RtpTransceiverDirectionToString(::webrtc::RtpTransceiverDirection direction);
307MCNAPI ::webrtc::RtpTransceiverDirection
308RtpTransceiverDirectionWithRecvSet(::webrtc::RtpTransceiverDirection direction,
bool recv);
310MCNAPI ::absl::AnyInvocable<void() &&>
313MCNAPI ::std::string_view ScalabilityModeToString(::webrtc::ScalabilityMode scalability_mode);
318MCNAPI
bool SdpDeserializeCandidate(
319 ::std::string_view message,
330MCNAPI ::std::optional<::webrtc::SdpType> SdpTypeFromString(::std::string
const& type_str);
332MCNAPI
char const* SdpTypeToString(::webrtc::SdpType type);
334MCNAPI ::std::optional<::webrtc::AV1Profile> StringToAV1Profile(::std::string_view str);
336MCNAPI ::std::optional<::webrtc::VP9Profile> StringToVP9Profile(::std::string
const& str);
338MCNAPI ::webrtc::scoped_refptr<::webrtc::RTCStatsReport>
343MCNAPI ::webrtc::RtpCapabilities ToRtpCapabilities(
344 ::std::vector<::cricket::Codec>
const& cricket_codecs,
345 ::std::vector<::webrtc::RtpExtension>
const& cricket_extensions
348MCNAPI ::webrtc::RtpCodecCapability ToRtpCodecCapability(
::cricket::Codec const& cricket_codec);
350MCNAPI ::std::string_view ToString(::webrtc::RTCErrorType error);
352MCNAPI ::std::string_view ToString(::webrtc::RTCErrorDetailType error);
364MCNAPI
void UpdateCodec(
370MCNAPI
void UpdateCodec(
373 ::std::map<::std::string, ::std::string>
const& parameters
378MCNAPI
void UpdateCodec(
380 ::std::string_view name,
389MCNAPI
void UpdateRtpHeaderExtensionPreferencesFromSdpMunging(
394MCNAPI
void UpdateVideoCodecPacketization(
397 ::std::string_view packetization
400MCNAPI
bool VP9IsSameProfile(
401 ::std::map<::std::string, ::std::string>
const& params1,
402 ::std::map<::std::string, ::std::string>
const& params2
405MCNAPI
bool ValidAlignment(uint64 alignment);
409MCNAPI
bool WriteDataChannelOpenMessage(
410 ::std::string
const& label,
411 ::std::string
const& protocol,
412 ::std::optional<::webrtc::Priority> opt_priority,
414 ::std::optional<int> max_retransmits,
415 ::std::optional<int> max_retransmit_time,
422WriteFmtpParameter(::std::string_view parameter_name, ::std::string_view parameter_value,
::rtc::StringBuilder* os);
424MCNAPI
bool WriteFmtpParameters(::std::map<::std::string, ::std::string>
const& parameters,
::rtc::StringBuilder* os);
426MCNAPI
int WriteLeb128(uint64 value, uchar*
buffer);
438MCNAPI
bool operator<(
449MCNAPI
bool operator==(
454MCNAPI
bool operator==(
459MCNAPI
bool operator==(
464MCNAPI
bool operator==(
469MCNAPI
bool operator==(
474MCNAPI
bool operator==(
479MCNAPI
bool operator==(
484MCNAPI
bool operator==(
492MCNAPI ::std::add_lvalue_reference_t<char const[]> kBweTypeHistogram();
494MCNAPI ::webrtc::DataRate
const& kCongestionControllerMinBitrate();
496MCNAPI
double const& kDefaultBitratePriority();
498MCNAPI ::std::add_lvalue_reference_t<char const[]> kVP9FmtpProfileId();
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 FieldTrialsView.h:7
Definition IceCandidateInterface.h:12
Definition JsepIceCandidate.h:16
Definition JsepSessionDescription.h:19
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 DataChannelInit.h:7
Definition H264ProfileLevelId.h:7
Definition RtpParameters.h:7
Definition SdpParseError.h:7