aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul B Mahol <onemda@gmail.com>2016-08-19 17:55:02 +0200
committerPaul B Mahol <onemda@gmail.com>2016-08-19 18:03:07 +0200
commit0d8b6a15ddcaded970c7b8545573a4ed1fde8e21 (patch)
tree65df1ece1c13fc50b16acb028984a008ec6d085c
parentca906e81909d0eee25ce745e162aa0f6ea6eb8e8 (diff)
downloadffmpeg-0d8b6a15ddcaded970c7b8545573a4ed1fde8e21.tar.gz
avfilter/vf_histogram: make foreground and background opacity configurable
-rw-r--r--doc/filters.texi6
-rw-r--r--libavfilter/vf_histogram.c21
2 files changed, 21 insertions, 6 deletions
diff --git a/doc/filters.texi b/doc/filters.texi
index 8ae9c42034..e9b8c93529 100644
--- a/doc/filters.texi
+++ b/doc/filters.texi
@@ -8555,6 +8555,12 @@ Default is @code{linear}.
@item components
Set what color components to display.
Default is @code{7}.
+
+@item fgopacity
+Set foreground opacity. Default is @code{0.7}.
+
+@item bgopacity
+Set background opacity. Default is @code{0.5}.
@end table
@subsection Examples
diff --git a/libavfilter/vf_histogram.c b/libavfilter/vf_histogram.c
index 5b4060cc19..c6b308a8e0 100644
--- a/libavfilter/vf_histogram.c
+++ b/libavfilter/vf_histogram.c
@@ -35,14 +35,16 @@ typedef struct HistogramContext {
int histogram_size;
int mult;
int ncomp;
- const uint8_t *bg_color;
- const uint8_t *fg_color;
+ uint8_t bg_color[4];
+ uint8_t fg_color[4];
int level_height;
int scale_height;
int display_mode;
int levels_mode;
const AVPixFmtDescriptor *desc, *odesc;
int components;
+ float fgopacity;
+ float bgopacity;
int planewidth[4];
int planeheight[4];
} HistogramContext;
@@ -63,6 +65,10 @@ static const AVOption histogram_options[] = {
{ "logarithmic", NULL, 0, AV_OPT_TYPE_CONST, {.i64=1}, 0, 0, FLAGS, "levels_mode" },
{ "components", "set color components to display", OFFSET(components), AV_OPT_TYPE_INT, {.i64=7}, 1, 15, FLAGS},
{ "c", "set color components to display", OFFSET(components), AV_OPT_TYPE_INT, {.i64=7}, 1, 15, FLAGS},
+ { "fgopacity", "set foreground opacity", OFFSET(fgopacity), AV_OPT_TYPE_FLOAT, {.dbl=0.7}, 0, 1, FLAGS},
+ { "f", "set foreground opacity", OFFSET(fgopacity), AV_OPT_TYPE_FLOAT, {.dbl=0.7}, 0, 1, FLAGS},
+ { "bgopacity", "set background opacity", OFFSET(bgopacity), AV_OPT_TYPE_FLOAT, {.dbl=0.5}, 0, 1, FLAGS},
+ { "b", "set background opacity", OFFSET(bgopacity), AV_OPT_TYPE_FLOAT, {.dbl=0.5}, 0, 1, FLAGS},
{ NULL }
};
@@ -197,14 +203,17 @@ static int config_input(AVFilterLink *inlink)
case AV_PIX_FMT_GBRP9:
case AV_PIX_FMT_GBRAP:
case AV_PIX_FMT_GBRP:
- h->bg_color = black_gbrp_color;
- h->fg_color = white_gbrp_color;
+ memcpy(h->bg_color, black_gbrp_color, 4);
+ memcpy(h->fg_color, white_gbrp_color, 4);
break;
default:
- h->bg_color = black_yuva_color;
- h->fg_color = white_yuva_color;
+ memcpy(h->bg_color, black_yuva_color, 4);
+ memcpy(h->fg_color, white_yuva_color, 4);
}
+ h->fg_color[3] = h->fgopacity * 255;
+ h->bg_color[3] = h->bgopacity * 255;
+
h->planeheight[1] = h->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, h->desc->log2_chroma_h);
h->planeheight[0] = h->planeheight[3] = inlink->h;
h->planewidth[1] = h->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, h->desc->log2_chroma_w);