itsmattkc
01428276f7
export: alternate method of checking video/audio parameters based on ticket type
...
Fixes #1196
2020-09-18 13:06:10 +10:00
itsmattkc
43d0129004
renderer: unqueue deleted node inputs
...
Fixes segfault when renderer tries to update from a since deleted node
input.
2020-09-05 19:49:34 +10:00
itsmattkc
cabcd49b25
renderer: copy cache path before render to avoid race conditions
2020-09-05 18:48:54 +10:00
itsmattkc
f86ab6a965
renderer: prevent infinite loop occurring on some time invalidations
2020-08-26 17:38:16 +10:00
itsmattkc
f6760386ce
renderer: improved handling of pixel aspect ratio and footage cache
2020-08-21 14:43:13 +10:00
itsmattkc
b3e30b8daf
renderer: clear auto-cache tasks when disconnecting viewer node
...
Fixes segfault that could occur when switching sequences.
2020-08-16 16:50:23 +10:00
itsmattkc
e21b68be53
renderer: queue hash setting from another thread
...
Fixes race condition that caused many segfaults.
2020-08-10 02:09:24 +10:00
itsmattkc
df14c2aaa7
cache: better implemented changing disk cache folders
...
Not complete yet, but getting there.
2020-08-07 02:31:46 +10:00
itsmattkc
d5dce29b22
cache: merged cachetask and footagecache into one precache task
...
Since the actual auto-cache now happens elsewhere, this cleans up a lot of
dead code.
2020-08-05 23:45:18 +10:00
itsmattkc
07a53d45f0
renderer: updated audio waveform generated for new cache overhaul
2020-08-05 22:32:24 +10:00
itsmattkc
c8def73b95
cache: mild auto-cache overhaul
...
Shifted from CacheTask to functionality built into RenderBackend. It was
a lot easier to control behavior this way without having to juggle a ton
of threads and race conditions.
Could likely be multithreaded further.
2020-08-05 02:19:04 +10:00
itsmattkc
867e3729f4
renderer: check array parents/children when traversing the graph for duplicates
...
Fixes bug where nodes would be updated out of order and segfault if they
no longer existed.
2020-07-23 18:45:59 +10:00
itsmattkc
70b21d6c2a
renderer: always prioritize array parent over children
...
Fixes common segfault.
2020-07-19 12:03:31 +10:00
itsmattkc
cabf581a20
code: fixed typo
...
Not sure how this got here but ok
2020-07-10 18:45:45 +10:00
itsmattkc
efd90d5c8f
renderer: use shared backend when caching
...
I think there was an earlier commit with a similar name but turns out
I'd only done foundational work in that commit and never actually
properly set it up. Of course once I did, there were several issues that
needed fixing to make it work correctly, but now it works as expected.
Heavily optimizes larger projects by allowing cache jobs to only copy
what has changed.
2020-07-10 18:39:47 +10:00
itsmattkc
919314cce8
renderer: improve thread safety
...
Since we share render backends between the viewer and cache tasks now, we
should ensure the render backend is thread safe.
2020-07-07 13:16:25 +10:00
itsmattkc
a45f514f68
renderer: share render backend for auto-cache tasks
...
Since auto-cache events start and stop fairly frequently (and are somewhat
heavy to create/destroy), we can save a lot of cycles over time by sharing
the same backend between them all.
2020-07-06 14:22:17 +10:00
itsmattkc
65ccac1dfe
renderer: fixed bug that would render frames even after hash matching
...
Also enables the -Wshadow GCC warning to warn against the code bug that
caused this issue (and has caused other issues like it in the past).
2020-06-19 20:25:05 +10:00
itsmattkc
66b63535a3
renderer: null check before hashing
...
Fixes segfault.
2020-06-16 15:16:52 +10:00
itsmattkc
f70f266ca0
render: queue audio alongside video
...
Previously, audio was all queued first and would therefore all have to
finish before any video frames could start caching. No longer! Now they're
queued side by side so users won't have to wait for audio to finish before
their cached frames come in.
2020-06-16 03:49:12 +10:00
itsmattkc
2e3072623a
renderer: use qvectors instead of qlists
...
Should be much more efficient for large-scale projects.
2020-06-16 02:45:16 +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
e10b1462ff
renderbackend: moved bulk of hashing code to static function so more code has access to it
2020-06-09 02:36:11 +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
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
5055c136b6
renderer: clear graph update queue when disconnecting a viewer
2020-06-06 01:02:03 +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
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
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
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
0c7b3e1761
cache: streamlined audio into cache task
...
Since we always cache audio, it makes sense to lump it into the same auto-cache
task we use for everything else.
2020-05-27 00:09:09 +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
89ae6e026f
cache: reimplemented auto-caching
...
Implemented a smarter auto-cache that's context sensitive. Caching will
automatically pause when playback begins or values are being changed and resume
when inactive.
2020-05-24 15:20:35 +10:00
itsmattkc
5212a6032a
renderbackend: initialize queuer value
...
Leaving uninitialized could potentially cause issues.
2020-05-21 21:45:12 +10:00
itsmattkc
d5766489e4
export: fixed audio exporting with new renderer system
2020-05-21 02:18:52 +10:00
itsmattkc
470bb44d0a
renderbackend: removed unusued dialog
...
This dialog caused a bunch of warnings and was unused in the new renderer
system. It may be used again later, so it's just been commented out, but there's
currently no plan to.
2020-05-20 12:50:59 +10:00
itsmattkc
87e7564222
cache: heavily reworked exporting for new system
...
Also cleans up cache in general and moves it to the Task infrastructure.
2020-05-19 23:35:17 +10:00
itsmattkc
c4b0a53174
cache: render audio in chunks so they can be multithreaded
2020-05-18 22:52:31 +10:00
itsmattkc
558773538d
cache: fixed audio with new system
2020-05-18 17:16:28 +10:00
itsmattkc
b74ea1a8ba
renderer: reimported audio rendering functions
2020-05-18 12:52:25 +10:00
itsmattkc
814bbe8c22
fixed various segfaults in decoder and renderer
2020-05-18 02:40:58 +10:00
itsmattkc
2039067fdc
renderer/viewer: fixed playback and live updates from value changes
2020-05-15 15:02:30 +10:00
itsmattkc
8795e51452
renderer: massive overhaul to move to a vastly simplified threading system
2020-05-15 00:52:45 +10:00
itsmattkc
ef6aa18fe1
further progress on first attempt
2020-05-14 16:47:01 +10:00
itsmattkc
863ae1b913
a first attempt at a new render system
2020-05-14 14:43:03 +10:00
itsmattkc
c5dfddff0d
renderer: weaved out various unnecessary InvalidateVisible functions
2020-05-13 23:04:15 +10:00
itsmattkc
ce78c168e6
renderer: fix bug where disconnecting a shared node wouldn't update in the renderer
2020-05-13 16:07:08 +10:00
itsmattkc
373eeaeacd
renderer: when invalidating visible, kick the workers into emit mode
2020-05-07 01:29:05 +10:00