[FFmpeg-cvslog] avfilter/vf_convolution: improve runtime support for convolution filter

Paul B Mahol git at videolan.org
Sat Oct 23 15:52:13 EEST 2021


ffmpeg | branch: master | Paul B Mahol <onemda at gmail.com> | Sat Oct 23 14:47:11 2021 +0200| [6c45d34e505f7ef93e07db4a616e7b98d1490102] | committer: Paul B Mahol

avfilter/vf_convolution: improve runtime support for convolution filter

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

 libavfilter/vf_convolution.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/libavfilter/vf_convolution.c b/libavfilter/vf_convolution.c
index 47b59de421..6e6fe0d887 100644
--- a/libavfilter/vf_convolution.c
+++ b/libavfilter/vf_convolution.c
@@ -709,12 +709,14 @@ static int param_init(AVFilterContext *ctx)
     if (!strcmp(ctx->filter->name, "convolution")) {
         for (i = 0; i < 4; i++) {
             int *matrix = (int *)s->matrix[i];
-            char *p, *arg, *saveptr = NULL;
-            float sum = 0;
+            char *orig, *p, *arg, *saveptr = NULL;
+            float sum = 1.f;
 
-            p = s->matrix_str[i];
+            p = orig = av_strdup(s->matrix_str[i]);
             if (p) {
                 s->matrix_length[i] = 0;
+                s->rdiv[i] = 0.f;
+                sum = 0.f;
 
                 while (s->matrix_length[i] < 49) {
                     if (!(arg = av_strtok(p, " |", &saveptr)))
@@ -726,6 +728,7 @@ static int param_init(AVFilterContext *ctx)
                     s->matrix_length[i]++;
                 }
 
+                av_freep(&orig);
                 if (!(s->matrix_length[i] & 1)) {
                     av_log(ctx, AV_LOG_ERROR, "number of matrix elements must be odd\n");
                     return AVERROR(EINVAL);



More information about the ffmpeg-cvslog mailing list