diff --git a/doc/filters.texi b/doc/filters.texi index 6a6d5a334ee6e5e78ebbed71bfae71687ec63fe7..45515966e895302a6c40ded0ccedf43cf5e0dcff 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -9121,7 +9121,7 @@ Specify the level at which a scene change is detected as a value between 0 and 100 to indicate a new scene; a low value reflects a low probability for the current frame to introduce a new scene, while a higher value means the current frame is more likely to be one. -The default is @code{7}. +The default is @code{8.2}. @item flags Specify flags influencing the filter process. diff --git a/libavfilter/vf_framerate.c b/libavfilter/vf_framerate.c index 1cad2305ade44c47c491c36d61d7747499ce84bd..dd106f8e5b7913a9e72eccbb09d39f46e93ea42b 100644 --- a/libavfilter/vf_framerate.c +++ b/libavfilter/vf_framerate.c @@ -88,7 +88,7 @@ static const AVOption framerate_options[] = { {"interp_start", "point to start linear interpolation", OFFSET(interp_start), AV_OPT_TYPE_INT, {.i64=15}, 0, 255, V|F }, {"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=7.0}, 0, INT_MAX, 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" }, @@ -183,7 +183,7 @@ static double get_scene_score(AVFilterContext *ctx, AVFrame *crnt, AVFrame *next else sad = scene_sad16(s, (const uint16_t*)crnt->data[0], crnt->linesize[0] >> 1, (const uint16_t*)next->data[0], next->linesize[0] >> 1, crnt->height); - mafd = sad / (crnt->height * crnt->width * 3); + mafd = (double)sad * 100.0 / (crnt->height * crnt->width) / (1 << s->bitdepth); diff = fabs(mafd - s->prev_mafd); ret = av_clipf(FFMIN(mafd, diff), 0, 100.0); s->prev_mafd = mafd; diff --git a/tests/ref/fate/filter-framerate-12bit-down b/tests/ref/fate/filter-framerate-12bit-down index 7a5a7b8e14f6d56a3b5d0a585f7c71ab5b6e57ed..0a9aea0ce1f11114ada6a4e4d686a3a7223a2ea4 100644 --- a/tests/ref/fate/filter-framerate-12bit-down +++ b/tests/ref/fate/filter-framerate-12bit-down @@ -4,7 +4,7 @@ #dimensions 0: 320x240 #sar 0: 1/1 0, 0, 0, 1, 307200, 0xb49cf016 -0, 1, 1, 1, 307200, 0xfe025c7f +0, 1, 1, 1, 307200, 0xc3be6971 0, 2, 2, 1, 307200, 0x4d458da1 0, 3, 3, 1, 307200, 0x35d4d8ea 0, 4, 4, 1, 307200, 0x88f88697 diff --git a/tests/ref/fate/filter-framerate-12bit-up b/tests/ref/fate/filter-framerate-12bit-up index 8f57e6d06661fcccd607a081b08c107d6638ce43..8f5f95b275cab3993146f083d8ae1f32e600353b 100644 --- a/tests/ref/fate/filter-framerate-12bit-up +++ b/tests/ref/fate/filter-framerate-12bit-up @@ -4,7 +4,7 @@ #dimensions 0: 320x240 #sar 0: 1/1 0, 0, 0, 1, 307200, 0xb49cf016 -0, 1, 1, 1, 307200, 0xc74259b4 +0, 1, 1, 1, 307200, 0x59cb92c7 0, 2, 2, 1, 307200, 0xe4ca172c 0, 3, 3, 1, 307200, 0x5378b13c 0, 4, 4, 1, 307200, 0x2a7d4840