[PLUGIN] SmartQueue

needed this one:

. "$HOME/.cargo/env"
cargo install --features=rpi blissify

But it errors out the same.

error: failed to run custom build command for `ffmpeg-sys-next v7.0.0`

Caused by:
  process didn't exit successfully: `/tmp/cargo-installG4uQNT/release/build/ffmpeg-sys-next-0a802b8c4af01339/build-script-build` (exit status: 101)
  --- stdout
  cargo:rerun-if-env-changed=LIBAVUTIL_NO_PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG_armv7-unknown-linux-gnueabihf
  cargo:rerun-if-env-changed=PKG_CONFIG_armv7_unknown_linux_gnueabihf
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_armv7-unknown-linux-gnueabihf
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_armv7_unknown_linux_gnueabihf
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_armv7-unknown-linux-gnueabihf
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_armv7_unknown_linux_gnueabihf
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_armv7-unknown-linux-gnueabihf
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_armv7_unknown_linux_gnueabihf
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR

  --- stderr
  thread 'main' panicked at /home/volumio/.cargo/registry/src/index.crates.io-1cd66030c949c28d/ffmpeg-sys-next-7.0.0/build.rs:740:14:
  called `Result::unwrap()` on an `Err` value:
  pkg-config exited with status code 1
  > PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 pkg-config --libs --cflags libavutil

  The system library `libavutil` required by crate `ffmpeg-sys-next` was not found.
  The file `libavutil.pc` needs to be installed and the PKG_CONFIG_PATH environment variable must contain its parent directory.
  The PKG_CONFIG_PATH environment variable is not set.

  HINT: if you have installed the library, try setting PKG_CONFIG_PATH to the directory containing `libavutil.pc`.

  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
error: failed to compile `blissify v0.4.1`, intermediate artifacts can be found at `/tmp/cargo-installG4uQNT`.
To reuse those artifacts with a future compilation, set the environment variable `CARGO_TARGET_DIR` to that path.
volumio@volumio-argone:~/temp$

Finally tried it manually, which also failed. So there is some research to be done:

apt install -y clang libavcodec-dev libavformat-dev libavutil-dev libavfilter-dev libavdevice-dev libsqlite3-dev pkg-config

cargo install --features=rpi blissify
error[E0004]: non-exhaustive patterns: `sys::AVPixelFormat::AV_PIX_FMT_RPI` not                                                                                                                                 covered
    --> /home/volumio/.cargo/registry/src/index.crates.io-1cd66030c949c28d/ffmpe                                                                                                                                g-next-7.0.2/src/util/format/pixel.rs:481:15
     |
