| /* |
| * 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[]; |
| // 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_ |
| |