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
cebf9728c8
Refactored seek method a bit in the FFmpegReader, to fix some bugs. Also, being changing the cache object again, on how it cleans up pointers. Some debug code is checked in also.
2012-10-10 17:27:46 -05:00
Jonathan Thomas
b7792b04d8
Added new method to adjust the min value of a valid frame number, added a new unlimited cache option, and fixed a bug which was preventing the timeline from calling GetFrame correctly. Now timelines, clips, and readers are working together nicely.
2012-10-10 15:21:33 -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
314b57d106
Improved Timeline sort code to use both Position() and Layer().
2012-10-10 01:58:13 -05:00
Jonathan Thomas
60e645da61
Added a FrameRate() method to the timeline, to get or set the fps. Also, added a unit test for that, and refactored some header files to be alphabetical.
2012-10-10 01:07:47 -05:00
Jonathan Thomas
9d31e9cf4f
Added some functionality to the timeline GetFrame() method, and build a way to update the list of opened clips, to manage which files are open and closed, etc...
2012-10-09 02:09:44 -05:00
Jonathan Thomas
1d89fd140a
A big refactor of the Open() method on Readers, and the constructor of Readers. All resource consuming code has been moved into the Open() methods, so the Clips and Timeline can control them better.
2012-10-09 01:45:34 -05:00
Jonathan Thomas
87d12254ef
Added Open() to the reader base class, so all readers need to have that method now. This is to allow the timeline to better control Clips and Readers.
2012-10-08 16:22:18 -05:00
Jonathan Thomas
8518071890
Protected the Open() and Close() methods better, so the FFmpegReader will not crash. Also, made the Open() method public, so the Timeline and Clip classes can control the reader better.
2012-10-08 15:02:52 -05:00
Jonathan Thomas
6d790d2670
Overloaded Clip comparison operators, to use the Position() of clips for sorthing routines. Also, added the AddClip method, to add clips to a timeline (and sort them by position).
2012-10-05 17:05:33 -05:00
Jonathan Thomas
a417fef1fd
Made the Timeline class inherit from FileReaderBase, which means the Timeline is really just a fancy ready class now. Also, added new unit tests for the Clip and Timeline classes.
2012-10-05 01:58:27 -05:00
Jonathan Thomas
d8fe0ddfb8
Improved the logic to decide which reader to use. ImageReader sometimes hangs when passed "mp4" video files, so we now check for common movie extensions first.
2012-10-04 18:02:46 -05:00
Jonathan Thomas
93a356c171
Renamed some enumerations, and added in framerate mapping into the clip object.
2012-10-04 16:07:58 -05:00
Jonathan Thomas
4bd6db527e
Renamed some of the basic clip property getters and setters, and added some simpler ways to get the value of and add points to a key frame.
2012-10-04 15:07:29 -05:00
Jonathan Thomas
2266a4ab7a
Improved Clip class, and worked on constructors, file readers (image and ffmpeg), and more curves (shear, perspective, and crop)
2012-10-04 01:34:45 -05:00
Jonathan Thomas
e96bd5ba98
Added the initial timeline and clip classes, with some of the initial curves and constructors.
2012-10-03 01:55:24 -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
0f3758bc29
Fixed a big regression where the "omp" tag was not correct. Also, restructured the encoder to be much faster, and changed "omp master" to "omp single".
2012-08-28 15:53:18 -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
Jonathan Thomas
1ec7128a09
Fixed a huge bug where the FFmpegWriter was not scaling colors to 8 bit, and that would crash on certain colors being used in an image. Also, added a new, experimental waveform visualization to the encoder.
2012-08-22 17:31:12 -05:00
Jonathan Thomas
b98b8f8968
Fixed many bugs on the multi-threaded encoder, simplified the API, and removed some memory leaks.
2012-08-20 14:26:49 -05:00
Jonathan Thomas
97b2717744
Fixed many bugs on the multi-threaded FFmpegWriter. Added audio multi-threading, and it mostly works... with a few bugs remaining.
2012-08-20 02:59:35 -05:00