avfilter/af_anlmdn: do not trim first samples
authorPaul B Mahol <onemda@gmail.com>
Fri, 11 Jan 2019 10:23:59 +0000 (11:23 +0100)
committerPaul B Mahol <onemda@gmail.com>
Fri, 11 Jan 2019 10:23:59 +0000 (11:23 +0100)
Instead denoise from start, assumming missing samples are silence.

libavfilter/af_anlmdn.c

index cc77657..efc261e 100644 (file)
@@ -135,6 +135,7 @@ static int config_output(AVFilterLink *outlink)
 {
     AVFilterContext *ctx = outlink->src;
     AudioNLMeansContext *s = ctx->priv;
+    int ret;
 
     s->K = av_rescale(s->pd, outlink->sample_rate, AV_TIME_BASE);
     s->S = av_rescale(s->rd, outlink->sample_rate, AV_TIME_BASE);
@@ -159,6 +160,10 @@ static int config_output(AVFilterLink *outlink)
     if (!s->fifo)
         return AVERROR(ENOMEM);
 
+    ret = av_audio_fifo_write(s->fifo, (void **)s->in->extended_data, s->K + s->S);
+    if (ret < 0)
+        return ret;
+
     s->pdiff_lut_scale = 1.f / MAX_DIFF * WEIGHT_LUT_SIZE;
     for (int i = 0; i < WEIGHT_LUT_SIZE; i++) {
         float w = -i / s->pdiff_lut_scale;