Commit Graph

80 Commits

Author SHA1 Message Date
Jonathan Thomas
f775656c98 Reverting the clip optimization, since it causes some issues on QImageReaders used on the timeline. 2016-01-18 20:38:30 -06:00
Jonathan Thomas
d48ce2068e Refactored some audio thread code, and improved performance of timeline (by removing a 'omp ordered' statement that doesn't seem needed). Also added some performance improvements in Clip and FrameMapper classes (if the frame is the same as the source frame... just use the source frame) 2016-01-18 15:20:55 -06:00
Jonathan Thomas
e2573e8144 Flipping alpha channel values. It was brought to my attention that the meaning of alpha was opposite of what was being used. So, sorry if this breaks some things, but better to get it fixed quickly, and for the value to make sense. 2016-01-16 21:53:07 -06:00
Jonathan Thomas
0604069da2 FIxed an issue with audio only files with no default height/width set. Also added improved performance when mixing many audio only files (skipping the image processing) 2016-01-09 15:50:53 -06:00
Jonathan Thomas
6be7540852 Fixed a bug with time mapping for animations and videos without audio. 2015-12-31 04:17:54 -06:00
Jonathan Thomas
b7de1a885b Fixed some big issues with time mapping and thread safety. Lots and lots of crashes were fixed related to this. Mostly dealing with an incorrectly sized AudioSampleBuffer when trying to combine multiple frames. 2015-12-28 02:41:32 -06:00
Jonathan Thomas
55684663da Added wave_color to Clip's JSON properties. Also fixed a bug with adding effects from a JSON diff. Made the background color of a wave visualization transparent, and made the wave graphic come before the effects are processed, which allows the wave to be faded, animated, etc... 2015-11-25 23:54:10 -06:00
Jonathan Thomas
3731b22317 Added a new effect: Blur. It has the ability to box blur, horizontal and vertical blur, and gaussian blur. All of these settings are keyframeable and can be animated. 2015-11-09 00:12:21 -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
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
45f31bbabf Added 2 new effects: Brightness and Contrast, and Saturation. Both effects implement keyframe curves, and can be animated. 2015-08-16 22:58:07 -05:00
Jonathan Thomas
8fa2ab71c5 Fixed a few tiny bugs in JSON Properties, and removed some unneeded code related to hashing the current state of an effect. 2015-08-16 19:19:14 -05:00
Jonathan Thomas
c7f0a481cc Added a new class to easily expose the JSON metadata of supported effects in libopenshot. Fixed some bugs related to metadata, and a few bugs in the Mask effect (if initialized without a reader). 2015-08-06 20:01:34 -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
88e65fecef Cleaned up timeline class a bit, and refactored some OpenMP multi-threading support. The timeline GetFrame() method can not fully support OpenMP at the moment, due to nested parallel regions in some conditional ImageMagick function calls. Also better protected the openshot::Clip.GetFrame() call. 2015-03-15 02:28:28 -05:00
Jonathan Thomas
b07936e3b2 Added effects processing to a clip, so clips can carry their own independent effects... rather than depend on the timeline. This still needs some refactoring though. 2015-03-14 01:36:13 -05:00
Jonathan Thomas
591cfbdb5a Fixed some major issues with the frame mapper. openshot::FrameMapper is now fully multi-threaded. Fixed a bug in calculating the # of samples on a frame (to always be evenly divisible by the # of channels). 2015-03-08 21:42:53 -05:00
Jonathan Thomas
79519dbeab Added JSON Properties to all effects and refactored some of the code into the ClipBase class. 2015-02-26 00:02:06 -06:00
Jonathan Thomas
57fbf357f6 Increased debug output precision. Fixed rounding bug on timeline when finding a clips actual frame number. Fixed bug with a clips JSON properties output. 2015-02-24 23:59:26 -06: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
1d1a608a5c Added GetColorHex() function to the openshot::Color class, which returns a Hex string of a color at any frame number. Added new "hash" and "changed" properties to the openshot::Clip Properties JSON method, to help a UI determine if something has changed in the property values. Lastly, added new unit tests for both classes. 2015-02-17 00:21:57 -06:00
Jonathan Thomas
511cef4522 Fixed a small bug on the Clip constructor... which was crashing on MacOS. 2015-02-11 21:59:13 -06:00
Jonathan Thomas
10adb2cc0b Added new JSON properites to the clip object... to better integrate UI interfaces for clips. 2015-02-11 00:23:25 -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