itsmattkc
c80f72481d
viewer: shortened re-cache wait interval
2020-06-12 03:31:49 +10:00
itsmattkc
dd7af0e6bd
nodes: minor overhaul to functionality
...
The nodes now have more control over how their accelerated shaders/sample
functions are run, as well as how items are popped off the value tables.
This allows for various optimizations that we didn't have access to before.
2020-06-12 00:54:15 +10:00
itsmattkc
23d92df3c8
nodeviewitem: don't expand if control is held during the double click
2020-06-11 21:27:18 +10:00
itsmattkc
aa11fd2d04
viewer: cancel all render tickets when displaying a null texture
...
Fixes a race condition if a frame is requested shortly before moving to
the end of the timeline.
2020-06-11 21:26:49 +10:00
itsmattkc
a9a13c4b0c
framehashcache: remove code for saving integer-based frames to cache
...
Since we don't allow non-float cached frames now, there's no need to have
this code complicating the codebase.
2020-06-10 14:12:26 +10:00
itsmattkc
71ec148e76
renderer: moved all shader code into one solidified function
...
Makes texture-based optimizations easier when they're all in one place.
2020-06-10 01:54:02 +10:00
itsmattkc
494609410b
timeline: when trimming, removing adjacent if its length is reduced to zero
2020-06-09 15:38:47 +10:00
itsmattkc
43513a2b3c
Merge branch 'master' of https://github.com/olive-editor/olive
2020-06-09 13:56:34 +10:00
itsmattkc
4b311ea3bf
projectexplorer: added unused attribute to parameter that should be used later
...
Fixes another GCC build issue.
2020-06-09 13:53:51 +10:00
itsmattkc
0f301cfdcc
manageddisplaywidget: show colorspaces as well as DVL
2020-06-09 13:53:20 +10:00
itsmattkc
a18d523b51
projectexplorer: appropriately renamed "proxy" to "pre-cache"
2020-06-09 02:37:11 +10:00
itsmattkc
52ca18d5e1
viewer: moved cached frame loading code so that more classes have access to it
2020-06-09 02:35:13 +10:00
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
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
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
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
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
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
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
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
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
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
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
itsmattkc
4bf12b67a8
timeline: heavily optimized audio waveform
...
Only displays waveforms (and sections of waveforms) that are actually
visible in the viewport.
2020-05-30 17:47:20 +10:00
itsmattkc
4eb539b011
timebasedwidget: fixed regression that stuck "toggleshowall" in one state forever
2020-05-30 17:46:42 +10:00
itsmattkc
c1ed84b90e
viewer: receive audio invalidation signal
...
Invalidates and runs cache task correctly even if there are no video
nodes connected.
2020-05-30 02:50:30 +10:00
itsmattkc
8299acf547
timebasedwidget: restore scroll when using "toggle show all"
...
"Toggle Show All" would restore only the scale. Now it sets/restores the
scroll as well.
2020-05-30 02:49:25 +10:00
itsmattkc
957e877b95
elapsed/remaining timer: increase default spacing between times
2020-05-30 02:05:11 +10:00
itsmattkc
0874c361ba
Merge branch 'cacheondemand' of https://github.com/olive-editor/olive.git into cacheondemand
2020-05-27 04:29:20 +10:00
itsmattkc
55cfae784b
viewer: set automatic divider on connection
...
Probably not a permanent solution, but will aid performance for the
time-being.
2020-05-27 04:28:57 +10:00
itsmattkc
e065885d78
timelineview: added backwards compatibility for qt < 5.12
2020-05-27 04:26:37 +10:00
itsmattkc
14ac1ada6e
various: adding files missing in last commit
...
Oddly some files didn't commit previously. This commit adds those.
2020-05-27 03:24:37 +10:00
itsmattkc
3e3cacbc85
various: update Qt code deprecated in 5.15
...
- Replaces QLinkedList with std::list as recommended by Qt docs.
- Replaces QWheelEvent::delta() with QWheelEvent::angleDelta(). This
should also benefit trackpad behavior.
2020-05-27 02:54:05 +10:00
itsmattkc
c907114b17
renderer: optimizing and fixing code paths
...
Re-introducing some old concepts for the new structure.
2020-05-26 22:40:54 +10:00
itsmattkc
9c59691295
timeline: blocked more unnecessary graph invalidations
2020-05-25 22:11:47 +10:00
itsmattkc
564cb29cc7
audiomonitor: fixed playback speed
...
Audio monitor used to ignore playback speed leading to inaccurate display if the
playback was not 1x forwards.
2020-05-25 14:12:41 +10:00
itsmattkc
85a7cae3ee
cache: improved cache behavior when updating values or render parameters
2020-05-25 03:04:03 +10:00
itsmattkc
5ae0a9f74f
footageviewer: set viewer node's media name to footage name
...
Minor UI improvement. The viewer's media name is shown in the cache task
header.
2020-05-24 18:12:08 +10:00
itsmattkc
efdf56acf8
cache: improved code pathways for cache
...
Viewers are now more aware of each other and can pause each others' cache tasks
when one of them plays, as well as wait for other viewers' cache tasks to
finish before starting their own.
2020-05-24 18:10:38 +10:00
itsmattkc
4f21a930dd
tasks: added elapsed/remaining time displays for all tasks
2020-05-24 18:10:08 +10:00