Commit Graph
120 Commits
Author SHA1 Message Date
itsmattkc 3a1c9233b9 renderer: clear texture upon creation 2021-09-29 02:41:37 -07:00
itsmattkc 8f4095019a renderer: added null check to fix crash 2021-09-22 18:30:09 -07:00
itsmattkc 04945ff4ff renderer: fixed crash 2021-09-22 18:24:45 -07:00
itsmattkc 677277c16d renderer: improved code flow 2021-09-21 19:10:03 -07:00
itsmattkc 0df7012c9e rewrote hashing 2021-09-20 21:14:15 -07:00
itsmattkc 7ba5dca4ab renderer: always hash along edges 2021-09-19 23:11:20 -07:00
itsmattkc 67c7c71ca2 implemented "value hints" for choosing output values to use 2021-09-17 20:56:53 -07:00
itsmattkc b07bccb7dc nodes: revert to single output 2021-09-07 22:01:36 -07:00
itsmattkc a0706a78d8 nodes: implemented core of manual table value selection 2021-09-07 15:27:07 -07:00
itsmattkc be4a18d7de moved visual waveforms to block
This should be nicer, however it has a bug that I need to fix
2021-08-01 16:43:53 -07:00
itsmattkc 6995ffe015 reworked timeline elements 2021-08-01 11:05:18 -07:00
itsmattkc c127bebae4 renderer/viewer: more flexibility regarding alpha association 2021-07-23 17:08:42 -07:00
itsmattkc 08e2fa4d8e renderer: generate audio waveforms in render threads
Solves UI lag issues with long audio sequences.
2021-06-11 23:30:55 -07:00
itsmattkc ae3393f031 opengl: use shared contexts and downgrade to ES 2.0 (BIG CHANGE)
If you run into new OpenGL issues, this is likely the commit that caused it.
I've tested this on as many systems as I have access to (including AMD, Apple,
Intel, and NVIDIA GPUs with a mixture of Windows, Linux, and macOS) and it
appears to work fine, however we all know how unpredictable GPUs can be.
This should help increase GPU performance and compatibility.

Squashed commit of the following:

commit fa3c0ac7c469aebe2941a803736bdc06cdd5a2d8
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Thu May 27 13:17:44 2021 +1000

    viewer: updated pixel sampling for shared contexts

commit 9334261da235f09cb67b193c5bb6169abd7a95f7
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Thu May 27 13:12:39 2021 +1000

    pixelsampler: show color preview box

commit dacd9be6971c5c0312ae45c8db349d47910a80dd
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Thu May 27 12:43:32 2021 +1000

    renderer: interlace on GPU

commit 074cea06cb87e9fdc4e8ea6b09587be6df296057
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Thu May 27 12:43:14 2021 +1000

    renderer: added texture clear option

commit 5d4f86b4cf1b1dcd3fb8e8c854ffa7f6fb8ca346
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Thu May 27 12:42:12 2021 +1000

    renderer: updated scopes for shared textures

commit 6fad96358d189874cf45f7887b7e13cc2b1603c4
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Thu May 27 11:42:05 2021 +1000

    opengl: fixed edge case

commit 1a19ffb53703ac6f30ed210f6d8eb5fc4b7b0f2d
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Thu May 27 10:56:13 2021 +1000

    opengl: fix deinterlace shader

commit 085961aa39cca90ebf51b919a78ef07a4882f0e1
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Thu May 27 10:08:40 2021 +1000

    opengl: downgrade to ES 2.0

    With half-float/float/3D extensions, this should be doable

commit ea1ab45cbcf5e017dfd0d8f28b231ff3255dfe92
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Thu May 27 10:06:59 2021 +1000

    renderer: fixed mutex deadlock

commit ecc2f08b16f03421870c5b61625ecd26f2f96582
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Wed May 26 21:28:13 2021 +1000

    opengl: fixed shared contexts

commit 261c689ea8089463155cf11b9ab15aa3f879f439
Merge: bfd4338a 91c88b1c
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Wed May 26 19:52:00 2021 +1000

    Merge branch 'master' into shared-contexts

commit bfd4338aaa3b09b6fbb7717c637face8d5490721
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Wed May 26 18:52:38 2021 +1000

    viewer: remove debug line

commit 45868d8a396181bf81c24b92a1ac5ce9ffed3426
Merge: 642f8e9d d0bd5e21
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Wed May 26 17:21:48 2021 +1000

    Merge branch 'master' into shared-contexts

commit 642f8e9df7d7d1a9ed4202d428f4d968ff668552
Merge: 861e5b89 4de0a727
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Wed May 26 17:01:38 2021 +1000

    Merge branch 'master' of https://github.com/olive-editor/olive into shared-contexts

commit 861e5b89a38c281897dc44b20e3587d39c4f808c
Merge: 472598a7 ef31c3fb
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Wed May 26 14:28:21 2021 +1000

    Merge branch 'master' into shared-contexts

commit 472598a740a095aa43a4aad5680dd5abcf453a4c
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Fri May 14 16:29:35 2021 +1000

    attempt at sharing contexts
2021-05-29 20:02:45 +10:00
itsmattkc a5d3c6f2f5 renderer: this should actually just be less than 2021-05-26 17:02:57 +10:00
itsmattkc ba9ed99849 footage: check files for changes 2021-05-16 10:29:05 +10:00
itsmattkc a1345166c7 renderer: move conform to task
Improved rendering system and user interface

