* but exported to plug-ins
*****************************************************************************
* Copyright (C) 1999-2002 VideoLAN
- * $Id: input_ext-plugins.h,v 1.25 2002/05/10 02:04:16 fenrir Exp $
+ * $Id: input_ext-plugins.h,v 1.26 2002/05/14 21:23:44 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
struct es_descriptor_s * );
void input_EndDecoder( struct input_thread_s *, struct es_descriptor_s * );
void input_DecodePES ( struct decoder_fifo_s *, struct pes_packet_s * );
-void input_EscapeDiscontinuity( struct input_thread_s *,
- struct pgrm_descriptor_s * );
+void input_EscapeDiscontinuity( struct input_thread_s * );
void input_EscapeAudioDiscontinuity( struct input_thread_s * );
#else
# define input_DecodePES p_symbols->input_DecodePES
* decoders.
*****************************************************************************
* Copyright (C) 1998-2001 VideoLAN
- * $Id: input.c,v 1.194 2002/04/23 14:16:20 sam Exp $
+ * $Id: input.c,v 1.195 2002/05/14 21:23:44 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
p_input->pf_set_program( p_input,
p_input->stream.p_new_program );
+ /* Escape all decoders for the stream discontinuity they
+ * will encounter. */
+ input_EscapeDiscontinuity( p_input );
+
for( i = 0; i < p_input->stream.i_pgrm_number; i++ )
{
pgrm_descriptor_t * p_pgrm
= p_input->stream.pp_programs[i];
- /* Escape all decoders for the stream discontinuity they
- * will encounter. */
- input_EscapeDiscontinuity( p_input, p_pgrm );
/* Reinitialize synchro. */
p_pgrm->i_synchro_state = SYNCHRO_REINIT;
p_input->pf_set_area( p_input, p_input->stream.p_new_area );
+ /* Escape all decoders for the stream discontinuity they
+ * will encounter. */
+ input_EscapeDiscontinuity( p_input );
+
for( i = 0; i < p_input->stream.i_pgrm_number; i++ )
{
pgrm_descriptor_t * p_pgrm
= p_input->stream.pp_programs[i];
- /* Escape all decoders for the stream discontinuity they
- * will encounter. */
- input_EscapeDiscontinuity( p_input, p_pgrm );
/* Reinitialize synchro. */
p_pgrm->i_synchro_state = SYNCHRO_REINIT;
p_input->pf_seek( p_input, i_new_pos );
vlc_mutex_lock( &p_input->stream.stream_lock );
+ /* Escape all decoders for the stream discontinuity they
+ * will encounter. */
+ input_EscapeDiscontinuity( p_input );
+
for( i = 0; i < p_input->stream.i_pgrm_number; i++ )
{
pgrm_descriptor_t * p_pgrm
= p_input->stream.pp_programs[i];
- /* Escape all decoders for the stream discontinuity they
- * will encounter. */
- input_EscapeDiscontinuity( p_input, p_pgrm );
/* Reinitialize synchro. */
p_pgrm->i_synchro_state = SYNCHRO_REINIT;
* input_clock.c: Clock/System date convertions, stream management
*****************************************************************************
* Copyright (C) 1999-2001 VideoLAN
- * $Id: input_clock.c,v 1.29 2002/03/05 17:46:33 stef Exp $
+ * $Id: input_clock.c,v 1.30 2002/05/14 21:23:44 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
intf_WarnMsg( 1, "Clock gap, unexpected stream discontinuity" );
input_ClockInit( p_pgrm );
p_pgrm->i_synchro_state = SYNCHRO_START;
- input_EscapeDiscontinuity( p_input, p_pgrm );
+ input_EscapeDiscontinuity( p_input );
}
p_pgrm->last_cr = i_clock;
* input_dec.c: Functions for the management of decoders
*****************************************************************************
* Copyright (C) 1999-2001 VideoLAN
- * $Id: input_dec.c,v 1.33 2002/05/12 01:39:36 massiot Exp $
+ * $Id: input_dec.c,v 1.34 2002/05/14 21:23:44 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
/*****************************************************************************
* input_EscapeDiscontinuity: send a NULL packet to the decoders
*****************************************************************************/
-void input_EscapeDiscontinuity( input_thread_t * p_input,
- pgrm_descriptor_t * p_pgrm )
+void input_EscapeDiscontinuity( input_thread_t * p_input )
{
int i_es, i;
- for( i_es = 0; i_es < p_pgrm->i_es_number; i_es++ )
+ for( i_es = 0; i_es < p_input->stream.i_selected_es_number; i_es++ )
{
- es_descriptor_t * p_es = p_pgrm->pp_es[i_es];
+ es_descriptor_t * p_es = p_input->stream.pp_selected_es[i_es];
if( p_es->p_decoder_fifo != NULL )
{
*****************************************************************************/
void input_EscapeAudioDiscontinuity( input_thread_t * p_input )
{
- int i_pgrm, i_es, i;
+ int i_es, i;
- for( i_pgrm = 0; i_pgrm < p_input->stream.i_pgrm_number; i_pgrm++ )
+ for( i_es = 0; i_es < p_input->stream.i_selected_es_number; i_es++ )
{
- pgrm_descriptor_t * p_pgrm = p_input->stream.pp_programs[i_pgrm];
+ es_descriptor_t * p_es = p_input->stream.pp_selected_es[i_es];
- for( i_es = 0; i_es < p_pgrm->i_es_number; i_es++ )
+ if( p_es->p_decoder_fifo != NULL && p_es->b_audio )
{
- es_descriptor_t * p_es = p_pgrm->pp_es[i_es];
-
- if( p_es->p_decoder_fifo != NULL && p_es->b_audio )
+ for( i = 0; i < PADDING_PACKET_NUMBER; i++ )
{
- for( i = 0; i < PADDING_PACKET_NUMBER; i++ )
- {
- input_NullPacket( p_input, p_es );
- }
+ input_NullPacket( p_input, p_es );
}
}
}