Jonathan Thomas
a3ef86a695
Fixed some big performance issues (some which were causing crashes) in effects (Brightness and Saturation), and created a factory class for effects, to reduce redundent code.
2016-08-16 22:40:51 -05:00
Jonathan Thomas
45f1b8c5ac
Making ImageMagick completely optional. This will simplify packaging on Windows and Mac. Also, reprogrammed Display, DisplayWaveform, Save, and Thumbnail methods, which are much faster now (using Qt).
2016-02-23 00:27:03 -06:00
Jonathan Thomas
054175ddaa
Fixed some audio popping issues related to audio buffer size and also resampling issues inside the FrameMapper class. Also made the Timeline more hardened, if a reader returns an error requesting a frame.
2016-01-30 17:12:41 -06:00
Jonathan Thomas
13362393c5
Fixed many more regressions with audio files not passing cover art to the next frame correctly. Seeking issues, and many related issues to detecting missing frames improved. Also fixed a deadlock in certain seeking cases.
2016-01-05 01:59:50 -06: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
404b7ed1bb
Updating some doxygen param names
2015-08-02 20:59:38 -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
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
e135eb5738
Changed license to LGPLv3 for all libopenshot code.
2014-07-11 16:52:14 -05:00
Jonathan Thomas
4509254895
Added new cmake options to set the quantum depth of the installed ImageMagick library... so libopenshot knows how to properly scale color bit depth.
2014-07-03 17:35:31 -05:00
Jonathan Thomas
e6eca9eb5c
Removed unneeded header that was breaking build servers.
2014-07-03 12:48:04 -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
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
Jonathan Thomas
a8389a3b84
Moved effects to a common include file called Effects.h, so all effects could be easily included when needed (such as the timeilne class).
2014-01-10 17:24:12 -06: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
e2f5ca8a69
Removed Framerate class, since its functionality is already represented in the Fraction class. Also, corrected a few unittests, and updated some documentation.
2014-01-05 23:12:56 -06:00