/*****************************************************************************
* input_internal.h:
*****************************************************************************
- * Copyright (C) 1998-2004 VideoLAN
+ * Copyright (C) 1998-2004 the VideoLAN team
* $Id: input.c 7955 2004-06-07 22:21:33Z fenrir $
*
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
#ifndef _INPUT_INTERNAL_H
#define _INPUT_INTERNAL_H 1
-#include "../../modules/demux/util/sub.h"
-
-
enum input_control_e
{
INPUT_CONTROL_SET_BOOKMARK,
INPUT_CONTROL_SET_ES,
-};
-struct input_thread_sys_t
-{
- /* subtitles */
- int i_sub;
- subtitle_demux_t **sub;
-};
+ INPUT_CONTROL_SET_AUDIO_DELAY,
+ INPUT_CONTROL_SET_SPU_DELAY,
+
+ INPUT_CONTROL_ADD_SLAVE,
+};
/* Internal helpers */
static inline void input_ControlPush( input_thread_t *p_input,
void input_ConfigVarInit ( input_thread_t * );
/* stream.c */
-stream_t *stream_AccessNew( access_t *p_access );
+stream_t *stream_AccessNew( access_t *p_access, vlc_bool_t );
void stream_AccessDelete( stream_t *s );
void stream_AccessReset( stream_t *s );
+void stream_AccessUpdate( stream_t *s );
-/* Decoder FIXME make it public */
-void input_DecoderDiscontinuity( decoder_t * p_dec );
+/* decoder.c FIXME make it public ?*/
+void input_DecoderDiscontinuity( decoder_t * p_dec );
+vlc_bool_t input_DecoderEmpty( decoder_t * p_dec );
+void input_DecoderPreroll( decoder_t *p_dec, int64_t i_preroll_end );
/* es_out.c */
-es_out_t *input_EsOutNew( input_thread_t * );
-void input_EsOutDelete( es_out_t * );
+es_out_t *input_EsOutNew( input_thread_t * );
+void input_EsOutDelete( es_out_t * );
es_out_id_t *input_EsOutGetFromID( es_out_t *, int i_id );
-void input_EsOutDiscontinuity( es_out_t *, vlc_bool_t b_audio );
+void input_EsOutDiscontinuity( es_out_t *, vlc_bool_t b_audio );
+void input_EsOutSetDelay( es_out_t *, int i_cat, int64_t );
+vlc_bool_t input_EsOutDecodersEmpty( es_out_t * );
/* clock.c */
enum /* Synchro states */
mtime_t last_cr; /* reference to detect unexpected stream
* discontinuities */
mtime_t last_pts;
- count_t c_average_count;
- /* counter used to compute dynamic average values */
int i_synchro_state;
vlc_bool_t b_master;
/* Config */
int i_cr_average;
+ int i_delta_cr_residue;
} input_clock_t;
void input_ClockInit( input_clock_t *, vlc_bool_t b_master, int i_cr_average );
/* Subtitles */
char **subtitles_Detect( input_thread_t *, char* path, char *fname );
+void MRLSplit( vlc_object_t *, char *, char **, char **, char ** );
#endif