/*****************************************************************************
* 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>
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 */
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 );