mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
libx264: support passing arbitrary parameters.
Idea taken from mencoder. This should fix conflicts with presets as long as the new system is used. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
e89403216c
commit
d1f9621d39
@ -42,6 +42,7 @@ typedef struct X264Context {
|
||||
int fastfirstpass;
|
||||
char *stats;
|
||||
char *weightp;
|
||||
char *x264opts;
|
||||
} X264Context;
|
||||
|
||||
static void X264_log(void *p, int level, const char *fmt, va_list args)
|
||||
@ -344,6 +345,17 @@ static av_cold int X264_init(AVCodecContext *avctx)
|
||||
|
||||
OPT_STR("level", x4->level);
|
||||
|
||||
if(x4->x264opts){
|
||||
const char *p= x4->x264opts;
|
||||
while(p){
|
||||
char param[256]={0}, val[256]={0};
|
||||
sscanf(p, "%255[^:=]=%255[^:]", param, val);
|
||||
OPT_STR(param, val);
|
||||
p= strchr(p, ':');
|
||||
p+=!!p;
|
||||
}
|
||||
}
|
||||
|
||||
if (x4->fastfirstpass)
|
||||
x264_param_apply_fastfirstpass(&x4->params);
|
||||
|
||||
@ -416,6 +428,7 @@ static const AVOption options[] = {
|
||||
{"level", "Specify level (as defined by Annex A)", OFFSET(level), FF_OPT_TYPE_STRING, 0, 0, 0, VE},
|
||||
{"passlogfile", "Filename for 2 pass stats", OFFSET(stats), FF_OPT_TYPE_STRING, 0, 0, 0, VE},
|
||||
{"wpredp", "Weighted prediction for P-frames", OFFSET(weightp), FF_OPT_TYPE_STRING, 0, 0, 0, VE},
|
||||
{"x264opts", "x264 options", OFFSET(x264opts), FF_OPT_TYPE_STRING, 0, 0, 0, VE},
|
||||
{ NULL },
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user