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
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
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
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
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
Jonathan Thomas
5d708ecfba
Fixed a small rounding bug with the audio resampling
2012-08-03 00:32:56 -05:00
Jonathan Thomas
80ca5e8315
Fixed audio resampling to now use JUCE instead of FFmpeg. Removed lots of debug code.
2012-07-30 11:05:36 -05:00
Jonathan Thomas
0aac7871a3
Changed AudioBufferSource to only contain a pointer to a buffer, rather than contain it's own copy of the audio samples.
2012-07-30 10:19:35 -05:00
Jonathan Thomas
efb38cc9d8
Added in JUCE audio resampling, and have lots of resampling debug code still in place.
2012-07-30 02:37:19 -05:00
Jonathan Thomas
7125b26357
checking stuff in.
2012-07-24 12:50:17 -05:00
Jonathan Thomas
3b46aad2ef
Added some new methods to access audio data: channels, samples, etc... Also, added initial unit tests for the FFmpegReader class, including waveform checking against an actual audio file.
2012-07-09 01:22:11 -05:00
Jonathan Thomas
dfae7825ca
Refactored FFmpegReader code a bit, fixed many, many memory leaks, and many valgrind errors. Now the memory seems very stable, and the seeking and stream walking seems very solid.
2012-07-08 23:26:44 -05:00
Jonathan Thomas
457df5b2ff
Changed the method of determining if a frame is completed or not.
2012-07-06 02:34:18 -05:00
Jonathan Thomas
a662abcfd7
Fixed many bugs, including an audio crackle between packets, and fixed many multi-threading issues.
2012-07-03 02:42:47 -05:00
Jonathan Thomas
eea7b0c076
Protected audio decoding in a omp_critical, and removed some debug code
2012-07-02 17:25:07 -05:00
Jonathan Thomas
fde25cec5a
Lots of experimental changes with the FFmpegReader, and caching of packets.
2012-07-02 00:51:10 -05:00
Jonathan Thomas
815204d235
1) Successfully got OpenMP working with the video processing method.
...
2) Added new "processing" flag, to help determine if a frame is being worked on in a thread
3) Added a new cache Display() method, for debugging reasons
2012-07-01 01:43:06 -05:00
Jonathan Thomas
e9e1b86f5c
Fixed audio code to work with the newest version of JUCE (v2.0), and removed sample programs
2012-06-17 23:15:47 -05:00
Jonathan Thomas
b775fff325
Got ffmpeg and juce compiling and mostly everything working again. FFmpeg is the newest version, and so is JUCE.
2012-06-16 02:12:48 -05:00
Jonathan Thomas
403c7e512e
Fixed 2 bugs related to audio samples. Each frame can now determine it's own # of samples, due to some sample rates not being divisible evenly into some frame rates. Also, a bug was fixed that injected a bad sample into a frame's samples, when a frame received samples from multiple audio packets.
2012-02-26 16:40:53 -06:00
Jonathan Thomas
ade29c7d68
Fixed tons of issues related to video timebase being different than the video framerate. Also, added new properties for interlaced video, correctly detect pixel ratio, and fixed Display() to adjust for pixel ratio. Also added sample_rate to a frame, so it can playback audio at the correct rate. Refactored FFmpegReader to make most methods private, and only expose the important methods publicly.
2011-12-11 20:42:50 -06:00