I'd say using the functions provided would be better.

If you seek through the file and provide the decoder with chunks out of it, you'll have to understand the file format to know how big to make the jumps. If you just seek a preset amount for each file type then the jumps in time would vary greatly.

Maybe you could abstract it to an intermediate layer. Then if you ever want to add another codec then it would just a matter of writing the correct module and compiling it in. If you then use dynamic libraries you wouldn't even need to recompile the main app.

- Trevor