Commit Graph

458 Commits

Author SHA1 Message Date
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
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
5a9ca1909a Replaced the FrameMapper's omp task with omp for ordered, and it now runs fully multi-threaded... while still keeping the resampling calls in order. 2015-03-09 15:17:56 -05:00
Jonathan Thomas
820e8a2095 Fixed a few more issue with the openshot::FrameMapper and openshot::FFmpegReader unit tests. 2015-03-08 22:24:12 -05:00
Jonathan Thomas
00eae62663 Fixed an issue with a crashing unit test, and a broken ChangeMapping() method on the FrameMapper. 2015-03-08 22:22:40 -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
db4a5a7948 Fixed some more multi-threading issues with Audio Processing, including a bug with the frames auto-size-increasing JUCE container. 2015-03-07 17:07:37 -06:00
Jonathan Thomas
fb6a092832 Reduced size of many audio buffers, reducing memory requirements 2015-03-04 21:45:42 -06:00
Jonathan Thomas
e3178b22f1 More work on resolving memory leaks in FFmpegWriter 2015-03-04 21:33:29 -06:00
Jonathan Thomas
b703f44f7c Fixed some big memory leaks with audio samples and ffmpeg (pprof ./openshot-example "/tmp/openshot-example.30691._main_-end.heap" --inuse_objects --lines --heapcheck --edgefraction=1e-10 --nodefraction=1e-10 --gv 2015-03-04 15:26:08 -06:00
Jonathan Thomas
c27e4a1426 Added new method to frame, to change the size of the audio container. Fixed audio resampling inside the FrameMapper. Fixed many memory leaks related to AVFrames (still have a few more). 2015-03-01 22:36:39 -06:00
Jonathan Thomas
ea9885f9a9 Laying the ground work for audio mapping (resampling and changing channel layouts) for the openshot::FrameMapper. This is important for use with the Timeline, that all clips have a common frame rate, sample rate, and channel layout. 2015-02-26 17:33:09 -06:00
Jonathan Thomas
770b1ddb06 Fixed broken unit test. 2015-02-26 02:34:46 -06:00
Jonathan Thomas
1c3b1f5691 Timeline now supports overlapping clips, and will process them from bottom to top. Only the top layer gets effects applied, which enables overlapping transitions. 2015-02-26 02:31:36 -06:00
Jonathan Thomas
dfeff3379e Fixed a small issue with unneeded reader Open() calls. 2015-02-26 01:59:12 -06: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
6937d89bfd Fixed some issues with the Mask effect: correctly serialize the reader property, and correctly load the reader. Added additional debug info for the Timeline class. 2015-02-25 17:39:59 -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
0df6439103 Changed default keyframes to set a value on X=1 instead of 0. Fixed Timelines composite function to correctly apply alpha channels to the 1st layer of a frame. 2015-02-21 00:12:21 -06:00
Jonathan Thomas
d44604295a Added virtual pixel handling to all openshot::Frame images. Fixed timeline to correctly distort (had to disable multi-threaded support for now). Fixed correct origin handling or rotations and scaling. Added lots of debug support into the timeline. Fixed a bug where readers with different # of audio channels would crash the timeline. 2015-02-19 15:59:57 -06:00
Jonathan Thomas
86561aed22 Fixed a huge bug when closing a reader and re-opening it. Added some new unit tests to test for that bug, as well as check the ordering of layers and effects. Improved opening and closing of openshot::Clip->Reader() to better support multiple threads. 2015-02-19 01:03:22 -06:00