/* PCR handling, DTS/PTS will be automatically computed using thoses PCR
* XXX: SET_PCR(_GROUP) are in charge of the pace control. They will wait
* to slow down the demuxer so that it reads at the right speed.
- * XXX: if you want PREROLL just call RESET_PCR and
- * ES_OUT_SET_NEXT_DISPLAY_TIME and send data to the decoder *without*
- * calling SET_PCR until preroll is finished.
+ * XXX: if you want PREROLL just call ES_OUT_SET_NEXT_DISPLAY_TIME and send$
+ * as you would normally do.
*/
ES_OUT_SET_PCR, /* arg1=int64_t i_pcr(microsecond!) (using default group 0)*/
ES_OUT_SET_GROUP_PCR, /* arg1= int i_group, arg2=int64_t i_pcr(microsecond!)*/
return VLC_EGENERIC;
}
UpdateSeekPoint( p_demux, i64 );
- es_out_Control( p_demux->out, ES_OUT_RESET_PCR );
p_sys->i_pcr = -1; /* Invalidate time display */
}
return VLC_SUCCESS;
{
return VLC_EGENERIC;
}
- es_out_Control( p_demux->out, ES_OUT_RESET_PCR );
p_sys->i_pcr = -1; /* Invalidate time display */
UpdateSeekPoint( p_demux, i64 );
return VLC_SUCCESS;
{
return VLC_EGENERIC;
}
- es_out_Control( p_demux->out, ES_OUT_RESET_PCR );
p_sys->i_pcr = -1; /* Invalidate time display */
UpdateSeekPoint( p_demux, i64 );
return VLC_SUCCESS;
{
ModPlug_Seek( p_sys->f, i64 / 1000 );
p_sys->i_time = i64 + 1;
- es_out_Control( p_demux->out, ES_OUT_RESET_PCR );
return VLC_SUCCESS;
}
{
ModPlug_Seek( p_sys->f, i64 / 1000 );
p_sys->i_time = i64 + 1;
- es_out_Control( p_demux->out, ES_OUT_RESET_PCR );
return VLC_SUCCESS;
}
p_sys->env->getResultMsg() );
return VLC_EGENERIC;
}
- es_out_Control( p_demux->out, ES_OUT_RESET_PCR );
p_sys->i_pcr = 0;
/* Retrieve RTP-Info values */
p_sys->i_npt_start = 0;
p_sys->i_pcr = 0;
p_sys->i_npt = 0.;
- es_out_Control( p_demux->out, ES_OUT_RESET_PCR );
*pi_int = (int)( INPUT_RATE_DEFAULT / p_sys->ms->scale() + 0.5 );
return VLC_SUCCESS;
{
ParseCluster();
msg_Dbg( &sys.demuxer, "we found a cluster that is in the neighbourhood" );
- es_out_Control( sys.demuxer.out, ES_OUT_RESET_PCR );
return;
}
}
sys.i_start_pts = i_date;
- es_out_Control( sys.demuxer.out, ES_OUT_RESET_PCR );
-
/* now parse until key frame */
i_track_skipping = 0;
for( i_track = 0; i_track < tracks.size(); i_track++ )
}
if( !tracks[i_track]->b_search_keyframe )
{
- //es_out_Control( sys.demuxer.out, ES_OUT_SET_PCR, sys.i_pts );
BlockDecode( &sys.demuxer, block, simpleblock, sys.i_pts, 0, i_block_ref1 >= 0 || i_block_ref2 > 0 );
}
}
else
p_sys->i_pts = (p_sys->i_chapter_time + block->GlobalTimecode()) / (mtime_t) 1000;
+ es_out_Control( p_demux->out, ES_OUT_SET_PCR, p_sys->i_pts );
+
if( p_sys->i_pts >= p_sys->i_start_pts )
{
- es_out_Control( p_demux->out, ES_OUT_SET_PCR, p_sys->i_pts );
-
if ( p_vsegment->UpdateCurrentToChapter( *p_demux ) )
{
i_return = 1;
{
ModPlug_Seek( p_sys->f, i64 / 1000 );
p_sys->i_time = i64 + 1;
- es_out_Control( p_demux->out, ES_OUT_RESET_PCR );
return VLC_SUCCESS;
}
{
ModPlug_Seek( p_sys->f, i64 / 1000 );
p_sys->i_time = i64 + 1;
- es_out_Control( p_demux->out, ES_OUT_RESET_PCR );
return VLC_SUCCESS;
}
f = (double) va_arg( args, double );
i64 = stream_Size( p_demux->s );
- es_out_Control( p_demux->out, ES_OUT_RESET_PCR );
if( stream_Seek( p_demux->s, (int64_t)(i64 * f) ) || ReSynch( p_demux ) )
- {
return VLC_EGENERIC;
- }
+
p_sys->i_time = -1; /* Invalidate time display */
return VLC_SUCCESS;
f = (double) va_arg( args, double );
i64 = stream_Size( p_demux->s );
p_sys->i_current_pts = 0;
- es_out_Control( p_demux->out, ES_OUT_RESET_PCR );
return stream_Seek( p_demux->s, (int64_t)(i64 * f) );
int64_t i_offset = i_pos / (i_now / 1000000) * ((i64 - i_now) / 1000000);
stream_Seek( p_demux->s, i_pos + i_offset);
- es_out_Control( p_demux->out, ES_OUT_RESET_PCR );
return VLC_SUCCESS;
}
return VLC_EGENERIC;
f = (double) va_arg( args, double );
i64 = stream_Size( p_demux->s );
- es_out_Control( p_demux->out, ES_OUT_RESET_PCR );
if( stream_Seek( p_demux->s, (int64_t)(i64 * f) ) || ReSynch( p_demux ) )
{
return VLC_EGENERIC;
msg_Dbg(p_demux, "Seek in real rtsp stream!");
p_sys->i_pcr = (int64_t)1000 * ( p_sys->i_our_duration * f );
- es_out_Control( p_demux->out, ES_OUT_RESET_PCR , p_sys->i_pcr );
p_sys->b_seek = 1;
return stream_Seek( p_demux->s, p_sys->i_pcr );
p_sys->i_pcr = 1000 * (int64_t) p_index->time_offset;
- es_out_Control( p_demux->out, ES_OUT_RESET_PCR , p_sys->i_pcr );
-
return stream_Seek( p_demux->s, i64 );
}
case DEMUX_SET_TIME:
}
p_sys->i_pcr = 1000 * (int64_t) p_index->time_offset;
- es_out_Control( p_demux->out, ES_OUT_RESET_PCR , p_sys->i_pcr );
return stream_Seek( p_demux->s, i64 );
f = (double) va_arg( args, double );
i64 = stream_Size( p_demux->s );
- es_out_Control( p_demux->out, ES_OUT_RESET_PCR );
if( stream_Seek( p_demux->s, (int64_t)(i64 * f) ) )
- {
return VLC_EGENERIC;
- }
+
return VLC_SUCCESS;
#if 0
case DEMUX_SET_POSITION:
f = (double)va_arg( args, double );
i64 = (int64_t)(f * (stream_Size( p_demux->s ) - p_sys->i_start));
- es_out_Control( p_demux->out, ES_OUT_RESET_PCR );
if( i64 > 0 )
{
int64_t tmp = 0;
/* to hell with syncing any audio or video, just start reading records... :) */
/*p_sys->lastAudioPTS = p_sys->lastVideoPTS = 0;*/
- es_out_Control( p_demux->out, ES_OUT_RESET_PCR );
return VLC_SUCCESS;
}