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