Commit Graph

64 Commits

Author SHA1 Message Date
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
Jonathan Thomas
3f2855735e Added experimental multi-threaded features to the FFmpegWriter 2012-08-20 00:02:09 -05:00
Jonathan Thomas
d1af1b5fef Huge refactor, switched almost all methods to using pointers for Frames, and moved some key method calls outside the critical OMP sections. Also, refactored the sws scaler, to create a pool of 32 scalers, and give each thread it's own scaler. This refactor resulted in a 40%+ increase in speed on the FFmpegReader class.
I also added a cmake build flag for the google perftools library, to assist on profiling performance issues.
2012-08-15 17:27:14 -05:00
Jonathan Thomas
be802dafb0 Added experimental AddEffect method to the frame object, to apply image effects 2012-08-11 21:13:05 -05:00
Jonathan Thomas
1bbfa060cf Fixed a huge regression with PTS, that caused all sorts of issues with encoded videos, especially webm. 2012-08-11 20:28:05 -05:00
Jonathan Thomas
1b1b84dde8 Added 2 additional options for SetOption, and split the preparing of streams and the writing header into separate methods. 2012-08-11 03:19:52 -05:00
Jonathan Thomas
72d6553f75 Added the ability to specify the image type and scale of any frame when calling the Save() method on a frame. This makes it easy to save any frame as any image type at any size image... very useful indeed. 2012-08-05 16:43:09 -05:00
Jonathan Thomas
67dba0cd67 Fixed the audio resampling by adding a new class called AudioResampler, which maintains state between calls to the JUCE resampler. Maintaining state allows JUCE to remove the discontinuities between the frames, and removes all the pops and crackles.
This is a major commit, and changes many things, including build scripts, new classes, and how the encoder works.
2012-08-05 15:17:37 -05:00