DeaDBeeF-Player / deadbeef

DeaDBeeF Player
https://deadbeef.sourceforge.io/
Other
1.59k stars 175 forks source link

Playlist metadata blank and grouping broken after ea91710 #1766

Closed TheDevKing closed 7 years ago

TheDevKing commented 7 years ago

Expected behavior

For the track metadata and grouping to work in the playlist view Here is how the playlist looks at commit a9b28f24de859bd1d4edbb5765add8f8dc02b988

Actual behavior

All metadata appears blank (only in the playlist view) and grouping doesn't work Here is how the playlist looks at commit ea91710cecae4df0c87ef141e8e717c36bbf0d8e

The grouping expression I'm using is: %album artist% - %album%[ ($if3(%original_release_time%,%original_release_year%,%originaldate%,%date%,'Unknown'))][' [ '%codec%' | '%samplerate%'Hz | '%:BPS%'-bit ]'][' {'%catalognumber%'}'][' - '$if($strcmp(%media%,'Digital Media'),'WEB',%media%)]

The problem is still occurring in bc374979fd4f1667b4678f0e99a1352acf159a87 (the latest commit at the time of writing)

Oleksiy-Yakovenko commented 7 years ago

Hello. Thanks for reporting the issue.

Looks like everything related to title formatting is not working on your machine.

Is there anything special about it? Are you running 32 or 64 bit?

TheDevKing commented 7 years ago

I don't think there's anything particularly special about my install. Here's inxi output:

System:    Host: pc Kernel: 4.10.11-041011-generic x86_64 (64 bit gcc: 6.2.0)
           Desktop: Cinnamon 3.2.7 (Gtk 3.18.9-1ubuntu3.3) Distro: Linux Mint 18.1 Serena
Machine:   System: Gigabyte product: N/A
           Mobo: Gigabyte model: Z77X-UD3H v: x.x Bios: American Megatrends v: F20e date: 01/06/2014
CPU:       Quad core Intel Core i7-3770K (-HT-MCP-) cache: 8192 KB
           flags: (lm nx sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx) bmips: 28028
           clock speeds: max: 4200 MHz 1: 2257 MHz 2: 1701 MHz 3: 2118 MHz 4: 1851 MHz 5: 2100 MHz 6: 1911 MHz
           7: 2035 MHz 8: 2126 MHz
Graphics:  Card: NVIDIA GM204 [GeForce GTX 970] bus-ID: 01:00.0
           Display Server: X.Org 1.18.4 drivers: nvidia (unloaded: fbdev,vesa,nouveau)
           Resolution: 1920x1080@60.00hz, 1920x1080@60.00hz
           GLX Renderer: N/A GLX Version: N/A Direct Rendering: N/A
Audio:     Card-1 Intel 7 Series/C210 Series Family High Definition Audio Controller
           driver: snd_hda_intel bus-ID: 00:1b.0
           Card-2 NVIDIA GM204 High Definition Audio Controller driver: snd_hda_intel bus-ID: 01:00.1
           Card-3 C-Media CMI8788 [Oxygen HD Audio] driver: snd_virtuoso port: d000 bus-ID: 04:04.0
           Card-4 Sony driver: USB Audio usb-ID: 003-003
           Card-5 Shure X2u Adapter driver: USB Audio usb-ID: 005-003
           Card-6 Logitech HD Webcam C510 driver: USB Audio usb-ID: 005-005
           Sound: Advanced Linux Sound Architecture v: k4.10.11-041011-generic
Sensors:   System Temperatures: cpu: 29.8C mobo: 27.8C gpu: 0.0:39C
           Fan Speeds (in rpm): cpu: 273 fan-1: 1144 fan-3: 0 fan-4: 1238 fan-5: 0
Info:      Processes: 293 Uptime: 7 days Memory: 9237.3/24069.9MB Init: systemd runlevel: 5 Gcc sys: 5.4.0
           Client: Shell (bash 4.3.461) inxi: 2.2.35

