* input.h: structures of the input not exported to other modules
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
- * $Id: input.h,v 1.26 2001/02/08 04:43:27 sam Exp $
+ * $Id: input.h,v 1.37 2001/05/30 17:03:11 sam Exp $
*
- * Authors:
+ * Authors: Christophe Massiot <massiot@via.ecp.fr>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* packets. Have a nice day and merry Xmas. */
#define PADDING_PACKET_SIZE 188 /* Size of the NULL packet inserted in case
* of data loss (this should be < 188). */
+#define PADDING_PACKET_NUMBER 10 /* Number of padding packets top insert to
+ * escape a decoder. */
+#define NO_SEEK -1
/*****************************************************************************
* Prototypes from input_ext-dec.c
*****************************************************************************/
-void InitBitstream ( struct bit_stream_s *, struct decoder_fifo_s * );
+void InitBitstream ( struct bit_stream_s *, struct decoder_fifo_s *,
+ void (* pf_bitstream_callback)( struct bit_stream_s *,
+ boolean_t ),
+ void * p_callback_arg );
void NextDataPacket ( struct bit_stream_s * );
-/*****************************************************************************
- * Prototypes from input.c to open files
- *****************************************************************************/
-void input_FileOpen ( struct input_thread_s * );
-void input_FileClose( struct input_thread_s * );
-
/*****************************************************************************
* Prototypes from input_programs.c
*****************************************************************************/
struct pgrm_descriptor_s * input_AddProgram ( struct input_thread_s *,
u16, size_t );
void input_DelProgram( struct input_thread_s *, struct pgrm_descriptor_s * );
-void input_DumpStream( struct input_thread_s * );
+struct input_area_s * input_AddArea( struct input_thread_s * );
+void input_DelArea ( struct input_thread_s *, struct input_area_s * );
struct es_descriptor_s * input_FindES( struct input_thread_s *, u16 );
struct es_descriptor_s * input_AddES ( struct input_thread_s *,
struct pgrm_descriptor_s *, u16,
size_t );
void input_DelES ( struct input_thread_s *, struct es_descriptor_s * );
int input_SelectES ( struct input_thread_s *, struct es_descriptor_s * );
+int input_UnselectES( struct input_thread_s *, struct es_descriptor_s * );
/*****************************************************************************
* Prototypes from input_dec.c
vlc_thread_t input_RunDecoder( struct decoder_capabilities_s *, void * );
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_EscapeAudioDiscontinuity( struct input_thread_s *,
+ struct pgrm_descriptor_s * );
/*****************************************************************************
* Prototypes from input_clock.c
*****************************************************************************/
-void input_ClockNewRef( struct input_thread_s *,
- struct pgrm_descriptor_s *, mtime_t, mtime_t );
-void input_EscapeDiscontinuity( struct input_thread_s *,
- struct pgrm_descriptor_s * );
void input_ClockInit( struct pgrm_descriptor_s * );
void input_ClockManageRef( struct input_thread_s *,
struct pgrm_descriptor_s *, mtime_t );
if( p_pes != NULL )
{
- p_pes->b_messed_up = 1;
+ p_pes->b_discontinuity = 1;
p_es->p_last->p_next = p_pad_data;
p_es->p_last = p_pad_data;
}
p_pes->i_rate = p_input->stream.control.i_rate;
p_pes->p_first = p_pad_data;
- p_pes->b_messed_up = p_pes->b_discontinuity = 1;
+ p_pes->b_discontinuity = 1;
input_DecodePES( p_es->p_decoder_fifo, p_pes );
}
-
- p_es->b_discontinuity = 0;
}