Saturday, April 02, 2011

AudioPlayerLibrary Update 04/02/11

The development of my new audio player library is progressing nicely. I'm still looking for development help, but in the mean time the following things have been updated in the past couple of weeks:

  1. Added a 'http' input plugin. It's far from finished, but it already supports ice/shout-cast streams and I have been able to playback mp3 streams without problems. Lots of work still needs to happen here: http error checking, http redirects.
  2. The mpeg-audio reader has been made more robust and will now check for several valid consecutive frames to make sure it doesn't get invalid mpeg frames. On regular audio files this was never much a problem, but with streams there's a greater chance of finding garbage bytes.
  3. Started work on a 'cdda' plugin (aka audio cd reader). Basic playback for single tracks works. Most of the work remains to be done in the front end (gogglesmm), which would need to detect audio cd presence, list available tracks and possible lookup of track information on cddb.
  4. Output device configuration can now be changed from within gogglesmm. Configuration can be changed on-the-fly even while playing. Playback does automatically stop if somehow the new device fails to open. There still remains work to be here as well. Not all device settings are exposed yet (like mixer devices), but this work will slowly continually evolve when the need arrives.
  5. I added a 'wav file output' plugin. It sends the pcm output to a WAV file and is mainly for me to debug any "gaples" playback issues and allows me to easily determine whether the gap is in the stream itself or generated somehow by the soundcard.
  6. The mpegaudio reader now correctly parses lame tags and this fixes most of the gapless playback issues I had with some of the mp3 files.
So all in all, progress has been pretty good. Again I'm still hoping I could get some people interested in helping out (development). Even if you just want to test that would be fine too.

For more information please see:

No comments: