Commit Graph

58 Commits

Author SHA1 Message Date
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
Jonathan Thomas
f25f342825 Completed timeline class Json methods, with all child properties... and refactored many unneeded properties away. 2014-01-05 22:37:11 -06:00