Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(121)

Side by Side Diff: webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc

Issue 2747863003: Loosening the coupling between WebRTC and //third_party/protobuf (Closed)
Patch Set: Rebasing Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
11 #include "webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.h" 11 #include "webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.h"
12 12
13 #include <algorithm> 13 #include <algorithm>
14 #include <iterator> 14 #include <iterator>
15 15
16 #include "webrtc/base/checks.h" 16 #include "webrtc/base/checks.h"
17 #include "webrtc/base/logging.h" 17 #include "webrtc/base/logging.h"
18 #include "webrtc/base/numerics/exp_filter.h" 18 #include "webrtc/base/numerics/exp_filter.h"
19 #include "webrtc/base/protobuf_utils.h"
19 #include "webrtc/base/safe_conversions.h" 20 #include "webrtc/base/safe_conversions.h"
20 #include "webrtc/base/timeutils.h" 21 #include "webrtc/base/timeutils.h"
21 #include "webrtc/common_types.h" 22 #include "webrtc/common_types.h"
22 #include "webrtc/modules/audio_coding/audio_network_adaptor/audio_network_adapto r_impl.h" 23 #include "webrtc/modules/audio_coding/audio_network_adaptor/audio_network_adapto r_impl.h"
23 #include "webrtc/modules/audio_coding/audio_network_adaptor/controller_manager.h " 24 #include "webrtc/modules/audio_coding/audio_network_adaptor/controller_manager.h "
24 #include "webrtc/modules/audio_coding/codecs/opus/opus_interface.h" 25 #include "webrtc/modules/audio_coding/codecs/opus/opus_interface.h"
25 #include "webrtc/system_wrappers/include/field_trial.h" 26 #include "webrtc/system_wrappers/include/field_trial.h"
26 27
27 namespace webrtc { 28 namespace webrtc {
28 29
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 std::unique_ptr<SmoothingFilter> bitrate_smoother) 186 std::unique_ptr<SmoothingFilter> bitrate_smoother)
186 : send_side_bwe_with_overhead_(webrtc::field_trial::IsEnabled( 187 : send_side_bwe_with_overhead_(webrtc::field_trial::IsEnabled(
187 "WebRTC-SendSideBwe-WithOverhead")), 188 "WebRTC-SendSideBwe-WithOverhead")),
188 packet_loss_rate_(0.0), 189 packet_loss_rate_(0.0),
189 inst_(nullptr), 190 inst_(nullptr),
190 packet_loss_fraction_smoother_(new PacketLossFractionSmoother( 191 packet_loss_fraction_smoother_(new PacketLossFractionSmoother(
191 config.clock)), 192 config.clock)),
192 audio_network_adaptor_creator_( 193 audio_network_adaptor_creator_(
193 audio_network_adaptor_creator 194 audio_network_adaptor_creator
194 ? std::move(audio_network_adaptor_creator) 195 ? std::move(audio_network_adaptor_creator)
195 : [this](const std::string& config_string, 196 : [this](const ProtoString& config_string,
196 RtcEventLog* event_log, 197 RtcEventLog* event_log,
197 const Clock* clock) { 198 const Clock* clock) {
198 return DefaultAudioNetworkAdaptorCreator(config_string, 199 return DefaultAudioNetworkAdaptorCreator(config_string,
199 event_log, clock); 200 event_log, clock);
200 }), 201 }),
201 bitrate_smoother_(bitrate_smoother 202 bitrate_smoother_(bitrate_smoother
202 ? std::move(bitrate_smoother) : std::unique_ptr<SmoothingFilter>( 203 ? std::move(bitrate_smoother) : std::unique_ptr<SmoothingFilter>(
203 // We choose 5sec as initial time constant due to empirical data. 204 // We choose 5sec as initial time constant due to empirical data.
204 new SmoothingFilterImpl(5000, config.clock))) { 205 new SmoothingFilterImpl(5000, config.clock))) {
205 RTC_CHECK(RecreateEncoderInstance(config)); 206 RTC_CHECK(RecreateEncoderInstance(config));
(...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after
541 if (config.uplink_packet_loss_fraction) 542 if (config.uplink_packet_loss_fraction)
542 SetProjectedPacketLossRate(*config.uplink_packet_loss_fraction); 543 SetProjectedPacketLossRate(*config.uplink_packet_loss_fraction);
543 if (config.enable_dtx) 544 if (config.enable_dtx)
544 SetDtx(*config.enable_dtx); 545 SetDtx(*config.enable_dtx);
545 if (config.num_channels) 546 if (config.num_channels)
546 SetNumChannelsToEncode(*config.num_channels); 547 SetNumChannelsToEncode(*config.num_channels);
547 } 548 }
548 549
549 std::unique_ptr<AudioNetworkAdaptor> 550 std::unique_ptr<AudioNetworkAdaptor>
550 AudioEncoderOpus::DefaultAudioNetworkAdaptorCreator( 551 AudioEncoderOpus::DefaultAudioNetworkAdaptorCreator(
551 const std::string& config_string, 552 const ProtoString& config_string,
552 RtcEventLog* event_log, 553 RtcEventLog* event_log,
553 const Clock* clock) const { 554 const Clock* clock) const {
554 AudioNetworkAdaptorImpl::Config config; 555 AudioNetworkAdaptorImpl::Config config;
555 config.clock = clock; 556 config.clock = clock;
556 config.event_log = event_log; 557 config.event_log = event_log;
557 return std::unique_ptr<AudioNetworkAdaptor>(new AudioNetworkAdaptorImpl( 558 return std::unique_ptr<AudioNetworkAdaptor>(new AudioNetworkAdaptorImpl(
558 config, 559 config,
559 ControllerManagerImpl::Create( 560 ControllerManagerImpl::Create(
560 config_string, NumChannels(), supported_frame_lengths_ms(), 561 config_string, NumChannels(), supported_frame_lengths_ms(),
561 kMinBitrateBps, num_channels_to_encode_, next_frame_length_ms_, 562 kMinBitrateBps, num_channels_to_encode_, next_frame_length_ms_,
562 GetTargetBitrate(), config_.fec_enabled, GetDtx(), clock))); 563 GetTargetBitrate(), config_.fec_enabled, GetDtx(), clock)));
563 } 564 }
564 565
565 void AudioEncoderOpus::MaybeUpdateUplinkBandwidth() { 566 void AudioEncoderOpus::MaybeUpdateUplinkBandwidth() {
566 if (audio_network_adaptor_) { 567 if (audio_network_adaptor_) {
567 int64_t now_ms = rtc::TimeMillis(); 568 int64_t now_ms = rtc::TimeMillis();
568 if (!bitrate_smoother_last_update_time_ || 569 if (!bitrate_smoother_last_update_time_ ||
569 now_ms - *bitrate_smoother_last_update_time_ >= 570 now_ms - *bitrate_smoother_last_update_time_ >=
570 config_.uplink_bandwidth_update_interval_ms) { 571 config_.uplink_bandwidth_update_interval_ms) {
571 rtc::Optional<float> smoothed_bitrate = bitrate_smoother_->GetAverage(); 572 rtc::Optional<float> smoothed_bitrate = bitrate_smoother_->GetAverage();
572 if (smoothed_bitrate) 573 if (smoothed_bitrate)
573 audio_network_adaptor_->SetUplinkBandwidth(*smoothed_bitrate); 574 audio_network_adaptor_->SetUplinkBandwidth(*smoothed_bitrate);
574 bitrate_smoother_last_update_time_ = rtc::Optional<int64_t>(now_ms); 575 bitrate_smoother_last_update_time_ = rtc::Optional<int64_t>(now_ms);
575 } 576 }
576 } 577 }
577 } 578 }
578 579
579 } // namespace webrtc 580 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.h ('k') | webrtc/modules/audio_coding/neteq/neteq_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698