| Index: media/base/audio_latency.cc
|
| diff --git a/media/base/audio_latency.cc b/media/base/audio_latency.cc
|
| index 5d37edf415213ff72aeb6e9753927abf1dfb8894..61b3724efa48cc36fc8ff7c3a545c95d7ba5bb56 100644
|
| --- a/media/base/audio_latency.cc
|
| +++ b/media/base/audio_latency.cc
|
| @@ -9,6 +9,7 @@
|
| #include <algorithm>
|
|
|
| #include "base/logging.h"
|
| +#include "base/time/time.h"
|
| #include "build/build_config.h"
|
|
|
| namespace media {
|
| @@ -126,4 +127,19 @@ int AudioLatency::GetInteractiveBufferSize(int hardware_buffer_size) {
|
| return hardware_buffer_size;
|
| }
|
|
|
| +int AudioLatency::GetExactBufferSize(base::TimeDelta duration,
|
| + int sample_rate,
|
| + int hardware_buffer_size) {
|
| + const double requested_buffer_size = duration.InSecondsF() * sample_rate;
|
| +
|
| + DCHECK_NE(0, hardware_buffer_size);
|
| +
|
| + // Round the requested size to the nearest multiple of the hardware size
|
| + const int buffer_size =
|
| + std::round(std::max(requested_buffer_size, 1.0) / hardware_buffer_size) *
|
| + hardware_buffer_size;
|
| +
|
| + return std::max(buffer_size, hardware_buffer_size);
|
| +}
|
| +
|
| } // namespace media
|
|
|