diff --git a/modules/demux/asf/libasf.c b/modules/demux/asf/libasf.c index 12dd39f984..8128bcb88c 100644 --- a/modules/demux/asf/libasf.c +++ b/modules/demux/asf/libasf.c @@ -106,6 +106,7 @@ static char *AsfObjectHelperReadString( const uint8_t *p_peek, size_t i_peek, ui * ****************************************************************************/ static int ASF_ReadObject( stream_t *, asf_object_t *, asf_object_t * ); +static void ASF_ParentObject( asf_object_t *p_father, asf_object_t *p_obj ); /**************************************************************************** * @@ -1020,6 +1021,7 @@ static int ASF_ReadObject_extended_stream_properties( stream_t *s, { /* This p_sp will be inserted by ReadRoot later */ p_esp->p_sp = (asf_object_stream_properties_t*)p_sp; + ASF_ParentObject( p_obj, p_sp ); } } @@ -1778,31 +1780,9 @@ asf_object_root_t *ASF_ReadObjectRoot( stream_t *s, int b_seekable ) &asf_object_header_extension_guid, 0 ); if( p_hdr_ext ) { - int i_ext_stream; - p_root->p_metadata = ASF_FindObject( p_hdr_ext, &asf_object_metadata_guid, 0 ); - /* Special case for broken designed file format :( */ - i_ext_stream = ASF_CountObject( p_hdr_ext, - &asf_object_extended_stream_properties_guid ); - for( int i = 0; i < i_ext_stream; i++ ) - { - asf_object_t *p_esp = - ASF_FindObject( p_hdr_ext, - &asf_object_extended_stream_properties_guid, i ); - if( p_esp->ext_stream.p_sp ) - { - asf_object_t *p_sp = - (asf_object_t*)p_esp->ext_stream.p_sp; - - /* Insert this p_sp */ - p_root->p_hdr->p_last->common.p_next = p_sp; - p_root->p_hdr->p_last = p_sp; - - p_sp->common.p_father = (asf_object_t*)p_root->p_hdr; - } - } } ASF_ObjectDumpDebug( VLC_OBJECT(s),