]> git.sesse.net Git - vlc/blobdiff - src/input/input_clock.c
* mkv: fix a double delete.
[vlc] / src / input / input_clock.c
index 7c4acb6309cdc2b83fe92dba006beca7bdd457ba..7df1aa4d34314a037cdb05407b378788aa76146f 100644 (file)
@@ -2,7 +2,7 @@
  * input_clock.c: Clock/System date convertions, stream management
  *****************************************************************************
  * Copyright (C) 1999-2001 VideoLAN
- * $Id: input_clock.c,v 1.33 2002/11/10 18:04:23 sam Exp $
+ * $Id: input_clock.c,v 1.37 2003/05/22 16:01:02 gbazin Exp $
  *
  * Authors: Christophe Massiot <massiot@via.ecp.fr>
  *
 
 #include <vlc/vlc.h>
 
-#ifdef HAVE_SYS_TYPES_H
-#   include <sys/types.h>                                           /* off_t */
-#endif
-
 #include "stream_control.h"
 #include "input_ext-intf.h"
 #include "input_ext-dec.h"
@@ -81,8 +77,6 @@
 /*****************************************************************************
  * ClockToSysdate: converts a movie clock to system date
  *****************************************************************************/
-static void ClockNewRef( input_thread_t * p_input, pgrm_descriptor_t * p_pgrm,
-                         mtime_t i_clock, mtime_t i_sysdate );
 static mtime_t ClockToSysdate( input_thread_t * p_input,
                                pgrm_descriptor_t * p_pgrm, mtime_t i_clock )
 {
@@ -117,7 +111,7 @@ static mtime_t ClockCurrent( input_thread_t * p_input,
 /*****************************************************************************
  * ClockNewRef: writes a new clock reference
  *****************************************************************************/
-static void ClockNewRef( input_thread_t * p_input, pgrm_descriptor_t * p_pgrm,
+static void ClockNewRef( pgrm_descriptor_t * p_pgrm,
                          mtime_t i_clock, mtime_t i_sysdate )
 {
     p_pgrm->cr_ref = i_clock;
@@ -163,19 +157,19 @@ int input_ClockManageControl( input_thread_t * p_input,
         i_old_status = p_input->stream.control.i_status;
         p_input->stream.control.i_status = PAUSE_S;
         vlc_mutex_unlock( &p_input->stream.control.control_lock );
-        
+
         vlc_cond_wait( &p_input->stream.stream_wait,
                        &p_input->stream.stream_lock );
         p_pgrm->last_syscr = 0;
-        ClockNewRef( p_input, p_pgrm, i_clock, mdate() );
+        ClockNewRef( p_pgrm, i_clock, mdate() );
 
         if( p_input->stream.i_new_status == PAUSE_S )
-        { 
+        {
             /* PAUSE_S undoes the pause state: Return to old state. */
             vlc_mutex_lock( &p_input->stream.control.control_lock );
             p_input->stream.control.i_status = i_old_status;
             vlc_mutex_unlock( &p_input->stream.control.control_lock );
-            
+
             p_input->stream.i_new_status = UNDEF_S;
             p_input->stream.i_new_rate = UNDEF_S;
         }
@@ -191,7 +185,7 @@ int input_ClockManageControl( input_thread_t * p_input,
 
         p_input->stream.control.i_status = p_input->stream.i_new_status;
 
-        ClockNewRef( p_input, p_pgrm, i_clock,
+        ClockNewRef( p_pgrm, i_clock,
                      ClockToSysdate( p_input, p_pgrm, i_clock ) );
 
         if( p_input->stream.control.i_status == PLAYING_S )
@@ -235,7 +229,7 @@ void input_ClockManageRef( input_thread_t * p_input,
     if( ( p_pgrm->i_synchro_state != SYNCHRO_OK ) || ( i_clock == 0 ) )
     {
         /* Feed synchro with a new reference point. */
-        ClockNewRef( p_input, p_pgrm, i_clock, mdate() );
+        ClockNewRef( p_pgrm, i_clock, mdate() );
         p_pgrm->i_synchro_state = SYNCHRO_OK;
 
         if( p_input->stream.b_pace_control
@@ -325,9 +319,7 @@ mtime_t input_ClockGetTS( input_thread_t * p_input,
     if( p_pgrm->i_synchro_state == SYNCHRO_OK )
     {
         return( ClockToSysdate( p_input, p_pgrm, i_ts + p_pgrm->delta_cr )
-                 + DEFAULT_PTS_DELAY
-                 + (p_input->p_vlc->i_desync > 0
-                       ? p_input->p_vlc->i_desync : 0) );
+                 + p_input->i_pts_delay );
     }
     else
     {