At this point, I've implemented an array of pointers to each of the frame boundaries (which I calculate, since the high-level API doesn't give me this information), and I know very easily how to fast-forward through an mp3 (that is, just skip frames.) Is there any way other than restarting the whole decoding process and skipping frames up to the point we were looking for to seek backwards with the high-level API? I can't think of any way to re-set the stream pointers.