[Bf-blender-cvs] [c8a7e3a5722] ui-asset-view-template: FFmpeg: Improve scrubbing performance
Richard Antalik
noreply at git.blender.org
Wed Mar 3 21:45:15 CET 2021
Commit: c8a7e3a5722378e6e0c44c69e0d647ef06436196
Author: Richard Antalik
Date: Tue Mar 2 12:13:21 2021 +0100
Branches: ui-asset-view-template
https://developer.blender.org/rBc8a7e3a5722378e6e0c44c69e0d647ef06436196
FFmpeg: Improve scrubbing performance
Applying negative offset to seek position before scanning doesnn't have
any effect. This change results in 1.5x faster seeking (random frame,
average value) in sample file with 30 frame GOP length.
If I am not mistaken, B frames can have pts that can be less than
pts of I frame that must be decoded. Even in this case though, B frame
packet will be stored after that I frame.
In addition, preseek value is de facto hardcoded so seeking would fail
if it could. This can be hard to spot though.
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D10529
===================================================================
M source/blender/imbuf/intern/anim_movie.c
===================================================================
diff --git a/source/blender/imbuf/intern/anim_movie.c b/source/blender/imbuf/intern/anim_movie.c
index 28bf26aa343..d36c7bbe486 100644
--- a/source/blender/imbuf/intern/anim_movie.c
+++ b/source/blender/imbuf/intern/anim_movie.c
@@ -1149,7 +1149,7 @@ static ImBuf *ffmpeg_fetchibuf(struct anim *anim, int position, IMB_Timecode_Typ
}
}
else {
- pos = (int64_t)(position - anim->preseek) * AV_TIME_BASE / frame_rate;
+ pos = (int64_t)position * AV_TIME_BASE / frame_rate;
av_log(anim->pFormatCtx,
AV_LOG_DEBUG,
More information about the Bf-blender-cvs
mailing list