I'm looking to figure out how to implement skimming through a track while holding down fast forward or rewind, when using flac/ogg/libmad decoders. If you haven't guessed, this is for RioPlay. Everyone seems to call this functionality by different names, so I figured that I would describe it in long words, as above, to ensure we're on the same page and understand each other.

Each decoder seems to have some similar jargon, but I'm not quite sure if they all do the same thing, and if their "built-in" functionality is at all what we would want to use to implement the desired feature.

FLAC has the following in it's documenation:
Seeking is exposed through the FLAC__seekable_stream_decoder_seek_absolute() method. At any point after the seekable stream decoder has been initialized, the user can call this function to seek to an exact sample within the stream.

LibMAD has mad_stream_skip ... I'm not quite entirely sure what it does and if it's what I'm looking for.

Xiph Ogg has the following functions which may or may not be what I'm looking for: ov_pcm_seek, ov_pcm_seek_page, ov_time_seek.

I guess my question is, when it comes to attemtping to implement this feature, should I try a more generic aproach, like simply reading in a portion of a given file and feeding that little tidbit of data to the proper decoder, and skipping ahead through that file at regular intervals to capture more tiny bits of audio data, dumping it out to the decoder as needed? Or should I continue to explore the built in functionality of each of these decoders to implement this feature?

Greg
_________________________