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
|
5290f67a97
|
Fixing regression where source readers could have their info.has_video and info.has_audio set to an invalid state... causing crashes and freezes.
|
2017-05-30 15:35:43 -05:00 |
|
Jonathan Thomas
|
3a884e71dc
|
Big improvement with handling invalid video and audio timestamps, defaulting to more sane values (when huge crazy timestamps are detected). Also fixing a bug when disabling video/audio tracks on FrameMappers. Also adding additional bail-out code when stuck searching for a video/audio packet that probably doesn't exist. Added improved "checked" handling, and once 1 frame is detected as invalid, clean out any other invalid ones as well.
|
2017-05-17 01:17:42 -05:00 |
|
Jonathan Thomas
|
97ec6298ff
|
Adding frame number display options to a clip, which can be super useful when debugging issues. Options include: None, Clip, Timeline, or Both. Also improving missing frame detection, to have less false positives (i.e. flickering 1st frame)
|
2017-03-15 02:06:53 -05: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
|
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 |
|
Jonathan Thomas
|
33bba65cfd
|
Adding transform selection handles to a clip, which doesn't have much of a purpose yet, but it renders the rectangle handles for a clip (will soon be tied into the UI). Finally implemented shearing as a basic clip transform, which can be keyframed and animated. Refactored the timeline code where we do matrix transformations (QTransform), to simplify it.
|
2016-09-16 00:12:17 -05:00 |
|
Jonathan Thomas
|
7f347eb1ca
|
Added SetMaxSize for image optimizations in QImageReader and FFmpegReader, which lets the timeline pass down the max size to all clips and readers, so they can optionally optimize the size of images (especially useful for optimizing preview performance). Removed convoluted image scaling code in FFmpegReader, and replaced with simpler version. Also, fixed a few regressions from the new Caching code, primarily a crash when reaching the end of the last clip on the timeline.
|
2016-09-14 04:11:12 -05:00 |
|
Jonathan Thomas
|
e2615c9249
|
Renaming Layer to Track in JSON properties
|
2016-08-18 19:45:45 -05:00 |
|
Jonathan Thomas
|
a3ef86a695
|
Fixed some big performance issues (some which were causing crashes) in effects (Brightness and Saturation), and created a factory class for effects, to reduce redundent code.
|
2016-08-16 22:40:51 -05:00 |
|
Jonathan Thomas
|
d0b14fe3d3
|
Updated lots of JSON min/max properties to better reflect reasonable values
|
2016-08-16 02:12:51 -05:00 |
|
Jonathan Thomas
|
4808be25ff
|
Added 4 new clip keyframes (channel mapping, channel filter, has_video, and has_audio). These are a bit different though, as they are evaluated as boolean (-1 = ignored, 0 = disabled, 1 = enabled). Also fixed some issues with video playback (where it gets stuck in fast forward), and fixed some race conditions when opening FFmpegReader. Also added more debug output.
|
2016-04-24 15:37:47 -05:00 |
|
Jonathan Thomas
|
45f1b8c5ac
|
Making ImageMagick completely optional. This will simplify packaging on Windows and Mac. Also, reprogrammed Display, DisplayWaveform, Save, and Thumbnail methods, which are much faster now (using Qt).
|
2016-02-23 00:27:03 -06:00 |
|
Jonathan Thomas
|
f775656c98
|
Reverting the clip optimization, since it causes some issues on QImageReaders used on the timeline.
|
2016-01-18 20:38:30 -06:00 |
|
Jonathan Thomas
|
d48ce2068e
|
Refactored some audio thread code, and improved performance of timeline (by removing a 'omp ordered' statement that doesn't seem needed). Also added some performance improvements in Clip and FrameMapper classes (if the frame is the same as the source frame... just use the source frame)
|
2016-01-18 15:20:55 -06:00 |
|
Jonathan Thomas
|
e2573e8144
|
Flipping alpha channel values. It was brought to my attention that the meaning of alpha was opposite of what was being used. So, sorry if this breaks some things, but better to get it fixed quickly, and for the value to make sense.
|
2016-01-16 21:53:07 -06:00 |
|
Jonathan Thomas
|
0604069da2
|
FIxed an issue with audio only files with no default height/width set. Also added improved performance when mixing many audio only files (skipping the image processing)
|
2016-01-09 15:50:53 -06:00 |
|
Jonathan Thomas
|
6be7540852
|
Fixed a bug with time mapping for animations and videos without audio.
|
2015-12-31 04:17:54 -06:00 |
|
Jonathan Thomas
|
b7de1a885b
|
Fixed some big issues with time mapping and thread safety. Lots and lots of crashes were fixed related to this. Mostly dealing with an incorrectly sized AudioSampleBuffer when trying to combine multiple frames.
|
2015-12-28 02:41:32 -06:00 |
|
Jonathan Thomas
|
55684663da
|
Added wave_color to Clip's JSON properties. Also fixed a bug with adding effects from a JSON diff. Made the background color of a wave visualization transparent, and made the wave graphic come before the effects are processed, which allows the wave to be faded, animated, etc...
|
2015-11-25 23:54:10 -06:00 |
|
Jonathan Thomas
|
3731b22317
|
Added a new effect: Blur. It has the ability to box blur, horizontal and vertical blur, and gaussian blur. All of these settings are keyframeable and can be animated.
|
2015-11-09 00:12:21 -06:00 |
|