Implement Drop Frames functionality for the new MLT-based code
The patchset implements "Drop Frames" functionality for the new engines. Basically, it recovers the old implementation for the Qt-based engine and implements a new one for the MLT engine. The functionality itself works fine, though I found a few potentially related issues, which I would like to address (to make testing happen in one go):
-
Remove PlaybackDriver
complication fromKisPlaybackEngineQT
(possibly unrelated) -
[blocking] The stats for the "Drop Frames" button in the "Timeline Curves" docker is not implemented yet -
CanvasPlaybackEnvironment
resetsm_canvas
inrestore()
. Check why it does that and if it is necessary? (resolution: not important) -
KisAnimTimelineDocker
should store the playback engine locally, but not access the global singleton (since it hasKisAnimTimelineDocker::setPlaybackEngine
) -
[blocking] "Speed" option does not work in the MTL engine at all (when the playback goes beyond the audio stream) -
[blocking] "Speed" option setting is not copied to the MLT engine on the engine mutation -
[blocking] When changing "Speed" setting on during the playback multiple times, the animation gets stuck on frame '625' (MLT sends rendering events for this frame in an infinite loop).
Edited by Dmitry Kazakov