514 |
pass2.vbv_size = profiles[codec->config.profile].max_vbv_size; |
pass2.vbv_size = profiles[codec->config.profile].max_vbv_size; |
515 |
pass2.vbv_initial = (profiles[codec->config.profile].max_vbv_size*3)/4; /* 75% */ |
pass2.vbv_initial = (profiles[codec->config.profile].max_vbv_size*3)/4; /* 75% */ |
516 |
pass2.vbv_maxrate = profiles[codec->config.profile].max_bitrate; |
pass2.vbv_maxrate = profiles[codec->config.profile].max_bitrate; |
517 |
|
pass2.vbv_peakrate = profiles[codec->config.profile].vbv_peakrate; |
|
// 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; |
|
518 |
|
|
519 |
plugins[create.num_plugins].func = codec->xvid_plugin_2pass2_func; |
plugins[create.num_plugins].func = codec->xvid_plugin_2pass2_func; |
520 |
plugins[create.num_plugins].param = &pass2; |
plugins[create.num_plugins].param = &pass2; |
996 |
|
|
997 |
LRESULT decompress_begin(CODEC * codec, BITMAPINFO * lpbiInput, BITMAPINFO * lpbiOutput) |
LRESULT decompress_begin(CODEC * codec, BITMAPINFO * lpbiInput, BITMAPINFO * lpbiOutput) |
998 |
{ |
{ |
999 |
|
BITMAPINFOHEADER * inhdr = &lpbiInput->bmiHeader; |
1000 |
xvid_gbl_init_t init; |
xvid_gbl_init_t init; |
1001 |
xvid_dec_create_t create; |
xvid_dec_create_t create; |
1002 |
HKEY hKey; |
HKEY hKey; |
1013 |
create.version = XVID_VERSION; |
create.version = XVID_VERSION; |
1014 |
create.width = lpbiInput->bmiHeader.biWidth; |
create.width = lpbiInput->bmiHeader.biWidth; |
1015 |
create.height = lpbiInput->bmiHeader.biHeight; |
create.height = lpbiInput->bmiHeader.biHeight; |
1016 |
|
create.fourcc = inhdr->biCompression; |
1017 |
|
|
1018 |
switch(codec->xvid_decore_func(0, XVID_DEC_CREATE, &create, NULL)) |
switch(codec->xvid_decore_func(0, XVID_DEC_CREATE, &create, NULL)) |
1019 |
{ |
{ |