Commit Graph
738 Commits
Author SHA1 Message Date
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