itsmattkc
5daf126e8d
completed hybrid index system
2020-01-11 03:45:58 +11:00
itsmattkc
5798349f92
began hybrid indexing system
...
This index system will have awareness of the disk cache state and be able to
fill in and store frames as necessary while keeping the disk cache under
user defined limits.
2020-01-11 03:20:46 +11:00
itsmattkc
3f1326abe5
restored disk cache default limit to a sane number
...
It was temporarily set very low to test its behavior in extreme conditions.
2020-01-11 00:38:53 +11:00
itsmattkc
594b1a2b58
use sample aspect ratio correctly
2020-01-11 00:16:54 +11:00
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