Commit a1d30f60 authored by Rafaël Carré's avatar Rafaël Carré

opensles: more precise TimeGet

Take in account the time elapsed since the last callback
parent 8b573812
......@@ -72,6 +72,7 @@ struct aout_sys_t
mtime_t length;
int buffers;
mtime_t last_callback;
/* audio buffered through opensles */
block_t *p_chain;
......@@ -168,8 +169,12 @@ static int TimeGet(audio_output_t* p_aout, mtime_t* restrict drift)
vlc_mutex_lock( &p_sys->lock );
mtime_t delay = p_sys->length;
mtime_t last_callback = p_sys->last_callback;
vlc_mutex_unlock( &p_sys->lock );
if (last_callback != 0)
delay += last_callback - mdate();
SLAndroidSimpleBufferQueueState st;
SLresult res = GetState(p_sys->playerBufferQueue, &st);
if (unlikely(res != SL_RESULT_SUCCESS)) {
......@@ -262,6 +267,7 @@ static void PlayedCallback (SLAndroidSimpleBufferQueueItf caller, void *pContext
vlc_mutex_lock( &p_sys->lock );
p_sys->buffers--;
p_sys->last_callback = mdate();
p_block = p_sys->p_chain;
assert( p_block );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment