summaryrefslogtreecommitdiff
path: root/libavfilter/vf_cropdetect.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavfilter/vf_cropdetect.c')
-rw-r--r--libavfilter/vf_cropdetect.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/libavfilter/vf_cropdetect.c b/libavfilter/vf_cropdetect.c
index 7c7d0b953a..5ae87cad2d 100644
--- a/libavfilter/vf_cropdetect.c
+++ b/libavfilter/vf_cropdetect.c
@@ -37,6 +37,7 @@ typedef struct CropDetectContext {
int x1, y1, x2, y2;
float limit;
int round;
+ int skip;
int reset_count;
int frame_nb;
int max_pixsteps[4];
@@ -127,10 +128,10 @@ static av_cold int init(AVFilterContext *ctx)
{
CropDetectContext *s = ctx->priv;
- s->frame_nb = -2;
+ s->frame_nb = -1 * s->skip;
- av_log(ctx, AV_LOG_VERBOSE, "limit:%f round:%d reset_count:%d\n",
- s->limit, s->round, s->reset_count);
+ av_log(ctx, AV_LOG_VERBOSE, "limit:%f round:%d skip:%d reset_count:%d\n",
+ s->limit, s->round, s->skip, s->reset_count);
return 0;
}
@@ -167,7 +168,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
int outliers, last_y;
int limit = lrint(s->limit);
- // ignore first 2 frames - they may be empty
+ // ignore first s->skip frames
if (++s->frame_nb > 0) {
metadata = &frame->metadata;
@@ -247,6 +248,7 @@ static const AVOption cropdetect_options[] = {
{ "limit", "Threshold below which the pixel is considered black", OFFSET(limit), AV_OPT_TYPE_FLOAT, { .dbl = 24.0/255 }, 0, 65535, FLAGS },
{ "round", "Value by which the width/height should be divisible", OFFSET(round), AV_OPT_TYPE_INT, { .i64 = 16 }, 0, INT_MAX, FLAGS },
{ "reset", "Recalculate the crop area after this many frames", OFFSET(reset_count), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, FLAGS },
+ { "skip", "Number of initial frames to skip", OFFSET(skip), AV_OPT_TYPE_INT, { .i64 = 2 }, 0, INT_MAX, FLAGS },
{ "reset_count", "Recalculate the crop area after this many frames",OFFSET(reset_count),AV_OPT_TYPE_INT,{ .i64 = 0 }, 0, INT_MAX, FLAGS },
{ "max_outliers", "Threshold count of outliers", OFFSET(max_outliers),AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, FLAGS },
{ NULL }