X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavfilter%2Fvf_histogram.c;h=3daa482498f418e8077fedc900b65a6f43fb1cd0;hb=721ffc691ab40420e5a4cdf4c3580f4aa33cde0f;hp=3c348858a65826f6807c1762fb2a85bdea97006f;hpb=ebbd4fd5f06ac7a5c762fe3c8ee9684bf7fcf960;p=ffmpeg diff --git a/libavfilter/vf_histogram.c b/libavfilter/vf_histogram.c index 3c348858a65..3daa482498f 100644 --- a/libavfilter/vf_histogram.c +++ b/libavfilter/vf_histogram.c @@ -168,7 +168,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) AVFrame *out; const uint8_t *src; uint8_t *dst; - int i, j, k, l, ret; + int i, j, k, l; out = ff_get_video_buffer(outlink, outlink->w, outlink->h); if (!out) { @@ -197,7 +197,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) h->max_hval = FFMAX(h->max_hval, h->histogram[i]); for (i = 0; i < outlink->w; i++) { - int col_height = h->level_height - (float)h->histogram[i] / h->max_hval * h->level_height; + int col_height = h->level_height - (h->histogram[i] * (int64_t)h->level_height + h->max_hval - 1) / h->max_hval; for (j = h->level_height - 1; j >= col_height; j--) { if (h->display_mode) { @@ -285,11 +285,8 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) av_assert0(0); } - ret = ff_filter_frame(outlink, out); av_frame_free(&in); - if (ret < 0) - return ret; - return 0; + return ff_filter_frame(outlink, out); } static const AVFilterPad inputs[] = {