* src/input/input_clock.c, include/input_ext-intf.h: introduced an i_pts_delay field in
authorGildas Bazin <gbazin@videolan.org>
Thu, 12 Dec 2002 15:10:58 +0000 (15:10 +0000)
committerGildas Bazin <gbazin@videolan.org>
Thu, 12 Dec 2002 15:10:58 +0000 (15:10 +0000)
input_thread_t (initialised to DEFAULT_PTS_DELAY).
* modules/access/*: i_pts_delay is now configurable on an access module basis. The pts
delay for http and mms have been raised to 4 * DEFAULT_PTS_DELAY, which is about 1.2
seconds worth of caching.

include/input_ext-intf.h
modules/access/file.c
modules/access/http.c
modules/access/mms/mms.c
modules/access/rtp.c
modules/access/udp.c
src/input/input_clock.c

index 42dd55d..de934aa 100644 (file)
@@ -4,7 +4,7 @@
  * control the pace of reading.
  *****************************************************************************
  * Copyright (C) 1999, 2000 VideoLAN
- * $Id: input_ext-intf.h,v 1.80 2002/12/06 16:34:03 sam Exp $
+ * $Id: input_ext-intf.h,v 1.81 2002/12/12 15:10:58 gbazin Exp $
  *
  * Authors: Christophe Massiot <massiot@via.ecp.fr>
  *
@@ -305,6 +305,7 @@ struct input_thread_t
     void          (* pf_seek ) ( input_thread_t *, off_t );
     access_sys_t *   p_access_data;
     size_t           i_mtu;
+    int              i_pts_delay;                        /* internal caching */
 
     /* Demux module */
     module_t *       p_demux;
index bb54cdc..8eb05b2 100644 (file)
@@ -2,7 +2,7 @@
  * file.c: file input (file: access plug-in)
  *****************************************************************************
  * Copyright (C) 2001, 2002 VideoLAN
- * $Id: file.c,v 1.5 2002/11/21 13:53:32 sam Exp $
+ * $Id: file.c,v 1.6 2002/12/12 15:10:58 gbazin Exp $
  *
  * Authors: Christophe Massiot <massiot@via.ecp.fr>
  *
@@ -60,8 +60,15 @@ static ssize_t Read   ( input_thread_t *, byte_t *, size_t );
 /*****************************************************************************
  * Module descriptor
  *****************************************************************************/
+#define CACHING_TEXT N_("caching value in ms")
+#define CACHING_LONGTEXT N_( \
+    "Allows you to modify the default caching value for file streams. This " \
+    "value should be set in miliseconds units." )
+
 vlc_module_begin();
     set_description( _("Standard filesystem file reading") );
+    add_category_hint( N_("file"), NULL );
+    add_integer( "file-caching", DEFAULT_PTS_DELAY / 1000, NULL, CACHING_TEXT, CACHING_LONGTEXT );
     set_capability( "access", 50 );
     add_shortcut( "file" );
     add_shortcut( "stream" );
@@ -206,6 +213,9 @@ static int Open( vlc_object_t *p_this )
 #endif
     }
 
+    /* Update default_pts to a suitable value for file access */
+    p_input->i_pts_delay = config_GetInt( p_input, "file-caching" ) * 1000;
+
     return VLC_SUCCESS;
 }
 
index f494ac8..3979cd8 100644 (file)
@@ -2,7 +2,7 @@
  * http.c: HTTP access plug-in
  *****************************************************************************
  * Copyright (C) 2001, 2002 VideoLAN
- * $Id: http.c,v 1.16 2002/12/11 20:13:50 fenrir Exp $
+ * $Id: http.c,v 1.17 2002/12/12 15:10:58 gbazin Exp $
  *
  * Authors: Christophe Massiot <massiot@via.ecp.fr>
  *
@@ -76,9 +76,15 @@ static ssize_t Read    ( input_thread_t *, byte_t *, size_t );
     "http://myproxy.mydomain:myport . If none is specified, the HTTP_PROXY" \
     "environment variable will be tried." )
 
+#define CACHING_TEXT N_("caching value in ms")
+#define CACHING_LONGTEXT N_( \
+    "Allows you to modify the default caching value for http streams. This " \
+    "value should be set in miliseconds units." )
+
 vlc_module_begin();
     add_category_hint( N_("http"), NULL );
     add_string( "http-proxy", NULL, NULL, PROXY_TEXT, PROXY_LONGTEXT );
+    add_integer( "http-caching", 4 * DEFAULT_PTS_DELAY / 1000, NULL, CACHING_TEXT, CACHING_LONGTEXT );
     set_description( _("HTTP access module") );
     set_capability( "access", 0 );
     add_shortcut( "http" );
@@ -363,7 +369,6 @@ static int HTTPConnect( input_thread_t * p_input, off_t i_tell )
     if( p_input->stream.p_selected_area->i_size )
     {
         p_input->stream.p_selected_area->i_tell = i_tell;
-            + (p_input->p_last_data - p_input->p_current_data);
     }
     else
     {
@@ -621,6 +626,9 @@ static int Open( vlc_object_t *p_this )
         }
     }
 
+    /* Update default_pts to a suitable value for http access */
+    p_input->i_pts_delay = config_GetInt( p_input, "http-caching" ) * 1000;
+
     return VLC_SUCCESS;
 }
 
