From: Zhao Zhili <zhiliz...@tencent.com> --- libavfilter/vf_histogram.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/libavfilter/vf_histogram.c b/libavfilter/vf_histogram.c index 5185992de6..0d2d087beb 100644 --- a/libavfilter/vf_histogram.c +++ b/libavfilter/vf_histogram.c @@ -266,20 +266,20 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) const int is_chroma = (k == 1 || k == 2); const int dst_h = AV_CEIL_RSHIFT(outlink->h, (is_chroma ? h->odesc->log2_chroma_h : 0)); const int dst_w = AV_CEIL_RSHIFT(outlink->w, (is_chroma ? h->odesc->log2_chroma_w : 0)); + const int plane = h->odesc->comp[k].plane; + uint8_t *const data = out->data[plane]; + const int linesize = out->linesize[plane]; if (h->histogram_size <= 256) { for (i = 0; i < dst_h ; i++) - memset(out->data[h->odesc->comp[k].plane] + - i * out->linesize[h->odesc->comp[k].plane], - h->bg_color[k], dst_w); + memset(data + i * linesize, h->bg_color[k], dst_w); } else { const int mult = h->mult; - for (i = 0; i < dst_h ; i++) - for (j = 0; j < dst_w; j++) - AV_WN16(out->data[h->odesc->comp[k].plane] + - i * out->linesize[h->odesc->comp[k].plane] + j * 2, - h->bg_color[k] * mult); + for (j = 0; j < dst_w; j++) + AV_WN16(data + j * 2, h->bg_color[k] * mult); + for (i = 1; i < dst_h; i++) + memcpy(data + i * linesize, data, dst_w * 2); } } -- 2.22.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".