Browse Source

lavfi/bbox: make min_val user configurable

Signed-off-by: Paul B Mahol <onemda@gmail.com>
tags/n2.0
Paul B Mahol 12 years ago
parent
commit
7aa99a69c7
3 changed files with 23 additions and 3 deletions
  1. +7
    -0
      doc/filters.texi
  2. +1
    -1
      libavfilter/version.h
  3. +15
    -2
      libavfilter/vf_bbox.c

+ 7
- 0
doc/filters.texi View File

@@ -1925,6 +1925,13 @@ luminance value greater than the minimum allowed value.
The parameters describing the bounding box are printed on the filter
log.

The filter accepts the following option:

@table @option
@item min_val
Set the minimal luminance value. Default is @code{16}.
@end table

@section blackdetect

Detect video intervals that are (almost) completely black. Can be


+ 1
- 1
libavfilter/version.h View File

@@ -31,7 +31,7 @@

#define LIBAVFILTER_VERSION_MAJOR 3
#define LIBAVFILTER_VERSION_MINOR 70
#define LIBAVFILTER_VERSION_MICRO 100
#define LIBAVFILTER_VERSION_MICRO 101

#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
LIBAVFILTER_VERSION_MINOR, \


+ 15
- 2
libavfilter/vf_bbox.c View File

@@ -23,6 +23,7 @@
* bounding box detection filter
*/

#include "libavutil/opt.h"
#include "libavutil/pixdesc.h"
#include "libavutil/timestamp.h"
#include "avfilter.h"
@@ -30,9 +31,20 @@
#include "internal.h"

typedef struct {
int unused;
const AVClass *class;
int min_val;
} BBoxContext;

#define OFFSET(x) offsetof(BBoxContext, x)
#define FLAGS AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_FILTERING_PARAM

static const AVOption bbox_options[] = {
{ "min_val", "set minimum luminance value for bounding box", OFFSET(min_val), AV_OPT_TYPE_INT, { .i64 = 16 }, 0, 254, FLAGS },
{ NULL }
};

AVFILTER_DEFINE_CLASS(bbox);

static int query_formats(AVFilterContext *ctx)
{
static const enum AVPixelFormat pix_fmts[] = {
@@ -58,7 +70,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
has_bbox =
ff_calculate_bounding_box(&box,
frame->data[0], frame->linesize[0],
inlink->w, inlink->h, 16);
inlink->w, inlink->h, bbox->min_val);
w = box.x2 - box.x1 + 1;
h = box.y2 - box.y1 + 1;

@@ -100,6 +112,7 @@ AVFilter avfilter_vf_bbox = {
.name = "bbox",
.description = NULL_IF_CONFIG_SMALL("Compute bounding box for each frame."),
.priv_size = sizeof(BBoxContext),
.priv_class = &bbox_class,
.query_formats = query_formats,
.inputs = bbox_inputs,
.outputs = bbox_outputs,


Loading…
Cancel
Save