@item scene_change_detect, scd
Enable scene change detection using the value of the option @var{scene}.
This flag is enabled by default.
diff --git a/libavfilter/vf_framerate.c b/libavfilter/vf_framerate.c
index 06e463e..99faf75 100644
--- a/libavfilter/vf_framerate.c
+++ b/libavfilter/vf_framerate.c
@@ -44,7 +44,9 @@
#define OFFSET(x) offsetof(FrameRateContext, x)
#define V AV_OPT_FLAG_VIDEO_PARAM
#define F AV_OPT_FLAG_FILTERING_PARAM
+#define FRAMERATE_FLAG_NONE 00
#define FRAMERATE_FLAG_SCD 01
+#define CONST(name, help, val, unit) { name, help, 0, AV_OPT_TYPE_CONST,
{.i64=val}, 0, 0, V|F, unit }
static const AVOption framerate_options[] = {
{"fps", "required output frames per second rate",
OFFSET(dest_frame_rate), AV_OPT_TYPE_VIDEO_RATE, {.str="50"}, 0, INT_MAX, V|F },
@@ -53,9 +55,10 @@ static const AVOption framerate_options[] = {
{"interp_end", "point to end linear interpolation",
OFFSET(interp_end), AV_OPT_TYPE_INT, {.i64=240}, 0, 255, V|F },
{"scene", "scene change level",
OFFSET(scene_score), AV_OPT_TYPE_DOUBLE, {.dbl=8.2}, 0, INT_MAX, V|F },
- {"flags", "set flags", OFFSET(flags),
AV_OPT_TYPE_FLAGS, {.i64=1}, 0, INT_MAX, V|F, "flags" },
- {"scene_change_detect", "enable scene change detection", 0,
AV_OPT_TYPE_CONST, {.i64=FRAMERATE_FLAG_SCD}, INT_MIN, INT_MAX, V|F, "flags" },
- {"scd", "enable scene change detection", 0,
AV_OPT_TYPE_CONST, {.i64=FRAMERATE_FLAG_SCD}, INT_MIN, INT_MAX, V|F, "flags" },
+ {"flags", "set flags", OFFSET(flags), AV_OPT_TYPE_FLAGS,
{.i64=FRAMERATE_FLAG_SCD}, FRAMERATE_FLAG_NONE, FRAMERATE_FLAG_SCD, V|F, "flags" },
+ CONST("none", "disable scene change detection",
FRAMERATE_FLAG_NONE, "flags"),
+ CONST("scene_change_detect", "enable scene change detection",
FRAMERATE_FLAG_SCD, "flags"),
+ CONST("scd", "enable scene change detection",
FRAMERATE_FLAG_SCD, "flags"),
{NULL}
};
@@ -301,9 +304,11 @@ static int config_input(AVFilterLink *inlink)
s->bitdepth = pix_desc->comp[0].depth;
s->vsub = pix_desc->log2_chroma_h;
- s->sad = ff_scene_sad_get_fn(s->bitdepth == 8 ? 8 : 16);
- if (!s->sad)
- return AVERROR(EINVAL);
+ if ((s->flags & FRAMERATE_FLAG_SCD)) {
+ s->sad = ff_scene_sad_get_fn(s->bitdepth == 8 ? 8 : 16);
+ if (!s->sad)
+ return AVERROR(EINVAL);
+ }
s->srce_time_base = inlink->time_base;
--
2.6.4
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".