]> git.sesse.net Git - vlc/blobdiff - src/input/input_internal.h
Privatized input_clock_t to clock.c
[vlc] / src / input / input_internal.h
index c12b0b9c703b6db36568aa693cf35ecf90f68538..27e7116a1be7f3d692bb89d778ae95a24d76daec 100644 (file)
@@ -336,6 +336,7 @@ void stream_AccessReset( stream_t *s );
 void stream_AccessUpdate( stream_t *s );
 
 /* decoder.c */
+#define BLOCK_FLAG_CORE_FLUSH (1 <<BLOCK_FLAG_CORE_PRIVATE_SHIFT)
 void       input_DecoderDiscontinuity( decoder_t * p_dec, bool b_flush );
 bool input_DecoderEmpty( decoder_t * p_dec );
 int        input_DecoderSetCcState( decoder_t *, bool b_decode, int i_channel );
@@ -346,47 +347,26 @@ void       input_DecoderIsCcPresent( decoder_t *, bool pb_present[4] );
 es_out_t  *input_EsOutNew( input_thread_t *, int i_rate );
 void       input_EsOutDelete( es_out_t * );
 es_out_id_t *input_EsOutGetFromID( es_out_t *, int i_id );
+mtime_t    input_EsOutGetWakeup( es_out_t * );
 void       input_EsOutSetDelay( es_out_t *, int i_cat, int64_t );
-int        input_EsOutSetRecord(  es_out_t *, bool b_record );
+int        input_EsOutSetRecord( es_out_t *, bool b_record );
 void       input_EsOutChangeRate( es_out_t *, int );
 void       input_EsOutChangeState( es_out_t * );
 void       input_EsOutChangePosition( es_out_t * );
 bool input_EsOutDecodersEmpty( es_out_t * );
 
 /* clock.c */
-enum /* Synchro states */
-{
-    SYNCHRO_OK     = 0,
-    SYNCHRO_START  = 1,
-    SYNCHRO_REINIT = 2,
-};
+typedef struct input_clock_t input_clock_t;
 
-typedef struct
-{
-    /* Synchronization information */
-    mtime_t                 delta_cr;
-    mtime_t                 cr_ref, sysdate_ref;
-    mtime_t                 last_sysdate;
-    mtime_t                 last_cr; /* reference to detect unexpected stream
-                                      * discontinuities                      */
-    mtime_t                 last_pts;
-    mtime_t                 last_update;
-    int                     i_synchro_state;
-
-    bool                    b_master;
-
-    int                     i_rate;
-
-    /* Config */
-    int                     i_cr_average;
-    int                     i_delta_cr_residue;
-} input_clock_t;
-
-void    input_ClockInit( input_clock_t *, bool b_master, int i_cr_average, int i_rate );
-void    input_ClockSetPCR( input_thread_t *, input_clock_t *, mtime_t );
+input_clock_t *input_ClockNew( bool b_master, int i_cr_average, int i_rate );
+void           input_ClockDelete( input_clock_t * );
+
+void    input_ClockSetPCR( input_thread_t *, input_clock_t *, mtime_t i_clock, mtime_t i_system );
 void    input_ClockResetPCR( input_clock_t * );
 mtime_t input_ClockGetTS( input_thread_t *, input_clock_t *, mtime_t );
 void    input_ClockSetRate( input_clock_t *cl, int i_rate );
+void    input_ClockSetMaster( input_clock_t *cl, bool b_master );
+mtime_t input_ClockGetWakeup( input_thread_t *, input_clock_t *cl );
 
 /* Subtitles */
 char **subtitles_Detect( input_thread_t *, char* path, const char *fname );