diff options
author | Paul B Mahol <onemda@gmail.com> | 2019-10-07 18:02:50 +0200 |
---|---|---|
committer | Paul B Mahol <onemda@gmail.com> | 2019-10-07 18:10:28 +0200 |
commit | 0633d87ae6e6a63669d0877aac5a12c22778b0e8 (patch) | |
tree | c4443181a99cce388f0060475559c1cb346909a0 /libavfilter | |
parent | 9a53e0125290238db66034f67a9c41c420264c09 (diff) | |
download | ffmpeg-0633d87ae6e6a63669d0877aac5a12c22778b0e8.tar.gz |
avfilter/af_adelay: add option which changes how unset channels are delayed
Fixes #8032.
Diffstat (limited to 'libavfilter')
-rw-r--r-- | libavfilter/af_adelay.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/libavfilter/af_adelay.c b/libavfilter/af_adelay.c index eb97039566..06e39fa6a4 100644 --- a/libavfilter/af_adelay.c +++ b/libavfilter/af_adelay.c @@ -36,6 +36,7 @@ typedef struct ChanDelay { typedef struct AudioDelayContext { const AVClass *class; + int all; char *delays; ChanDelay *chandelay; int nb_delays; @@ -54,6 +55,7 @@ typedef struct AudioDelayContext { static const AVOption adelay_options[] = { { "delays", "set list of delays for each channel", OFFSET(delays), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 0, A }, + { "all", "use last available delay for remained channels", OFFSET(all), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, A }, { NULL } }; @@ -163,6 +165,11 @@ static int config_input(AVFilterLink *inlink) } } + if (s->all) { + for (int j = i + 1; j < s->nb_delays; j++) + s->chandelay[j].delay = s->chandelay[i].delay; + } + s->padding = s->chandelay[0].delay; for (i = 1; i < s->nb_delays; i++) { ChanDelay *d = &s->chandelay[i]; |