Chromium Code Reviews| Index: webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.h |
| diff --git a/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.h b/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.h |
| index 0864c7bfb561b6af167c5ba13fd395571b81b8bf..d67cedfc9c4a5773e036b8f15ba8c1b81414c48c 100644 |
| --- a/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.h |
| +++ b/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.h |
| @@ -18,6 +18,7 @@ |
| #include "webrtc/base/constructormagic.h" |
| #include "webrtc/base/optional.h" |
| +#include "webrtc/common_audio/smoothing_filter.h" |
| #include "webrtc/modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor.h" |
| #include "webrtc/modules/audio_coding/codecs/opus/opus_interface.h" |
| #include "webrtc/modules/audio_coding/codecs/audio_encoder.h" |
| @@ -62,7 +63,8 @@ class AudioEncoderOpus final : public AudioEncoder { |
| int complexity_threshold_window_bps = 1500; |
| bool dtx_enabled = false; |
| std::vector<int> supported_frame_lengths_ms; |
| - const Clock* clock = nullptr; |
| + const Clock* clock = Clock::GetRealTimeClock(); |
|
the sun
2017/01/09 12:56:52
The Clock:: API is being deprecated - use those in
michaelt
2017/01/09 15:09:26
I changed the direct in this CL used time function
|
| + int uplink_bandwidth_update_interval_ms = 200; |
| private: |
| #if defined(WEBRTC_ANDROID) || defined(WEBRTC_IOS) || defined(WEBRTC_ARCH_ARM) |
| @@ -79,7 +81,8 @@ class AudioEncoderOpus final : public AudioEncoder { |
| const Clock*)>; |
| AudioEncoderOpus( |
| const Config& config, |
| - AudioNetworkAdaptorCreator&& audio_network_adaptor_creator = nullptr); |
| + AudioNetworkAdaptorCreator&& audio_network_adaptor_creator = nullptr, |
| + std::unique_ptr<SmoothingFilter> bitrate_smoother = nullptr); |
| explicit AudioEncoderOpus(const CodecInst& codec_inst); |
| @@ -105,10 +108,11 @@ class AudioEncoderOpus final : public AudioEncoder { |
| bool EnableAudioNetworkAdaptor(const std::string& config_string, |
| const Clock* clock) override; |
| void DisableAudioNetworkAdaptor() override; |
| - void OnReceivedUplinkBandwidth(int uplink_bandwidth_bps) override; |
| void OnReceivedUplinkPacketLossFraction( |
| float uplink_packet_loss_fraction) override; |
| - void OnReceivedTargetAudioBitrate(int target_audio_bitrate_bps) override; |
| + void OnReceivedTargetAudioBitrate( |
| + int target_audio_bitrate_bps, |
| + rtc::Optional<int64_t> probing_interval_ms) override; |
| void OnReceivedRtt(int rtt_ms) override; |
| void OnReceivedOverhead(size_t overhead_bytes_per_packet) override; |
| void SetReceiverFrameLengthRange(int min_frame_length_ms, |
| @@ -149,6 +153,8 @@ class AudioEncoderOpus final : public AudioEncoder { |
| const std::string& config_string, |
| const Clock* clock) const; |
| + void MaybeUpdateUplinkBandwidth(); |
| + |
| Config config_; |
| float packet_loss_rate_; |
| std::vector<int16_t> input_buffer_; |
| @@ -161,6 +167,8 @@ class AudioEncoderOpus final : public AudioEncoder { |
| AudioNetworkAdaptorCreator audio_network_adaptor_creator_; |
| std::unique_ptr<AudioNetworkAdaptor> audio_network_adaptor_; |
| rtc::Optional<size_t> overhead_bytes_per_packet_; |
| + const std::unique_ptr<SmoothingFilter> bitrate_smoother_; |
| + rtc::Optional<int64_t> bitrate_smoother_last_update_time_; |
| RTC_DISALLOW_COPY_AND_ASSIGN(AudioEncoderOpus); |
| }; |