Commit 2bd94a6c authored by Laurent Aimar's avatar Laurent Aimar

* playlist.c : unlock playlist before calling vout_Destroy (for osx)

 * mp4: send complete atom for amr to the decoder.
parent 904ba46e
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* mp4.c : MP4 file input module for vlc * mp4.c : MP4 file input module for vlc
***************************************************************************** *****************************************************************************
* Copyright (C) 2001 VideoLAN * 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> * Authors: Laurent Aimar <fenrir@via.ecp.fr>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
...@@ -1047,14 +1047,19 @@ static int TrackCreateES ( input_thread_t *p_input, ...@@ -1047,14 +1047,19 @@ static int TrackCreateES ( input_thread_t *p_input,
case VLC_FOURCC( 'V', 'P', '3', '1' ): case VLC_FOURCC( 'V', 'P', '3', '1' ):
case VLC_FOURCC( '3', 'I', 'V', '1' ): case VLC_FOURCC( '3', 'I', 'V', '1' ):
case VLC_FOURCC( 'Z', 'y', 'G', 'o' ): case VLC_FOURCC( 'Z', 'y', 'G', 'o' ):
i_decoder_specific_info_len = p_sample->data.p_sample_vide->i_qt_image_description; i_decoder_specific_info_len =
p_decoder_specific_info = p_sample->data.p_sample_vide->p_qt_image_description; 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; break;
case VLC_FOURCC( 'Q', 'D', 'M', 'C' ): case VLC_FOURCC( 'Q', 'D', 'M', 'C' ):
case VLC_FOURCC( 'Q', 'D', 'M', '2' ): case VLC_FOURCC( 'Q', 'D', 'M', '2' ):
case VLC_FOURCC( 'Q', 'c', 'l', 'p' ): case VLC_FOURCC( 'Q', 'c', 'l', 'p' ):
i_decoder_specific_info_len = p_sample->data.p_sample_soun->i_qt_description; case VLC_FOURCC( 's', 'a', 'm', 'r' ):
p_decoder_specific_info = p_sample->data.p_sample_soun->p_qt_description; 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; break;
default: default:
break; break;
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* playlist.c : Playlist management functions * playlist.c : Playlist management functions
***************************************************************************** *****************************************************************************
* Copyright (C) 1999-2001 VideoLAN * 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> * Authors: Samuel Hocevar <sam@zoy.org>
* *
...@@ -386,8 +386,8 @@ int playlist_Sort( playlist_t * p_playlist , int i_type ) ...@@ -386,8 +386,8 @@ int playlist_Sort( playlist_t * p_playlist , int i_type )
i_test = strcasecmp( p_playlist->pp_items[i]->psz_name, i_test = strcasecmp( p_playlist->pp_items[i]->psz_name,
p_playlist->pp_items[i_small]->psz_name ); p_playlist->pp_items[i_small]->psz_name );
if( i_type == SORT_NORMAL && i_test < 0 || if( ( i_type == SORT_NORMAL && i_test < 0 ) ||
i_type == SORT_REVERSE && i_test > 0 ) ( i_type == SORT_REVERSE && i_test > 0 ) )
{ {
i_small = i; i_small = i;
} }
...@@ -677,10 +677,14 @@ static void RunThread ( playlist_t *p_playlist ) ...@@ -677,10 +677,14 @@ static void RunThread ( playlist_t *p_playlist )
} }
else if( p_playlist->p_input->stream.control.i_status != INIT_S ) 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, 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, 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 ) else if( p_playlist->i_status != PLAYLIST_STOPPED )
...@@ -690,10 +694,12 @@ static void RunThread ( playlist_t *p_playlist ) ...@@ -690,10 +694,12 @@ static void RunThread ( playlist_t *p_playlist )
} }
else if( p_playlist->i_status == PLAYLIST_STOPPED ) else if( p_playlist->i_status == PLAYLIST_STOPPED )
{ {
vlc_mutex_unlock( &p_playlist->object_lock );
ObjectGarbageCollector( p_playlist, VLC_OBJECT_SOUT, ObjectGarbageCollector( p_playlist, VLC_OBJECT_SOUT,
&b_sout_destroyed, &i_sout_destroyed_date ); &b_sout_destroyed, &i_sout_destroyed_date );
ObjectGarbageCollector( p_playlist, VLC_OBJECT_VOUT, ObjectGarbageCollector( p_playlist, VLC_OBJECT_VOUT,
&b_vout_destroyed, &i_vout_destroyed_date ); &b_vout_destroyed, &i_vout_destroyed_date );
vlc_mutex_lock( &p_playlist->object_lock );
} }
vlc_mutex_unlock( &p_playlist->object_lock ); vlc_mutex_unlock( &p_playlist->object_lock );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment