avfilter/af_aiir: move response drawing as last step
authorPaul B Mahol <onemda@gmail.com>
Fri, 22 May 2020 12:14:15 +0000 (14:14 +0200)
committerPaul B Mahol <onemda@gmail.com>
Fri, 22 May 2020 12:14:15 +0000 (14:14 +0200)
libavfilter/af_aiir.c

index bacdab6..92ff348 100644 (file)
@@ -1001,15 +1001,6 @@ static int config_output(AVFilterLink *outlink)
         check_stability(ctx, inlink->channels);
     }
 
-    av_frame_free(&s->video);
-    if (s->response) {
-        s->video = ff_get_video_buffer(ctx->outputs[1], s->w, s->h);
-        if (!s->video)
-            return AVERROR(ENOMEM);
-
-        draw_response(ctx, s->video, inlink->sample_rate);
-    }
-
     if (s->format == 0)
         av_log(ctx, AV_LOG_WARNING, "tf coefficients format is not recommended for too high number of zeros/poles.\n");
 
@@ -1053,6 +1044,15 @@ static int config_output(AVFilterLink *outlink)
     case AV_SAMPLE_FMT_S16P: s->iir_channel = s->process == 1 ? iir_ch_serial_s16p : iir_ch_s16p; break;
     }
 
+    av_frame_free(&s->video);
+    if (s->response) {
+        s->video = ff_get_video_buffer(ctx->outputs[1], s->w, s->h);
+        if (!s->video)
+            return AVERROR(ENOMEM);
+
+        draw_response(ctx, s->video, inlink->sample_rate);
+    }
+
     return 0;
 }