-
Nicolas George authored
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)
a8ab52fa