blob: 58a66d917a8a875b2dc6720e2c187dd92a0b89f8 [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[];
Emircan Uysaler0a375472017-12-11 12:21:02 +053033extern const char kStereoCodecName[];
brandtr87d7d772016-11-07 03:03:41 -080034
35extern const char kFlexfecFmtpRepairWindow[];
pbos@webrtc.orgb5a22b12014-05-13 11:07:01 +000036
henrike@webrtc.org28e20752013-07-10 00:45:36 +000037// Codec parameters
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +000038extern const char kCodecParamAssociatedPayloadType[];
Emircan Uysaler0a375472017-12-11 12:21:02 +053039extern const char kCodecParamAssociatedCodecName[];
henrike@webrtc.org28e20752013-07-10 00:45:36 +000040
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +000041extern const char kOpusCodecName[];
Brave Yao5225dd82015-03-26 07:39:19 +080042extern const char kIsacCodecName[];
43extern const char kL16CodecName[];
44extern const char kG722CodecName[];
45extern const char kIlbcCodecName[];
46extern const char kPcmuCodecName[];
47extern const char kPcmaCodecName[];
48extern const char kCnCodecName[];
49extern const char kDtmfCodecName[];
henrike@webrtc.org28e20752013-07-10 00:45:36 +000050
51// Attribute parameters
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +000052extern const char kCodecParamPTime[];
53extern const char kCodecParamMaxPTime[];
henrike@webrtc.org28e20752013-07-10 00:45:36 +000054// fmtp parameters
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +000055extern const char kCodecParamMinPTime[];
56extern const char kCodecParamSPropStereo[];
57extern const char kCodecParamStereo[];
58extern const char kCodecParamUseInbandFec[];
Minyue Li7100dcd2015-03-27 05:05:59 +010059extern const char kCodecParamUseDtx[];
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +000060extern const char kCodecParamMaxAverageBitrate[];
buildbot@webrtc.org5d639b32014-09-10 07:57:12 +000061extern const char kCodecParamMaxPlaybackRate[];
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +000062extern const char kCodecParamSctpProtocol[];
63extern const char kCodecParamSctpStreams[];
henrike@webrtc.org28e20752013-07-10 00:45:36 +000064
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +000065extern const char kParamValueTrue[];
henrike@webrtc.org28e20752013-07-10 00:45:36 +000066// Parameters are stored as parameter/value pairs. For parameters who do not
67// have a value, |kParamValueEmpty| should be used as value.
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +000068extern const char kParamValueEmpty[];
henrike@webrtc.org28e20752013-07-10 00:45:36 +000069
70// opus parameters.
71// Default value for maxptime according to
72// http://tools.ietf.org/html/draft-spittka-payload-rtp-opus-03
73extern const int kOpusDefaultMaxPTime;
74extern const int kOpusDefaultPTime;
75extern const int kOpusDefaultMinPTime;
76extern const int kOpusDefaultSPropStereo;
77extern const int kOpusDefaultStereo;
78extern const int kOpusDefaultUseInbandFec;
Minyue Li7100dcd2015-03-27 05:05:59 +010079extern const int kOpusDefaultUseDtx;
buildbot@webrtc.org5d639b32014-09-10 07:57:12 +000080extern const int kOpusDefaultMaxPlaybackRate;
81
henrike@webrtc.org28e20752013-07-10 00:45:36 +000082// Prefered values in this code base. Note that they may differ from the default
83// values in http://tools.ietf.org/html/draft-spittka-payload-rtp-opus-03
84// Only frames larger or equal to 10 ms are currently supported in this code
85// base.
86extern const int kPreferredMaxPTime;
87extern const int kPreferredMinPTime;
88extern const int kPreferredSPropStereo;
89extern const int kPreferredStereo;
90extern const int kPreferredUseInbandFec;
91
92// rtcp-fb messages according to RFC 4585
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +000093extern const char kRtcpFbParamNack[];
henrika@webrtc.orgaebb1ad2014-01-14 10:00:58 +000094extern const char kRtcpFbNackParamPli[];
henrike@webrtc.org28e20752013-07-10 00:45:36 +000095// rtcp-fb messages according to
96// http://tools.ietf.org/html/draft-alvestrand-rmcat-remb-00
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +000097extern const char kRtcpFbParamRemb[];
stefan43edf0f2015-11-20 18:05:48 -080098// rtcp-fb messages according to
99// https://tools.ietf.org/html/draft-holmer-rmcat-transport-wide-cc-extensions-01
100extern const char kRtcpFbParamTransportCc[];
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000101// ccm submessages according to RFC 5104
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +0000102extern const char kRtcpFbParamCcm[];
103extern const char kRtcpFbCcmParamFir[];
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000104// Google specific parameters
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +0000105extern const char kCodecParamMaxBitrate[];
106extern const char kCodecParamMinBitrate[];
buildbot@webrtc.orged97bb02014-05-07 11:15:20 +0000107extern const char kCodecParamStartBitrate[];
sergeyu@chromium.org32f485b2013-12-05 22:36:21 +0000108extern const char kCodecParamMaxQuantization[];
109extern const char kCodecParamPort[];
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000110
deadbeef953c2ce2017-01-09 14:53:41 -0800111// We put the data codec names here so callers of DataEngine::CreateChannel
112// don't have to import rtpdataengine.h to get the codec names they want to
113// pass in.
solenberg9fa49752016-10-08 13:02:44 -0700114extern const int kGoogleRtpDataCodecPlType;
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000115extern const char kGoogleRtpDataCodecName[];
116
117// TODO(pthatcher): Find an id that won't conflict with anything. On
118// the other hand, it really shouldn't matter since the id won't be
119// used on the wire.
solenberg9fa49752016-10-08 13:02:44 -0700120extern const int kGoogleSctpDataCodecPlType;
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000121extern const char kGoogleSctpDataCodecName[];
122
123extern const char kComfortNoiseCodecName[];
124
Shao Changbine62202f2015-04-21 20:24:50 +0800125extern const char kVp8CodecName[];
126extern const char kVp9CodecName[];
Zeke Chin71f6f442015-06-29 14:34:58 -0700127extern const char kH264CodecName[];
Shao Changbine62202f2015-04-21 20:24:50 +0800128
htaa6b99442016-04-12 10:29:17 -0700129// RFC 6184 RTP Payload Format for H.264 video
130extern const char kH264FmtpProfileLevelId[];
131extern const char kH264FmtpLevelAsymmetryAllowed[];
132extern const char kH264FmtpPacketizationMode[];
magjed5dfac562016-11-25 03:56:37 -0800133extern const char kH264FmtpSpropParameterSets[];
htaa6b99442016-04-12 10:29:17 -0700134extern const char kH264ProfileLevelConstrainedBaseline[];
135
Shao Changbine62202f2015-04-21 20:24:50 +0800136extern const int kDefaultVideoMaxFramerate;
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000137} // namespace cricket
138
Mirko Bonadei92ea95e2017-09-15 06:47:31 +0200139#endif // MEDIA_BASE_MEDIACONSTANTS_H_