Commit Graph

113 Commits

Author SHA1 Message Date
Jonathan Thomas
32d41e780d Fixed many misc Windows runtime errors and memory-related crashes. Built a few macros for common FFmpeg / LibAV functions that change due to version differences. 2015-09-23 00:27:28 -05: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
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
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
d7a43f692c Refactored out many omp critical statements related to debugging, and made them conditional based on if debug is enabled. 2015-03-15 02:35:01 -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
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
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
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
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
16479fba9d Fixed a bug on DummyReader and Framemapper. 2014-01-06 00:04:40 -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
4af6916338 Fixed polymorphism / inhereted Json methods, and added a new IsOpen() method on all readers. Fixed other misc Json bugs. 2013-12-18 21:55:43 -06:00
Jonathan Thomas
cd7743fb88 Improved Json methods to correct work with swig and inheritance. 2013-12-07 21:09:55 -06:00
Jonathan Thomas
d120d24be6 Removed duplicate time mapping function. 2013-11-04 17:30:14 -06:00
Jonathan Thomas
1e7cd7ddbb Fixed bug in AddImage() method on a frame, to copy the image instead of just pointing to it. This fixed many issues in the FrameMapper as well, which copies images alot. 2013-11-04 15:16:19 -06:00
Jonathan Thomas
1bdea062d6 Added Deinterlace effect. Refactored Wipe effect into Mask effect (which is a more appropriate name). Added an example interlaced.png file. Improved the Mask to accept a 'reader', which can be used for more elaborate wipe animations. 2013-10-18 12:38:09 -05:00
Jonathan Thomas
dda767affa Fixed a few more show stopping bugs related to FrameMapper and converting frame rates, and re-mapping audio samples. Integrated in special handling of certain framerates (for pull down support), and Keyframe linear curves for all other frame rates. 2013-10-17 17:46:58 -05:00