Skip to content

4.0 regression: interop_vdpau segfaults

Playing any video with hardware decoding acceleration crashes:

[00007f208b23ab80] main generic debug: using opengl module "glx"
[00007f208b23a920] main generic debug: looking for glinterop module matching "any": 2 candidates
../../modules/video_output/opengl/interop_vdpau.c:183:5: runtime error: member access within null pointer of type 'struct converter_sys_t'
AddressSanitizer:DEADLYSIGNAL
=================================================================
==995974==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000008 (pc 0x7f20919abe82 bp 0x7f208b23a800 sp 0x7f208b23a720 T12)
==995974==The signal is caused by a READ memory access.
==995974==Hint: address points to the zero page.
    #0 0x7f20919abe82 in Open ../../modules/video_output/opengl/interop_vdpau.c:183
    #1 0x7f20acd886fb in generic_start ../../src/modules/modules.c:275
    #2 0x7f20acd88310 in vlc_module_load ../../src/modules/modules.c:243
    #3 0x7f20acd88831 in module_need ../../src/modules/modules.c:286
    #4 0x7f2082f673ba in module_need_var ../../include/vlc_modules.h:120
    #5 0x7f2082f6ef46 in vlc_gl_interop_New ../../modules/video_output/opengl/interop.c:403
    #6 0x7f2082f4104d in vout_display_opengl_New ../../modules/video_output/opengl/vout_helper.c:136
    #7 0x7f2082f27ffe in Open ../../modules/video_output/opengl/display.c:170
    #8 0x7f20acf9ec24 in vout_display_New ../../src/video_output/display.c:678
    #9 0x7f20ad010991 in vout_OpenWrapper ../../src/video_output/vout_wrapper.c:78
    #10 0x7f20acfbdbd2 in vout_Start ../../src/video_output/video_output.c:1654
    #11 0x7f20acfc4a3b in vout_Request ../../src/video_output/video_output.c:2112
    #12 0x7f20acf3ecf0 in input_resource_RequestVout ../../src/input/resource.c:497
    #13 0x7f20ace169a7 in ModuleThread_UpdateVideoFormat ../../src/input/decoder.c:478
    #14 0x7f20ace3a07a in decoder_UpdateVideoOutput ../../src/input/decoder_helpers.c:151
    #15 0x7f20912604ae in ffmpeg_GetFormat ../../modules/codec/avcodec/video.c:1734
    #16 0x7f209000fd18  (/usr/lib/x86_64-linux-gnu/libavcodec.so.58+0x27cd18)
    #17 0x7f209011c816  (/usr/lib/x86_64-linux-gnu/libavcodec.so.58+0x389816)
    #18 0x7f209011ccc8  (/usr/lib/x86_64-linux-gnu/libavcodec.so.58+0x389cc8)
    #19 0x7f20901201be  (/usr/lib/x86_64-linux-gnu/libavcodec.so.58+0x38d1be)
    #20 0x7f2090125747  (/usr/lib/x86_64-linux-gnu/libavcodec.so.58+0x392747)
    #21 0x7f20903e1d7a  (/usr/lib/x86_64-linux-gnu/libavcodec.so.58+0x64ed7a)
    #22 0x7f20abc46d7f in start_thread nptl/pthread_create.c:481
    #23 0x7f20abb71bde in clone (/lib/x86_64-linux-gnu/libc.so.6+0xfcbde)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV ../../modules/video_output/opengl/interop_vdpau.c:183 in Open
Thread T12 created by T11 here:
    #0 0x7f20adac2716 in __interceptor_pthread_create ../../../../src/libsanitizer/asan/asan_interceptors.cpp:216
    #1 0x7f208fe5ea3c  (/usr/lib/x86_64-linux-gnu/libavcodec.so.58+0xcba3c)

Thread T11 created by T0 here:
    #0 0x7f20adac2716 in __interceptor_pthread_create ../../../../src/libsanitizer/asan/asan_interceptors.cpp:216
    #1 0x7f20ad0ffa9c in vlc_clone_attr ../../src/posix/thread.c:179
    #2 0x7f20ad0ffc8f in vlc_clone ../../src/posix/thread.c:192
    #3 0x7f20acead48f in input_Start ../../src/input/input.c:177
    #4 0x7f20acef8be7 in vlc_player_input_Start ../../src/player/input.c:96
    #5 0x7f20aceec54f in vlc_player_Start ../../src/player/player.c:1174
    #6 0x7f20acdc02aa in vlc_playlist_Start ../../src/playlist/player.c:176
    #7 0x7f20acda8d97 in libvlc_InternalPlay ../../src/interface/interface.c:238
    #8 0x7f20ad99f01a in libvlc_playlist_play ../../lib/playlist.c:36
    #9 0x5639c7827464 in main ../../bin/vlc.c:245
    #10 0x7f20aba9c7ec in __libc_start_main ../csu/libc-start.c:332

==995974==ABORTING
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information