diff options
author | Richard Antalik <richardantalik@gmail.com> | 2021-03-30 03:52:20 +0300 |
---|---|---|
committer | Richard Antalik <richardantalik@gmail.com> | 2021-03-30 03:58:53 +0300 |
commit | 6c33d3d01b6237cbe854b1d6ca54ac9680bb0563 (patch) | |
tree | 94f085101d9d04c28399e01f6eda041675bf8dba /source/blender/blendthumb | |
parent | ffbe8035057f2937e9c4e32201fed5ac7776def6 (diff) |
Fix T86944: Incorrect seeking in some movies
`av_seek_frame()` failed to seek to nearest I-frame. This seems to be
a bug or not implemented feature in FFmpeg. Looks like same issue as
ticket https://trac.ffmpeg.org/ticket/1607 on ffmpeg tracker.
If seeking is done using format specific function (`read_seek2`)
field of `AVInputFormat` is set, `see av_seek_frame()`, use
`av_seek_frame()` function. Otherwise use wrapper that actively searches
for I-frame packet.
Searching is flexible and tries to do minimum amount of work. Currently
it is limited to equivalent of 25 frames, which may not be enough for
some files, but there may be files with no I-frames at all, so it is
best to keep this limit as low as possible. Previously this problem was
masked by preseek, which was hard-coded to 25 frames. This was removed
in rB88604b79b7d1.
If this approach would be unnecessary for some formats, in worst case
file would be seeked 2 times which is very fast, so there will be no
visible impact on performance.
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D10845
Diffstat (limited to 'source/blender/blendthumb')
0 files changed, 0 insertions, 0 deletions