Commit Graph

126 Commits

Author SHA1 Message Date
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
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
2a743123ee Improved DecklinkReader to be multi-threaded, using the OpenShot cache object to keep things in order. Performance is very smooth on the blackmagic test executable now. 2013-02-10 15:46:41 -06:00
Jonathan Thomas
09a02c0adf Adding the initial version of the decklink writer, and a fully working (full circle) blackmagic example executabe, which processes real-time HD video and output's it via HDMI. 2013-02-10 02:19:40 -06:00
Jonathan Thomas
0a13525afd Completed the DecklinkReader class, and improved the conditional black magic code to include SWIG. The Decklink reader fully works, multi-threaded, and looks good. 2013-02-09 01:54:40 -06:00
Jonathan Thomas
182febe5b7 Fixed conditional compile flag for black magic, and improved the quality of the TextReader font rendering. 2013-02-08 02:15:16 -06:00
Jonathan Thomas
78b1e9b16b Added a TextReader class, which renders text as an image. 2013-02-07 17:11:23 -06:00
Jonathan Thomas
40e22bbafd Improved cmake to ignore blackmagic if it's not found 2013-02-07 16:00:57 -06:00
Jonathan Thomas
f04e821f0d Refactored blackmagic capture example into DecklinkCapture.cpp, and added it into libopenshot. Also, added a new, Main_Blackmagic.cpp example program, which invokes the DecklinkCapture.cpp class.
Also, built in a 20 frame buffer into the DecklinkCapture.cpp class, to discard old frames, to keep the memory from filling up.
2013-02-06 02:09:21 -06:00
Jonathan Thomas
9181a3b74a FIxed a bug with the blackmagic example program (capture.cpp), and checked in the start of a new DecklinkReader class. 2013-02-01 13:13:48 -06:00
Jonathan Thomas
fbf169a7fa Added a simple chroma key method to a frame object, and added multi-threaded optimizations to the black magic capture code. 2013-01-26 23:02:21 -06:00
Jonathan Thomas
6c1d0a9568 Added initial Blackmagic support, including cmake scripts and build instructions, and a test executable. 2013-01-26 16:48:41 -06:00
Jonathan Thomas
d0556bc33f Fixed a big audio regression, with a buggy isnear() function, which did not take into account the amount of frames between the sample locations. 2013-01-25 02:24:18 -06:00
Jonathan Thomas
b8d4b0b73d Fixed a big bug with the Swig wrapper, to correctly match the typemap of the tr1::shared_ptr, and then removed the GetFrameObject method, since it's no longer needed. 2013-01-12 12:45:55 -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
e264d4fcab Fixed a really huge audio issue, related to audio timestamps, gaps, and also mono vs stereo issues. This is the best audio support I've accomplished thus far. =) 2012-12-03 04:51:17 -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
7e51c204f9 Lots of debug code with some experimental audio PTS code, to adjust for small gaps in timestamps. 2012-11-20 10:15:39 -06:00
Jonathan Thomas
298cfb065e Improved the compositing engine to more accurately compare doubles and floats. 2012-11-16 17:29:12 -06:00
Jonathan Thomas
8fb94cc123 Updated the FFmpegWriter to use compiler #IF commands to be compatible with older and newer versions of FFmpeg. This is still a work in progress, but many of the newer commands are now being protected. 2012-11-16 17:15:44 -06:00