Jonathan Thomas
6e2600dcd4
Moving JuceHeader.h below other includes, to be sure it is always included after system libraries (for Mac Point build failure)
2019-03-30 14:23:50 -05:00
FeRD (Frank Dana)
7e7f5c341a
Use new Juce header file location
2019-03-29 08:11:19 -04:00
Jonathan Thomas
8f385c112a
Improved Keyframe Performance ( #197 )
...
* Refactor of Coorindate and Keyframe optimized for performance (much faster than previously). Also refactored FrameMapper to not use a Keyframe, and to only process frame mapping when needed... speeding up Json loading of project files.
* Fixing FrameMapper linear calculation to match existing Keyframe calculation
* Fixing Keyframe to pass original unit tests, and correctly calculate the Keyframe repeat fractions and deltas.
* Small refactor of time mapped logic in Clip.cpp
2019-03-06 15:35:03 -06: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
2f45a4eb38
Adding new audio mixing enum, to allow for no automatic audio mixing, average mixing (where all overlapping clips average to 100% audio), or reduce mixing (where clips overlapping clips are all reduced by a constant value to reduce popping). ( #131 )
2018-06-27 01:35:38 -05: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
2fcb35ddcc
Removing throw statements from header files (thanks Peter)
2017-10-26 18:44:35 -05:00
Jonathan Thomas
c95db460d6
Big update! Updating all "long int" frame number types to int64_t, so all 3 OSes will produce the same depth and precision on frame numbers. Also removing variable bitrate support temporarily, since it causes more problems than it solves.
2017-09-28 16:03:01 -05:00
Jonathan Thomas
f12ffe692b
Migrating tr1 to std, adding C++11 support to build scripts, fixing crash in FFmpegReader (caused by shared_ptr, buffer, and last_video_frame corruption). Much improved stability with this change. Thanks to Craig and Peter for the help!
2017-08-20 17:37:39 -05:00
Jonathan Thomas
97ec6298ff
Adding frame number display options to a clip, which can be super useful when debugging issues. Options include: None, Clip, Timeline, or Both. Also improving missing frame detection, to have less false positives (i.e. flickering 1st frame)
2017-03-15 02:06:53 -05:00
Jonathan Thomas
dc25576fab
Removing transform handles, since I will instead implement that in Python rather this library. Also, refactoring a bit of the clip transforms, to keep the rotation center correct.
2017-02-04 22:01:06 -06:00
Jonathan Thomas
33bba65cfd
Adding transform selection handles to a clip, which doesn't have much of a purpose yet, but it renders the rectangle handles for a clip (will soon be tied into the UI). Finally implemented shearing as a basic clip transform, which can be keyframed and animated. Refactored the timeline code where we do matrix transformations (QTransform), to simplify it.
2016-09-16 00:12:17 -05:00
Jonathan Thomas
a3ef86a695
Fixed some big performance issues (some which were causing crashes) in effects (Brightness and Saturation), and created a factory class for effects, to reduce redundent code.
2016-08-16 22:40:51 -05:00
Jonathan Thomas
d0b14fe3d3
Updated lots of JSON min/max properties to better reflect reasonable values
2016-08-16 02:12:51 -05:00
Jonathan Thomas
4808be25ff
Added 4 new clip keyframes (channel mapping, channel filter, has_video, and has_audio). These are a bit different though, as they are evaluated as boolean (-1 = ignored, 0 = disabled, 1 = enabled). Also fixed some issues with video playback (where it gets stuck in fast forward), and fixed some race conditions when opening FFmpegReader. Also added more debug output.
2016-04-24 15:37:47 -05:00
Jonathan Thomas
45f1b8c5ac
Making ImageMagick completely optional. This will simplify packaging on Windows and Mac. Also, reprogrammed Display, DisplayWaveform, Save, and Thumbnail methods, which are much faster now (using Qt).
2016-02-23 00:27:03 -06:00
Jonathan Thomas
e2573e8144
Flipping alpha channel values. It was brought to my attention that the meaning of alpha was opposite of what was being used. So, sorry if this breaks some things, but better to get it fixed quickly, and for the value to make sense.
2016-01-16 21:53:07 -06:00
Jonathan Thomas
b7de1a885b
Fixed some big issues with time mapping and thread safety. Lots and lots of crashes were fixed related to this. Mostly dealing with an incorrectly sized AudioSampleBuffer when trying to combine multiple frames.
2015-12-28 02:41:32 -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
404b7ed1bb
Updating some doxygen param names
2015-08-02 20:59:38 -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
b07936e3b2
Added effects processing to a clip, so clips can carry their own independent effects... rather than depend on the timeline. This still needs some refactoring though.
2015-03-14 01:36:13 -05:00
Jonathan Thomas
79519dbeab
Added JSON Properties to all effects and refactored some of the code into the ClipBase class.
2015-02-26 00:02:06 -06:00
Jonathan Thomas
b976b8220b
Added new properties to the clip JSON properties method, to enable more rich control of a clips properties. Fixed some defaults on Points that still used X=0.
2015-02-21 03:10:38 -06:00
Jonathan Thomas
1d1a608a5c
Added GetColorHex() function to the openshot::Color class, which returns a Hex string of a color at any frame number. Added new "hash" and "changed" properties to the openshot::Clip Properties JSON method, to help a UI determine if something has changed in the property values. Lastly, added new unit tests for both classes.
2015-02-17 00:21:57 -06:00