ffmpeg: Do not fail if a demuxer and decoder use the same option identifer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
22a0249deb
commit
7d03732f7e
9
ffmpeg.c
9
ffmpeg.c
@ -532,6 +532,15 @@ static void ffmpeg_cleanup(int ret)
|
|||||||
term_exit();
|
term_exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void remove_avoptions(AVDictionary **a, AVDictionary *b)
|
||||||
|
{
|
||||||
|
AVDictionaryEntry *t = NULL;
|
||||||
|
|
||||||
|
while ((t = av_dict_get(b, "", t, AV_DICT_IGNORE_SUFFIX))) {
|
||||||
|
av_dict_set(a, t->key, NULL, AV_DICT_MATCH_CASE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void assert_avoptions(AVDictionary *m)
|
void assert_avoptions(AVDictionary *m)
|
||||||
{
|
{
|
||||||
AVDictionaryEntry *t;
|
AVDictionaryEntry *t;
|
||||||
|
1
ffmpeg.h
1
ffmpeg.h
@ -502,6 +502,7 @@ void show_usage(void);
|
|||||||
|
|
||||||
void opt_output_file(void *optctx, const char *filename);
|
void opt_output_file(void *optctx, const char *filename);
|
||||||
|
|
||||||
|
void remove_avoptions(AVDictionary **a, AVDictionary *b);
|
||||||
void assert_avoptions(AVDictionary *m);
|
void assert_avoptions(AVDictionary *m);
|
||||||
|
|
||||||
int guess_input_channel_layout(InputStream *ist);
|
int guess_input_channel_layout(InputStream *ist);
|
||||||
|
@ -872,6 +872,7 @@ static int open_input_file(OptionsContext *o, const char *filename)
|
|||||||
print_error(filename, err);
|
print_error(filename, err);
|
||||||
exit_program(1);
|
exit_program(1);
|
||||||
}
|
}
|
||||||
|
remove_avoptions(&o->g->format_opts, o->g->codec_opts);
|
||||||
assert_avoptions(o->g->format_opts);
|
assert_avoptions(o->g->format_opts);
|
||||||
|
|
||||||
/* apply forced codec ids */
|
/* apply forced codec ids */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user