Commit Graph

51 Commits

Author SHA1 Message Date
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
f25f342825 Completed timeline class Json methods, with all child properties... and refactored many unneeded properties away. 2014-01-05 22:37:11 -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
642bfc659d Completed the effects integration into the Timeline class. An effect is limited to a single layer on the timeline, but can affect many clips (based on it's position and duration) 2013-10-06 18:11:33 -05:00
Jonathan Thomas
555efc413e Sort effects as they are added to the timeline. 2013-10-01 17:19:53 -05:00
Jonathan Thomas
1127a0f3ba Refactored Clips into a base class called ClipBase. Effects and Clips use this base class, which allows them to be positioned and layered on the timeline. Also fixed a regression in Coordinate, which was not properly setting instance variables. 2013-10-01 15:22:25 -05:00
Jonathan Thomas
21e9d9d3e3 1) Added EffectBase (base class of all effects)
2) Improved SWIG bindings to include std::list and std::vector
3) Added Effects list Timeline
2013-09-28 22:00:52 -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
124675ce84 Fixed bug in timeline which always reversed audio. Added a new timecurve demo. 2013-02-19 00:51:07 -06:00
Jonathan Thomas
aa09fdc69b Fixed many, many blackmagic bugs, and have a pretty good demo built. 2013-02-15 00:23:55 -06:00
Jonathan Thomas
c07b97d52a Experimenting with image sequence performance (using Tif images) 2013-02-13 02:46:55 -06:00
Jonathan Thomas
ca09838b0f Optimized the compositing of simple layers (with no transformation), by not resizing it's canvas to match the timeline. Also, improved the Decklink reader to wait for the frame to become available (if it's in the future), and to jump ahead on the timeline if it gets behind. Blackmagic program can now composite 4 layers in real time. 2013-02-12 02:42:18 -06:00
Jonathan Thomas
cc32bbf38a Made decklinkOutput keep scheduling the last successfull frame, if the queue runs out. Also, made the timeline multi-threaded, and improved the DecklinkInput.cpp to keep frames in order, by returning the correct frame based on the number. 2013-02-12 01:28:48 -06:00
Jonathan Thomas
0b4cd27f6b Tweeked some greenscreen settings 2013-02-10 23:09:27 -06:00
Jonathan Thomas
4a4d9e2a34 Improved the timeline compositing performance, fixed some blackmagic bugs, and finally have an actual chromakey demo working! 2013-02-10 21:16:46 -06:00
Jonathan Thomas
425ac04b1a Commented out some code, to prevent some regressions on the timeline 2012-12-06 17:58:51 -06:00
Jonathan Thomas
ad81fed72e Added alpha to all FFmpegReader source images, which is needed by the timeline class. Also, added alpha to the AddColor() method. Now even the background of the timeline can be transparent, along with all layers... even the bottom layer. 2012-12-04 02:21:01 -06:00
Jonathan Thomas
0d82a4e716 Made Keyframe objects thread safe, by generating the values as Points are added, and the Timeline's Open and Close logic was made thread safe, so a reader is not closed while it's still being accessed on another thread. Also removed some unneeded code and comments. 2012-12-03 22:55:46 -06:00
Jonathan Thomas
8606ec2a6e Added wave_color attribute to the clip object, which now allows the audio wave form to animate it's color along a curve over time. Combined with the timeline background color curve, some cool combinations can be made! 2012-11-29 23:11:50 -06:00
Jonathan Thomas
ab4069464a Added curve-based color as the canvas background color (red, green, and blue), so it can be animated now. 2012-11-29 17:28:22 -06:00
Jonathan Thomas
d3ef1fac13 Refactored the audio waveform generation into the Timeline class. Added the ability to set the volume, and the ability to mix layers of audio samples together. Also, made the waveform's have a transparent background, so they can be layered on top of other layers. 2012-11-29 16:32:48 -06:00
Jonathan Thomas
495ca9dc9e Fixed a big audio bug, where varying timestamp values on low precision audio timebases (i.e. 1/1000) would leave small gaps in the audio wave. Also, fixed a few issues related to sample_rate getting lost between the reader and clip and timeline objects. 2012-11-20 16:22:50 -06:00
Jonathan Thomas
bf05afbfa7 Fixed the flush_encoders method to support older versions of FFmpeg 2012-11-17 03:13:00 -06:00