The BaseChannel code is geared around RTP; the presence of media engines,
send and receive streams, SRTP, SDP directional attribute negotiation, etc.
It doesn't make sense to use it for SCTP as well. This separation should make
future work both on BaseChannel and the SCTP code paths easier.
SctpDataEngine now becomes SctpTransport, and is used by WebRtcSession
directly. cricket::DataChannel is also renamed, to RtpDataChannel, so it
doesn't get confused with webrtc::DataChannel any more.
Beyond just moving code around, some consequences of this CL:
- We'll now stop using the worker thread for SCTP. Packets will be
processed right on the network thread instead.
- The SDP directional attribute is ignored, as it's supposed to be.
BUG=None
Review-Url: https://codereview.webrtc.org/2564333002
Cr-Original-Commit-Position: refs/heads/master@{#15906}
Committed: 67b3bbe639
Review-Url: https://codereview.webrtc.org/2564333002
Cr-Commit-Position: refs/heads/master@{#15973}
138 lines
4.8 KiB
C++
138 lines
4.8 KiB
C++
/*
|
|
* Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
#ifndef WEBRTC_MEDIA_BASE_MEDIACONSTANTS_H_
|
|
#define WEBRTC_MEDIA_BASE_MEDIACONSTANTS_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[];
|
|
extern const char kFlexfecCodecName[];
|
|
|
|
extern const char kFlexfecFmtpRepairWindow[];
|
|
|
|
// 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 to get the codec names they want to
|
|
// pass in.
|
|
extern const int kGoogleRtpDataCodecPlType;
|
|
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 kGoogleSctpDataCodecPlType;
|
|
extern const char kGoogleSctpDataCodecName[];
|
|
|
|
extern const char kComfortNoiseCodecName[];
|
|
|
|
extern const char kVp8CodecName[];
|
|
extern const char kVp9CodecName[];
|
|
extern const char kH264CodecName[];
|
|
|
|
// RFC 6184 RTP Payload Format for H.264 video
|
|
extern const char kH264FmtpProfileLevelId[];
|
|
extern const char kH264FmtpLevelAsymmetryAllowed[];
|
|
extern const char kH264FmtpPacketizationMode[];
|
|
extern const char kH264FmtpSpropParameterSets[];
|
|
extern const char kH264ProfileLevelConstrainedBaseline[];
|
|
|
|
extern const int kDefaultVideoMaxFramerate;
|
|
} // namespace cricket
|
|
|
|
#endif // WEBRTC_MEDIA_BASE_MEDIACONSTANTS_H_
|