diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-04-11 02:33:31 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-04-11 02:37:43 +0200 |
commit | 42c70b358418cb0a364f9b12954b93d6d29be7fb (patch) | |
tree | 6452b40c7720ed42fe6c44d550f949ff79fcd828 | |
parent | 5e5ef6e8aecd299e4550e6c59ae5ce8db27358de (diff) | |
parent | dd7fc37c71955b78a2687f29e871f714d18de386 (diff) | |
download | ffmpeg-42c70b358418cb0a364f9b12954b93d6d29be7fb.tar.gz |
Merge commit 'dd7fc37c71955b78a2687f29e871f714d18de386'
* commit 'dd7fc37c71955b78a2687f29e871f714d18de386':
af_join: switch to an AVOptions-based system.
Conflicts:
doc/filters.texi
libavfilter/af_join.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | doc/filters.texi | 4 | ||||
-rw-r--r-- | libavfilter/af_join.c | 18 | ||||
-rw-r--r-- | libavfilter/avfilter.c | 1 |
3 files changed, 14 insertions, 9 deletions
diff --git a/doc/filters.texi b/doc/filters.texi index c27a58febc..a71a145941 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -1245,7 +1245,7 @@ Number of input streams. Defaults to 2. Desired output channel layout. Defaults to stereo. @item map -Map channels from inputs to output. The argument is a comma-separated list of +Map channels from inputs to output. The argument is a '|'-separated list of mappings, each in the @code{@var{input_idx}.@var{in_channel}-@var{out_channel}} form. @var{input_idx} is the 0-based index of the input stream. @var{in_channel} can be either the name of the input channel (e.g. FL for front left) or its @@ -1265,7 +1265,7 @@ ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex join=inputs=3 OUTPUT To build a 5.1 output from 6 single-channel streams: @example ffmpeg -i fl -i fr -i fc -i sl -i sr -i lfe -filter_complex -'join=inputs=6:channel_layout=5.1:map=0.0-FL\,1.0-FR\,2.0-FC\,3.0-SL\,4.0-SR\,5.0-LFE' +'join=inputs=6:channel_layout=5.1:map=0.0-FL|1.0-FR|2.0-FC|3.0-SL|4.0-SR|5.0-LFE' out @end example diff --git a/libavfilter/af_join.c b/libavfilter/af_join.c index ac3b76ca9d..cba400225b 100644 --- a/libavfilter/af_join.c +++ b/libavfilter/af_join.c @@ -103,14 +103,23 @@ static int filter_frame(AVFilterLink *link, AVFrame *frame) static int parse_maps(AVFilterContext *ctx) { JoinContext *s = ctx->priv; + char separator = '|'; char *cur = s->map; +#if FF_API_OLD_FILTER_OPTS + if (cur && strchr(cur, ',')) { + av_log(ctx, AV_LOG_WARNING, "This syntax is deprecated, use '|' to " + "separate the mappings.\n"); + separator = ','; + } +#endif + while (cur && *cur) { char *sep, *next, *p; uint64_t in_channel = 0, out_channel = 0; int input_idx, out_ch_idx, in_ch_idx; - next = strchr(cur, ','); + next = strchr(cur, separator); if (next) *next++ = 0; @@ -183,11 +192,6 @@ static int join_init(AVFilterContext *ctx, const char *args) JoinContext *s = ctx->priv; int ret, i; - s->class = &join_class; - av_opt_set_defaults(s); - if ((ret = av_set_options_string(s, args, "=", ":")) < 0) - return ret; - if (!(s->channel_layout = av_get_channel_layout(s->channel_layout_str))) { av_log(ctx, AV_LOG_ERROR, "Error parsing channel layout '%s'.\n", s->channel_layout_str); @@ -513,6 +517,7 @@ AVFilter avfilter_af_join = { .description = NULL_IF_CONFIG_SMALL("Join multiple audio streams into " "multi-channel output"), .priv_size = sizeof(JoinContext), + .priv_class = &join_class, .init = join_init, .uninit = join_uninit, @@ -520,5 +525,4 @@ AVFilter avfilter_af_join = { .inputs = NULL, .outputs = avfilter_af_join_outputs, - .priv_class = &join_class, }; diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c index 2b8b8cda76..44275e9546 100644 --- a/libavfilter/avfilter.c +++ b/libavfilter/avfilter.c @@ -693,6 +693,7 @@ int avfilter_init_filter(AVFilterContext *filter, const char *args, void *opaque !strcmp(filter->filter->name, "hqdn3d" ) || !strcmp(filter->filter->name, "idet" ) || !strcmp(filter->filter->name, "il" ) || + !strcmp(filter->filter->name, "join" ) || !strcmp(filter->filter->name, "kerndeint" ) || !strcmp(filter->filter->name, "ocv" ) || !strcmp(filter->filter->name, "life" ) || |