Here's ./configure output:

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... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether UID '1000' is supported by ustar format... yes
checking whether GID '1000' is supported by ustar format... yes
checking how to create a ustar tar archive... gnutar
checking whether make supports nested variables... (cached) yes
checking whether to enable maintainer-specific portions of Makefiles... no
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 how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -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 minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
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 fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/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/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 ar... ar
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 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/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... no
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking dependency style of gcc... (cached) gcc3
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking how to run the C++ preprocessor... g++ -E
checking for ld used by g++... /usr/bin/ld -m elf_x86_64
checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking for g++ option to produce PIC... -fPIC -DPIC
checking if g++ PIC flag -fPIC -DPIC works... yes
checking if g++ static flag -static works... yes
checking if g++ supports -c -o file.o... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... (cached) GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking for gcc... gcc
checking whether we are using the GNU Objective C compiler... no
checking whether gcc accepts -g... no
checking dependency style of gcc... gcc3
checking for ANSI C header files... (cached) yes
checking whether byte ordering is bigendian... no
checking whether NLS is requested... yes
checking for msgfmt... /usr/bin/msgfmt
checking for gmsgfmt... /usr/bin/msgfmt
checking for xgettext... /usr/bin/xgettext
checking for msgmerge... /usr/bin/msgmerge
checking whether we are using the GNU C Library 2 or newer... yes
checking for ranlib... (cached) ranlib
checking whether the -Werror option is usable... yes
checking for simple visibility declarations... yes
checking for inline... inline
checking for size_t... yes
checking for stdint.h... yes
checking for working alloca.h... yes
checking for alloca... yes
checking for stdlib.h... (cached) yes
checking for unistd.h... (cached) yes
checking for sys/param.h... yes
checking for getpagesize... yes
checking for working mmap... yes
checking whether integer division by zero raises SIGFPE... yes
checking for inttypes.h... yes
checking for unsigned long long int... yes
checking for inttypes.h... (cached) yes
checking whether the inttypes.h PRIxNN macros are broken... no
checking for ld used by GCC... /usr/bin/ld -m elf_x86_64
checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes
checking for shared library run path origin... done
checking whether imported symbols can be declared weak... yes
checking pthread.h usability... yes
checking pthread.h presence... yes
checking for pthread.h... yes
checking for pthread_kill in -lpthread... yes
checking for multithread API to use... posix
checking for pthread_rwlock_t... yes
checking argz.h usability... yes
checking argz.h presence... yes
checking for argz.h... yes
checking for inttypes.h... (cached) yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking for unistd.h... (cached) yes
checking for sys/param.h... (cached) yes
checking for getcwd... yes
checking for getegid... yes
checking for geteuid... yes
checking for getgid... yes
checking for getuid... yes
checking for mempcpy... yes
checking for munmap... yes
checking for stpcpy... yes
checking for strcasecmp... yes
checking for strdup... yes
checking for strtoul... yes
checking for tsearch... yes
checking for uselocale... yes
checking for argz_count... yes
checking for argz_stringify... yes
checking for argz_next... yes
checking for __fsetlocking... yes
checking whether feof_unlocked is declared... yes
checking whether fgets_unlocked is declared... yes
checking for iconv... yes
checking for working iconv... yes
checking for iconv declaration... 
         extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
