Jonathan Thomas
183b0714e2
Added a new optimized constructor to some readers (FFmpegReader, QtImageReader, ImageReader) to not Open() in the constructor, which dramatically speeds up creating hundreds of Readers (i.e. when opening a project). This is really only useful when inflating the reader with Json right after you instantiate it...
2016-09-16 17:43:26 -05:00
Jonathan Thomas
7f347eb1ca
Added SetMaxSize for image optimizations in QImageReader and FFmpegReader, which lets the timeline pass down the max size to all clips and readers, so they can optionally optimize the size of images (especially useful for optimizing preview performance). Removed convoluted image scaling code in FFmpegReader, and replaced with simpler version. Also, fixed a few regressions from the new Caching code, primarily a crash when reaching the end of the last clip on the timeline.
2016-09-14 04:11:12 -05:00
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
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
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
57fbf357f6
Increased debug output precision. Fixed rounding bug on timeline when finding a clips actual frame number. Fixed bug with a clips JSON properties output.
2015-02-24 23:59:26 -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
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
7f6c50db71
Improved JSON error handling with complex nested JSON objects.
2014-05-16 14:48:25 -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
Duzy Chan
54b905c56c
QtPlayer: getting frame in audio/video threads safely
2014-02-12 14:55:49 +08:00
Jonathan Thomas
6dd5a79177
Added an experimental DrawFrameOnScene method, which takes a raw pointer (as a long) from PyQt5 (i.e. unwrapped by sip), and draws a QBitmap on it.
2014-01-22 01:08:14 -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
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
4e730a3f41
Integrated more JSON methods into the library.
2013-12-03 00:13:25 -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
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