itsmattkc
9095dfa463
project: replaced proxy with pre-cache
...
Removed proxy task and replaced with a true honest-to-god pre-cache for
footage. This footage is pre-cached to a sequence and therefore 100% ready
for use in it once the task is done.
2020-06-08 23:17:51 +10:00
itsmattkc
50b4c1e456
sequence: rather than a static divider in config, default to a heuristically generated one
2020-06-08 15:18:01 +10:00
itsmattkc
430561e2ac
sequence: made divider a sequence parameter rather than a viewer parameter
...
Doing this makes the preview resolution an explicit project setting rather
than a temporary UI setting. This will allow more consistency when caching.
2020-06-08 14:41:35 +10:00
itsmattkc
ee3fa529cb
audiovisualwaveform: reinterpret cast to char*
...
Bypasses GCC warning about qfloat16's constructor.
2020-06-08 04:03:24 +10:00
itsmattkc
532af463f0
sequencedialog: extended sequence dialog to include presets
...
Also includes the ability to make custom presets which negates the need for
setting default sequence parameters in preferences.
2020-06-08 03:12:54 +10:00
itsmattkc
b9de8ea035
rendertask: include audio in progress signal
2020-06-06 18:24:28 +10:00
itsmattkc
be784591fc
timeline: optimized pointer tool ctrl+drop
2020-06-06 17:50:23 +10:00
itsmattkc
aaee2ab9ed
timeline: vastly improved snapping
2020-06-06 13:59:49 +10:00
itsmattkc
5055c136b6
renderer: clear graph update queue when disconnecting a viewer
2020-06-06 01:02:03 +10:00
itsmattkc
550d30ed8f
viewer: rewrote playback code for stability
...
The viewer playback used to rely primarily on the vsync, which was
extremely smooth, but had issues when there was only audio or the viewer
was hidden. This was bodged by attaching to the audio in these scenarios,
but still not perfect.
Now we run a timer in tandem with vsync for the best of both worlds.
Playback is no longer wholly reliant on vsync, yet the viewer can remain
as smooth as possible using vsync.
2020-06-06 00:20:06 +10:00
itsmattkc
bad039e7a9
playbackcache: don't invalidate if the cache has no length
...
Prevents zero-length invalidations.
2020-06-05 17:21:46 +10:00
itsmattkc
593316876f
track: save and load track heights to and from project files
2020-06-05 16:12:00 +10:00
itsmattkc
4a8d557c59
various: removed unused debug lines
2020-06-05 16:11:49 +10:00
itsmattkc
242994c736
rendertask: initialize nb_frames
...
The code path doesn't ever use this value uninitialized, but GCC is unaware
and still presents a warning.
2020-06-05 15:53:07 +10:00
itsmattkc
33e3225c89
audioplaybackcache: use std::rand instead of QRandomGenerator
...
Improves support for versions of Qt < 5.10.
2020-06-05 15:47:00 +10:00
itsmattkc
7609754103
playbackcache: more intelligent job matching
...
Ensures audio ranges can be anticipated and accurately ignored if they're
old or acknowledged if they're current.
2020-06-05 15:23:16 +10:00
itsmattkc
b143b39869
track: provide control over invalidation when setting length
2020-06-05 15:21:11 +10:00
itsmattkc
de3288893d
renderer: move waveform generation into worker and mutex the waveform
...
Addresses scheduling issues where a backend might be closed (or even
destroyed) before it processes a waveform signal from a worker. Requires
extra multithreading code.
2020-06-05 15:18:14 +10:00
itsmattkc
ddf63b39e1
viewer: don't invalidated zero-length ranges
...
A zero-length range doesn't represent any amount of time and has no need
to actually invalidate anything.
2020-06-05 15:15:59 +10:00
itsmattkc
a29de7cea0
audiovisualwaveform: allow only partial sum overwrite
2020-06-05 15:02:44 +10:00
itsmattkc
5ce508a1da
timerange: fixed issue that broke removing timeranges from a timerangelist
2020-06-05 14:43:18 +10:00
itsmattkc
2fd897c380
viewer: keep track of viewer length
...
Useful for determining if the view should be updated from a length change.
2020-06-05 04:31:44 +10:00
itsmattkc
8051a42fcc
timerange: added some helper functions for comparing timeranges and rationals
2020-06-05 04:30:59 +10:00
itsmattkc
cb0d89c09e
rational: print double rather than rational to debug
...
Doubles are mostly used here anyway.
2020-06-05 04:30:39 +10:00
itsmattkc
5eeef76b62
waveform: shift track waveform alongside cache
2020-06-04 23:32:50 +10:00
itsmattkc
0e87762afa
waveforms: moved waveform to track rather than block
...
This is a much more robust and thread-safe system of storing the waveforms.
2020-06-04 18:03:21 +10:00
itsmattkc
9ff9817b95
cache: use render job times to synchronize cache
...
Ensure old inaccurate jobs are never prioritized over current jobs.
2020-06-04 16:48:23 +10:00
itsmattkc
cc34f0e251
viewer: ensure view is updated if the cache is shifted
...
Also moves "ForceUpdate" to a queued connection so it occurs as soon as
the rest of the processing is done. This ensures the viewer isn't updated
too early.
2020-06-03 03:49:39 +10:00
itsmattkc
12be8f72f1
node: disconnect all parameters before destroying them
...
Fixes a common segfault where destroying a node may ripple a disconnect
signal up the graph and trigger something to try to access its
(now-destroyed) parameters.
2020-06-03 03:40:31 +10:00
itsmattkc
fb5c06db50
audiooutputmanager: use deleteLater instead of delete
...
Ensures destructor is run in its own thread.
2020-06-03 03:39:02 +10:00
itsmattkc
e30d278327
playbackcache: made thread-safe
...
Since this class is regularly accessed by multiple threads, it makes the
most sense to make all of its functions thread-safe.
2020-06-03 03:38:28 +10:00
itsmattkc
08eb12710c
audiovisualwaveform: ignore OverwriteSums if input data is empty
...
Prevents potential index out of bounds error.
2020-06-03 03:37:46 +10:00
itsmattkc
f2050a0342
timeline: optimized rippling workarea, rippling to in/out, and the ripple tool
...
Use cache shift functionality introduced in previous commit to optimize
timeline usage.
2020-06-02 04:24:12 +10:00
itsmattkc
11bfe61208
cache: began base implementation of "shifting" the cache
...
Should be a fairly important optimization to make.
2020-06-02 01:38:12 +10:00
itsmattkc
6acfe995fa
timerange: use doubles instead of rationals when printing debug info
...
Doubles are infinitely more readable and have been the vast majority of
debug printing cases thus far.
2020-06-01 17:45:21 +10:00
itsmattkc
1301d4b9cf
rational: use true min/max values for extended range
...
Will address issues caused by comparisons to our MIN/MAX constants when
a numerator/denominator is > INT32_MAX/MIN.
2020-06-01 17:44:42 +10:00
itsmattkc
644fb7cec8
block: fixed buggy cache invalidation behavior when resizing blocks
2020-06-01 17:39:08 +10:00
itsmattkc
001b7179c5
timeline: cleaned up pointer tool derivatives and fixed bug introduced by earlier behavior improvement
2020-06-01 17:38:24 +10:00
itsmattkc
1fce380cc6
timeline: automate waveform resizing
...
Now each UndoCommand won't have to handle it (unless it can introduce
specific optimizations).
2020-06-01 14:54:14 +10:00
itsmattkc
a62960ecc0
track: block length changed signals until the cache can be invalidated
...
Optimization, prevents unnecessary processing.
2020-06-01 13:08:08 +10:00
itsmattkc
8eac4fd123
footageviewer: fix some behavior issues
...
- Caches timestamps of different footage so they're restored when each is
reopened.
- Set default sequence values if true parameters aren't available.
2020-06-01 04:49:13 +10:00
itsmattkc
2e85197f6e
viewer: round divider rather than ceil it
...
Improves default divider.
2020-06-01 04:46:43 +10:00
itsmattkc
dc57e8cffe
timelineworkarea: initialize enabled value to false
...
I'm honestly surprised we made it this far without this being a problem.
2020-06-01 04:46:10 +10:00
itsmattkc
017271b909
cachetask: write silence if no samples are returned
...
Fixes segfault trying to access a null sample buffer.
2020-06-01 04:45:45 +10:00
itsmattkc
0424768f02
renderer: use deleteLater on nodes instead of delete
...
Fixes warning about node signals unable to fire in another thread.
2020-06-01 04:43:35 +10:00
itsmattkc
c2e47a296c
timeline: heavily optimized and improved nearly all timeline optimizations
...
Features a lot of timeline-related cache optimizations as well as general
optimizations and improvements in timeline behavior. Should improve
usability significantly.
2020-06-01 04:42:59 +10:00
itsmattkc
93f8b4f79c
timeline: removed debug line
2020-05-31 01:21:49 +10:00
itsmattkc
acee6c5958
timeline: reworked ripple/edit to behavior and documented some track behavior
2020-05-31 01:21:08 +10:00
itsmattkc
187c6c6108
timeline: fixed ripple to in/out bugs
...
Fixed issues that caused undesirable behavior with this function.
2020-05-30 23:13:38 +10:00
itsmattkc
b9ba66632c
timebasedwidge: fixed typo in comment
2020-05-30 23:05:51 +10:00