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
itsmattkc
3492b72e05
pointer tool: only clean up tracks once per operation
2020-01-02 05:02:09 +11:00
itsmattkc
104415a4de
razor tool: only push an undocommand if blocks were actually detected to split
2020-01-02 05:01:39 +11:00
itsmattkc
ae71b206cd
updated timeline tools to allow rounding as well as flooring to find the frame
...
at the mouse cursor point
2020-01-02 04:11:50 +11:00
itsmattkc
e8fddc2d5b
improved renderer reliability
...
The renderer backend can now distinguish between jobs. Previously if two jobs
of the same frame were started (which is legal if the user made a change while
frames were still being rendered), an earlier job in some situations could
finish AFTER a later job, and the backend would have no way of distinguishing
between them. This meant a frame could be erroneously set to an old value
rather than the newest. This commit introduces job identification so that old
jobs are automatically discarded.
2020-01-02 03:21:38 +11:00
itsmattkc
62e94ca2cb
improved a number of pointer tool functions and fixed a number of bugs
2020-01-02 01:30:43 +11:00