Commit Graph

  • 268e776251 Fixed a bug with Keyframes that only have a single coordinate, to correctly return that Y value for any requested X position. Jonathan Thomas 2012-10-04 14:13:13 -05:00
  • 2266a4ab7a Improved Clip class, and worked on constructors, file readers (image and ffmpeg), and more curves (shear, perspective, and crop) Jonathan Thomas 2012-10-04 01:34:45 -05:00
  • e96bd5ba98 Added the initial timeline and clip classes, with some of the initial curves and constructors. Jonathan Thomas 2012-10-03 01:55:24 -05:00
  • be3519558b Updated phase 2 project plan Jonathan Thomas 2012-09-10 23:58:21 -05:00
  • 1bbcb1d8b3 Added phase 2 project plan Jonathan Thomas 2012-09-04 00:39:33 -05:00
  • a23e32874e Tweaked the number of FFmpeg threads, to optimize codec performance. Jonathan Thomas 2012-08-31 15:19:17 -05:00
  • 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. Jonathan Thomas 2012-08-29 16:07:47 -05:00
  • b3cf902f22 Added a new ImageReader class, which uses ImageMagick++ to read image files, and produce openshot::Frame objects. Jonathan Thomas 2012-08-29 15:29:15 -05:00
  • 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. Jonathan Thomas 2012-08-28 22:53:12 -05:00
  • 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". Jonathan Thomas 2012-08-28 15:53:18 -05:00
  • c564a15ced Improved the multi-threaded code, by requiring a minimum of 8 frames to be processed by the reader. Jonathan Thomas 2012-08-26 02:44:05 -05:00
  • 27d2cf629d Added a minimum # of packets to read in the FFmpegReader, which really helps utilize the multiple threads... and improved performance by 27% overall. Jonathan Thomas 2012-08-24 17:03:23 -05:00
  • 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. Jonathan Thomas 2012-08-24 15:57:49 -05:00
  • 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. Jonathan Thomas 2012-08-22 17:31:12 -05:00
  • b4873d566f Refactored to allocate less memory when not resampling audio during encoding Jonathan Thomas 2012-08-21 21:51:00 -05:00
  • 927f320702 Additional testing changes Jonathan Thomas 2012-08-21 16:12:37 -05:00
  • 87db694fcf Moved audio decoding outside of OMP task, and fixed all audio pops and crackles! Jonathan Thomas 2012-08-21 15:31:52 -05:00
  • 0e235b0efb Refactored some of the FFmpegReader audio class, trying to locate the pops and cracks in the audio. Jonathan Thomas 2012-08-21 02:12:35 -05:00
  • 2b5d317123 Fixed a multi-threaded encoding bug with audio-only files. Jonathan Thomas 2012-08-20 22:23:31 -05:00
  • b98b8f8968 Fixed many bugs on the multi-threaded encoder, simplified the API, and removed some memory leaks. Jonathan Thomas 2012-08-20 14:26:49 -05:00
  • 97b2717744 Fixed many bugs on the multi-threaded FFmpegWriter. Added audio multi-threading, and it mostly works... with a few bugs remaining. Jonathan Thomas 2012-08-20 02:59:35 -05:00
  • 3f2855735e Added experimental multi-threaded features to the FFmpegWriter Jonathan Thomas 2012-08-20 00:02:09 -05:00
  • ef2435eaea Updated project plan Jonathan Thomas 2012-08-16 01:27:25 -05:00
  • 7cb17bdb5f Some profiling changes to test encoder performance Jonathan Thomas 2012-08-16 00:53:46 -05:00
  • 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. Jonathan Thomas 2012-08-15 17:27:14 -05:00
  • 9b6d4dc4a1 Added some additional "duration" checks, to fix bugs with reading webm files. Jonathan Thomas 2012-08-12 02:14:15 -05:00
  • be802dafb0 Added experimental AddEffect method to the frame object, to apply image effects Jonathan Thomas 2012-08-11 21:13:05 -05:00
  • 1bbfa060cf Fixed a huge regression with PTS, that caused all sorts of issues with encoded videos, especially webm. Jonathan Thomas 2012-08-11 20:28:05 -05:00
  • 7eeb8f7c80 Added a few new options Jonathan Thomas 2012-08-11 03:39:00 -05:00
  • 1b1b84dde8 Added 2 additional options for SetOption, and split the preparing of streams and the writing header into separate methods. Jonathan Thomas 2012-08-11 03:19:52 -05:00
  • 191d905299 Improved SetOption to recognize a few codecContext variables as well (such as g, qmin, and qmax) Jonathan Thomas 2012-08-11 02:59:03 -05:00
  • 7f159b7189 Fixed python build install paths again Jonathan Thomas 2012-08-09 15:48:10 -05:00
  • 2486cb87dc Testing new python install script Jonathan Thomas 2012-08-09 15:08:34 -05:00
  • e983e447f1 Changed SONAME to 1 Jonathan Thomas 2012-08-09 11:01:49 -05:00
  • fb9cc41ebf Added in cmake rules for SONAME Jonathan Thomas 2012-08-08 17:28:15 -05:00
  • 597db2cc86 Simplied the cmake install scripts Jonathan Thomas 2012-08-08 12:36:52 -05:00
  • 0dcc8fc7fe Adding a __init__.py python module, for the Debian packaging Jonathan Thomas 2012-08-08 01:13:57 -05:00
  • 370a28905c Update cmake build scripts to install the DOC folder, after "make doc" is run Jonathan Thomas 2012-08-07 16:45:30 -05:00
  • e41f6210d5 Fixed the cmake install files to correctly copy the header files Jonathan Thomas 2012-08-07 13:11:24 -05:00
  • 58fff417d0 Merging branches, which accidentally diverged. Jonathan Thomas 2012-08-07 11:33:49 -05:00
  • 98882df918 Fixed a bug in the cmake install file Jonathan Thomas 2012-08-07 11:32:43 -05:00
  • d380292210 Removed unneeded rescaling, since the codec and stream always have the same frame rate Jonathan Thomas 2012-08-06 20:13:01 -05:00
  • 363cb8f257 Commented out unused error string, which breaks ffmpeg 53 Jonathan Thomas 2012-08-06 17:13:05 -05:00
  • 74d30cf7ee Fixed cmake files to install headers and binary library file Jonathan Thomas 2012-08-06 16:33:31 -05:00
  • 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. Jonathan Thomas 2012-08-05 16:43:09 -05:00
  • 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. Jonathan Thomas 2012-08-05 15:17:37 -05:00
  • 41fe027f6d Cleaned up the encoder code quite a bit, optimized lots of things, and fixed tons of memory leaks. Jonathan Thomas 2012-08-04 01:11:12 -05:00
  • 1f1540f7b6 Added initial support for AVOptions, and added video encoding support. Still needs lots of cleaning up, and custom exceptions, etc... but it's working now! Jonathan Thomas 2012-08-03 03:23:10 -05:00
  • 5d708ecfba Fixed a small rounding bug with the audio resampling Jonathan Thomas 2012-08-03 00:32:56 -05:00
  • 566295d46f Added some new audio sample scaling code, and fixed a huge bug with scoping the AVPacket in the correct spot, which was breaking many audio codecs... Also added a new mono audio test file. Jonathan Thomas 2012-08-02 17:19:55 -05:00
  • 9b28da8457 More audio refactoring, and resampling issues Jonathan Thomas 2012-08-01 03:17:02 -05:00
  • 80ca5e8315 Fixed audio resampling to now use JUCE instead of FFmpeg. Removed lots of debug code. Jonathan Thomas 2012-07-30 11:05:36 -05:00
  • 0aac7871a3 Changed AudioBufferSource to only contain a pointer to a buffer, rather than contain it's own copy of the audio samples. Jonathan Thomas 2012-07-30 10:19:35 -05:00
  • efb38cc9d8 Added in JUCE audio resampling, and have lots of resampling debug code still in place. Jonathan Thomas 2012-07-30 02:37:19 -05:00
  • 8387f503a6 Added new exceptions for invalid sample rates and channel layouts, and fixed a bug that added video streams for some formats for no good reason. Jonathan Thomas 2012-07-27 17:44:18 -05:00
  • ae3b8594d2 Successfully got resampling integrated into the audio encoder. Jonathan Thomas 2012-07-27 13:48:58 -05:00
  • 506aa19017 Fixed many audio encoding / resampling bugs... Jonathan Thomas 2012-07-27 02:35:43 -05:00
  • bb69ce22a8 Restrctured lots of audio encoding code, and dynamically set the sample_fmt based on valid sample_fmts in the codec. Jonathan Thomas 2012-07-25 17:20:02 -05:00
  • 7125b26357 checking stuff in. Jonathan Thomas 2012-07-24 12:50:17 -05:00
  • 0248a60e99 Replaced printf commands with custom exceptions, refactored the exceptions, and did some more testing. Jonathan Thomas 2012-07-20 00:13:16 -05:00
  • cac43bdc17 Added the ability to include either audio or video streams (or both), and refactored a bit. Jonathan Thomas 2012-07-19 17:10:40 -05:00
  • f5bd9ed1bf Added the initial encoder files, still not working though. Jonathan Thomas 2012-07-19 15:03:55 -05:00
  • 461212c4b2 Fixed doxygen param bug, and updated project plan progress Jonathan Thomas 2012-07-13 16:56:39 -05:00
  • 1e5cffd6db Added the initial API of the FFmpegWriter class, and tweaked the build scripts and reader class. Jonathan Thomas 2012-07-12 15:55:41 -05:00
  • 902b2ff8cd Added the base class for the FileWriter. Jonathan Thomas 2012-07-09 15:18:24 -05:00
  • ca6499b878 Updated the project plan. Jonathan Thomas 2012-07-09 01:44:45 -05:00
  • 0e233be34e Added new unit tests for FFmpegReader, which tests actual pixel color values against a test video on 2 different frames. Also, made Seek() method private. Jonathan Thomas 2012-07-09 01:44:36 -05:00
  • 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. Jonathan Thomas 2012-07-09 01:22:11 -05:00
  • 0c2008461a Fixed seek method to fallback on both streams, if one stream fails to seek. This fixes MP3s... which have a video stream, but only a single video packet. Also fixed the CheckWorkingFrames method to better determine when a frame is completed. Jonathan Thomas 2012-07-09 00:41:17 -05:00
  • 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. Jonathan Thomas 2012-07-08 23:26:44 -05:00
  • 8067cb657a Fixed a bug when seeking, and not reseting the cache's current frame. Removed some debug code. Jonathan Thomas 2012-07-07 00:58:05 -05:00
  • e9c243ddeb Audio optimizations and some debug code for seeking Jonathan Thomas 2012-07-06 16:52:13 -05:00
  • 21aa4d6b01 Replaced last_video_frame and last_audio_frame with a single last_frame variable, and refactored some related code. This fixes a big audio seeking bug. Jonathan Thomas 2012-07-06 15:17:57 -05:00
  • 457df5b2ff Changed the method of determining if a frame is completed or not. Jonathan Thomas 2012-07-06 02:34:18 -05:00
  • c7b9795c2a Updated project plan Jonathan Thomas 2012-07-05 02:31:13 -05:00
  • e610d343f4 Added some debug messages about when a frame is "complete" Jonathan Thomas 2012-07-05 02:29:43 -05:00
  • 25b3d70a9a Refactored the cache class to only apply the max frames against "previous" frames, and allow unlimited number of future frames, to account for different types of files (some which have hundreds of tiny frames, which need large future cache). Jonathan Thomas 2012-07-05 00:01:42 -05:00
  • 53e16efd63 Fixed a small audio buffer issue, and removed more debug code. Jonathan Thomas 2012-07-04 04:01:59 -05:00
  • 34a07b8d82 All known memory leaks are now fixed, and the memory seems to hold steady when looping through frames for many many minutes at a time. Fixed a bug with av_free_packet, which was breaking after an audio decode. Removed lots of debug statements. Jonathan Thomas 2012-07-04 03:07:26 -05:00
  • e8d9dba8ce Started adding clean up code, to reduce memory footprint Jonathan Thomas 2012-07-03 16:58:07 -05:00
  • 6553f49874 Made CheckSeek() threadsafe Jonathan Thomas 2012-07-03 02:59:38 -05:00
  • a662abcfd7 Fixed many bugs, including an audio crackle between packets, and fixed many multi-threading issues. Jonathan Thomas 2012-07-03 02:42:47 -05:00
  • b87a58d816 merged branches, forgot to push Jonathan Thomas 2012-07-02 19:33:08 -05:00
  • eea7b0c076 Protected audio decoding in a omp_critical, and removed some debug code Jonathan Thomas 2012-07-02 17:25:07 -05:00
  • efe96c88d9 Added a omp critical section around the audio decoding (for now) Jonathan Thomas 2012-07-02 01:38:52 -05:00
  • ed6b50709d More OpenMP debug code Jonathan Thomas 2012-07-02 01:25:32 -05:00
  • fde25cec5a Lots of experimental changes with the FFmpegReader, and caching of packets. Jonathan Thomas 2012-07-02 00:51:10 -05:00
  • 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 Jonathan Thomas 2012-07-01 01:43:06 -05:00
  • 311c04de23 Another openmp tweak Jonathan Thomas 2012-06-29 02:32:19 -05:00
  • 40680f7201 Fixed a few openmp bugs in the FFmpegReader, but there are still many issues Jonathan Thomas 2012-06-29 02:02:12 -05:00
  • d2e3285099 Fixed cmake dependency for JUCE on Windows Jonathan Thomas 2012-06-28 15:58:39 -05:00
  • bae7226481 Updated project plan Jonathan Thomas 2012-06-28 03:49:30 -05:00
  • c6c011a5b9 Make SDL method private, so Python bindings still work Jonathan Thomas 2012-06-22 00:26:01 -05:00
  • 361653c703 Added project plan for libOpenShot, to help schedule my time Jonathan Thomas 2012-06-20 01:26:30 -05:00
  • 62df1bc7ac openmp changes Jonathan Thomas 2012-06-18 09:26:14 -05:00
  • e9e1b86f5c Fixed audio code to work with the newest version of JUCE (v2.0), and removed sample programs Jonathan Thomas 2012-06-17 23:15:47 -05:00
  • b775fff325 Got ffmpeg and juce compiling and mostly everything working again. FFmpeg is the newest version, and so is JUCE. Jonathan Thomas 2012-06-16 02:12:48 -05:00
  • 57520f0ba3 Removed juce files to their own library Jonathan Thomas 2012-06-15 17:46:13 -05:00
  • 87da6faa92 Added initial juce source code (generated from Introjucer) Jonathan Thomas 2012-06-15 10:25:28 -05:00
  • 063c1481bd Fixed a bug calculating # of samples per frame, to use FPS instead of video time base. Jonathan Thomas 2012-02-26 17:22:24 -06:00