327 Commits

Author SHA1 Message Date
Jonathan Thomas
b36d8540fa New release! Bumping version to 0.1.6 2017-05-18 17:31:38 -05:00
Jonathan Thomas
efecd2b8d6 Fixing unicode path issues when loading a Profile() class. Broke when using unicode home directory on Windows. 2017-05-16 17:07:06 -05:00
Jonathan Thomas
7b1ff78d2d Bumping version to 0.1.5 (SO renames unchanged at 11). 2017-05-09 23:52:56 -05:00
Jonathan Thomas
ddae58f18c Bumping version to 0.1.4 (SO 11). 2017-03-30 16:15:52 -05:00
Jonathan Thomas
b3ca56b5ab Another attempted fix for audio device management. Moving CloseAudioDevice() call to only invoke when quiting OpenShot, and only initializing the JUCE audio manager 1 time. This fixes a audio freeze in Windows when the preview window launches. 2017-03-26 23:51:03 -07:00
Jonathan Thomas
6fe901f359 Refactoring closing of audio devices 2017-03-21 14:38:42 -05:00
Jonathan Thomas
3193ee9701 Wrapping AudioDeviceManager in singleton wrapper, to ensure only a single instance can be created. This solves lots of weird issues with the preview dialog. 2017-03-21 10:56:19 -05:00
Jonathan Thomas
97ec6298ff Adding frame number display options to a clip, which can be super useful when debugging issues. Options include: None, Clip, Timeline, or Both. Also improving missing frame detection, to have less false positives (i.e. flickering 1st frame) 2017-03-15 02:06:53 -05:00
Jonathan Thomas
ec65ca39b3 Fixing invalid cache after editing effect in a clip, and frame accuracy (converting timestamps into frame numbers). This makes frame by frame editing much better. 2017-03-10 00:51:08 -06:00
Jonathan Thomas
dc25576fab Removing transform handles, since I will instead implement that in Python rather this library. Also, refactoring a bit of the clip transforms, to keep the rotation center correct. 2017-02-04 22:01:06 -06:00
Jonathan Thomas
85ac4bf6d2 Updating references to frame number / position to long int, there were still quite a few old "int" declarations, which limits the length of frame number. Also, updated precision of KeyFrames to use double (instead of float) for higher precision, which fixed lots of issues with very long videos (since our FrameMapper used a KeyFrame object to create a map to new frames) 2017-01-24 18:39:17 -06:00
Nelson Ho
c9b74ec96d Added fixes for audio sample distribution to clean up missing or extra audio samples that were at frame boundaries 2017-01-06 20:48:47 -05:00
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