As of 481060bf78a40d9513d1369fd9f23a547cd3502d, Olive’s composition pipeline (the way it decodes and displays frames during playback) has been almost completely rewritten. This was to address various problems in Olive’s playback, primarily caused by the fact that up until this point Olive was completely single-threaded. This meant that every single action Olive performed - from UI drawing to input handling to video decoding - could not be done simultaneously, each had to occur one after the other.
These issues caused the following:
- When a new clip started in the timeline, playback (and the whole app) would pause as FFmpeg loaded the file from disk
- Playback and audio decoding regularly desynced, leading to occasional sound glitches during playback.
- If a video was too slow to decode in real time, the entire app would become less responsive. This obviously has the potential to hang the entire app if a frame gets caught in an infinite loop.
- If you have more than one video layer playing at a time, obviously it is far from ideal to have to render each layer in sequence when you could render them all at the same time.
- Each frame had to be rendered in real time. If hypothetically a video could playback mostly fine, but every 10th frame or so took a little longer, there was no way to use the time saved from the previous hypothetical 9 frames to help render the 10th.
Olive’s playback engine is now multithreaded and also keeps a memory cache. This is bleeding edge code and as such is full of bugs and missing features. This thread is to keep track of issues as they arise - and also to assure anyone trying the buggy mess that is Olive now - that everything is okay and being taken care of.
The following is a starting list of issues with the new composition pipeline:
Crashes a lot - currently segfaults at the drop of a hat
- Memory leaks - despite my best efforts, Olive seems to not be handling memory correctly
- No seeking - Olive functionality has regressed to only being able to play frames in order (but can still play media with frame rates lower then the sequence frame rate)
- No sound or still image support - these have once again been lost as video has taken priority during the rewrite. This should be fixed soon.
- Playback still tries to access a clip even after it’s deleted in the timeline
Any other standout issues, as well as announcements for these issues being fixed, will be posted here