]> git.sesse.net Git - vlc/blobdiff - modules/demux/ogg.c
Moves volume icon update in the timer
[vlc] / modules / demux / ogg.c
index 2f0b422bf81aa90798616ea3d85a653c99f5d4e0..133494e55b411e55179bdd9997665fb35c8c4ac4 100644 (file)
@@ -1,7 +1,7 @@
 /*****************************************************************************
  * ogg.c : ogg stream demux module for vlc
  *****************************************************************************
- * Copyright (C) 2001-2003 the VideoLAN team
+ * Copyright (C) 2001-2007 the VideoLAN team
  * $Id$
  *
  * Authors: Gildas Bazin <gbazin@netcourrier.com>
@@ -179,8 +179,9 @@ static void Ogg_ReadAnnodexHeader( vlc_object_t *, logical_stream_t *, ogg_packe
 static int Open( vlc_object_t * p_this )
 {
     demux_t *p_demux = (demux_t *)p_this;
+    input_thread_t *p_input;
     demux_sys_t    *p_sys;
-    uint8_t        *p_peek;
+    const uint8_t  *p_peek;
 
 
     /* Check if we are dealing with an ogg stream */
@@ -203,17 +204,20 @@ static int Open( vlc_object_t * p_this )
     p_sys->i_eos = 0;
 
 
-    if( ((input_thread_t* )(p_demux->p_parent ))->b_preparsing == VLC_TRUE )
+    p_input = (input_thread_t *)vlc_object_find( p_demux, VLC_OBJECT_INPUT, FIND_PARENT );
+    if( p_input )
     {
         module_t *p_meta = module_Need( p_demux, "meta reader", NULL, 0 );
         if( p_meta )
         {
-            vlc_meta_Merge( input_GetItem((input_thread_t* )(p_demux->p_parent ))->p_meta,
-                                (vlc_meta_t*)(p_demux->p_private ) );
+            vlc_meta_Merge( input_GetItem(p_input)->p_meta, (vlc_meta_t*)(p_demux->p_private ) );
             module_Unneed( p_demux, p_meta );
         }
+        vlc_object_release( p_input );
         return VLC_SUCCESS;
     }
+    if( p_input )
+        vlc_object_release( p_input );
 
     /* Initialize the Ogg physical bitstream parser */
     ogg_sync_init( &p_sys->oy );