eisneinechse
c55d8551c1
Simplification
...
Further simplify the else branches.
Thanks to SuslikV for pointing this out.
2019-05-05 18:18:14 -07:00
eisneinechse
bfa8a83864
The default return value is present
...
Remove else so that the default return value is used if no other return was used."else if" in line 334 had no else and therefore in some cases no return value was present.
2019-05-03 13:13:45 -07:00
Jonathan Thomas
8f385c112a
Improved Keyframe Performance ( #197 )
...
* Refactor of Coorindate and Keyframe optimized for performance (much faster than previously). Also refactored FrameMapper to not use a Keyframe, and to only process frame mapping when needed... speeding up Json loading of project files.
* Fixing FrameMapper linear calculation to match existing Keyframe calculation
* Fixing Keyframe to pass original unit tests, and correctly calculate the Keyframe repeat fractions and deltas.
* Small refactor of time mapped logic in Clip.cpp
2019-03-06 15:35:03 -06:00
Jonathan Thomas
2fcb35ddcc
Removing throw statements from header files (thanks Peter)
2017-10-26 18:44:35 -05:00
Jonathan Thomas
c95db460d6
Big update! Updating all "long int" frame number types to int64_t, so all 3 OSes will produce the same depth and precision on frame numbers. Also removing variable bitrate support temporarily, since it causes more problems than it solves.
2017-09-28 16:03:01 -05: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
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