--- trunk/xvidcore/vfw/src/codec.c 2010/05/10 13:50:46 1887 +++ trunk/xvidcore/vfw/src/codec.c 2010/11/16 14:42:07 1906 @@ -514,10 +514,7 @@ pass2.vbv_size = profiles[codec->config.profile].max_vbv_size; pass2.vbv_initial = (profiles[codec->config.profile].max_vbv_size*3)/4; /* 75% */ pass2.vbv_maxrate = profiles[codec->config.profile].max_bitrate; - - // XXX: xvidcore current provides a "peak bits over 3secs" constraint. - // according to the latest dxn literature, a 1sec constraint is now used - pass2.vbv_peakrate = profiles[codec->config.profile].vbv_peakrate * 3; + pass2.vbv_peakrate = profiles[codec->config.profile].vbv_peakrate; plugins[create.num_plugins].func = codec->xvid_plugin_2pass2_func; plugins[create.num_plugins].param = &pass2; @@ -999,6 +996,7 @@ LRESULT decompress_begin(CODEC * codec, BITMAPINFO * lpbiInput, BITMAPINFO * lpbiOutput) { + BITMAPINFOHEADER * inhdr = &lpbiInput->bmiHeader; xvid_gbl_init_t init; xvid_dec_create_t create; HKEY hKey; @@ -1008,13 +1006,14 @@ memset(&init, 0, sizeof(init)); init.version = XVID_VERSION; init.cpu_flags = codec->config.cpu; - init.debug = codec->config.debug; + init.debug = codec->config.debug; codec->xvid_global_func(0, XVID_GBL_INIT, &init, NULL); memset(&create, 0, sizeof(create)); create.version = XVID_VERSION; create.width = lpbiInput->bmiHeader.biWidth; create.height = lpbiInput->bmiHeader.biHeight; + create.fourcc = inhdr->biCompression; switch(codec->xvid_decore_func(0, XVID_DEC_CREATE, &create, NULL)) {