Commit Graph

122 Commits

Author SHA1 Message Date
Jonathan Thomas
722d672f58 Update Frame.cpp 2019-06-08 12:52:35 -05:00
Jonathan Thomas
438b2c333e Update Frame.cpp 2019-06-08 12:21:56 -05:00
Jonathan Thomas
13e74b147a Adding new CheckPixel method to validate a specific pixel color 2019-05-31 19:02:28 -05:00
Chris Kirmse
833fcb8e8e fix a number of memory leaks
- some were with libav functions
- same were due to non-virtual destructors
2019-05-08 15:02:33 -07:00
Jonathan Thomas
9dbb063ded Persist any error returned by JUCE during initialise() method, such as sample rate issues on Windows (when playback and recording sample rates do not match, which breaks WASAPI) 2019-04-04 00:55:47 -05:00
Jonathan Thomas
b63a63ceb2 Fix many bugs around FPS and video length calculation (especially for MP3 and streaming WEBM formats). Also protecting samples_per_frame calculation to keep from crashing on undetected FPS. 2018-09-17 00:27:30 -05:00
Jonathan Thomas
f4b4aac7df Update Frame.cpp
Fixing merge error
2018-06-11 23:36:23 -07:00
Jonathan Thomas
805304312a Merge branch 'develop' into feature/new-audio-mixing 2018-06-11 23:32:05 -07:00
Jonathan Thomas
04e4f63ea8 Calculate max volume of all overlapping clips, and scale clip volume to fit within the 100%, to prevent popping 2018-06-11 12:02:21 -07:00
Jonathan Thomas
1c71659e94 Prevent a negative starting sample when adding audio to a frame
(cherry picked from commit 0327143)
2018-06-06 05:14:21 -05:00
Jonathan Thomas
032714316d Prevent a negative starting sample when adding audio to a frame 2018-06-06 03:56:02 -05:00
Jonathan Thomas
bc5607910d Fixing audio pops due to resampling (this fixes a bunch of audio popping-related bugs). Now Frame objects track their own max_audio_sample_count, as we add audio data... so we have an accurate bounds on each frame. 2018-05-30 03:20:31 -05:00
Rich Alloway
5335797767 Do not clobber gainFactor when determining volume adjustments and add a TODO note about current_max_volume always being 0 2018-05-10 12:09:55 -04:00
Jonathan Thomas
6e99445eca Fixing a bug with Frame::AddImage (convertToFormat) not actually doing anything. It returns a new image, and does not convert the format in-place. 2018-03-04 23:59:14 -06:00
Jonathan Thomas
1ec9e4426a Adding in some experimental code to auto-mix audio data without overflowing (auto-ducking as it's sometimes called). This is calculated per frame, and I'm using the basic formula (S1+S2)-(S1*S2). 2018-03-04 04:09:29 -06:00
Jonathan Thomas
f2b0f3a0f4 Adding metadata from format, audio stream, and video streams to ReaderBase.info, which in some cases includes the 'rotate' metadata added by certain cameras, and audio metadata like title, album, artist, copyright, dates, etc... Auto-Rotates any Clip with Reader metadata 'rotate' attribute. 2018-02-03 01:57:18 -06:00
Jonathan Thomas
7b13001bf7 Fixing assignement and copy operators on Frame class (to prevent crashes for unintiailized image and audio pointers), and ensuring both copy and assignment operators work as expected. Also fixing the color property of Frames, which was being lost on some constructors. 2018-01-21 23:49:07 -06:00
Jonathan Thomas
6e8c78627e Additional omp critical sections around adding frame images 2017-11-10 23:36:13 -06:00
Jonathan Thomas
2fcb35ddcc Removing throw statements from header files (thanks Peter) 2017-10-26 18:44:35 -05:00
Jonathan Thomas
c95db460d6 Big update! Updating all "long int" frame number types to int64_t, so all 3 OSes will produce the same depth and precision on frame numbers. Also removing variable bitrate support temporarily, since it causes more problems than it solves. 2017-09-28 16:03:01 -05:00
Jonathan Thomas
f12ffe692b Migrating tr1 to std, adding C++11 support to build scripts, fixing crash in FFmpegReader (caused by shared_ptr, buffer, and last_video_frame corruption). Much improved stability with this change. Thanks to Craig and Peter for the help! 2017-08-20 17:37:39 -05:00
Jonathan Thomas
c30dbb90d8 Adding additional locks when adding/changing audio data. Reducing FrameMapper to a single frame at a time (increase seek speed and decrease crashes). Fixing crash on Time keyframes where it would sometimes calculate an invalid frame number. 2017-07-19 16:05:07 -05:00
Jonathan Thomas
a322411669 Removing nested OMP processing from FrameMapper. Adding lock inside time mapping (to prevent crashes when speeding up/slowing down clips). Adding omp critial lock to Frame GetAudioChannelsCount() and GetAudioSamplesCount() methods. 2017-06-22 15:26:40 -05:00
Jonathan Thomas
85ac4bf6d2 Updating references to frame number / position to long int, there were still quite a few old "int" declarations, which limits the length of frame number. Also, updated precision of KeyFrames to use double (instead of float) for higher precision, which fixed lots of issues with very long videos (since our FrameMapper used a KeyFrame object to create a map to new frames) 2017-01-24 18:39:17 -06:00
Jonathan Thomas
c53c9364f3 Added new CacheDisk class, which caches frames to the hard drive, dramatically speeding up preview speeds, at the expense of IO operations. New unittests for caching framework. Fixed a few bugs with Frame constructor, which was causing invalid # width & height. Integrated JSON into the cache framework, to quickly share the state of the cache (including ranges of cached frame numbers). Fixed a bug where some Timeline frames could have no audio samples. 2016-09-07 00:40:01 -05:00