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

Unified Diff: webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.h

Issue 2546493002: Update smoothed bitrate. (Closed)
Patch Set: Changed cl according to offline discussions. Created 4 years 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 side-by-side diff with in-line comments
Download patch
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..ab874aa7eafad57bd1b411693b3bedeb60e56ed5 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"
@@ -63,6 +64,7 @@ class AudioEncoderOpus final : public AudioEncoder {
bool dtx_enabled = false;
std::vector<int> supported_frame_lengths_ms;
const Clock* clock = nullptr;
+ int update_uplink_bandwidth_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 MayUpdateUplinkBandwidth();
+
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> last_smoothed_bandwith_update_;
minyue-webrtc 2016/12/22 14:51:26 bitrate_smoother_last_update_time_
michaelt 2016/12/22 15:10:10 Done.
RTC_DISALLOW_COPY_AND_ASSIGN(AudioEncoderOpus);
};

Powered by Google App Engine
This is Rietveld 408576698