summaryrefslogtreecommitdiff
path: root/libavfilter/af_silenceremove.c
diff options
context:
space:
mode:
authorPaul B Mahol <onemda@gmail.com>2021-09-08 15:37:36 +0200
committerPaul B Mahol <onemda@gmail.com>2021-09-08 19:10:39 +0200
commit38ab20e591ce9d6e0b30717fca29011127b66ef7 (patch)
tree257178bc380f38579a6169cb45d836066c310dfc /libavfilter/af_silenceremove.c
parent8a42ee6697317d0a30438df5905dfc0247cd28e7 (diff)
avfilter/af_silenceremove: fix stop_silence handling
Diffstat (limited to 'libavfilter/af_silenceremove.c')
-rw-r--r--libavfilter/af_silenceremove.c15
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;