diff options
author | Richard Antalik <richardantalik@gmail.com> | 2022-01-25 23:39:56 +0300 |
---|---|---|
committer | Richard Antalik <richardantalik@gmail.com> | 2022-01-26 00:06:46 +0300 |
commit | b45e71e22cc704a9169abe0b74dabc8be668b00b (patch) | |
tree | 2c4392a09f559037960d720a94387c7168aa6bd2 /source/blender/imbuf/IMB_imbuf.h | |
parent | 597eaeaa1154938f1bc1dd9db71e3ee25ca37f8c (diff) |
VSE: Build proxies only for slow movies
This change applies only for automatic proxy building, when strip
is added to timeline. Manual building process is not affected.
Don't build proxy file if movie is already fast enough to seek.
To determine seek performance, check if whole GOP can be decoded
in 100 milliseconds.
To consider some variation in GOP size, large number of packets are
read, assuming that each packet will produce 1 frame. While this is not
technically correct, it does give quite accurate estimate of maximum GOP
size.
This test will ensure consistent performance on wide array of machines.
Check should be done in order of few milliseconds.
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D11671
Diffstat (limited to 'source/blender/imbuf/IMB_imbuf.h')
-rw-r--r-- | source/blender/imbuf/IMB_imbuf.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/source/blender/imbuf/IMB_imbuf.h b/source/blender/imbuf/IMB_imbuf.h index 65d7631445d..a557d7dc6d1 100644 --- a/source/blender/imbuf/IMB_imbuf.h +++ b/source/blender/imbuf/IMB_imbuf.h @@ -378,8 +378,9 @@ struct IndexBuildContext *IMB_anim_index_rebuild_context(struct anim *anim, IMB_Timecode_Type tcs_in_use, IMB_Proxy_Size proxy_sizes_in_use, int quality, - bool overwrite, - struct GSet *file_list); + const bool overwrite, + struct GSet *file_list, + bool build_only_on_bad_performance); /** * Will rebuild all used indices and proxies at once. @@ -431,6 +432,7 @@ bool IMB_anim_can_produce_frames(const struct anim *anim); int ismovie(const char *filepath); int IMB_anim_get_image_width(struct anim *anim); int IMB_anim_get_image_height(struct anim *anim); +bool IMB_get_gop_decode_time(struct anim *anim); /** * |