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
03c9f06708
Fixed many audio issues with the FFmpegWriter. Planar formats were not being handled correctly. Framesize was also wrong on some formats. Also, added a new method to a Frame to fill with audio silence. Lastly, cleaned up some unused imports and C++ warnings.
2015-08-02 20:32:33 -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
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
470853e34d
Updated compatibility with the latest LibAV API
2015-02-05 16:00:18 -06:00
Jonathan Thomas
ff60450f4f
Completely rewrote audio encoding API (old one was depreciated)
...
Integrated new debug output, which makes troubleshooting issues much easier
Simplified the Writer API calls (some methods now get automatically called if needed). Now a few simple methods can write an entire video file.
2015-02-05 00:06:07 -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
352e5904d8
Switched my simple bitshifting to use the ImageMagick ScaleQuantumToChar() method, which handles all the different bit depths and data types that ImageMagick can be compiled with.
2014-07-03 22:41:01 -05:00
Jonathan Thomas
77f4586f21
Fixed a bug with bitshifting float color values. ImageMagick can be built with different types of Quantum color values, and Im trying to make libopenshot work seemlessl with them.
2014-07-03 17:52:16 -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
6bdc12f6a2
Fixed build errors on newer versions of libAV and FFmpeg
2014-06-20 14:41:19 -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
bc4e58c601
1) Reduced all openmp to use /2 the available CPUs (for performance reasons)
...
2) Improved detection of pixel format (enabled GIF support.. although it is still flawed a bit)
3) Improved error reporting when video encoding issues happen
2014-03-29 15:39:43 -05:00
Jonathan Thomas
4ee7ef9b6e
Added experimental AudioBufferSource and refactored lots of audio code.
2014-01-28 17:17:38 -06:00
Jonathan Thomas
58090ef5fc
Added license and copyright to all files. Improved many examples and documentation. Refactored the Coordinate() object, to move a few properties to methods.
2013-09-12 17:52:10 -05:00
Jonathan Thomas
cbed47ea5f
Changed / Refactored many enums and structs, to better standardize the naming of everything. Improved some more descriptions and briefs.
2013-09-10 12:59:06 -05:00