Fixes #1375
2021-05-14 12:20:53 +10:00
itsmattkc eb0cbea108 improved interlacing 2021-05-03 22:08:05 +10:00
itsmattkc ee6b09f772 ffmpegdecoder: use avfilter system instead of raw swscale commands
Heh this was inevitable
2021-05-03 12:10:51 +10:00
itsmattkc 04a8a7aaa7 renderprocessor: use <= when choosing divider for footage
In some scenarios, will result in higher quality cache previews
2021-04-29 11:27:33 +10:00
itsmattkc cd1d75c6fb removed unnecessary debug lines 2021-04-27 10:08:13 +10:00
itsmattkc ff838d23d5 renderprocessor: removed unnecessary line 2021-04-27 00:56:41 +10:00
itsmattkc fcb344bd4e render: improved threading stability 2021-04-24 18:21:33 +10:00
itsmattkc 1fca3e1767 render: properly defined "out of bounds time" behavior with footage
If a user extends a clip beyond the footage's length, they can
choose whether they want a black frame, the last frame continued,
or for the footage to loop infinitely (same for extending earlier
than the start of footage).
2021-04-23 14:49:21 +10:00
itsmattkc 445d276cd0 nodes: further optimized merge node to passthrough RGB blend textures 2021-04-23 11:01:08 +10:00
itsmattkc 74ad4110be transform: hash the generated matrix
Making an exception for the transform node, we use a slightly
heavier hash to save more rendering time later.

Fixes #1560
Addresses some of #1360
2021-04-22 18:01:26 +10:00
itsmattkc 97b9bcc79f nodes: merged gizmotraverser and nodetabletraverser into nodetraverser
No real reason for these other derivatives that did virtually
the same thing.
2021-04-22 12:52:10 +10:00
itsmattkc 77d4b18a60 updated copyright year for 2021 [skip ci] 2021-04-17 18:56:50 +10:00
itsmattkc 157da658a5 renderer: prevent cache saving/loading with empty path 2021-04-13 15:53:33 +10:00
itsmattkc 63c41146c7 renderer: disable mid-render cache when rendering audio
Fixes #1563
2021-04-13 10:17:37 +10:00
itsmattkc 6d0e188393 renderer: don't process video footage if rendering audio
Fixes #1530
2021-04-12 15:28:33 +10:00
itsmattkc 7701e9331f block: reimplemented reversing 2021-04-12 11:05:45 +10:00
itsmattkc da9cdbd29e block: disable connecting and keyframing speed parameter
We're going to replace keyframing this with a time remap node
because that will be much simpler to implement.

Fixes #1192.
Fixes #1204.
2021-04-12 10:35:02 +10:00
itsmattkc 6c30f8cf46 nodes: implemented infrastructure for caching any node
Not accessible through UI yet, but ported Footage node to it
(previously we used a hack to ensure Footage textures were
cached, now it's a formal infrastructure).
2021-04-11 18:56:39 +10:00
itsmattkc cb75e37e77 moved several files around
Mostly moved classes that became node derivatives into the node/ folder.
2021-04-08 12:15:59 +10:00
itsmattkc bb32048c65 use frame rate and timebase less interchangeably 2021-04-07 13:08:25 +10:00
itsmattkc 898ea25e89 finished merge of viewer and footage 2021-04-06 13:08:56 +10:00
itsmattkc 9be014c0b6 refactored so sequence is again a derivative of viewer 2021-04-05 14:41:59 +10:00
itsmattkc fb410e7c96 use vectors for sample buffers rather than raw ptr arrays 2021-03-17 11:54:14 +11:00
itsmattkc 4827782331 moved sequence params into node graph too
Reduces code by reusing more of the existing node infrastructure
to synchronize sequence parameters the render backend.
2021-02-18 13:20:23 +11:00
itsmattkc d7c5ac4b44 implement entire project in nodes
Project items are now represented directly in nodes opening up more versatility and possibilities. This is the first iteration of this and will be buggy. Need to test thoroughly.
2021-02-15 21:31:57 +11:00
itsmattkc 81c1922911 use strings to connect nodes
This makes the node system somewhat more high-level with the intent of making
working with them far more flexible and stable. By making the architecture more
abstracted, it becomes far less rigid which should allow us to do even more
with it and make it much less crash prone.
2021-02-09 15:48:37 +11:00
itsmattkc b83677e319 moved input signals to graph to prevent signal desyncs 2021-01-14 10:32:42 +11:00
itsmattkc f7883bd02c began some rewrites to timeline drawing 2021-01-14 10:30:20 +11:00
itsmattkc 8f729203fc some timeline refactoring, preparing for rewrites 2021-01-09 11:41:33 +11:00
itsmattkc 3337be07e5 use QVector instead of QList for block cache 2021-01-09 10:41:13 +11:00
itsmattkc 181235f6ce began new infrastructure
Yep, this is another one of my "famous" sweeping rewrites. Expect things to break.

Goals for this are:
- Greatly simplify node connections (particularly with arrays) so the code requires less maintenance/is more stable
- Redesign node structure to address issues where UI would stall for lengthy periods of time
- Less reliance on shared ptrs/greater reliance on QObject system for inheritance/memory management
- General code cleanup and improvements
2021-01-05 11:20:38 +11:00
itsmattkc 6cb6407bd8 don't use shared ptrs on streams 2020-12-16 13:46:19 +11:00
itsmattkc c9323b9731 renderer: added another cancelled check 2020-11-29 12:17:42 +11:00
itsmattkc 720acb8f77 renderer: fixed shadowed property
Fixes issue where waveforms would only appear on one track
2020-11-29 10:20:10 +11:00