checking for bison... bison
checking version of bison... 3.0.4, ok
checking for long long int... yes
checking for wchar_t... yes
checking for wint_t... yes
checking for intmax_t... yes
checking whether printf() supports POSIX/XSI format strings... yes
checking whether we are using the GNU C Library 2.1 or newer... yes
checking for stdint.h... (cached) yes
checking for SIZE_MAX... yes
checking for stdint.h... (cached) yes
checking for working fcntl.h... no (bad O_NOATIME)
checking for CFPreferencesCopyAppValue... no
checking for CFLocaleCopyCurrent... no
checking for ptrdiff_t... yes
checking stddef.h usability... yes
checking stddef.h presence... yes
checking for stddef.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for asprintf... yes
checking for fwprintf... yes
checking for newlocale... yes
checking for putenv... yes
checking for setenv... yes
checking for setlocale... yes
checking for snprintf... yes
checking for strnlen... yes
checking for wcslen... yes
checking for wcsnlen... yes
checking for mbrtowc... yes
checking for wcrtomb... yes
checking whether _snprintf is declared... no
checking whether _snwprintf is declared... no
checking whether getc_unlocked is declared... yes
checking for nl_langinfo and CODESET... yes
checking for LC_MESSAGES... yes
checking for CFPreferencesCopyAppValue... (cached) no
checking for CFLocaleCopyCurrent... (cached) no
checking whether included gettext is requested... no
checking for GNU gettext in libc... yes
checking whether to use NLS... yes
checking where the gettext function comes from... libc
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for intltool >= 0.40.0... 0.51.0 found
checking for intltool-update... /usr/bin/intltool-update
checking for intltool-merge... /usr/bin/intltool-merge
checking for intltool-extract... /usr/bin/intltool-extract
checking for xgettext... (cached) /usr/bin/xgettext
checking for msgmerge... (cached) /usr/bin/msgmerge
checking for msgfmt... (cached) /usr/bin/msgfmt
checking for gmsgfmt... (cached) /usr/bin/msgfmt
checking for perl... /usr/bin/perl
checking for perl >= 5.8.1... 5.22.1
checking for XML::Parser... ok
checking for main in -lintl... no
checking for yasm... yes
checking for log2 in -lm... yes
checking for main in -ldl... yes
checking for main in -lsocket... no
checking alloca.h usability... yes
checking alloca.h presence... yes
checking for alloca.h... yes
checking sys/syslimits.h usability... no
checking sys/syslimits.h presence... no
checking for sys/syslimits.h... no
checking sys/cdefs.h usability... yes
checking sys/cdefs.h presence... yes
checking for sys/cdefs.h... yes
checking for main in -lz... yes
checking for ZIP... yes
checking for GTK3_DEPS... no
checking for JANSSON... yes
checking for GTK2_DEPS... no
checking for ALSA_DEPS... yes
checking CoreAudio/AudioHardware.h usability... no
checking CoreAudio/AudioHardware.h presence... no
checking for CoreAudio/AudioHardware.h... no
checking sndio.h usability... yes
checking sndio.h presence... yes
checking for sndio.h... yes
checking for main in -lsndio... yes
checking for FFMPEG_DEPS... yes
checking for DBUS_DEPS... yes
checking for PULSE_DEPS... yes
checking iconv.h usability... yes
checking iconv.h presence... yes
checking for iconv.h... yes
checking for main in -liconv... no
checking whether C compiler accepts -msse2... yes
checking for main in -lcurl... yes
checking for main in -lmad... yes
checking for main in -lmpg123... yes
checking for main in -lvorbis... yes
checking for main in -lvorbisfile... yes
checking for main in -logg... yes
checking for ogg_stream_flush_fill in -logg... yes
checking for main in -lFLAC... yes
checking for main in -lwavpack... yes
checking for main in -lsndfile... yes
checking for main in -lcdio... yes
checking for main in -lcddb... yes
checking for main in -lcdda_interface... no
checking for main in -lcdda_paranoia... no
checking ffmpeg/avformat.h usability... no
checking ffmpeg/avformat.h presence... no
checking for ffmpeg/avformat.h... no
checking X11/Xlib.h usability... yes
checking X11/Xlib.h presence... yes
checking for X11/Xlib.h... yes
checking for sndiod ... checking for OSS include dir... not found
checking for sys/soundcard.h... checking sys/soundcard.h usability... yes
checking sys/soundcard.h presence... yes
checking for sys/soundcard.h... yes
found
checking for IMLIB2_DEPS... no
checking for main in -ljpeg... yes
checking for main in -lpng... yes
checking for LIBSAMPLERATE_DEPS... yes
checking for main in -lfaad... yes
Checking statusnotifier deps...
checking for STATUSNOTIFIER_DEPS... no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating pixmaps/Makefile
config.status: creating icons/Makefile
config.status: creating plugins/liboggedit/Makefile
config.status: creating plugins/libmp4ff/Makefile
config.status: creating plugins/libparser/Makefile
config.status: creating plugins/gme/Makefile
config.status: creating plugins/alsa/Makefile
config.status: creating plugins/hotkeys/Makefile
config.status: creating plugins/lastfm/Makefile
config.status: creating plugins/ffap/Makefile
config.status: creating plugins/mp3/Makefile
config.status: creating plugins/vorbis/Makefile
config.status: creating plugins/flac/Makefile
config.status: creating plugins/wavpack/Makefile
config.status: creating plugins/sndfile/Makefile
config.status: creating plugins/vfs_curl/Makefile
config.status: creating plugins/cdda/Makefile
config.status: creating plugins/gtkui/Makefile
config.status: creating plugins/nullout/Makefile
config.status: creating plugins/vtx/Makefile
config.status: creating plugins/adplug/Makefile
config.status: creating plugins/ffmpeg/Makefile
config.status: creating plugins/sid/Makefile
config.status: creating plugins/oss/Makefile
config.status: creating plugins/pulse/Makefile
config.status: creating plugins/artwork-legacy/Makefile
config.status: creating plugins/supereq/Makefile
config.status: creating plugins/notify/Makefile
config.status: creating plugins/shellexec/Makefile
config.status: creating plugins/musepack/Makefile
config.status: creating plugins/wildmidi/Makefile
config.status: creating plugins/tta/Makefile
config.status: creating plugins/dca/Makefile
config.status: creating plugins/aac/Makefile
config.status: creating plugins/mms/Makefile
config.status: creating plugins/dsp_libsrc/Makefile
config.status: creating plugins/m3u/Makefile
config.status: creating plugins/vfs_zip/Makefile
config.status: creating plugins/converter/Makefile
config.status: creating plugins/dumb/Makefile
config.status: creating plugins/psf/Makefile
config.status: creating plugins/shn/Makefile
config.status: creating plugins/mono2stereo/Makefile
config.status: creating plugins/shellexecui/Makefile
config.status: creating plugins/alac/Makefile
config.status: creating plugins/wma/Makefile
config.status: creating plugins/pltbrowser/Makefile
config.status: creating plugins/sc68/Makefile
config.status: creating plugins/coreaudio/Makefile
config.status: creating plugins/sndio/Makefile
config.status: creating plugins/statusnotifier/Makefile
config.status: creating intl/Makefile
config.status: creating po/Makefile.in
config.status: creating deadbeef.desktop
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing po-directories commands
config.status: creating po/POTFILES
config.status: creating po/Makefile
config.status: executing po/stamp-it commands

