| Index: media/audio/pulse/pulse_util.cc
|
| diff --git a/media/audio/pulse/pulse_util.cc b/media/audio/pulse/pulse_util.cc
|
| index d5c699a09e28a821fd1e7107ca1cd6be9858d24a..8d6b06cebd9d745fb6a7fa6e0ebc2e512b2757a6 100644
|
| --- a/media/audio/pulse/pulse_util.cc
|
| +++ b/media/audio/pulse/pulse_util.cc
|
| @@ -8,9 +8,9 @@
|
|
|
| #include "base/logging.h"
|
| #include "base/macros.h"
|
| -#include "base/time/time.h"
|
| #include "media/audio/audio_device_description.h"
|
| #include "media/base/audio_parameters.h"
|
| +#include "media/base/audio_timestamp_helper.h"
|
|
|
| namespace media {
|
|
|
| @@ -136,20 +136,26 @@ void WaitForOperationCompletion(pa_threaded_mainloop* pa_mainloop,
|
| pa_operation_unref(operation);
|
| }
|
|
|
| -int GetHardwareLatencyInBytes(pa_stream* stream,
|
| - int sample_rate,
|
| - int bytes_per_frame) {
|
| +base::TimeDelta GetHardwareLatency(pa_stream* stream) {
|
| DCHECK(stream);
|
| int negative = 0;
|
| pa_usec_t latency_micros = 0;
|
| if (pa_stream_get_latency(stream, &latency_micros, &negative) != 0)
|
| - return 0;
|
| + return base::TimeDelta();
|
|
|
| if (negative)
|
| - return 0;
|
| + return base::TimeDelta();
|
| +
|
| + return base::TimeDelta::FromMicroseconds(latency_micros);
|
| +}
|
|
|
| - return latency_micros * sample_rate * bytes_per_frame /
|
| - base::Time::kMicrosecondsPerSecond;
|
| +int GetHardwareLatencyInBytes(pa_stream* stream,
|
| + int sample_rate,
|
| + int bytes_per_frame) {
|
| + DCHECK(stream);
|
| + return AudioTimestampHelper::TimeToFrames(GetHardwareLatency(stream),
|
| + sample_rate) *
|
| + bytes_per_frame;
|
| }
|
|
|
| // Helper macro for CreateInput/OutputStream() to avoid code spam and
|
|
|