comparison libmpcodecs/ve_lavc.c @ 18569:d8605d22bf62

document the recent changes in Snow. new lavcopts: 'refs', 'vqscale=0'
author lorenm
date Mon, 05 Jun 2006 05:34:26 +0000
parents adfadb4a26b5
children c1d5652c1654
comparison
equal deleted inserted replaced
18568:80628a6d0980 18569:d8605d22bf62
56 static int lavc_param_vbitrate = -1; 56 static int lavc_param_vbitrate = -1;
57 static int lavc_param_vrate_tolerance = 1000*8; 57 static int lavc_param_vrate_tolerance = 1000*8;
58 static int lavc_param_mb_decision = 0; /* default is realtime encoding */ 58 static int lavc_param_mb_decision = 0; /* default is realtime encoding */
59 static int lavc_param_v4mv = 0; 59 static int lavc_param_v4mv = 0;
60 static int lavc_param_vme = 4; 60 static int lavc_param_vme = 4;
61 static float lavc_param_vqscale = 0.0; 61 static float lavc_param_vqscale = -1;
62 static int lavc_param_vqmin = 2; 62 static int lavc_param_vqmin = 2;
63 static int lavc_param_vqmax = 31; 63 static int lavc_param_vqmax = 31;
64 static int lavc_param_mb_qmin = 2; 64 static int lavc_param_mb_qmin = 2;
65 static int lavc_param_mb_qmax = 31; 65 static int lavc_param_mb_qmax = 31;
66 static float lavc_param_lmin = 2; 66 static float lavc_param_lmin = 2;
159 static int lavc_param_brd_scale = 0; 159 static int lavc_param_brd_scale = 0;
160 static int lavc_param_bidir_refine = 0; 160 static int lavc_param_bidir_refine = 0;
161 static int lavc_param_sc_factor = 1; 161 static int lavc_param_sc_factor = 1;
162 static int lavc_param_video_global_header= 0; 162 static int lavc_param_video_global_header= 0;
163 static int lavc_param_mv0_threshold = 256; 163 static int lavc_param_mv0_threshold = 256;
164 static int lavc_param_refs = 1;
164 165
165 char *lavc_param_acodec = "mp2"; 166 char *lavc_param_acodec = "mp2";
166 int lavc_param_atag = 0; 167 int lavc_param_atag = 0;
167 int lavc_param_abitrate = 224; 168 int lavc_param_abitrate = 224;
168 int lavc_param_audio_global_header= 0; 169 int lavc_param_audio_global_header= 0;
179 {"vratetol", &lavc_param_vrate_tolerance, CONF_TYPE_INT, CONF_RANGE, 4, 24000000, NULL}, 180 {"vratetol", &lavc_param_vrate_tolerance, CONF_TYPE_INT, CONF_RANGE, 4, 24000000, NULL},
180 {"vhq", &lavc_param_mb_decision, CONF_TYPE_FLAG, 0, 0, 1, NULL}, 181 {"vhq", &lavc_param_mb_decision, CONF_TYPE_FLAG, 0, 0, 1, NULL},
181 {"mbd", &lavc_param_mb_decision, CONF_TYPE_INT, CONF_RANGE, 0, 9, NULL}, 182 {"mbd", &lavc_param_mb_decision, CONF_TYPE_INT, CONF_RANGE, 0, 9, NULL},
182 {"v4mv", &lavc_param_v4mv, CONF_TYPE_FLAG, 0, 0, 1, NULL}, 183 {"v4mv", &lavc_param_v4mv, CONF_TYPE_FLAG, 0, 0, 1, NULL},
183 {"vme", &lavc_param_vme, CONF_TYPE_INT, CONF_RANGE, 0, 8, NULL}, 184 {"vme", &lavc_param_vme, CONF_TYPE_INT, CONF_RANGE, 0, 8, NULL},
184 {"vqscale", &lavc_param_vqscale, CONF_TYPE_FLOAT, CONF_RANGE, 0.01, 255.0, NULL}, 185 {"vqscale", &lavc_param_vqscale, CONF_TYPE_FLOAT, CONF_RANGE, 0.0, 255.0, NULL},
185 {"vqmin", &lavc_param_vqmin, CONF_TYPE_INT, CONF_RANGE, 1, 31, NULL}, 186 {"vqmin", &lavc_param_vqmin, CONF_TYPE_INT, CONF_RANGE, 1, 31, NULL},
186 {"vqmax", &lavc_param_vqmax, CONF_TYPE_INT, CONF_RANGE, 1, 31, NULL}, 187 {"vqmax", &lavc_param_vqmax, CONF_TYPE_INT, CONF_RANGE, 1, 31, NULL},
187 {"mbqmin", &lavc_param_mb_qmin, CONF_TYPE_INT, CONF_RANGE, 1, 31, NULL}, 188 {"mbqmin", &lavc_param_mb_qmin, CONF_TYPE_INT, CONF_RANGE, 1, 31, NULL},
188 {"mbqmax", &lavc_param_mb_qmax, CONF_TYPE_INT, CONF_RANGE, 1, 31, NULL}, 189 {"mbqmax", &lavc_param_mb_qmax, CONF_TYPE_INT, CONF_RANGE, 1, 31, NULL},
189 {"lmin", &lavc_param_lmin, CONF_TYPE_FLOAT, CONF_RANGE, 0.01, 255.0, NULL}, 190 {"lmin", &lavc_param_lmin, CONF_TYPE_FLOAT, CONF_RANGE, 0.01, 255.0, NULL},
319 {"bidir_refine", &lavc_param_bidir_refine, CONF_TYPE_INT, CONF_RANGE, 0, 4, NULL}, 320 {"bidir_refine", &lavc_param_bidir_refine, CONF_TYPE_INT, CONF_RANGE, 0, 4, NULL},
320 {"sc_factor", &lavc_param_sc_factor, CONF_TYPE_INT, CONF_RANGE, 1, INT_MAX, NULL}, 321 {"sc_factor", &lavc_param_sc_factor, CONF_TYPE_INT, CONF_RANGE, 1, INT_MAX, NULL},
321 {"vglobal", &lavc_param_video_global_header, CONF_TYPE_INT, CONF_RANGE, 0, INT_MAX, NULL}, 322 {"vglobal", &lavc_param_video_global_header, CONF_TYPE_INT, CONF_RANGE, 0, INT_MAX, NULL},
322 {"aglobal", &lavc_param_audio_global_header, CONF_TYPE_INT, CONF_RANGE, 0, INT_MAX, NULL}, 323 {"aglobal", &lavc_param_audio_global_header, CONF_TYPE_INT, CONF_RANGE, 0, INT_MAX, NULL},
323 {"mv0_threshold", &lavc_param_mv0_threshold, CONF_TYPE_INT, CONF_RANGE, 0, INT_MAX, NULL}, 324 {"mv0_threshold", &lavc_param_mv0_threshold, CONF_TYPE_INT, CONF_RANGE, 0, INT_MAX, NULL},
325 {"refs", &lavc_param_refs, CONF_TYPE_INT, CONF_RANGE, 1, 16, NULL},
324 {NULL, NULL, 0, 0, 0, 0, NULL} 326 {NULL, NULL, 0, 0, 0, 0, NULL}
325 }; 327 };
326 #endif 328 #endif
327 329
328 struct vf_priv_s { 330 struct vf_priv_s {
650 } 652 }
651 if(lavc_param_video_global_header&2){ 653 if(lavc_param_video_global_header&2){
652 lavc_venc_context->flags2 |= CODEC_FLAG2_LOCAL_HEADER; 654 lavc_venc_context->flags2 |= CODEC_FLAG2_LOCAL_HEADER;
653 } 655 }
654 lavc_venc_context->mv0_threshold = lavc_param_mv0_threshold; 656 lavc_venc_context->mv0_threshold = lavc_param_mv0_threshold;
657 lavc_venc_context->refs = lavc_param_refs;
655 658
656 switch(lavc_param_format) 659 switch(lavc_param_format)
657 { 660 {
658 case IMGFMT_YV12: 661 case IMGFMT_YV12:
659 lavc_venc_context->pix_fmt = PIX_FMT_YUV420P; 662 lavc_venc_context->pix_fmt = PIX_FMT_YUV420P;
739 } 742 }
740 743
741 lavc_venc_context->me_method = ME_ZERO+lavc_param_vme; 744 lavc_venc_context->me_method = ME_ZERO+lavc_param_vme;
742 745
743 /* fixed qscale :p */ 746 /* fixed qscale :p */
744 if (lavc_param_vqscale) 747 if (lavc_param_vqscale >= 0.0)
745 { 748 {
746 mp_msg(MSGT_MENCODER, MSGL_INFO, MSGTR_MPCODECS_UsingConstantQscale, lavc_param_vqscale); 749 mp_msg(MSGT_MENCODER, MSGL_INFO, MSGTR_MPCODECS_UsingConstantQscale, lavc_param_vqscale);
747 lavc_venc_context->flags |= CODEC_FLAG_QSCALE; 750 lavc_venc_context->flags |= CODEC_FLAG_QSCALE;
748 #if LIBAVCODEC_BUILD >= 4668 751 #if LIBAVCODEC_BUILD >= 4668
749 lavc_venc_context->global_quality= 752 lavc_venc_context->global_quality=