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