Commit Graph

609 Commits

Author SHA1 Message Date
Jonathan Thomas
ec65ca39b3 Fixing invalid cache after editing effect in a clip, and frame accuracy (converting timestamps into frame numbers). This makes frame by frame editing much better. 2017-03-10 00:51:08 -06:00
Jonathan Thomas
bd85f1144d Adding a lock when updating the JSON of a Timeline (or remapping it), so nobody can request frames while everything is changing. Seems much more stable during live preview. 2017-03-05 04:34:32 -06:00
Jonathan Thomas
289e659566 Fixed a bug when caching a mask size (a regression from some of our speed improvements) 2017-02-19 01:29:59 -06:00
Jonathan Thomas
dc25576fab Removing transform handles, since I will instead implement that in Python rather this library. Also, refactoring a bit of the clip transforms, to keep the rotation center correct. 2017-02-04 22:01:06 -06: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
f30d7018b6 Fixing small bug with audio PTS detection, when seeking on really long video files (which would reset the last_frame to -1, and then detect a huge # of incorrect missing frames) 2017-01-23 23:53:50 -06:00
Jonathan Thomas
6f28c6f83b Tweaking logic when detecting a final frame, and adding more logging to CheckWorkingFrames 2017-01-19 15:29:46 -06:00
Jonathan Thomas
90a7818573 Merge pull request #47 from nlsnho/audio-fix-1
Merging some audio refactoring and audio bug fixes
2017-01-12 00:53:37 -06:00
Nelson Ho
47a63afeb7 Updated test expectations for new audio sample rate fixes for proper number of samples per frame, even for the first output frame. 2017-01-07 20:29:42 -05:00
Nelson Ho
2cbb722141 fix logic for location.sample_start and location.frame update, fixes audio gaps 2017-01-07 17:59:00 -05:00
Nelson Ho
c33e6fa2a8 Fix AudioLocation::is_near function to handle a corner case where the two frames have different samples_per_frame, and sample_start is at the samples_per_frame limit. 2017-01-07 17:34:11 -05:00
Nelson Ho
c9b74ec96d Added fixes for audio sample distribution to clean up missing or extra audio samples that were at frame boundaries 2017-01-06 20:48:47 -05:00
Jonathan Thomas
5b7e94bb31 Fixing incorrect placement of a selection handle. 2016-12-29 18:01:20 -06:00
Jonathan Thomas
46c25dc3ec Fixing version: 0.1.3 (so 10) - whoops v0.1.3 2016-12-20 16:58:45 -06:00
Jonathan Thomas
70d61bb9ed Bumping version to 0.2.2 (so 10) 2016-12-20 16:56:38 -06:00
Jonathan Thomas
066d4818a3 Only apply effects for valid frame objects 2016-12-15 03:18:26 -06:00
Jonathan Thomas
ff77af11bb -DDISABLE_TESTS=1 now disables the entire "make test" target, and does not require unittest++ to be a build dependency 2016-12-13 17:17:21 -06:00
Jonathan Thomas
b058251cc4 Large refactor of detecting missing frames, to make it more accurate and dramatically improve performance for many videos. 2016-12-07 01:06:16 -06:00
Jonathan Thomas
c90ddfd484 Ensure Seek() waits for any outstanding video/audio frames to be processed in other threads before attempting a seek (and potentially crashing) 2016-11-23 01:50:03 -06:00
Jonathan Thomas
7be1b8ca4c Removing unneeded std::map which has holding all AVPackets, which was causing a memory leak and crashes. 2016-11-14 22:37:44 -06:00
Jonathan Thomas
d79994a780 New cross platform exception handler for libopenshot! Logs basic stacktrace on segmentation fault. This will be a huge help in finding bugs and crashes. 2016-11-03 02:19:48 -05:00
Jonathan Thomas
559d6a0545 Huge refactor of keyframe point handles (bezier quadratic curves) to use CSS-style syntax. Basically, the left and right handles of a point now use percentages, such as 0.0, 1.0, 0.5, 1.0 (between 0 and 1), and become real coordinates based on the value differences between points (in real time). Also simplified the JSON property creation. Also, many unit tests have been updated, because they were actually generating the incorrect values from before... although only slightly in most cases. Now they have correct values from the default bezier handles. 2016-10-19 02:19:07 -05:00
Jonathan Thomas
d2b3651d87 Fixing crash when FrameMapper sometimes returns a blank Frame objects. Not sure why that is possible, but now it fails gracefully. Also, extending the cache clearing code on timeline +/- 1 more frame, to be sure we clear frames that have changed. 2016-09-19 22:27:36 -05:00
Jonathan Thomas
1743558f99 Improved image caching logic, to better estimate max image sizes possible, based on clip scale and keyframe settings... so we are always dealing with the smallest possible frame sizes for performance (without losing quality) 2016-09-17 17:14:27 -05:00
Jonathan Thomas
183b0714e2 Added a new optimized constructor to some readers (FFmpegReader, QtImageReader, ImageReader) to not Open() in the constructor, which dramatically speeds up creating hundreds of Readers (i.e. when opening a project). This is really only useful when inflating the reader with Json right after you instantiate it... 2016-09-16 17:43:26 -05:00