if( p_sys->i_pts >= p_sys->i_start_pts )
if ( p_vsegment->UpdateCurrentToChapter( *p_demux ) )
{
- i_return = ( i_block_count != 0 );
+ i_return = 1;
break;
}
/* TODO handle successive chapters with the same user_start_time/user_end_time
*/
p_sys->i_pts = p_chap->i_virtual_stop_time;
- p_sys->i_start_pts = p_sys->i_pts++; // trick to avoid staying on segments with no duration and no content
+ p_sys->i_pts++; // trick to avoid staying on segments with no duration and no content
i_return = 1;
}
else
{
msg_Warn( p_demux, "cannot get block EOF?" );
- es_out_Control( p_demux->out, ES_OUT_RESET_PCR );
break;
}
}
( p_current_chapter->p_chapter->i_end_time != p_cur_chapter->p_chapter->i_start_time ) ||
( p_current_chapter && p_current_chapter->p_segment != p_cur_chapter->p_segment ) )
{
- /* hack : we have to use input to seek in order to clean buffers */
- var_SetTime( demux.p_sys->p_input, "time", p_cur_chapter->i_virtual_start_time );
+ Seek( demux, p_cur_chapter->i_virtual_start_time, 0, p_cur_chapter, -1 );
return true;
}
}
if( p_current_chapter->p_segment != p_chapter->p_segment )
{
- es_out_Control( demuxer.out, ES_OUT_RESET_PCR );
p_chapter->p_segment->Select( i_date );
p_current_chapter->p_segment->UnSelect();
}