Open source video editor OpenShot 2.4.0 released with improved stability

Mr Jonathan Thomas, developer of OpenShot video editor has announced release of OpenShot 2.4.0, latest release of free, open source, non-linear, cross platform supported video editor. This stability focused release of OpenShot brings fixes for various issues which used to cause unexpected crash on run time. This make it suitable for more professional video editing.

For the past few months, Jonathan Thomas was working with other developers like Craig and Peter to track the issues in OpenShot. The first step of this activity was to figure out a minimal scenario in which issues are reproducible. Often this was a difficult task, due to unforeseen behavior of various crashes. Sometimes, it requires hours of effort to reproduce a crash. If you are a developer, you can relate this.

The efforts of Jonathan colleges did not go worthless. They were about to figure issues causing unexpected crash of OpenShot on run time. From Jonathan's words,

The crash was a race condition and memory corruption bug, caused by a
few different things. We process video and audio data in a thread pool,
and sometimes things happen in a very unpredictable order. In a very
rare condition, memory was being cleared while it was still being
accessed. Also, we switched from an older tr1::shared_ptr to
std::shared_ptr, and changed the way we initialize our shared_ptr
instances, reducing the amount of memory being requested. Also, there
were a few spots that needed to be protected between threads, and
required locks. So, in summary, a handful of small changes, and a few
months of debugging, and we can no longer crash libopenshot during video
processing or video encoding! I'm very excited about solving this one
if you can't tell!

Improving undo/redo support. Now the last X number of undo/redo
actions are stored in the project file. The number can be adjusted in
the prefences, under the auto-save tab. This also vastly improves the
usefulness of the auto-save system, since it saves your undo/redo
history as well.

Migrating tr1 to std, adding C++11 support to build scripts, fixing
crash in FFmpegReader (caused by shared_ptr, buffer, and
last_video_frame corruption). Much improved stability with this change.
Thanks to Craig and Peter for the help!

Fixing crash on Ubuntu build server.

Fixed a strange bug related to exporting image sequences. The
filename property was not being set on the AVFormatContext. Also fixed a
bug when exporting to JPEG image sequences related to max_b_frames and
certain codecs.