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/RTCErrorType.h"
14#include "mc/external/webrtc/RtpReceiverProxyWithInternal.h"
15#include "mc/external/webrtc/RtpSenderProxyWithInternal.h"
16#include "mc/external/webrtc/RtpTransceiverDirection.h"
17#include "mc/external/webrtc/RtpTransceiverProxyWithInternal.h"
18#include "mc/external/webrtc/ScalabilityMode.h"
19#include "mc/external/webrtc/SdpType.h"
20#include "mc/external/webrtc/VP9Profile.h"
21#include "mc/external/webrtc/VideoCodecType.h"
22#include "mc/external/webrtc/scoped_refptr.h"
26namespace cricket {
class Candidate; }
27namespace cricket {
class ContentInfo; }
28namespace cricket {
class FeedbackParam; }
29namespace cricket {
class FeedbackParams; }
30namespace cricket {
class MediaContentDescription; }
31namespace cricket {
class SessionDescription; }
32namespace cricket {
struct Codec; }
33namespace cricket {
struct RelayServerConfig; }
34namespace cricket {
struct RidDescription; }
35namespace cricket {
struct StreamParams; }
36namespace rtc {
class CopyOnWriteBuffer; }
37namespace rtc {
class IPAddress; }
38namespace rtc {
class RTCCertificate; }
39namespace rtc {
class SocketAddress; }
40namespace rtc {
class StringBuilder; }
41namespace webrtc {
class DataRate; }
42namespace webrtc {
class DataSize; }
43namespace webrtc {
class FieldTrialParameterInterface; }
44namespace webrtc {
class FieldTrialsView; }
45namespace webrtc {
class IceCandidateInterface; }
46namespace webrtc {
class JsepIceCandidate; }
47namespace webrtc {
class JsepSessionDescription; }
48namespace webrtc {
class MediaStreamTrackInterface; }
49namespace webrtc {
class PendingTaskSafetyFlag; }
50namespace webrtc {
class RTCError; }
51namespace webrtc {
class RTCStats; }
52namespace webrtc {
class RTCStatsReport; }
53namespace webrtc {
class RtpHeaderExtensionMap; }
54namespace webrtc {
class RtpReceiverInterface; }
55namespace webrtc {
class RtpReceiverInternal; }
56namespace webrtc {
class RtpSenderInterface; }
57namespace webrtc {
class RtpSenderInternal; }
58namespace webrtc {
class RtpTransceiver; }
59namespace webrtc {
class SessionDescriptionInterface; }
60namespace webrtc {
class TaskQueueFactory; }
61namespace webrtc {
class TimeDelta; }
62namespace webrtc {
class Timestamp; }
63namespace webrtc {
class TransceiverList; }
64namespace webrtc {
class VideoFrameBuffer; }
65namespace webrtc {
struct DataChannelInit; }
66namespace webrtc {
struct H264ProfileLevelId; }
67namespace webrtc {
struct RTPVideoHeader; }
68namespace webrtc {
struct RtcpFeedback; }
69namespace webrtc {
struct RtpCapabilities; }
70namespace webrtc {
struct RtpCodecCapability; }
71namespace webrtc {
struct RtpExtension; }
72namespace webrtc {
struct RtpExtensionSize; }
73namespace webrtc {
struct RtpParameters; }
74namespace webrtc {
struct SdpParseError; }
75namespace webrtc {
struct SsrcInfo; }
82 KMaxEncoderBuffers = 1 << 3,
86 KMaxPreferredPixelFormats = 5,
90 KMaxSimulcastStreams = 3,
94 KMaxSpatialLayers = 5,
99 KMaxTemporalStreams = 1 << 2,
108MCNAPI
bool AV1IsSameProfile(
109 ::std::map<::std::string, ::std::string>
const& params1,
110 ::std::map<::std::string, ::std::string>
const& params2
113MCNAPI
char const* AdapterTypeToStatsType(::rtc::AdapterType type);
122MCNAPI
void AddFmtpLine(
::cricket::Codec const& codec, ::std::string* message);
126MCNAPI
void AddPacketizationLine(
::cricket::Codec const& codec, ::std::string* message);
128MCNAPI
void AddParameters(::std::map<::std::string, ::std::string>
const& parameters,
::cricket::Codec* codec);
130MCNAPI
void AddRtcpFbLines(
::cricket::Codec const& codec, ::std::string* message);
132MCNAPI
void AlignedFree(
void* mem_block);
134MCNAPI
void* AlignedMalloc(uint64 size, uint64 alignment);
136MCNAPI
char const* CodecTypeToPayloadString(::webrtc::VideoCodecType type);
138MCNAPI ::webrtc::TimeDelta CompactNtpRttToTimeDelta(uint compact_ntp_interval);
140MCNAPI ::std::unique_ptr<::webrtc::TaskQueueFactory>
143MCNAPI ::webrtc::IceCandidateInterface* CreateIceCandidate(
144 ::std::string
const& sdp_mid,
146 ::std::string
const& sdp,
150MCNAPI ::std::unique_ptr<::webrtc::SessionDescriptionInterface>
151CreateSessionDescription(::webrtc::SdpType type, ::std::string
const& sdp);
153MCNAPI ::std::unique_ptr<::webrtc::SessionDescriptionInterface>
156MCNAPI ::std::unique_ptr<::webrtc::SessionDescriptionInterface> CreateSessionDescription(
157 ::webrtc::SdpType type,
158 ::std::string
const& session_id,
159 ::std::string
const& session_version,
160 ::std::unique_ptr<::cricket::SessionDescription> description
163MCNAPI ::std::unique_ptr<::webrtc::TaskQueueFactory> CreateTaskQueueStdlibFactory();
165MCNAPI
void CreateTrackWithNoSsrcs(
166 ::std::vector<::std::string>
const& msid_stream_ids,
167 ::std::string_view msid_track_id,
168 ::std::vector<::cricket::RidDescription>
const& rids,
169 ::std::vector<::cricket::StreamParams>* tracks
172MCNAPI
void CreateTracksFromSsrcInfos(
173 ::std::vector<::webrtc::SsrcInfo>
const& ssrc_infos,
174 ::std::vector<::std::string>
const& msid_stream_ids,
175 ::std::string_view msid_track_id,
176 ::std::vector<::cricket::StreamParams>* tracks,
180MCNAPI ::cricket::Codec
181GetCodecWithPayloadType(::cricket::MediaType type, ::std::vector<::cricket::Codec>
const& codecs,
int payload_type);
183MCNAPI
bool GetDtmfCode(
char tone,
int*
code);
189MCNAPI
bool GetMinValue(::std::vector<int>
const& values,
int* value);
191MCNAPI
bool GetParameter(::std::string
const& name, ::std::map<::std::string, ::std::string>
const& params,
int* value);
193MCNAPI uint64 GetRightAlign(uint64 start_pos, uint64 alignment);
195MCNAPI ::std::vector<::std::string const*> GetStatsReferencedIds(
::webrtc::RTCStats const& stats);
197MCNAPI
void H264GenerateProfileLevelIdForAnswer(
198 ::std::map<::std::string, ::std::string>
const& local_supported_params,
199 ::std::map<::std::string, ::std::string>
const& remote_offered_params,
200 ::std::map<::std::string, ::std::string>* answer_params
203MCNAPI
bool H264IsSameProfile(
204 ::std::map<::std::string, ::std::string>
const& params1,
205 ::std::map<::std::string, ::std::string>
const& params2
214MCNAPI ::std::string_view IceCandidateTypeToString(::webrtc::IceCandidateType type);
216MCNAPI ::webrtc::RTCError
219MCNAPI
bool IsFmtpParam(::std::string_view name);
221MCNAPI
bool IsLegalRsidName(::std::string_view name);
223MCNAPI
bool IsMandatoryHeaderExtension(::std::string
const& uri);
225MCNAPI
bool IsNewerSequenceNumber(ushort sequence_number, ushort prev_sequence_number);
233MCNAPI
bool IsTokenChar(
char ch);
235MCNAPI
int Leb128Size(uint64 value);
240MCNAPI
bool ParseCandidate(
241 ::std::string_view message,
251MCNAPI
bool ParseDataChannelOpenMessage(
253 ::std::string* label,
257MCNAPI
void ParseFieldTrial(
258 ::std::initializer_list<::webrtc::FieldTrialParameterInterface*> fields,
259 ::std::string_view trial_string
262MCNAPI ::std::optional<::webrtc::H264ProfileLevelId> ParseH264ProfileLevelId(
char const* str);
264MCNAPI ::webrtc::RTCError ParseIceServersOrError(
265 ::std::vector<::webrtc::PeerConnectionInterface::IceServer>
const& servers,
266 ::std::set<::rtc::SocketAddress>* stun_servers,
267 ::std::vector<::cricket::RelayServerConfig>* turn_servers
274MCNAPI
bool ParseSctpMaxMessageSize(::std::string_view line,
int* max_message_size,
::webrtc::SdpParseError* error);
278MCNAPI ::std::optional<::webrtc::AV1Profile>
279ParseSdpForAV1Profile(::std::map<::std::string, ::std::string>
const& params);
281MCNAPI ::std::optional<::webrtc::H264ProfileLevelId>
282ParseSdpForH264ProfileLevelId(::std::map<::std::string, ::std::string>
const& params);
284MCNAPI ::std::optional<::webrtc::VP9Profile>
285ParseSdpForVP9Profile(::std::map<::std::string, ::std::string>
const& params);
287MCNAPI ::webrtc::VideoCodecType PayloadStringToCodecType(::std::string
const& name);
289MCNAPI ::std::optional<::cricket::Codec> PopWildcardCodec(::std::vector<::cricket::Codec>* codecs);
291MCNAPI
int ResolveHostname(::std::string_view hostname,
int family, ::std::vector<::rtc::IPAddress>& addresses);
295MCNAPI
int RtpHeaderExtensionSize(
300MCNAPI ::webrtc::RtpTransceiverDirection RtpTransceiverDirectionFromSendRecv(
bool send,
bool recv);
302MCNAPI
bool RtpTransceiverDirectionHasRecv(::webrtc::RtpTransceiverDirection direction);
304MCNAPI
bool RtpTransceiverDirectionHasSend(::webrtc::RtpTransceiverDirection direction);
306MCNAPI ::webrtc::RtpTransceiverDirection
307RtpTransceiverDirectionIntersection(::webrtc::RtpTransceiverDirection lhs, ::webrtc::RtpTransceiverDirection rhs);
309MCNAPI ::webrtc::RtpTransceiverDirection RtpTransceiverDirectionReversed(::webrtc::RtpTransceiverDirection direction);
311MCNAPI
char const* RtpTransceiverDirectionToString(::webrtc::RtpTransceiverDirection direction);
313MCNAPI ::webrtc::RtpTransceiverDirection
314RtpTransceiverDirectionWithRecvSet(::webrtc::RtpTransceiverDirection direction,
bool recv);
316MCNAPI ::absl::AnyInvocable<void() &&>
319MCNAPI ::std::string_view ScalabilityModeToString(::webrtc::ScalabilityMode scalability_mode);
324MCNAPI
bool SdpDeserializeCandidate(
325 ::std::string_view message,
336MCNAPI ::std::optional<::webrtc::SdpType> SdpTypeFromString(::std::string
const& type_str);
338MCNAPI
char const* SdpTypeToString(::webrtc::SdpType type);
340MCNAPI ::std::optional<::webrtc::AV1Profile> StringToAV1Profile(::std::string_view str);
342MCNAPI ::std::optional<::webrtc::VP9Profile> StringToVP9Profile(::std::string
const& str);
344MCNAPI ::webrtc::scoped_refptr<::webrtc::RTCStatsReport>
349MCNAPI ::webrtc::RtpCapabilities ToRtpCapabilities(
350 ::std::vector<::cricket::Codec>
const& cricket_codecs,
351 ::std::vector<::webrtc::RtpExtension>
const& cricket_extensions
354MCNAPI ::webrtc::RtpCodecCapability ToRtpCodecCapability(
::cricket::Codec const& cricket_codec);
356MCNAPI ::std::string_view ToString(::webrtc::RTCErrorType error);
368MCNAPI
void UpdateCodec(
374MCNAPI
void UpdateCodec(
377 ::std::map<::std::string, ::std::string>
const& parameters
382MCNAPI
void UpdateCodec(
384 ::std::string_view name,
393MCNAPI
void UpdateRtpHeaderExtensionPreferencesFromSdpMunging(
398MCNAPI
void UpdateVideoCodecPacketization(
401 ::std::string_view packetization
404MCNAPI
bool VP9IsSameProfile(
405 ::std::map<::std::string, ::std::string>
const& params1,
406 ::std::map<::std::string, ::std::string>
const& params2
409MCNAPI
bool ValidAlignment(uint64 alignment);
413MCNAPI
bool WriteDataChannelOpenMessage(
414 ::std::string
const& label,
415 ::std::string
const& protocol,
416 ::std::optional<::webrtc::Priority> opt_priority,
418 ::std::optional<int> max_retransmits,
419 ::std::optional<int> max_retransmit_time,
426WriteFmtpParameter(::std::string_view parameter_name, ::std::string_view parameter_value,
::rtc::StringBuilder* os);
428MCNAPI
bool WriteFmtpParameters(::std::map<::std::string, ::std::string>
const& parameters,
::rtc::StringBuilder* os);
430MCNAPI
int WriteLeb128(uint64 value, uchar*
buffer);
442MCNAPI
bool operator<(
453MCNAPI
bool operator==(
458MCNAPI
bool operator==(
463MCNAPI
bool operator==(
468MCNAPI
bool operator==(
473MCNAPI
bool operator==(
478MCNAPI
bool operator==(
483MCNAPI
bool operator==(
488MCNAPI
bool operator==(
496MCNAPI ::std::add_lvalue_reference_t<char const[]> kBweTypeHistogram();
498MCNAPI ::webrtc::DataRate
const& kCongestionControllerMinBitrate();
500MCNAPI
double const& kDefaultBitratePriority();
502MCNAPI ::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:260
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