serranya / deadbeef-mpris2-plugin Goto Github PK
View Code? Open in Web Editor NEWA rewrite of the seemingly orphaned deadbeef-mpris-plugin originally written by HuangCongyu
License: GNU General Public License v2.0
A rewrite of the seemingly orphaned deadbeef-mpris-plugin originally written by HuangCongyu
License: GNU General Public License v2.0
I installed timidity-freepats to enable midi playback in deadbeef, however wildmidi seems to conflict with mpris plugin. when both plugin is enabled and wildmidi is configure to use the correct timidity configuration, deadbeef will crash with
GLib-GIO:ERROR:gdbusconnection.c:4188:invoke_get_property_in_idle_cb: assertion failed: (error != NULL)
I tried to debug with dbus-monitor, and this is what I get when deadbeef crashes:
method call time=1444158386.459409 sender=:1.430 -> destination=org.freedesktop.DBus serial=1 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=Hello
method return time=1444158386.459432 sender=org.freedesktop.DBus -> destination=:1.430 serial=1 reply_serial=1
string ":1.430"
signal time=1444158386.459442 sender=org.freedesktop.DBus -> destination=(null destination) serial=2697 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
string ":1.430"
string ""
string ":1.430"
signal time=1444158386.459455 sender=org.freedesktop.DBus -> destination=:1.430 serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired
string ":1.430"
method call time=1444158386.460495 sender=:1.430 -> destination=org.freedesktop.DBus serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=RequestName
string "org.mpris.MediaPlayer2.DeaDBeeF"
uint32 2
signal time=1444158386.460512 sender=org.freedesktop.DBus -> destination=(null destination) serial=2698 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
string "org.mpris.MediaPlayer2.DeaDBeeF"
string ""
string ":1.430"
signal time=1444158386.460525 sender=org.freedesktop.DBus -> destination=:1.430 serial=3 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired
string "org.mpris.MediaPlayer2.DeaDBeeF"
method return time=1444158386.460534 sender=org.freedesktop.DBus -> destination=:1.430 serial=4 reply_serial=2
uint32 1
method call time=1444158386.460855 sender=:1.6 -> destination=org.mpris.MediaPlayer2.DeaDBeeF serial=874 path=/org/mpris/MediaPlayer2; interface=org.freedesktop.DBus.Properties; member=Get
string "org.mpris.MediaPlayer2"
string "Identity"
method return time=1444158386.461109 sender=:1.430 -> destination=:1.6 serial=3 reply_serial=874
variant string "DeaDBeeF"
method call time=1444158386.461466 sender=:1.6 -> destination=org.mpris.MediaPlayer2.DeaDBeeF serial=875 path=/org/mpris/MediaPlayer2; interface=org.freedesktop.DBus.Properties; member=Get
string "org.mpris.MediaPlayer2.Player"
string "Volume"
method call time=1444158386.461597 sender=:1.6 -> destination=org.mpris.MediaPlayer2.DeaDBeeF serial=876 path=/org/mpris/MediaPlayer2; interface=org.freedesktop.DBus.Properties; member=Get
string "org.mpris.MediaPlayer2.Player"
string "PlaybackStatus"
signal time=1444158386.461612 sender=:1.6 -> destination=(null destination) serial=877 path=/Mixers/MPRIS2__Playback_Streams_1; interface=org.kde.KMix.Mixer; member=changed
method return time=1444158386.461849 sender=:1.430 -> destination=:1.6 serial=4 reply_serial=875
variant double 0.82
signal time=1444158386.461999 sender=:1.6 -> destination=(null destination) serial=878 path=/Mixers/MPRIS2__Playback_Streams_1; interface=org.kde.KMix.Mixer; member=controlChanged
method call time=1444158386.531145 sender=:1.71 -> destination=org.freedesktop.DBus serial=75053 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=GetNameOwner
string "org.mpris.MediaPlayer2.DeaDBeeF"
method return time=1444158386.531175 sender=org.freedesktop.DBus -> destination=:1.71 serial=2699 reply_serial=75053
string ":1.430"
method call time=1444158386.531615 sender=:1.71 -> destination=org.freedesktop.DBus serial=75054 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
string "type='signal',sender='org.freedesktop.DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged',arg0='org.mpris.MediaPlayer2.DeaDBeeF'"
method call time=1444158386.531630 sender=:1.71 -> destination=org.freedesktop.DBus serial=75055 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=GetNameOwner
string "org.mpris.MediaPlayer2.DeaDBeeF"
method return time=1444158386.531639 sender=org.freedesktop.DBus -> destination=:1.71 serial=2700 reply_serial=75055
string ":1.430"
method call time=1444158386.531646 sender=:1.71 -> destination=org.freedesktop.DBus serial=75056 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=GetNameOwner
string "org.mpris.MediaPlayer2.DeaDBeeF"
method return time=1444158386.531654 sender=org.freedesktop.DBus -> destination=:1.71 serial=2701 reply_serial=75056
string ":1.430"
method call time=1444158386.531784 sender=:1.71 -> destination=org.freedesktop.DBus serial=75057 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
string "type='signal',sender='org.mpris.MediaPlayer2.DeaDBeeF',path='/org/mpris/MediaPlayer2',interface='org.freedesktop.DBus.Properties',member='PropertiesChanged'"
method call time=1444158386.531888 sender=:1.71 -> destination=org.freedesktop.DBus serial=75058 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=GetNameOwner
string "org.mpris.MediaPlayer2.DeaDBeeF"
method return time=1444158386.531902 sender=org.freedesktop.DBus -> destination=:1.71 serial=2702 reply_serial=75058
string ":1.430"
method call time=1444158386.531999 sender=:1.71 -> destination=org.freedesktop.DBus serial=75059 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
string "type='signal',sender='org.mpris.MediaPlayer2.DeaDBeeF',path='/org/mpris/MediaPlayer2',interface='org.mpris.MediaPlayer2.Player',member='Seeked'"
method call time=1444158386.532049 sender=:1.71 -> destination=org.mpris.MediaPlayer2.DeaDBeeF serial=75060 path=/org/mpris/MediaPlayer2; interface=org.freedesktop.DBus.Properties; member=GetAll
string "org.mpris.MediaPlayer2"
method call time=1444158386.532143 sender=:1.71 -> destination=org.mpris.MediaPlayer2.DeaDBeeF serial=75061 path=/org/mpris/MediaPlayer2; interface=org.freedesktop.DBus.Properties; member=GetAll
string "org.mpris.MediaPlayer2.Player"
signal time=1444158386.562451 sender=org.freedesktop.DBus -> destination=:1.430 serial=9 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameLost
string "org.mpris.MediaPlayer2.DeaDBeeF"
signal time=1444158386.562474 sender=org.freedesktop.DBus -> destination=(null destination) serial=2703 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
string "org.mpris.MediaPlayer2.DeaDBeeF"
string ":1.430"
string ""
signal time=1444158386.562783 sender=org.freedesktop.DBus -> destination=:1.430 serial=10 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameLost
string ":1.430"
signal time=1444158386.562798 sender=org.freedesktop.DBus -> destination=(null destination) serial=2704 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
string ":1.430"
string ":1.430"
string ""
error time=1444158386.562812 sender=org.freedesktop.DBus -> destination=:1.71 error_name=org.freedesktop.DBus.Error.NoReply reply_serial=75061
string "Message recipient disconnected from message bus without replying"
error time=1444158386.562821 sender=org.freedesktop.DBus -> destination=:1.71 error_name=org.freedesktop.DBus.Error.NoReply reply_serial=75060
string "Message recipient disconnected from message bus without replying"
error time=1444158386.562855 sender=org.freedesktop.DBus -> destination=:1.6 error_name=org.freedesktop.DBus.Error.NoReply reply_serial=876
string "Message recipient disconnected from message bus without replying"
signal time=1444158386.563913 sender=:1.6 -> destination=(null destination) serial=879 path=/Mixers/MPRIS2__Playback_Streams_1; interface=org.kde.KMix.Mixer; member=changed
method call time=1444158386.564753 sender=:1.71 -> destination=org.freedesktop.DBus serial=75062 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=RemoveMatch
string "type='signal',sender='org.mpris.MediaPlayer2.DeaDBeeF',path='/org/mpris/MediaPlayer2',interface='org.freedesktop.DBus.Properties',member='PropertiesChanged'"
method call time=1444158386.564777 sender=:1.71 -> destination=org.freedesktop.DBus serial=75063 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=RemoveMatch
string "type='signal',sender='org.mpris.MediaPlayer2.DeaDBeeF',path='/org/mpris/MediaPlayer2',interface='org.mpris.MediaPlayer2.Player',member='Seeked'"
method call time=1444158386.564788 sender=:1.71 -> destination=org.freedesktop.DBus serial=75064 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=RemoveMatch
string "type='signal',sender='org.freedesktop.DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged',arg0='org.mpris.MediaPlayer2.DeaDBeeF'"
signal time=1444158388.146221 sender=:1.36 -> destination=(null destination) serial=101572 path=/StatusNotifierItem; interface=org.kde.StatusNotifierItem; member=NewIcon
signal time=1444158388.146282 sender=:1.36 -> destination=(null destination) serial=101573 path=/StatusNotifierItem; interface=org.kde.StatusNotifierItem; member=NewToolTip
signal time=1444158388.146300 sender=:1.36 -> destination=(null destination) serial=101574 path=/StatusNotifierItem; interface=org.kde.StatusNotifierItem; member=NewIcon
signal time=1444158388.146313 sender=:1.36 -> destination=(null destination) serial=101575 path=/StatusNotifierItem; interface=org.kde.StatusNotifierItem; member=NewToolTip
signal time=1444158388.146327 sender=:1.36 -> destination=(null destination) serial=101576 path=/StatusNotifierItem; interface=org.kde.StatusNotifierItem; member=NewIcon
signal time=1444158388.146340 sender=:1.36 -> destination=(null destination) serial=101577 path=/StatusNotifierItem; interface=org.kde.StatusNotifierItem; member=NewToolTip
signal time=1444158388.146354 sender=:1.36 -> destination=(null destination) serial=101578 path=/StatusNotifierItem; interface=org.kde.StatusNotifierItem; member=NewIcon
signal time=1444158388.146368 sender=:1.36 -> destination=(null destination) serial=101579 path=/StatusNotifierItem; interface=org.kde.StatusNotifierItem; member=NewToolTip
method call time=1444158388.158161 sender=:1.71 -> destination=org.kde.StatusNotifierItem-2427-1 serial=75065 path=/StatusNotifierItem; interface=org.freedesktop.DBus.Properties; member=GetAll
string "org.kde.StatusNotifierItem"
method return time=1444158388.158306 sender=:1.36 -> destination=:1.71 serial=101580 reply_serial=75065
The plugin segfaults in strlen because apparently get_default_cover() returns NULL. That's the line:
https://github.com/Serranya/deadbeef-mpris2-plugin/blob/master/src/mprisServer.c#L162
Backtrace:
http://pastebin.com/raw.php?i=WgqKeAdA
And btw. thx for the plugin :)
Recently stumbled upon this plugin, thanks for implementing.
I'm using archlinux x64 and have installed deadbeef-git from AUR, as well as deadbeef-mpris2-plugin.
I'm getting the following crash on some files:
MPRIS Debug Info: get Metadata duration: 288000000
MPRIS Debug Info: get Metadata album: Complication
MPRIS Debug Info: get Metadata albumArtist: (null)
MPRIS Debug Info: get Metadata artist: ROOKiEZ is PUNK’D
MPRIS Debug Info: getting cover for album Complication
MPRIS Debug Info: cover for Complication not ready. Using default artwork
Segmentation Fault
backtrace() returned 10 addresses
deadbeef() [0x403aa1]
/usr/lib/libc.so.6(+0x33540) [0x7fe0e965f540]
/usr/lib/libc.so.6(strlen+0x2a) [0x7fe0e96ac20a]
/usr/lib/deadbeef/mpris.so(getMetadataForTrack+0x7d0) [0x7fe0cf421f30]
/usr/lib/deadbeef/mpris.so(emitMetadataChanged+0x38) [0x7fe0cf422a98]
/usr/lib/deadbeef/mpris.so(+0x1cd7) [0x7fe0cf420cd7]
deadbeef() [0x404b1f]
deadbeef() [0x404e29]
/usr/lib/libpthread.so.0(+0x7374) [0x7fe0e99d6374]
/usr/lib/libc.so.6(clone+0x6d) [0x7fe0e971427d]
Removing the plugin makes the file play fine again.
Using deadbeef 0.6.2 static build, I cannot load this plugin to deadbeef. The console log says:
loading plugin /opt/deadbeef/lib/deadbeef/mpris.so
WARNING: plugin "MPRISv2 plugin" wants API v1.8 (got 1.7), will not be loaded
plugin not found or failed to load
How can I solve this. What API does not match at all?
I tried following the instructions but I get the following error:
CC src/mpris_la-mpris.lo
In file included from src/mpris.c:3:0:
src/mprisServer.h:8:31: fatal error: deadbeef/deadbeef.h: No such file or directory
#include <deadbeef/deadbeef.h>
^
compilation terminated.
make: *** [src/mpris_la-mpris.lo] Error 1
I'm on Ubuntu 14.04, deadbeef installed via the deb package in the official website.
These are the changes I had to make to build this plugin on "deadbeef plugin builder", with GLIB 2.28 and friends, and older autotools.
https://github.com/Alexey-Yakovenko/deadbeef-plugin-builder/blob/master/plugins/mpris/make.diff
You don't have to merge these, but they make stuff compatible with more systems.
It is still in 1.11 which is buggy.
It happens when I try to autoreconf --install
running command
dbus-send --print-reply --dest=org.mpris.MediaPlayer2.DeaDBeeF /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Seek int64:5000000
(or -5000000)
makes deadbeef jump to next file instead of seeking forward (or backward).
The same command with another player specified (VLC, for instance, among others) behaves as expected.
Currently, to bring deadbeef to foreground, plugin looks for deadbeef.desktop and launches it. This is not possible to do in case we are using portable deadbeef, which is currently THE official way of distribution. In this case deadbeef.desktop does not exist and even if we'll make one, this effectively makes the program no longer portable.
Deadbeef developer suggested that the following should be used instead:
deadbeef->sendmessage (DB_EV_ACTIVATED, 0, 0, 0);
CC src/mpris_la-mpris.lo
In file included from src/mpris.c:3:
In file included from src/mprisServer.h:11:
/usr/include/deadbeef/deadbeef.h:1851:65: error: unknown type name 'ddb_response_t'
int (*exec_cmdline) (const char *cmdline, int cmdline_size, ddb_response_t *response);
^
1 error generated.
make: *** [Makefile:511: src/mpris_la-mpris.lo] Error 1
This already uses gdbus which is capable of working with the mainloop of the GTK UI plugin.
I know there are alternative GUI plugins but it is recommended to not run a separate thread for dbus especially if you use gdbus. It is not necessary.
I also resolved an issue by removing the threading code in my experimental build.
Check my branch here: https://github.com/saivert/deadbeef-mpris2-plugin/tree/remove_threading_code2
EDIT: recreated the branch to base on latest master
The git version works, but not the plugins in DeaDBeeF download page.
starting deadbeef 0.7.2
server_start
INFO: unlink socket: 沒有此一檔案或目錄
failed to load config file
created an empty config
searching for GUI plugins in /home/laichiaheng/.local/lib64/deadbeef
searching for GUI plugins in /home/laichiaheng/.local/lib/deadbeef
searching for GUI plugins in /usr/lib/deadbeef
load_plugin_dir /usr/lib/deadbeef: scandir found 56 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 /usr/lib/deadbeef/ddb_gui_GTK2.so
loading plugins from /home/laichiaheng/.local/lib64/deadbeef
loading plugins from /home/laichiaheng/.local/lib/deadbeef
loading plugins from /usr/lib/deadbeef
load_plugin_dir /usr/lib/deadbeef: scandir found 56 files
loading plugin /usr/lib/deadbeef/aac.so
loading plugin /usr/lib/deadbeef/adplug.so
loading plugin /usr/lib/deadbeef/alac.so
loading plugin /usr/lib/deadbeef/alsa.so
loading plugin /usr/lib/deadbeef/artwork.so
loading plugin /usr/lib/deadbeef/cdda.so
loading plugin /usr/lib/deadbeef/converter.so
loading plugin /usr/lib/deadbeef/converter_gtk2.so
loading plugin /usr/lib/deadbeef/converter_gtk3.so
loading plugin /usr/lib/deadbeef/dca.so
loading plugin /usr/lib/deadbeef/ddb_ao.so
loading plugin /usr/lib/deadbeef/ddb_dumb.so
loading plugin /usr/lib/deadbeef/ddb_misc_replaygain_scan.so
loading plugin /usr/lib/deadbeef/ddb_misc_replaygain_scan_GTK2.so
loading plugin /usr/lib/deadbeef/ddb_misc_replaygain_scan_GTK3.so
loading plugin /usr/lib/deadbeef/ddb_mono2stereo.so
loading plugin /usr/lib/deadbeef/ddb_shn.so
loading plugin /usr/lib/deadbeef/dsp_libsrc.so
loading plugin /usr/lib/deadbeef/ffap.so
loading plugin /usr/lib/deadbeef/ffmpeg.so
loading plugin /usr/lib/deadbeef/flac.so
loading plugin /usr/lib/deadbeef/gme.so
loading plugin /usr/lib/deadbeef/hotkeys.so
loading plugin /usr/lib/deadbeef/in_sc68.so
loading plugin /usr/lib/deadbeef/lastfm.so
loading plugin /usr/lib/deadbeef/m3u.so
loading plugin /usr/lib/deadbeef/mms.so
loading plugin /usr/lib/deadbeef/mp3.so
loading plugin /usr/lib/deadbeef/mpris.so
loading plugin /usr/lib/deadbeef/musepack.so
loading plugin /usr/lib/deadbeef/notify.so
loading plugin /usr/lib/deadbeef/nullout.so
loading plugin /usr/lib/deadbeef/oss.so
loading plugin /usr/lib/deadbeef/pltbrowser_gtk2.so
loading plugin /usr/lib/deadbeef/pltbrowser_gtk3.so
loading plugin /usr/lib/deadbeef/pulse.so
loading plugin /usr/lib/deadbeef/shellexec.so
loading plugin /usr/lib/deadbeef/shellexecui_gtk2.so
loading plugin /usr/lib/deadbeef/shellexecui_gtk3.so
loading plugin /usr/lib/deadbeef/sid.so
loading plugin /usr/lib/deadbeef/sndfile.so
loading plugin /usr/lib/deadbeef/supereq.so
loading plugin /usr/lib/deadbeef/tta.so
loading plugin /usr/lib/deadbeef/vfs_curl.so
loading plugin /usr/lib/deadbeef/vfs_zip.so
loading plugin /usr/lib/deadbeef/vorbis.so
loading plugin /usr/lib/deadbeef/vtx.so
loading plugin /usr/lib/deadbeef/wavpack.so
loading plugin /usr/lib/deadbeef/wildmidi.so
loading plugin /usr/lib/deadbeef/wma.so
selected output plugin: ALSA output plugin
convgui: gtkui plugin not found
plugin Converter GTK3 UI failed to connect to dependencies, deactivated.
rgscangui: gtkui plugin not found
plugin Replay Gain Scanner 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.
gtkui plugin compiled for gtk version: 2.24.32
(deadbeef:30723): GLib-GIO-CRITICAL **: 15:16:02.307: g_dbus_connection_emit_signal: assertion 'G_IS_DBUS_CONNECTION (connection)' failed
(deadbeef:30723): GLib-GIO-CRITICAL **: 15:16:02.309: g_dbus_connection_emit_signal: assertion 'G_IS_DBUS_CONNECTION (connection)' failed
deadbeef: playlist.c:319:plt_unref: 假設『plt->refc > 0』失敗。
已經終止 (核心已傾印)
Hi!
After a compilation, the 'make intall' tries to install the plugin into the /usr/lib/deadbeef-mpris2-plugin folder instead of /usr/lib/deadbeef
As is see all of this came from the AC_INIT variable from configure.ac
For developers:
kevin335200@kevin335200:~/tmp/deadbeef-mpris2-plugin$ autoreconf --install
aclocal: warning: couldn't open directory 'm4': No such file or directory
configure.ac:18: error: possibly undefined macro: AC_PROG_LIBTOOL
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
autoreconf: /usr/bin/autoconf failed with exit status: 1
kevin335200@kevin335200:~/tmp/deadbeef-mpris2-plugin$ ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for gcc option to accept ISO C99... none needed
checking for ar... ar
checking the archiver (ar) interface... ar
./configure: line 3890: AC_PROG_LIBTOOL: command not found
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
./configure: line 4012: LT_INIT: command not found
checking for GLIB_DEPS... yes
checking for GIO_DEPS... yes
checking for GIOUNIX_DEPS... yes
checking for GTHREAD_DEPS... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: error: cannot find input file: `Makefile.in'
make: No rule to make target 'install'. Stop.
For Users:
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for gcc option to accept ISO C99... none needed
checking for ar... ar
checking the archiver (ar) interface... ar
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/x86_64-linux-gnu-ld
checking if the linker (/usr/bin/x86_64-linux-gnu-ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/x86_64-linux-gnu-ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for archiver @file support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/x86_64-linux-gnu-ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for GLIB_DEPS... yes
checking for GIO_DEPS... yes
checking for GIOUNIX_DEPS... yes
checking for GTHREAD_DEPS... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: executing depfiles commands
config.status: executing libtool commands
kevin335200@kevin335200:~/tmp/deadbeef-1.11$ make install
CC src/mpris_la-mpris.lo
In file included from src/mpris.c:3:0:
src/mprisServer.h:9:10: fatal error: deadbeef/deadbeef.h: No such file or directory
#include <deadbeef/deadbeef.h>
^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
Makefile:497: recipe for target 'src/mpris_la-mpris.lo' failed
make: *** [src/mpris_la-mpris.lo] Error 1
./configure
works but created a few errors like
configure: error: in
/home/nnn/Downloads/deadbeef-1.8':`
configure: error: C compiler cannot create executables
once I hit make I get
Error "make: *** No rule to make target
install'. Stop."`
Any idea?
Console messages:
loading plugin /usr/lib/deadbeef/mpris.so
MPRIS Debug Info: Loading...
loading plugin /usr/lib/deadbeef/musepack.so
loading plugin /usr/lib/deadbeef/notify.so
loading plugin /usr/lib/deadbeef/nullout.so
loading plugin /usr/lib/deadbeef/oss.so
loading plugin /usr/lib/deadbeef/pltbrowser_gtk2.so
loading plugin /usr/lib/deadbeef/pltbrowser_gtk3.so
loading plugin /usr/lib/deadbeef/pulse.so
loading plugin /usr/lib/deadbeef/shellexec.so
loading plugin /usr/lib/deadbeef/shellexecui_gtk2.so
loading plugin /usr/lib/deadbeef/shellexecui_gtk3.so
loading plugin /usr/lib/deadbeef/sid.so
loading plugin /usr/lib/deadbeef/sndfile.so
loading plugin /usr/lib/deadbeef/supereq.so
loading plugin /usr/lib/deadbeef/tta.so
loading plugin /usr/lib/deadbeef/vfs_curl.so
loading plugin /usr/lib/deadbeef/vfs_zip.so
loading plugin /usr/lib/deadbeef/vorbis.so
loading plugin /usr/lib/deadbeef/vtx.so
loading plugin /usr/lib/deadbeef/wavpack.so
loading plugin /usr/lib/deadbeef/wildmidi.so
loading plugin /usr/lib/deadbeef/wma.so
MPRIS Debug Info: Bus accquired
MPRIS Debug Info: name accquired: org.mpris.MediaPlayer2.DeaDBeeF
MPRIS Debug Info: Registering/org/mpris/MediaPlayer2object...
MPRIS Debug Info: Get property call on Player interface. sender: :1.5, propertyName: PlaybackStatus
Segmentation Fault
backtrace() returned 11 addresses
deadbeef() [0x403aa1]
/usr/lib/libc.so.6(+0x33b20) [0x7f5763b46b20]
/usr/lib/deadbeef/mpris.so(+0x2c83) [0x7f574bac6c83]
/usr/lib/libgio-2.0.so.0(+0xcbee8) [0x7f5761e96ee8]
/usr/lib/libglib-2.0.so.0(g_main_context_dispatch+0x15d) [0x7f5760d6b91d]
/usr/lib/libglib-2.0.so.0(+0x49cf8) [0x7f5760d6bcf8]
/usr/lib/libglib-2.0.so.0(g_main_loop_run+0xc2) [0x7f5760d6c022]
/usr/lib/deadbeef/mpris.so(startServer+0x7e) [0x7f574bac711e]
/usr/lib/libglib-2.0.so.0(+0x705f5) [0x7f5760d925f5]
/usr/lib/libpthread.so.0(+0x7314) [0x7f5763ebd314]
/usr/lib/libc.so.6(clone+0x6d) [0x7f5763bfb5bd]
GDB output:
[[myusername]@[myhost] deadbeef-mpris2-plugin]$ gdb deadbeef
GNU gdb (GDB) 7.8.1
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
http://www.gnu.org/software/gdb/bugs/.
Find the GDB manual and other documentation resources online at:
http://www.gnu.org/software/gdb/documentation/.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from deadbeef...(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/bin/deadbeef
warning: Could not load shared library symbols for linux-vdso.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
starting deadbeef 0.6.2
server_start
searching for GUI plugins in /home/[myusername]/.local/lib64/deadbeef
searching for GUI plugins in /home/[myusername]/.local/lib/deadbeef
searching for GUI plugins in /usr/lib/deadbeef
plug_load_all: scandir found 54 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 /usr/lib/deadbeef/ddb_gui_GTK2.so
loading plugins from /home/[myusername]/.local/lib64/deadbeef
loading plugins from /home/[myusername]/.local/lib/deadbeef
loading plugins from /usr/lib/deadbeef
plug_load_all: scandir found 54 files
loading plugin /usr/lib/deadbeef/aac.so
loading plugin /usr/lib/deadbeef/adplug.so
loading plugin /usr/lib/deadbeef/alac.so
loading plugin /usr/lib/deadbeef/alsa.so
loading plugin /usr/lib/deadbeef/artwork.so
loading plugin /usr/lib/deadbeef/cdda.so
loading plugin /usr/lib/deadbeef/converter.so
loading plugin /usr/lib/deadbeef/converter_gtk2.so
loading plugin /usr/lib/deadbeef/converter_gtk3.so
loading plugin /usr/lib/deadbeef/dca.so
loading plugin /usr/lib/deadbeef/ddb_ao.so
loading plugin /usr/lib/deadbeef/ddb_archive_reader.so
loading plugin /usr/lib/deadbeef/ddb_dumb.so
loading plugin /usr/lib/deadbeef/ddb_mono2stereo.so
loading plugin /usr/lib/deadbeef/ddb_shn.so
loading plugin /usr/lib/deadbeef/dsp_libsrc.so
loading plugin /usr/lib/deadbeef/ffap.so
loading plugin /usr/lib/deadbeef/ffmpeg.so
loading plugin /usr/lib/deadbeef/flac.so
loading plugin /usr/lib/deadbeef/gme.so
loading plugin /usr/lib/deadbeef/hotkeys.so
loading plugin /usr/lib/deadbeef/jack.so
loading plugin /usr/lib/deadbeef/lastfm.so
loading plugin /usr/lib/deadbeef/m3u.so
loading plugin /usr/lib/deadbeef/mms.so
loading plugin /usr/lib/deadbeef/mpgmad.so
loading plugin /usr/lib/deadbeef/mpris.so
MPRIS Debug Info: Loading...
loading plugin /usr/lib/deadbeef/musepack.so
loading plugin /usr/lib/deadbeef/notify.so
loading plugin /usr/lib/deadbeef/nullout.so
loading plugin /usr/lib/deadbeef/oss.so
loading plugin /usr/lib/deadbeef/pltbrowser_gtk2.so
loading plugin /usr/lib/deadbeef/pltbrowser_gtk3.so
loading plugin /usr/lib/deadbeef/pulse.so
loading plugin /usr/lib/deadbeef/shellexec.so
loading plugin /usr/lib/deadbeef/shellexecui_gtk2.so
loading plugin /usr/lib/deadbeef/shellexecui_gtk3.so
loading plugin /usr/lib/deadbeef/sid.so
loading plugin /usr/lib/deadbeef/sndfile.so
loading plugin /usr/lib/deadbeef/supereq.so
loading plugin /usr/lib/deadbeef/tta.so
loading plugin /usr/lib/deadbeef/vfs_curl.so
loading plugin /usr/lib/deadbeef/vfs_zip.so
loading plugin /usr/lib/deadbeef/vorbis.so
loading plugin /usr/lib/deadbeef/vtx.so
loading plugin /usr/lib/deadbeef/wavpack.so
loading plugin /usr/lib/deadbeef/wildmidi.so
loading plugin /usr/lib/deadbeef/wma.so
[New Thread 0x7fffdab06700 (LWP 14168)]
[New Thread 0x7fffda305700 (LWP 14169)]
[New Thread 0x7fffd9b04700 (LWP 14170)]
[New Thread 0x7fffd9303700 (LWP 14171)]
[New Thread 0x7fffd8b02700 (LWP 14172)]
[New Thread 0x7fffd3fff700 (LWP 14173)]
MPRIS Debug Info: Bus accquired
MPRIS Debug Info: name accquired: org.mpris.MediaPlayer2.DeaDBeeF
MPRIS Debug Info: Registering/org/mpris/MediaPlayer2object...
MPRIS Debug Info: Get property call on Player interface. sender: :1.5, propertyName: PlaybackStatus
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffd9303700 (LWP 14171)]
onPlayerGetPropertyHandler (connection=, sender=, objectPath=, interfaceName=,
propertyName=, error=, userData=0x6334c0) at src/mprisServer.c:315
315 switch (output->state()) {
(gdb) backtrace
#0 onPlayerGetPropertyHandler (connection=, sender=, objectPath=, interfaceName=,
propertyName=<optimized out>, error=<optimized out>, userData=0x6334c0) at src/mprisServer.c:315
#1 0x00007ffff5696ee8 in ?? () from /usr/lib/libgio-2.0.so.0
#2 0x00007ffff456b91d in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#3 0x00007ffff456bcf8 in ?? () from /usr/lib/libglib-2.0.so.0
#4 0x00007ffff456c022 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#5 0x00007fffdf2c711e in startServer (data=) at src/mprisServer.c:523
#6 0x00007ffff45925f5 in ?? () from /usr/lib/libglib-2.0.so.0
#7 0x00007ffff76bd314 in start_thread () from /usr/lib/libpthread.so.0
#8 0x00007ffff73fb5bd in clone () from /usr/lib/libc.so.6
(gdb)
Please add LICENSE file contiining text of license for deadbeef-mpris2-plugin code.
I have installed DeaDBeeF 0.7.2 on Ubuntu 18.10 using the deb package. When I add mpris.so (revision 0d4dc8f) to ~/.local/lib/deadbeef
, DeaDBeeF crashes on start up. I have removed ~/.config/deadbeef
and all other plugins from the ~/.local/lib/deadbeef
.
$ /opt/deadbeef/bin/deadbeef
starting deadbeef 0.7.2 [static]
server_start
INFO: unlink socket: No such file or directory
failed to load config file
created an empty config
searching for GUI plugins in /home/jtojnar/.local/lib64/deadbeef
searching for GUI plugins in /home/jtojnar/.local/lib/deadbeef
load_plugin_dir /home/jtojnar/.local/lib/deadbeef: scandir found 4 files
searching for GUI plugins in /opt/deadbeef/lib/deadbeef
load_plugin_dir /opt/deadbeef/lib/deadbeef: scandir found 53 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 /opt/deadbeef/lib/deadbeef/ddb_gui_GTK2.so
loading plugins from /home/jtojnar/.local/lib64/deadbeef
loading plugins from /home/jtojnar/.local/lib/deadbeef
load_plugin_dir /home/jtojnar/.local/lib/deadbeef: scandir found 4 files
loading plugin /home/jtojnar/.local/lib/deadbeef/mpris.so
loading plugins from /opt/deadbeef/lib/deadbeef
load_plugin_dir /opt/deadbeef/lib/deadbeef: scandir found 53 files
loading plugin /opt/deadbeef/lib/deadbeef/aac.so
loading plugin /opt/deadbeef/lib/deadbeef/adplug.so
loading plugin /opt/deadbeef/lib/deadbeef/alac.so
loading plugin /opt/deadbeef/lib/deadbeef/alsa.so
loading plugin /opt/deadbeef/lib/deadbeef/artwork.so
loading plugin /opt/deadbeef/lib/deadbeef/cdda.so
loading plugin /opt/deadbeef/lib/deadbeef/converter.so
loading plugin /opt/deadbeef/lib/deadbeef/converter_gtk2.so
loading plugin /opt/deadbeef/lib/deadbeef/converter_gtk3.so
loading plugin /opt/deadbeef/lib/deadbeef/dca.so
loading plugin /opt/deadbeef/lib/deadbeef/ddb_ao.so
loading plugin /opt/deadbeef/lib/deadbeef/ddb_dumb.so
loading plugin /opt/deadbeef/lib/deadbeef/ddb_mono2stereo.so
loading plugin /opt/deadbeef/lib/deadbeef/ddb_shn.so
loading plugin /opt/deadbeef/lib/deadbeef/dsp_libsrc.so
loading plugin /opt/deadbeef/lib/deadbeef/ffap.so
loading plugin /opt/deadbeef/lib/deadbeef/ffmpeg.so
loading plugin /opt/deadbeef/lib/deadbeef/flac.so
loading plugin /opt/deadbeef/lib/deadbeef/gme.so
loading plugin /opt/deadbeef/lib/deadbeef/hotkeys.so
loading plugin /opt/deadbeef/lib/deadbeef/in_sc68.so
loading plugin /opt/deadbeef/lib/deadbeef/lastfm.so
loading plugin /opt/deadbeef/lib/deadbeef/m3u.so
loading plugin /opt/deadbeef/lib/deadbeef/mms.so
loading plugin /opt/deadbeef/lib/deadbeef/mp3.so
loading plugin /opt/deadbeef/lib/deadbeef/musepack.so
loading plugin /opt/deadbeef/lib/deadbeef/notify.so
loading plugin /opt/deadbeef/lib/deadbeef/nullout.so
loading plugin /opt/deadbeef/lib/deadbeef/oss.so
loading plugin /opt/deadbeef/lib/deadbeef/pltbrowser_gtk2.so
loading plugin /opt/deadbeef/lib/deadbeef/pltbrowser_gtk3.so
loading plugin /opt/deadbeef/lib/deadbeef/pulse.so
loading plugin /opt/deadbeef/lib/deadbeef/shellexec.so
loading plugin /opt/deadbeef/lib/deadbeef/shellexecui_gtk2.so
loading plugin /opt/deadbeef/lib/deadbeef/shellexecui_gtk3.so
loading plugin /opt/deadbeef/lib/deadbeef/sid.so
loading plugin /opt/deadbeef/lib/deadbeef/sndfile.so
loading plugin /opt/deadbeef/lib/deadbeef/supereq.so
loading plugin /opt/deadbeef/lib/deadbeef/tta.so
loading plugin /opt/deadbeef/lib/deadbeef/vfs_curl.so
loading plugin /opt/deadbeef/lib/deadbeef/vfs_zip.so
loading plugin /opt/deadbeef/lib/deadbeef/vorbis.so
loading plugin /opt/deadbeef/lib/deadbeef/vtx.so
loading plugin /opt/deadbeef/lib/deadbeef/wavpack.so
loading plugin /opt/deadbeef/lib/deadbeef/wildmidi.so
loading plugin /opt/deadbeef/lib/deadbeef/wma.so
deadbeef: playlist.c:319: plt_unref: Assertion `plt->refc > 0' failed.
fish: “/opt/deadbeef/bin/deadbeef” terminated by signal SIGABRT (Abort)
This is the stack trace:
$ coredumpctl gdb
PID: 5617 (deadbeef-main)
UID: 1000 (jtojnar)
GID: 1000 (jtojnar)
Signal: 6 (ABRT)
Timestamp: Thu 2018-10-25 20:23:31 CEST (32min ago)
Command Line: /opt/deadbeef/bin/deadbeef
Executable: /opt/deadbeef/bin/deadbeef
Control Group: /user.slice/user-1000.slice/[email protected]/gnome-terminal-server.service
Unit: [email protected]
User Unit: gnome-terminal-server.service
Slice: user-1000.slice
Owner UID: 1000 (jtojnar)
Boot ID: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Machine ID: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Hostname: jtojnar
Storage: /var/lib/systemd/coredump/core.deadbeef-main.1000.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.5617.1540491811000000.lz4
Message: Process 5617 (deadbeef-main) of user 1000 dumped core.
Stack trace of thread 5618:
#0 0x00007f6a2c807077 __GI_raise (libc.so.6)
#1 0x00007f6a2c7e8535 __GI_abort (libc.so.6)
#2 0x00007f6a2c7e840f __assert_fail_base (libc.so.6)
#3 0x00007f6a2c7f8142 __GI___assert_fail (libc.so.6)
#4 0x0000000000402bea n/a (deadbeef)
#5 0x000000000040905a n/a (deadbeef)
#6 0x00007f6a273ca1c5 n/a (/home/jtojnar/.local/lib/deadbeef/mpris.so)
#7 0x00007f6a273cbb07 n/a (/home/jtojnar/.local/lib/deadbeef/mpris.so)
#8 0x00007f6a2a905469 n/a (libgio-2.0.so.0)
#9 0x00007f6a2b254ae8 g_main_context_dispatch (libglib-2.0.so.0)
#10 0x00007f6a2b254ed8 n/a (libglib-2.0.so.0)
#11 0x00007f6a2b2551d2 g_main_loop_run (libglib-2.0.so.0)
#12 0x00007f6a273cc92d n/a (/home/jtojnar/.local/lib/deadbeef/mpris.so)
#13 0x00007f6a2b27d135 n/a (libglib-2.0.so.0)
#14 0x00007f6a2c9b8164 start_thread (libpthread.so.0)
#15 0x00007f6a2c8e0def __clone (libc.so.6)
Stack trace of thread 5619:
#0 0x00007f6a2c9be2eb futex_wait_cancelable (libpthread.so.0)
#1 0x00007f6a262dcba9 n/a (artwork.so)
#2 0x00007f6a2c9b8164 start_thread (libpthread.so.0)
#3 0x00007f6a2c8e0def __clone (libc.so.6)
Stack trace of thread 5620:
#0 0x00007f6a2c8a46a0 __GI___nanosleep (libc.so.6)
#1 0x00007f6a2c8d77d4 usleep (libc.so.6)
#2 0x00007f6a262dd0e2 n/a (artwork.so)
#3 0x00007f6a2c9b8164 start_thread (libpthread.so.0)
#4 0x00007f6a2c8e0def __clone (libc.so.6)
Stack trace of thread 5622:
#0 0x00007f6a2c8d46d9 __GI___poll (libc.so.6)
#1 0x00007f6a2b254e46 n/a (libglib-2.0.so.0)
#2 0x00007f6a2b254f6c g_main_context_iteration (libglib-2.0.so.0)
#3 0x00007f6a2b254fb1 n/a (libglib-2.0.so.0)
#4 0x00007f6a2b27d135 n/a (libglib-2.0.so.0)
#5 0x00007f6a2c9b8164 start_thread (libpthread.so.0)
#6 0x00007f6a2c8e0def __clone (libc.so.6)
Stack trace of thread 5624:
#0 0x00007f6a2c8d46d9 __GI___poll (libc.so.6)
#1 0x00007f6a2b254e46 n/a (libglib-2.0.so.0)
#2 0x00007f6a2b2551d2 g_main_loop_run (libglib-2.0.so.0)
#3 0x00007f6a2a9147b6 n/a (libgio-2.0.so.0)
#4 0x00007f6a2b27d135 n/a (libglib-2.0.so.0)
#5 0x00007f6a2c9b8164 start_thread (libpthread.so.0)
#6 0x00007f6a2c8e0def __clone (libc.so.6)
Stack trace of thread 5623:
#0 0x00007f6a2c8da219 syscall (libc.so.6)
#1 0x00007f6a2b29b75a g_cond_wait_until (libglib-2.0.so.0)
#2 0x00007f6a2b227061 n/a (libglib-2.0.so.0)
#3 0x00007f6a2b27dc12 n/a (libglib-2.0.so.0)
#4 0x00007f6a2b27d135 n/a (libglib-2.0.so.0)
#5 0x00007f6a2c9b8164 start_thread (libpthread.so.0)
#6 0x00007f6a2c8e0def __clone (libc.so.6)
Stack trace of thread 5617:
#0 0x00007f6a2c8d46d9 __GI___poll (libc.so.6)
#1 0x00007f6a29f609b7 n/a (libxcb.so.1)
#2 0x00007f6a29f5e751 xcb_connect_to_fd (libxcb.so.1)
#3 0x00007f6a29f625a4 xcb_connect_to_display_with_auth_info (libxcb.so.1)
#4 0x00007f6a2affacd2 _XConnectXCB (libX11.so.6)
#5 0x00007f6a2afeb892 XOpenDisplay (libX11.so.6)
#6 0x00007f6a23657081 n/a (hotkeys.so)
#7 0x0000000000406ac4 n/a (deadbeef)
#8 0x000000000040346d n/a (deadbeef)
#9 0x00007f6a2c7ea09b __libc_start_main (libc.so.6)
#10 0x0000000000403985 n/a (deadbeef)
GNU gdb (Ubuntu 8.2-0ubuntu1) 8.2
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /opt/deadbeef/bin/deadbeef...(no debugging symbols found)...done.
warning: core file may not match specified executable file.
[New LWP 5618]
[New LWP 5619]
[New LWP 5620]
[New LWP 5622]
[New LWP 5624]
[New LWP 5623]
[New LWP 5617]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `/opt/deadbeef/bin/deadbeef'.
Program terminated with signal SIGABRT, Aborted.
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
[Current thread is 1 (Thread 0x7f6a1ecc8700 (LWP 5618))]
(gdb) bt
#0 0x00007f6a2c807077 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x00007f6a2c7e8535 in __GI_abort () at abort.c:79
#2 0x00007f6a2c7e840f in __assert_fail_base
(fmt=0x7f6a2c974858 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x433013 "plt->refc > 0", file=0x433008 "playlist.c", line=319, function=<optimized out>) at assert.c:92
#3 0x00007f6a2c7f8142 in __GI___assert_fail
(assertion=0x433013 "plt->refc > 0", file=0x433008 "playlist.c", line=319, function=0x43358c "plt_unref") at assert.c:101
#4 0x0000000000402bea in ()
#5 0x000000000040905a in ()
#6 0x00007f6a273ca1c5 in getMetadataForTrack () at /home/jtojnar/.local/lib/deadbeef/mpris.so
#7 0x00007f6a273cbb07 in onPlayerGetPropertyHandler () at /home/jtojnar/.local/lib/deadbeef/mpris.so
#8 0x00007f6a2a905469 in invoke_get_all_properties_in_idle_cb (_data=0x7f6a04009750)
at ../../../../gio/gdbusconnection.c:4485
#9 0x00007f6a2b254ae8 in g_main_dispatch (context=0x7f6a10001c00) at ../../../../glib/gmain.c:3182
#10 0x00007f6a2b254ae8 in g_main_context_dispatch (context=context@entry=0x7f6a10001c00)
at ../../../../glib/gmain.c:3847
#11 0x00007f6a2b254ed8 in g_main_context_iterate
(context=0x7f6a10001c00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
at ../../../../glib/gmain.c:3920
#12 0x00007f6a2b2551d2 in g_main_loop_run (loop=0x7f6a10019f00) at ../../../../glib/gmain.c:4116
#13 0x00007f6a273cc92d in startServer () at /home/jtojnar/.local/lib/deadbeef/mpris.so
#14 0x00007f6a2b27d135 in g_thread_proxy (data=0x82f050) at ../../../../glib/gthread.c:784
#15 0x00007f6a2c9b8164 in start_thread (arg=<optimized out>) at pthread_create.c:486
#16 0x00007f6a2c8e0def in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
(gdb) quit
I was about to post this issue on extension's page but I've tested the extension against other players (Rhytmbox, Clementine, VLC) and it's working nicely. So, I assumed that mpris2 needs an update.
I've installed the mpris plugin straight from source (not the tarball), and the gnome media player extension straight from the official Gnome extensions site. However, when I open DeadBeef this is what's being shown (no metadata) [PIC HERE]
However, if I lock my session, and re-login, the metadata appears! But it's static, it doesn't get updated at all (Current song is not Warriors). [PIC HERE]
I don't know if it's a problem with your extension, gnome media player's or my OS. Please, any help would be appreciated.
I'm using Ubuntu Gnome 16.04.02, with Gnome 3.18.5.
There is possibility to add plugin into plugin page here:
http://deadbeef.sourceforge.net/plugins.html
Here is required builder available:
https://github.com/DeaDBeeF-Player/deadbeef-plugin-builder
It would be great to see MPRISv2 support as official plugin!
checking for GLIB_DEPS... no
configure: error: glibc-2 is required for this package
Package glibc-2.32-6.fc33.x86_64 is already installed.
Package glibc-2.32-6.fc33.i686 is already installed.
It seems as if it doesn't like the fedora version of glibc but with that said I'm stupid so please forgive me if I have completely the wrong idea :)
I'm on Arch Linux 64-bit with glib2 2.48 and DeaDBeeF 0.7.2 installed, and DeaDBeeF fails to start with this plugin (latest version, 1.9) installed. DeaDBeeF spits out the following in terminal:
(deadbeef:9117): GLib-GObject-WARNING **: cannot register existing type 'GtkBuildable'
(deadbeef:9117): GLib-GObject-CRITICAL **: g_type_interface_add_prerequisite: assertion 'G_TYPE_IS_INTERFACE (interface_type)' failed
(deadbeef:9117): GLib-CRITICAL **: g_once_init_leave: assertion 'result != 0' failed
(deadbeef:9117): GLib-GObject-WARNING **: cannot register existing type 'GtkWidget'
(deadbeef:9117): GLib-GObject-WARNING **: cannot add class private field to invalid type '<invalid>'
(deadbeef:9117): GLib-GObject-WARNING **: cannot add private field to invalid (non-instantiatable) type '<invalid>'
I used the following PKGBUILD to build and install the plugin: https://aur.archlinux.org/packages/deadbeef-mpris2-plugin/
DeaDBeeF 0.6.2
deadbeef-mpris2-plugin 1.8
LOG:
GLib-GIO:ERROR:/build/buildd/glib2.0-2.44.1/./gio/gdbusconnection.c:4188:invoke_get_property_in_idle_cb: assertion failed: (error != NULL)
Take a look at this progress-bar: https://i.imgur.com/m4QjyMe.png
While it works perfectly, if you want to change the position inside of the playing track, it may take up to 8 seconds for the progress bar to refresh its state after a mouse click was performed on a different position. Before the update happens it gets reset to the beginning of the track and keeps "ticking" each second (without affecting the actual playback).
Is there a way to improve that somehow? It feels that mpris plugin should report current playback state more often than it currently does or perhaps if an action is detected - immediately trigger some kind of "refresh".
Edit: just tested. if for example we will look at the progressbar at 50% and change playing position in the player, it takes about the same time for it to update. So mpris definitely should update more often. I would say make it at least within 3 seconds... if there are some performance concerns. But ideally - every second.
OS: xubuntu 14.10 x64
deadbeef from git/master
mpris2-plugin from https://github.com/Serranya/deadbeef-mpris2-plugin/releases/download/v1.4/deadbeef-mpris2-plugin-1.4.tar.xz
Steps to repro:
launch pleer
click play button in player window
Additional info:
gdb ouput:
http://paste.ubuntu.com/9634269/
deadbeef with default config except Output: pulseaudio
Without mpris2-plugin there is no problem.
I have the following GNOME extension installed (https://github.com/JasonLG1979/gnome-shell-extension-mpris-indicator-button), which used to show an album art thumbnail and no longer does, now just showing the Deadbeef logo instead. All other MPRIS functionality works perfectly.
I installed Deadbeef 1.9.1 from the official deb package, and am using Ubuntu 22.04.
Thank you!
I installed it through the AUR.
I've tried audacious, it doesn't have the problem, but it happens to deadbeef-mpris2-plugin, please help.
By this link a description of the problem and an explanation
DeaDBeeF-Player/deadbeef#1842
Whenever I use Deadbeef, the playerctl status
output always prints "Stopped" even when the music is playing.
But playerctl metadata
seems to be working fine.
If the deadbeef-git is rebuilt from the AUR, deadbeef-mpris2-plugin doesn't work correctly, it is able to pause the music and jump to the next or previous song, but not able to play the music.
pkgname=deadbeef-plugin-mpris2-git
prjname=deadbeef-mpris2-plugin
pkgver=2.1.5
pkgrel=1
pkgdesc="MPRIS plugin for DeaDBeeF music player"
arch=("i686" "x86_64")
license=('GPL')
url="https://github.com/Serranya/deadbeef-mpris2-plugin"
depends=('deadbeef')
source=('git+https://github.com/Serranya/deadbeef-mpris2-plugin.git')
md5sums=("SKIP")
pkgver() {
cd "$srcdir/$prjname"
echo
}
build() {
cd "${srcdir}/${prjname}"
autoreconf --install
./configure --prefix=/usr
make
}
package () {
cd "${srcdir}/${prjname}"
make DESTDIR="${pkgdir}" install
}
I have finished the make install progress, but I still can't enable mpris2 for deadbeef.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.