index 9af3f69..4ae284a 100644 (file)
@@ -2,7 +2,7 @@
  * mms.c: MMS access plug-in
  *****************************************************************************
  * Copyright (C) 2001, 2002 VideoLAN
- * $Id: mms.c,v 1.12 2002/12/06 13:05:22 sam Exp $
+ * $Id: mms.c,v 1.13 2002/12/12 15:10:58 gbazin Exp $
  *
  * Authors: Laurent Aimar <fenrir@via.ecp.fr>
  *
@@ -120,10 +120,18 @@ static void mms_ParseURL( url_t *p_url, char *psz_url );
 /*****************************************************************************
  * Module descriptor
  *****************************************************************************/
+#define CACHING_TEXT N_("caching value in ms")
+#define CACHING_LONGTEXT N_( \
+    "Allows you to modify the default caching value for mms streams. This " \
+    "value should be set in miliseconds units." )
+
 vlc_module_begin();
     set_description( _("MMS access module") );
     set_capability( "access", 0 );
     add_category_hint( "stream", NULL );
+        add_integer( "mms-caching", 4 * DEFAULT_PTS_DELAY / 1000, NULL,
+                     CACHING_TEXT, CACHING_LONGTEXT );
+
         add_bool( "mms-all", 0, NULL,
                   "force selection of all streams",
                   "force selection of all streams" );
@@ -271,6 +279,9 @@ static int Open( vlc_object_t *p_this )
         return( -1 );
     }
 
+    /* Update default_pts to a suitable value for mms access */
+    p_input->i_pts_delay = config_GetInt( p_input, "mms-caching" ) * 1000;
+
     return( 0 );
 }
 
index 73556af..313fcb2 100644 (file)
@@ -2,7 +2,7 @@
  * rtp.c: RTP access plug-in
  *****************************************************************************
  * Copyright (C) 2001, 2002 VideoLAN
- * $Id: rtp.c,v 1.8 2002/12/11 20:13:50 fenrir Exp $
+ * $Id: rtp.c,v 1.9 2002/12/12 15:10:58 gbazin Exp $
  *
  * Authors: Tristan Leteurtre <tooney@via.ecp.fr>
  *
@@ -69,8 +69,15 @@ static ssize_t Read    ( input_thread_t *, byte_t *, size_t );
 /*****************************************************************************
  * Module descriptor
  *****************************************************************************/
+#define CACHING_TEXT N_("caching value in ms")
+#define CACHING_LONGTEXT N_( \
+    "Allows you to modify the default caching value for rtp streams. This " \
+    "value should be set in miliseconds units." )
+
 vlc_module_begin();
     set_description( _("RTP access module") );
+    add_category_hint( N_("rtp"), NULL );
+    add_integer( "rtp-caching", DEFAULT_PTS_DELAY / 1000, NULL, CACHING_TEXT, CACHING_LONGTEXT );
     set_capability( "access", 0 );
     add_shortcut( "rtp" );
     add_shortcut( "rtpstream" );
@@ -273,6 +280,9 @@ static int Open( vlc_object_t *p_this )
         p_input->psz_demux = "ts";
     }
 
+    /* Update default_pts to a suitable value for rtp access */
+    p_input->i_pts_delay = config_GetInt( p_input, "rtp-caching" ) * 1000;
+
     return( 0 );
 }
 
index a086d84..319e6c3 100644 (file)
@@ -2,7 +2,7 @@
  * udp.c: raw UDP access plug-in
  *****************************************************************************
  * Copyright (C) 2001, 2002 VideoLAN
- * $Id: udp.c,v 1.5 2002/12/11 20:13:50 fenrir Exp $
+ * $Id: udp.c,v 1.6 2002/12/12 15:10:58 gbazin Exp $
  *
  * Authors: Christophe Massiot <massiot@via.ecp.fr>
  *
@@ -62,8 +62,15 @@ static ssize_t Read    ( input_thread_t *, byte_t *, size_t );
 /*****************************************************************************
  * Module descriptor
  *****************************************************************************/
+#define CACHING_TEXT N_("caching value in ms")
+#define CACHING_LONGTEXT N_( \
+    "Allows you to modify the default caching value for udp streams. This " \
+    "value should be set in miliseconds units." )
+
 vlc_module_begin();
     set_description( _("raw UDP access module") );
+    add_category_hint( N_("udp"), NULL );
+    add_integer( "udp-caching", DEFAULT_PTS_DELAY / 1000, NULL, CACHING_TEXT, CACHING_LONGTEXT );
     set_capability( "access", 0 );
     add_shortcut( "udp" );
     add_shortcut( "udpstream" );
@@ -262,6 +269,9 @@ static int Open( vlc_object_t *p_this )
     p_access_data->i_handle = socket_desc.i_handle;
     p_input->i_mtu = socket_desc.i_mtu;
 
+    /* Update default_pts to a suitable value for udp access */
+    p_input->i_pts_delay = config_GetInt( p_input, "udp-caching" ) * 1000;
+
     return( 0 );
 }
 
index f7e679d..02ac6b8 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.35 2002/12/06 10:10:39 sam Exp $
+ * $Id: input_clock.c,v 1.36 2002/12/12 15:10:58 gbazin Exp $
  *
  * Authors: Christophe Massiot <massiot@via.ecp.fr>
  *
@@ -319,7 +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->i_pts_delay
                  + (p_input->p_vlc->i_desync > 0
                        ? p_input->p_vlc->i_desync : 0) );
     }