From 2bd94a6ca420385fa09301076f1eafc9b77fdd48 Mon Sep 17 00:00:00 2001 From: Laurent Aimar <fenrir@videolan.org> Date: Fri, 19 Sep 2003 21:53:48 +0000 Subject: [PATCH] * playlist.c : unlock playlist before calling vout_Destroy (for osx) * mp4: send complete atom for amr to the decoder. --- modules/demux/mp4/mp4.c | 15 ++++++++++----- src/playlist/playlist.c | 16 +++++++++++----- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/modules/demux/mp4/mp4.c b/modules/demux/mp4/mp4.c index 7626f36b388f..71d9596095b0 100644 --- a/modules/demux/mp4/mp4.c +++ b/modules/demux/mp4/mp4.c @@ -2,7 +2,7 @@ * mp4.c : MP4 file input module for vlc ***************************************************************************** * Copyright (C) 2001 VideoLAN - * $Id: mp4.c,v 1.38 2003/09/13 17:42:16 fenrir Exp $ + * $Id: mp4.c,v 1.39 2003/09/19 21:53:48 fenrir Exp $ * Authors: Laurent Aimar <fenrir@via.ecp.fr> * * This program is free software; you can redistribute it and/or modify @@ -1047,14 +1047,19 @@ static int TrackCreateES ( input_thread_t *p_input, case VLC_FOURCC( 'V', 'P', '3', '1' ): case VLC_FOURCC( '3', 'I', 'V', '1' ): case VLC_FOURCC( 'Z', 'y', 'G', 'o' ): - i_decoder_specific_info_len = p_sample->data.p_sample_vide->i_qt_image_description; - p_decoder_specific_info = p_sample->data.p_sample_vide->p_qt_image_description; + i_decoder_specific_info_len = + p_sample->data.p_sample_vide->i_qt_image_description; + p_decoder_specific_info = + p_sample->data.p_sample_vide->p_qt_image_description; break; case VLC_FOURCC( 'Q', 'D', 'M', 'C' ): case VLC_FOURCC( 'Q', 'D', 'M', '2' ): case VLC_FOURCC( 'Q', 'c', 'l', 'p' ): - i_decoder_specific_info_len = p_sample->data.p_sample_soun->i_qt_description; - p_decoder_specific_info = p_sample->data.p_sample_soun->p_qt_description; + case VLC_FOURCC( 's', 'a', 'm', 'r' ): + i_decoder_specific_info_len = + p_sample->data.p_sample_soun->i_qt_description; + p_decoder_specific_info = + p_sample->data.p_sample_soun->p_qt_description; break; default: break; diff --git a/src/playlist/playlist.c b/src/playlist/playlist.c index fd7207f7acec..c36aa79f2872 100644 --- a/src/playlist/playlist.c +++ b/src/playlist/playlist.c @@ -2,7 +2,7 @@ * playlist.c : Playlist management functions ***************************************************************************** * Copyright (C) 1999-2001 VideoLAN - * $Id: playlist.c,v 1.52 2003/09/15 00:01:49 fenrir Exp $ + * $Id: playlist.c,v 1.53 2003/09/19 21:53:48 fenrir Exp $ * * Authors: Samuel Hocevar <sam@zoy.org> * @@ -386,8 +386,8 @@ int playlist_Sort( playlist_t * p_playlist , int i_type ) i_test = strcasecmp( p_playlist->pp_items[i]->psz_name, p_playlist->pp_items[i_small]->psz_name ); - if( i_type == SORT_NORMAL && i_test < 0 || - i_type == SORT_REVERSE && i_test > 0 ) + if( ( i_type == SORT_NORMAL && i_test < 0 ) || + ( i_type == SORT_REVERSE && i_test > 0 ) ) { i_small = i; } @@ -677,10 +677,14 @@ static void RunThread ( playlist_t *p_playlist ) } else if( p_playlist->p_input->stream.control.i_status != INIT_S ) { + vlc_mutex_unlock( &p_playlist->object_lock ); ObjectGarbageCollector( p_playlist, VLC_OBJECT_VOUT, - &b_vout_destroyed, &i_vout_destroyed_date ); + &b_vout_destroyed, + &i_vout_destroyed_date ); ObjectGarbageCollector( p_playlist, VLC_OBJECT_SOUT, - &b_sout_destroyed, &i_sout_destroyed_date ); + &b_sout_destroyed, + &i_sout_destroyed_date ); + vlc_mutex_lock( &p_playlist->object_lock ); } } else if( p_playlist->i_status != PLAYLIST_STOPPED ) @@ -690,10 +694,12 @@ static void RunThread ( playlist_t *p_playlist ) } else if( p_playlist->i_status == PLAYLIST_STOPPED ) { + vlc_mutex_unlock( &p_playlist->object_lock ); ObjectGarbageCollector( p_playlist, VLC_OBJECT_SOUT, &b_sout_destroyed, &i_sout_destroyed_date ); ObjectGarbageCollector( p_playlist, VLC_OBJECT_VOUT, &b_vout_destroyed, &i_vout_destroyed_date ); + vlc_mutex_lock( &p_playlist->object_lock ); } vlc_mutex_unlock( &p_playlist->object_lock ); -- GitLab