• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 extern const int kDataCodecClockrate;
24 extern const int kDataMaxBandwidth;  // bps
25 
26 // Default CPU thresholds.
27 extern const float kHighSystemCpuThreshold;
28 extern const float kLowSystemCpuThreshold;
29 extern const float kProcessCpuThreshold;
30 
31 extern const char kRtxCodecName[];
32 extern const char kRedCodecName[];
33 extern const char kUlpfecCodecName[];
34 extern const char kFlexfecCodecName[];
35 extern const char kMultiplexCodecName[];
36 
37 extern const char kFlexfecFmtpRepairWindow[];
38 
39 // Codec parameters
40 extern const char kCodecParamAssociatedPayloadType[];
41 extern const char kCodecParamAssociatedCodecName[];
42 
43 extern const char kOpusCodecName[];
44 extern const char kIsacCodecName[];
45 extern const char kL16CodecName[];
46 extern const char kG722CodecName[];
47 extern const char kIlbcCodecName[];
48 extern const char kPcmuCodecName[];
49 extern const char kPcmaCodecName[];
50 extern const char kCnCodecName[];
51 extern const char kDtmfCodecName[];
52 
53 // Attribute parameters
54 extern const char kCodecParamPTime[];
55 extern const char kCodecParamMaxPTime[];
56 // fmtp parameters
57 extern const char kCodecParamMinPTime[];
58 extern const char kCodecParamSPropStereo[];
59 extern const char kCodecParamStereo[];
60 extern const char kCodecParamUseInbandFec[];
61 extern const char kCodecParamUseDtx[];
62 extern const char kCodecParamMaxAverageBitrate[];
63 extern const char kCodecParamMaxPlaybackRate[];
64 extern const char kCodecParamSctpProtocol[];
65 extern const char kCodecParamSctpStreams[];
66 
67 extern const char kParamValueTrue[];
68 // Parameters are stored as parameter/value pairs. For parameters who do not
69 // have a value, |kParamValueEmpty| should be used as value.
70 extern const char kParamValueEmpty[];
71 
72 // opus parameters.
73 // Default value for maxptime according to
74 // http://tools.ietf.org/html/draft-spittka-payload-rtp-opus-03
75 extern const int kOpusDefaultMaxPTime;
76 extern const int kOpusDefaultPTime;
77 extern const int kOpusDefaultMinPTime;
78 extern const int kOpusDefaultSPropStereo;
79 extern const int kOpusDefaultStereo;
80 extern const int kOpusDefaultUseInbandFec;
81 extern const int kOpusDefaultUseDtx;
82 extern const int kOpusDefaultMaxPlaybackRate;
83 
84 // Prefered values in this code base. Note that they may differ from the default
85 // values in http://tools.ietf.org/html/draft-spittka-payload-rtp-opus-03
86 // Only frames larger or equal to 10 ms are currently supported in this code
87 // base.
88 extern const int kPreferredMaxPTime;
89 extern const int kPreferredMinPTime;
90 extern const int kPreferredSPropStereo;
91 extern const int kPreferredStereo;
92 extern const int kPreferredUseInbandFec;
93 
94 extern const char kPacketizationParamRaw[];
95 
96 // rtcp-fb message in its first experimental stages. Documentation pending.
97 extern const char kRtcpFbParamLntf[];
98 // rtcp-fb messages according to RFC 4585
99 extern const char kRtcpFbParamNack[];
100 extern const char kRtcpFbNackParamPli[];
101 // rtcp-fb messages according to
102 // http://tools.ietf.org/html/draft-alvestrand-rmcat-remb-00
103 extern const char kRtcpFbParamRemb[];
104 // rtcp-fb messages according to
105 // https://tools.ietf.org/html/draft-holmer-rmcat-transport-wide-cc-extensions-01
106 extern const char kRtcpFbParamTransportCc[];
107 // ccm submessages according to RFC 5104
108 extern const char kRtcpFbParamCcm[];
109 extern const char kRtcpFbCcmParamFir[];
110 // Receiver reference time report
111 // https://tools.ietf.org/html/rfc3611 section 4.4
112 extern const char kRtcpFbParamRrtr[];
113 // Google specific parameters
114 extern const char kCodecParamMaxBitrate[];
115 extern const char kCodecParamMinBitrate[];
116 extern const char kCodecParamStartBitrate[];
117 extern const char kCodecParamMaxQuantization[];
118 extern const char kCodecParamPort[];
119 extern const char kCodecParamMaxMessageSize[];
120 
121 // We put the data codec names here so callers of DataEngine::CreateChannel
122 // don't have to import rtpdataengine.h to get the codec names they want to
123 // pass in.
124 extern const int kGoogleRtpDataCodecPlType;
125 extern const char kGoogleRtpDataCodecName[];
126 
127 extern const char kComfortNoiseCodecName[];
128 
129 RTC_EXPORT extern const char kVp8CodecName[];
130 RTC_EXPORT extern const char kVp9CodecName[];
131 RTC_EXPORT extern const char kAv1CodecName[];
132 RTC_EXPORT extern const char kH264CodecName[];
133 RTC_EXPORT extern const char kHEVCCodecName[];
134 
135 // RFC 6184 RTP Payload Format for H.264 video
136 RTC_EXPORT extern const char kH264FmtpProfileLevelId[];
137 RTC_EXPORT extern const char kH264FmtpLevelAsymmetryAllowed[];
138 RTC_EXPORT extern const char kH264FmtpPacketizationMode[];
139 extern const char kH264FmtpSpropParameterSets[];
140 extern const char kH264ProfileLevelConstrainedBaseline[];
141 extern const char kH264ProfileLevelConstrainedHigh[];
142 
143 extern const int kDefaultVideoMaxFramerate;
144 
145 extern const size_t kConferenceMaxNumSpatialLayers;
146 extern const size_t kConferenceMaxNumTemporalLayers;
147 extern const size_t kConferenceDefaultNumTemporalLayers;
148 }  // namespace cricket
149 
150 #endif  // MEDIA_BASE_MEDIA_CONSTANTS_H_
151