Jonathan Thomas
ac8876f810
Removing duplicated destructor definitions and implementations... so our virtual destructors will not break on older toolchains.
2019-06-21 15:57:41 -05:00
FeRD (Frank Dana)
f170fdd009
Update copyright range to current year
2019-06-11 06:48:32 -04:00
FeRD (Frank Dana)
0327c2ab5c
Remove license block from documentation comment
2019-06-09 08:31:04 -04:00
Chris Kirmse
833fcb8e8e
fix a number of memory leaks
...
- some were with libav functions
- same were due to non-virtual destructors
2019-05-08 15:02:33 -07:00
Jonathan Thomas
7b6eb9c21b
Integration of resvg SVG library (optional during build) ( #185 )
...
* Integration of libresvg SVG library (optional during build)
* Major refactor of max_width and max_height for preview optimization
* Fixed many bugs related to preview resizing, with regards to cached frames
* Updating gitlab CI to find RESVGDIR correctly for windows, and adding svgz support
* Updating cmake findresvg module to search for windows locations first, to prevent an issue on our windows builders and updating some CMake output.
* Removing folder path from resvg header, since it could be installed in different named folders. This is an attempt to fix Windows include issues.
* Making call to AV_FREE_FRAME conditional for non windows systems (because it crashes on Windows for seemingly no reason). Needs more investigation.
2019-01-19 02:18:52 -06:00
Jonathan Thomas
f2b0f3a0f4
Adding metadata from format, audio stream, and video streams to ReaderBase.info, which in some cases includes the 'rotate' metadata added by certain cameras, and audio metadata like title, album, artist, copyright, dates, etc... Auto-Rotates any Clip with Reader metadata 'rotate' attribute.
2018-02-03 01:57:18 -06:00
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