avfilter/af_silenceremove: use input timestamp for timestamp recalculation
authorPaul B Mahol <onemda@gmail.com>
Tue, 2 Jul 2019 16:06:28 +0000 (18:06 +0200)
committerPaul B Mahol <onemda@gmail.com>
Tue, 2 Jul 2019 17:01:42 +0000 (19:01 +0200)
libavfilter/af_silenceremove.c

index 335f55b..7dd8c5a 100644 (file)
@@ -206,6 +206,7 @@ static int config_input(AVFilterLink *inlink)
     AVFilterContext *ctx = inlink->dst;
     SilenceRemoveContext *s = ctx->priv;
 
+    s->next_pts = AV_NOPTS_VALUE;
     s->window_size = FFMAX((inlink->sample_rate * s->window_ratio), 1) * inlink->channels;
     s->window = av_malloc_array(s->window_size, sizeof(*s->window));
     if (!s->window)
@@ -328,6 +329,9 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
 
     nb_samples_read = nb_samples_written = 0;
 
+    if (s->next_pts == AV_NOPTS_VALUE)
+        s->next_pts = in->pts;
+
     switch (s->mode) {
     case SILENCE_TRIM:
 silence_trim: