{
es_out_id_t *p_es = p_sys->es[i];
+ p_es->i_preroll_end = -1;
+
if( !p_es->p_dec )
continue;
input_DecoderWaitBuffering( p_es->p_dec );
const mtime_t i_ts_delay = 10*1000 + /* FIXME CLEANUP thread wake up time*/
mdate();
//msg_Dbg( p_sys->p_input, "==> %lld", i_ts_delay - p_sys->p_input->i_pts_delay );
- input_clock_ChangeSystemOrigin( p_sys->p_pgrm->p_clock, i_ts_delay - p_sys->p_input->i_pts_delay );
+ input_clock_ChangeSystemOrigin( p_sys->p_pgrm->p_clock, i_ts_delay - p_sys->p_input->i_pts_delay - i_preroll_duration );
for( int i = 0; i < p_sys->i_es; i++ )
{
if( i_date < es->i_preroll_end )
p_block->i_flags |= BLOCK_FLAG_PREROLL;
- else
- es->i_preroll_end = -1;
}
p_block->i_rate = 0;