Commit Graph

76 Commits

Author SHA1 Message Date
Jonathan Thomas
a23e32874e Tweaked the number of FFmpeg threads, to optimize codec performance. 2012-08-31 15:19:17 -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
8831dd0c49 Enabled multi-threading decoding and encoding with libavcodec, setting the thread_count property. This make a huge improvement in CPU performance, for codecs that support this property. 2012-08-28 22:53:12 -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
c564a15ced Improved the multi-threaded code, by requiring a minimum of 8 frames to be processed by the reader. 2012-08-26 02:44:05 -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
b4873d566f Refactored to allocate less memory when not resampling audio during encoding 2012-08-21 21:51:00 -05:00
Jonathan Thomas
927f320702 Additional testing changes 2012-08-21 16:12:37 -05:00
Jonathan Thomas
87db694fcf Moved audio decoding outside of OMP task, and fixed all audio pops and crackles! 2012-08-21 15:31:52 -05:00
Jonathan Thomas
0e235b0efb Refactored some of the FFmpegReader audio class, trying to locate the pops and cracks in the audio. 2012-08-21 02:12:35 -05:00
Jonathan Thomas
2b5d317123 Fixed a multi-threaded encoding bug with audio-only files. 2012-08-20 22:23:31 -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
7cb17bdb5f Some profiling changes to test encoder performance 2012-08-16 00:53:46 -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
9b6d4dc4a1 Added some additional "duration" checks, to fix bugs with reading webm files. 2012-08-12 02:14:15 -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
7eeb8f7c80 Added a few new options 2012-08-11 03:39:00 -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
191d905299 Improved SetOption to recognize a few codecContext variables as well (such as g, qmin, and qmax) 2012-08-11 02:59:03 -05:00
Jonathan Thomas
d380292210 Removed unneeded rescaling, since the codec and stream always have the same frame rate 2012-08-06 20:13:01 -05:00