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

Unified Diff: webrtc/modules/audio_coding/neteq/decision_logic.h

Issue 1903043003: WIP: Adding a centralized NetEq Clock (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@neteq-remove-type-param
Patch Set: Created 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/modules/audio_coding/BUILD.gn ('k') | webrtc/modules/audio_coding/neteq/decision_logic.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/modules/audio_coding/neteq/decision_logic.h
diff --git a/webrtc/modules/audio_coding/neteq/decision_logic.h b/webrtc/modules/audio_coding/neteq/decision_logic.h
index 72121b7aac5912f45e450cb6a014812031f0ecdb..35d1bec3d72a5fe9df3aafa5cbc53804eabcfa47 100644
--- a/webrtc/modules/audio_coding/neteq/decision_logic.h
+++ b/webrtc/modules/audio_coding/neteq/decision_logic.h
@@ -14,6 +14,7 @@
#include "webrtc/base/constructormagic.h"
#include "webrtc/modules/audio_coding/neteq/defines.h"
#include "webrtc/modules/audio_coding/neteq/include/neteq.h"
+#include "webrtc/modules/audio_coding/neteq/tick_timer.h"
#include "webrtc/typedefs.h"
namespace webrtc {
@@ -39,7 +40,8 @@ class DecisionLogic {
DecoderDatabase* decoder_database,
const PacketBuffer& packet_buffer,
DelayManager* delay_manager,
- BufferLevelFilter* buffer_level_filter);
+ BufferLevelFilter* buffer_level_filter,
+ const TickTimer& tick_timer);
// Constructor.
DecisionLogic(int fs_hz,
@@ -48,10 +50,10 @@ class DecisionLogic {
DecoderDatabase* decoder_database,
const PacketBuffer& packet_buffer,
DelayManager* delay_manager,
- BufferLevelFilter* buffer_level_filter);
+ BufferLevelFilter* buffer_level_filter,
+ const TickTimer& tick_timer);
- // Destructor.
- virtual ~DecisionLogic() {}
+ virtual ~DecisionLogic();
// Resets object to a clean state.
void Reset();
@@ -79,6 +81,7 @@ class DecisionLogic {
const RTPHeader* packet_header,
Modes prev_mode,
bool play_dtmf,
+ size_t noise_samples_played,
bool* reset_decoder);
// These methods test the |cng_state_| for different conditions.
@@ -101,10 +104,7 @@ class DecisionLogic {
// Accessors and mutators.
void set_sample_memory(int32_t value) { sample_memory_ = value; }
- size_t generated_noise_samples() const { return generated_noise_samples_; }
- void set_generated_noise_samples(size_t value) {
- generated_noise_samples_ = value;
- }
+ size_t noise_fast_forward() const { return noise_fast_forward_; }
size_t packet_length_samples() const { return packet_length_samples_; }
void set_packet_length_samples(size_t value) {
packet_length_samples_ = value;
@@ -114,7 +114,7 @@ class DecisionLogic {
protected:
// The value 6 sets maximum time-stretch rate to about 100 ms/s.
- static const int kMinTimescaleInterval = 6;
+ static const int kMinTimescaleInterval = 5;
enum CngState {
kCngOff,
@@ -138,7 +138,8 @@ class DecisionLogic {
const RTPHeader* packet_header,
Modes prev_mode,
bool play_dtmf,
- bool* reset_decoder) = 0;
+ bool* reset_decoder,
+ size_t noise_samples_played) = 0;
// Updates the |buffer_level_filter_| with the current buffer level
// |buffer_size_packets|.
@@ -148,15 +149,16 @@ class DecisionLogic {
const PacketBuffer& packet_buffer_;
DelayManager* delay_manager_;
BufferLevelFilter* buffer_level_filter_;
+ const TickTimer& tick_timer_;
int fs_mult_;
size_t output_size_samples_;
CngState cng_state_; // Remember if comfort noise is interrupted by other
// event (e.g., DTMF).
- size_t generated_noise_samples_;
+ size_t noise_fast_forward_ = 0;
size_t packet_length_samples_;
int sample_memory_;
bool prev_time_scale_;
- int timescale_hold_off_;
+ std::unique_ptr<TickTimer::Countdown> timescale_countdown_;
int num_consecutive_expands_;
const NetEqPlayoutMode playout_mode_;
« no previous file with comments | « webrtc/modules/audio_coding/BUILD.gn ('k') | webrtc/modules/audio_coding/neteq/decision_logic.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698