--- trunk/vfw/src/codec.c 2002/04/05 14:42:37 102 +++ trunk/vfw/src/codec.c 2002/04/06 06:21:29 105 @@ -332,6 +332,8 @@ } codec->ehandle = NULL; + + codec_2pass_finish(codec); } return ICERR_OK; @@ -375,7 +377,7 @@ frame.hint.rawhints = 0; frame.general |= XVID_HINTEDME_GET; } - else if (codec->config.mode == DLG_MODE_2PASS_2_EXT || codec->config.mode == DLG_MODE_2PASS_2_INT) + else if (codec->config.hinted_me && (codec->config.mode == DLG_MODE_2PASS_2_EXT || codec->config.mode == DLG_MODE_2PASS_2_INT)) { DWORD read; DWORD blocksize; @@ -479,7 +481,8 @@ frame.intra = 1; } else if ((codec->keyspacing < codec->config.min_key_interval && codec->framenum) && - (codec->config.mode == DLG_MODE_2PASS_1)) + (codec->config.mode == DLG_MODE_2PASS_1 || codec->config.mode == DLG_MODE_CBR || codec->config.mode == DLG_MODE_VBR_QUANT || + codec->config.mode == DLG_MODE_VBR_QUAL || codec->config.mode == DLG_MODE_NULL)) { DEBUG("current frame forced to p-frame"); frame.intra = 0;