Commit edadda96 authored by Paul B Mahol's avatar Paul B Mahol

avfilter/vf_histogram: change order of histograms for planar rgb

Signed-off-by: 's avatarPaul B Mahol <onemda@gmail.com>
parent cac9af68
...@@ -4698,7 +4698,7 @@ It accepts the following values: ...@@ -4698,7 +4698,7 @@ It accepts the following values:
@item levels @item levels
standard histogram that display color components distribution in an image. standard histogram that display color components distribution in an image.
Displays color graph for each color component. Shows distribution Displays color graph for each color component. Shows distribution
of the Y, U, V, A or G, B, R components, depending on input format, of the Y, U, V, A or R, G, B components, depending on input format,
in current frame. Bellow each graph is color component scale meter. in current frame. Bellow each graph is color component scale meter.
@item color @item color
......
...@@ -248,12 +248,13 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) ...@@ -248,12 +248,13 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
switch (h->mode) { switch (h->mode) {
case MODE_LEVELS: case MODE_LEVELS:
for (k = 0; k < h->ncomp; k++) { for (k = 0; k < h->ncomp; k++) {
const int p = h->desc->comp[k].plane;
int start = k * (h->level_height + h->scale_height) * h->display_mode; int start = k * (h->level_height + h->scale_height) * h->display_mode;
double max_hval_log; double max_hval_log;
unsigned max_hval = 0; unsigned max_hval = 0;
for (i = 0; i < in->height; i++) { for (i = 0; i < in->height; i++) {
src = in->data[k] + i * in->linesize[k]; src = in->data[p] + i * in->linesize[p];
for (j = 0; j < in->width; j++) for (j = 0; j < in->width; j++)
h->histogram[src[j]]++; h->histogram[src[j]]++;
} }
...@@ -275,11 +276,11 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) ...@@ -275,11 +276,11 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
for (l = 0; l < h->ncomp; l++) for (l = 0; l < h->ncomp; l++)
out->data[l][(j + start) * out->linesize[l] + i] = h->fg_color[l]; out->data[l][(j + start) * out->linesize[l] + i] = h->fg_color[l];
} else { } else {
out->data[k][(j + start) * out->linesize[k] + i] = 255; out->data[p][(j + start) * out->linesize[p] + i] = 255;
} }
} }
for (j = h->level_height + h->scale_height - 1; j >= h->level_height; j--) for (j = h->level_height + h->scale_height - 1; j >= h->level_height; j--)
out->data[k][(j + start) * out->linesize[k] + i] = i; out->data[p][(j + start) * out->linesize[p] + i] = i;
} }
memset(h->histogram, 0, 256 * sizeof(unsigned)); memset(h->histogram, 0, 256 * sizeof(unsigned));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment