(Auto)update libjingle 69567902-> 69568113
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6498 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
parent
fbd13286dc
commit
df9bbbee56
@ -47,7 +47,6 @@ extern const char kRtxCodecName[];
|
|||||||
extern const char kRedCodecName[];
|
extern const char kRedCodecName[];
|
||||||
extern const char kUlpfecCodecName[];
|
extern const char kUlpfecCodecName[];
|
||||||
|
|
||||||
|
|
||||||
// Codec parameters
|
// Codec parameters
|
||||||
extern const int kWildcardPayloadType;
|
extern const int kWildcardPayloadType;
|
||||||
extern const char kCodecParamAssociatedPayloadType[];
|
extern const char kCodecParamAssociatedPayloadType[];
|
||||||
|
46
talk/media/webrtc/constants.h
Executable file
46
talk/media/webrtc/constants.h
Executable file
@ -0,0 +1,46 @@
|
|||||||
|
/*
|
||||||
|
* libjingle
|
||||||
|
* Copyright 2014 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_WEBRTC_CONSTANTS_H_
|
||||||
|
#define TALK_MEDIA_WEBRTC_CONSTANTS_H_
|
||||||
|
|
||||||
|
namespace cricket {
|
||||||
|
|
||||||
|
extern const int kVideoMtu;
|
||||||
|
extern const int kVideoRtpBufferSize;
|
||||||
|
|
||||||
|
extern const char kVp8CodecName[];
|
||||||
|
|
||||||
|
extern const int kDefaultFramerate;
|
||||||
|
extern const int kMinVideoBitrate;
|
||||||
|
extern const int kStartVideoBitrate;
|
||||||
|
extern const int kMaxVideoBitrate;
|
||||||
|
|
||||||
|
extern const int kCpuMonitorPeriodMs;
|
||||||
|
|
||||||
|
} // namespace cricket
|
||||||
|
|
||||||
|
#endif // TALK_MEDIA_WEBRTC_CONSTANTS_H_
|
@ -51,6 +51,7 @@
|
|||||||
#include "talk/media/base/videocapturer.h"
|
#include "talk/media/base/videocapturer.h"
|
||||||
#include "talk/media/base/videorenderer.h"
|
#include "talk/media/base/videorenderer.h"
|
||||||
#include "talk/media/devices/filevideocapturer.h"
|
#include "talk/media/devices/filevideocapturer.h"
|
||||||
|
#include "talk/media/webrtc/constants.h"
|
||||||
#include "talk/media/webrtc/webrtcpassthroughrender.h"
|
#include "talk/media/webrtc/webrtcpassthroughrender.h"
|
||||||
#include "talk/media/webrtc/webrtctexturevideoframe.h"
|
#include "talk/media/webrtc/webrtctexturevideoframe.h"
|
||||||
#include "talk/media/webrtc/webrtcvideocapturer.h"
|
#include "talk/media/webrtc/webrtcvideocapturer.h"
|
||||||
@ -66,24 +67,26 @@
|
|||||||
|
|
||||||
namespace cricket {
|
namespace cricket {
|
||||||
|
|
||||||
|
// Constants defined in talk/media/webrtc/constants.h
|
||||||
|
// TODO(pbos): Move these to a separate constants.cc file.
|
||||||
|
const int kVideoMtu = 1200;
|
||||||
|
const int kVideoRtpBufferSize = 65536;
|
||||||
|
|
||||||
|
const char kVp8CodecName[] = "VP8";
|
||||||
|
|
||||||
|
const int kDefaultFramerate = 30;
|
||||||
|
const int kMinVideoBitrate = 50;
|
||||||
|
const int kStartVideoBitrate = 300;
|
||||||
|
const int kMaxVideoBitrate = 2000;
|
||||||
|
|
||||||
|
const int kCpuMonitorPeriodMs = 2000; // 2 seconds.
|
||||||
|
|
||||||
|
|
||||||
static const int kDefaultLogSeverity = talk_base::LS_WARNING;
|
static const int kDefaultLogSeverity = talk_base::LS_WARNING;
|
||||||
|
|
||||||
static const int kMinVideoBitrate = 50;
|
|
||||||
static const int kStartVideoBitrate = 300;
|
|
||||||
static const int kMaxVideoBitrate = 2000;
|
|
||||||
|
|
||||||
// Controlled by exp, try a super low minimum bitrate for poor connections.
|
// Controlled by exp, try a super low minimum bitrate for poor connections.
|
||||||
static const int kLowerMinBitrate = 30;
|
static const int kLowerMinBitrate = 30;
|
||||||
|
|
||||||
static const int kVideoMtu = 1200;
|
|
||||||
|
|
||||||
static const int kVideoRtpBufferSize = 65536;
|
|
||||||
|
|
||||||
static const char kVp8PayloadName[] = "VP8";
|
|
||||||
static const char kRedPayloadName[] = "red";
|
|
||||||
static const char kFecPayloadName[] = "ulpfec";
|
|
||||||
|
|
||||||
static const int kDefaultNumberOfTemporalLayers = 1; // 1:1
|
static const int kDefaultNumberOfTemporalLayers = 1; // 1:1
|
||||||
|
|
||||||
static const int kExternalVideoPayloadTypeBase = 120;
|
static const int kExternalVideoPayloadTypeBase = 120;
|
||||||
@ -129,8 +132,6 @@ static int SeverityToFilter(int severity) {
|
|||||||
return filter;
|
return filter;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const int kCpuMonitorPeriodMs = 2000; // 2 seconds.
|
|
||||||
|
|
||||||
static const bool kNotSending = false;
|
static const bool kNotSending = false;
|
||||||
|
|
||||||
// Default video dscp value.
|
// Default video dscp value.
|
||||||
@ -828,9 +829,9 @@ class WebRtcVideoChannelSendInfo : public sigslot::has_slots<> {
|
|||||||
|
|
||||||
const WebRtcVideoEngine::VideoCodecPref
|
const WebRtcVideoEngine::VideoCodecPref
|
||||||
WebRtcVideoEngine::kVideoCodecPrefs[] = {
|
WebRtcVideoEngine::kVideoCodecPrefs[] = {
|
||||||
{kVp8PayloadName, 100, -1, 0},
|
{kVp8CodecName, 100, -1, 0},
|
||||||
{kRedPayloadName, 116, -1, 1},
|
{kRedCodecName, 116, -1, 1},
|
||||||
{kFecPayloadName, 117, -1, 2},
|
{kUlpfecCodecName, 117, -1, 2},
|
||||||
{kRtxCodecName, 96, 100, 3},
|
{kRtxCodecName, 96, 100, 3},
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1444,7 +1445,7 @@ bool WebRtcVideoEngine::RebuildCodecList(const VideoCodec& in_codec) {
|
|||||||
VideoCodec codec(pref.payload_type, pref.name,
|
VideoCodec codec(pref.payload_type, pref.name,
|
||||||
in_codec.width, in_codec.height, in_codec.framerate,
|
in_codec.width, in_codec.height, in_codec.framerate,
|
||||||
static_cast<int>(ARRAY_SIZE(kVideoCodecPrefs) - i));
|
static_cast<int>(ARRAY_SIZE(kVideoCodecPrefs) - i));
|
||||||
if (_stricmp(kVp8PayloadName, codec.name.c_str()) == 0) {
|
if (_stricmp(kVp8CodecName, codec.name.c_str()) == 0) {
|
||||||
AddDefaultFeedbackParams(&codec);
|
AddDefaultFeedbackParams(&codec);
|
||||||
}
|
}
|
||||||
if (pref.associated_payload_type != -1) {
|
if (pref.associated_payload_type != -1) {
|
||||||
@ -1705,9 +1706,9 @@ bool WebRtcVideoMediaChannel::SetSendCodecs(
|
|||||||
bool remb_enabled = remb_enabled_;
|
bool remb_enabled = remb_enabled_;
|
||||||
for (std::vector<VideoCodec>::const_iterator iter = codecs.begin();
|
for (std::vector<VideoCodec>::const_iterator iter = codecs.begin();
|
||||||
iter != codecs.end(); ++iter) {
|
iter != codecs.end(); ++iter) {
|
||||||
if (_stricmp(iter->name.c_str(), kRedPayloadName) == 0) {
|
if (_stricmp(iter->name.c_str(), kRedCodecName) == 0) {
|
||||||
send_red_type_ = iter->id;
|
send_red_type_ = iter->id;
|
||||||
} else if (_stricmp(iter->name.c_str(), kFecPayloadName) == 0) {
|
} else if (_stricmp(iter->name.c_str(), kUlpfecCodecName) == 0) {
|
||||||
send_fec_type_ = iter->id;
|
send_fec_type_ = iter->id;
|
||||||
} else if (_stricmp(iter->name.c_str(), kRtxCodecName) == 0) {
|
} else if (_stricmp(iter->name.c_str(), kRtxCodecName) == 0) {
|
||||||
int rtx_type = iter->id;
|
int rtx_type = iter->id;
|
||||||
@ -3871,7 +3872,7 @@ bool WebRtcVideoMediaChannel::SetReceiveCodecs(
|
|||||||
// We currently only support RTX associated with VP8 due to limitations
|
// We currently only support RTX associated with VP8 due to limitations
|
||||||
// in webrtc where only one RTX payload type can be registered.
|
// in webrtc where only one RTX payload type can be registered.
|
||||||
valid_apt = codec_it != pt_to_codec.end() &&
|
valid_apt = codec_it != pt_to_codec.end() &&
|
||||||
_stricmp(codec_it->second->plName, kVp8PayloadName) == 0;
|
_stricmp(codec_it->second->plName, kVp8CodecName) == 0;
|
||||||
}
|
}
|
||||||
if (!valid_apt) {
|
if (!valid_apt) {
|
||||||
LOG(LS_ERROR) << "The RTX codec isn't associated with a known and "
|
LOG(LS_ERROR) << "The RTX codec isn't associated with a known and "
|
||||||
|
@ -42,6 +42,7 @@
|
|||||||
#include "talk/base/stringutils.h"
|
#include "talk/base/stringutils.h"
|
||||||
#include "talk/media/base/videocapturer.h"
|
#include "talk/media/base/videocapturer.h"
|
||||||
#include "talk/media/base/videorenderer.h"
|
#include "talk/media/base/videorenderer.h"
|
||||||
|
#include "talk/media/webrtc/constants.h"
|
||||||
#include "talk/media/webrtc/webrtcvideocapturer.h"
|
#include "talk/media/webrtc/webrtcvideocapturer.h"
|
||||||
#include "talk/media/webrtc/webrtcvideoframe.h"
|
#include "talk/media/webrtc/webrtcvideoframe.h"
|
||||||
#include "talk/media/webrtc/webrtcvoiceengine.h"
|
#include "talk/media/webrtc/webrtcvoiceengine.h"
|
||||||
@ -55,28 +56,17 @@
|
|||||||
|
|
||||||
namespace cricket {
|
namespace cricket {
|
||||||
|
|
||||||
static const int kCpuMonitorPeriodMs = 2000; // 2 seconds.
|
|
||||||
|
|
||||||
// This constant is really an on/off, lower-level configurable NACK history
|
// This constant is really an on/off, lower-level configurable NACK history
|
||||||
// duration hasn't been implemented.
|
// duration hasn't been implemented.
|
||||||
static const int kNackHistoryMs = 1000;
|
static const int kNackHistoryMs = 1000;
|
||||||
|
|
||||||
static const int kDefaultFramerate = 30;
|
|
||||||
static const int kMinVideoBitrate = 50;
|
|
||||||
static const int kMaxVideoBitrate = 2000;
|
|
||||||
|
|
||||||
static const int kVideoMtu = 1200;
|
|
||||||
static const int kVideoRtpBufferSize = 65536;
|
|
||||||
|
|
||||||
static const char kVp8PayloadName[] = "VP8";
|
|
||||||
|
|
||||||
static const int kDefaultRtcpReceiverReportSsrc = 1;
|
static const int kDefaultRtcpReceiverReportSsrc = 1;
|
||||||
|
|
||||||
struct VideoCodecPref {
|
struct VideoCodecPref {
|
||||||
int payload_type;
|
int payload_type;
|
||||||
const char* name;
|
const char* name;
|
||||||
int rtx_payload_type;
|
int rtx_payload_type;
|
||||||
} kDefaultVideoCodecPref = {100, kVp8PayloadName, 96};
|
} kDefaultVideoCodecPref = {100, kVp8CodecName, 96};
|
||||||
|
|
||||||
VideoCodecPref kRedPref = {116, kRedCodecName, -1};
|
VideoCodecPref kRedPref = {116, kRedCodecName, -1};
|
||||||
VideoCodecPref kUlpfecPref = {117, kUlpfecCodecName, -1};
|
VideoCodecPref kUlpfecPref = {117, kUlpfecCodecName, -1};
|
||||||
@ -251,7 +241,7 @@ webrtc::VideoEncoder* WebRtcVideoEncoderFactory2::CreateVideoEncoder(
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool WebRtcVideoEncoderFactory2::SupportsCodec(const VideoCodec& codec) {
|
bool WebRtcVideoEncoderFactory2::SupportsCodec(const VideoCodec& codec) {
|
||||||
return _stricmp(codec.name.c_str(), kVp8PayloadName) == 0;
|
return _stricmp(codec.name.c_str(), kVp8CodecName) == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
WebRtcVideoEngine2::WebRtcVideoEngine2() {
|
WebRtcVideoEngine2::WebRtcVideoEngine2() {
|
||||||
@ -814,7 +804,7 @@ bool WebRtcVideoChannel2::SetRecvCodecs(const std::vector<VideoCodec>& codecs) {
|
|||||||
// TODO(pbos): Add a decoder factory which controls supported codecs.
|
// TODO(pbos): Add a decoder factory which controls supported codecs.
|
||||||
// Blocked on webrtc:2854.
|
// Blocked on webrtc:2854.
|
||||||
for (size_t i = 0; i < mapped_codecs.size(); ++i) {
|
for (size_t i = 0; i < mapped_codecs.size(); ++i) {
|
||||||
if (_stricmp(mapped_codecs[i].codec.name.c_str(), kVp8PayloadName) != 0) {
|
if (_stricmp(mapped_codecs[i].codec.name.c_str(), kVp8CodecName) != 0) {
|
||||||
LOG(LS_ERROR) << "SetRecvCodecs called with unsupported codec: '"
|
LOG(LS_ERROR) << "SetRecvCodecs called with unsupported codec: '"
|
||||||
<< mapped_codecs[i].codec.name << "'";
|
<< mapped_codecs[i].codec.name << "'";
|
||||||
return false;
|
return false;
|
||||||
|
Loading…
Reference in New Issue
Block a user