Commit Graph

88 Commits

Author SHA1 Message Date
Jonathan Thomas
179d091005 Moved AppendDebugMessage to ZmqLogger, and updated 100+ references to use this new function. Removed debug var from readers/writers, and moved it to ZmqLogger.Enable(true/false). This allows debug output from all classes and functions, without any duplicate code. Also added some additional debug output for video playback and audio readers. 2016-04-21 01:39:17 -05:00
Jonathan Thomas
723bd24e5c Adding new dependency: libzmq (ZeroMQ). Adding a new debug logging class powered by sockets and ZeroMQ, to allow a threadsafe way to communicate debug messages to a client application (i.e. openshot-qt). Also, removing unneeded Sleep.h functions. There will be lots more code utilizing ZeroMQ soon. 2016-04-04 23:09:18 -05:00
Jonathan Thomas
276aae35b3 Improvements to exception handling, including using std::exception base class, and better general purpose exception handling in SWIG with Python. Also fixed an error when thowing exceptions inside OMP regions. 2016-02-02 01:09:02 -06:00
Jonathan Thomas
95deda88bc Fixing a bug for newer versions of LibAV and FFmpeg, regarding error codes 2015-10-01 13:00:50 -05:00
Jonathan Thomas
a33b611008 Setting height, width, and format of AVFrame struct used for encoding video, as is now required on newer versions of libAV and FFmpeg. 2015-09-29 20:23:08 -05:00
Jonathan Thomas
66c5ced902 Windows now passes most unit tests. Added header macro to assist on passing correct test media paths to unit tests. Also added a new info parameter has_single_image, which is used to optomize the frame mapper class for images with long durations. 2015-09-28 22:05:50 -05:00
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