#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 , 6 years ago
Priority: | important → normal |
---|---|
Resolution: | → duplicate |
Status: | new → closed |
follow-up: 3 comment:2 by , 6 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 , 6 years ago
Resolution: | → needs_more_info |
---|---|
Status: | reopened → closed |
follow-up: 5 comment:4 by , 6 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 , 6 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 , 6 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 , 6 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 , 6 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 , 6 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.