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
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
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
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
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
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
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
5b77abdf27
The timeline classes are finally working correctly, and have the following features:
...
1) Layers (unlimited # of layers)
2) IN, OUT, and Position (time)
3) X, Y offset
4) Alpha
5) Rotation
6) Transparency + compositing + overlays
2012-11-08 04:35:21 -06:00
Jonathan Thomas
7fe9008cad
Added a new "smooth" slow motion, using the time map fraction to dissolve the next frame into the current one.
2012-10-29 01:47:39 -05:00
Jonathan Thomas
60ffebe1fe
Replaced avcodec_encode_audio with avcodec_encode_audio2, and completely redid the way PTS values are calculated and set. Another nice improvement!
2012-10-27 21:36:08 -05:00
Jonathan Thomas
a0b24c61f0
Fixed a huge memory leak related to cache objects, and incorrect frame sizes. It was caching way too many frames, and creating all sorts of issues.
2012-10-26 00:27:44 -05:00
Jonathan Thomas
b74e97c7d2
FIxed some big audio bugs, and finally got the audio reversing correctly working. Now, audio waves are reversed when a time map is moving backwards. There are still some pops and crackles, but I'll fix those later.
2012-10-21 05:29:29 -05:00
Jonathan Thomas
5e5ca2a55c
Fixed a big bug on frame rate mapping, due to incorrect # of samples being copied into the new frame. Also, implemented interalacing support, and full pulldown support (in the frame mapper).
2012-10-18 02:58:09 -05:00
Jonathan Thomas
129a2fccd7
Many experimental changes, including a new FrameMapper that is based on FileReaderBase, and lots of debug code.
2012-10-17 09:57:02 -05:00
Jonathan Thomas
b647ff77c8
Fixed a regression with audio files and seeking, added a few new methods, and more accurately detect the End() of clips.
2012-10-14 02:36:05 -05:00
Jonathan Thomas
a601bcef2d
Another huge refactor and lots of big fixes! Time mapping now works... mostly. The jumpy / glitchy images have been solved by copying the AVFrame into an AVPicture, which does not get clobbered on the next decode.
...
Also, added a new frame number overaly (in the top, left part of the image), and a new AddColor() method, to change the size and color of the frame's image...
Padded the end of the FFmpegWriter / WriteTrailer() method, to avoid having a codec ignore the last many frames.
2012-10-12 00:54:53 -05:00
Jonathan Thomas
217c54a5ae
Major refactor to the cache object (again)! It now uses bytes to determine how many frames to keep.
2012-10-11 17:30:32 -05:00
Jonathan Thomas
780a702f5d
Added a Rotate() method to a Frame object. Added new methods on a clip to translate frame numbers (FrameMapper and Time Curves). Now, the Timeline, Clip, and Readers are all working with animation curves. Pretty cool!
2012-10-10 02:36:53 -05:00
Jonathan Thomas
63529bd158
Added a new experimental overlay method to a frame, which composites images from multiple frames, and adds the result to the bottom right side of the image.
2012-08-29 16:07:47 -05:00
Jonathan Thomas
b3cf902f22
Added a new ImageReader class, which uses ImageMagick++ to read image files, and produce openshot::Frame objects.
2012-08-29 15:29:15 -05:00
Jonathan Thomas
ed697a9c15
Added pool of software image scalers to the FFmpegWriter / encoder, and removed OMP critical section. Also, refactored some audio and video codecs, and changed "resize" to "scale" for speed improvements.
2012-08-24 15:57:49 -05:00