Thanks for the help, Michael. I now have in-memory decoding via libvorbisfile working like a champ. I am able to pass a pointer to my object as the data source to get the same encapsulation I wanted in my own decoder. libvorbisfile was pretty easy to use. The guys at Xiph are doing a great job.