blob: 28fd5e088a6163b86c01c95fc06aa2184dec8f94 [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
kjellanderf4752772016-03-02 05:42:30 -080011#ifndef WEBRTC_MEDIA_BASE_MEDIACONSTANTS_H_
12#define WEBRTC_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[];
32
henrike@webrtc.org28e20752013-07-10 00:45:36 +000033// Codec parameters
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +000034extern const char kCodecParamAssociatedPayloadType[];
henrike@webrtc.org28e20752013-07-10 00:45:36 +000035
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +000036extern const char kOpusCodecName[];
Brave Yao5225dd82015-03-26 07:39:19 +080037extern const char kIsacCodecName[];
38extern const char kL16CodecName[];
39extern const char kG722CodecName[];
40extern const char kIlbcCodecName[];
41extern const char kPcmuCodecName[];
42extern const char kPcmaCodecName[];
43extern const char kCnCodecName[];
44extern const char kDtmfCodecName[];
henrike@webrtc.org28e20752013-07-10 00:45:36 +000045
46// Attribute parameters
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +000047extern const char kCodecParamPTime[];
48extern const char kCodecParamMaxPTime[];
henrike@webrtc.org28e20752013-07-10 00:45:36 +000049// fmtp parameters
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +000050extern const char kCodecParamMinPTime[];
51extern const char kCodecParamSPropStereo[];
52extern const char kCodecParamStereo[];
53extern const char kCodecParamUseInbandFec[];
Minyue Li7100dcd2015-03-27 05:05:59 +010054extern const char kCodecParamUseDtx[];
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +000055extern const char kCodecParamMaxAverageBitrate[];
buildbot@webrtc.org5d639b32014-09-10 07:57:12 +000056extern const char kCodecParamMaxPlaybackRate[];
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +000057extern const char kCodecParamSctpProtocol[];
58extern const char kCodecParamSctpStreams[];
henrike@webrtc.org28e20752013-07-10 00:45:36 +000059
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +000060extern const char kParamValueTrue[];
henrike@webrtc.org28e20752013-07-10 00:45:36 +000061// Parameters are stored as parameter/value pairs. For parameters who do not
62// have a value, |kParamValueEmpty| should be used as value.
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +000063extern const char kParamValueEmpty[];
henrike@webrtc.org28e20752013-07-10 00:45:36 +000064
65// opus parameters.
66// Default value for maxptime according to
67// http://tools.ietf.org/html/draft-spittka-payload-rtp-opus-03
68extern const int kOpusDefaultMaxPTime;
69extern const int kOpusDefaultPTime;
70extern const int kOpusDefaultMinPTime;
71extern const int kOpusDefaultSPropStereo;
72extern const int kOpusDefaultStereo;
73extern const int kOpusDefaultUseInbandFec;
Minyue Li7100dcd2015-03-27 05:05:59 +010074extern const int kOpusDefaultUseDtx;
buildbot@webrtc.org5d639b32014-09-10 07:57:12 +000075extern const int kOpusDefaultMaxPlaybackRate;
76
henrike@webrtc.org28e20752013-07-10 00:45:36 +000077// Prefered values in this code base. Note that they may differ from the default
78// values in http://tools.ietf.org/html/draft-spittka-payload-rtp-opus-03
79// Only frames larger or equal to 10 ms are currently supported in this code
80// base.
81extern const int kPreferredMaxPTime;
82extern const int kPreferredMinPTime;
83extern const int kPreferredSPropStereo;
84extern const int kPreferredStereo;
85extern const int kPreferredUseInbandFec;
86
87// rtcp-fb messages according to RFC 4585
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +000088extern const char kRtcpFbParamNack[];
henrika@webrtc.orgaebb1ad2014-01-14 10:00:58 +000089extern const char kRtcpFbNackParamPli[];
henrike@webrtc.org28e20752013-07-10 00:45:36 +000090// rtcp-fb messages according to
91// http://tools.ietf.org/html/draft-alvestrand-rmcat-remb-00
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +000092extern const char kRtcpFbParamRemb[];
stefan43edf0f2015-11-20 18:05:48 -080093// rtcp-fb messages according to
94// https://tools.ietf.org/html/draft-holmer-rmcat-transport-wide-cc-extensions-01
95extern const char kRtcpFbParamTransportCc[];
henrike@webrtc.org28e20752013-07-10 00:45:36 +000096// ccm submessages according to RFC 5104
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +000097extern const char kRtcpFbParamCcm[];
98extern const char kRtcpFbCcmParamFir[];
henrike@webrtc.org28e20752013-07-10 00:45:36 +000099// Google specific parameters
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +0000100extern const char kCodecParamMaxBitrate[];
101extern const char kCodecParamMinBitrate[];
buildbot@webrtc.orged97bb02014-05-07 11:15:20 +0000102extern const char kCodecParamStartBitrate[];
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +0000103extern const char kCodecParamMaxQuantization[];
104extern const char kCodecParamPort[];
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000105
106// We put the data codec names here so callers of
107// DataEngine::CreateChannel don't have to import rtpdataengine.h or
108// sctpdataengine.h to get the codec names they want to pass in.
solenberg9fa49752016-10-08 13:02:44 -0700109extern const int kGoogleRtpDataCodecPlType;
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000110extern const char kGoogleRtpDataCodecName[];
111
112// TODO(pthatcher): Find an id that won't conflict with anything. On
113// the other hand, it really shouldn't matter since the id won't be
114// used on the wire.
solenberg9fa49752016-10-08 13:02:44 -0700115extern const int kGoogleSctpDataCodecPlType;
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000116extern const char kGoogleSctpDataCodecName[];
117
118extern const char kComfortNoiseCodecName[];
119
Shao Changbine62202f2015-04-21 20:24:50 +0800120extern const char kVp8CodecName[];
121extern const char kVp9CodecName[];
Zeke Chin71f6f442015-06-29 14:34:58 -0700122extern const char kH264CodecName[];
Shao Changbine62202f2015-04-21 20:24:50 +0800123
htaa6b99442016-04-12 10:29:17 -0700124// RFC 6184 RTP Payload Format for H.264 video
125extern const char kH264FmtpProfileLevelId[];
magjed68979ab2016-10-06 02:15:49 -0700126extern const char kH264FmtpDefaultProfileLevelId[];
htaa6b99442016-04-12 10:29:17 -0700127extern const char kH264FmtpLevelAsymmetryAllowed[];
128extern const char kH264FmtpPacketizationMode[];
129extern const char kH264ProfileLevelConstrainedBaseline[];
130
Shao Changbine62202f2015-04-21 20:24:50 +0800131extern const int kDefaultVp8PlType;
132extern const int kDefaultVp9PlType;
Zeke Chin71f6f442015-06-29 14:34:58 -0700133extern const int kDefaultH264PlType;
Shao Changbine62202f2015-04-21 20:24:50 +0800134extern const int kDefaultRedPlType;
135extern const int kDefaultUlpfecType;
136extern const int kDefaultRtxVp8PlType;
Stefan Holmer10880012016-02-03 13:29:59 +0100137extern const int kDefaultRtxVp9PlType;
138extern const int kDefaultRtxRedPlType;
stefan1e016602016-02-11 04:13:54 -0800139extern const int kDefaultRtxH264PlType;
Shao Changbine62202f2015-04-21 20:24:50 +0800140
141extern const int kDefaultVideoMaxWidth;
142extern const int kDefaultVideoMaxHeight;
143extern const int kDefaultVideoMaxFramerate;
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000144} // namespace cricket
145
kjellanderf4752772016-03-02 05:42:30 -0800146#endif // WEBRTC_MEDIA_BASE_MEDIACONSTANTS_H_