xref: /aosp_15_r20/external/webrtc/media/base/media_constants.h (revision d9f758449e529ab9291ac668be2861e7a55c2422)
1*d9f75844SAndroid Build Coastguard Worker /*
2*d9f75844SAndroid Build Coastguard Worker  *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3*d9f75844SAndroid Build Coastguard Worker  *
4*d9f75844SAndroid Build Coastguard Worker  *  Use of this source code is governed by a BSD-style license
5*d9f75844SAndroid Build Coastguard Worker  *  that can be found in the LICENSE file in the root of the source
6*d9f75844SAndroid Build Coastguard Worker  *  tree. An additional intellectual property rights grant can be found
7*d9f75844SAndroid Build Coastguard Worker  *  in the file PATENTS.  All contributing project authors may
8*d9f75844SAndroid Build Coastguard Worker  *  be found in the AUTHORS file in the root of the source tree.
9*d9f75844SAndroid Build Coastguard Worker  */
10*d9f75844SAndroid Build Coastguard Worker 
11*d9f75844SAndroid Build Coastguard Worker #ifndef MEDIA_BASE_MEDIA_CONSTANTS_H_
12*d9f75844SAndroid Build Coastguard Worker #define MEDIA_BASE_MEDIA_CONSTANTS_H_
13*d9f75844SAndroid Build Coastguard Worker 
14*d9f75844SAndroid Build Coastguard Worker #include <stddef.h>
15*d9f75844SAndroid Build Coastguard Worker 
16*d9f75844SAndroid Build Coastguard Worker #include "rtc_base/system/rtc_export.h"
17*d9f75844SAndroid Build Coastguard Worker 
18*d9f75844SAndroid Build Coastguard Worker // This file contains constants related to media.
19*d9f75844SAndroid Build Coastguard Worker 
20*d9f75844SAndroid Build Coastguard Worker namespace cricket {
21*d9f75844SAndroid Build Coastguard Worker 
22*d9f75844SAndroid Build Coastguard Worker extern const int kVideoCodecClockrate;
23*d9f75844SAndroid Build Coastguard Worker 
24*d9f75844SAndroid Build Coastguard Worker extern const int kVideoMtu;
25*d9f75844SAndroid Build Coastguard Worker extern const int kVideoRtpSendBufferSize;
26*d9f75844SAndroid Build Coastguard Worker extern const int kVideoRtpRecvBufferSize;
27*d9f75844SAndroid Build Coastguard Worker 
28*d9f75844SAndroid Build Coastguard Worker // Default CPU thresholds.
29*d9f75844SAndroid Build Coastguard Worker extern const float kHighSystemCpuThreshold;
30*d9f75844SAndroid Build Coastguard Worker extern const float kLowSystemCpuThreshold;
31*d9f75844SAndroid Build Coastguard Worker extern const float kProcessCpuThreshold;
32*d9f75844SAndroid Build Coastguard Worker 
33*d9f75844SAndroid Build Coastguard Worker extern const char kRedCodecName[];
34*d9f75844SAndroid Build Coastguard Worker extern const char kUlpfecCodecName[];
35*d9f75844SAndroid Build Coastguard Worker extern const char kFlexfecCodecName[];
36*d9f75844SAndroid Build Coastguard Worker extern const char kMultiplexCodecName[];
37*d9f75844SAndroid Build Coastguard Worker 
38*d9f75844SAndroid Build Coastguard Worker extern const char kFlexfecFmtpRepairWindow[];
39*d9f75844SAndroid Build Coastguard Worker 
40*d9f75844SAndroid Build Coastguard Worker extern const char kRtxCodecName[];
41*d9f75844SAndroid Build Coastguard Worker extern const char kCodecParamRtxTime[];
42*d9f75844SAndroid Build Coastguard Worker extern const char kCodecParamAssociatedPayloadType[];
43*d9f75844SAndroid Build Coastguard Worker 
44*d9f75844SAndroid Build Coastguard Worker extern const char kCodecParamAssociatedCodecName[];
45*d9f75844SAndroid Build Coastguard Worker extern const char kCodecParamNotInNameValueFormat[];
46*d9f75844SAndroid Build Coastguard Worker 
47*d9f75844SAndroid Build Coastguard Worker extern const char kOpusCodecName[];
48*d9f75844SAndroid Build Coastguard Worker extern const char kIsacCodecName[];
49*d9f75844SAndroid Build Coastguard Worker extern const char kL16CodecName[];
50*d9f75844SAndroid Build Coastguard Worker extern const char kG722CodecName[];
51*d9f75844SAndroid Build Coastguard Worker extern const char kIlbcCodecName[];
52*d9f75844SAndroid Build Coastguard Worker extern const char kPcmuCodecName[];
53*d9f75844SAndroid Build Coastguard Worker extern const char kPcmaCodecName[];
54*d9f75844SAndroid Build Coastguard Worker extern const char kCnCodecName[];
55*d9f75844SAndroid Build Coastguard Worker extern const char kDtmfCodecName[];
56*d9f75844SAndroid Build Coastguard Worker 
57*d9f75844SAndroid Build Coastguard Worker // Attribute parameters
58*d9f75844SAndroid Build Coastguard Worker extern const char kCodecParamPTime[];
59*d9f75844SAndroid Build Coastguard Worker extern const char kCodecParamMaxPTime[];
60*d9f75844SAndroid Build Coastguard Worker // fmtp parameters
61*d9f75844SAndroid Build Coastguard Worker extern const char kCodecParamMinPTime[];
62*d9f75844SAndroid Build Coastguard Worker extern const char kCodecParamSPropStereo[];
63*d9f75844SAndroid Build Coastguard Worker extern const char kCodecParamStereo[];
64*d9f75844SAndroid Build Coastguard Worker extern const char kCodecParamUseInbandFec[];
65*d9f75844SAndroid Build Coastguard Worker extern const char kCodecParamUseDtx[];
66*d9f75844SAndroid Build Coastguard Worker extern const char kCodecParamMaxAverageBitrate[];
67*d9f75844SAndroid Build Coastguard Worker extern const char kCodecParamMaxPlaybackRate[];
68*d9f75844SAndroid Build Coastguard Worker 
69*d9f75844SAndroid Build Coastguard Worker extern const char kParamValueTrue[];
70*d9f75844SAndroid Build Coastguard Worker // Parameters are stored as parameter/value pairs. For parameters who do not
71*d9f75844SAndroid Build Coastguard Worker // have a value, `kParamValueEmpty` should be used as value.
72*d9f75844SAndroid Build Coastguard Worker extern const char kParamValueEmpty[];
73*d9f75844SAndroid Build Coastguard Worker 
74*d9f75844SAndroid Build Coastguard Worker // opus parameters.
75*d9f75844SAndroid Build Coastguard Worker // Default value for maxptime according to
76*d9f75844SAndroid Build Coastguard Worker // http://tools.ietf.org/html/draft-spittka-payload-rtp-opus-03
77*d9f75844SAndroid Build Coastguard Worker extern const int kOpusDefaultMaxPTime;
78*d9f75844SAndroid Build Coastguard Worker extern const int kOpusDefaultPTime;
79*d9f75844SAndroid Build Coastguard Worker extern const int kOpusDefaultMinPTime;
80*d9f75844SAndroid Build Coastguard Worker extern const int kOpusDefaultSPropStereo;
81*d9f75844SAndroid Build Coastguard Worker extern const int kOpusDefaultStereo;
82*d9f75844SAndroid Build Coastguard Worker extern const int kOpusDefaultUseInbandFec;
83*d9f75844SAndroid Build Coastguard Worker extern const int kOpusDefaultUseDtx;
84*d9f75844SAndroid Build Coastguard Worker extern const int kOpusDefaultMaxPlaybackRate;
85*d9f75844SAndroid Build Coastguard Worker 
86*d9f75844SAndroid Build Coastguard Worker // Prefered values in this code base. Note that they may differ from the default
87*d9f75844SAndroid Build Coastguard Worker // values in http://tools.ietf.org/html/draft-spittka-payload-rtp-opus-03
88*d9f75844SAndroid Build Coastguard Worker // Only frames larger or equal to 10 ms are currently supported in this code
89*d9f75844SAndroid Build Coastguard Worker // base.
90*d9f75844SAndroid Build Coastguard Worker extern const int kPreferredMaxPTime;
91*d9f75844SAndroid Build Coastguard Worker extern const int kPreferredMinPTime;
92*d9f75844SAndroid Build Coastguard Worker extern const int kPreferredSPropStereo;
93*d9f75844SAndroid Build Coastguard Worker extern const int kPreferredStereo;
94*d9f75844SAndroid Build Coastguard Worker extern const int kPreferredUseInbandFec;
95*d9f75844SAndroid Build Coastguard Worker 
96*d9f75844SAndroid Build Coastguard Worker extern const char kPacketizationParamRaw[];
97*d9f75844SAndroid Build Coastguard Worker 
98*d9f75844SAndroid Build Coastguard Worker // rtcp-fb message in its first experimental stages. Documentation pending.
99*d9f75844SAndroid Build Coastguard Worker extern const char kRtcpFbParamLntf[];
100*d9f75844SAndroid Build Coastguard Worker // rtcp-fb messages according to RFC 4585
101*d9f75844SAndroid Build Coastguard Worker extern const char kRtcpFbParamNack[];
102*d9f75844SAndroid Build Coastguard Worker extern const char kRtcpFbNackParamPli[];
103*d9f75844SAndroid Build Coastguard Worker // rtcp-fb messages according to
104*d9f75844SAndroid Build Coastguard Worker // http://tools.ietf.org/html/draft-alvestrand-rmcat-remb-00
105*d9f75844SAndroid Build Coastguard Worker extern const char kRtcpFbParamRemb[];
106*d9f75844SAndroid Build Coastguard Worker // rtcp-fb messages according to
107*d9f75844SAndroid Build Coastguard Worker // https://tools.ietf.org/html/draft-holmer-rmcat-transport-wide-cc-extensions-01
108*d9f75844SAndroid Build Coastguard Worker extern const char kRtcpFbParamTransportCc[];
109*d9f75844SAndroid Build Coastguard Worker // ccm submessages according to RFC 5104
110*d9f75844SAndroid Build Coastguard Worker extern const char kRtcpFbParamCcm[];
111*d9f75844SAndroid Build Coastguard Worker extern const char kRtcpFbCcmParamFir[];
112*d9f75844SAndroid Build Coastguard Worker // Receiver reference time report
113*d9f75844SAndroid Build Coastguard Worker // https://tools.ietf.org/html/rfc3611 section 4.4
114*d9f75844SAndroid Build Coastguard Worker extern const char kRtcpFbParamRrtr[];
115*d9f75844SAndroid Build Coastguard Worker // Google specific parameters
116*d9f75844SAndroid Build Coastguard Worker extern const char kCodecParamMaxBitrate[];
117*d9f75844SAndroid Build Coastguard Worker extern const char kCodecParamMinBitrate[];
118*d9f75844SAndroid Build Coastguard Worker extern const char kCodecParamStartBitrate[];
119*d9f75844SAndroid Build Coastguard Worker extern const char kCodecParamMaxQuantization[];
120*d9f75844SAndroid Build Coastguard Worker 
121*d9f75844SAndroid Build Coastguard Worker extern const char kComfortNoiseCodecName[];
122*d9f75844SAndroid Build Coastguard Worker 
123*d9f75844SAndroid Build Coastguard Worker RTC_EXPORT extern const char kVp8CodecName[];
124*d9f75844SAndroid Build Coastguard Worker RTC_EXPORT extern const char kVp9CodecName[];
125*d9f75844SAndroid Build Coastguard Worker RTC_EXPORT extern const char kAv1CodecName[];
126*d9f75844SAndroid Build Coastguard Worker RTC_EXPORT extern const char kH264CodecName[];
127*d9f75844SAndroid Build Coastguard Worker 
128*d9f75844SAndroid Build Coastguard Worker // RFC 6184 RTP Payload Format for H.264 video
129*d9f75844SAndroid Build Coastguard Worker RTC_EXPORT extern const char kH264FmtpProfileLevelId[];
130*d9f75844SAndroid Build Coastguard Worker RTC_EXPORT extern const char kH264FmtpLevelAsymmetryAllowed[];
131*d9f75844SAndroid Build Coastguard Worker RTC_EXPORT extern const char kH264FmtpPacketizationMode[];
132*d9f75844SAndroid Build Coastguard Worker extern const char kH264FmtpSpropParameterSets[];
133*d9f75844SAndroid Build Coastguard Worker extern const char kH264FmtpSpsPpsIdrInKeyframe[];
134*d9f75844SAndroid Build Coastguard Worker extern const char kH264ProfileLevelConstrainedBaseline[];
135*d9f75844SAndroid Build Coastguard Worker extern const char kH264ProfileLevelConstrainedHigh[];
136*d9f75844SAndroid Build Coastguard Worker 
137*d9f75844SAndroid Build Coastguard Worker extern const char kVP9ProfileId[];
138*d9f75844SAndroid Build Coastguard Worker 
139*d9f75844SAndroid Build Coastguard Worker extern const int kDefaultVideoMaxFramerate;
140*d9f75844SAndroid Build Coastguard Worker 
141*d9f75844SAndroid Build Coastguard Worker extern const size_t kConferenceMaxNumSpatialLayers;
142*d9f75844SAndroid Build Coastguard Worker extern const size_t kConferenceMaxNumTemporalLayers;
143*d9f75844SAndroid Build Coastguard Worker extern const size_t kConferenceDefaultNumTemporalLayers;
144*d9f75844SAndroid Build Coastguard Worker 
145*d9f75844SAndroid Build Coastguard Worker extern const char kApplicationSpecificBandwidth[];
146*d9f75844SAndroid Build Coastguard Worker extern const char kTransportSpecificBandwidth[];
147*d9f75844SAndroid Build Coastguard Worker }  // namespace cricket
148*d9f75844SAndroid Build Coastguard Worker 
149*d9f75844SAndroid Build Coastguard Worker #endif  // MEDIA_BASE_MEDIA_CONSTANTS_H_
150