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
fbc719b11f
Many Windows related fixes and tweaks. Also fixed some issues with newer versions of CMake and Swig files.
2015-08-24 23:49:45 -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
c345ae07b7
Fixed the ApplyJsonDiff function to support effects inside clips, which gets a bit tricky.
2015-08-07 23:11:03 -05:00
Jonathan Thomas
41dceadd1f
Removed Cache::Exists method, which created all sorts of havoc when being called in quick succession (basically a frame might exist a split second before calling Cache::GetFrame, but then be missing when GetFrame is called).
...
Next Syntax:
frame = Cache::GetFrame(...)
if frame:
....
Also, fixed some issues with MP3 files having the wrong video length detected, and a few other minor issues.
2015-08-05 23:40:58 -05:00
Jonathan Thomas
c5cddc9765
Updated ApplyJSonDIFF to accept some base Timeline properties
2015-06-04 17:28:39 -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
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
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
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
Jonathan Thomas
efa37ea410
Fixed timeline clip sorting to correctly sequence and mix the various layers and clips.
2015-02-18 17:15:03 -06:00
Jonathan Thomas
bb9849c60a
Fixed some serious issues with the Timeline class, improved the Timeline unit tests to cover more of the code, and fixed a bug with the Clip class... which removed the Reader during closing.
2015-02-07 18:06:11 -06:00
Jonathan Thomas
cc7a0f41e8
Added new debug methods, and refactored the ReaderBase and WriterBase to better utilize the base class constructor. Also fixed some FFMpegReader issues related to seeking and determining when frames are actually ready.
2014-08-27 09:44:27 -05:00
Jonathan Thomas
e135eb5738
Changed license to LGPLv3 for all libopenshot code.
2014-07-11 16:52:14 -05:00
Jonathan Thomas
b224d7d8fa
Adjusted ImageMagick code to dynamically calculate the quantum depth, and bitshift between that depth and the 8bit colors for FFmpeg.
2014-07-03 12:26:02 -05:00
Jonathan Thomas
00722192d9
ApplyJsonDiff now clears the internal timeline cache (since things might have changed), and the timelines GetFrame always resorts the clips, to be sure they are in the correct order... not ideal, but better than out of order.
2014-05-14 23:04:35 -05:00
Jonathan Thomas
e073ad89f5
Fixed many issues with the QtPlayer and related classes. Now the VideoRenderer can be passed through SWIG and connected to a PyQt application and handle display signals for each frame. Also, refactored some OpenMP settings into its own header.
2014-04-02 16:48:27 -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
4ee7ef9b6e
Added experimental AudioBufferSource and refactored lots of audio code.
2014-01-28 17:17:38 -06:00