<div dir="ltr">Hi all,<div><br></div><div>I am developing a music player based on gstreamer and raspberry pi. This player can play music from various sources such as:</div><div><br></div><div>1. internet radio (delivered via TCP/UDP)</div><div>2. Music streaming services such as spotify (Not sure how their SDK work, but I hope it could be PCM data)</div><div>3. DAB/FM/DAB+: For this I will be using a chip which outputs audio data through I2S bus.</div><div>4. Network storages and USB stick. Content can be read via files.</div><div><br></div><div>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).</div><div>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.</div><div>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.</div><div><br></div><div>Does this sound like a good design? Are there any alternatives that I can consider?</div><div><br></div><div>Thanks</div><div>Manusha</div><div><br></div><div><br></div></div>