Commit Graph
435 Commits
Author SHA1 Message Date
itsmattkc 23365074f0 samplebuffer: fixed segfault when changing speed 2020-06-12 14:53:27 +10:00
itsmattkc 955d4ce910 opengl: clear ping-pong texture before blitting to it 2020-06-12 03:44:43 +10:00
itsmattkc e547d5b116 audioparams: removed debug message
Not really necessary now. Specific situations can always print debug info
if the params are invalid.
2020-06-12 03:32:27 +10:00
itsmattkc e2e8a6859c renderer: updated audio to work with minor node overhaul 2020-06-12 03:28:43 +10:00
itsmattkc bad60fc5f0 audioplaybackcache: no-op if params are invalid 2020-06-12 03:26:34 +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 663cf4a020 pixelformat: added convenience functions for determining the format equivalent with and without an alpha channel 2020-06-11 21:27:42 +10:00
itsmattkc ccf5d4cece audiovisualwaveform: detect if the start index exceeds the buffer sample count
Fixes segfault.
2020-06-11 21:24:50 +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 0f301cfdcc manageddisplaywidget: show colorspaces as well as DVL 2020-06-09 13:53:20 +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 2fc1ccebf7 openglproxy: implemented extra function for loading pre-cached frames into textures 2020-06-09 02:35:41 +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 5055c136b6 renderer: clear graph update queue when disconnecting a viewer 2020-06-06 01:02:03 +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 4a8d557c59 various: removed unused debug lines 2020-06-05 16:11:49 +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 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 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 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 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 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 bc5068afa1 audiocache: ensure cached ranges are actually marked as validated
For some reason, the audio cache never validated itself leading to an
endless loop of trying to re-render it. This is fixed now.
2020-05-30 15:20:14 +10:00
itsmattkc a0dec75f2b renderer: ensure offscreen surface is created in main thread
Fixes render crash on some platforms.
2020-05-27 04:05:01 +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 85a7cae3ee cache: improved cache behavior when updating values or render parameters 2020-05-25 03:04:03 +10:00
itsmattkc bc2dd87719 cache: added convenience function to determine if any ranges are invalid 2020-05-24 18:12:43 +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 a26a3cbf21 renderworker: improved update queue handling and reduced memory usage 2020-05-23 02:34:28 +10:00
itsmattkc 5212a6032a renderbackend: initialize queuer value
Leaving uninitialized could potentially cause issues.
2020-05-21 21:45:12 +10:00
itsmattkc 34fade9d81 cache: attempt to automatically re-match hashes on invalidate
This code is slow and unoptimized. Will require some more work.
2020-05-21 16:49:02 +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 b9cd83eff1 task: massively simplified task system
Made various changes and fixes to the task system:

- Tasks are built around QtConcurrent rather than QThread. Reduces
  code complexity significantly.
- Task error reporting is now streamlined in both TaskManager and
  TaskDialog.
- Moved ProjectImport/Save/LoadManager to the app/task folder
2020-05-19 02:44:32 +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 127ebbe359 Merge branch 'master' into cacheondemandtake1 2020-05-18 13:46:35 +10:00
itsmattkc 3518a10230 opengl: added another bilt override for custom coordinates and mode 2020-05-18 13:41:11 +10:00