Plugin Summary:

    stdio: yes - Standard IO plugin
    gme: yes - chiptune music player based on GME
    nullout: yes - NULL output
    alsa: yes - ALSA output
    oss: yes - oss output plugin
    pulse: yes - PulseAudio output plugin
    coreaudio: no - CoreAudio output plugin
    sndio: yes - sndio output plugin
    sid: yes - SID player based on libsidplay2
    ffap: yes - Monkey's audio (APE) decoder
    lastfm: yes - last.fm scrobbler
    mp3: yes - mp3 plugin
        libmad: yes - libmad backend for mp3 plugin
        libmpg123: yes - libmpg123 backend for mp3 plugin
    vorbis: yes - ogg vorbis player
    flac: yes - flac player
    wavpack: yes - wavpack player
    sndfile: yes - PCM (wav,aiff,etc) player based on libsndfile
    vtx: yes - vtx file player (ay8910/12 emulation)
    adplug: yes - adplug player (OPL2/OPL3 emulation)
    vfs_curl: yes - http/ftp streaming support
    cdda: yes - cd audio player
    gtkui: no - GTK2 user interface
    gtkui3: no - GTK3 user interface
    hotkeys: yes - Local and global hotkeys support
    ffmpeg: yes - ffmpeg codecs
    artwork: yes - Cover art plugin
    supereq: yes - Equalizer based on Super EQ library by Naoki Shibata
    notify: yes - notification-daemon support plugin
    shellexec: yes - shell commands plugin
    shellexecui: no - GTK user interface for setting up shellexec plugin
    musepack: yes - musepack player plugin
    wildmidi: yes - WildMidi player plugin
    tta: yes - TTA player plugin
    dca: yes - libdca (DTS Audio) player plugin
    aac: yes - AAC player (m4a, aac, mp4) based on FAAD2
    mms: yes - mms streaming support
    dsp_src: yes - High quality samplerate conversion using libsamplerate
    m3u: yes - M3U and PLS playlist support
    vfs_zip: yes - zip archive support
    converter: no - plugin for converting files to any formats
    psf: yes - PSF player, using Audio Overload SDK
    dumb: yes - DUMB module plugin, for MOD, S3M, etc
    shn: yes - SHN plugin based on xmms-shn
    mono2stereo: yes - mono2stereo DSP plugin
    alac: yes - ALAC plugin
    wma: yes - WMA plugin
    pltbrowser: yes - playlist browser gui plugin
    sc68: yes - sc68 Atari ST And Amiga player
    statusnotifier: no - plugin for KDE tray icon support

There doesn't appear to be any errors during build or when run from the terminal. Let me know if there's any more relevant/helpful information I could provide.

Oleksiy-Yakovenko commented 7 years ago

also this

gtkui: no - GTK2 user interface
gtkui3: no - GTK3 user interface

indicates that you don't rebuild GTK interface, so it's possible that you got a broken build.

That's most likely the cause. API is changing in dev builds all the time.

Oleksiy-Yakovenko commented 7 years ago

upd: please ignore my comment about your config file, as the issue seems to be clear without it

TheDevKing commented 7 years ago

Oh, wow. I can't believe I missed that. I guess I managed to uninstall the GTK development packages somewhere along the way.

I installed libgtk-3-dev and libgtk2.0-dev and built the latest commit and everything's working fine now.

Thanks for the help.