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

opensles: implement drain with msleep

parent 284d24cb
...@@ -115,20 +115,27 @@ static void Clean( aout_sys_t *p_sys ) ...@@ -115,20 +115,27 @@ static void Clean( aout_sys_t *p_sys )
free( p_sys ); free( p_sys );
} }
static void Flush(audio_output_t *p_aout, bool wait) static void Flush(audio_output_t *p_aout, bool drain)
{ {
(void)wait; /* FIXME */
aout_sys_t *p_sys = p_aout->sys; aout_sys_t *p_sys = p_aout->sys;
vlc_mutex_lock( &p_sys->lock ); if (drain) {
SetPlayState( p_sys->playerPlay, SL_PLAYSTATE_STOPPED ); mtime_t delay;
Clear( p_sys->playerBufferQueue ); vlc_mutex_lock( &p_sys->lock );
SetPlayState( p_sys->playerPlay, SL_PLAYSTATE_PLAYING ); delay = p_sys->length;
block_ChainRelease( p_sys->p_chain ); vlc_mutex_unlock( &p_sys->lock );
p_sys->p_chain = NULL; msleep(delay);
p_sys->pp_last = &p_sys->p_chain; } else {
p_sys->length = 0; vlc_mutex_lock( &p_sys->lock );
vlc_mutex_unlock( &p_sys->lock ); SetPlayState( p_sys->playerPlay, SL_PLAYSTATE_STOPPED );
Clear( p_sys->playerBufferQueue );
SetPlayState( p_sys->playerPlay, SL_PLAYSTATE_PLAYING );
block_ChainRelease( p_sys->p_chain );
p_sys->p_chain = NULL;
p_sys->pp_last = &p_sys->p_chain;
p_sys->length = 0;
vlc_mutex_unlock( &p_sys->lock );
}
} }
static void Pause(audio_output_t *p_aout, bool pause, mtime_t date) static void Pause(audio_output_t *p_aout, bool pause, mtime_t date)
...@@ -386,7 +393,7 @@ static int Start( audio_output_t *p_aout, audio_sample_format_t *restrict fmt ) ...@@ -386,7 +393,7 @@ static int Start( audio_output_t *p_aout, audio_sample_format_t *restrict fmt )
fmt->i_physical_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT; fmt->i_physical_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT;
p_aout->play = Play; p_aout->play = Play;
p_aout->pause = Pause; p_aout->pause = Pause;
p_aout->flush = Flush; p_aout->flush = Flush;
aout_FormatPrepare( fmt ); aout_FormatPrepare( fmt );
......
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