Reviving CepiPerez's FlowPlayer

Following @poetaster’s advice,

I avoid frustrating me and rather ask here instead:

Is someone interested in migrating FlowPlayer from gstreamer / gstreamer-devel-0.10 to gstreamer1.0 / gstreamer1.0-devel?

FlowPlayer is a music player with lyrics support, online radio and 10-band equalizer, which was very positively reviewed in 2015 - 2022.

I overhauled the infrastructure for FlowPlayer (git repo at GitHub, creating a CI pipeline there, establishing Transifex integration, new OpenRepos page etc.) and intend to maintain these aspects, but do not want to dive into programming work, as a simple adaptation was insufficient.

There may be other things to adapt for recent SailfishOS releases, but issue #11 (the gstreamer migration) currently prevents compiling it, so I cannot create a release to test, hence this is a crucial first step.

PRs are welcome!

15 Likes

Hello @olf, just a small message to say that I’ve started upgrading GStreamer. Actually it’s not that much, since only affecting some parts in src/player.cpp.

Then, when running it for test (after moving from hardcoded paths to QStandardPaths), no music is shown and I get many database errors. So still work in progress. I guess some other parts need to be updated to get it running on latest Sailfish OS.

9 Likes

The 2016 version works on the XA2, Equalizer included. Searching for eye candy works, too (I tried Camel and Bread - not the best choices). I have a lot of compatibility packages installed from various sources. My user is nemo with a defaultuser symlink (and vice versa on newer installs).

The file selector is trapped inside the home directory but symlinking the SD card works (I put it inside Music). Any path can be added in the conf file ~/.config/cepiperez/flowplayer.conf.

1 Like

That is an effect of SailJail, for which I already wrote a trivial configuration (= full bail out).

Ok, it’s compiling and running :

11 Likes

Many thanks to you all, special thanks to @dcaliste for the two pull requests, one of which resolves the gstreamer migration addressed here, the other one hardcoded /home/nemo paths.

I will try to create a release for testing the upcoming weekend.

12 Likes

Done: @OpenRepos and @GitHub

9 Likes

Lovely lovely! Thanks for adopting!

1 Like

I installed on a 10ii 4.5.0.24 and just got a white screen.

Strange, would you be able to run it from the command line ? As a start, just flowplayer at the prompt would be enough and gives details on what is wrong.

[defaultuser@Xperia10II ~]$ flowplayer
[D] unknown:0 - Getting language from locale: “en_GB”
[D] unknown:0 - Using Wayland-EGL
library “libGLESv2_adreno.so” not found
library “eglSubDriverAndroid.so” not found
[W] unknown:5 - file:///usr/share/flowplayer/qml/flowplayer.qml:5:1: module “org.nemomobile.mpris” is not installed
import org.nemomobile.mpris


edit, reinstalled via terminal and opened:
[root@Xperia10II defaultuser]# flowplayer
error: XDG_RUNTIME_DIR not set in the environment.
[C] unknown:0 - Failed to create display (No such file or directory)

It working great! Thank you.
I can’t seem to download artist or album images. That’s the only issue I’m facing.

Yeah, don’t run apps as root. Do it as defaultuser.

And the original error shows that the package providing org.nemomobile.mpris is not installed.

Try installing:

devel-su pkcon install mpris-qt5-qml-plugin

and then run it again.

@olf probably a dependency update is needed in the .spec - although usually rpmbuild should detect qml imports and add the correct dependencies as Requires: lines

Requires: qml(org.nemomobile.mpris)

or:

Requires: mpris-qt5-qml-plugin
6 Likes

thanks nephros, I installed mpris-qt5…and it now works fine!

Please open an issue report at GitHub for tracking this properly; otherwise your remark is likely to get lost.

1 Like

I did it. I just hope I did it correctly. :slight_smile:

2 Likes

More than that: perfectly!

2 Likes

First impressions:

