--- trunk/vfw/src/codec.c 2002/04/05 14:42:37 102 +++ trunk/vfw/src/codec.c 2002/04/08 12:51:41 109 @@ -254,6 +254,7 @@ case DLG_MODE_2PASS_2_INT : case DLG_MODE_2PASS_2_EXT : param.bitrate = 0; + codec->twopass.max_framesize = (int)((double)codec->config.twopass_max_bitrate / 8.0 / ((double)codec->fbase / (double)codec->fincr)); break; case DLG_MODE_NULL : @@ -332,6 +333,8 @@ } codec->ehandle = NULL; + + codec_2pass_finish(codec); } return ICERR_OK; @@ -375,7 +378,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; @@ -478,8 +481,7 @@ { frame.intra = 1; } - else if ((codec->keyspacing < codec->config.min_key_interval && codec->framenum) && - (codec->config.mode == DLG_MODE_2PASS_1)) + else if (codec->keyspacing < codec->config.min_key_interval && codec->framenum) { DEBUG("current frame forced to p-frame"); frame.intra = 0;