comparison libmpcodecs/ve_x264.c @ 15352:d8ee4d45ec8d

expose x264 options 'me' and 'me_range'. patch by Guillaume Poirier.
author lorenm
date Thu, 05 May 2005 17:10:16 +0000
parents 8319e8b0c437
children 561f617e8944
comparison
equal deleted inserted replaced
15351:bf95700fe8c8 15352:d8ee4d45ec8d
91 static float qcomp = 0.6; 91 static float qcomp = 0.6;
92 static float qblur = 0.5; 92 static float qblur = 0.5;
93 static float complexity_blur = 20; 93 static float complexity_blur = 20;
94 static char *rc_eq = "blurCplx^(1-qComp)"; 94 static char *rc_eq = "blurCplx^(1-qComp)";
95 static int subq = 5; 95 static int subq = 5;
96 static int me_method = 2;
97 static int me_range = 16;
96 static int level_idc = 40; 98 static int level_idc = 40;
97 static int psnr = 0; 99 static int psnr = 0;
98 static int log_level = 2; 100 static int log_level = 2;
99 101
100 m_option_t x264encopts_conf[] = { 102 m_option_t x264encopts_conf[] = {
140 {"rc_eq", &rc_eq, CONF_TYPE_STRING, 0, 0, 0, NULL}, 142 {"rc_eq", &rc_eq, CONF_TYPE_STRING, 0, 0, 0, NULL},
141 {"qcomp", &qcomp, CONF_TYPE_FLOAT, CONF_RANGE, 0, 1, NULL}, 143 {"qcomp", &qcomp, CONF_TYPE_FLOAT, CONF_RANGE, 0, 1, NULL},
142 {"qblur", &qblur, CONF_TYPE_FLOAT, CONF_RANGE, 0, 99, NULL}, 144 {"qblur", &qblur, CONF_TYPE_FLOAT, CONF_RANGE, 0, 99, NULL},
143 {"cplx_blur", &complexity_blur, CONF_TYPE_FLOAT, CONF_RANGE, 0, 999, NULL}, 145 {"cplx_blur", &complexity_blur, CONF_TYPE_FLOAT, CONF_RANGE, 0, 999, NULL},
144 {"subq", &subq, CONF_TYPE_INT, CONF_RANGE, 1, 5, NULL}, 146 {"subq", &subq, CONF_TYPE_INT, CONF_RANGE, 1, 5, NULL},
147 {"me", &me_method, CONF_TYPE_INT, CONF_RANGE, 1, 3, NULL},
148 {"me_range", &me_range, CONF_TYPE_INT, CONF_RANGE, 4, 64, NULL},
145 {"level_idc", &level_idc, CONF_TYPE_INT, CONF_RANGE, 10, 51, NULL}, 149 {"level_idc", &level_idc, CONF_TYPE_INT, CONF_RANGE, 10, 51, NULL},
146 {"psnr", &psnr, CONF_TYPE_FLAG, 0, 0, 1, NULL}, 150 {"psnr", &psnr, CONF_TYPE_FLAG, 0, 0, 1, NULL},
147 {"nopsnr", &psnr, CONF_TYPE_FLAG, 0, 1, 0, NULL}, 151 {"nopsnr", &psnr, CONF_TYPE_FLAG, 0, 1, 0, NULL},
148 {"log", &log_level, CONF_TYPE_INT, CONF_RANGE, -1, 3, NULL}, 152 {"log", &log_level, CONF_TYPE_INT, CONF_RANGE, -1, 3, NULL},
149 {NULL, NULL, 0, 0, 0, 0, NULL} 153 {NULL, NULL, 0, 0, 0, 0, NULL}
223 mod->param.rc.i_rc_init_buffer = rc_buffer_size * rc_init_buffer; 227 mod->param.rc.i_rc_init_buffer = rc_buffer_size * rc_init_buffer;
224 mod->param.rc.i_rc_sens = rc_sens; 228 mod->param.rc.i_rc_sens = rc_sens;
225 } 229 }
226 mod->param.rc.f_ip_factor = ip_factor; 230 mod->param.rc.f_ip_factor = ip_factor;
227 mod->param.rc.f_pb_factor = pb_factor; 231 mod->param.rc.f_pb_factor = pb_factor;
232 switch(me_method) {
233 case 1: mod->param.analyse.i_me_method = X264_ME_DIA; break;
234 case 2: mod->param.analyse.i_me_method = X264_ME_HEX; break;
235 case 3: mod->param.analyse.i_me_method = X264_ME_ESA;
236 mod->param.analyse.i_me_range = me_range; break;
237 }
228 mod->param.analyse.inter = X264_ANALYSE_I4x4; 238 mod->param.analyse.inter = X264_ANALYSE_I4x4;
229 if(p4x4mv) 239 if(p4x4mv)
230 mod->param.analyse.inter |= X264_ANALYSE_PSUB8x8; 240 mod->param.analyse.inter |= X264_ANALYSE_PSUB8x8;
231 if(p8x8mv) 241 if(p8x8mv)
232 mod->param.analyse.inter |= X264_ANALYSE_PSUB16x16; 242 mod->param.analyse.inter |= X264_ANALYSE_PSUB16x16;