From 8fed66dc54b72d56b6eda6cc266d16eb33979020 Mon Sep 17 00:00:00 2001 From: ddennedy Date: Tue, 2 Dec 2008 07:59:03 +0000 Subject: [PATCH] consumer_avformat.c: clean up the dual pass log at the end of the second pass. git-svn-id: https://mlt.svn.sourceforge.net/svnroot/mlt/trunk/mlt@1245 d19143bc-622f-0410-bfdd-b5b2a6649095 --- src/modules/avformat/consumer_avformat.c | 26 +++++++++++++++++++++++++- 1 files changed, 25 insertions(+), 1 deletions(-) diff --git a/src/modules/avformat/consumer_avformat.c b/src/modules/avformat/consumer_avformat.c index ba433bf..3dd40dc 100644 --- a/src/modules/avformat/consumer_avformat.c +++ b/src/modules/avformat/consumer_avformat.c @@ -31,6 +31,7 @@ #include #include #include +#include // avformat header files #include @@ -625,7 +626,7 @@ static AVStream *add_video_stream( mlt_consumer this, AVFormatContext *oc, int c c->flags |= CODEC_FLAG_PASS1; else if ( i == 2 ) c->flags |= CODEC_FLAG_PASS2; - if ( c->flags & ( CODEC_FLAG_PASS1 | CODEC_FLAG_PASS2 ) ) + if ( codec_id != CODEC_ID_H264 && ( c->flags & ( CODEC_FLAG_PASS1 | CODEC_FLAG_PASS2 ) ) ) { char logfilename[1024]; FILE *f; @@ -652,6 +653,7 @@ static AVStream *add_video_stream( mlt_consumer this, AVFormatContext *oc, int c } else { + mlt_properties_set( properties, "_logfilename", logfilename ); fseek( f, 0, SEEK_END ); size = ftell( f ); fseek( f, 0, SEEK_SET ); @@ -1310,6 +1312,28 @@ static void *consumer_thread( void *arg ) mlt_consumer_stopped( this ); + if ( mlt_properties_get_int( properties, "pass" ) == 2 ) + { + // Remove the dual pass log file + if ( mlt_properties_get( properties, "_logfilename" ) ) + remove( mlt_properties_get( properties, "_logfilename" ) ); + + // Remove the x264 dual pass logs + char *cwd = getcwd( NULL, 0 ); + char *file = "x264_2pass.log"; + char *full = malloc( strlen( cwd ) + strlen( file ) + 2 ); + sprintf( full, "%s/%s", cwd, file ); + remove( full ); + free( full ); + file = "x264_2pass.log.temp"; + full = malloc( strlen( cwd ) + strlen( file ) + 2 ); + sprintf( full, "%s/%s", cwd, file ); + remove( full ); + free( full ); + free( cwd ); + remove( "x264_2pass.log.temp" ); + } + return NULL; } -- 1.7.4.4