[Mlt-devel] SF.net SVN: mlt:[1208] trunk/mlt/src/modules/avformat/producer_avformat.c
Brought to you by:
ddennedy,
lilo_booter
From: <j-...@us...> - 2008-10-27 23:58:48
|
Revision: 1208 http://mlt.svn.sourceforge.net/mlt/?rev=1208&view=rev Author: j-b-m Date: 2008-10-27 23:58:39 +0000 (Mon, 27 Oct 2008) Log Message: ----------- producer_avformat.c: Fix crash / corruption when changing audio or video index Modified Paths: -------------- trunk/mlt/src/modules/avformat/producer_avformat.c Modified: trunk/mlt/src/modules/avformat/producer_avformat.c =================================================================== --- trunk/mlt/src/modules/avformat/producer_avformat.c 2008-10-27 05:28:01 UTC (rev 1207) +++ trunk/mlt/src/modules/avformat/producer_avformat.c 2008-10-27 23:58:39 UTC (rev 1208) @@ -719,6 +719,7 @@ // Fetch the width, height and aspect ratio AVCodecContext *codec_context = context->streams[ index ]->codec; mlt_properties_set_int( properties, "_video_index", index ); + mlt_properties_set_data( properties, "video_codec", NULL, 0, NULL, NULL ); mlt_properties_set_int( properties, "width", codec_context->width ); mlt_properties_set_int( properties, "height", codec_context->height ); mlt_properties_set_double( properties, "aspect_ratio", av_q2d( codec_context->sample_aspect_ratio ) ); @@ -1098,6 +1099,12 @@ mlt_properties_set_int( properties, "audio_index", index ); } + // Update the audio properties if the index changed + if ( index > -1 && index != mlt_properties_get_int( properties, "_audio_index" ) ) { + mlt_properties_set_int( properties, "_audio_index", index ); + mlt_properties_set_data( properties, "audio_codec", NULL, 0, NULL, NULL ); + } + // Deal with audio context if ( context != NULL && index > -1 ) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |