Advice on Architecture for a media app

Manusha Wijekoon manusha1980 at
Mon Nov 29 10:18:12 UTC 2021

Hi all,

I am developing a music player based on gstreamer and raspberry pi. This
player can play music from various sources such as:

1. internet radio (delivered via TCP/UDP)
2. Music streaming services such as spotify (Not sure how their SDK work,
but I hope it could be PCM data)
3. DAB/FM/DAB+: For this I will be using a chip which outputs audio data
through I2S bus.
4. Network storages and USB stick. Content can be read via files.

Currently I am thinking of writing a C++ daemon app which will create
gstreamer pipelines. Part of these pipelines would be common for all
sources (such as equalizer, volume, tone control, sound effects, outputting
to pulse audio, outputting to SPDIF port - through I2S).
The Remaining part would be different for different sources. For example, I
can use a file reader source to get PCM output which can be fed to the
common part of the pipeline.
Similarly, I can write (or use an existing element) to read streaming audio
through UDP and get PCM output which can again be connected to the common
part of the pipeline. For I2S sources (DAB+/FM/DAB) the app can be read
directly from the I2S port (assuming a driver exists) and so on.

Does this sound like a good design? Are there any alternatives that I can

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the gstreamer-devel mailing list