481  |         match value {
     |               ^^^^^ pattern `sys::AVPixelFormat::AV_PIX_FMT_RPI` not cove                                                                                                                                red
     |
note: `sys::AVPixelFormat` defined here
    --> /tmp/cargo-installFVYmjS/release/build/ffmpeg-sys-next-b525e8aeeb6cefc5/                                                                                                                                out/bindings.rs:5478:1
     |
5478 | pub enum AVPixelFormat {
     | ^^^^^^^^^^^^^^^^^^^^^^
...
5600 |     AV_PIX_FMT_RPI = 120,
     |     -------------- not covered
     = note: the matched value is of type `sys::AVPixelFormat`
help: ensure that all possible cases are being handled by adding a match arm wit                                                                                                                                h a wildcard pattern or an explicit pattern as shown
     |
838  ~             AV_PIX_FMT_RPI4_10 => Pixel::RPI4_10,
839  ~             sys::AVPixelFormat::AV_PIX_FMT_RPI => todo!(),
     |

   Compiling extended-isolation-forest v0.2.3
   Compiling indicatif v0.17.8
For more information about this error, try `rustc --explain E0004`.
error: could not compile `ffmpeg-next` (lib) due to 1 previous error
warning: build failed, waiting for other jobs to finish...
error: failed to compile `blissify v0.4.1`, intermediate artifacts can be found                                                                                                                                 at `/tmp/cargo-installFVYmjS`.
To reuse those artifacts with a future compilation, set the environment variable                                                                                                                                 `CARGO_TARGET_DIR` to that path.

next followed the instruction from the forum:

cargo install blissify --features=ffmpeg-next/rpi

Failing

cargo install blissify --features=bliss-audio/rpi
Failing

@Wheaten I’ve reported on precited forum
It would be very helpfull If you could help debug and provide me rpi4 blissify-rs binaries in a way or another :heart:

Even though I would like to contribute, but it’s way to time intensive. (60+ min per run, Restore and Install)

understand, I will find a way

added my 2 cts on git, as far as I could recall

Thk you
This evening I will attempt to cargo cross compile from my primo to RPI4/5
@Wheaten can you give me the output of uname -m for your machine, just to be sure if target is armv7l or aarch64

volumio@volumio-argone:~$ uname -m
armv7l

Seems it’s far from stable.
Finally got it compiled, to run into the next error.

replaced row 838 of:
/home/volumio/.cargo/registry/src/index.crates.io-1cd66030c949c28d/ffmpeg-next-7.0.2/src/util/format/pixel.rs
with:

838  ~             AV_PIX_FMT_RPI => todo!(),
839  ~            AV_PIX_FMT_RPI4_10 => todo!(),

Launch Bliss update...    
blissify restarted                                                                                                                                                                                                 
song.db found, updating blissify...                                                                                                                                                                                
[2024-07-24T18:24:43Z WARN  blissify] Could not find any MPD_HOST environment variable set. Defaulting to 127.0.0.1.
[2024-07-24T18:24:43Z WARN  blissify] Could not find any MPD_PORT environment variable set. Defaulting to 6600.
Error: error happened with the music library provider - item not found error (`No database') at 0                                                                                                                  
Session closed.

After a reboot it finally start to work.

Volumio: V3.742
Model: Raspberry Pi 4 Model B Rev 1.2
Kernel: 6.1.69-v7l+
Arch: armv7l
blissify.zip (1.6 MB)

If I am correct we can copy the generated dB to different systems.
Currently building the dB on a I7, where is it stored and is my above assumption correct?

Yes you can, but you may have to sql correct the path to music in your database to match volumio file tree.
I plan to add an import button that will smartly correct the path from an externaly generated database

I believe that for all Volumio devices the path is the same, unless you are using different aliases per device.

Currently installing it on the Motivo. Let’s see what happens.
Volumio: V3.742
Model: Raspberry Pi Compute Module 4 Rev 1.1
Kernel: 6.6.30-v8+
Arch: aarch64

on linux yes /mnt is the standard

is it your binary? could you please test the one I PM you, crosscompiling working may be convenient in a the future

I have one other rPi4, but don’t want to run into the sae problems again.
What files do I need to copy over ? only /home/volumio/.cargo/bin and the blissify you mailed me?

yes, you replace blissify in /home/volumio/.cargo/bin by the one i send you

Motivo is also generating errors.
/home/volumio/.cargo/registry/src/index.crates.io-1cd66030c949c28d/ffmpeg-next-7.0.2/src/util/format/pixel.rs

added on row 733: _ => todo!(),

Volumio: V3.742
Model: Raspberry Pi Compute Module 4 Rev 1.1
Kernel: 6.6.30-v8+
Arch: aarch64
blissify.zip (1.6 MB)

Copied the /bin folder to the rPi.
Copied the provided blissify to the /bin folder.
Ran chmod +X
File is working:

1 Like

it smells good, thank you for support

Also tested the Odroid N2+. Worked without any problems.
Volumio: V3.703
Model: Hardkernel ODROID-N2Plus
Kernel: 4.9.241+
Arch: aarch64

Also tested the x86. Worked without any problems.
Volumio: V3.747
Model: Intel(R) Core™ i5-4570T CPU @ 2.90GHz
Kernel: 6.6.32-volumio
Arch: x86_64