XA2, 32-bit. I’m being extremely critical and give it 10 out of 10. Migrating from Cepi’s version was a piece of cake: after starting and closing the new version (to see what the new locations are), move/copy/symlink the conf and db files from ~/.config/cepiperez/ to ~/.config/flowplayer/flowplayer/ and move the files in ~/.cache/flowplayer/ to ~/.cache/flowplayer/flowplayer. For some reason the active conf file is now in cepiperez and the active database in flowplayer.

10 III, 64-bit. After a successfull migration from 32-bit nemo to 64-bit defaultuser I give it 11/10. I used rsync -rtuv over WiFi to copy the FlowPlayer files and the media-art cache (slow but elegant) and created symlinks so that the paths match - maybe I should look into SQLite3 to be able to fix the paths…


It would be nice to be able to add artist and album pics from file - not all local amateur bands show up in the search, and for some Joe Jackson albums I was offered pics of Michael Jackson’s dad.

2 Likes

You may want to open a feature request at GitHub to ensure that your wish is not lost.

Very nice idea, to revive this player!

After installing the mpris plugin, the app starts up with a nice UI but without any content. Feedback from the terminal:

[defaultuser@Xperia10III ~]$ flowplayer
[D] unknown:0 - Getting language from locale: “en_GB”
[D] unknown:0 - Using Wayland-EGL
library “libutils.so” not found
library “libcutils.so” not found
library “libhardware.so” not found
library “android.hardware.graphics.mapper@2.0.so” not
found
library “android.hardware.graphics.mapper@2.1.so” not
found
library “android.hardware.graphics.mapper@3.0.so” not
found
library “android.hardware.graphics.mapper@4.0.so” not
found
library “libc++.so” not found
library “libhidlbase.so” not found
library “libgralloctypes.so” not found
library “android.hardware.graphics.common@1.2.so” not
found
library “libion.so” not found
library “libz.so” not found
library “libhidlmemory.so” not found
library “android.hidl.memory@1.0.so” not found
library “vendor.qti.qspmhal@1.0.so” not found
[D] unknown:0 - Loading preset: “”
[W] unknown:284 - file:///usr/share/flowplayer/qml/fl
owplayer.qml:284:5: QML DockedPanel: Binding loop det
ected for property “visibleSize”
[D] onStatusChanged:19 - Loaded: false - main: false
[D] unknown:0 - DATABASES: “”
[D] unknown:0 - Database: “/home/defaultuser/.config
/flowplayer/flowplayer/flowplayer.db”
[D] startTimers:95 - Starting timers
[W] unknown:87 - file:///usr/share/flowplayer/qml/pag
es/CoverArtList.qml:87:5: QML Image: Cannot open: fil
e:///home/defaultuser/.cache/media-art/album-d41d8cd9
8f00b204e9800998ecf8427e-d41d8cd98f00b204e9800998ecf8
427e.jpeg
[W] unknown:87 - file:///usr/share/flowplayer/qml/pag
es/CoverArtList.qml:87:5: QML Image: Cannot open: fil
e:///home/defaultuser/.cache/media-art/album-d41d8cd9
8f00b204e9800998ecf8427e-d41d8cd98f00b204e9800998ecf8
427e.jpeg
[W] unknown:43 - file:///usr/share/flowplayer/qml/pag
es/CoverPage.qml:43:15: Unable to assign [undefined]
to QString
[W] unknown:56 - file:///usr/share/flowplayer/qml/pag
es/CoverPage.qml:56:15: Unable to assign [undefined]
to QString
[W] unknown:433 - file:///usr/share/flowplayer/qml/pa
ges/NowPlaying.qml:433:23: Unable to assign [undefine
d] to QString
[W] unknown:444 - file:///usr/share/flowplayer/qml/pa
ges/NowPlaying.qml:444:23: Unable to assign [undefine
d] to QString
[W] unknown:454 - file:///usr/share/flowplayer/qml/pa
ges/NowPlaying.qml:454:23: Unable to assign [undefine
d] to QString
[W] unknown:175 - file:///usr/share/flowplayer/qml/pa
ges/Lyrics.qml:175:23: Unable to assign [undefined] t
o QString
[W] unknown:192 - file:///usr/share/flowplayer/qml/pa
ges/Lyrics.qml:192:20: Unable to assign [undefined] t
o double