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
2523b31061
Fixing ambiguous reference to Json array index on Keyframe class
2016-08-03 18:44:20 -05:00
Jonathan Thomas
d7f4b08844
Making some small tweaks for consistency / code format
2016-08-02 18:18:24 -05:00
Juraj Komacka
5b4f0e5995
Fix compilation ambiguity for system jsoncpp
...
In upstream JsonCpp there are two [] operators for Json::Value - one taking unsigned int, second taking int - passing long int leads to ambiguity.
2016-03-28 19:15:13 +02:00
Jonathan Thomas
90db687598
Fixed bug in RemovePoint, and improved the AddPoint KeyFrame method to remove a previous, duplicate point (based on co.X value).
2015-12-15 18:12:24 -06:00
Jonathan Thomas
358e0835d2
Added dropdown choices into JSON properties, so a UI can correctly list the options for certain properties. Fixed a bug when deleting all Points from a Keyframe, and added some missing Enums from the Python/Ruby bindings.
2015-10-02 18:22:10 -05:00
Jonathan Thomas
ac7be90544
Fixed a few issues with Color keyframes
2015-10-01 18:51:59 -05:00
Jonathan Thomas
bfa050409c
Improved support for missing frames and invalid PTS (which result in gaps and duplicate frames). Also changed frame number to larger data type, and did some code clean-up and refactoring. Less crashes, and more video support!
2015-08-24 01:05:48 -05:00
Jonathan Thomas
b612f3339d
Replaced ImagMagick with QImage on almost all key methods and classes. Reprogrammed all effects and the entire rendering pipeline to use QImage and QTransforms, primarily for increases in speed and stability. libopenshot is more than 10X faster on many of the most CPU heavy tasks. This was a huge change, and still has a few minor issues relating to BlackMagick Decklink and Text rendering.... which should be resolved very soon.
...
Also, much work has been done on memory management / leak detection, and optimizations with multi-threading... including a new thread cacher class used by the video playback (which is smoother than ever).
2015-06-01 00:20:14 -07:00
Jonathan Thomas
e2ee3d01f2
Added the ability to scale and flip keyframes, making it easy to reverse an effect or transition, and resize transitions without having to manually reset the keyframes X coordinates.
2015-03-13 23:19:55 -05:00
Jonathan Thomas
e084f638a9
Optimized keyframe JSON serialization, speeding up loading and saving large projects and complex keyframe scenarios.
2015-03-13 17:08:03 -05:00
Jonathan Thomas
61ed19250e
Fixed bug determing the closest keyframe point to another point. Added additional unit tests. Added new method to get the # of Points in a keyframe.
2015-02-22 01:04:54 -06:00
Jonathan Thomas
b976b8220b
Added new properties to the clip JSON properties method, to enable more rich control of a clips properties. Fixed some defaults on Points that still used X=0.
2015-02-21 03:10:38 -06:00
Jonathan Thomas
5145abdacb
Added new clip method that returns all properties for a given frame in JSON.
2015-02-09 22:41:42 -06:00
Jonathan Thomas
e135eb5738
Changed license to LGPLv3 for all libopenshot code.
2014-07-11 16:52:14 -05:00
Jonathan Thomas
5010f6252a
Replaced all copyright and licensing to reflect AGPLv3 license. Also, added a bad ass version header, which is now integrated into CMake as well. A single place to indicate version and ABI/API compatibility.
2014-03-29 18:49:22 -05:00
Jonathan Thomas
3c99e53dad
Added JSON change method, which accepts a diff / sync JSON array, and applies the changes to a timeline and timeline associated properties and items. Also fixed many bugs on JSON type checking.
2014-01-08 01:43:58 -06:00
Jonathan Thomas
75db2917f1
Removed unneeded Json from Keyframes, Points, and Coordinates... and also optimized a Keyframe with 1 point to use CONSTANT interpolation mode.
2014-01-05 23:28:21 -06:00
Jonathan Thomas
f25f342825
Completed timeline class Json methods, with all child properties... and refactored many unneeded properties away.
2014-01-05 22:37:11 -06:00
Jonathan Thomas
cd7743fb88
Improved Json methods to correct work with swig and inheritance.
2013-12-07 21:09:55 -06:00
Jonathan Thomas
d8da4cb807
Added Json() methods to many methods, for loading and saving properties.
2013-12-06 00:40:26 -06:00
Jonathan Thomas
4e730a3f41
Integrated more JSON methods into the library.
2013-12-03 00:13:25 -06:00
Jonathan Thomas
1127a0f3ba
Refactored Clips into a base class called ClipBase. Effects and Clips use this base class, which allows them to be positioned and layered on the timeline. Also fixed a regression in Coordinate, which was not properly setting instance variables.
2013-10-01 15:22:25 -05:00
Jonathan Thomas
97a4f903c2
Added copyright and licensing to the rest of the source code in libopenshot, including the CMake build scripts, the SWIG configuration file, and even updated copyright in the README files. All files are now correctly attributed and protected now.
2013-09-12 23:41:49 -05:00