lavfi/bbox: make min_val user configurable
Signed-off-by: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
parent
e9c3851d60
commit
7aa99a69c7
@ -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
|
||||
|
@ -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, \
|
||||
|
@ -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…
x
Reference in New Issue
Block a user