NetEq: Fold GetDecisionSpecialized into GetDecision
Now that there is only one implementation of the decision logic, there is no longer any need to have GetDecisionSpecialized being separate. Bug: webrtc:9421 Change-Id: Id364ce09ac05d106652d749502058056f11bba27 Reviewed-on: https://webrtc-review.googlesource.com/86604 Reviewed-by: Ivo Creusen <ivoc@webrtc.org> Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org> Cr-Commit-Position: refs/heads/master@{#23804}
This commit is contained in:
committed by
Commit Bot
parent
9f2e624024
commit
5afa61cf15
@ -122,53 +122,6 @@ Operations DecisionLogic::GetDecision(const SyncBuffer& sync_buffer,
|
||||
|
||||
FilterBufferLevel(cur_size_samples, prev_mode);
|
||||
|
||||
return GetDecisionSpecialized(
|
||||
sync_buffer, expand, decoder_frame_length, next_packet, prev_mode,
|
||||
play_dtmf, reset_decoder, generated_noise_samples, cur_size_samples);
|
||||
}
|
||||
|
||||
void DecisionLogic::ExpandDecision(Operations operation) {
|
||||
if (operation == kExpand) {
|
||||
num_consecutive_expands_++;
|
||||
} else {
|
||||
num_consecutive_expands_ = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void DecisionLogic::FilterBufferLevel(size_t buffer_size_samples,
|
||||
Modes prev_mode) {
|
||||
// Do not update buffer history if currently playing CNG since it will bias
|
||||
// the filtered buffer level.
|
||||
if ((prev_mode != kModeRfc3389Cng) && (prev_mode != kModeCodecInternalCng)) {
|
||||
buffer_level_filter_->SetTargetBufferLevel(
|
||||
delay_manager_->base_target_level());
|
||||
|
||||
size_t buffer_size_packets = 0;
|
||||
if (packet_length_samples_ > 0) {
|
||||
// Calculate size in packets.
|
||||
buffer_size_packets = buffer_size_samples / packet_length_samples_;
|
||||
}
|
||||
int sample_memory_local = 0;
|
||||
if (prev_time_scale_) {
|
||||
sample_memory_local = sample_memory_;
|
||||
timescale_countdown_ =
|
||||
tick_timer_->GetNewCountdown(kMinTimescaleInterval);
|
||||
}
|
||||
buffer_level_filter_->Update(buffer_size_packets, sample_memory_local,
|
||||
packet_length_samples_);
|
||||
prev_time_scale_ = false;
|
||||
}
|
||||
}
|
||||
|
||||
Operations DecisionLogic::GetDecisionSpecialized(const SyncBuffer& sync_buffer,
|
||||
const Expand& expand,
|
||||
size_t decoder_frame_length,
|
||||
const Packet* next_packet,
|
||||
Modes prev_mode,
|
||||
bool play_dtmf,
|
||||
bool* reset_decoder,
|
||||
size_t generated_noise_samples,
|
||||
size_t cur_size_samples) {
|
||||
// Guard for errors, to avoid getting stuck in error mode.
|
||||
if (prev_mode == kModeError) {
|
||||
if (!next_packet) {
|
||||
@ -236,6 +189,39 @@ Operations DecisionLogic::GetDecisionSpecialized(const SyncBuffer& sync_buffer,
|
||||
}
|
||||
}
|
||||
|
||||
void DecisionLogic::ExpandDecision(Operations operation) {
|
||||
if (operation == kExpand) {
|
||||
num_consecutive_expands_++;
|
||||
} else {
|
||||
num_consecutive_expands_ = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void DecisionLogic::FilterBufferLevel(size_t buffer_size_samples,
|
||||
Modes prev_mode) {
|
||||
// Do not update buffer history if currently playing CNG since it will bias
|
||||
// the filtered buffer level.
|
||||
if ((prev_mode != kModeRfc3389Cng) && (prev_mode != kModeCodecInternalCng)) {
|
||||
buffer_level_filter_->SetTargetBufferLevel(
|
||||
delay_manager_->base_target_level());
|
||||
|
||||
size_t buffer_size_packets = 0;
|
||||
if (packet_length_samples_ > 0) {
|
||||
// Calculate size in packets.
|
||||
buffer_size_packets = buffer_size_samples / packet_length_samples_;
|
||||
}
|
||||
int sample_memory_local = 0;
|
||||
if (prev_time_scale_) {
|
||||
sample_memory_local = sample_memory_;
|
||||
timescale_countdown_ =
|
||||
tick_timer_->GetNewCountdown(kMinTimescaleInterval);
|
||||
}
|
||||
buffer_level_filter_->Update(buffer_size_packets, sample_memory_local,
|
||||
packet_length_samples_);
|
||||
prev_time_scale_ = false;
|
||||
}
|
||||
}
|
||||
|
||||
Operations DecisionLogic::CngOperation(Modes prev_mode,
|
||||
uint32_t target_timestamp,
|
||||
uint32_t available_timestamp,
|
||||
|
||||
Reference in New Issue
Block a user