diff options
author | Paul B Mahol <onemda@gmail.com> | 2021-09-08 15:37:36 +0200 |
---|---|---|
committer | Paul B Mahol <onemda@gmail.com> | 2021-09-08 19:10:39 +0200 |
commit | 38ab20e591ce9d6e0b30717fca29011127b66ef7 (patch) | |
tree | 257178bc380f38579a6169cb45d836066c310dfc /libavfilter | |
parent | 8a42ee6697317d0a30438df5905dfc0247cd28e7 (diff) | |
download | ffmpeg-38ab20e591ce9d6e0b30717fca29011127b66ef7.tar.gz |
avfilter/af_silenceremove: fix stop_silence handling
Diffstat (limited to 'libavfilter')
-rw-r--r-- | libavfilter/af_silenceremove.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/libavfilter/af_silenceremove.c b/libavfilter/af_silenceremove.c index 166961442e..6f3250bbb1 100644 --- a/libavfilter/af_silenceremove.c +++ b/libavfilter/af_silenceremove.c @@ -792,17 +792,20 @@ silence_copy: } else if (!threshold) { for (j = 0; j < outlink->channels; j++) { s->update(s, in, j, nb_samples_read); - if (s->stop_silence) { + if (s->stop_silence) s->copy(s, s->stop_silence_hold, in, j, s->stop_silence_offset, nb_samples_read); - s->stop_silence_end = FFMIN(s->stop_silence_end + 1, s->stop_silence); - if (s->stop_silence_offset >= s->stop_silence) { - s->stop_silence_offset = 0; - } - } s->copy(s, s->stop_holdoff, in, j, s->stop_holdoff_end, nb_samples_read); } + if (s->stop_silence) { + s->stop_silence_offset++; + s->stop_silence_end = FFMIN(s->stop_silence_end + 1, s->stop_silence); + if (s->stop_silence_offset >= s->stop_silence) { + s->stop_silence_offset = 0; + } + } + s->window_offset++; if (s->window_offset >= s->window_duration) s->window_offset = 0; |