comparison libmpcodecs/ve_lavc.c @ 26693:64bb979316d3

AVOption support for video encoders.
author michael
date Sat, 10 May 2008 19:07:26 +0000
parents 71bd93e71a97
children 63630c09e237
comparison
equal deleted inserted replaced
26692:0e325c1957f1 26693:64bb979316d3
12 12
13 #include "config.h" 13 #include "config.h"
14 14
15 #include "mp_msg.h" 15 #include "mp_msg.h"
16 #include "help_mp.h" 16 #include "help_mp.h"
17 #include "av_opts.h"
17 18
18 #include "codec-cfg.h" 19 #include "codec-cfg.h"
19 #include "stream/stream.h" 20 #include "stream/stream.h"
20 #include "libmpdemux/demuxer.h" 21 #include "libmpdemux/demuxer.h"
21 #include "libmpdemux/stheader.h" 22 #include "libmpdemux/stheader.h"
155 156
156 char *lavc_param_acodec = "mp2"; 157 char *lavc_param_acodec = "mp2";
157 int lavc_param_atag = 0; 158 int lavc_param_atag = 0;
158 int lavc_param_abitrate = 224; 159 int lavc_param_abitrate = 224;
159 int lavc_param_audio_global_header= 0; 160 int lavc_param_audio_global_header= 0;
161 static char *lavc_param_avopt = NULL;
160 162
161 #include "m_option.h" 163 #include "m_option.h"
162 164
163 #ifdef USE_LIBAVCODEC 165 #ifdef USE_LIBAVCODEC
164 m_option_t lavcopts_conf[]={ 166 m_option_t lavcopts_conf[]={
300 {"aglobal", &lavc_param_audio_global_header, CONF_TYPE_INT, CONF_RANGE, 0, INT_MAX, NULL}, 302 {"aglobal", &lavc_param_audio_global_header, CONF_TYPE_INT, CONF_RANGE, 0, INT_MAX, NULL},
301 {"mv0_threshold", &lavc_param_mv0_threshold, CONF_TYPE_INT, CONF_RANGE, 0, INT_MAX, NULL}, 303 {"mv0_threshold", &lavc_param_mv0_threshold, CONF_TYPE_INT, CONF_RANGE, 0, INT_MAX, NULL},
302 {"refs", &lavc_param_refs, CONF_TYPE_INT, CONF_RANGE, 1, 16, NULL}, 304 {"refs", &lavc_param_refs, CONF_TYPE_INT, CONF_RANGE, 1, 16, NULL},
303 {"b_sensitivity", &lavc_param_b_sensitivity, CONF_TYPE_INT, CONF_RANGE, 1, INT_MAX, NULL}, 305 {"b_sensitivity", &lavc_param_b_sensitivity, CONF_TYPE_INT, CONF_RANGE, 1, INT_MAX, NULL},
304 {"level", &lavc_param_level, CONF_TYPE_INT, CONF_RANGE, INT_MIN, INT_MAX, NULL}, 306 {"level", &lavc_param_level, CONF_TYPE_INT, CONF_RANGE, INT_MIN, INT_MAX, NULL},
307 {"o", &lavc_param_avopt, CONF_TYPE_STRING, 0, 0, 0, NULL},
305 {NULL, NULL, 0, 0, 0, 0, NULL} 308 {NULL, NULL, 0, 0, 0, 0, NULL}
306 }; 309 };
307 #endif 310 #endif
308 311
309 struct vf_priv_s { 312 struct vf_priv_s {
575 } 578 }
576 lavc_venc_context->mv0_threshold = lavc_param_mv0_threshold; 579 lavc_venc_context->mv0_threshold = lavc_param_mv0_threshold;
577 lavc_venc_context->refs = lavc_param_refs; 580 lavc_venc_context->refs = lavc_param_refs;
578 lavc_venc_context->b_sensitivity = lavc_param_b_sensitivity; 581 lavc_venc_context->b_sensitivity = lavc_param_b_sensitivity;
579 lavc_venc_context->level = lavc_param_level; 582 lavc_venc_context->level = lavc_param_level;
583
584 if(lavc_param_avopt){
585 if(parse_avopts(lavc_venc_context, lavc_param_avopt) < 0){
586 mp_msg(MSGT_MENCODER,MSGL_ERR, "Your options /%s/ look like gibberish to me pal\n", lavc_param_avopt);
587 return 0;
588 }
589 }
580 590
581 mux_v->imgfmt = lavc_param_format; 591 mux_v->imgfmt = lavc_param_format;
582 switch(lavc_param_format) 592 switch(lavc_param_format)
583 { 593 {
584 case IMGFMT_YV12: 594 case IMGFMT_YV12: