apply to the selected program.
* ninput.h
*****************************************************************************
* Copyright (C) 1999-2001 VideoLAN
- * $Id: ninput.h,v 1.22 2004/01/06 21:42:43 sigmunau Exp $
+ * $Id: ninput.h,v 1.23 2004/01/07 15:31:31 fenrir Exp $
*
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
*
ES_OUT_GET_ES_STATE,/* arg1= es_out_id_t* arg2=vlc_bool_t* */
/* XXX XXX XXX Don't use them YET !!! */
- ES_OUT_SET_PCR, /* arg1= int i_group, arg2=int64_t i_pcr(microsecond!)*/
+ 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!)*/
ES_OUT_RESET_PCR, /* no arg */
};
* nsv.c: NullSoft Video demuxer.
*****************************************************************************
* Copyright (C) 2004 VideoLAN
- * $Id: nsv.c,v 1.3 2004/01/07 14:59:37 fenrir Exp $
+ * $Id: nsv.c,v 1.4 2004/01/07 15:31:31 fenrir Exp $
*
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
*
}
/* Set PCR */
- es_out_Control( p_demux->out, ES_OUT_SET_PCR, (int)0, (int64_t)p_sys->i_pcr );
+ es_out_Control( p_demux->out, ES_OUT_SET_PCR, (int64_t)p_sys->i_pcr );
/* Read video */
i_size = ( header[0] >> 4 ) | ( header[1] << 4 ) | ( header[2] << 12 );
* real.c: Real demuxer.
*****************************************************************************
* Copyright (C) 2004 VideoLAN
- * $Id: real.c,v 1.1 2004/01/04 14:35:12 fenrir Exp $
+ * $Id: real.c,v 1.2 2004/01/07 15:31:31 fenrir Exp $
*
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
*
{
p_sys->i_pcr = tk->p_frame->i_dts;
- es_out_Control( p_demux->out, ES_OUT_SET_PCR, (int)0, (int64_t)p_sys->i_pcr );
+ es_out_Control( p_demux->out, ES_OUT_SET_PCR, (int64_t)p_sys->i_pcr );
}
es_out_Send( p_demux->out, tk->p_es, tk->p_frame );
if( p_sys->i_pcr < tk->p_frame->i_dts )
{
p_sys->i_pcr = tk->p_frame->i_dts;
- es_out_Control( p_demux->out, ES_OUT_SET_PCR, (int)0, (int64_t)p_sys->i_pcr );
+ es_out_Control( p_demux->out, ES_OUT_SET_PCR, (int64_t)p_sys->i_pcr );
}
es_out_Send( p_demux->out, tk->p_es, tk->p_frame );
if( p_sys->i_pcr < p_frame->i_dts )
{
p_sys->i_pcr = p_frame->i_dts;
- es_out_Control( p_demux->out, ES_OUT_SET_PCR, (int)0, (int64_t)p_sys->i_pcr );
+ es_out_Control( p_demux->out, ES_OUT_SET_PCR, (int64_t)p_sys->i_pcr );
}
es_out_Send( p_demux->out, tk->p_es, p_frame );
}
{
p_sys->i_pcr = i_pts;
- es_out_Control( p_demux->out, ES_OUT_SET_PCR, (int)0, (int64_t)p_sys->i_pcr );
+ es_out_Control( p_demux->out, ES_OUT_SET_PCR, (int64_t)p_sys->i_pcr );
}
es_out_Send( p_demux->out, tk->p_es, p_block );
}
* es_out.c: Es Out handler for input.
*****************************************************************************
* Copyright (C) 2003-2004 VideoLAN
- * $Id: es_out.c,v 1.14 2004/01/06 12:02:06 zorglub Exp $
+ * $Id: es_out.c,v 1.15 2004/01/07 15:31:31 fenrir Exp $
*
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
*
es_out_sys_t *p_sys = out->p_sys;
vlc_bool_t b, *pb;
int i, *pi;
- int i_group;
- int64_t i_pcr;
es_out_id_t *es;
return VLC_SUCCESS;
case ES_OUT_SET_PCR:
+ case ES_OUT_SET_GROUP_PCR:
{
pgrm_descriptor_t *p_prgm = NULL;
+ int64_t i_pcr;
- i_group = (int)va_arg( args, int );
+ if( i_query == ES_OUT_SET_PCR )
+ {
+ p_prgm = p_sys->p_input->stream.p_selected_program;
+ }
+ else
+ {
+ int i_group = (int)va_arg( args, int );
+ p_prgm = input_FindProgram( p_sys->p_input, i_group );
+ }
i_pcr = (int64_t)va_arg( args, int64_t );
/* search program */
- if( ( p_prgm = input_FindProgram( p_sys->p_input, i_group ) ) )
+ if( p_prgm )
{
input_ClockManageRef( p_sys->p_input, p_prgm, i_pcr * 9 / 100);
}