# HG changeset patch # User michael # Date 1095549609 0 # Node ID e488b3c628db09ca73b76b2218fd5310b17e0e62 # Parent 8b2c2eb9a8917a2aca88a650d6b19d3c37e62f55 support generating divx2pass.log on 2nd pass patch by (Loren Merritt ) diff -r 8b2c2eb9a891 -r e488b3c628db libmpcodecs/ve_lavc.c --- a/libmpcodecs/ve_lavc.c Sat Sep 18 21:46:41 2004 +0000 +++ b/libmpcodecs/ve_lavc.c Sat Sep 18 23:20:09 2004 +0000 @@ -185,7 +185,7 @@ {"vqblur", &lavc_param_vqblur, CONF_TYPE_FLOAT, CONF_RANGE, 0.0, 1.0, NULL}, {"vb_qfactor", &lavc_param_vb_qfactor, CONF_TYPE_FLOAT, CONF_RANGE, -31.0, 31.0, NULL}, {"vmax_b_frames", &lavc_param_vmax_b_frames, CONF_TYPE_INT, CONF_RANGE, 0, FF_MAX_B_FRAMES, NULL}, - {"vpass", &lavc_param_vpass, CONF_TYPE_INT, CONF_RANGE, 0, 2, NULL}, + {"vpass", &lavc_param_vpass, CONF_TYPE_INT, CONF_RANGE, 0, 3, NULL}, {"vrc_strategy", &lavc_param_vrc_strategy, CONF_TYPE_INT, CONF_RANGE, 0, 2, NULL}, {"vb_strategy", &lavc_param_vb_strategy, CONF_TYPE_INT, CONF_RANGE, 0, 10, NULL}, {"vb_qoffset", &lavc_param_vb_qoffset, CONF_TYPE_FLOAT, CONF_RANGE, 0.0, 31.0, NULL}, @@ -635,15 +635,8 @@ if(!stats_file) { /* lavc internal 2pass bitrate control */ switch(lavc_param_vpass){ - case 1: - lavc_venc_context->flags|= CODEC_FLAG_PASS1; - stats_file= fopen(passtmpfile, "wb"); - if(stats_file==NULL){ - mp_msg(MSGT_MENCODER,MSGL_ERR,"2pass failed: filename=%s\n", passtmpfile); - return 0; - } - break; case 2: + case 3: lavc_venc_context->flags|= CODEC_FLAG_PASS2; stats_file= fopen(passtmpfile, "rb"); if(stats_file==NULL){ @@ -661,6 +654,18 @@ mp_msg(MSGT_MENCODER,MSGL_ERR,"2pass failed: reading from filename=%s\n", passtmpfile); return 0; } + if(lavc_param_vpass == 2) + break; + else + fclose(stats_file); + /* fall through */ + case 1: + lavc_venc_context->flags|= CODEC_FLAG_PASS1; + stats_file= fopen(passtmpfile, "wb"); + if(stats_file==NULL){ + mp_msg(MSGT_MENCODER,MSGL_ERR,"2pass failed: filename=%s\n", passtmpfile); + return 0; + } break; } }