[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