Development progress on DLNA Player – September 2021

Development progress on DLNA Player – September 2021

Hi everyone,

It’s been a long time since I’ve shared some news on my DLNA Player software. Truth is, I’ve been taking a break on working on personal projects. I’ve been mostly watching movies and resting, but these days I’ve decided to start working on some software again. In this post, I’d like to tell you what have been integrated in the software.

DLNA Player v0.5 User Interface
The user interface.

In terms of the user interface, not much has changed. There’s now a new Options menu where now you can decide to decode the following formats:

  • FLAC to WAV.
  • M4A to WAV.
  • MP3 to WAV.
  • Opus to WAV.
  • WMA to WAV.

Or you can decide to decode the above formats to FLAC instead of WAV. This has been added to increase compatibility with renderers.

DLNA Player options to choose which formats to decode.
List of decoding options.

One thing I did on these days is make sure certain decoder software is present to prevent issues while trying to decode audio. Specifically, the software tries to run the following software at startup:

  • flac.exe – To decode FLAC files to WAV.
  • opusdec.exe – To decode Opus files to WAV.
  • ffmpeg.exe – To decode M4A, MP3 and WMA.

Ffmpeg is also needed if we want to use it instead of flac.exe and opusdec.exe, or if we want to decode the audio files to FLAC instead of WAV. If any if these software is not present, the corresponding options will be greyed.

DLNA Player options to choose which formats are available to be decoded.
Some options are greyed out because of missing software.

Under the hood, some code refactoring went around at some parts to stabilize the decoding, streaming and user interface. For example, the initial loading will now not freeze the User Interface (UI) as it will happen on a separate thread. This was mostly most notable while decoding an audio track on a CD, because the software must rip the track to memory.

DLNA Player Play Function showing that files are loaded on a thread.
The LoadFile() function is now executed in its own thread.

Overall, I think I’m almost ready to release a version of this software to the world, so anyone with a DLNA-enabled player can use it. I’ve been testing it with a Hiby R3 Pro Saber. The only issue I’ve found is it seems to not work with the firmware update v1.6, so I rolled back and it seems to be working. I’m not sure why it fails to play back since the Hiby R3 DLNA software seems to be making valid requests to my software. It’s something that needs more investigation, but it works great with older versions.

Streaming music from the DLNA Player software to the Hiby R3 Pro Saber Digital Audio Player.

I will keep everyone updated as I do more coding or fix any other issue that may be found.

In the meantime, you can download v0.4 from GitHub by clicking here. This release includes the ability to load the next track while the current track plays, so the next track will play right after the current one finishes playing.