Added a "meta-preparsed" input variable. A demuxer can test it by
authorLaurent Aimar <fenrir@videolan.org>
Wed, 3 Oct 2007 22:24:11 +0000 (22:24 +0000)
committerLaurent Aimar <fenrir@videolan.org>
Wed, 3 Oct 2007 22:24:11 +0000 (22:24 +0000)
 var_CreateGetBool( p_demux, "meta-preparsed" )
(The demuxer should NOT overwrite it)
subtitle: do not look for p_input when not necessary.

modules/demux/subtitle.c
src/input/input.c
src/input/var.c

index 31fed30..72e8186 100644 (file)
@@ -176,7 +176,6 @@ static int Open ( vlc_object_t *p_this )
     demux_t        *p_demux = (demux_t*)p_this;
     demux_sys_t    *p_sys;
     es_format_t    fmt;
-    input_thread_t *p_input;
     float          f_fps;
     char           *psz_type;
     int  (*pf_read)( demux_t *, subtitle_t* );
@@ -198,16 +197,11 @@ static int Open ( vlc_object_t *p_this )
     p_sys->i_microsecperframe = 40000;
 
     /* Get the FPS */
-    p_input = (input_thread_t *)vlc_object_find( p_demux, VLC_OBJECT_INPUT, FIND_PARENT );
-    if( p_input )
-    {
-        f_fps = var_GetFloat( p_input, "sub-original-fps" );
-        if( f_fps >= 1.0 )
-            p_sys->i_microsecperframe = (int64_t)( (float)1000000 / f_fps );
+    f_fps = var_CreateGetFloat( p_demux, "sub-original-fps" );
+    if( f_fps >= 1.0 )
+        p_sys->i_microsecperframe = (int64_t)( (float)1000000 / f_fps );
 
-        msg_Dbg( p_demux, "Movie fps: %f", f_fps );
-        vlc_object_release( p_input );
-    }
+    msg_Dbg( p_demux, "Movie fps: %f", f_fps );
 
     /* Check for override of the fps */
     f_fps = var_CreateGetFloat( p_demux, "sub-fps" );
index ab6f6a0..0dc6b14 100644 (file)
@@ -196,6 +196,12 @@ static input_thread_t *Create( vlc_object_t *p_parent, input_item_t *p_item,
     /* Create Object Variables for private use only */
     input_ConfigVarInit( p_input );
 
+    vlc_mutex_lock( &p_item->lock );
+    if( p_item->p_meta && (p_item->p_meta->i_status & ITEM_PREPARSED ) )
+        var_SetBool( p_input, "meta-preparsed", VLC_TRUE );
+    vlc_mutex_unlock( &p_item->lock );
+
+
     /* Create Objects variables for public Get and Set */
     input_ControlVarInit( p_input );
 
index fa8e04c..f2b4829 100644 (file)
@@ -463,6 +463,9 @@ void input_ConfigVarInit ( input_thread_t *p_input )
     var_Create( p_input, "meta-description", VLC_VAR_STRING|VLC_VAR_DOINHERIT);
     var_Create( p_input, "meta-date", VLC_VAR_STRING | VLC_VAR_DOINHERIT );
     var_Create( p_input, "meta-url", VLC_VAR_STRING | VLC_VAR_DOINHERIT );
+
+    var_Create( p_input, "meta-preparsed", VLC_VAR_BOOL );
+    var_SetBool( p_input, "meta-preparsed", VLC_FALSE );
 }
 
 /*****************************************************************************