* This header provides structures to read the stream descriptors and
* control the pace of reading.
*****************************************************************************
- * Copyright (C) 1999, 2000 VideoLAN
- * $Id: input_ext-intf.h,v 1.94 2003/09/12 16:26:40 fenrir Exp $
+ * Copyright (C) 1999, 2000, 2003 VideoLAN
+ * $Id$
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
#ifndef _VLC_INPUT_EXT_INTF_H
#define _VLC_INPUT_EXT_INTF_H 1
+#include "vlc_block.h"
+#include "ninput.h"
+
/*
* Communication input -> interface
*/
#define REQUESTED_DTS 4
#define REQUESTED_NOAUDIO 255
-#define OFFSETTOTIME_MAX_SIZE 10
-
/*****************************************************************************
* es_descriptor_t: elementary stream descriptor
*****************************************************************************
unsigned int i_pes_real_size; /* as indicated by the header */
/* Decoder information */
- decoder_fifo_t * p_decoder_fifo;
+ es_format_t fmt;
void * p_waveformatex;
void * p_bitmapinfoheader;
+ void * p_spuinfo;
+ /* Decoder */
+ decoder_t * p_dec;
count_t c_packets; /* total packets read */
count_t c_invalid_packets; /* invalid packets read */
#define CONDITIONNAL_ACCESS_TABLE_PID 0x0001 /* not used */
#define EMPTY_ID 0xffff /* empty record in a table */
-
-/* ES Categories to be used by interface plugins */
-#define UNKNOWN_ES 0x00
-#define VIDEO_ES 0x01
-#define AUDIO_ES 0x02
-#define SPU_ES 0x03
-#define NAV_ES 0x04
-
/*****************************************************************************
* pgrm_descriptor_t
*****************************************************************************
int b_new_mute; /* int because it can be -1 */
vlc_cond_t stream_wait; /* interface -> input in case of a
* status change request */
-
/* Demultiplexer data */
- stream_sys_t * p_demux_data;
+ void * p_demux_data;
/* Programs descriptions */
unsigned int i_pgrm_number; /* size of the following array */
/* Thread properties */
vlc_bool_t b_eof;
+ vlc_bool_t b_out_pace_control;
/* Access module */
module_t * p_access;
access_sys_t * p_access_data;
size_t i_mtu;
int i_pts_delay; /* internal caching */
+ int i_cr_average;
/* Stream */
stream_t *s;
int (* pf_demux_control ) ( input_thread_t *, int, va_list );
demux_sys_t * p_demux_data; /* data of the demux */
+ /* es out */
+ es_out_t *p_es_out;
+
/* Buffer manager */
input_buffers_t *p_method_data; /* data of the packet manager */
data_buffer_t * p_data_buffer;
char * psz_name;
count_t c_loops;
+
+ /* private, do not touch it */
+ input_thread_sys_t *p_sys;
};
/* Input methods */
/*****************************************************************************
* Prototypes
*****************************************************************************/
-#define input_CreateThread(a,b) __input_CreateThread(VLC_OBJECT(a),b)
-input_thread_t * __input_CreateThread ( vlc_object_t *, playlist_item_t * );
-void input_StopThread ( input_thread_t * );
-void input_DestroyThread ( input_thread_t * );
+#define input_CreateThread(a,b,c,d) __input_CreateThread(VLC_OBJECT(a),b,c,d)
+VLC_EXPORT( input_thread_t *, __input_CreateThread, ( vlc_object_t *, char *psz_uri, char **ppsz_options, int i_options ) );
+VLC_EXPORT( void, input_StopThread, ( input_thread_t * ) );
+VLC_EXPORT( void, input_DestroyThread, ( input_thread_t * ) );
#define input_SetStatus(a,b) __input_SetStatus(VLC_OBJECT(a),b)
VLC_EXPORT( void, __input_SetStatus, ( vlc_object_t *, int ) );