* the sequence header ? */
vlc_bool_t b_slice_i; /* intra-slice refresh stream */
+ vlc_bool_t b_preroll;
+
/*
* Output properties
*/
p_sys->b_garbage_pic = 0;
p_sys->b_slice_i = 0;
p_sys->b_skip = 0;
+ p_sys->b_preroll = VLC_FALSE;
#if defined( __i386__ )
if( p_dec->p_libvlc->i_cpu & CPU_CAPABILITY_MMX )
return NULL;
}
- if( (p_block->i_flags&BLOCK_FLAG_DISCONTINUITY) &&
+ if( (p_block->i_flags&(BLOCK_FLAG_DISCONTINUITY|BLOCK_FLAG_CORRUPTED)) &&
p_sys->p_synchro &&
p_sys->p_info->sequence &&
p_sys->p_info->sequence->width != (unsigned)-1 )
}
}
+ if( p_block->i_flags & BLOCK_FLAG_PREROLL )
+ {
+ p_sys->b_preroll = VLC_TRUE;
+ }
+ else if( p_sys->b_preroll )
+ {
+ p_sys->b_preroll = VLC_FALSE;
+ /* Reset synchro */
+ vout_SynchroReset( p_sys->p_synchro );
+ }
+
#ifdef PIC_FLAG_PTS
if( p_block->i_pts )
{
p_sys->p_info->current_picture->nb_fields, i_pts, i_dts,
p_sys->i_current_rate );
- if( !p_dec->b_pace_control &&
+ if( !p_dec->b_pace_control && !p_sys->b_preroll &&
!(p_sys->b_slice_i
&& ((p_sys->p_info->current_picture->flags
& PIC_MASK_CODING_TYPE) == P_CODING_TYPE))