Jonathan Thomas
1e5cffd6db
Added the initial API of the FFmpegWriter class, and tweaked the build scripts and reader class.
2012-07-12 15:55:41 -05:00
Jonathan Thomas
902b2ff8cd
Added the base class for the FileWriter.
2012-07-09 15:18:24 -05:00
Jonathan Thomas
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.
2012-07-09 01:44:36 -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
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.
2012-07-06 15:17:57 -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
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).
2012-07-05 00:01:42 -05:00
Jonathan Thomas
53e16efd63
Fixed a small audio buffer issue, and removed more debug code.
2012-07-04 04:01:59 -05:00
Jonathan Thomas
e8d9dba8ce
Started adding clean up code, to reduce memory footprint
2012-07-03 16:58:07 -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
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
c6c011a5b9
Make SDL method private, so Python bindings still work
2012-06-22 00:26:01 -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
57520f0ba3
Removed juce files to their own library
2012-06-15 17:46:13 -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
da289f93bf
Fixed a bug where audio was not being resampled to the correct sample format. Also fixed a bug where the audio buffer was not being incremented correctly, and it was duplicating audio samples. There are still a few audio bugs, but it's mostly working now.
2011-12-18 02:29:34 -06:00
Jonathan Thomas
f00c4206be
Added a method to get the average # of frames over the initial 5 seconds of video, and adjust an invalid framerate, which sometimes FFmpeg detects. Also, a Reader only initializes it's default values 1 time, and only checks frame rate 1 time, regardless of how many times your Open() and Close() the reader.
2011-12-15 16:11:48 -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
Jonathan Thomas
26083f27b7
Fixed a rounding error on mapping audio samples to frames. Also adjusted the sample rate on the frame.Play() method to 48khz.
2011-10-26 14:34:14 -05:00
Jonathan Thomas
e4f95d8a99
Reworked the cache object to use a double sided queue, so I can iterate through it to find the smallest frame, and remove specific frames from the cache. Also, fixed some additional audio bugs, and I finally have the audio being correctly distributed between frame objects.
2011-10-26 00:34:48 -05:00
Jonathan Thomas
81941041e3
Added a DisplayWaveform method on a frame, to help debug audio issues. It uses ImageMagick to draw each channel and all samples in each channel.
2011-10-24 17:32:26 -05:00
Jonathan Thomas
43fd6c33d0
Some major refactoing of the FFmpegReader, to allow for audio and video packets that are out of order.
2011-10-24 08:22:21 -05:00
Jonathan Thomas
1faa168fb3
Began to refactor the FFmpegReader to correctly save the audio samples with the correct frame.
2011-10-14 09:47:05 -05:00