int64_t i_pcr_delay;
int64_t i_dts_delay;
+ mtime_t first_dts;
bool b_use_key_frames;
/* Don't mux the SPU yet if it is too early */
block_t *p_spu = block_FifoShow( p_input->p_fifo );
- int64_t i_spu_delay = p_spu->i_dts - p_pcr_stream->i_pes_dts;
+ int64_t i_spu_delay = p_spu->i_dts - p_sys->first_dts - p_pcr_stream->i_pes_dts;
if( ( i_spu_delay > i_shaping_delay ) &&
( i_spu_delay < INT64_C(100000000) ) )
continue;
VLC_CODEC_SUBT )
p_data->i_length = 1000;
+ if (p_sys->first_dts == 0)
+ p_sys->first_dts = p_data->i_dts;
+
+ p_data->i_dts -= p_sys->first_dts;
+ p_data->i_pts -= p_sys->first_dts;
+
if( ( p_pcr_stream->i_pes_dts > 0 &&
p_data->i_dts - 10000000 > p_pcr_stream->i_pes_dts +
p_pcr_stream->i_pes_length ) ||