Commit Graph
649 Commits
Author SHA1 Message Date
itsmattkc dce8ebdf01 framehashcache: remove definition for removed function 2021-06-16 17:22:26 -07:00
itsmattkc 33f71d7548 framehashcache: use static const string rather than function
Should be mildly faster
2021-06-16 14:29:43 -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 91c88b1ccf openglrenderer: initialize framebuffer variable as null 2021-05-26 18:07:18 +10:00
itsmattkc a5d3c6f2f5 renderer: this should actually just be less than 2021-05-26 17:02:57 +10:00
itsmattkc b7916b8ae0 removed subtitle encoding functions 2021-05-21 10:51:51 +10:00
itsmattkc cc21ed37a7 implemented core subtitle support 2021-05-18 12:42:47 +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 7d5e778dfa previewautocacher: multithread hash process
Significantly improves hashing speed. Particularly noticeable with longer video sources.
2021-05-14 00:13:04 +10:00
itsmattkc 37915d1c8c framehashcache: improve time list function
Old implementation was particularly slow, this is significantly faster and should be identical in output.
2021-05-14 00:11:20 +10:00
itsmattkc 5fb9793f43 opengl: use texture cache
Prevents a ton of texture allocation/deallocation. Should theoretically improve things, might make no noticeable difference.
2021-05-13 16:38:45 +10:00
itsmattkc 4cfe474861 opengl: wrap uploading to 3D textures
Probably won't ever need this, but it felt appropriate
2021-05-13 16:37:58 +10:00
itsmattkc a5fbcf059e videoparams: compare depth
Seems like a good thing to do
2021-05-13 16:27:17 +10:00
itsmattkc 8383929476 track/audioplaybackcache: re-did binary search algorithms
Fixes #1617
Fixes #1615
2021-05-10 10:42:07 +10:00
itsmattkc febb5b0d25 config: startup option for autocache pause
Makes debugging easier
2021-05-10 10:40:17 +10:00
itsmattkc 964129bb08 viewer: further improvements to auto-cache logic 2021-05-09 18:15:56 +10:00
itsmattkc db237d3bd4 update for openexr 3.x 2021-05-09 17:08:06 +10:00
itsmattkc 4b58d55d90 scope: ensure texture is updated from channel count too
Fixes #1610
2021-05-07 16:26:02 +10:00
itsmattkc fc63be565d cache: add more pixel format options for performance testing 2021-05-05 11:39:09 +10:00
itsmattkc bba23c1589 cache: don't create directories unless necessary 2021-05-05 11:38:27 +10:00
itsmattkc eb0cbea108 improved interlacing 2021-05-03 22:08:05 +10:00
itsmattkc 2484daf141 implemented full support for interlaced footage
Includes importing and exporting interlaced footage. Fixes #1340.
2021-05-03 13:56:54 +10:00
itsmattkc 20b3fe76a8 playbackcache: fixed crash if shift was beyond length 2021-05-03 13:53:39 +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 9d2ddbf727 renderer/decoder: clean up decoders after some time 2021-04-30 11:13:57 +10:00
itsmattkc b82e616124 previewautocache/viewer: improvements to cooperation between cache and viewer 2021-04-30 00:59:51 +10:00
itsmattkc f8d175c2ad previewautocacher: passthrough frames already being rendered 2021-04-29 23:40:53 +10:00
itsmattkc ec27c272e0 viewer: don't prioritize for the queue 2021-04-29 22:25:33 +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 2a1cbc5a25 viewer: fixed crop matrix for export dialog 2021-04-29 00:31:19 +10:00
itsmattkc befb591b06 framemanager: added qmutex header
Some platforms need this it seems
2021-04-28 17:37:28 +10:00
itsmattkc 51ccaedc78 render: implemented frame pool
Optimization
2021-04-28 17:31:25 +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 a3e0c51094 openglrenderer: disable array warning message
It's quite likely the renderer will never support arrays, and that's okay!
2021-04-27 00:55:57 +10:00
Thomas Wilshaw b4670d6cff Revert "audioplaybackcache: optimise writing to PCM"
This reverts commit 59163e8127.
2021-04-25 21:08:28 +01:00
Thomas Wilshaw 7ee6d52651 audioparams: move channel count calculation to its own function 2021-04-25 21:03:35 +01:00
Thomas Wilshaw 59163e8127 audioplaybackcache: optimise writing to PCM 2021-04-24 14:26:07 +01:00
Thomas Wilshaw 8373579009 audioparams: cache channel_count 2021-04-24 13:23:34 +01:00
itsmattkc fcb344bd4e render: improved threading stability 2021-04-24 18:21:33 +10:00
itsmattkc b07e132dbb framehashcache: allow access to frames being saved
Minor optimization and crash fix. If a frame is currently being
saved, it's still technically available in memory and can be
returned faster than loading from EXR. This also prevents
OpenEXR from trying to load a frame that we're midway through
saving.
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 0cd40028d9 openglrenderer: use effective texture size rather than virtual size
Oof, this was an oopsie. This appears to fix the issues on AMD and some Intel
GPUs (the most prominent issues at least).
2021-04-18 00:19:19 +10:00
itsmattkc 77d4b18a60 updated copyright year for 2021 [skip ci] 2021-04-17 18:56:50 +10:00
itsmattkc 22b2d08baf rational: implement NaN mode
Also clarify code where 0 is used as a rational.
2021-04-17 15:04:03 +10:00