Reland "Change buffer level filter to store current level in number of samples."
This is a reland of 87977dd06e702ed517f26235c12e37bd927527c7 Original change's description: > Change buffer level filter to store current level in number of samples. > > The buffer level should not be converted back and forth between samples and packets in case of variable packet lengths. > > Bug: webrtc:10736 > Change-Id: Ia08dcfac3d8104dc79fbad0704a5f6f12a050a01 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/142178 > Reviewed-by: Minyue Li <minyue@webrtc.org> > Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#28368} Bug: webrtc:10736 Change-Id: I1ff603e65cdd31c7429f36b035dcc00a17b68f3b Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/143787 Commit-Queue: Minyue Li <minyue@webrtc.org> Reviewed-by: Minyue Li <minyue@webrtc.org> Cr-Commit-Position: refs/heads/master@{#28393}
This commit is contained in:
committed by
Commit Bot
parent
4d6951669c
commit
0ded32d5a3
@ -310,18 +310,12 @@ int NetEqImpl::TargetDelayMs() const {
|
||||
|
||||
int NetEqImpl::FilteredCurrentDelayMs() const {
|
||||
rtc::CritScope lock(&crit_sect_);
|
||||
// Calculate the filtered packet buffer level in samples. The value from
|
||||
// |buffer_level_filter_| is in number of packets, represented in Q8.
|
||||
const size_t packet_buffer_samples =
|
||||
(buffer_level_filter_->filtered_current_level() *
|
||||
decoder_frame_length_) >>
|
||||
8;
|
||||
// Sum up the filtered packet buffer level with the future length of the sync
|
||||
// buffer, and divide the sum by the sample rate.
|
||||
const size_t delay_samples =
|
||||
packet_buffer_samples + sync_buffer_->FutureLength();
|
||||
// buffer.
|
||||
const int delay_samples = buffer_level_filter_->filtered_current_level() +
|
||||
sync_buffer_->FutureLength();
|
||||
// The division below will truncate. The return value is in ms.
|
||||
return static_cast<int>(delay_samples) / rtc::CheckedDivExact(fs_hz_, 1000);
|
||||
return delay_samples / rtc::CheckedDivExact(fs_hz_, 1000);
|
||||
}
|
||||
|
||||
int NetEqImpl::NetworkStatistics(NetEqNetworkStatistics* stats) {
|
||||
|
||||
Reference in New Issue
Block a user