Commit Graph
2615 Commits
Author SHA1 Message Date
itsmattkc ba94ea51cd read and utilize the aspect ratio metadata from video files 2020-01-11 00:08:16 +11:00
itsmattkc d32306f88b only disk cache around the playhead 2020-01-10 20:35:48 +11:00
itsmattkc ea42ca36f5 don't segregate disk cached frames by sequence
Allows disk cached frames to be re-used in any context if their hashes are
perfect matches.
2020-01-09 23:36:53 +11:00
itsmattkc 362cb9daef made auto-deleting cache on close an option
Previously we had no disk management whatsoever, so we cleared the cache on
every close just to prevent clogging up tester disk space. Now that we are
implementing disk management, there are better things to do on close regarding
disk cache. However, some users may still wish for the app to delete the cache
on close, so it's provided as an option.
2020-01-09 21:00:04 +11:00
itsmattkc 9c2c384833 created disk manager class
This is a singleton class that will manage the disk cache to ensure the size
stays at sane levels.
2020-01-09 20:20:47 +11:00
itsmattkc 7df52b7fd5 added disk preferences pane and the ability to set the disk cache location 2020-01-09 15:51:59 +11:00
itsmattkc b233bdf8c9 a fairly decent node auto-positioning algorithm, not perfect, but a good start 2020-01-09 04:03:47 +11:00
itsmattkc 7018973d09 basic auto-positioning implementation
Not perfect by any means, but nodes are now automatically placed in relation to
their surroundings and connections.
2020-01-09 01:41:23 +11:00
itsmattkc 1b34c5566d anchor node graphics item by their center
Makes auto-positioning them somewhat easier.
2020-01-09 01:40:06 +11:00
itsmattkc b697d2faec implemented settings for exporting ONLY video or ONLY audio 2020-01-08 02:59:30 +11:00
itsmattkc b8aabb7e01 updated exporter to work with new frame flow 2020-01-08 02:27:47 +11:00
itsmattkc c8baf4aa3e implemented rubberband zoom in timeline 2020-01-07 20:24:07 +11:00
itsmattkc 5bdc631da8 fixed bug caused by uninitialized variable in tempoprocessor 2020-01-07 20:23:45 +11:00
itsmattkc d9572fa4e5 only allow splitting clips 2020-01-07 19:04:24 +11:00
itsmattkc a616aaa182 correctly affect speed/reversing when shuttling audio 2020-01-07 16:41:30 +11:00
itsmattkc c938055293 fixed exporter connections, some of which have changed in recent commits 2020-01-07 12:42:43 +11:00
itsmattkc e09ff4abf6 handle transition track movement
Only allow transitions to move tracks if their attached blocks are moving
with them.
2020-01-07 03:06:51 +11:00
itsmattkc 2941dbff48 handle transitions that have been set to zero length
Transition is removed wholesale if its length is set to zero.
2020-01-07 02:28:31 +11:00
itsmattkc ee392e11c6 implemented transition moving
For dual transitions, this will shift around the mid point.
2020-01-07 02:08:35 +11:00
itsmattkc 5d8be03970 implemented support for trimming transitions 2020-01-07 01:47:58 +11:00
itsmattkc e71697f693 fixed bug in ripple remove undo command where blocks deleted at the start of
the track would be restored at the end
2020-01-06 18:13:56 +11:00
itsmattkc d3ed7f9863 hash the transition's progress
Since the transition progress directly affects the resulting image, it's
important to include it in the frame hash.
2020-01-06 17:25:38 +11:00
itsmattkc 8358d7d221 moved progress calculations from openglworker to transitionblock
These functions are universal transition functions that have use outside of
the OpenGL workers.
2020-01-06 16:35:45 +11:00
itsmattkc 8391a732b1 automatically store block connections in the transitionblock class
Convenience code that automatically returns valid blocks if they're connected.
2020-01-06 16:29:14 +11:00
itsmattkc 464dfb9be0 fixed audio renderer with new speed system 2020-01-06 16:16:36 +11:00
itsmattkc 402f031be2 fix connections for new tracktype namespace 2020-01-06 15:43:21 +11:00
itsmattkc 7bf2422c44 moved timeline tracktypes into timelinecommon.h 2020-01-06 15:34:12 +11:00
itsmattkc dae09abf45 use speed value instead of media out value
This functions more or less identically to using a media out value, but the
desired speed is preserved through block length changes, even if the block's
length is reduced to zero (i.e. no rounding errors).
2020-01-06 15:21:27 +11:00
itsmattkc 31b60664a7 Merge branch 'merge-timeline-and-viewer' 2020-01-04 02:45:26 +11:00
itsmattkc 0463106187 began timeline edit tool 2020-01-03 21:17:51 +11:00
itsmattkc 3a8a509f1a clear frame caches and renderers if the viewer node is ever changed
Clears the state if a viewer node is disconnected.
2020-01-03 21:17:20 +11:00
itsmattkc 3369bb53f9 implement double clicking a sequence in the project explorer to open it 2020-01-03 21:14:27 +11:00
itsmattkc e671fb63b7 always close pull audio device when we're doing with it 2020-01-03 21:11:47 +11:00
itsmattkc 55135114b9 fixed that would erroneously pass a zero integer instead of null value 2020-01-03 18:19:01 +11:00
itsmattkc ef91f81e0f implemented cursors in the timeline
Note: this does not use the cursor SVGs in app/ui/cursors since I was never
really satisfied with them. They're kept for posterity for the time being.
2020-01-03 17:58:07 +11:00
itsmattkc 7f796bd99f revised video renderer's invalidate cache to use ranges rather than discrete
frames

