Proper thumbnail generation for Storyboard View
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Novacut |
Fix Released
|
High
|
Jason Gerard DeRose |
Bug Description
MOV files from Canon HDSLR have a keyframe every 15 frames, so on average you're going to be decoding 7.5 frames to get to some random frame, which is pretty expensive.
As long as you're bothering to thumbnail a single frame, you might as well thumbnail 15 frames, starting with the keyframe at or before the frame you want, and ending with the frame just before the next keyframe. So that's what we're doing for now.
I think this is probably the right trade off for the Storyboard View as this is a place where the users will make many small adjustment of just a frame or two, so this means we're likely to have adjacent frames already in the thumbnail cache. Although this approach means it takes a bit longer to catch-up with the edit and display a frame that wasn't in the cache, these interruptions will happen far less frequently (15/th as frequently, to be exact).
We'll do user testing on this to see if this is actually the right approach. If we can squeeze a bit more performance out of this, this is probably a clear win: have your cake and eat it too.
Note that this is all async and the thumbnail generation is done in a completely separate process, so the UI remains fluid and usable while waiting for thumbnails. You can step by frame at anytime, you just might have to wait a moment for the frame to be displayed.
I just finished this up, and this bug is to track the merge and feature.
Related branches
- James Raymond: Approve
-
Diff: 594 lines (+254/-135)6 files modifiedgen-random-project.py (+4/-5)
novacut-gtk (+6/-6)
novacut-service (+16/-17)
novacut-thumbnailer (+103/-64)
ui/cutter.css (+10/-12)
ui/cutter.js (+115/-31)
Changed in novacut: | |
status: | In Progress → Fix Committed |
description: | updated |
Changed in novacut: | |
status: | Fix Committed → Fix Released |