diff options
author | buildbot@webrtc.org <buildbot@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d> | 2014-06-13 13:05:48 +0000 |
---|---|---|
committer | buildbot@webrtc.org <buildbot@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d> | 2014-06-13 13:05:48 +0000 |
commit | 6d33fabcee9db2ac552c1d10ab9ca12091b354ec (patch) | |
tree | 99af516f82ab5669904a85afef9a0c512f08cad9 | |
parent | aa77587108ff0860ec9775b00403171b8ba51371 (diff) | |
download | talk-6d33fabcee9db2ac552c1d10ab9ca12091b354ec.tar.gz |
(Auto)update libjingle 69143161-> 69144530
git-svn-id: http://webrtc.googlecode.com/svn/trunk/talk@6432 4adac7df-926f-26a2-2b94-8c16560cd09d
-rw-r--r-- | app/webrtc/mediaconstraintsinterface.cc | 2 | ||||
-rw-r--r-- | app/webrtc/mediaconstraintsinterface.h | 1 | ||||
-rw-r--r-- | app/webrtc/webrtcsession.cc | 37 | ||||
-rw-r--r-- | media/base/mediachannel.h | 7 | ||||
-rw-r--r-- | media/webrtc/fakewebrtcvideoengine.h | 2 | ||||
-rw-r--r-- | media/webrtc/webrtcvideoengine.cc | 16 |
6 files changed, 42 insertions, 23 deletions
diff --git a/app/webrtc/mediaconstraintsinterface.cc b/app/webrtc/mediaconstraintsinterface.cc index c4f9306..3573ef3 100644 --- a/app/webrtc/mediaconstraintsinterface.cc +++ b/app/webrtc/mediaconstraintsinterface.cc @@ -114,6 +114,8 @@ const char MediaConstraintsInterface::kHighBitrate[] = "googHighBitrate"; const char MediaConstraintsInterface::kVeryHighBitrate[] = "googVeryHighBitrate"; +const char MediaConstraintsInterface::kPayloadPadding[] = "googPayloadPadding"; + // Set |value| to the value associated with the first appearance of |key|, or // return false if |key| is not found. diff --git a/app/webrtc/mediaconstraintsinterface.h b/app/webrtc/mediaconstraintsinterface.h index 63b749c..39028af 100644 --- a/app/webrtc/mediaconstraintsinterface.h +++ b/app/webrtc/mediaconstraintsinterface.h @@ -126,6 +126,7 @@ class MediaConstraintsInterface { static const char kHighStartBitrate[]; // googHighStartBitrate static const char kHighBitrate[]; // googHighBitrate static const char kVeryHighBitrate[]; // googVeryHighBitrate + static const char kPayloadPadding[]; // googPayloadPadding // The prefix of internal-only constraints whose JS set values should be // stripped by Chrome before passed down to Libjingle. diff --git a/app/webrtc/webrtcsession.cc b/app/webrtc/webrtcsession.cc index 887aa4f..b41813e 100644 --- a/app/webrtc/webrtcsession.cc +++ b/app/webrtc/webrtcsession.cc @@ -371,14 +371,15 @@ static std::string MakeTdErrorString(const std::string& desc) { // Set |option| to the highest-priority value of |key| in the optional // constraints if the key is found and has a valid value. +template<typename T> static void SetOptionFromOptionalConstraint( const MediaConstraintsInterface* constraints, - const std::string& key, cricket::Settable<int>* option) { + const std::string& key, cricket::Settable<T>* option) { if (!constraints) { return; } std::string string_value; - int value; + T value; if (constraints->GetOptional().FindFirst(key, &string_value)) { if (talk_base::FromString(string_value, &value)) { option->Set(value); @@ -564,21 +565,17 @@ bool WebRtcSession::Initialize( SetOptionFromOptionalConstraint(constraints, MediaConstraintsInterface::kCpuOveruseThreshold, &video_options_.cpu_overuse_threshold); - - if (FindConstraint( - constraints, + SetOptionFromOptionalConstraint(constraints, MediaConstraintsInterface::kCpuOveruseDetection, - &value, - NULL)) { - video_options_.cpu_overuse_detection.Set(value); - } - if (FindConstraint( - constraints, + &video_options_.cpu_overuse_detection); + SetOptionFromOptionalConstraint(constraints, MediaConstraintsInterface::kCpuOveruseEncodeUsage, - &value, - NULL)) { - video_options_.cpu_overuse_encode_usage.Set(value); - } + &video_options_.cpu_overuse_encode_usage); + + // Find payload padding constraint. + SetOptionFromOptionalConstraint(constraints, + MediaConstraintsInterface::kPayloadPadding, + &video_options_.use_payload_padding); // Find improved wifi bwe constraint. if (FindConstraint( @@ -592,13 +589,9 @@ bool WebRtcSession::Initialize( video_options_.use_improved_wifi_bandwidth_estimator.Set(true); } - if (FindConstraint( - constraints, - MediaConstraintsInterface::kHighStartBitrate, - &value, - NULL)) { - video_options_.video_start_bitrate.Set(cricket::kHighStartBitrate); - } + SetOptionFromOptionalConstraint(constraints, + MediaConstraintsInterface::kHighStartBitrate, + &video_options_.video_start_bitrate); if (FindConstraint( constraints, diff --git a/media/base/mediachannel.h b/media/base/mediachannel.h index 078c073..4762115 100644 --- a/media/base/mediachannel.h +++ b/media/base/mediachannel.h @@ -331,6 +331,7 @@ struct VideoOptions { screencast_min_bitrate.SetFrom(change.screencast_min_bitrate); use_improved_wifi_bandwidth_estimator.SetFrom( change.use_improved_wifi_bandwidth_estimator); + use_payload_padding.SetFrom(change.use_payload_padding); } bool operator==(const VideoOptions& o) const { @@ -366,7 +367,8 @@ struct VideoOptions { skip_encoding_unused_streams == o.skip_encoding_unused_streams && screencast_min_bitrate == o.screencast_min_bitrate && use_improved_wifi_bandwidth_estimator == - o.use_improved_wifi_bandwidth_estimator; + o.use_improved_wifi_bandwidth_estimator && + use_payload_padding == o.use_payload_padding; } std::string ToString() const { @@ -409,6 +411,7 @@ struct VideoOptions { ost << ToStringIfSet("screencast min bitrate", screencast_min_bitrate); ost << ToStringIfSet("improved wifi bwe", use_improved_wifi_bandwidth_estimator); + ost << ToStringIfSet("payload padding", use_payload_padding); ost << "}"; return ost.str(); } @@ -477,6 +480,8 @@ struct VideoOptions { Settable<int> screencast_min_bitrate; // Enable improved bandwidth estiamtor on wifi. Settable<bool> use_improved_wifi_bandwidth_estimator; + // Enable payload padding. + Settable<bool> use_payload_padding; }; // A class for playing out soundclips. diff --git a/media/webrtc/fakewebrtcvideoengine.h b/media/webrtc/fakewebrtcvideoengine.h index 3eba47b..610a342 100644 --- a/media/webrtc/fakewebrtcvideoengine.h +++ b/media/webrtc/fakewebrtcvideoengine.h @@ -1000,6 +1000,8 @@ class FakeWebRtcVideoEngine return 0; } + WEBRTC_STUB(SetPadWithRedundantPayloads, (int, bool)); + WEBRTC_FUNC(SetRtxReceivePayloadType, (const int channel, const uint8 payload_type)) { WEBRTC_CHECK_CHANNEL(channel); diff --git a/media/webrtc/webrtcvideoengine.cc b/media/webrtc/webrtcvideoengine.cc index eeff90f..726939a 100644 --- a/media/webrtc/webrtcvideoengine.cc +++ b/media/webrtc/webrtcvideoengine.cc @@ -2976,6 +2976,11 @@ bool WebRtcVideoMediaChannel::SetOptions(const VideoOptions &options) { options_.use_improved_wifi_bandwidth_estimator != options.use_improved_wifi_bandwidth_estimator; +#ifdef USE_WEBRTC_DEV_BRANCH + bool payload_padding_changed = options.use_payload_padding.IsSet() && + options_.use_payload_padding != options.use_payload_padding; +#endif + // Save the options, to be interpreted where appropriate. // Use options_.SetAll() instead of assignment so that unset value in options @@ -3105,6 +3110,17 @@ bool WebRtcVideoMediaChannel::SetOptions(const VideoOptions &options) { it->second->channel_id(), config); } } +#ifdef USE_WEBRTC_DEV_BRANCH + if (payload_padding_changed) { + LOG(LS_INFO) << "Payload-based padding called."; + for (SendChannelMap::iterator it = send_channels_.begin(); + it != send_channels_.end(); ++it) { + engine()->vie()->rtp()->SetPadWithRedundantPayloads( + it->second->channel_id(), + options_.use_payload_padding.GetWithDefaultIfUnset(false)); + } + } +#endif webrtc::CpuOveruseOptions overuse_options; if (GetCpuOveruseOptions(options_, &overuse_options)) { for (SendChannelMap::iterator it = send_channels_.begin(); |