Nicolas George
a8ab52fae7
lavfi/vf_libvmaf: convert to framesync2.
...
After this commit, the code compiles, but on my setup it
segfaults before and after. It also prints the very worrying
warning:
src/libavfilter/vf_libvmaf.c:161:66: warning: passing argument 4 of ‘compute_vmaf’ from incompatible pointer type [-Wincompatible-pointer-types]
/tmp/i/include/libvmaf.h:26:8: note: expected ‘int (*)(float *, float *, float *, int, void *)’ but argument is of type ‘int (*)(float *, float *, float *, int, double *, void *)’
==12116== Thread 6:
==12116== Conditional jump or move depends on uninitialised value(s)
==12116== at 0x526D432: cons_ (ocval.h:1188)
==12116== by 0x526D432: GenericIT (ocval.h:1119)
==12116== by 0x526D432: OC::TranslateForNumPyClassesToArray(OC::Val&) (pickleloader.h:92)
==12116== by 0x5211F5D: loads (pickleloader.h:566)
==12116== by 0x5211F5D: LoadValFromArray (chooseser.h:290)
==12116== by 0x5211F5D: LoadValFromFile (chooseser.h:405)
==12116== by 0x5211F5D: _read_and_assert_model(char const*, OC::Val&, OC::Val&, OC::Val&, OC::Val&, OC::Val&, OC::Val&) (vmaf.cpp:77)
==12116== by 0x5212B0F: VmafRunner::run(Asset, int (*)(float*, float*, float*, int, void*), void*, bool, bool, bool, bool, bool) (vmaf.cpp:149)
==12116== by 0x52165B6: RunVmaf(char const*, int, int, int (*)(float*, float*, float*, int, void*), void*, char const*, char const*, char const*, bool, bool, bool, bool, bool, char const*) (vmaf.cpp:645)
==12116== by 0x518AFFF: compute_vmaf_score (vf_libvmaf.c:161)
==12116== by 0x518AFFF: call_vmaf (vf_libvmaf.c:170)
==12116== by 0x7967493: start_thread (pthread_create.c:333)
==12116== by 0x7F69A8E: clone (clone.S:97)
==12116==
==12116== Conditional jump or move depends on uninitialised value(s)
==12116== at 0x526D432: cons_ (ocval.h:1188)
==12116== by 0x526D432: GenericIT (ocval.h:1119)
==12116== by 0x526D432: OC::TranslateForNumPyClassesToArray(OC::Val&) (pickleloader.h:92)
==12116== by 0x526D50D: OC::TranslateForNumPyClassesToArray(OC::Val&) (pickleloader.h:94)
==12116== by 0x5211F5D: loads (pickleloader.h:566)
==12116== by 0x5211F5D: LoadValFromArray (chooseser.h:290)
==12116== by 0x5211F5D: LoadValFromFile (chooseser.h:405)
==12116== by 0x5211F5D: _read_and_assert_model(char const*, OC::Val&, OC::Val&, OC::Val&, OC::Val&, OC::Val&, OC::Val&) (vmaf.cpp:77)
==12116== by 0x5212B0F: VmafRunner::run(Asset, int (*)(float*, float*, float*, int, void*), void*, bool, bool, bool, bool, bool) (vmaf.cpp:149)
==12116== by 0x52165B6: RunVmaf(char const*, int, int, int (*)(float*, float*, float*, int, void*), void*, char const*, char const*, char const*, bool, bool, bool, bool, bool, char const*) (vmaf.cpp:645)
==12116== by 0x518AFFF: compute_vmaf_score (vf_libvmaf.c:161)
==12116== by 0x518AFFF: call_vmaf (vf_libvmaf.c:170)
==12116== by 0x7967493: start_thread (pthread_create.c:333)
==12116== by 0x7F69A8E: clone (clone.S:97)
==12116==
==12116== Conditional jump or move depends on uninitialised value(s)
==12116== at 0x526D432: cons_ (ocval.h:1188)
==12116== by 0x526D432: GenericIT (ocval.h:1119)
==12116== by 0x526D432: OC::TranslateForNumPyClassesToArray(OC::Val&) (pickleloader.h:92)
==12116== by 0x526D50D: OC::TranslateForNumPyClassesToArray(OC::Val&) (pickleloader.h:94)
==12116== by 0x526D50D: OC::TranslateForNumPyClassesToArray(OC::Val&) (pickleloader.h:94)
==12116== by 0x5211F5D: loads (pickleloader.h:566)
==12116== by 0x5211F5D: LoadValFromArray (chooseser.h:290)
==12116== by 0x5211F5D: LoadValFromFile (chooseser.h:405)
==12116== by 0x5211F5D: _read_and_assert_model(char const*, OC::Val&, OC::Val&, OC::Val&, OC::Val&, OC::Val&, OC::Val&) (vmaf.cpp:77)
==12116== by 0x5212B0F: VmafRunner::run(Asset, int (*)(float*, float*, float*, int, void*), void*, bool, bool, bool, bool, bool) (vmaf.cpp:149)
==12116== by 0x52165B6: RunVmaf(char const*, int, int, int (*)(float*, float*, float*, int, void*), void*, char const*, char const*, char const*, bool, bool, bool, bool, bool, char const*) (vmaf.cpp:645)
==12116== by 0x518AFFF: compute_vmaf_score (vf_libvmaf.c:161)
==12116== by 0x518AFFF: call_vmaf (vf_libvmaf.c:170)
==12116== by 0x7967493: start_thread (pthread_create.c:333)
==12116== by 0x7F69A8E: clone (clone.S:97)
==12116==
==12116== Use of uninitialised value of size 8
==12116== at 0x518AC79: read_frame_8bit (vf_libvmaf.c:147)
==12116== by 0x52AB5E8: combo (combo.c:149)
==12116== by 0x5212E95: VmafRunner::run(Asset, int (*)(float*, float*, float*, int, void*), void*, bool, bool, bool, bool, bool) (vmaf.cpp:278)
==12116== by 0x52165B6: RunVmaf(char const*, int, int, int (*)(float*, float*, float*, int, void*), void*, char const*, char const*, char const*, bool, bool, bool, bool, bool, char const*) (vmaf.cpp:645)
==12116== by 0x518AFFF: compute_vmaf_score (vf_libvmaf.c:161)
==12116== by 0x518AFFF: call_vmaf (vf_libvmaf.c:170)
==12116== by 0x7967493: start_thread (pthread_create.c:333)
==12116== by 0x7F69A8E: clone (clone.S:97)
==12116==
==12116== Invalid read of size 4
==12116== at 0x518AC79: read_frame_8bit (vf_libvmaf.c:147)
==12116== by 0x52AB5E8: combo (combo.c:149)
==12116== by 0x5212E95: VmafRunner::run(Asset, int (*)(float*, float*, float*, int, void*), void*, bool, bool, bool, bool, bool) (vmaf.cpp:278)
==12116== by 0x52165B6: RunVmaf(char const*, int, int, int (*)(float*, float*, float*, int, void*), void*, char const*, char const*, char const*, bool, bool, bool, bool, bool, char const*) (vmaf.cpp:645)
==12116== by 0x518AFFF: compute_vmaf_score (vf_libvmaf.c:161)
==12116== by 0x518AFFF: call_vmaf (vf_libvmaf.c:170)
==12116== by 0x7967493: start_thread (pthread_create.c:333)
==12116== by 0x7F69A8E: clone (clone.S:97)
==12116== Address 0x40 is not stack'd, malloc'd or (recently) free'd
==12116==
==12116==
==12116== Process terminating with default action of signal 11 (SIGSEGV)
==12116== Access not within mapped region at address 0x40
==12116== at 0x518AC79: read_frame_8bit (vf_libvmaf.c:147)
==12116== by 0x52AB5E8: combo (combo.c:149)
==12116== by 0x5212E95: VmafRunner::run(Asset, int (*)(float*, float*, float*, int, void*), void*, bool, bool, bool, bool, bool) (vmaf.cpp:278)
==12116== by 0x52165B6: RunVmaf(char const*, int, int, int (*)(float*, float*, float*, int, void*), void*, char const*, char const*, char const*, bool, bool, bool, bool, bool, char const*) (vmaf.cpp:645)
==12116== by 0x518AFFF: compute_vmaf_score (vf_libvmaf.c:161)
==12116== by 0x518AFFF: call_vmaf (vf_libvmaf.c:170)
==12116== by 0x7967493: start_thread (pthread_create.c:333)
==12116== by 0x7F69A8E: clone (clone.S:97)
7 years ago