summaryrefslogtreecommitdiffstats
path: root/audio/out/ao_coreaudio_utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'audio/out/ao_coreaudio_utils.c')
-rw-r--r--audio/out/ao_coreaudio_utils.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/audio/out/ao_coreaudio_utils.c b/audio/out/ao_coreaudio_utils.c
index 90ebdbc752..64d98e5ece 100644
--- a/audio/out/ao_coreaudio_utils.c
+++ b/audio/out/ao_coreaudio_utils.c
@@ -22,6 +22,8 @@
* on CoreAudio but not the AUHAL (such as using AudioQueue services).
*/
+#include <CoreAudio/HostTime.h>
+
#include "audio/out/ao_coreaudio_utils.h"
#include "audio/out/ao_coreaudio_properties.h"
#include "osdep/timer.h"
@@ -214,3 +216,18 @@ void ca_print_asbd(struct ao *ao, const char *description,
talloc_free(format);
}
+int64_t ca_frames_to_us(struct ao *ao, uint32_t frames)
+{
+ return frames / (float) ao->samplerate * 1e6;
+}
+
+int64_t ca_get_latency(const AudioTimeStamp *ts)
+{
+ uint64_t out = AudioConvertHostTimeToNanos(ts->mHostTime);
+ uint64_t now = AudioConvertHostTimeToNanos(AudioGetCurrentHostTime());
+
+ if (now > out)
+ return 0;
+
+ return (out - now) * 1e-3;
+}