Playback crashes kernel when looping images in full screen on Raspian Buster
Found running vlc from python. Verified crash running vlc interface in Rasbian. Playback stalls and ctrl C cannot break out to the shell. Does not occur in Windows. VLC version 3.0.8 Vetinari Python process can be killed. VLC requires kill -9 in both cases the you can only kill the process by ssh. No task switching is possible on the UI until the process is killed.
Very simple build of a playlist of 3 800x600 png files. Python3. Playback works fine if not in fullscreen mode. Using Loop. Same error if I manually detect the end of playback and manually change the index of the current item to 0. Gets through the list once or twice.
Included the kernel messages and code Using the February Buster Rasbian getting these from the syslogd
Message from syslogd@raspberrypi at Apr 21 15:31:57 ... kernel:[ 8865.951650] Internal error: Oops: 2817 [#4] SMP ARM
Message from syslogd@raspberrypi at Apr 21 15:31:57 ... kernel:[ 8865.951825] Process python3.7 (pid: 21827, stack limit = 0x9418daeb)
Message from syslogd@raspberrypi at Apr 21 15:31:57 ... kernel:[ 8865.951830] Stack: (0xa4fd9de8 to 0xa4fda000)
Message from syslogd@raspberrypi at Apr 21 15:31:57 ... kernel:[ 8865.951838] 9de0: a4fd9e1c a4fd9df8 802a3530 80110974 98d921b4 a046a200
Message from syslogd@raspberrypi at Apr 21 15:31:57 ... kernel:[ 8865.951846] 9e00: 00000000 8011b058 0003dd52 80d04d48 a4fd9e9c a4fd9e20 8029a704 802a34d4
Message from syslogd@raspberrypi at Apr 21 15:31:57 ... kernel:[ 8865.951854] 9e20: 00000001 00000001 806d70d8 806d7090 a4fd9e74 a4e66420 00000055 006200ca
Message from syslogd@raspberrypi at Apr 21 15:31:57 ... kernel:[ 8865.951861] 9e40: 0003dd52 4906d000 90c15240 90c15240 3dd5271f 00000000 00000000 00000000
Message from syslogd@raspberrypi at Apr 21 15:31:57 ... kernel:[ 8865.951869] 9e60: 98d921b4 b63b789c 00000000 71846931 a4fd9e9c a4fd9fb0 a06bda00 4906d000
Message from syslogd@raspberrypi at Apr 21 15:31:57 ... kernel:[ 8865.951877] 9e80: aaa69e00 0000080f aaa69e3c 80863af8 a4fd9ef4 a4fd9ea0 80863af8 801772b8
import os import vlc import time from os.path import basename, expanduser, isfile, join as joined import sys
Instance = vlc.Instance('') player = Instance.media_player_new() listplayer = Instance.media_list_player_new() path = '/media/pi/EMP/Media/3Numbers/' medialist = Instance.media_list_new() player.set_fullscreen(True)
def getDirectoryList(rpath): listoffiles = [] for i in os.listdir(path): file = path + i pathfile = { 'filepath': file } listoffiles.append(pathfile) return listoffiles
try: if name == "main":
playlist = getDirectoryList(path)
for file in playlist:
medialist.add_media(Instance.media_new(file["filepath"]))
listplayer.set_media_player(player)
listplayer.set_media_list(medialist)
listplayer.set_playback_mode(vlc.PlaybackMode.loop)
listplayer.play()
while True:
time.sleep(5)
print("step") # indicator of how my cycles
except : print ("uncaught exception")