315 Commits

Author SHA1 Message Date
Jonathan Thomas
46c25dc3ec Fixing version: 0.1.3 (so 10) - whoops 2016-12-20 16:58:45 -06:00
Jonathan Thomas
70d61bb9ed Bumping version to 0.2.2 (so 10) 2016-12-20 16:56:38 -06:00
Jonathan Thomas
b058251cc4 Large refactor of detecting missing frames, to make it more accurate and dramatically improve performance for many videos. 2016-12-07 01:06:16 -06:00
Jonathan Thomas
7be1b8ca4c Removing unneeded std::map which has holding all AVPackets, which was causing a memory leak and crashes. 2016-11-14 22:37:44 -06:00
Jonathan Thomas
d79994a780 New cross platform exception handler for libopenshot! Logs basic stacktrace on segmentation fault. This will be a huge help in finding bugs and crashes. 2016-11-03 02:19:48 -05:00
Jonathan Thomas
559d6a0545 Huge refactor of keyframe point handles (bezier quadratic curves) to use CSS-style syntax. Basically, the left and right handles of a point now use percentages, such as 0.0, 1.0, 0.5, 1.0 (between 0 and 1), and become real coordinates based on the value differences between points (in real time). Also simplified the JSON property creation. Also, many unit tests have been updated, because they were actually generating the incorrect values from before... although only slightly in most cases. Now they have correct values from the default bezier handles. 2016-10-19 02:19:07 -05:00
Jonathan Thomas
1743558f99 Improved image caching logic, to better estimate max image sizes possible, based on clip scale and keyframe settings... so we are always dealing with the smallest possible frame sizes for performance (without losing quality) 2016-09-17 17:14:27 -05:00
Jonathan Thomas
183b0714e2 Added a new optimized constructor to some readers (FFmpegReader, QtImageReader, ImageReader) to not Open() in the constructor, which dramatically speeds up creating hundreds of Readers (i.e. when opening a project). This is really only useful when inflating the reader with Json right after you instantiate it... 2016-09-16 17:43:26 -05:00
Jonathan Thomas
33bba65cfd Adding transform selection handles to a clip, which doesn't have much of a purpose yet, but it renders the rectangle handles for a clip (will soon be tied into the UI). Finally implemented shearing as a basic clip transform, which can be keyframed and animated. Refactored the timeline code where we do matrix transformations (QTransform), to simplify it. 2016-09-16 00:12:17 -05:00
Jonathan Thomas
7f347eb1ca Added SetMaxSize for image optimizations in QImageReader and FFmpegReader, which lets the timeline pass down the max size to all clips and readers, so they can optionally optimize the size of images (especially useful for optimizing preview performance). Removed convoluted image scaling code in FFmpegReader, and replaced with simpler version. Also, fixed a few regressions from the new Caching code, primarily a crash when reaching the end of the last clip on the timeline. 2016-09-14 04:11:12 -05:00
Jonathan Thomas
a4340b8b0a Reverting and fixing a serious stack smashing error, caused by having a Json::Value in the header file. 2016-09-08 22:18:40 -05:00
Jonathan Thomas
c53c9364f3 Added new CacheDisk class, which caches frames to the hard drive, dramatically speeding up preview speeds, at the expense of IO operations. New unittests for caching framework. Fixed a few bugs with Frame constructor, which was causing invalid # width & height. Integrated JSON into the cache framework, to quickly share the state of the cache (including ranges of cached frame numbers). Fixed a bug where some Timeline frames could have no audio samples. 2016-09-07 00:40:01 -05:00
Jonathan Thomas
89fb86453e Refactoring/renaming Cache to CacheMemory. 2016-08-31 23:57:06 -05:00
Jonathan Thomas
e547296d83 Adding new CacheBase class. This is the first of many cache related commits, with the goal of building a disk based cache object, to be used by the timeline object if enabled. 2016-08-31 02:02:54 -05:00
Jonathan Thomas
d1d0b078f9 Bumping version to 0.1.2, so 9. 2016-08-29 23:23:13 -05:00
Jonathan Thomas
a3ef86a695 Fixed some big performance issues (some which were causing crashes) in effects (Brightness and Saturation), and created a factory class for effects, to reduce redundent code. 2016-08-16 22:40:51 -05:00
Jonathan Thomas
d0b14fe3d3 Updated lots of JSON min/max properties to better reflect reasonable values 2016-08-16 02:12:51 -05:00
Jonathan Thomas
98ccfb5ee1 Fixing cmake build scripts to support 64bit on Windows. Also refactoring some pointer handling to support 64bit on Windows (Linux and Mac have always supported it). Adding instructions for setting up a Windows 64 bit build environment using MSYS2. 2016-08-12 19:15:19 -05:00
Jonathan Thomas
d743d4988b Merge branch 'enable_system_jsoncpp' of https://github.com/komackaj/libopenshot into komackaj-enable_system_jsoncpp
# Conflicts:
#	src/CMakeLists.txt
2016-08-02 18:08:02 -05:00
Jonathan Thomas
734dc5b32f Fixing a crash on Windows by using a different overload of AddImage that doesn't do a memcpy. There is still a memory leak on the FFmpegWriter somewhere, which eventually starts to return NULL from av_malloc, and breaks on Windows (and probably other OSes too). 2016-07-30 16:57:48 -05:00
Jonathan Thomas
92a9db2aa3 Improved detection of missing audio frames, and missing video frames. Also improved logic for giving up on missing frames in general. Also removed some deadlocks related to Seeking (Close() and Open() were deadlocking). The end result is much improved compatability with reading video files. 2016-06-29 02:42:00 -05:00
Jonathan Thomas
4808be25ff Added 4 new clip keyframes (channel mapping, channel filter, has_video, and has_audio). These are a bit different though, as they are evaluated as boolean (-1 = ignored, 0 = disabled, 1 = enabled). Also fixed some issues with video playback (where it gets stuck in fast forward), and fixed some race conditions when opening FFmpegReader. Also added more debug output. 2016-04-24 15:37:47 -05:00
Jonathan Thomas
37f1894300 Fixed a race condition in video playback thread! Also, added new method to get the average magnitude of a range of audio samples. 2016-04-22 02:43:06 -05:00
Jonathan Thomas
179d091005 Moved AppendDebugMessage to ZmqLogger, and updated 100+ references to use this new function. Removed debug var from readers/writers, and moved it to ZmqLogger.Enable(true/false). This allows debug output from all classes and functions, without any duplicate code. Also added some additional debug output for video playback and audio readers. 2016-04-21 01:39:17 -05:00
Jonathan Thomas
7c49628d93 Added new optional file logging abilities to ZmqLogger, which are guaranteed to write to disk (even if a crash happens immediately after logging) 2016-04-12 16:42:36 -05:00