502 |
pass2.kfthreshold = codec->config.kfthreshold; |
pass2.kfthreshold = codec->config.kfthreshold; |
503 |
pass2.container_frame_overhead = 24; /* AVI */ |
pass2.container_frame_overhead = 24; /* AVI */ |
504 |
|
|
505 |
|
/* VBV */ |
506 |
|
pass2.vbv_size = profiles[codec->config.profile].max_vbv_size; |
507 |
|
pass2.vbv_initial = (profiles[codec->config.profile].max_vbv_size*3)/4; |
508 |
|
pass2.vbv_maxrate = 1000*profiles[codec->config.profile].max_bitrate; |
509 |
|
pass2.vbv_peakrate = 10000000; /* 10mbps -- fixme */ |
510 |
|
|
511 |
plugins[create.num_plugins].func = codec->xvid_plugin_2pass2_func; |
plugins[create.num_plugins].func = codec->xvid_plugin_2pass2_func; |
512 |
plugins[create.num_plugins].param = &pass2; |
plugins[create.num_plugins].param = &pass2; |
513 |
create.num_plugins++; |
create.num_plugins++; |
643 |
frame->vop_flags |= XVID_VOP_CHROMAOPT; |
frame->vop_flags |= XVID_VOP_CHROMAOPT; |
644 |
} |
} |
645 |
|
|
646 |
|
if (config->zones[i].cartoon_mode) { |
647 |
|
frame->vop_flags |= XVID_VOP_CARTOON; |
648 |
|
frame->motion |= XVID_ME_DETECT_STATIC_MOTION; |
649 |
|
} |
650 |
|
|
651 |
if ((profiles[config->profile].flags & PROFILE_BVOP) && config->use_bvop) { |
if ((profiles[config->profile].flags & PROFILE_BVOP) && config->use_bvop) { |
652 |
frame->bframe_threshold = config->zones[i].bvop_threshold; |
frame->bframe_threshold = config->zones[i].bvop_threshold; |
653 |
} |
} |
741 |
if (codec->config.chromame) |
if (codec->config.chromame) |
742 |
frame.motion |= XVID_ME_CHROMA_PVOP + XVID_ME_CHROMA_BVOP; |
frame.motion |= XVID_ME_CHROMA_PVOP + XVID_ME_CHROMA_BVOP; |
743 |
|
|
|
if (codec->config.cartoon_mode) { |
|
|
frame.vop_flags |= XVID_VOP_CARTOON; |
|
|
frame.motion |= XVID_ME_DETECT_STATIC_MOTION; |
|
|
} |
|
|
|
|
744 |
if (codec->config.turbo) |
if (codec->config.turbo) |
745 |
frame.motion |= XVID_ME_FASTREFINE16 | XVID_ME_FASTREFINE8 | |
frame.motion |= XVID_ME_FASTREFINE16 | XVID_ME_FASTREFINE8 | |
746 |
XVID_ME_SKIP_DELTASEARCH | XVID_ME_FAST_MODEINTERPOLATE | |
XVID_ME_SKIP_DELTASEARCH | XVID_ME_FAST_MODEINTERPOLATE | |
1085 |
frame.output.plane[0] = icd->lpOutput; |
frame.output.plane[0] = icd->lpOutput; |
1086 |
frame.output.stride[0] = CALC_BI_STRIDE(icd->lpbiOutput->biWidth, icd->lpbiOutput->biBitCount); |
frame.output.stride[0] = CALC_BI_STRIDE(icd->lpbiOutput->biWidth, icd->lpbiOutput->biBitCount); |
1087 |
if (frame.output.csp == XVID_CSP_I420 || frame.output.csp == XVID_CSP_YV12) |
if (frame.output.csp == XVID_CSP_I420 || frame.output.csp == XVID_CSP_YV12) |
1088 |
frame.output.stride[0] = (frame.output.stride[0]*2)/3; |
frame.output.stride[0] = CALC_BI_STRIDE(icd->lpbiOutput->biWidth, 8); |
1089 |
} |
} |
1090 |
else |
else |
1091 |
{ |
{ |