DeaDBeeF-Player / deadbeef

DeaDBeeF Player
https://deadbeef.sourceforge.io/
Other
1.65k stars 178 forks source link

null output plugin is blocking UI #2159

Closed zinechant closed 5 years ago

zinechant commented 5 years ago

Steps to reproduce the problem

setsid deadbeef

What's going on? Describe the problem in as much detail as possible.

Plasma would crash after launching deadbeef

Information about the software:

Deadbeef version: 1.8.1 OS: Kubuntu 18.04

starting deadbeef 1.8.1 [static] [portable] server_start searching for GUI plugins in /home/zinechant/.local/lib64/deadbeef searching for GUI plugins in /home/zinechant/.local/lib/deadbeef searching for GUI plugins in /home/zinechant/Downloads/deadbeef-1.8.1/plugins load_plugin_dir /home/zinechant/Downloads/deadbeef-1.8.1/plugins: scandir found 55 files found gui plugin ddb_gui_GTK2.so added GTK2 gui plugin found gui plugin ddb_gui_GTK3.so added GTK3 gui plugin load gui plugin checking GUI plugin: GTK2 found selected GUI plugin: GTK2 loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/ddb_gui_GTK2.so loading plugins from /home/zinechant/.local/lib64/deadbeef loading plugins from /home/zinechant/.local/lib/deadbeef loading plugins from /home/zinechant/Downloads/deadbeef-1.8.1/plugins load_plugin_dir /home/zinechant/Downloads/deadbeef-1.8.1/plugins: scandir found 55 files loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/aac.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/adplug.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/alac.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/alsa.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/artwork.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/cdda.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/converter.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/converter_gtk2.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/converter_gtk3.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/dca.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/ddb_dumb.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/ddb_mono2stereo.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/ddb_shn.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/dsp_libsrc.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/ffap.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/ffmpeg.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/flac.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/gme.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/hotkeys.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/in_sc68.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/lastfm.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/m3u.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/mms.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/mp3.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/musepack.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/notify.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/nullout.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/opus.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/oss.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/pltbrowser_gtk2.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/pltbrowser_gtk3.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/psf.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/pulse.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/rg_scanner.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/shellexec.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/shellexecui_gtk2.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/shellexecui_gtk3.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/sid.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/sndfile.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/supereq.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/tta.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/vfs_curl.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/vfs_zip.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/vorbis.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/vtx.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/wavpack.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/wildmidi.so loading plugin /home/zinechant/Downloads/deadbeef-1.8.1/plugins/wma.so starting plugin GTK2 user interface starting plugin AAC player starting plugin Adplug player starting plugin ALAC player starting plugin ALSA output plugin starting plugin Album Artwork starting plugin Audio CD player starting plugin Converter starting plugin Converter GTK2 UI starting plugin Converter GTK3 UI starting plugin dts decoder starting plugin DUMB module player starting plugin Mono to stereo starting plugin Shorten player starting plugin Resampler (Secret Rabbit Code) starting plugin Monkey's Audio (APE) decoder starting plugin FLAC decoder starting plugin Game-Music-Emu player starting plugin Hotkey manager starting plugin SC68 player (Atari ST SNDH YM2149) starting plugin last.fm scrobbler starting plugin M3U and PLS support starting plugin mms vfs starting plugin MP3 player starting plugin MusePack decoder starting plugin OSD Notify starting plugin Null output plugin starting plugin Opus player starting plugin OSS output plugin starting plugin Playlist browser GTK2 starting plugin Playlist browser GTK3 starting plugin PSF player using Audio Overload SDK starting plugin PulseAudio output plugin starting plugin ReplayGain Scanner starting plugin Shell commands starting plugin Shellexec GTK2 UI starting plugin Shellexec GTK3 UI starting plugin SID player starting plugin WAV/PCM player starting plugin SuperEQ starting plugin tta decoder starting plugin cURL vfs starting plugin ZIP vfs starting plugin Ogg Vorbis decoder starting plugin VTX player starting plugin WavPack decoder starting plugin WildMidi player starting plugin WMA player starting plugin stdio vfs starting plugin FFMPEG audio player streamer_set_output selected output plugin: Null output plugin INFO: from file /home/zinechant/.config/deadbeef/playlists/0.dbpl convgui: gtkui plugin not found plugin Converter GTK3 UI failed to connect to dependencies, deactivated. plugin Playlist browser GTK3 failed to connect to dependencies, deactivated. shellexecui: can't find gtkui plugin plugin Shellexec GTK3 UI failed to connect to dependencies, deactivated. resume: track 134 pos 22.198339 playlist 0 gtkui plugin compiled for gtk version: 2.16.0

zinechant commented 5 years ago

Should ALSA output plugin be selected instead of Null output plugin?

Oleksiy-Yakovenko commented 5 years ago

I can't see a crash info in the log. What is setsid? what are you trying to do?

zinechant commented 5 years ago

Sorry, let me explain.

plasma is KDE's graphical workspace environment. setsid is just a way to start deadbeef in background. You could do nohup as well.

Essentially, after I start deadbeef, KDE's task bar (managed by plasma) would hang. I have to kill both plasma and deadbeef and restart plasma.

To add, although crashed plasma, deadbeef does start itself. But wouldn't able to play any flac files.

Oleksiy-Yakovenko commented 5 years ago

Ok. So you're saying that plasma is hanging / crashing / whatever. Cool. Why are you reporting the bug here?

zinechant commented 5 years ago

First, only starting deadbeef crashes plasma. Second, deadbeef won't play flac files even after it crashes plasma.

Oleksiy-Yakovenko commented 5 years ago

I don't think the problem is with FLAC specifically. It won't play any files, since null output is selected.

zinechant commented 5 years ago

I agree with you, is there anyway that I can find out why alsa plugin is not selected?

Oleksiy-Yakovenko commented 5 years ago

Most likely you tried running a version of deadbeef which didn't contain any other output plugin then Nullout. Then it got remembered. All you need to do is select another output plugin in deadbeef settings.

Oleksiy-Yakovenko commented 5 years ago

I don't know how to help you with the plasma problem though. I think you should report it to KDE devs, not to me.

zinechant commented 5 years ago

You are right. I deleted ~/.config/deadbeef. And both alsa-plugin problem and plasma problem are gone. Thank you very much.

kuba160 commented 5 years ago

The option "Resume playback on startup" and nullout output plugin can create problems like unresponsiveness and make GUI not show up (at least on Plasma), maybe resuming playback should be disabled for nullout by default (through an option)?

saivert commented 5 years ago

The issue is that null output plugin decodes as fast as possible and causes the UI thread to hang for some reason. Happens to me too. I can sometimes get it to respond properly if I restart playback several times and then see the progress bar slider move very quickly but more often than not it just freezes and eventually I have to kill deadbeef. I think the reason is that is causes an overflow of UI updates which glitches out the compositor or the toolkit. But since people aren't generally supposed to use NULL output for anything except decode benchmarks and debugging it is as low priority as it can be.

Oleksiy-Yakovenko commented 5 years ago

Reopening, since this seems to be an actual issue with nullout blocking the UI thread.