[FFmpeg-cvslog] avfilter/vf_atadenoise: fix >8 depth filtering with planes disabled
Paul B Mahol
git at videolan.org
Fri Feb 18 18:14:22 EET 2022
ffmpeg | branch: master | Paul B Mahol <onemda at gmail.com> | Fri Feb 18 09:39:03 2022 +0100| [b40419c99b4ab1588c425cedde11fa820aa74695] | committer: Paul B Mahol
avfilter/vf_atadenoise: fix >8 depth filtering with planes disabled
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b40419c99b4ab1588c425cedde11fa820aa74695
---
libavfilter/vf_atadenoise.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/libavfilter/vf_atadenoise.c b/libavfilter/vf_atadenoise.c
index 196d354654..8dc51b460d 100644
--- a/libavfilter/vf_atadenoise.c
+++ b/libavfilter/vf_atadenoise.c
@@ -52,6 +52,7 @@ typedef struct ATADenoiseContext {
int nb_planes;
int planewidth[4];
int planeheight[4];
+ int linesizes[4];
struct FFBufQueue q;
void *data[4][SIZE];
@@ -363,7 +364,7 @@ static int filter_slice(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
if (!((1 << p) & s->planes)) {
av_image_copy_plane(dst, out->linesize[p], src, in->linesize[p],
- w, slice_end - slice_start);
+ s->linesizes[p], slice_end - slice_start);
continue;
}
@@ -389,7 +390,7 @@ static int config_input(AVFilterLink *inlink)
const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(inlink->format);
AVFilterContext *ctx = inlink->dst;
ATADenoiseContext *s = ctx->priv;
- int depth;
+ int depth, ret;
s->nb_planes = desc->nb_components;
@@ -401,6 +402,9 @@ static int config_input(AVFilterLink *inlink)
depth = desc->comp[0].depth;
s->filter_slice = filter_slice;
+ if ((ret = av_image_fill_linesizes(s->linesizes, inlink->format, inlink->w)) < 0)
+ return ret;
+
for (int p = 0; p < s->nb_planes; p++) {
if (depth == 8 && s->sigma[p] == INT16_MAX)
s->dsp.filter_row[p] = s->algorithm == PARALLEL ? filter_row8 : filter_row8_serial;
More information about the ffmpeg-cvslog
mailing list