libdvb: crash on multiple frontends
Users might encounter few errors in attempt of using some popular hybrid single tuners which can tune both DVB-T2 and cable(just not in the same time):
dvb stream error: libdvbpsi error (PSI decoder): TS discontinuity (received 8, expected 2) for PID 16
free(): invalid pointer
Thread 16 "vlc" received signal SIGABRT, Aborted.
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x00007ffff7d99859 in __GI_abort () at abort.c:79
#2 0x00007ffff7e043ee in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7ffff7f2e285 "%s\n") at ../sysdeps/posix/libc_fatal.c:155
#3 0x00007ffff7e0c47c in malloc_printerr (str=str@entry=0x7ffff7f2c4ae "free(): invalid pointer") at malloc.c:5347
#4 0x00007ffff7e0dcac in _int_free (av=<optimized out>, p=<optimized out>, have_lock=0) at malloc.c:4173
#5 0x00007fffbf4c62b0 in ?? () from /usr/lib/x86_64-linux-gnu/vlc/plugins/access/libdvb_plugin.so
#6 0x00007fffbf4a557f in dvbpsi_sdt_sections_gather () from /lib/x86_64-linux-gnu/libdvbpsi.so.10
#7 0x00007fffbf4a2a47 in dvbpsi_packet_push () from /lib/x86_64-linux-gnu/libdvbpsi.so.10
#8 0x00007fffbf4cbcb7 in ?? () from /usr/lib/x86_64-linux-gnu/vlc/plugins/access/libdvb_plugin.so
#9 0x00007fffbf4c0ecb in ?? () from /usr/lib/x86_64-linux-gnu/vlc/plugins/access/libdvb_plugin.so
#10 0x00007ffff7cd0adc in vlc_stream_ReadBlock () from /lib/x86_64-linux-gnu/libvlccore.so.9
#11 0x00007ffff7cac9dd in ?? () from /lib/x86_64-linux-gnu/libvlccore.so.9
#12 0x00007ffff7cd0627 in vlc_stream_ReadPartial () from /lib/x86_64-linux-gnu/libvlccore.so.9
#13 0x00007ffff4e153e6 in ?? () from /usr/lib/x86_64-linux-gnu/vlc/plugins/stream_filter/libprefetch_plugin.so
There is no way to specify which DVR device should be used with combo of :dvb-device=1 option(without renaming of dvr0 file as root):
Thread 16 "vlc" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffbf59d700 (LWP 190480)]
0x00007fffbf5a5f6b in dvbpsi_sdt_empty () from /lib/x86_64-linux-gnu/libdvbpsi.so.10
#0 0x00007fffbf5a5f6b in dvbpsi_sdt_empty () from /lib/x86_64-linux-gnu/libdvbpsi.so.10
#1 0x00007fffbf5a5fb2 in dvbpsi_sdt_delete () from /lib/x86_64-linux-gnu/libdvbpsi.so.10
#2 0x00007fffbf5c72b0 in ?? () from /usr/lib/x86_64-linux-gnu/vlc/plugins/access/libdvb_plugin.so
#3 0x00007fffbf5a657f in dvbpsi_sdt_sections_gather () from /lib/x86_64-linux-gnu/libdvbpsi.so.10
#4 0x00007fffbf5a3a47 in dvbpsi_packet_push () from /lib/x86_64-linux-gnu/libdvbpsi.so.10
#5 0x00007fffbf5cccb7 in ?? () from /usr/lib/x86_64-linux-gnu/vlc/plugins/access/libdvb_plugin.so
#6 0x00007fffbf5c1ecb in ?? () from /usr/lib/x86_64-linux-gnu/vlc/plugins/access/libdvb_plugin.so
#7 0x00007ffff7cd0adc in vlc_stream_ReadBlock () from /lib/x86_64-linux-gnu/libvlccore.so.9
#8 0x00007ffff7cac9dd in ?? () from /lib/x86_64-linux-gnu/libvlccore.so.9
#9 0x00007ffff7cd0627 in vlc_stream_ReadPartial () from /lib/x86_64-linux-gnu/libvlccore.so.9
#10 0x00007ffff4e153e6 in ?? () from /usr/lib/x86_64-linux-gnu/vlc/plugins/stream_filter/libprefetch_plugin.so
Since renaming of such files is not something which is recommended, any other user will see following:
VLC media player 3.0.9.2
dvb stream debug: DVB scan mode selected
Opening device /dev/dvb/adapter0/frontend1
Frontend Info:
name = Panasonic MN88473
type = QAM (DVB-C)
frequency_min = 42000000 (kHz)
frequency_max = 1002000000 (kHz)
frequency_stepsize = 0
frequency_tolerance = 0
symbol_rate_min = 1000000 (kHz)
symbol_rate_max = 7200000 (kHz)
symbol_rate_tolerance (ppm) = 0
notifier_delay (ms) = 0
Frontend Info capability list:
inversion auto
forward error correction 1/2
forward error correction 2/3
forward error correction 3/4
forward error correction 5/6
forward error correction 7/8
forward error correction auto
QPSK modulation
QAM 16 modulation
QAM 32 modulation
QAM 64 modulation
QAM 128 modulation
QAM 256 modulation
QAM auto modulation
transmission mode auto
guard interval mode auto
hierarchy mode auto
2nd generation modulation (DVB-S2)
spurious TS muting
End of capability list
Opening device /dev/dvb/adapter0/dvr1
dvb stream error: DVROpen: opening device failed: No such file or directory
dtv stream error: cannot access DVR: No such file or directory
initially we can only see these files inside adapter0:
- demux0
- dvr0
- frontend0
- frontend1
- net0
VLC should always try to find DVR device which actually exists!