Bug 363900

Summary: git master: removing a preview zone does not invalidate rendered preview chunks
Product: [Applications] kdenlive Reporter: Wegwerf <wegwerf-1-2-3>
Component: User Interface & MiscellaneousAssignee: Jean-Baptiste Mardelle <jb>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Wegwerf 2016-06-03 15:06:45 UTC
When removing ("unsetting") a preview zone the corresponding preview chunks never get invalidated. In consequence when playing this zone the cached chunks take precedence so any changes made in the timeline are not visible. This becomes especially visible when preview rendering gets out of sync with edits in the timeline so that chunks don't get properly invalidated. Unsetting and setting the preview zone should then trigger a fresh preview rendering to arrive at a sane state.

Reproducible: Always

Steps to Reproduce:
1. Edit a clip in the timeline while its chunk is getting rendered; this may cause the chunk to be considered green, albeit it should in fact be red again.
2. Unset zone covering such "green" chunks.
3. Set Zone again, chunk turns red.
4. Render Zone: chunk doesn't get rendered.
Comment 1 Jean-Baptiste Mardelle 2016-06-04 21:44:26 UTC
Git commit 4bef7eb9367e985ad9e28df11ceccaf3c425c59e by Jean-Baptiste Mardelle.
Committed on 04/06/2016 at 21:44.
Pushed by mardelle into branch 'master'.

Timeline preview fixes
Related: bug 363902, bug 363904

M  +6    -3    src/doc/kdenlivedoc.cpp
M  +1    -0    src/doc/kdenlivedoc.h
M  +1    -1    src/main.cpp
M  +3    -1    src/mainwindow.cpp
M  +1    -0    src/mainwindow.h
M  +3    -0    src/mltcontroller/producerqueue.cpp
M  +2    -0    src/mltcontroller/producerqueue.h
M  +12   -5    src/project/dialogs/projectsettings.cpp
M  +1    -0    src/project/dialogs/projectsettings.h
M  +2    -2    src/project/projectmanager.cpp
M  +27   -21   src/timeline/customtrackview.cpp
M  +79   -35   src/timeline/managers/previewmanager.cpp
M  +16   -18   src/timeline/timeline.cpp
M  +3    -6    src/timeline/timelinecommands.cpp
M  +1    -1    src/timeline/timelinecommands.h
M  +35   -5    src/timeline/track.cpp
M  +2    -2    src/timeline/track.h
M  +2    -17   src/timeline/transitionhandler.cpp
M  +1    -1    src/timeline/transitionhandler.h
M  +1    -1    src/utils/progressbutton.cpp

http://commits.kde.org/kdenlive/4bef7eb9367e985ad9e28df11ceccaf3c425c59e
Comment 2 Wegwerf 2016-06-05 08:20:26 UTC
This now works like a charm and allows user to reset the rendering state easily. I think that we can live with the downside that unsetting a zone and then immediately setting a zone does always invalidate the cached chunks, because it causes return to a clean state.

Jean-Baptiste, thank you very much again for your hard work! It is much appreciated!