henrike@webrtc.org | 28e2075 | 2013-07-10 00:45:36 +0000 | [diff] [blame] | 1 | /* |
kjellander | 1afca73 | 2016-02-07 20:46:45 -0800 | [diff] [blame] | 2 | * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
henrike@webrtc.org | 28e2075 | 2013-07-10 00:45:36 +0000 | [diff] [blame] | 3 | * |
kjellander | 1afca73 | 2016-02-07 20:46:45 -0800 | [diff] [blame] | 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. |
henrike@webrtc.org | 28e2075 | 2013-07-10 00:45:36 +0000 | [diff] [blame] | 9 | */ |
| 10 | |
Steve Anton | 10542f2 | 2019-01-11 09:11:00 -0800 | [diff] [blame] | 11 | #ifndef MEDIA_BASE_MEDIA_CONSTANTS_H_ |
| 12 | #define MEDIA_BASE_MEDIA_CONSTANTS_H_ |
henrike@webrtc.org | 28e2075 | 2013-07-10 00:45:36 +0000 | [diff] [blame] | 13 | |
Yves Gerey | 3e70781 | 2018-11-28 16:47:49 +0100 | [diff] [blame] | 14 | #include <stddef.h> |
henrike@webrtc.org | 28e2075 | 2013-07-10 00:45:36 +0000 | [diff] [blame] | 15 | |
Mirko Bonadei | d65d179 | 2018-10-17 16:50:07 +0200 | [diff] [blame] | 16 | #include "rtc_base/system/rtc_export.h" |
| 17 | |
henrike@webrtc.org | 28e2075 | 2013-07-10 00:45:36 +0000 | [diff] [blame] | 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 | |
sergeyu@chromium.org | 32f485b | 2013-12-05 22:36:21 +0000 | [diff] [blame] | 31 | extern const char kRtxCodecName[]; |
pbos@webrtc.org | b5a22b1 | 2014-05-13 11:07:01 +0000 | [diff] [blame] | 32 | extern const char kRedCodecName[]; |
| 33 | extern const char kUlpfecCodecName[]; |
brandtr | 87d7d77 | 2016-11-07 03:03:41 -0800 | [diff] [blame] | 34 | extern const char kFlexfecCodecName[]; |
Emircan Uysaler | d7ae3c3 | 2018-01-25 13:01:09 -0800 | [diff] [blame] | 35 | extern const char kMultiplexCodecName[]; |
brandtr | 87d7d77 | 2016-11-07 03:03:41 -0800 | [diff] [blame] | 36 | |
| 37 | extern const char kFlexfecFmtpRepairWindow[]; |
pbos@webrtc.org | b5a22b1 | 2014-05-13 11:07:01 +0000 | [diff] [blame] | 38 | |
henrike@webrtc.org | 28e2075 | 2013-07-10 00:45:36 +0000 | [diff] [blame] | 39 | // Codec parameters |
sergeyu@chromium.org | 32f485b | 2013-12-05 22:36:21 +0000 | [diff] [blame] | 40 | extern const char kCodecParamAssociatedPayloadType[]; |
Emircan Uysaler | 0a37547 | 2017-12-11 12:21:02 +0530 | [diff] [blame] | 41 | extern const char kCodecParamAssociatedCodecName[]; |
henrike@webrtc.org | 28e2075 | 2013-07-10 00:45:36 +0000 | [diff] [blame] | 42 | |
sergeyu@chromium.org | 32f485b | 2013-12-05 22:36:21 +0000 | [diff] [blame] | 43 | extern const char kOpusCodecName[]; |
Brave Yao | 5225dd8 | 2015-03-26 07:39:19 +0800 | [diff] [blame] | 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[]; |
henrike@webrtc.org | 28e2075 | 2013-07-10 00:45:36 +0000 | [diff] [blame] | 52 | |
| 53 | // Attribute parameters |
sergeyu@chromium.org | 32f485b | 2013-12-05 22:36:21 +0000 | [diff] [blame] | 54 | extern const char kCodecParamPTime[]; |
| 55 | extern const char kCodecParamMaxPTime[]; |
henrike@webrtc.org | 28e2075 | 2013-07-10 00:45:36 +0000 | [diff] [blame] | 56 | // fmtp parameters |
sergeyu@chromium.org | 32f485b | 2013-12-05 22:36:21 +0000 | [diff] [blame] | 57 | extern const char kCodecParamMinPTime[]; |
| 58 | extern const char kCodecParamSPropStereo[]; |
| 59 | extern const char kCodecParamStereo[]; |
| 60 | extern const char kCodecParamUseInbandFec[]; |
Minyue Li | 7100dcd | 2015-03-27 05:05:59 +0100 | [diff] [blame] | 61 | extern const char kCodecParamUseDtx[]; |
sergeyu@chromium.org | 32f485b | 2013-12-05 22:36:21 +0000 | [diff] [blame] | 62 | extern const char kCodecParamMaxAverageBitrate[]; |
buildbot@webrtc.org | 5d639b3 | 2014-09-10 07:57:12 +0000 | [diff] [blame] | 63 | extern const char kCodecParamMaxPlaybackRate[]; |
sergeyu@chromium.org | 32f485b | 2013-12-05 22:36:21 +0000 | [diff] [blame] | 64 | extern const char kCodecParamSctpProtocol[]; |
| 65 | extern const char kCodecParamSctpStreams[]; |
henrike@webrtc.org | 28e2075 | 2013-07-10 00:45:36 +0000 | [diff] [blame] | 66 | |
sergeyu@chromium.org | 32f485b | 2013-12-05 22:36:21 +0000 | [diff] [blame] | 67 | extern const char kParamValueTrue[]; |
henrike@webrtc.org | 28e2075 | 2013-07-10 00:45:36 +0000 | [diff] [blame] | 68 | // Parameters are stored as parameter/value pairs. For parameters who do not |
| 69 | // have a value, |kParamValueEmpty| should be used as value. |
sergeyu@chromium.org | 32f485b | 2013-12-05 22:36:21 +0000 | [diff] [blame] | 70 | extern const char kParamValueEmpty[]; |
henrike@webrtc.org | 28e2075 | 2013-07-10 00:45:36 +0000 | [diff] [blame] | 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; |
Minyue Li | 7100dcd | 2015-03-27 05:05:59 +0100 | [diff] [blame] | 81 | extern const int kOpusDefaultUseDtx; |
buildbot@webrtc.org | 5d639b3 | 2014-09-10 07:57:12 +0000 | [diff] [blame] | 82 | extern const int kOpusDefaultMaxPlaybackRate; |
| 83 | |
henrike@webrtc.org | 28e2075 | 2013-07-10 00:45:36 +0000 | [diff] [blame] | 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 | // rtcp-fb messages according to RFC 4585 |
sergeyu@chromium.org | 32f485b | 2013-12-05 22:36:21 +0000 | [diff] [blame] | 95 | extern const char kRtcpFbParamNack[]; |
henrika@webrtc.org | aebb1ad | 2014-01-14 10:00:58 +0000 | [diff] [blame] | 96 | extern const char kRtcpFbNackParamPli[]; |
henrike@webrtc.org | 28e2075 | 2013-07-10 00:45:36 +0000 | [diff] [blame] | 97 | // rtcp-fb messages according to |
| 98 | // http://tools.ietf.org/html/draft-alvestrand-rmcat-remb-00 |
sergeyu@chromium.org | 32f485b | 2013-12-05 22:36:21 +0000 | [diff] [blame] | 99 | extern const char kRtcpFbParamRemb[]; |
stefan | 43edf0f | 2015-11-20 18:05:48 -0800 | [diff] [blame] | 100 | // rtcp-fb messages according to |
| 101 | // https://tools.ietf.org/html/draft-holmer-rmcat-transport-wide-cc-extensions-01 |
| 102 | extern const char kRtcpFbParamTransportCc[]; |
henrike@webrtc.org | 28e2075 | 2013-07-10 00:45:36 +0000 | [diff] [blame] | 103 | // ccm submessages according to RFC 5104 |
sergeyu@chromium.org | 32f485b | 2013-12-05 22:36:21 +0000 | [diff] [blame] | 104 | extern const char kRtcpFbParamCcm[]; |
| 105 | extern const char kRtcpFbCcmParamFir[]; |
Ilya Nikolaevskiy | 634a777 | 2018-04-04 16:33:49 +0200 | [diff] [blame] | 106 | // Receiver reference time report |
| 107 | // https://tools.ietf.org/html/rfc3611 section 4.4 |
| 108 | extern const char kRtcpFbParamRrtr[]; |
henrike@webrtc.org | 28e2075 | 2013-07-10 00:45:36 +0000 | [diff] [blame] | 109 | // Google specific parameters |
sergeyu@chromium.org | 32f485b | 2013-12-05 22:36:21 +0000 | [diff] [blame] | 110 | extern const char kCodecParamMaxBitrate[]; |
| 111 | extern const char kCodecParamMinBitrate[]; |
buildbot@webrtc.org | ed97bb0 | 2014-05-07 11:15:20 +0000 | [diff] [blame] | 112 | extern const char kCodecParamStartBitrate[]; |
sergeyu@chromium.org | 32f485b | 2013-12-05 22:36:21 +0000 | [diff] [blame] | 113 | extern const char kCodecParamMaxQuantization[]; |
| 114 | extern const char kCodecParamPort[]; |
Harald Alvestrand | 48cce4d | 2019-04-11 10:41:24 +0200 | [diff] [blame^] | 115 | extern const char kCodecParamMaxMessageSize[]; |
henrike@webrtc.org | 28e2075 | 2013-07-10 00:45:36 +0000 | [diff] [blame] | 116 | |
deadbeef | 953c2ce | 2017-01-09 14:53:41 -0800 | [diff] [blame] | 117 | // We put the data codec names here so callers of DataEngine::CreateChannel |
| 118 | // don't have to import rtpdataengine.h to get the codec names they want to |
| 119 | // pass in. |
solenberg | 9fa4975 | 2016-10-08 13:02:44 -0700 | [diff] [blame] | 120 | extern const int kGoogleRtpDataCodecPlType; |
henrike@webrtc.org | 28e2075 | 2013-07-10 00:45:36 +0000 | [diff] [blame] | 121 | extern const char kGoogleRtpDataCodecName[]; |
| 122 | |
| 123 | // TODO(pthatcher): Find an id that won't conflict with anything. On |
| 124 | // the other hand, it really shouldn't matter since the id won't be |
| 125 | // used on the wire. |
solenberg | 9fa4975 | 2016-10-08 13:02:44 -0700 | [diff] [blame] | 126 | extern const int kGoogleSctpDataCodecPlType; |
henrike@webrtc.org | 28e2075 | 2013-07-10 00:45:36 +0000 | [diff] [blame] | 127 | extern const char kGoogleSctpDataCodecName[]; |
| 128 | |
| 129 | extern const char kComfortNoiseCodecName[]; |
| 130 | |
Mirko Bonadei | 66e7679 | 2019-04-02 11:33:59 +0200 | [diff] [blame] | 131 | RTC_EXPORT extern const char kVp8CodecName[]; |
| 132 | RTC_EXPORT extern const char kVp9CodecName[]; |
Mirko Bonadei | d65d179 | 2018-10-17 16:50:07 +0200 | [diff] [blame] | 133 | RTC_EXPORT extern const char kH264CodecName[]; |
Shao Changbin | e62202f | 2015-04-21 20:24:50 +0800 | [diff] [blame] | 134 | |
hta | a6b9944 | 2016-04-12 10:29:17 -0700 | [diff] [blame] | 135 | // RFC 6184 RTP Payload Format for H.264 video |
Mirko Bonadei | d65d179 | 2018-10-17 16:50:07 +0200 | [diff] [blame] | 136 | RTC_EXPORT extern const char kH264FmtpProfileLevelId[]; |
| 137 | RTC_EXPORT extern const char kH264FmtpLevelAsymmetryAllowed[]; |
| 138 | RTC_EXPORT extern const char kH264FmtpPacketizationMode[]; |
magjed | 5dfac56 | 2016-11-25 03:56:37 -0800 | [diff] [blame] | 139 | extern const char kH264FmtpSpropParameterSets[]; |
hta | a6b9944 | 2016-04-12 10:29:17 -0700 | [diff] [blame] | 140 | extern const char kH264ProfileLevelConstrainedBaseline[]; |
| 141 | |
Shao Changbin | e62202f | 2015-04-21 20:24:50 +0800 | [diff] [blame] | 142 | extern const int kDefaultVideoMaxFramerate; |
Sergey Silkin | f18072e | 2018-03-14 10:35:35 +0100 | [diff] [blame] | 143 | |
| 144 | extern const size_t kConferenceMaxNumSpatialLayers; |
| 145 | extern const size_t kConferenceMaxNumTemporalLayers; |
| 146 | extern const size_t kConferenceDefaultNumTemporalLayers; |
henrike@webrtc.org | 28e2075 | 2013-07-10 00:45:36 +0000 | [diff] [blame] | 147 | } // namespace cricket |
| 148 | |
Steve Anton | 10542f2 | 2019-01-11 09:11:00 -0800 | [diff] [blame] | 149 | #endif // MEDIA_BASE_MEDIA_CONSTANTS_H_ |