Chromium Code Reviews| Index: media/base/audio_latency.cc |
| diff --git a/media/base/audio_latency.cc b/media/base/audio_latency.cc |
| index 5d37edf415213ff72aeb6e9753927abf1dfb8894..bcf7bbb68283125f645049590c2957f2d9e5865d 100644 |
| --- a/media/base/audio_latency.cc |
| +++ b/media/base/audio_latency.cc |
| @@ -10,6 +10,7 @@ |
| #include "base/logging.h" |
| #include "build/build_config.h" |
| +#include "media/base/audio_parameters.h" |
| namespace media { |
| @@ -126,4 +127,22 @@ int AudioLatency::GetInteractiveBufferSize(int hardware_buffer_size) { |
| return hardware_buffer_size; |
| } |
| +int AudioLatency::GetExactBufferSize(base::TimeDelta duration, |
| + const AudioParameters& hardware_params) { |
| + const int hardware_buffer_size = hardware_params.frames_per_buffer(); |
| + const double requested_buffer_size = |
| + duration.InSecondsF() * hardware_params.sample_rate(); |
| + |
| + // Round up the requested size to the nearest multiple of the hardware size |
| + const int buffer_size = |
| + std::ceil(std::max(requested_buffer_size, 1.0) / hardware_buffer_size) * |
| + hardware_buffer_size; |
|
o1ka
2017/03/29 10:56:05
It's actually not the nearest multiply (round), bu
Andrew MacPherson
2017/03/30 08:07:18
This was my intent but since both you and dalecurt
|
| + |
| + const double twenty_ms_size = 2.0 * hardware_params.sample_rate() / 100; |
| + const int max_buffer_size = |
| + std::ceil(twenty_ms_size / hardware_buffer_size) * hardware_buffer_size; |
|
o1ka
2017/03/29 10:56:05
In fact, we are just limiting |duration| to 20 ms,
DaleCurtis
2017/03/29 22:42:41
Hmm, this wasn't what I was proposing. I was propo
Andrew MacPherson
2017/03/30 08:07:18
Sorry, my mistake here. I can remove this but I be
DaleCurtis
2017/03/30 18:53:46
This should be removed from this code. We don't wa
|
| + |
| + return std::max(std::min(buffer_size, max_buffer_size), hardware_buffer_size); |
| +} |
|
o1ka
2017/03/29 10:56:05
Dale - Is our intention to use multiplies of HW bu
DaleCurtis
2017/03/29 22:42:41
Yes, I think that should be okay and likely will r
DaleCurtis
2017/03/29 22:42:41
Yes, I think that should be okay and likely will r
Andrew MacPherson
2017/03/30 08:07:18
Ok, I've updated GetHighLatencyBufferSize() to alw
|
| + |
| } // namespace media |