60 Commits

Author SHA1 Message Date
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
bfed49819b Fixed delay with certain types of audio files which also contained a video stream with a single frame. Added some good 'dont get stuck' logic when checking for gaps in video/audio timestamps, etc... 2016-01-01 01:39:56 -06:00
Jonathan Thomas
2f8c4161df Improved changing Reader() on the QtPlayer class, and made many thread safety improvements for the FrameMapper.GetFrame method. Also improved the destructors and Close() methods of FFmpegReader and FrameMapper. Some audio-related bug fixes also, related to audio playback. 2015-12-24 16:44:45 -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
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
db4a5a7948 Fixed some more multi-threading issues with Audio Processing, including a bug with the frames auto-size-increasing JUCE container. 2015-03-07 17:07:37 -06:00
Jonathan Thomas
a6087dab3a Many improvements to FFmpegReader, including
Better bounds checking, and support at the end of the video file
Improved debug output, which helped resolve many issues
Implemented the newest audio decoding API (old one was depreciated)
Now support packed and planar audio data
Far superier audio resampling support
2015-02-05 00:00:52 -06:00
Jonathan Thomas
7eb25b54fc Fixed a bad seek bug, where the FFmpegReader would read until the end of stream looking for a frame. Also refactored a bit of cmake code. 2014-09-13 16:35:11 -05: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
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
2ba83486c9 Made some dramatic improvements to the QtPlayer classes, especially audio / video sync. All of my test files now work correctly, with no audio or video issues! Also, now audio only files also work, and image only files. 2014-03-21 01:25:17 -05:00
Jonathan Thomas
4ee7ef9b6e Added experimental AudioBufferSource and refactored lots of audio code. 2014-01-28 17:17:38 -06:00
Jonathan Thomas
118fe9113a Fixed RendererBase to correctly use writePixels, instead of iterating through PixelPackets. Fixed Audio Crash caused by not initializing a JUCE background audio thread. Added an OutOfBoundsFrame exception on the FFmpegReader, when the end-of-stream is detected. 2014-01-28 02:41:15 -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
e3d41808b9 Added Json methods to readers and readerBase classes. 2013-12-07 16:52:09 -06:00
Jonathan Thomas
ec9ebd098a Improved examples and documentation 2013-09-13 17:11:38 -05: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
Jonathan Thomas
234201743a Improved more documenation, and switched to @ syntax for doxygen. 2013-09-09 23:32:16 -05:00
Jonathan Thomas
14a61f9c5c Refactored a few methods, added new doxygen format, and improved the copyright, license, and comments & documentation for many classes and methods. 2013-09-08 23:09:54 -05:00
Jonathan Thomas
c244657a11 Renamed FileReaderBase and FileWriterBase to ReaderBase and WriterBase, since they are not specifically related to files. 2013-09-08 16:40:57 -05:00
Jonathan Thomas
a42e257521 Many small improvements, bug fixes, and build system fixes for newer systems that have both qt4 and qt5. 2013-09-08 16:08:56 -05:00