C has never been my strong point but I’ve just been playing around with gstreamer, and have managed to write a super simple audio player. Its using decodebin (not playbin) so can handle the various audio formats which gstreamer supports.
Pleasantly surprised at the progress I was able to make in such a short time - hats off to the gst dev’s who made this so simple. With any luck I might actually be able to achieve my goal of a gstreamer plugin for MPD eventually.
Update: Got tag reading working as well - woot!