Mercurial > mplayer.hg
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; |