Strawberry is a music player and music collection organizer.

Overview

🍓 Strawberry Music Player Build Status PayPal Patreon

Strawberry is a music player and music collection organizer. It is a fork of Clementine released in 2018 aimed at music collectors and audiophiles. It's written in C++ using the Qt toolkit.

Browse

Resources:

‼️ Opening an issue:

  • Search for the issue to see if it is already solved, or if there is an open issue for it already. If there is an open issue already, you can comment on it if you have additional information that could be useful to us.
  • For technical problems, questions and feature requests please use our forum on https://forum.strawberrymusicplayer.org/ that is better suited for discussion. It also better allows answers from the community instead of just the developers on GitHub.

💰 Sponsoring:

The program is free software, released under GPL. If you like this program and can make use of it, consider sponsoring or donating to help fund the project. There are currently 3 options for sponsoring:

  1. GitHub Sponsors
  2. Patreon
  3. PayPal

Funding developers is a way to contribute to open source projects you appreciate, it helps developers get the resources they need, and recognize contributors working behind the scenes to make open source better for everyone.

✔️ Features:

  • Play and organize music
  • Supports WAV, FLAC, WavPack, Ogg FLAC, Ogg Vorbis, Ogg Opus, Ogg Speex, MPC, TrueAudio, AIFF, MP4, MP3, ASF and Monkey's Audio.
  • Audio CD playback
  • Native desktop notifications
  • Playlist management
  • Smart and dynamic playlists
  • Advanced audio output and device configuration for bit-perfect playback on Linux
  • Edit tags on music files
  • Fetch tags from MusicBrainz
  • Album cover art from Last.fm, Musicbrainz, Discogs, Musixmatch, Deezer, Tidal, Qobuz and Spotify
  • Song lyrics from AudD, Genius, Musixmatch, ChartLyrics, lyrics.ovh and lololyrics.com
  • Support for multiple backends
  • Audio analyzer
  • Audio equalizer
  • Transfer music to iPod, MTP or mass-storage USB player
  • Scrobbler with support for Last.fm, Libre.fm and ListenBrainz
  • Subsonic, Tidal and Qobuz streaming support

It has so far been tested to work on Linux, OpenBSD, FreeBSD, macOS and Windows.

There currently isn't any macOS developers actively working on this project, so we might not be able to help you with issues related to macOS.

Requirements

To build Strawberry from source you need the following installed on your system with the additional development packages/headers:

Optional dependencies:

Either GStreamer or VLC engine is required, but only GStreamer is fully implemented, and works best, it is therefore recommended to use GStreamer. You should also install the gstreamer plugins base and good, and optionally bad, ugly and libav.

🔧 Compiling from source

Get the code:

git clone https://github.com/strawberrymusicplayer/strawberry

Compile and install:

cd strawberry
mkdir build && cd build
cmake ..
make -j$(nproc)
sudo make install

To compile with Qt 6 use:

cmake .. -DBUILD_WITH_QT6=ON

🐧 Packaging status

Packaging status

