Signed-off-by: Michael Niedermayer <michae...@gmx.at> --- cmdutils.c | 6 ++++++ cmdutils.h | 2 ++ ffmpeg.c | 3 +++ ffmpeg_opt.c | 2 ++ 4 files changed, 13 insertions(+)
diff --git a/cmdutils.c b/cmdutils.c index db89256..f24f65d 100644 --- a/cmdutils.c +++ b/cmdutils.c @@ -2111,6 +2111,12 @@ double get_rotation(AVStream *st) return theta; } +const char* format_option_for_user(void *obj, const char* name, const char* value, char *tmp, int tmp_len) +{ + snprintf(tmp, tmp_len, "add '-%s %s'", name, value); + return tmp; +} + #if CONFIG_AVDEVICE static int print_device_sources(AVInputFormat *fmt, AVDictionary *opts) { diff --git a/cmdutils.h b/cmdutils.h index a21ce35..47d1042 100644 --- a/cmdutils.h +++ b/cmdutils.h @@ -599,4 +599,6 @@ void *grow_array(void *array, int elem_size, int *size, int new_size); double get_rotation(AVStream *st); +const char* format_option_for_user(void *obj, const char* name, const char* value, char *tmp, int tmp_len); + #endif /* CMDUTILS_H */ diff --git a/ffmpeg.c b/ffmpeg.c index 8c288ae..aec7f13 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -2419,6 +2419,7 @@ static int init_input_stream(int ist_index, char *error, int error_len) ist->dec_ctx->get_format = get_format; ist->dec_ctx->get_buffer2 = get_buffer; ist->dec_ctx->thread_safe_callbacks = 1; + av_set_format_option_for_user_func(ist->dec_ctx, format_option_for_user); av_opt_set_int(ist->dec_ctx, "refcounted_frames", 1, 0); if (ist->dec_ctx->codec_id == AV_CODEC_ID_DVB_SUBTITLE && @@ -3050,6 +3051,8 @@ static int transcode_init(void) av_dict_set(&ost->encoder_opts, "threads", "auto", 0); av_dict_set(&ost->encoder_opts, "side_data_only_packets", "1", 0); + av_set_format_option_for_user_func(ost->enc_ctx, format_option_for_user); + if ((ret = avcodec_open2(ost->enc_ctx, codec, &ost->encoder_opts)) < 0) { if (ret == AVERROR_EXPERIMENTAL) abort_codec_experimental(codec, 1); diff --git a/ffmpeg_opt.c b/ffmpeg_opt.c index 240f727..bf297f0 100644 --- a/ffmpeg_opt.c +++ b/ffmpeg_opt.c @@ -901,6 +901,8 @@ static int open_input_file(OptionsContext *o, const char *filename) remove_avoptions(&o->g->format_opts, o->g->codec_opts); assert_avoptions(o->g->format_opts); + av_set_format_option_for_user_func(ic, format_option_for_user); + /* apply forced codec ids */ for (i = 0; i < ic->nb_streams; i++) choose_decoder(o, ic, ic->streams[i]); -- 1.7.9.5 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel