[FFmpeg-cvslog] avfilter/vf_libvmaf: fix filtering of >8 bit data
Paul B Mahol
git at videolan.org
Mon Oct 14 00:43:58 EEST 2019
ffmpeg | branch: master | Paul B Mahol <onemda at gmail.com> | Sat Oct 12 21:41:50 2019 +0200| [e835a9d30263ce16e2621d79ff1be9afd5274a60] | committer: Paul B Mahol
avfilter/vf_libvmaf: fix filtering of >8 bit data
This is what reference does.
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e835a9d30263ce16e2621d79ff1be9afd5274a60
---
libavfilter/vf_libvmaf.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/libavfilter/vf_libvmaf.c b/libavfilter/vf_libvmaf.c
index 249e50c720..ed3a383709 100644
--- a/libavfilter/vf_libvmaf.c
+++ b/libavfilter/vf_libvmaf.c
@@ -110,6 +110,7 @@ FRAMESYNC_DEFINE_CLASS(libvmaf, LIBVMAFContext, fs);
const type *main_ptr = (const type *) s->gmain->data[0]; \
\
float *ptr = ref_data; \
+ float factor = 1.f / (1 << (bits - 8)); \
\
int h = s->height; \
int w = s->width; \
@@ -118,7 +119,7 @@ FRAMESYNC_DEFINE_CLASS(libvmaf, LIBVMAFContext, fs);
\
for (i = 0; i < h; i++) { \
for ( j = 0; j < w; j++) { \
- ptr[j] = (float)ref_ptr[j]; \
+ ptr[j] = ref_ptr[j] * factor; \
} \
ref_ptr += ref_stride / sizeof(*ref_ptr); \
ptr += stride / sizeof(*ptr); \
@@ -128,7 +129,7 @@ FRAMESYNC_DEFINE_CLASS(libvmaf, LIBVMAFContext, fs);
\
for (i = 0; i < h; i++) { \
for (j = 0; j < w; j++) { \
- ptr[j] = (float)main_ptr[j]; \
+ ptr[j] = main_ptr[j] * factor; \
} \
main_ptr += main_stride / sizeof(*main_ptr); \
ptr += stride / sizeof(*ptr); \
More information about the ffmpeg-cvslog
mailing list