Comments
  • Song ratings

    Song ratings

    Is your feature request related to a problem? Please describe.

    To allow me to prefer certain songs in my playlists, to e.g. have a list of "the best" songs and "the good" songs, some way to express such a preference on a per-song basis is needed.

    Describe the solution you'd like

    It would be great to have song ratings. I started assigning ratings to songs in the Amarok 1.4 days, and it took a lot of work to set them.

    Describe alternatives you've considered

    A possibility it to generate playlists based on my old Amarok 2 database using SQL, but that would be a lot of work.

    Additional context

    It also seems to be important for #132 to be efficient, and it is also mentioned in the example queries there.

    enhancement 
    opened by kjetilk 38
  • Strawberry has glitches while using it on mac

    Strawberry has glitches while using it on mac

    Hi, While working with Strawberry 0.6.8 on mac os 10.15.2 (imac 21.5" 4k) the GUI has a lot of glitches, i don't if this has happened with previous version of Strawberry as this is my first time using Strawberry on mac os. For example image 1, i closed a playlist and the placement of the other playlists did not display correctly until I either create a new playlist or minimize and maximize Strawberry. Image 2, I added a few songs to a playlist and the from the top the playlist does not display correctly, even when scrolling the playlist it causes these glitches. This happens randomly as i work with Strawberry. I also tried running Strawberry in "low resolution" and the same thing happens. Things that remedy the situation is if I change to another playlist and back or minimize and maximize Strawberry until it happens again.

    Image 1. https://imgur.com/ChzI1Qu Image 2. https://imgur.com/NgIIClg

    Strawberry 0.6.8 Mac OS 10.15.2 iMac 21.5 Retina 4k

    help wanted 
    opened by Master-baker 32
  • High memory usage with Qt 6.0.0

    High memory usage with Qt 6.0.0

    I'm experiencing very high memory usage with Qt 6.0.0 over time. In a few weeks the program uses almost 1 GB of memory. The only patch I have is for https://bugreports.qt.io/browse/QTBUG-89176 because without it, Qt 6.0.0 frequently crashes. Compiled with Qt 5.15.2, the program uses steadily around 200 MB. LeakSanitizer is showing no leaks (just few alsa and fontfconfig ones that have always been there, but nothing related to my code or Qt). I can reproduce the same on both openSUSE LP 15.2 and tumbleweed. Using Valgrind, I can see some leaks, but I suspect they are false-positives, and I see the same thing with Qt 5.15.2. I also have problems with Valgrind crashing. I normally use LeakSanitizer because Valgrind is so slow. I suspect that Qt 6 is allocating some memory that isn't freed but is still ref'ed and free'ed on exit. Anyone else seen this? The program only uses base, but all modules. I want to open a bug report to Qt, but I don't think I have enough to go on.

    opened by jonaski 27
  • (macOS) MP3 GStreamer error

    (macOS) MP3 GStreamer error

    Describe the bug I get the error message when trying to play MP3. (See screenshot) Any of AAC, FLAC, Opus – no error.

    To Reproduce

    1. Install Strawberry.
    2. Try to play MP3.

    Expected behavior Strawberry is playing MP3.

    Screenshots: Снимок экрана 2020-01-09 в 17 15 04

    System Information:

    • Operating system: MacOS 10.13.6
    • Strawberry Version: 0.6.8

    Additional context System GStreamer is untouched from the start.

    bug confirmed 
    opened by dayfuaim 26
  • TIDAL lossless

    TIDAL lossless

    Excellent player, but unfortunately the lossless and high quality TIDAL stream don't work for me. (I have TIDAL HI-FI subscription and play master, lossless quality on other platforms without a problem)

    System Information:

    • Operating system: Linux Arch
    • Strawberry Version: 0.6.3

    When I select lossless or hi-resolution in the tidal settings and try to play any track this error pops up: Could not determine type of stream. when I change/downgrade the setting just to quality "high" it changes in the playlist from a file type "stream" to MP4 AAC and plays-streams without a problem.

    How to get the lossless stream quality? Thanks in advance.

    wontfix 
    opened by hvrba 26
  • Fix buildbot PPA builder to only update stable repository on releases (python)

    Fix buildbot PPA builder to only update stable repository on releases (python)

    The stable PPA is still updated even when INCLUDE_GIT_REVISION is set to OFF. If someone knows Python and can look into it, the function is MakePPABuilder in https://github.com/strawberrymusicplayer/strawberry-buildbot/blob/master/config/master/strawberry/builders.py My Python knowledge isn't great.

    opened by jonaski 24
  • Write embedded cover art to music files

    Write embedded cover art to music files

    my squeezebox touch music player can display the cover art thats inside the music flie MP#/FLAC

    would be nice if strawberry can place them in the music file.

    thanks for the good music player, was using clementine all the time nog i got a good replace ment.

    enhancement 
    opened by bertusw 23
  • Playback sometime block at song end instead of switching to next song

    Playback sometime block at song end instead of switching to next song

    Sometime, when the song end occur the playback is blocking instead of switching to next song (Icon still show it is playing, not stopped or paused). If I manually click on the next track button, the playback continue as normal.

    Strawberry Version: 0.5.2 (From package manager) System info: Fedora 29 x86_64, KDE Plasma 5.14.5

    help wanted 
    opened by JGoutin 21
  • Strawberry crashes when tries to play a song no longer available in Subsonic media server

    Strawberry crashes when tries to play a song no longer available in Subsonic media server

    Describe the bug Strawberry crashes when tries to play a song no longer available in the catalog of a subsonic media server.

    To Reproduce add a song from a subsonic media server to your playlist add a song from the same subsonic media server but located in a different folder to your playlist rename the folder where is located the song added in the step 2 play the song added in the step 1 Result: when the current song finishes and Strawberry tries to play the song located in the previously renamed folder, a crash occurs

    Expected behavior no crash

    System Information:

    • Operating system: neon unstable, based on ubuntu 20.04
    • Strawberry Version: 0.7.2-221-g8abb3ea2
    
    Thread 51 (Thread 0x7fff79ffb700 (LWP 22997)):
    #0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
    #1  0x00007ffff5a89483 in g_cond_wait () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #2  0x00007ffff613c307 in  () at /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
    #3  0x00007ffff5a661d4 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #4  0x00007ffff5a65931 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #5  0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #6  0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 50 (Thread 0x7fff59ffb700 (LWP 22996)):
    #0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
    #1  0x00007ffff5a895a6 in g_cond_wait_until () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #2  0x00007ffff5a0c561 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #3  0x00007ffff5a6632a in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #4  0x00007ffff5a65931 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #5  0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #6  0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 48 (Thread 0x7fff34d3a700 (LWP 22994)):
    #0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
    #1  0x00007ffff5a89483 in g_cond_wait () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #2  0x00007ffff613c307 in  () at /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
    #3  0x00007ffff5a661d4 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #4  0x00007ffff5a65931 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #5  0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #6  0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 45 (Thread 0x7fff3554b700 (LWP 22972)):
    #0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
    #1  0x00007ffff5a89483 in g_cond_wait () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #2  0x00007fffb33db015 in  () at /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcoreelements.so
    #3  0x00007ffff6104eff in  () at /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
    #4  0x00007ffff6106f61 in  () at /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
    #5  0x00007ffff610dd73 in gst_pad_push () at /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
    #6  0x00007ffff60f3c9b in gst_proxy_pad_chain_default () at /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
    #7  0x00007ffff6104eff in  () at /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
    #8  0x00007ffff6106f61 in  () at /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
    #9  0x00007ffff610dd73 in gst_pad_push () at /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
    #10 0x00007ffff60f3c9b in gst_proxy_pad_chain_default () at /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
    #11 0x00007ffff6104eff in  () at /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
    #12 0x00007ffff6106f61 in  () at /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
    #13 0x00007ffff610dd73 in gst_pad_push () at /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
    #14 0x00007ffff4828440 in  () at /lib/x86_64-linux-gnu/libgstbase-1.0.so.0
    #15 0x00007ffff6104eff in  () at /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
    #16 0x00007ffff6106f61 in  () at /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
    #17 0x00007ffff610dd73 in gst_pad_push () at /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
    #18 0x00007ffff4828440 in  () at /lib/x86_64-linux-gnu/libgstbase-1.0.so.0
    #19 0x00007ffff6104eff in  () at /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
    #20 0x00007ffff6106f61 in  () at /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
    #21 0x00007ffff610dd73 in gst_pad_push () at /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
    #22 0x00007ffff60f3c9b in gst_proxy_pad_chain_default () at /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
    #23 0x00007ffff6104eff in  () at /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
    #24 0x00007ffff6106f61 in  () at /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
    #25 0x00007ffff610dd73 in gst_pad_push () at /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
    #26 0x00007fffb33cf744 in  () at /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcoreelements.so
    #27 0x00007ffff613c107 in  () at /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
    #28 0x00007ffff5a661d4 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #29 0x00007ffff5a65931 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #30 0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #31 0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 44 (Thread 0x7fff5affd700 (LWP 22971)):
    #0  0x0000555555decbbb in GstEnginePipeline::HandoffCallback(_GstPad*, _GstPadProbeInfo*, void*) (pad=0x5555583b0360, info=0x7fff5affc8f0, self=0x555556f1c0c0) at /home/stalker/strawberry/src/engine/gstenginepipeline.cpp:680
    #1  0x00007ffff610336e in  () at /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
    #2  0x00007ffff5a2b836 in g_hook_list_marshal () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #3  0x00007ffff61029ee in  () at /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
    #4  0x00007ffff6106e2a in  () at /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
    #5  0x00007ffff610dd73 in gst_pad_push () at /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
    #6  0x00007fffb33dceb1 in  () at /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcoreelements.so
    #7  0x00007ffff613c107 in  () at /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
    #8  0x00007ffff5a661d4 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #9  0x00007ffff5a65931 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #10 0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #11 0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 42 (Thread 0x7fff597fa700 (LWP 22969)):
    #0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
    #1  0x00007ffff5a89483 in g_cond_wait () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #2  0x00007ffff613c307 in  () at /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
    #3  0x00007ffff5a661d4 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #4  0x00007ffff5a65931 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #5  0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #6  0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 39 (Thread 0x7fff5a7fc700 (LWP 22967)):
    #0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
    #1  0x00007ffff5a89483 in g_cond_wait () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #2  0x00007ffff613c307 in  () at /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
    #3  0x00007ffff5a661d4 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #4  0x00007ffff5a65931 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #5  0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #6  0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 38 (Thread 0x7fff5b7fe700 (LWP 22965)):
    #0  0x00007ffff5c28aff in __GI___poll (fds=0x7fff5c010a10, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
    #1  0x00007ffff5a3c1ae in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #2  0x00007ffff5a3c2e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #3  0x00007fffb301599d in  () at /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so
    #4  0x00007ffff5a65931 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #5  0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #6  0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 37 (Thread 0x7fff5bfff700 (LWP 22964)):
    #0  0x00007ffff5c28aff in __GI___poll (fds=0x7fff4c004ef0, nfds=3, timeout=73) at ../sysdeps/unix/sysv/linux/poll.c:29
    #1  0x00007ffff62061d6 in  () at /lib/x86_64-linux-gnu/libpulse.so.0
    #2  0x00007ffff61f7841 in pa_mainloop_poll () at /lib/x86_64-linux-gnu/libpulse.so.0
    #3  0x00007ffff61f7ec3 in pa_mainloop_iterate () at /lib/x86_64-linux-gnu/libpulse.so.0
    #4  0x00007ffff61f7f70 in pa_mainloop_run () at /lib/x86_64-linux-gnu/libpulse.so.0
    #5  0x00007ffff620611d in  () at /lib/x86_64-linux-gnu/libpulse.so.0
    #6  0x00007ffff4a2767c in  () at /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-13.99.so
    #7  0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #8  0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 35 (Thread 0x7fff78ff9700 (LWP 22961)):
    #0  0x00007ffff5c28aff in __GI___poll (fds=0x7fff54005240, nfds=2, timeout=134900) at ../sysdeps/unix/sysv/linux/poll.c:29
    #1  0x00007ffff5a3c1ae in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #2  0x00007ffff5a3c2e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #3  0x00007ffff6c84e92 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fff54000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
    #4  0x00007ffff6c291bb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fff78ff8a60, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
    #5  0x00007ffff6a47082 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
    #6  0x00007ffff6a4820c in QThreadPrivate::start(void*) (arg=0x555557df4cd0) at thread/qthread_unix.cpp:342
    #7  0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #8  0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 32 (Thread 0x7fff7a7fc700 (LWP 22958)):
    #0  futex_abstimed_wait_cancelable (private=<optimized out>, abstime=0x7fff7a7fb9d0, clockid=<optimized out>, expected=0, futex_word=0x7fff70005884) at ../sysdeps/nptl/futex-internal.h:320
    #1  __pthread_cond_wait_common (abstime=0x7fff7a7fb9d0, clockid=<optimized out>, mutex=0x7fff70005830, cond=0x7fff70005858) at pthread_cond_wait.c:520
    #2  __pthread_cond_timedwait (cond=cond@entry=0x7fff70005858, mutex=mutex@entry=0x7fff70005830, abstime=abstime@entry=0x7fff7a7fb9d0) at pthread_cond_wait.c:656
    #3  0x00007ffff6a4e098 in QWaitConditionPrivate::wait_relative(QDeadlineTimer) (this=0x7fff70005830, deadline=...) at thread/qwaitcondition_unix.cpp:136
    #4  QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x7fff70005830) at thread/qwaitcondition_unix.cpp:144
    #5  QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=this@entry=0x7fff700054a0, mutex=mutex@entry=0x7fff80004cf8, deadline=...) at thread/qwaitcondition_unix.cpp:225
    #6  0x00007ffff6a4b6c1 in QThreadPoolThread::run() (this=0x7fff70005490) at ../../include/QtCore/../../src/corelib/thread/qmutex.h:270
    #7  0x00007ffff6a4820c in QThreadPrivate::start(void*) (arg=0x7fff70005490) at thread/qthread_unix.cpp:342
    #8  0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #9  0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 31 (Thread 0x7fff7affd700 (LWP 22957)):
    #0  0x00007ffff5c28aff in __GI___poll (fds=0x7fff70004250, nfds=2, timeout=134733) at ../sysdeps/unix/sysv/linux/poll.c:29
    #1  0x00007ffff5a3c1ae in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #2  0x00007ffff5a3c2e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #3  0x00007ffff6c84e92 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fff70000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
    #4  0x00007ffff6c291bb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fff7affca60, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
    #5  0x00007ffff6a47082 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
    #6  0x00007ffff6a4820c in QThreadPrivate::start(void*) (arg=0x555557764b00) at thread/qthread_unix.cpp:342
    #7  0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #8  0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 29 (Thread 0x7fff94d04700 (LWP 22954)):
    #0  futex_abstimed_wait_cancelable (private=<optimized out>, abstime=0x7fff94d039d0, clockid=<optimized out>, expected=0, futex_word=0x7fff80005290) at ../sysdeps/nptl/futex-internal.h:320
    #1  __pthread_cond_wait_common (abstime=0x7fff94d039d0, clockid=<optimized out>, mutex=0x7fff80005240, cond=0x7fff80005268) at pthread_cond_wait.c:520
    #2  __pthread_cond_timedwait (cond=cond@entry=0x7fff80005268, mutex=mutex@entry=0x7fff80005240, abstime=abstime@entry=0x7fff94d039d0) at pthread_cond_wait.c:656
    #3  0x00007ffff6a4e098 in QWaitConditionPrivate::wait_relative(QDeadlineTimer) (this=0x7fff80005240, deadline=...) at thread/qwaitcondition_unix.cpp:136
    #4  QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x7fff80005240) at thread/qwaitcondition_unix.cpp:144
    #5  QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=this@entry=0x7fff80004fa0, mutex=mutex@entry=0x7fff80004cf8, deadline=...) at thread/qwaitcondition_unix.cpp:225
    #6  0x00007ffff6a4b6c1 in QThreadPoolThread::run() (this=0x7fff80004f90) at ../../include/QtCore/../../src/corelib/thread/qmutex.h:270
    #7  0x00007ffff6a4820c in QThreadPrivate::start(void*) (arg=0x7fff80004f90) at thread/qthread_unix.cpp:342
    #8  0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #9  0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 28 (Thread 0x7fff7bfff700 (LWP 22955)):
    #0  0x00007ffff5c28aff in __GI___poll (fds=0x7fff6c004250, nfds=2, timeout=134923) at ../sysdeps/unix/sysv/linux/poll.c:29
    #1  0x00007ffff5a3c1ae in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #2  0x00007ffff5a3c2e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #3  0x00007ffff6c84e92 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fff6c000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
    #4  0x00007ffff6c291bb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fff7bffea60, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
    #5  0x00007ffff6a47082 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
    #6  0x00007ffff6a4820c in QThreadPrivate::start(void*) (arg=0x5555582f3f10) at thread/qthread_unix.cpp:342
    #7  0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #8  0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 27 (Thread 0x7fff95505700 (LWP 22953)):
    #0  0x00007ffff5c28aff in __GI___poll (fds=0x7fff80003a30, nfds=1, timeout=129747) at ../sysdeps/unix/sysv/linux/poll.c:29
    #1  0x00007ffff5a3c1ae in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #2  0x00007ffff5a3c2e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #3  0x00007ffff6c84eab in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fff80000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:425
    #4  0x00007ffff6c291bb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fff95504a60, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
    #5  0x00007ffff6a47082 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
    #6  0x00007ffff6a4820c in QThreadPrivate::start(void*) (arg=0x555557f52400) at thread/qthread_unix.cpp:342
    #7  0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #8  0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 26 (Thread 0x7fff95d06700 (LWP 22952)):
    #0  futex_abstimed_wait_cancelable (private=<optimized out>, abstime=0x7fff95d059d0, clockid=<optimized out>, expected=0, futex_word=0x555556a162f4) at ../sysdeps/nptl/futex-internal.h:320
    #1  __pthread_cond_wait_common (abstime=0x7fff95d059d0, clockid=<optimized out>, mutex=0x555556a162a0, cond=0x555556a162c8) at pthread_cond_wait.c:520
    #2  __pthread_cond_timedwait (cond=cond@entry=0x555556a162c8, mutex=mutex@entry=0x555556a162a0, abstime=abstime@entry=0x7fff95d059d0) at pthread_cond_wait.c:656
    #3  0x00007ffff6a4e098 in QWaitConditionPrivate::wait_relative(QDeadlineTimer) (this=0x555556a162a0, deadline=...) at thread/qwaitcondition_unix.cpp:136
    #4  QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x555556a162a0) at thread/qwaitcondition_unix.cpp:144
    #5  QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=this@entry=0x555556a16340, mutex=mutex@entry=0x555556846998, deadline=...) at thread/qwaitcondition_unix.cpp:225
    #6  0x00007ffff6a4b6c1 in QThreadPoolThread::run() (this=0x555556a16330) at ../../include/QtCore/../../src/corelib/thread/qmutex.h:270
    #7  0x00007ffff6a4820c in QThreadPrivate::start(void*) (arg=0x555556a16330) at thread/qthread_unix.cpp:342
    #8  0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #9  0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 25 (Thread 0x7fffb3fff700 (LWP 22951)):
    #0  futex_abstimed_wait_cancelable (private=<optimized out>, abstime=0x7fffb3ffe9d0, clockid=<optimized out>, expected=0, futex_word=0x5555569c69b0) at ../sysdeps/nptl/futex-internal.h:320
    #1  __pthread_cond_wait_common (abstime=0x7fffb3ffe9d0, clockid=<optimized out>, mutex=0x5555569c6960, cond=0x5555569c6988) at pthread_cond_wait.c:520
    #2  __pthread_cond_timedwait (cond=cond@entry=0x5555569c6988, mutex=mutex@entry=0x5555569c6960, abstime=abstime@entry=0x7fffb3ffe9d0) at pthread_cond_wait.c:656
    #3  0x00007ffff6a4e098 in QWaitConditionPrivate::wait_relative(QDeadlineTimer) (this=0x5555569c6960, deadline=...) at thread/qwaitcondition_unix.cpp:136
    #4  QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x5555569c6960) at thread/qwaitcondition_unix.cpp:144
    #5  QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=this@entry=0x555556842350, mutex=mutex@entry=0x555556846998, deadline=...) at thread/qwaitcondition_unix.cpp:225
    #6  0x00007ffff6a4b6c1 in QThreadPoolThread::run() (this=0x555556842340) at ../../include/QtCore/../../src/corelib/thread/qmutex.h:270
    #7  0x00007ffff6a4820c in QThreadPrivate::start(void*) (arg=0x555556842340) at thread/qthread_unix.cpp:342
    #8  0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #9  0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 24 (Thread 0x7fffc9ffb700 (LWP 22950)):
    #0  futex_abstimed_wait_cancelable (private=<optimized out>, abstime=0x7fffc9ffa9d0, clockid=<optimized out>, expected=0, futex_word=0x555556a0eaf4) at ../sysdeps/nptl/futex-internal.h:320
    #1  __pthread_cond_wait_common (abstime=0x7fffc9ffa9d0, clockid=<optimized out>, mutex=0x555556a0eaa0, cond=0x555556a0eac8) at pthread_cond_wait.c:520
    #2  __pthread_cond_timedwait (cond=cond@entry=0x555556a0eac8, mutex=mutex@entry=0x555556a0eaa0, abstime=abstime@entry=0x7fffc9ffa9d0) at pthread_cond_wait.c:656
    #3  0x00007ffff6a4e098 in QWaitConditionPrivate::wait_relative(QDeadlineTimer) (this=0x555556a0eaa0, deadline=...) at thread/qwaitcondition_unix.cpp:136
    #4  QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x555556a0eaa0) at thread/qwaitcondition_unix.cpp:144
    #5  QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=this@entry=0x555556a0efc0, mutex=mutex@entry=0x555556846998, deadline=...) at thread/qwaitcondition_unix.cpp:225
    #6  0x00007ffff6a4b6c1 in QThreadPoolThread::run() (this=0x555556a0efb0) at ../../include/QtCore/../../src/corelib/thread/qmutex.h:270
    #7  0x00007ffff6a4820c in QThreadPrivate::start(void*) (arg=0x555556a0efb0) at thread/qthread_unix.cpp:342
    #8  0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #9  0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 23 (Thread 0x7fffcaffd700 (LWP 22949)):
    #0  futex_abstimed_wait_cancelable (private=<optimized out>, abstime=0x7fffcaffc9d0, clockid=<optimized out>, expected=0, futex_word=0x555556a62974) at ../sysdeps/nptl/futex-internal.h:320
    #1  __pthread_cond_wait_common (abstime=0x7fffcaffc9d0, clockid=<optimized out>, mutex=0x555556a62920, cond=0x555556a62948) at pthread_cond_wait.c:520
    #2  __pthread_cond_timedwait (cond=cond@entry=0x555556a62948, mutex=mutex@entry=0x555556a62920, abstime=abstime@entry=0x7fffcaffc9d0) at pthread_cond_wait.c:656
    #3  0x00007ffff6a4e098 in QWaitConditionPrivate::wait_relative(QDeadlineTimer) (this=0x555556a62920, deadline=...) at thread/qwaitcondition_unix.cpp:136
    #4  QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x555556a62920) at thread/qwaitcondition_unix.cpp:144
    #5  QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=this@entry=0x555556aa5450, mutex=mutex@entry=0x555556846998, deadline=...) at thread/qwaitcondition_unix.cpp:225
    #6  0x00007ffff6a4b6c1 in QThreadPoolThread::run() (this=0x555556aa5440) at ../../include/QtCore/../../src/corelib/thread/qmutex.h:270
    #7  0x00007ffff6a4820c in QThreadPrivate::start(void*) (arg=0x555556aa5440) at thread/qthread_unix.cpp:342
    #8  0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #9  0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 22 (Thread 0x7fffc97fa700 (LWP 22948)):
    #0  0x00007ffff5c28aff in __GI___poll (fds=0x7fffac0498f0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
    #1  0x00007ffff5a3c1ae in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #2  0x00007ffff5a3c2e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #3  0x00007ffff6c84e92 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fffac082cd0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
    #4  0x00007ffff6c291bb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffc97f9a60, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
    #5  0x00007ffff6a47082 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
    #6  0x00007ffff6a4820c in QThreadPrivate::start(void*) (arg=0x7fffc402e0b0) at thread/qthread_unix.cpp:342
    #7  0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #8  0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 21 (Thread 0x7fff967fc700 (LWP 22740)):
    #0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x5555582356e8) at ../sysdeps/nptl/futex-internal.h:183
    #1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555558235698, cond=0x5555582356c0) at pthread_cond_wait.c:508
    #2  __pthread_cond_wait (cond=cond@entry=0x5555582356c0, mutex=mutex@entry=0x555558235698) at pthread_cond_wait.c:638
    #3  0x00007fffb074c97b in cnd_wait (mtx=0x555558235698, cond=0x5555582356c0) at ../include/c11/threads_posix.h:155
    #4  util_queue_thread_func (input=input@entry=0x55555811d1a0) at ../src/util/u_queue.c:275
    #5  0x00007fffb074c58b in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #6  0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #7  0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 20 (Thread 0x7fff96ffd700 (LWP 22739)):
    #0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x5555582356e8) at ../sysdeps/nptl/futex-internal.h:183
    #1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555558235698, cond=0x5555582356c0) at pthread_cond_wait.c:508
    #2  __pthread_cond_wait (cond=cond@entry=0x5555582356c0, mutex=mutex@entry=0x555558235698) at pthread_cond_wait.c:638
    #3  0x00007fffb074c97b in cnd_wait (mtx=0x555558235698, cond=0x5555582356c0) at ../include/c11/threads_posix.h:155
    #4  util_queue_thread_func (input=input@entry=0x55555811cfc0) at ../src/util/u_queue.c:275
    #5  0x00007fffb074c58b in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #6  0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #7  0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 19 (Thread 0x7fff977fe700 (LWP 22738)):
    #0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x5555582356e8) at ../sysdeps/nptl/futex-internal.h:183
    #1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555558235698, cond=0x5555582356c0) at pthread_cond_wait.c:508
    #2  __pthread_cond_wait (cond=cond@entry=0x5555582356c0, mutex=mutex@entry=0x555558235698) at pthread_cond_wait.c:638
    #3  0x00007fffb074c97b in cnd_wait (mtx=0x555558235698, cond=0x5555582356c0) at ../include/c11/threads_posix.h:155
    #4  util_queue_thread_func (input=input@entry=0x55555811d000) at ../src/util/u_queue.c:275
    #5  0x00007fffb074c58b in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #6  0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #7  0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 18 (Thread 0x7fff97fff700 (LWP 22737)):
    #0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x5555582356e8) at ../sysdeps/nptl/futex-internal.h:183
    #1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555558235698, cond=0x5555582356c0) at pthread_cond_wait.c:508
    #2  __pthread_cond_wait (cond=cond@entry=0x5555582356c0, mutex=mutex@entry=0x555558235698) at pthread_cond_wait.c:638
    #3  0x00007fffb074c97b in cnd_wait (mtx=0x555558235698, cond=0x5555582356c0) at ../include/c11/threads_posix.h:155
    #4  util_queue_thread_func (input=input@entry=0x55555811d020) at ../src/util/u_queue.c:275
    #5  0x00007fffb074c58b in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #6  0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #7  0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 17 (Thread 0x7fffb17fa700 (LWP 22736)):
    #0  0x00007ffff5c28aff in __GI___poll (fds=0x7fff9802a3e0, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
    #1  0x00007ffff5a3c1ae in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #2  0x00007ffff5a3c533 in g_main_loop_run () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #3  0x00007ffff5e23eda in  () at /lib/x86_64-linux-gnu/libgio-2.0.so.0
    #4  0x00007ffff5a65931 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #5  0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #6  0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 16 (Thread 0x7fffb1ffb700 (LWP 22735)):
    #0  0x00007ffff5c28aff in __GI___poll (fds=0x7fff98011620, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
    #1  0x00007ffff5a3c1ae in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #2  0x00007ffff5a3c2e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #3  0x00007ffff5a3c331 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #4  0x00007ffff5a65931 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #5  0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #6  0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 15 (Thread 0x7fffb27fc700 (LWP 22734)):
    #0  0x00007ffff5c28aff in __GI___poll (fds=0x7fff98057140, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
    #1  0x00007ffff5a3c1ae in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #2  0x00007ffff5a3c2e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #3  0x00007ffff6c84e92 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fff98000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
    #4  0x00007ffff6c291bb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffb27fba60, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
    #5  0x00007ffff6a47082 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
    #6  0x00007ffff6a4820c in QThreadPrivate::start(void*) (arg=0x555557679100) at thread/qthread_unix.cpp:342
    #7  0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #8  0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 14 (Thread 0x7fffb2ffd700 (LWP 22733)):
    #0  0x00007ffff5c28aff in __GI___poll (fds=0x7fffa4004c30, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
    #1  0x00007ffff5a3c1ae in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #2  0x00007ffff5a3c2e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #3  0x00007ffff6c84e92 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fffa4000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
    #4  0x00007ffff6c291bb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffb2ffca60, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
    #5  0x00007ffff6a47082 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
    #6  0x00007ffff6a4820c in QThreadPrivate::start(void*) (arg=0x555557679180) at thread/qthread_unix.cpp:342
    #7  0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #8  0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 9 (Thread 0x7fffca7fc700 (LWP 22720)):
    #0  0x00007ffff5c28aff in __GI___poll (fds=0x7fffb4008310, nfds=5, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
    #1  0x00007ffff5a3c1ae in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #2  0x00007ffff5a3c2e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #3  0x00007ffff6c84e92 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fffb4000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
    #4  0x00007ffff6c291bb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffca7fba60, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
    #5  0x00007ffff6a47082 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
    #6  0x00007ffff6a4820c in QThreadPrivate::start(void*) (arg=0x5555569e90d0) at thread/qthread_unix.cpp:342
    #7  0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #8  0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 7 (Thread 0x7fffcb7fe700 (LWP 22718)):
    #0  0x00007ffff5c28aff in __GI___poll (fds=0x7fffbc004a60, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
    #1  0x00007ffff5a3c1ae in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #2  0x00007ffff5a3c2e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #3  0x00007ffff6c84e92 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fffbc000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
    #4  0x00007ffff6c291bb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffcb7fda40, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
    #5  0x00007ffff6a47082 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
    #6  0x0000555555f0a6ea in Thread::run() (this=0x5555569c4190) at /home/stalker/strawberry/src/core/thread.cpp:27
    #7  0x00007ffff6a4820c in QThreadPrivate::start(void*) (arg=0x5555569c4190) at thread/qthread_unix.cpp:342
    #8  0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #9  0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 6 (Thread 0x7fffcbfff700 (LWP 22717)):
    #0  0x00007ffff5c28aff in __GI___poll (fds=0x7fffc4004e60, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
    #1  0x00007ffff5a3c1ae in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #2  0x00007ffff5a3c2e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #3  0x00007ffff6c84e92 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fffc4000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
    #4  0x00007ffff6c291bb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffcbffea60, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
    #5  0x00007ffff6a47082 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
    #6  0x00007ffff6a4820c in QThreadPrivate::start(void*) (arg=0x5555569ceb50) at thread/qthread_unix.cpp:342
    #7  0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #8  0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 5 (Thread 0x7fffe8d20700 (LWP 22716)):
    #0  0x00007ffff5c28aff in __GI___poll (fds=0x7fffd0004e60, nfds=1, timeout=9990) at ../sysdeps/unix/sysv/linux/poll.c:29
    #1  0x00007ffff5a3c1ae in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #2  0x00007ffff5a3c2e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #3  0x00007ffff6c84e92 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fffd0000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
    #4  0x00007ffff6c291bb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffe8d1fa60, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
    #5  0x00007ffff6a47082 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
    #6  0x00007ffff6a4820c in QThreadPrivate::start(void*) (arg=0x5555569c8910) at thread/qthread_unix.cpp:342
    #7  0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #8  0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 4 (Thread 0x7fffea5d5700 (LWP 22715)):
    #0  0x00007ffff5c28aff in __GI___poll (fds=0x7fffcc004a60, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
    #1  0x00007ffff5a3c1ae in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #2  0x00007ffff5a3c2e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #3  0x00007ffff6c84e92 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fffcc000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
    #4  0x00007ffff6c291bb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffea5d4a60, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
    #5  0x00007ffff6a47082 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
    #6  0x00007ffff6a4820c in QThreadPrivate::start(void*) (arg=0x555556950fa0) at thread/qthread_unix.cpp:342
    #7  0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #8  0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 3 (Thread 0x7fffeae2a700 (LWP 22714)):
    #0  0x00007ffff5c28aff in __GI___poll (fds=0x7fffe401b4b0, nfds=5, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
    #1  0x00007ffff5a3c1ae in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #2  0x00007ffff5a3c2e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #3  0x00007ffff6c84e92 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fffe4000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
    #4  0x00007ffff6c291bb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffeae29a30, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
    #5  0x00007ffff6a47082 in QThread::exec() (this=this@entry=0x7ffff7f51d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
    #6  0x00007ffff7ecef2b in QDBusConnectionManager::run() (this=0x7ffff7f51d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:179
    #7  0x00007ffff6a4820c in QThreadPrivate::start(void*) (arg=0x7ffff7f51d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:342
    #8  0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #9  0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 2 (Thread 0x7ffff16f6700 (LWP 22693)):
    #0  0x00007ffff5c28aff in __GI___poll (fds=0x7ffff16f5968, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
    #1  0x00007ffff46b4c1a in  () at /lib/x86_64-linux-gnu/libxcb.so.1
    #2  0x00007ffff46b690a in xcb_wait_for_event () at /lib/x86_64-linux-gnu/libxcb.so.1
    #3  0x00007ffff1ce2978 in QXcbEventQueue::run() (this=0x555556849030) at qxcbeventqueue.cpp:228
    #4  0x00007ffff6a4820c in QThreadPrivate::start(void*) (arg=0x555556849030) at thread/qthread_unix.cpp:342
    #5  0x00007ffff70ec609 in start_thread (arg=<optimized out>) at pthread_create.c:477
    #6  0x00007ffff5c35293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 1 (Thread 0x7ffff2109b40 (LWP 22652)):
    #0  0x00007ffff5554350 in hb_unicode_funcs_get_default () at /lib/x86_64-linux-gnu/libharfbuzz.so.0
    #1  0x00007ffff54aa93d in  () at /lib/x86_64-linux-gnu/libharfbuzz.so.0
    #2  0x00007ffff54ab75d in hb_buffer_create () at /lib/x86_64-linux-gnu/libharfbuzz.so.0
    #3  0x00007ffff735602b in QTextEngine::shapeTextWithHarfbuzzNG(QScriptItem const&, unsigned short const*, int, QFontEngine*, QVector<unsigned int> const&, bool, bool) const (this=this@entry=0x555557c7b9b0, si=..., string=string@entry=0x7fffb8269a28, itemLength=itemLength@entry=3, fontEngine=fontEngine@entry=0x555556c73250, itemBoundaries=..., kerningEnabled=true, hasLetterSpacing=false) at text/qtextengine.cpp:1618
    #4  0x00007ffff7358fe6 in QTextEngine::shapeText(int) const (this=this@entry=0x555557c7b9b0, item=item@entry=0) at ../../include/QtGui/5.15.0/QtGui/private/../../../../../src/gui/painting/qfixed_p.h:174
    #5  0x00007ffff7359c99 in QTextEngine::shape(int) const (this=this@entry=0x555557c7b9b0, item=item@entry=0) at text/qtextengine.cpp:2028
    #6  0x00007ffff735f05b in QTextEngine::shapeLine(QScriptLine const&) (this=0x555557c7b9b0, line=...) at text/qtextengine.cpp:1342
    #7  0x00007ffff736132a in QTextLineItemIterator::QTextLineItemIterator(QTextEngine*, int, QPointF const&, QTextLayout::FormatRange const*) (this=0x7fffffff8550, _eng=<optimized out>, _lineNum=<optimized out>, pos=..., _selection=<optimized out>) at text/qtextengine.cpp:4052
    #8  0x00007ffff73651bc in QTextLine::draw(QPainter*, QPointF const&, QTextLayout::FormatRange const*) const (this=this@entry=0x7fffffff8b90, p=p@entry=0x7fffffffa0c8, pos=..., selection=selection@entry=0x0) at text/qtextlayout.cpp:2524
    #9  0x00007ffff7366a86 in QTextLayout::draw(QPainter*, QPointF const&, QVector<QTextLayout::FormatRange> const&, QRectF const&) const (this=this@entry=0x7fffffff9090, p=p@entry=0x7fffffffa0c8, pos=..., selections=..., clip=...) at text/qtextlayout.cpp:1262
    #10 0x00007ffff79eed19 in QCommonStylePrivate::viewItemDrawText(QPainter*, QStyleOptionViewItem const*, QRect const&) const (this=<optimized out>, p=p@entry=0x7fffffffa0c8, option=option@entry=0x7fffffff9830, rect=...) at ../../include/QtCore/../../src/corelib/tools/qarraydata.h:257
    #11 0x00007ffff79f5675 in QCommonStyle::drawControl(QStyle::ControlElement, QStyleOption const*, QPainter*, QWidget const*) const (this=this@entry=0x5555568febb0, element=element@entry=QStyle::CE_ItemViewItem, opt=opt@entry=0x7fffffff9830, p=p@entry=0x7fffffffa0c8, widget=widget@entry=0x555556f34c80) at styles/qcommonstyle.cpp:2330
    #12 0x00007fffeae86e7b in Breeze::Style::drawControl(QStyle::ControlElement, QStyleOption const*, QPainter*, QWidget const*) const (this=0x5555568febb0, element=QStyle::CE_ItemViewItem, option=0x7fffffff9830, painter=0x7fffffffa0c8, widget=0x555556f34c80) at ./kstyle/breezestyle.cpp:1009
    #13 0x00007ffff7a2a593 in QStyleSheetStyle::drawControl(QStyle::ControlElement, QStyleOption const*, QPainter*, QWidget const*) const (this=0x555556e80d90, ce=<optimized out>, opt=0x7fffffff9970, p=0x7fffffffa0c8, w=<optimized out>) at styles/qstylesheetstyle.cpp:4175
    #14 0x00007ffff7c0a378 in QStyledItemDelegate::paint(QPainter*, QStyleOptionViewItem const&, QModelIndex const&) const (this=0x555556e80ca0, painter=0x7fffffffa0c8, option=..., index=...) at itemviews/qstyleditemdelegate.cpp:389
    #15 0x0000555555b9f2fb in CollectionItemDelegate::paint(QPainter*, QStyleOptionViewItem const&, QModelIndex const&) const (this=0x555556e80ca0, painter=0x7fffffffa0c8, opt=..., index=...) at /home/stalker/strawberry/src/collection/collectionitemdelegate.cpp:116
    #16 0x00007ffff7c509fa in QTreeView::drawRow(QPainter*, QStyleOptionViewItem const&, QModelIndex const&) const (this=<optimized out>, painter=0x7fffffffa0c8, option=..., index=...) at /usr/include/c++/9/bits/atomic_base.h:413
    #17 0x00007ffff7c56823 in QTreeView::drawTree(QPainter*, QRegion const&) const (this=this@entry=0x555556f34c80, painter=painter@entry=0x7fffffffa0c8, region=...) at ../../include/QtCore/../../src/corelib/tools/qarraydata.h:61
    #18 0x00007ffff7c5b857 in QTreeView::paintEvent(QPaintEvent*) (this=0x555556f34c80, event=0x7fffffffa7a0) at ../../include/QtGui/../../src/gui/kernel/qevent.h:452
    #19 0x0000555555d95957 in InternetCollectionView::paintEvent(QPaintEvent*) (this=0x555556f34c80, event=0x7fffffffa7a0) at /home/stalker/strawberry/src/internet/internetcollectionview.cpp:292
    #20 0x00007ffff79b1db6 in QWidget::event(QEvent*) (this=this@entry=0x555556f34c80, event=event@entry=0x7fffffffa7a0) at kernel/qwidget.cpp:8671
    #21 0x00007ffff7a62062 in QFrame::event(QEvent*) (this=0x555556f34c80, e=0x7fffffffa7a0) at widgets/qframe.cpp:550
    #22 0x00007ffff7bec322 in QAbstractItemView::viewportEvent(QEvent*) (this=this@entry=0x555556f34c80, event=event@entry=0x7fffffffa7a0) at itemviews/qabstractitemview.cpp:1745
    #23 0x00007ffff7c5c9bf in QTreeView::viewportEvent(QEvent*) (this=0x555556f34c80, event=0x7fffffffa7a0) at itemviews/qtreeview.cpp:1314
    #24 0x00007ffff6c2a413 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) (event=<optimized out>, receiver=<optimized out>) at kernel/qcoreapplication.cpp:1187
    #25 QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) (receiver=receiver@entry=0x555556f73390, event=event@entry=0x7fffffffa7a0) at kernel/qcoreapplication.cpp:1176
    #26 0x00007ffff796ecb2 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x555556847f70, receiver=receiver@entry=0x555556f73390, e=e@entry=0x7fffffffa7a0) at kernel/qapplication.cpp:3665
    #27 0x00007ffff7977c70 in QApplication::notify(QObject*, QEvent*) (this=0x7fffffffd7c0, receiver=0x555556f73390, e=0x7fffffffa7a0) at kernel/qapplication.cpp:3417
    #28 0x00007ffff6c2a6aa in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x555556f73390, event=0x7fffffffa7a0) at ../../include/QtCore/5.15.0/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:325
    #29 0x00007ffff79aa3ca in QWidgetPrivate::sendPaintEvent(QRegion const&) (this=this@entry=0x555556d59610, toBePainted=...) at kernel/qwidget.cpp:5468
    #30 0x00007ffff79aabf2 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=0x555556d59610, pdev=0x555556f35f40, rgn=..., offset=..., flags=..., sharedPainter=<optimized out>, repaintManager=<optimized out>) at kernel/qwidget.cpp:5418
    #31 0x00007ffff79abff3 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=0x555556f34080, pdev=0x555556f35f40, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x555558233c70) at ../../include/QtCore/../../src/corelib/tools/qpoint.h:124
    #32 0x00007ffff79abed6 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=0x555556f34080, pdev=0x555556f35f40, siblings=..., index=4, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x555558233c70) at kernel/qwidget.cpp:5585
    #33 0x00007ffff79abed6 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=0x555556f34080, pdev=0x555556f35f40, siblings=..., index=5, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x555558233c70) at kernel/qwidget.cpp:5585
    #34 0x00007ffff79abed6 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=this@entry=0x555556f34080, pdev=pdev@entry=0x555556f35f40, siblings=..., index=7, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x555558233c70) at kernel/qwidget.cpp:5585
    #35 0x00007ffff79aa90c in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=0x555556f34080, pdev=0x555556f35f40, rgn=..., offset=..., flags=..., sharedPainter=<optimized out>, repaintManager=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qlist.h:176
    #36 0x00007ffff79abff3 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=this@entry=0x555556e042d0, pdev=pdev@entry=0x555556f35f40, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x555558233c70) at ../../include/QtCore/../../src/corelib/tools/qpoint.h:124
    #37 0x00007ffff79aa90c in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=0x555556e042d0, pdev=0x555556f35f40, rgn=..., offset=..., flags=..., sharedPainter=<optimized out>, repaintManager=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qlist.h:176
    #38 0x00007ffff79abff3 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=this@entry=0x5555571624b0, pdev=pdev@entry=0x555556f35f40, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x555558233c70) at ../../include/QtCore/../../src/corelib/tools/qpoint.h:124
    #39 0x00007ffff79aa90c in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=0x5555571624b0, pdev=0x555556f35f40, rgn=..., offset=..., flags=..., sharedPainter=<optimized out>, repaintManager=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qlist.h:176
    #40 0x00007ffff79abff3 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=this@entry=0x555556d1dc80, pdev=pdev@entry=0x555556f35f40, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x555558233c70) at ../../include/QtCore/../../src/corelib/tools/qpoint.h:124
    #41 0x00007ffff79aa90c in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=0x555556d1dc80, pdev=0x555556f35f40, rgn=..., offset=..., flags=..., sharedPainter=<optimized out>, repaintManager=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qlist.h:176
    #42 0x00007ffff79abff3 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=0x55555792b0f0, pdev=0x555556f35f40, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x555558233c70) at ../../include/QtCore/../../src/corelib/tools/qpoint.h:124
    #43 0x00007ffff79abed6 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=this@entry=0x55555792b0f0, pdev=pdev@entry=0x555556f35f40, siblings=..., index=1, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x555558233c70) at kernel/qwidget.cpp:5585
    #44 0x00007ffff79aa90c in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=0x55555792b0f0, pdev=0x555556f35f40, rgn=..., offset=..., flags=..., sharedPainter=<optimized out>, repaintManager=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qlist.h:176
    #45 0x00007ffff79abff3 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=this@entry=0x55555768c3e0, pdev=pdev@entry=0x555556f35f40, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x555558233c70) at ../../include/QtCore/../../src/corelib/tools/qpoint.h:124
    #46 0x00007ffff79aa90c in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=0x55555768c3e0, pdev=0x555556f35f40, rgn=..., offset=..., flags=..., sharedPainter=<optimized out>, repaintManager=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qlist.h:176
    #47 0x00007ffff79abff3 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=0x5555576ad650, pdev=0x555556f35f40, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x555558233c70) at ../../include/QtCore/../../src/corelib/tools/qpoint.h:124
    #48 0x00007ffff79abed6 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=this@entry=0x5555576ad650, pdev=pdev@entry=0x555556f35f40, siblings=..., index=0, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x555558233c70) at kernel/qwidget.cpp:5585
    #49 0x00007ffff79aa90c in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=0x5555576ad650, pdev=0x555556f35f40, rgn=..., offset=..., flags=..., sharedPainter=<optimized out>, repaintManager=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qlist.h:176
    #50 0x00007ffff79abff3 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=this@entry=0x5555576ac740, pdev=pdev@entry=0x555556f35f40, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x555558233c70) at ../../include/QtCore/../../src/corelib/tools/qpoint.h:124
    #51 0x00007ffff79aa90c in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=0x5555576ac740, pdev=0x555556f35f40, rgn=..., offset=..., flags=..., sharedPainter=<optimized out>, repaintManager=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qlist.h:176
    #52 0x00007ffff79abff3 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=0x5555576a1ed0, pdev=0x555556f35f40, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x555558233c70) at ../../include/QtCore/../../src/corelib/tools/qpoint.h:124
    #53 0x00007ffff79abed6 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=this@entry=0x5555576a1ed0, pdev=pdev@entry=0x555556f35f40, siblings=..., index=2, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x555558233c70) at kernel/qwidget.cpp:5585
    #54 0x00007ffff79aa90c in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=0x5555576a1ed0, pdev=0x555556f35f40, rgn=..., offset=..., flags=..., sharedPainter=<optimized out>, repaintManager=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qlist.h:176
    #55 0x00007ffff79abff3 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=this@entry=0x5555576ac540, pdev=pdev@entry=0x555556f35f40, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x555558233c70) at ../../include/QtCore/../../src/corelib/tools/qpoint.h:124
    #56 0x00007ffff79aa90c in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=0x5555576ac540, pdev=0x555556f35f40, rgn=..., offset=..., flags=..., sharedPainter=<optimized out>, repaintManager=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qlist.h:176
    #57 0x00007ffff79abff3 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=this@entry=0x555556845a20, pdev=pdev@entry=0x555556f35f40, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x555558233c70) at ../../include/QtCore/../../src/corelib/tools/qpoint.h:124
    #58 0x00007ffff79aa90c in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) (this=this@entry=0x555556845a20, pdev=0x555556f35f40, rgn=..., offset=..., flags=..., flags@entry=..., sharedPainter=sharedPainter@entry=0x0, repaintManager=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qlist.h:176
    #59 0x00007ffff79815e9 in QWidgetRepaintManager::paintAndFlush() (this=this@entry=0x555558233c70) at ../../include/QtCore/../../src/corelib/tools/qpoint.h:122
    #60 0x00007ffff7982094 in QWidgetRepaintManager::sync() (this=0x555558233c70) at kernel/qwidgetrepaintmanager.cpp:770
    #61 0x00007ffff79aba95 in QWidgetPrivate::syncBackingStore() (this=0x555556845a20) at kernel/qwidget.cpp:1757
    #62 0x00007ffff79b27ac in QWidget::event(QEvent*) (this=this@entry=0x7fffffffd930, event=event@entry=0x555557dbfd50) at kernel/qwidget.cpp:8972
    #63 0x00007ffff7acaa18 in QMainWindow::event(QEvent*) (this=0x7fffffffd930, event=0x555557dbfd50) at widgets/qmainwindow.cpp:1341
    #64 0x00007ffff796ecc3 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x555556847f70, receiver=receiver@entry=0x7fffffffd930, e=e@entry=0x555557dbfd50) at kernel/qapplication.cpp:3671
    #65 0x00007ffff7977c70 in QApplication::notify(QObject*, QEvent*) (this=0x7fffffffd7c0, receiver=0x7fffffffd930, e=0x555557dbfd50) at kernel/qapplication.cpp:3417
    #66 0x00007ffff6c2a6aa in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x7fffffffd930, event=0x555557dbfd50) at ../../include/QtCore/5.15.0/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:325
    #67 0x00007ffff6c2cfa1 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x555556836260) at kernel/qcoreapplication.cpp:1815
    #68 0x00007ffff6c85837 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x555556845e50) at kernel/qeventdispatcher_glib.cpp:277
    #69 0x00007ffff5a3bfbd in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #70 0x00007ffff5a3c240 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #71 0x00007ffff5a3c2e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #72 0x00007ffff6c84e92 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x555556917ca0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
    #73 0x00007ffff6c291bb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffffffd6d0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
    #74 0x00007ffff6c31354 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
    #75 0x0000555555a64bd6 in main(int, char**) (argc=1, argv=0x7fffffffde18) at /home/stalker/strawberry/src/main.cpp:292
    
    
    bug help wanted 
    opened by glaubersm 20
  • Qobuz Playback Stopped working

    Qobuz Playback Stopped working

    Qobuz has been working fine with strawberry up till yesterday 19 September 2019.

    Now I get an error "Invalid Request Signature Parameter" with the following dialog box:

    image

    I'm seeing this problem on multiple systems. Kubuntu/KDE18.04.3 on an Intel i7 desktop, Lubuntu w. lxqt 19.04 on an Atomic Pi, and Lxqt / Debian 10 on an Atomic Pi. Strawberry version 0.6.3-73-g2d67279 and 0.6.3-79-g2d4efd6.

    On Kodi's Qobuz plugin, everything continues to work as before.

    bug confirmed 
    opened by NielsMayer 20
  • Show user's favorite items in Tidal

    Show user's favorite items in Tidal

    Would be nice to have support for browsing thru my favorites on Tidal, incl. playlists, albums, artists. There is currently no way to save favorite albums in strawbs

    enhancement 
    opened by tcpj 20
  • Support chaning playerlist's font-family and font size in Windows and MacOS

    Support chaning playerlist's font-family and font size in Windows and MacOS

        > @jonaski I need to increase the font size (specially at the playlist) in MacOS. Is this supported / planned at all?
    

    Same for Windows. I can change text font and size for "Context" window but playlist's text is small and Japanese symbols are not pretty. Plus when DPI is increased, the current song is blurry. изображение

    Originally posted by @kostabekre in https://github.com/strawberrymusicplayer/strawberry/issues/303#issuecomment-1374487779

    opened by kostabekre 0
  • Nothing happens when clicking on Playlist -> Add directory

    Nothing happens when clicking on Playlist -> Add directory

    • [x] I have checked the FAQ for answers.
    • [x] I have checked the Changelog that the issue is not already fixed.
    • [x] I believe this issue is a bug, and not a general technical issue, question or feature requests that can be discussed on the forum.

    Describe the bug There is a menu entry "Playlist -> Add directory..." (Have german version installed, so english naming is only a guess). In german version it is called "Playliste -> Ordner hinzufügen ..." Nevertheless, when i click on it, open directory dialog opens. When I select a directory and click open, nothing happens.

    To Reproduce see above

    Expected behavior

    • I expect, that all playlists in the chosen directory will be added to the favorite playlists maybe opened as a tab and maybe addid grouped in a directory. (Best option for me)
    • Or maybe only open the playlists from the directory as tabs?
    • Or at least add a directory to the favorite playlist view (No value for me)

    Screenshots: Not needed.

    System Information:

    • Operating system: Ubuntu kinetic kudu
    • Strawberry Version: 1.0.12

    Additional context Please ask if you need more context.

    opened by ReIaxo 0
  • Program crashes when typing too fast in search box

    Program crashes when typing too fast in search box

    • [x] I have checked the FAQ for answers.
    • [x] I have checked the Changelog that the issue is not already fixed.
    • [x] I believe this issue is a bug, and not a general technical issue, question or feature requests that can be discussed on the forum.

    Describe the bug Program crashes when typing too fast in search box

    To Reproduce Using Strawberry as client for a subsonic library. When typing in the search box for the subsonic library, if the input is written too fast, for characters that will match an item, the program crashes. Looks like, if a new character is typed before the previous partial search is rendered, something goes wrong...

    Expected behavior Not a crash lol

    Screenshots: N/A

    System Information:

    • Operating system: Windows 10
    • Strawberry Version: 1.0.12

    Additional context Subsonic collection is >200k files, so a small delay happens when searching. May not be reproducible with small enough collections. I dont have the files in local storage, so i can not test the search for local collection.

    need more info 
    opened by cproensa 1
  • A column is not visible immediately after activing it

    A column is not visible immediately after activing it

    • [x] I have checked the FAQ for answers.
    • [x] I have checked the Changelog that the issue is not already fixed.
    • [x] I believe this issue is a bug, and not a general technical issue, question or feature requests that can be discussed on the forum.

    Describe the bug Frequently a column is completely or almost completely hidden after activating it. I need to drag the separator after the prior column to make the newly activated column visible.

    To Reproduce

    1. right-click on any column of the playlist and uncheck 'Stretch columns to fit the window'
    2. right-click on any column of the playlist and activate any column

    Expected behavior the column activated in the last step is visible

    System Information:

    • Operating system: Arch Linux
    • Strawberry Version: 1.0.10

    Additional context Strawberry built against Qt6

    bug confirmed 
    opened by glaubersm 0
  • Possible Memory Leak When Organizing Files

    Possible Memory Leak When Organizing Files

    • [x] I have checked the FAQ for answers.
    • [x] I have checked the Changelog that the issue is not already fixed.
    • [x] I believe this issue is a bug, and not a general technical issue, question or feature requests that can be discussed on the forum.

    Describe the bug A possible memory leak when using the organize files dialog.

    To Reproduce When organizing files Strawberry uses more and more memory, and when the process is complete the memory usage stays high. When trying to organize my entire library (~230GB) the program used up to 30GB of memory, then I think it failed gracefully midway through. My system still had memory to spare, albeit only swapfile space. The program had to be restarted to free the memory once the process was finished. It should be noted that most of the songs (90+%) in my library were already organized, I was just doing this to update filenames after minor tag changes.

    Expected behavior The program shouldn't use more than a few hundred megabytes of memory and memory usage should be basically constant when organizing files as it should be freed after files are copied.

    Screenshots: The exact naming scheme and options I use for organizing: Screenshot_2022-09-21_00-38-32

    Memory usage after organizing maybe a few thousand files: Screenshot_2022-09-21_00-43-32

    System Information:

    • Operating system: Ubuntu 22.04.1 LTS
    • Strawberry Version: 1.0.9

    Additional context

    need more info 
    opened by kurtisvetter 8
Releases(1.0.12)
MP3 Player/Organizer

I ♡ Music I ♡ Music is an MP3 player and organizer. It is designed for handling collections of albums in MP3 format, and it is very visual, attempting

Mattias Gustavsson 28 Dec 31, 2022
Arduino Audio Tools (Music Player, Music Recorder supporting I2S, Microphones, DAC, ADC, A2DP, Url)

Arduino Audio Tools Some basic header-only C++ classes that can be used for Audio Processing provided as Arduino Library: a simple I2S class (to read

Phil Schatzmann 527 Jan 7, 2023
A music player based on RT-thread and AB32VG1.

A music player based on RT-thread and AB32VG1.

杨澄 7 May 16, 2022
Standalone player of Monkey Island PC-Speaker music

Standalone player of Monkey Island PC-Speaker music

Thanassis Tsiodras 29 Oct 7, 2022
Library and command line backend for the Raspberry Pi OPL3 emulator and midi player

About this repository This repository holds the source code for the pioplemidi backend. You can compile it if you only want to use the library or the

iAmInAction 2 Dec 2, 2021
The latest and greatest version of my Gameboy Audio Player program!

GBAudioPlayerV3 Version 3.0 of the incredible Gameboy Audio Player, rebuilt from the ground up in C as a command line program, along with heavily impr

null 9 Oct 2, 2022
A next generation media player, with vim-like bindings

MusicKid A next generation media player, with vim-like bindings Installation Clone the repo git clone <git-url> cd MusicKid/Final Install dependencies

null 4 Jan 10, 2022
Implement a universal audio player

qiaopcmusic 实现一个万能音频播放器 添加依赖方式: To get a Git project into your build: Step 1. Add the JitPack repository to your build file Add it in your root build.

null 6 Oct 15, 2021
🎵 Music notation engraving library for MEI with MusicXML and Humdrum support and various toolkits (JavaScript, Python)

Verovio is a fast, portable and lightweight library for engraving Music Encoding Initiative (MEI) digital scores into SVG images. Verovio also contain

RISM Switzerland 519 Jan 1, 2023
PendulumSynth is an on-going and open-source project, running on Arduino platform with the goal of mixing real-world physics into music composition and musical performance.

PendulumSynth PendulumSynth is an on-going and open-source project, running on Arduino platform with the goal of mixing real-world physics into music

Mohammadreza Anvari 3 Oct 7, 2022
C++ library for audio and music analysis, description and synthesis, including Python bindings

Essentia Essentia is an open-source C++ library for audio analysis and audio-based music information retrieval released under the Affero GPL license.

Music Technology Group - Universitat Pompeu Fabra 2.3k Jan 7, 2023
C++ Audio and Music DSP Library

_____ _____ ___ __ _ _____ __ __ __ ____ ____ / \\_ \\ \/ / |/ \| | | | \_ \/ \ | Y Y \/ /_ \> <| | Y Y \ | |_|

Mick Grierson 1.4k Jan 7, 2023
a library for audio and music analysis

aubio is a library to label music and sounds. It listens to audio signals and attempts to detect events. For instance, when a drum is hit, at which frequency is a note, or at what tempo is a rhythmic melody.

aubio 2.9k Jan 2, 2023
projectM - cross-platform music visualization. Open-source and Milkdrop-compatible

projectM - cross-platform music visualization. Open-source and Milkdrop-compatible

projectM Visualizer 2.5k Dec 31, 2022
By controlling the frequency at which the output Pins of MSP430 are turned off and on, we can make music.

By controlling the frequency at which the output Pins of MSP430 are turned off and on, we can make music.

Premkumar Vincent 1 Nov 9, 2021
A lightweight music DSP library.

Soundpipe Soundpipe is a lightweight music DSP library written in C. It aims to provide a set of high-quality DSP modules for composers, sound designe

Paul Batchelor 102 Dec 14, 2021
A simple CLI to extract & save artwork of a 🎵 music/audio file.

artwork-extractor A simple CLI to extract & save artwork of a ?? music/audio file. Usage Dependencies MediaInfoLib On Debian based distros, one may in

Hitesh Kumar Saini 5 Aug 4, 2021
Linux client for Archo Music written in C++, uses Qt Framework.

ArchoMusicLinux Linux client for Archo Music written in C++, uses Qt Framework. For the original client, visit Archo Music Compiling Setting up the li

GianXD 2 Nov 13, 2021
C/C++ library for converting a stream of OPL FM synth chip commands to the OPB music format

OPBinaryLib C/C++ library for converting a stream of OPL FM synth chip commands to the OPB music format Basic usage Store your OPL commands as a conti

Emma Maassen 10 Feb 2, 2022