[Libav-user] Using libavformat/libavcodec with sample accurate seeking

Christopher Snowhill kode54 at gmail.com
Sun Aug 28 08:16:12 EEST 2016

I've noticed that when using these libraries in my own projects, at
least in VGMStream, and with the WMA Pro codec, it is necessary to
perform my own pre-roll when seeking for looping, or else the codec
ramps the audio in from silence on every loop as it catches back up to a
valid state. I currently use either two seconds, or the beginning of the
file if it's less than two seconds prior to the intended seek point,
then discard sample data that is returned by the decoder.

Is this always necessary by design? Or am I misusing the seeking API?

I currently use:

int64_t ts = target_sample * formatCtx->duration / total_samples;
avformat_seek_file(formatCtx, -1, ts - 1000, ts, ts, AVSEEK_FLAG_ANY);

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: OpenPGP digital signature
URL: <http://ffmpeg.org/pipermail/libav-user/attachments/20160827/beb6327b/attachment.sig>

More information about the Libav-user mailing list