[FFmpeg-cvslog] avfilter/af_afir: introduce uninit_segment() and use it

Paul B Mahol git at videolan.org
Sun Dec 30 14:42:49 EET 2018


ffmpeg | branch: master | Paul B Mahol <onemda at gmail.com> | Fri Dec 28 18:45:55 2018 +0100| [30bf54b9f3ac4684470a33014665f98641a33422] | committer: Paul B Mahol

avfilter/af_afir: introduce uninit_segment() and use it

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=30bf54b9f3ac4684470a33014665f98641a33422
---

 libavfilter/af_afir.c | 41 +++++++++++++++++++++++------------------
 1 file changed, 23 insertions(+), 18 deletions(-)

diff --git a/libavfilter/af_afir.c b/libavfilter/af_afir.c
index ca0c8811a4..dc32b92dc7 100644
--- a/libavfilter/af_afir.c
+++ b/libavfilter/af_afir.c
@@ -593,39 +593,44 @@ static int config_output(AVFilterLink *outlink)
     return 0;
 }
 
-static av_cold void uninit(AVFilterContext *ctx)
+static void uninit_segment(AVFilterContext *ctx, AudioFIRSegment *seg)
 {
     AudioFIRContext *s = ctx->priv;
-    int ch;
 
-    if (s->seg.coeff) {
-        for (ch = 0; ch < s->nb_coef_channels; ch++) {
-            av_freep(&s->seg.coeff[ch]);
+    if (seg->coeff) {
+        for (int ch = 0; ch < s->nb_coef_channels; ch++) {
+            av_freep(&seg->coeff[ch]);
         }
     }
-    av_freep(&s->seg.coeff);
+    av_freep(&seg->coeff);
 
-    if (s->seg.rdft) {
-        for (ch = 0; ch < s->nb_channels; ch++) {
-            av_rdft_end(s->seg.rdft[ch]);
+    if (seg->rdft) {
+        for (int ch = 0; ch < s->nb_channels; ch++) {
+            av_rdft_end(seg->rdft[ch]);
         }
     }
-    av_freep(&s->seg.rdft);
+    av_freep(&seg->rdft);
 
-    if (s->seg.irdft) {
-        for (ch = 0; ch < s->nb_channels; ch++) {
-            av_rdft_end(s->seg.irdft[ch]);
+    if (seg->irdft) {
+        for (int ch = 0; ch < s->nb_channels; ch++) {
+            av_rdft_end(seg->irdft[ch]);
         }
     }
-    av_freep(&s->seg.irdft);
+    av_freep(&seg->irdft);
 
-    av_frame_free(&s->in[1]);
+    av_frame_free(&seg->block);
+    av_frame_free(&seg->sum);
+    av_frame_free(&seg->buffer);
+}
+
+static av_cold void uninit(AVFilterContext *ctx)
+{
+    AudioFIRContext *s = ctx->priv;
 
-    av_frame_free(&s->seg.block);
-    av_frame_free(&s->seg.sum);
-    av_frame_free(&s->seg.buffer);
+    uninit_segment(ctx, &s->seg);
 
     av_freep(&s->fdsp);
+    av_frame_free(&s->in[1]);
 
     for (int i = 0; i < ctx->nb_outputs; i++)
         av_freep(&ctx->output_pads[i].name);



More information about the ffmpeg-cvslog mailing list