6.1.0 regression: broken DVD ISO image playback in VLC 3.0.8
We got the following bug report in Debian (https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=955367):
with this version vlc crashes when trying to open a DVD iso image file. Downgrading to version 6.0.2-2 makes vlc work again. The following messages appear in xinit log:
disc.c:424: error opening file BDMV/index.bdmv disc.c:424: error opening file BDMV/BACKUP/index.bdmv bluray.c:2585: nav_get_title_list((null)) failed libdvdnav: *** pgci_ut handle is NULL ***
Indeed, take any DVD iso image (I created one with devede for testing) and vlc 3.0.8 with libdvdread 6.1.0 and libdvdnav 6.1.0 vlc crashes with:
[000055555555e1d0] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
[New Thread 0x7ffff1617700 (LWP 2978536)]
libdvdnav: DVD Title: DVDVIDEO
libdvdnav: DVD Serial Number: 5E826556000011
libdvdnav: DVD Title (Alternative):
libdvdnav: DVD disk reports itself with Region mask 0x00000001. Regions: 01 02 03 04 05 06 07 08
libdvdread: Attempting to retrieve all CSS keys
libdvdread: This can take a _long_ time, please be patient
libdvdread: Get key for /VIDEO_TS/VIDEO_TS.VOB at 0x00000121
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_01_0.VOB at 0x00000144
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_01_1.VOB at 0x000007c5
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_02_0.VOB at 0x000007e7
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_02_1.VOB at 0x000007f7
libdvdread: Elapsed time 0
libdvdread: Found 2 VTS's
libdvdread: Elapsed time 0
libdvdnav: *** pgci_ut handle is NULL ***
Thread 6 "vlc" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff38e2700 (LWP 2978535)]
play_PGC (vm=vm@entry=0x7fffcc008e20) at src/vm/play.c:70
70 src/vm/play.c: No such file or directory.
(gdb) bt
#0 play_PGC (vm=vm@entry=0x7fffcc008e20) at src/vm/play.c:70
#1 0x00007ffff732725b in vm_start (vm=0x7fffcc008e20) at src/vm/vm.c:345
#2 0x00007ffff731f1ec in dvdnav_get_next_cache_block (len=0x7ffff38e0fe8, event=0x7ffff38e0fe0, buf=0x7ffff38e0f70, this=0x7fffcc001770) at src/dvdnav.c:531
#3 dvdnav_get_next_cache_block (this=0x7fffcc001770, buf=0x7ffff38e0f70, event=0x7ffff38e0fe0, len=0x7ffff38e0fe8) at src/dvdnav.c:519
#4 0x00007ffff731f99a in dvdnav_get_next_block (this=0x7fffcc001770, buf=0x7ffff38e0ff0 "", event=<optimized out>, len=<optimized out>) at src/dvdnav.c:490
#5 0x00007ffff733744e in ?? () from /usr/lib/x86_64-linux-gnu/vlc/plugins/access/libdvdnav_plugin.so
#6 0x00007ffff7338891 in ?? () from /usr/lib/x86_64-linux-gnu/vlc/plugins/access/libdvdnav_plugin.so
#7 0x00007ffff7cb44f3 in ?? () from /usr/lib/x86_64-linux-gnu/libvlccore.so.9
#8 0x00007ffff7cb4a99 in vlc_module_load () from /usr/lib/x86_64-linux-gnu/libvlccore.so.9
#9 0x00007ffff7cd8296 in ?? () from /usr/lib/x86_64-linux-gnu/libvlccore.so.9
#10 0x00007ffff7ce900f in ?? () from /usr/lib/x86_64-linux-gnu/libvlccore.so.9
#11 0x00007ffff7cecbdc in ?? () from /usr/lib/x86_64-linux-gnu/libvlccore.so.9
#12 0x00007ffff7ceea7c in ?? () from /usr/lib/x86_64-linux-gnu/libvlccore.so.9
#13 0x00007ffff7f66f27 in start_thread (arg=<optimized out>) at pthread_create.c:479
#14 0x00007ffff7e932ef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Reverting libdvdread to 6.0.2 fixes this issue.