On Thu, 14 May 2020, lance.lmw...@gmail.com wrote:
From: Limin Wang <lance.lmw...@gmail.com>
Reviewed-by: Paul B Mahol <one...@gmail.com>
Signed-off-by: Limin Wang <lance.lmw...@gmail.com>
---
libavfilter/vf_framerate.c | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/libavfilter/vf_framerate.c b/libavfilter/vf_framerate.c
index 6c8d01c..8d16998 100644
--- a/libavfilter/vf_framerate.c
+++ b/libavfilter/vf_framerate.c
@@ -71,13 +71,20 @@ static double get_scene_score(AVFilterContext *ctx, AVFrame
*crnt, AVFrame *next
if (crnt->height == next->height &&
crnt->width == next->width) {
+ AVDictionaryEntry *e_mafd = NULL;
uint64_t sad;
- double mafd, diff;
+ double mafd = HUGE_VAL, diff;
+ char *tail = NULL;
ff_dlog(ctx, "get_scene_score() process\n");
- s->sad(crnt->data[0], crnt->linesize[0], next->data[0], next->linesize[0],
crnt->width, crnt->height, &sad);
- emms_c();
- mafd = (double)sad * 100.0 / (crnt->width * crnt->height) / (1 <<
s->bitdepth);
+ e_mafd = av_dict_get(next->metadata, "lavfi.scd.mafd", NULL,
AV_DICT_MATCH_CASE);
+ if (e_mafd)
+ mafd = strtod(e_mafd->value, &tail);
+ if (*tail || mafd == HUGE_VAL) {
Seems like null pointer dereference.
I am not a huge fan of this patch, mafd refers to a score between this
frame and the previous frame, we cannot ensure that there were no
additional frame processing between scdet and this filter which may have
duplicated or removed frames. So I'd rather not add this feature.
Regards,
Marton
+ s->sad(crnt->data[0], crnt->linesize[0], next->data[0], next->linesize[0],
crnt->width, crnt->height, &sad);
+ emms_c();
+ mafd = (double)sad * 100.0 / (crnt->width * crnt->height) / (1 <<
s->bitdepth);
+ }
diff = fabs(mafd - s->prev_mafd);
ret = av_clipf(FFMIN(mafd, diff), 0, 100.0);
s->prev_mafd = mafd;
--
1.8.3.1
_______________________________________________
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".
_______________________________________________
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".