/* * libjingle * Copyright 2012 Google Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef TALK_MEDIA_BASE_CONSTANTS_H_ #define TALK_MEDIA_BASE_CONSTANTS_H_ #include <string> // This file contains constants related to media. namespace cricket { extern const int kVideoCodecClockrate; extern const int kDataCodecClockrate; extern const int kDataMaxBandwidth; // bps // Default CPU thresholds. extern const float kHighSystemCpuThreshold; extern const float kLowSystemCpuThreshold; extern const float kProcessCpuThreshold; extern const char kRtxCodecName[]; extern const char kRedCodecName[]; extern const char kUlpfecCodecName[]; // Codec parameters extern const char kCodecParamAssociatedPayloadType[]; extern const char kOpusCodecName[]; extern const char kIsacCodecName[]; extern const char kL16CodecName[]; extern const char kG722CodecName[]; extern const char kIlbcCodecName[]; extern const char kPcmuCodecName[]; extern const char kPcmaCodecName[]; extern const char kCnCodecName[]; extern const char kDtmfCodecName[]; // Attribute parameters extern const char kCodecParamPTime[]; extern const char kCodecParamMaxPTime[]; // fmtp parameters extern const char kCodecParamMinPTime[]; extern const char kCodecParamSPropStereo[]; extern const char kCodecParamStereo[]; extern const char kCodecParamUseInbandFec[]; extern const char kCodecParamUseDtx[]; extern const char kCodecParamMaxAverageBitrate[]; extern const char kCodecParamMaxPlaybackRate[]; extern const char kCodecParamSctpProtocol[]; extern const char kCodecParamSctpStreams[]; extern const char kParamValueTrue[]; // Parameters are stored as parameter/value pairs. For parameters who do not // have a value, |kParamValueEmpty| should be used as value. extern const char kParamValueEmpty[]; // opus parameters. // Default value for maxptime according to // http://tools.ietf.org/html/draft-spittka-payload-rtp-opus-03 extern const int kOpusDefaultMaxPTime; extern const int kOpusDefaultPTime; extern const int kOpusDefaultMinPTime; extern const int kOpusDefaultSPropStereo; extern const int kOpusDefaultStereo; extern const int kOpusDefaultUseInbandFec; extern const int kOpusDefaultUseDtx; extern const int kOpusDefaultMaxPlaybackRate; // Prefered values in this code base. Note that they may differ from the default // values in http://tools.ietf.org/html/draft-spittka-payload-rtp-opus-03 // Only frames larger or equal to 10 ms are currently supported in this code // base. extern const int kPreferredMaxPTime; extern const int kPreferredMinPTime; extern const int kPreferredSPropStereo; extern const int kPreferredStereo; extern const int kPreferredUseInbandFec; // rtcp-fb messages according to RFC 4585 extern const char kRtcpFbParamNack[]; extern const char kRtcpFbNackParamPli[]; // rtcp-fb messages according to // http://tools.ietf.org/html/draft-alvestrand-rmcat-remb-00 extern const char kRtcpFbParamRemb[]; // rtcp-fb messages according to // https://tools.ietf.org/html/draft-holmer-rmcat-transport-wide-cc-extensions-01 extern const char kRtcpFbParamTransportCc[]; // ccm submessages according to RFC 5104 extern const char kRtcpFbParamCcm[]; extern const char kRtcpFbCcmParamFir[]; // Google specific parameters extern const char kCodecParamMaxBitrate[]; extern const char kCodecParamMinBitrate[]; extern const char kCodecParamStartBitrate[]; extern const char kCodecParamMaxQuantization[]; extern const char kCodecParamPort[]; // We put the data codec names here so callers of // DataEngine::CreateChannel don't have to import rtpdataengine.h or // sctpdataengine.h to get the codec names they want to pass in. extern const int kGoogleRtpDataCodecId; extern const char kGoogleRtpDataCodecName[]; // TODO(pthatcher): Find an id that won't conflict with anything. On // the other hand, it really shouldn't matter since the id won't be // used on the wire. extern const int kGoogleSctpDataCodecId; extern const char kGoogleSctpDataCodecName[]; extern const char kComfortNoiseCodecName[]; // Header extension for audio levels, as defined in // http://tools.ietf.org/html/draft-ietf-avtext-client-to-mixer-audio-level-03 extern const int kRtpAudioLevelHeaderExtensionDefaultId; extern const char kRtpAudioLevelHeaderExtension[]; // Header extension for RTP timestamp offset, see RFC 5450 for details: // http://tools.ietf.org/html/rfc5450 extern const int kRtpTimestampOffsetHeaderExtensionDefaultId; extern const char kRtpTimestampOffsetHeaderExtension[]; // Header extension for absolute send time, see url for details: // http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time extern const int kRtpAbsoluteSenderTimeHeaderExtensionDefaultId; extern const char kRtpAbsoluteSenderTimeHeaderExtension[]; // Header extension for coordination of video orientation, see url for details: // http://www.etsi.org/deliver/etsi_ts/126100_126199/126114/12.07.00_60/ // ts_126114v120700p.pdf extern const int kRtpVideoRotationHeaderExtensionDefaultId; extern const char kRtpVideoRotationHeaderExtension[]; // We don't support 6 bit CVO. Added here for testing purpose. extern const char kRtpVideoRotation6BitsHeaderExtensionForTesting[]; // Header extension for transport sequence number, see url for details: // http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions extern const int kRtpTransportSequenceNumberHeaderExtensionDefaultId; extern const char kRtpTransportSequenceNumberHeaderExtension[]; extern const int kNumDefaultUnsignalledVideoRecvStreams; extern const char kVp8CodecName[]; extern const char kVp9CodecName[]; extern const char kH264CodecName[]; extern const int kDefaultVp8PlType; extern const int kDefaultVp9PlType; extern const int kDefaultH264PlType; extern const int kDefaultRedPlType; extern const int kDefaultUlpfecType; extern const int kDefaultRtxVp8PlType; extern const int kDefaultVideoMaxWidth; extern const int kDefaultVideoMaxHeight; extern const int kDefaultVideoMaxFramerate; } // namespace cricket #endif // TALK_MEDIA_BASE_CONSTANTS_H_