Previously, when the video renderer received a dirty cache signal, it would
proceed to extract all frames from the range and queue them. However, this could
be extremely slow for long ranges since it had to iterate through the entire
range and calculate the individual frames it contained. Now, we use the same
range combining system as audio and automatically calculate the next frame
within the range only when necessary. Essentially the same work, but split up
over time and done only when needed leading to no discernible UI pause when
invalidating cache.
2020-01-03 15:50:43 +11:00
itsmattkc db146b376a implemented core UI caching feedback functionality
Not a perfect implementation yet, but this shows UI feedback on what frames are
cached and which ones aren't.
2020-01-03 05:38:20 +11:00
itsmattkc df837efbc6 merged timeline and viewer nodes together 2020-01-03 03:26:00 +11:00
itsmattkc f13f5b5fdb fixes memory leak in AudioManager
Ensures a thread that gets created gets deleted when it's done.
2020-01-03 02:44:33 +11:00
itsmattkc 02a790b041 simple file renames to better represent their new purposes 2020-01-03 02:36:30 +11:00
itsmattkc 0ac202078c rewrite of audio output manager for vastly improved operation
Previously the audio output manager was a "hybrid device" that acted as a pull
device for audio devices and as a push device and device proxy for the rest of
the application. This approach turned out to be flawed, particularly in the
frequent opening and closing of the audio device (extremely slow). Since we
use both pulling (for constant playback) and pushing (audio scrubbing, short
bursts of sound), it needed a similar but different approach. This approach
will switch the output device from push mode (default) to pull mode (during
playback) only when necessary resulting in far less UI lag (basically
unnoticeable now) than the previous approach.
2020-01-03 02:33:11 +11:00
itsmattkc 8ec63abc74 moved audio output manager and device to separate thread 2020-01-03 00:32:23 +11:00
itsmattkc 7d0d73bcfe use signal/slot threading for the audio refresh thread instead of subclassing QThread 2020-01-02 22:02:48 +11:00
itsmattkc 31af04fc6c minor render pipeline improvements
Simple flow improvements of the rendering pipeline for efficiency and
reliability.
2020-01-02 06:01:23 +11:00
itsmattkc f8839e74de ensure texture is not copied in one thread while it's read in another
This seems to cause issues in the rendering pipeline, so this commit never lets
a texture copy and read occur at the same time.
2020-01-02 06:00:21 +11:00
itsmattkc 7eae6a85f8 fixed bug that wouldn't clear TrackViewItems when a new sequence was opened 2020-01-02 05:59:37 +11:00
itsmattkc 8b2514c1de implemented automatically switching to the hand tool when middle clicking on
all TimelineViewBase derivatives
2020-01-02 05:44:40 +11:00
itsmattkc dd77ea46a5 nodeinput: remove unused bool member 2020-01-02 05:04:46 +11:00
itsmattkc fd2d0f941c block: add access functions to primary block inputs (length/media in+out) 2020-01-02 05:04:10 +11:00
itsmattkc bfb111a2b0 timelinewidget: don't include gaps in the rubberband selection and clean tracks
after deleting clips from them
2020-01-02 05:03:36 +11:00