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