+static int TimeGet(audio_output_t *p_aout, mtime_t *restrict delay)
+{
+ aout_sys_t *p_sys = p_aout->sys;
+ uint32_t hal, dsp;
+
+ if (!p_sys->at_getRenderPosition)
+ return -1;
+
+ if (p_sys->at_getRenderPosition(&hal, &dsp, MUSIC))
+ return -1;
+
+ hal = (uint32_t)((uint64_t)hal * p_sys->rate / 44100);
+
+ if (p_sys->samples_written == 0) {
+ p_sys->initial = hal;
+ return -1;
+ }
+
+ hal -= p_sys->initial;
+ if (hal == 0)
+ return -1;
+
+ if (delay)
+ *delay = ((mtime_t)p_sys->samples_written - hal) * CLOCK_FREQ / p_sys->rate;
+
+ return 0;
+}
+