Good day. It seems vorbisfile has a bug. There is a such string in ov_time_seek: ogg_int64_t target=pcm_total+(seconds-time_total)*vf->vi[link].rate; It is not accounted type convertion between double and ogg_int64_t. E.g. if I convert 440267'th sample (44100Hz source) to time: double dSec = 440267 / (double) 44100; and then try to seek dSec: ov_time_seek(pOVFile, dSec); the resulting offset will be 440266'th sample, because of dSec*44100 gives 440266.999999997... Probably the line ogg_int64_t target=pcm_total+(seconds-time_total)*vf->vi[link].rate; should be replaced with something like: ogg_int64_t target=pcm_total+( (seconds-time_total)*vf->vi[link].rate + 0.499999); It is very likely that this is not a unique place in source code with the same problem. (I use Visual C++ 6.0) Vitaly. --- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'vorbis-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.