int aout_DecPlay(audio_output_t *, block_t *, int i_input_rate);
int aout_DecGetResetLost(audio_output_t *);
void aout_DecChangePause(audio_output_t *, bool b_paused, mtime_t i_date);
-void aout_DecFlush(audio_output_t *);
+void aout_DecFlush(audio_output_t *, bool wait);
bool aout_DecIsEmpty(audio_output_t *);
void aout_RequestRestart (audio_output_t *, unsigned);
aout_OutputUnlock (aout);
}
-void aout_DecFlush (audio_output_t *aout)
+void aout_DecFlush (audio_output_t *aout, bool wait)
{
aout_owner_t *owner = aout_owner (aout);
aout_OutputLock (aout);
owner->sync.end = VLC_TS_INVALID;
if (owner->mixer_format.i_format)
- aout_OutputFlush (aout, false);
+ aout_OutputFlush (aout, wait);
aout_OutputUnlock (aout);
}
{
msg_Dbg( p_dec, "End of audio preroll" );
if( p_owner->p_aout )
- aout_DecFlush( p_owner->p_aout );
+ aout_DecFlush( p_owner->p_aout, false );
/* */
p_owner->i_preroll_end = VLC_TS_INVALID;
}
}
if( b_flush && p_owner->p_aout )
- aout_DecFlush( p_owner->p_aout );
+ aout_DecFlush( p_owner->p_aout, false );
}
static void DecoderPlaySpu( decoder_t *p_dec, subpicture_t *p_subpic )
if( p_owner->p_aout )
{
/* TODO: REVISIT gap-less audio */
- aout_DecFlush( p_owner->p_aout );
+ aout_DecFlush( p_owner->p_aout, false );
aout_DecDelete( p_owner->p_aout );
input_resource_PutAout( p_owner->p_resource, p_owner->p_aout );
if( p_owner->p_input != NULL )