blob: 106fad0cf4fc891d408cd8a6fe0983f9accb2387 [file] [log] [blame]
henrike@webrtc.org28e20752013-07-10 00:45:36 +00001/*
kjellander1afca732016-02-07 20:46:45 -08002 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
henrike@webrtc.org28e20752013-07-10 00:45:36 +00003 *
kjellander1afca732016-02-07 20:46:45 -08004 * 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.org28e20752013-07-10 00:45:36 +00009 */
10
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020011#ifndef MEDIA_BASE_MEDIACONSTANTS_H_
12#define MEDIA_BASE_MEDIACONSTANTS_H_
henrike@webrtc.org28e20752013-07-10 00:45:36 +000013
14#include <string>
15
16// This file contains constants related to media.
17
18namespace cricket {
19
20extern const int kVideoCodecClockrate;
21extern const int kDataCodecClockrate;
22extern const int kDataMaxBandwidth; // bps
23
24// Default CPU thresholds.
25extern const float kHighSystemCpuThreshold;
26extern const float kLowSystemCpuThreshold;
27extern const float kProcessCpuThreshold;
28
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +000029extern const char kRtxCodecName[];
pbos@webrtc.orgb5a22b12014-05-13 11:07:01 +000030extern const char kRedCodecName[];
31extern const char kUlpfecCodecName[];
brandtr87d7d772016-11-07 03:03:41 -080032extern const char kFlexfecCodecName[];
33
34extern const char kFlexfecFmtpRepairWindow[];
pbos@webrtc.orgb5a22b12014-05-13 11:07:01 +000035
henrike@webrtc.org28e20752013-07-10 00:45:36 +000036// Codec parameters
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +000037extern const char kCodecParamAssociatedPayloadType[];
henrike@webrtc.org28e20752013-07-10 00:45:36 +000038
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +000039extern const char kOpusCodecName[];
Brave Yao5225dd82015-03-26 07:39:19 +080040extern const char kIsacCodecName[];
41extern const char kL16CodecName[];
42extern const char kG722CodecName[];
43extern const char kIlbcCodecName[];
44extern const char kPcmuCodecName[];
45extern const char kPcmaCodecName[];
46extern const char kCnCodecName[];
47extern const char kDtmfCodecName[];
henrike@webrtc.org28e20752013-07-10 00:45:36 +000048
49// Attribute parameters
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +000050extern const char kCodecParamPTime[];
51extern const char kCodecParamMaxPTime[];
henrike@webrtc.org28e20752013-07-10 00:45:36 +000052// fmtp parameters
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +000053extern const char kCodecParamMinPTime[];
54extern const char kCodecParamSPropStereo[];
55extern const char kCodecParamStereo[];
56extern const char kCodecParamUseInbandFec[];
Minyue Li7100dcd2015-03-27 05:05:59 +010057extern const char kCodecParamUseDtx[];
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +000058extern const char kCodecParamMaxAverageBitrate[];
buildbot@webrtc.org5d639b32014-09-10 07:57:12 +000059extern const char kCodecParamMaxPlaybackRate[];
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +000060extern const char kCodecParamSctpProtocol[];
61extern const char kCodecParamSctpStreams[];
henrike@webrtc.org28e20752013-07-10 00:45:36 +000062
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +000063extern const char kParamValueTrue[];
henrike@webrtc.org28e20752013-07-10 00:45:36 +000064// Parameters are stored as parameter/value pairs. For parameters who do not
65// have a value, |kParamValueEmpty| should be used as value.
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +000066extern const char kParamValueEmpty[];
henrike@webrtc.org28e20752013-07-10 00:45:36 +000067
68// opus parameters.
69// Default value for maxptime according to
70// http://tools.ietf.org/html/draft-spittka-payload-rtp-opus-03
71extern const int kOpusDefaultMaxPTime;
72extern const int kOpusDefaultPTime;
73extern const int kOpusDefaultMinPTime;
74extern const int kOpusDefaultSPropStereo;
75extern const int kOpusDefaultStereo;
76extern const int kOpusDefaultUseInbandFec;
Minyue Li7100dcd2015-03-27 05:05:59 +010077extern const int kOpusDefaultUseDtx;
buildbot@webrtc.org5d639b32014-09-10 07:57:12 +000078extern const int kOpusDefaultMaxPlaybackRate;
79
henrike@webrtc.org28e20752013-07-10 00:45:36 +000080// Prefered values in this code base. Note that they may differ from the default
81// values in http://tools.ietf.org/html/draft-spittka-payload-rtp-opus-03
82// Only frames larger or equal to 10 ms are currently supported in this code
83// base.
84extern const int kPreferredMaxPTime;
85extern const int kPreferredMinPTime;
86extern const int kPreferredSPropStereo;
87extern const int kPreferredStereo;
88extern const int kPreferredUseInbandFec;
89
90// rtcp-fb messages according to RFC 4585
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +000091extern const char kRtcpFbParamNack[];
henrika@webrtc.orgaebb1ad2014-01-14 10:00:58 +000092extern const char kRtcpFbNackParamPli[];
henrike@webrtc.org28e20752013-07-10 00:45:36 +000093// rtcp-fb messages according to
94// http://tools.ietf.org/html/draft-alvestrand-rmcat-remb-00
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +000095extern const char kRtcpFbParamRemb[];
stefan43edf0f2015-11-20 18:05:48 -080096// rtcp-fb messages according to
97// https://tools.ietf.org/html/draft-holmer-rmcat-transport-wide-cc-extensions-01
98extern const char kRtcpFbParamTransportCc[];
henrike@webrtc.org28e20752013-07-10 00:45:36 +000099// ccm submessages according to RFC 5104
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +0000100extern const char kRtcpFbParamCcm[];
101extern const char kRtcpFbCcmParamFir[];
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000102// Google specific parameters
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +0000103extern const char kCodecParamMaxBitrate[];
104extern const char kCodecParamMinBitrate[];
buildbot@webrtc.orged97bb02014-05-07 11:15:20 +0000105extern const char kCodecParamStartBitrate[];
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +0000106extern const char kCodecParamMaxQuantization[];
107extern const char kCodecParamPort[];
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000108
deadbeef953c2ce2017-01-09 14:53:41 -0800109// We put the data codec names here so callers of DataEngine::CreateChannel
110// don't have to import rtpdataengine.h to get the codec names they want to
111// pass in.
solenberg9fa49752016-10-08 13:02:44 -0700112extern const int kGoogleRtpDataCodecPlType;
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000113extern const char kGoogleRtpDataCodecName[];
114
115// TODO(pthatcher): Find an id that won't conflict with anything. On
116// the other hand, it really shouldn't matter since the id won't be
117// used on the wire.
solenberg9fa49752016-10-08 13:02:44 -0700118extern const int kGoogleSctpDataCodecPlType;
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000119extern const char kGoogleSctpDataCodecName[];
120
121extern const char kComfortNoiseCodecName[];
122
Shao Changbine62202f2015-04-21 20:24:50 +0800123extern const char kVp8CodecName[];
124extern const char kVp9CodecName[];
Zeke Chin71f6f442015-06-29 14:34:58 -0700125extern const char kH264CodecName[];
Shao Changbine62202f2015-04-21 20:24:50 +0800126
htaa6b99442016-04-12 10:29:17 -0700127// RFC 6184 RTP Payload Format for H.264 video
128extern const char kH264FmtpProfileLevelId[];
129extern const char kH264FmtpLevelAsymmetryAllowed[];
130extern const char kH264FmtpPacketizationMode[];
magjed5dfac562016-11-25 03:56:37 -0800131extern const char kH264FmtpSpropParameterSets[];
htaa6b99442016-04-12 10:29:17 -0700132extern const char kH264ProfileLevelConstrainedBaseline[];
133
Shao Changbine62202f2015-04-21 20:24:50 +0800134extern const int kDefaultVideoMaxFramerate;
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000135} // namespace cricket
136
Mirko Bonadei92ea95e2017-09-15 06:47:31 +0200137#endif // MEDIA_BASE_MEDIACONSTANTS_H_