Quality Indicator with custom string not working

App version

Beta

Issue description

Now Playing screen doesn’t expose correct codec info about the track that’s being played.
This causes any custom string that’s used as a quality indicator to NOT work and display the source quality instead of the transcoded quality.

Device type

Phone

Media provider

Navidrome

Steps to reproduce

  1. Set the custom string that’s provided here
  2. Play a track where transcoding is required
  3. Observe the “Lossless” or “High Res Lossless” indicator instead of the expected “High efficiency” indicator (if transcoding is set at 128kb)

Additional information

First seen it happening with Apple Music for Symfonium, but even the example string doesn’t work.

I searched existing issues first

on

I understand that logs are mandatory

on

Log upload name / description

RoyalGuard-Transcoding-1

No everything works as per the string definition …

The issue is that Navidrome still returns 24 as bitdepth for the Opus transcode and the custom string makes assumption based on that as per how it’s written.

@deluan Navidrome should probably not return the original FLAC bitdepth in the transcodeStream details since it’s a wrong value.

Done: fix(subsonic): omit bit depth for lossy targets in transcode decision by deluan · Pull Request #5768 · navidrome/navidrome · GitHub

Question: should it return 0 or omit the field?

Both are valid, since you probably also return 0 in the sourceStream ?

The field is not required so it can be omitted, maybe better to omit if some apps don’t handle the 0 correctly.

But I don’t know how many other apps uses that API. So we can also clarify on OS site.

@itm what do you return ?

LMS omits the field, since the field is explicitely marked as optional (that’s true for both source and transcode streams).