#1575 closed enhancement (invalid)
Clarify docs that av_seek_frame() may possibly not seek by keyframe
| Reported by: | mbradshaw | Owned by: | stefano |
|---|---|---|---|
| Priority: | normal | Component: | documentation |
| Version: | git-master | Keywords: | |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | no | |
| Analyzed by developer: | no |
Description
As a result of the discussion on the libav-user mailing list (particularly this reply), I learned that av_seek_frame() may not actually seek by keyframe for some files. The way the current documentation is ("Seek to the keyframe at timestamp.") it sounds like it will always seek to a keyframe, which implies the next packet read and fed into avcodec_decode_video2/audio4() will result in a complete frame, which of course is not the case if seeking by keyframe is not done.
This ticket is a request to simply expand on the existing documentation of av_seek_frame() and clarify that seeking may possibly not be done by keyframe (and any other gotchas that people might know that aren't documented with av_seek_frame()). I'd submit a patch myself but I seem to always get surprised with new gotchas when it comes to seeking, so I hope someone who is more familiar with av_seek_frame()'s behavior can better expound than I can.
Change History (3)
comment:1 by , 14 years ago
comment:2 by , 14 years ago
| Resolution: | → invalid |
|---|---|
| Status: | new → closed |
comment:3 by , 14 years ago
Closed as invalid in favor of #1607 (this isn't a problem with the docs, it's a problem with the demuxer breaking the seeking contract)



Actually, an alternative solution that would be acceptable to me would be to make
av_seek_frame()return an error ifAVSEEK_FLAG_ANYwas not specified and the format doesn't support seeking by keyframe (like mpg).