| Index: media/audio/audio_low_latency_input_output_unittest.cc
|
| diff --git a/media/audio/audio_low_latency_input_output_unittest.cc b/media/audio/audio_low_latency_input_output_unittest.cc
|
| index f943963ccfe532eef76efd2dd8bf5c3fc751debc..fb9867747c7c428875134255a0e6d1c7605b20cf 100644
|
| --- a/media/audio/audio_low_latency_input_output_unittest.cc
|
| +++ b/media/audio/audio_low_latency_input_output_unittest.cc
|
| @@ -5,6 +5,7 @@
|
| #include <stddef.h>
|
| #include <stdint.h>
|
|
|
| +#include <algorithm>
|
| #include <memory>
|
|
|
| #include "base/bind.h"
|
| @@ -223,16 +224,19 @@ class FullDuplexAudioSinkSource
|
| void OnError(AudioInputStream* stream) override {}
|
|
|
| // AudioOutputStream::AudioSourceCallback.
|
| - int OnMoreData(AudioBus* audio_bus,
|
| - uint32_t total_bytes_delay,
|
| - uint32_t frames_skipped) override {
|
| + int OnMoreData(base::TimeTicks target_playout_time,
|
| + int /* prior_frames_skipped */,
|
| + AudioBus* dest) override {
|
| base::AutoLock lock(lock_);
|
|
|
| + base::TimeDelta output_delay = std::max(
|
| + target_playout_time - base::TimeTicks::Now(), base::TimeDelta());
|
| +
|
| // Update one component in the AudioDelayState for the packet
|
| // which is about to be played out.
|
| if (output_elements_to_write_ < kMaxDelayMeasurements) {
|
| delay_states_[output_elements_to_write_].output_delay_ms =
|
| - BytesToMilliseconds(total_bytes_delay);
|
| + output_delay.InMilliseconds();
|
| ++output_elements_to_write_;
|
| }
|
|
|
| @@ -241,11 +245,11 @@ class FullDuplexAudioSinkSource
|
| // Read the data from the seekable media buffer which contains
|
| // captured data at the same size and sample rate as the output side.
|
| if (buffer_->GetCurrentChunk(&source, &size) && size > 0) {
|
| - EXPECT_EQ(channels_, audio_bus->channels());
|
| - size = std::min(audio_bus->frames() * frame_size_, size);
|
| - EXPECT_EQ(static_cast<size_t>(size) % sizeof(*audio_bus->channel(0)), 0U);
|
| - audio_bus->FromInterleaved(
|
| - source, size / frame_size_, frame_size_ / channels_);
|
| + EXPECT_EQ(channels_, dest->channels());
|
| + size = std::min(dest->frames() * frame_size_, size);
|
| + EXPECT_EQ(static_cast<size_t>(size) % sizeof(*dest->channel(0)), 0U);
|
| + dest->FromInterleaved(source, size / frame_size_,
|
| + frame_size_ / channels_);
|
| buffer_->Seek(size);
|
| return size / frame_size_;
|
| }
|
|
|