Opened 7 years ago
Closed 7 years ago
#7802 closed defect (invalid)
libvpx-vp9 encode causes segmentation fault
| Reported by: | Karthick Jeyapal | Owned by: | |
|---|---|---|---|
| Priority: | normal | Component: | avcodec |
| Version: | git-master | Keywords: | libvpx crash |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | no | |
| Analyzed by developer: | no |
Description
Summary of the bug: libvpx-vp9 encode causes segmentation fault
lipvpx version : Latest master (v1.8.0-289-g5cde05fda)
ffmpeg version : Latest master (N-93431-g6dc1da416e)
OS : Mac OS 10.14.3 (Mojave)
Platform : MacBook Pro
How to reproduce:
blr-mp4tf:ABR-Broadcaster kjeyapal$ ffmpeg -i ~/Downloads/big_buck_bunny_1080p_stereo.avi -c:v libvpx-vp9 -pix_fmt yuv420p -cpu-used 3 -tile-columns 3 -frame-parallel 1 -deadline realtime -threads 4 -lag-in-frames 0 -b:v 1000k -an out.mp4
ffmpeg version N-93431-g6dc1da416e Copyright (c) 2000-2019 the FFmpeg developers
built with Apple LLVM version 10.0.0 (clang-1000.11.45.5)
configuration: --enable-libx264 --enable-libvpx --enable-gpl
libavutil 56. 26.100 / 56. 26.100
libavcodec 58. 47.105 / 58. 47.105
libavformat 58. 26.101 / 58. 26.101
libavdevice 58. 7.100 / 58. 7.100
libavfilter 7. 48.100 / 7. 48.100
libswscale 5. 4.100 / 5. 4.100
libswresample 3. 4.100 / 3. 4.100
libpostproc 55. 4.100 / 55. 4.100
Input #0, avi, from '/Users/kjeyapal/Downloads/big_buck_bunny_1080p_stereo.avi':
Metadata:
encoder : MEncoder 2:1.0~rc2-0ubuntu13
Duration: 00:09:56.46, start: 0.000000, bitrate: 9586 kb/s
Stream #0:0: Video: msmpeg4v2 (MP42 / 0x3234504D), yuv420p, 1920x1080, 9328 kb/s, 24 fps, 24 tbr, 24 tbn, 24 tbc
Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, fltp, 245 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (msmpeg4v2 (native) -> vp9 (libvpx-vp9))
Press [q] to stop, [?] for help
[libvpx-vp9 @ 0x7f9d34044c00] v1.8.0-289-g5cde05fda
Segmentation fault: 11
Change History (4)
comment:1 by , 7 years ago
| Keywords: | crash added; ibvpx-vp9 removed |
|---|
comment:2 by , 7 years ago
blr-mp4tf:ffmpeg kjeyapal$ lldb ./ffmpeg_g
(lldb) target create "./ffmpeg_g"
Current executable set to './ffmpeg_g' (x86_64).
(lldb) r -i ~/Downloads/big_buck_bunny_1080p_stereo.avi -c:v libvpx-vp9 -pix_fmt yuv420p -cpu-used 3 -tile-columns 3 -frame-parallel 1 -deadline realtime -threads 4 -lag-in-frames 0 -b:v 1000k -an out.mp4
Process 44593 launched: './ffmpeg_g' (x86_64)
ffmpeg version N-93431-g6dc1da416e Copyright (c) 2000-2019 the FFmpeg developers
built with Apple LLVM version 10.0.0 (clang-1000.11.45.5)
configuration: --enable-libx264 --enable-libvpx --enable-gpl
libavutil 56. 26.100 / 56. 26.100
libavcodec 58. 47.105 / 58. 47.105
libavformat 58. 26.101 / 58. 26.101
libavdevice 58. 7.100 / 58. 7.100
libavfilter 7. 48.100 / 7. 48.100
libswscale 5. 4.100 / 5. 4.100
libswresample 3. 4.100 / 3. 4.100
libpostproc 55. 4.100 / 55. 4.100
Input #0, avi, from '/Users/kjeyapal/Downloads/big_buck_bunny_1080p_stereo.avi':
Metadata:
encoder : MEncoder 2:1.0~rc2-0ubuntu13
Duration: 00:09:56.46, start: 0.000000, bitrate: 9586 kb/s
Stream #0:0: Video: msmpeg4v2 (MP42 / 0x3234504D), yuv420p, 1920x1080, 9328 kb/s, 24 fps, 24 tbr, 24 tbn, 24 tbc
Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, fltp, 245 kb/s
File 'out.mp4' already exists. Overwrite ? [y/N] y
Stream mapping:
Stream #0:0 -> #0:0 (msmpeg4v2 (native) -> vp9 (libvpx-vp9))
Press [q] to stop, [?] for help
[libvpx-vp9 @ 0x10300f200] v1.8.0-289-g5cde05fda
Process 44593 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x21af5c8)
frame #0: 0x00007fff6808ece8 libsystem_pthread.dylib`__pthread_once_handler + 70
libsystem_pthread.dylib`__pthread_once_handler:
-> 0x7fff6808ece8 <+70>: movq %rax, 0x8(%rbx)
0x7fff6808ecec <+74>: movq (%r14), %rax
0x7fff6808ecef <+77>: movq $0x4f4e4345, (%rax) ; imm = 0x4F4E4345
0x7fff6808ecf6 <+84>: addq $0x18, %rsp
Target 0: (ffmpeg_g) stopped.
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x21af5c8)
* frame #0: 0x00007fff6808ece8 libsystem_pthread.dylib`__pthread_once_handler + 70
frame #1: 0x00007fff68084acb libsystem_platform.dylib`_os_once_callout + 18
frame #2: 0x00007fff6808ec7f libsystem_pthread.dylib`pthread_once + 56
frame #3: 0x00000001010eab7d ffmpeg_g`vp9_initialize_enc + 29
frame #4: 0x00007fff6808ece4 libsystem_pthread.dylib`__pthread_once_handler + 66
frame #5: 0x00007fff68084acb libsystem_platform.dylib`_os_once_callout + 18
frame #6: 0x00007fff6808ec7f libsystem_pthread.dylib`pthread_once + 56
frame #7: 0x0000000101097f81 ffmpeg_g`encoder_init + 193
frame #8: 0x0000000101001df1 ffmpeg_g`vpx_codec_enc_init_ver + 161
frame #9: 0x000000010087f0b4 ffmpeg_g`vpx_init(avctx=0x000000010300f200, iface=<unavailable>) at libvpxenc.c:719 [opt]
frame #10: 0x0000000100b77cac ffmpeg_g`avcodec_open2(avctx=0x000000010300f200, codec=0x000000010158f218, options=0x000000010270c560) at utils.c:934 [opt]
frame #11: 0x000000010001fefb ffmpeg_g`init_output_stream(ost=<unavailable>, error="", error_len=1024) at ffmpeg.c:3516 [opt]
frame #12: 0x00000001000215bc ffmpeg_g`reap_filters(flush=0) at ffmpeg.c:1441 [opt]
frame #13: 0x000000010001ab77 ffmpeg_g`transcode [inlined] transcode_step at ffmpeg.c:4645 [opt]
frame #14: 0x00000001000192a4 ffmpeg_g`transcode at ffmpeg.c:4689 [opt]
frame #15: 0x00000001000165e9 ffmpeg_g`main(argc=<unavailable>, argv=<unavailable>) at ffmpeg.c:4891 [opt]
frame #16: 0x00007fff67e9ced9 libdyld.dylib`start + 1
frame #17: 0x00007fff67e9ced9 libdyld.dylib`start + 1
(lldb) register read
General Purpose Registers:
rax = 0x00007ffeefbfd410
rbx = 0x00000000021af5c0
rcx = 0x0000000000000000
rdx = 0x000000009c000000
rdi = 0x00000000000027ab
rsi = 0x000000000000000d
rbp = 0x00007ffeefbfd390
rsp = 0x00007ffeefbfd360
r8 = 0x0000000000000012
r9 = 0x00000000ffffffee
r10 = 0x00007ffeefbff9f0
r11 = 0xffff800212c2334f
r12 = 0x00007fff6808eca2 libsystem_pthread.dylib`__pthread_once_handler
r13 = 0x000000010300f200
r14 = 0x00007ffeefbfd3c0
r15 = 0x00007ffeefbfd360
rip = 0x00007fff6808ece8 libsystem_pthread.dylib`__pthread_once_handler + 70
rflags = 0x0000000000010246
cs = 0x000000000000002b
fs = 0x0000000000000000
gs = 0x0000000000000000
(lldb) disassemble --pc libsystem_pthread.dylib`__pthread_once_handler:
-> 0x7fff6808ece8 <+70>: movq %rax, 0x8(%rbx)
0x7fff6808ecec <+74>: movq (%r14), %rax
0x7fff6808ecef <+77>: movq $0x4f4e4345, (%rax) ; imm = 0x4F4E4345
0x7fff6808ecf6 <+84>: addq $0x18, %rsp
(lldb)
Please find backtrace, disassembly and register dump above. Please let me know if anything else is required.
comment:3 by , 7 years ago
The backtrace indicates an issue in libvpx afaict, maybe recompiling libvpx with debug symbols shows the issue in a more readable way.
comment:4 by , 7 years ago
| Resolution: | → invalid |
|---|---|
| Status: | new → closed |
When I did a "make distclean" and then rebuilt both libvpx and ffmpeg, it started working.
Sorry for the false alarm. Looks like everything was fine.



Please provide backtrace, disassembly and register dump as explained on https://ffmpeg.org/bugreports.html