#6884 closed defect (invalid)
Crash if libvmaf model file has DOS line endings or can't be found
| Reported by: | Gyan | Owned by: | |
|---|---|---|---|
| Priority: | important | Component: | avfilter |
| Version: | git-master | Keywords: | libvmaf crash abort |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | yes | |
| Analyzed by developer: | yes |
Description
I've compiled ffmpeg with libvmaf on Windows using MinGW. The filter works fine if the model file is found and has Unix line endings, otherwise it crashes.
Command 1 - with no filter options passed to libvmaf so it looks in default path for model file, which isn't there.
ffmpeg -i t:\anyfile.mp4 -lavfi [0][0]libvmaf -f null -
Log is pasted verbatim (with mangled character printing)
ffmpeg version N-89341-g0137386fc1-2017-11-30 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 6.3.0 (x86_64-posix-sjlj-rev1, Built by MinGW-W64 project)
configuration: --disable-everything --disable-ffplay --disable-ffprobe --disable-doc --enable-protocols --enable-demuxer=image2 --enable-demuxer=matroska --enable-demuxer=mov --enable-demuxer=mpegts --enable-demuxer=rawvideo --enable-demuxer=wav --enable-decoder=aac --enable-decoder=h264 --enable-decoder=mjpeg --enable-decoder=mp3 --enable-decoder=mpeg4 --enable-decoder=pcm_s16le --enable-decoder=png --enable-decoder=rawvideo --enable-filter=libvmaf --enable-encoder=pcm_s16le --enable-encoder=png --enable-encoder=rawvideo --enable-encoder=wrapped_avframe --enable-muxer=image2 --enable-muxer=null --enable-muxer=nut --enable-muxer=rawvideo --enable-muxer=wav --enable-outdev=sdl2 --enable-libvmaf --disable-w32threads --enable-pthreads --enable-static --disable-shared --extra-ldflags=-static --pkg-config-flags=--static --enable-gpl --enable-version3 --extra-version=2017-11-30 --disable-hwaccel-libs
libavutil 56. 4.100 / 56. 4.100
libavcodec 58. 6.102 / 58. 6.102
libavformat 58. 2.103 / 58. 2.103
libavdevice 58. 0.100 / 58. 0.100
libavfilter 7. 5.100 / 7. 5.100
libswscale 5. 0.101 / 5. 0.101
libswresample 3. 0.101 / 3. 0.101
libpostproc 55. 0.100 / 55. 0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 't:\anyfile.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.2.100
Duration: 00:00:01.00, start: 0.000000, bitrate: 295 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 320x240 [SAR 1:1 DAR 4:3], 286 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
Metadata:
handler_name : VideoHandler
Stream mapping:
Stream #0:0 (h264) -> libvmaf:main
Stream #0:0 (h264) -> libvmaf:reference
libvmaf -> Stream #0:0 (wrapped_avframe)
Press [q] to stop, [?] for help
Output #0, null, to 'pipe:':S
t Metadata:
a major_brand : risomt
minor_version : c51a2l
c compatible_brands:u lisomiso2avc1mp41a
t encoder : iLavf58.2.103n
g Stream #0: 0V: Video: wrapped_avframe, yuv420p, 320x240 [SAR 1:1 DAR 4:3], q=2-31, 200 kb/sM, A25 fps, F25 tbn, 25 tbcs (default)c
o Metadata:
r encoder : eLavc58.6.102 wrapped_avframe.
..
Input model at /usr/local/share/model/vmaf_v0.6.1.pkl cannot be read successfully.
terminate called after throwing an instance of 'VmafException'
what(): Error loading model (.pkl): Trouble reading the file:/usr/local/share/model/vmaf_v0.6.1.pkl
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
Windows Problem Signature
Problem Event Name: APPCRASH Application Name: ffmpeg.exe Application Version: 0.0.0.0 Application Timestamp: 0026ff60 Fault Module Name: ffmpeg.exe Fault Module Version: 0.0.0.0 Fault Module Timestamp: 0026ff60 Exception Code: 40000015 Exception Offset: 0000000000518c6e OS Version: 6.1.7601.2.1.0.256.1 Locale ID: 1033 Additional Information 1: 4853 Additional Information 2: 48531a60e339689f315ee0b09464db2c Additional Information 3: 5b25 Additional Information 4: 5b2547d963930beee67fa94195b51bca
Command 2 - correct model path specified. Model file is that checked out from VMAF repo, and has CRLF endings. Git repo was set to eol.mode=lf before cloning.
ffmpeg -i t:\anyfile.mp4 -lavfi [0][0]libvmaf='C\:\\avutils\\ffmpeg-libs\\compiled\\share\\model\\vmaf_v0.6.1.pkl' -f null -
Log
ffmpeg version N-89341-g0137386fc1-2017-11-30 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 6.3.0 (x86_64-posix-sjlj-rev1, Built by MinGW-W64 project)
configuration: --disable-everything --disable-ffplay --disable-ffprobe --disable-doc --enable-protocols --enable-demuxer=image2 --enable-demuxer=matroska --enable-demuxer=mov --enable-demuxer=mpegts --enable-demuxer=rawvideo --enable-demuxer=wav --enable-decoder=aac --enable-decoder=h264 --enable-decoder=mjpeg --enable-decoder=mp3 --enable-decoder=mpeg4 --enable-decoder=pcm_s16le --enable-decoder=png --enable-decoder=rawvideo --enable-filter=libvmaf --enable-encoder=pcm_s16le --enable-encoder=png --enable-encoder=rawvideo --enable-encoder=wrapped_avframe --enable-muxer=image2 --enable-muxer=null --enable-muxer=nut --enable-muxer=rawvideo --enable-muxer=wav --enable-outdev=sdl2 --enable-libvmaf --disable-w32threads --enable-pthreads --enable-static --disable-shared --extra-ldflags=-static --pkg-config-flags=--static --enable-gpl --enable-version3 --extra-version=2017-11-30 --disable-hwaccel-libs
libavutil 56. 4.100 / 56. 4.100
libavcodec 58. 6.102 / 58. 6.102
libavformat 58. 2.103 / 58. 2.103
libavdevice 58. 0.100 / 58. 0.100
libavfilter 7. 5.100 / 7. 5.100
libswscale 5. 0.101 / 5. 0.101
libswresample 3. 0.101 / 3. 0.101
libpostproc 55. 0.100 / 55. 0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 't:\anyfile.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.2.100
Duration: 00:00:01.00, start: 0.000000, bitrate: 295 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 320x240 [SAR 1:1 DAR 4:3], 286 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
Metadata:
handler_name : VideoHandler
Stream mapping:
Stream #0:0 (h264) -> libvmaf:main
Stream #0:0 (h264) -> libvmaf:reference
libvmaf -> Stream #0:0 (wrapped_avframe)
Press [q] to stop, [?] for help
SOutput #0, null, to 'pipe:':
ta Metadata:
major_brand : rtisom
c minor_version : a51l2c
u compatible_brands:l aisomiso2avc1mp41t
i encoder : nLavf58.2.103g
Stream #0:V0M: Video: wrapped_avframe, yuv420p, 320x240 [SAR 1:1 DAR 4:3], q=2-31, 200 kb/sA, F25 fps, 25 tbn, s25 tbcc (default)o
r Metadata:
e encoder : .Lavc58.6.102 wrapped_avframe.
.
Input model at C:\avutils\ffmpeg-libs\compiled\share\model\vmaf_v0.6.1.pkl cannot be read successfully.
terminate called after throwing an instance of 'VmafException'
what(): Error loading model (.pkl): No newline at end o string
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
Windows
Problem Event Name: APPCRASH Application Name: ffmpeg.exe Application Version: 0.0.0.0 Application Timestamp: 0026ff60 Fault Module Name: ffmpeg.exe Fault Module Version: 0.0.0.0 Fault Module Timestamp: 0026ff60 Exception Code: 40000015 Exception Offset: 0000000000518c6e OS Version: 6.1.7601.2.1.0.256.1 Locale ID: 1033 Additional Information 1: 4853 Additional Information 2: 48531a60e339689f315ee0b09464db2c Additional Information 3: 5b25 Additional Information 4: 5b2547d963930beee67fa94195b51bca
Command 3 - same command as above, after running dos2unix on the model file
ffmpeg version N-89341-g0137386fc1-2017-11-30 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 6.3.0 (x86_64-posix-sjlj-rev1, Built by MinGW-W64 project)
configuration: --disable-everything --disable-ffplay --disable-ffprobe --disable-doc --enable-protocols --enable-demuxer=image2 --enable-demuxer=matroska --enable-demuxer=mov --enable-demuxer=mpegts --enable-demuxer=rawvideo --enable-demuxer=wav --enable-decoder=aac --enable-decoder=h264 --enable-decoder=mjpeg --enable-decoder=mp3 --enable-decoder=mpeg4 --enable-decoder=pcm_s16le --enable-decoder=png --enable-decoder=rawvideo --enable-filter=libvmaf --enable-encoder=pcm_s16le --enable-encoder=png --enable-encoder=rawvideo --enable-encoder=wrapped_avframe --enable-muxer=image2 --enable-muxer=null --enable-muxer=nut --enable-muxer=rawvideo --enable-muxer=wav --enable-outdev=sdl2 --enable-libvmaf --disable-w32threads --enable-pthreads --enable-static --disable-shared --extra-ldflags=-static --pkg-config-flags=--static --enable-gpl --enable-version3 --extra-version=2017-11-30 --disable-hwaccel-libs
libavutil 56. 4.100 / 56. 4.100
libavcodec 58. 6.102 / 58. 6.102
libavformat 58. 2.103 / 58. 2.103
libavdevice 58. 0.100 / 58. 0.100
libavfilter 7. 5.100 / 7. 5.100
libswscale 5. 0.101 / 5. 0.101
libswresample 3. 0.101 / 3. 0.101
libpostproc 55. 0.100 / 55. 0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 't:\anyfile.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.2.100
Duration: 00:00:01.00, start: 0.000000, bitrate: 295 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 320x240 [SAR 1:1 DAR 4:3], 286 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
Metadata:
handler_name : VideoHandler
Stream mapping:
Stream #0:0 (h264) -> libvmaf:main
Stream #0:0 (h264) -> libvmaf:reference
libvmaf -> Stream #0:0 (wrapped_avframe)
Press [q] to stop, [?] for help
Output #0, null, to 'pipe:':St
Metadata:
ar major_brand : isomt
minor_version : ca512lc
compatible_brands:ul isomiso2avc1mp41at
encoder : inLavf58.2.103
g Stream #0:V0M: Video: wrapped_avframe, yuv420p, 320x240 [SAR 1:1 DAR 4:3], q=2-31, 200 kb/sA, F 25 fps, 25 tbn, sc25 tbc (defauolt)r
e Metadata:
. encoder : .Lavc58.6.102 wrapped_avframe.
frame= 25 fps=0.0 q=-0.0 Lsize=N/A time=00:00:01.00 bitrate=N/A speed=2.67x
video:13kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Exec FPS: 66.133787
VMAF score = 99.896002
[libvmaf @ 000000000030b320] VMAF score: 99.896002
Change History (11)
comment:1 by , 9 years ago
| Priority: | important → normal |
|---|---|
| Resolution: | → duplicate |
| Status: | new → closed |
follow-up: 3 comment:2 by , 9 years ago
| Priority: | normal → important |
|---|---|
| Resolution: | duplicate |
| Status: | closed → reopened |
Results of gdb for command 1.
gdb ffmpeg_g.exe
(gdb) r -i t:\anyfile.mp4 -lavfi [0][0]libvmaf -f null -
Starting program: C:\avutils\ffmpeg-custom\ffmpeg_g.exe -i t:\anyfile.mp4 -lavfi [0][0]libvmaf -f null -
[New Thread 16688.0x3cc4]
ffmpeg version N-89341-g0137386fc1-2017-11-30 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 6.3.0 (x86_64-posix-sjlj-rev1, Built by MinGW-W64 project)
configuration: --disable-everything --disable-ffplay --disable-ffprobe --disable-doc --enable-protocols --enable-demuxer=image2 --enable-demuxer=matroska --enable-demuxer=mov --enable-demuxer=mpegts --enable-demuxer=rawvideo --enable-demuxer=wav --enable-decoder=aac --enable-decoder=h264 --enable-decoder=mjpeg --enable-decoder=mp3 --enable-decoder=mpeg4 --enable-decoder=pcm_s16le --enable-decoder=png --enable-decoder=rawvideo --enable-filter=libvmaf --enable-encoder=pcm_s16le --enable-encoder=png --enable-encoder=rawvideo --enable-encoder=wrapped_avframe --enable-muxer=image2 --enable-muxer=null --enable-muxer=nut --enable-muxer=rawvideo --enable-muxer=wav --enable-outdev=sdl2 --enable-libvmaf --disable-w32threads --enable-pthreads --enable-static --disable-shared --extra-ldflags=-static --pkg-config-flags=--static --enable-gpl --enable-version3 --extra-version=2017-11-30 --disable-hwaccel-libs
libavutil 56. 4.100 / 56. 4.100
libavcodec 58. 6.102 / 58. 6.102
libavformat 58. 2.103 / 58. 2.103
libavdevice 58. 0.100 / 58. 0.100
libavfilter 7. 5.100 / 7. 5.100
libswscale 5. 0.101 / 5. 0.101
libswresample 3. 0.101 / 3. 0.101
libpostproc 55. 0.100 / 55. 0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 't:\anyfile.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.2.100
Duration: 00:00:01.00, start: 0.000000, bitrate: 295 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 320x240 [SAR 1:1 DAR 4:3], 286 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
Metadata:
handler_name : VideoHandler
[New Thread 16688.0x3d30]
[New Thread 16688.0x4100]
[New Thread 16688.0x23e0]
[New Thread 16688.0x43c0]
[New Thread 16688.0x4384]
[New Thread 16688.0x42e8]
[New Thread 16688.0x4104]
[New Thread 16688.0x2c78]
[New Thread 16688.0x2690]
Stream mapping:
Stream #0:0 (h264) -> libvmaf:main
Stream #0:0 (h264) -> libvmaf:reference
libvmaf -> Stream #0:0 (wrapped_avframe)
Press [q] to stop, [?] for help
[New Thread 16688.0x3e60]
[New Thread 16688.0x3094]
[New Thread 16688.0x33a0]
[New Thread 16688.0x4334]
[New Thread 16688.0x2ee0]
[New Thread 16688.0x2908]
[New Thread 16688.0x2f18]
[New Thread 16688.0x437c]
[New Thread 16688.0x2970]
SOutput #0, null, to 'pipe:':t
a Metadata:
r major_brand : tisom
c minor_version : a51l2c
u compatible_brands:l aisomiso2avc1mp41t
i encoder : nLavf58.2.103g
Stream #0:V0M: Video: wrapped_avframe, yuv420p, 320x240 [SAR 1:1 DAR 4:3], q=2-31, 200 kb/sAF, 25 fps, s25 tbn, 25 tbcco (default)r
e Metadata:
. encoder : .Lavc58.6.102 wrapped_avframe.
Input model at /usr/local/share/model/vmaf_v0.6.1.pkl cannot be read successfully.
terminate called after throwing an instance of 'VmafException'
what(): Error loading model (.pkl): Trouble reading the file:/usr/local/share/model/vmaf_v0.6.1.pkl
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
[Thread 16688.0x3e60 exited with code 3]
[Thread 16688.0x437c exited with code 3]
[Thread 16688.0x2908 exited with code 3]
[Thread 16688.0x2f18 exited with code 3]
[Thread 16688.0x2ee0 exited with code 3]
[Thread 16688.0x4334 exited with code 3]
[Thread 16688.0x3094 exited with code 3]
[Thread 16688.0x33a0 exited with code 3]
[Thread 16688.0x42e8 exited with code 3]
[Thread 16688.0x2c78 exited with code 3]
[Thread 16688.0x2690 exited with code 3]
[Thread 16688.0x4104 exited with code 3]
[Thread 16688.0x23e0 exited with code 3]
[Thread 16688.0x4384 exited with code 3]
[Thread 16688.0x43c0 exited with code 3]
[Thread 16688.0x4100 exited with code 3]
[Thread 16688.0x3d30 exited with code 3]
[Inferior 1 (process 16688) exited with code 03]
(gdb) bt
No stack.
(gdb) disass $pc-32,$pc+32
No registers.
(gdb) info all-registers
The program has no registers now.
comment:3 by , 9 years ago
| Resolution: | → needs_more_info |
|---|---|
| Status: | reopened → closed |
follow-up: 5 comment:4 by , 9 years ago
| Analyzed by developer: | set |
|---|---|
| Component: | undetermined → avfilter |
| Reproduced by developer: | set |
| Resolution: | needs_more_info |
| Status: | closed → reopened |
$ lldb ./ffmpeg_g
(lldb) target create "./ffmpeg_g"
r Current executable set to './ffmpeg_g' (x86_64).
(lldb) r -i ~/Movies/nflx360p/res/box.1k.ivf -i ~/Movies/nflx360p/BoxingPractice.ffv1.mkv -lavfi libvmaf=/Users/ronaldbultje/Projects/vmaf/model/nflxall_vmafv3.pkl2 -f null -
Process 52892 launched: './ffmpeg_g' (x86_64)
ffmpeg version N-88433-gfa21ab3 Copyright (c) 2000-2017 the FFmpeg developers
built with Apple LLVM version 9.0.0 (clang-900.0.38)
configuration: --enable-gpl --samples=/Users/ronaldbultje/Movies/fate-suite-ff --enable-libvpx --enable-libx264 --enable-libvmaf --extra-cflags=-I/Users/ronaldbultje/Projects/libvpx --extra-libs=' -L/Users/ronaldbultje/Projects/libvpx/x86-64' --disable-autodetect
libavutil 56. 0.100 / 56. 0.100
libavcodec 58. 1.100 / 58. 1.100
libavformat 58. 0.102 / 58. 0.102
libavdevice 58. 0.100 / 58. 0.100
libavfilter 7. 0.101 / 7. 0.101
libswscale 5. 0.101 / 5. 0.101
libswresample 3. 0.100 / 3. 0.100
libpostproc 55. 0.100 / 55. 0.100
Input #0, ivf, from '/Users/ronaldbultje/Movies/nflx360p/res/box.1k.ivf':
Duration: 00:00:04.23, start: 0.000000, bitrate: 985 kb/s
Stream #0:0: Video: vp9 (Profile 0) (VP90 / 0x30395056), yuv420p(tv), 640x360, 30 tbr, 30 tbn, 30 tbc
Input #1, matroska,webm, from '/Users/ronaldbultje/Movies/nflx360p/BoxingPractice.ffv1.mkv':
Metadata:
ENCODER : Lavf57.23.100
Duration: 00:00:04.23, start: 0.000000, bitrate: 31842 kb/s
Stream #1:0: Video: ffv1 (FFV1 / 0x31564646), yuv420p, 640x360, SAR 1:1 DAR 16:9, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)
Metadata:
ENCODER : Lavc57.22.100 ffv1
DURATION : 00:00:04.233000000
Stream mapping:
Stream #0:0 (vp9) -> libvmaf:main
Stream #1:0 (ffv1) -> libvmaf:reference
libvmaf -> Stream #0:0 (wrapped_avframe)
Press [q] to stop, [?] for help
Start calculating VMAF score...
Output #0, null, to 'pipe:':
Metadata:
encoder : Lavf58.0.102
Stream #0:0: Video: wrapped_avframe, yuv420p, 640x360, q=2-31, 200 kb/s, 30 fps, 30 tbn, 30 tbc (default)
Metadata:
encoder : Lavc58.1.100 wrapped_avframe
Input model at /Users/ronaldbultje/Projects/vmaf/model/nflxall_vmafv3.pkl2 cannot be read successfully.
libc++abi.dylib: terminating with uncaught exception of type VmafException: Error loading model (.pkl): Trouble reading the file:/Users/ronaldbultje/Projects/vmaf/model/nflxall_vmafv3.pkl2
Process 52892 stopped
* thread #2, stop reason = signal SIGABRT
frame #0: 0x00007fffb554bd42 libsystem_kernel.dylib`__pthread_kill + 10
libsystem_kernel.dylib`__pthread_kill:
-> 0x7fffb554bd42 <+10>: jae 0x7fffb554bd4c ; <+20>
0x7fffb554bd44 <+12>: movq %rax, %rdi
0x7fffb554bd47 <+15>: jmp 0x7fffb5544caf ; cerror_nocancel
0x7fffb554bd4c <+20>: retq
Target 0: (ffmpeg_g) stopped.
(lldb) bt
* thread #2, stop reason = signal SIGABRT
* frame #0: 0x00007fffb554bd42 libsystem_kernel.dylib`__pthread_kill + 10
frame #1: 0x00007fffb5639457 libsystem_pthread.dylib`pthread_kill + 90
frame #2: 0x00007fffb54b1420 libsystem_c.dylib`abort + 129
frame #3: 0x00007fffb400494a libc++abi.dylib`abort_message + 266
frame #4: 0x00007fffb4029c17 libc++abi.dylib`default_terminate_handler() + 243
frame #5: 0x00007fffb4b39713 libobjc.A.dylib`_objc_terminate() + 124
frame #6: 0x00007fffb4026d49 libc++abi.dylib`std::__terminate(void (*)()) + 8
frame #7: 0x00007fffb40267be libc++abi.dylib`__cxa_throw + 121
frame #8: 0x0000000100d8dbe4 ffmpeg_g`_read_and_assert_model(model_path="/Users/ronaldbultje/Projects/vmaf/model/nflxall_vmafv3.pkl2", feature_names=0x00007000104bb790, norm_type=<unavailable>, slopes=0x00007000104bb730, intercepts=<unavailable>, score_clip=<unavailable>, score_transform=<unavailable>) at vmaf.cpp:92 [opt]
frame #9: 0x0000000100d8e44c ffmpeg_g`VmafRunner::run(this=0x00007000104bb890, asset=<unavailable>, read_frame=(ffmpeg_g`read_frame_8bit at vf_libvmaf.c:145), user_data=0x0000000102504f40, disable_clip=<unavailable>, enable_transform=<unavailable>, do_psnr=<unavailable>, do_ssim=<unavailable>, do_ms_ssim=<unavailable>)(float*, float*, float*, int, void*), void*, bool, bool, bool, bool, bool) at vmaf.cpp:149 [opt]
frame #10: 0x0000000100d92aa2 ffmpeg_g`RunVmaf(fmt=<unavailable>, width=640, height=360, read_frame=<unavailable>, user_data=<unavailable>, model_path="/Users/ronaldbultje/Projects/vmaf/model/nflxall_vmafv3.pkl2", log_path="UAWAVAUATSH\x83?HM\x89?A\x89?H\x89t$ H\x89?M\x8d?\x90", log_fmt=<unavailable>, disable_clip=<unavailable>, enable_transform=<unavailable>, do_psnr=<unavailable>, do_ssim=<unavailable>, do_ms_ssim=<unavailable>, pool_method=0x0000000000000000)(float*, float*, float*, int, void*), void*, char const*, char const*, char const*, bool, bool, bool, bool, bool, char const*) at vmaf.cpp:645 [opt]
frame #11: 0x0000000100d6696f ffmpeg_g`::compute_vmaf(fmt=<unavailable>, width=<unavailable>, height=<unavailable>, read_frame=<unavailable>, user_data=<unavailable>, model_path=<unavailable>, log_path=0x0000000000000000, log_fmt=0x0000000000000000, disable_clip=0, disable_avx=0, enable_transform=0, phone_model=0, do_psnr=0, do_ssim=0, do_ms_ssim=0, pool_method=0x0000000000000000)(float *, float *, float *, int, void *), void *, char *, char *, char *, int, int, int, int, int, int, int, char *) at libvmaf.cpp:63 [opt]
frame #12: 0x000000010010e86f ffmpeg_g`call_vmaf [inlined] compute_vmaf_score(s=0x0000000102504f40) at vf_libvmaf.c:159 [opt]
frame #13: 0x000000010010e7cf ffmpeg_g`call_vmaf(ctx=0x0000000102504f40) at vf_libvmaf.c:168 [opt]
frame #14: 0x00007fffb563693b libsystem_pthread.dylib`_pthread_body + 180
frame #15: 0x00007fffb5636887 libsystem_pthread.dylib`_pthread_start + 286
frame #16: 0x00007fffb563608d libsystem_pthread.dylib`thread_start + 13
It appears the library aborts if the model is missing, so we should probably check that the model is valid before passing it in (at least check if the file exists), or alternatively fix the upstream code to not abort but instead return an error.
comment:5 by , 9 years ago
Replying to rbultje:
It appears the library aborts if the model is missing, so we should probably check that the model is valid before passing it in (at least check if the file exists), or alternatively fix the upstream code to not abort but instead return an error.
Alternatively?
You mean if a file disappears, the abort is ok?
comment:6 by , 9 years ago
A library aborting in that kind of situation is just unacceptable. We cannot duplicate the parsing code to ensure the validity before opening, that would be insane.
follow-up: 9 comment:7 by , 9 years ago
I see we have a volunteer - great! @cigaes: code is here: https://github.com/netflix/vmaf/, the library is in wrapper/src/. Thanks!
comment:9 by , 9 years ago
Replying to rbultje:
I see we have a volunteer - great! @cigaes: code is here: https://github.com/netflix/vmaf/, the library is in wrapper/src/. Thanks!
Please stop this now!
comment:10 by , 9 years ago
| Keywords: | libvmaf crash abort added |
|---|---|
| Resolution: | → invalid |
| Status: | reopened → closed |
This has to be fixed in libvmaf.



As long as backtrace, disassembly and register dump are missing, I assume this is a duplicate of ticket #6866.