421 |
xvid_plugin_single_t single; |
xvid_plugin_single_t single; |
422 |
xvid_plugin_2pass1_t pass1; |
xvid_plugin_2pass1_t pass1; |
423 |
xvid_plugin_2pass2_t pass2; |
xvid_plugin_2pass2_t pass2; |
424 |
|
xvid_gbl_info_t info; |
425 |
int i; |
int i; |
426 |
HANDLE hFile; |
HANDLE hFile; |
427 |
const quality_t* quality_preset = (codec->config.quality==quality_table_num) ? |
const quality_t* quality_preset = (codec->config.quality==quality_table_num) ? |
443 |
init.debug = codec->config.debug; |
init.debug = codec->config.debug; |
444 |
codec->xvid_global_func(0, XVID_GBL_INIT, &init, NULL); |
codec->xvid_global_func(0, XVID_GBL_INIT, &init, NULL); |
445 |
|
|
446 |
|
memset(&info, 0, sizeof(info)); |
447 |
|
info.version = XVID_VERSION; |
448 |
|
codec->xvid_global_func(0, XVID_GBL_INFO, &info, NULL); |
449 |
|
|
450 |
memset(&create, 0, sizeof(create)); |
memset(&create, 0, sizeof(create)); |
451 |
create.version = XVID_VERSION; |
create.version = XVID_VERSION; |
452 |
|
|
602 |
|
|
603 |
create.frame_drop_ratio = quality_preset->frame_drop_ratio; |
create.frame_drop_ratio = quality_preset->frame_drop_ratio; |
604 |
|
|
605 |
|
/* Encoder threads */ |
606 |
|
if (codec->config.num_threads == 0) |
607 |
|
create.num_threads = info.num_threads; /* Autodetect */ |
608 |
|
else if (codec->config.num_threads == 1) |
609 |
|
create.num_threads = -1; /* Single-threaded, disable SMP */ |
610 |
|
else |
611 |
create.num_threads = codec->config.num_threads; |
create.num_threads = codec->config.num_threads; |
612 |
|
|
613 |
|
|
614 |
switch(codec->xvid_encore_func(0, XVID_ENC_CREATE, &create, NULL)) |
switch(codec->xvid_encore_func(0, XVID_ENC_CREATE, &create, NULL)) |
615 |
{ |
{ |
616 |
case XVID_ERR_FAIL : |
case XVID_ERR_FAIL : |