[Libav-user] Libavformat - Guranteed seeking before keyframe
canilkerkaya at gmail.com
Sun Feb 21 03:20:30 EET 2021
I am trying to seek my audio ogg file with the following:
int64_t targetPts = av_rescale_q(seekTimeMicro, AV_TIME_BASE_Q, streamTimeBase);
av_seek_frame(avFormatContext, streamInfoIndex, targetPts,
This works all fine. Most of the time AVSEEK_FLAG_BACKWARD makes sure that
the stream is seeked to a time before targetPts. However, there are times
the opposite happens, seeking a time after targetPts. I can see this with
the first frame I request from avcodec_receive_frame() having pts
(avFrame->pts) greater than my targetPts. I need to ensure that the first
frame I receive is always smaller than my targetPts. (it's an overhead in
my system, long story).
I read it that here
"It appears that, for some reason, av_seek_frame() using
AVSEEK_FLAG_BACKWARD returns the next keyframe when the frame that I am
seeking is the one directly before this keyframe. Otherwise it returns the
previous keyframe (which is what I want).". I suspect that this is the
case. However, this post is too old so it might be outdated.
Could you help me?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Libav-user