Commit Graph
46 Commits
Author SHA1 Message Date
itsmattkc e02f50becd audioplaybackcache: ensure waveform is shifted 2021-10-09 14:09:23 -07:00
itsmattkc 6df9735e49 cache: separated waveform and pcm writing stages 2021-09-28 21:39:06 -07:00
itsmattkc e36c001e74 audio: prevent playback of any audio after length
Fixes #1705
2021-08-08 17:30:07 -07:00
itsmattkc 179e8d9014 audio: added null check
Fixes common crash.
2021-07-23 15:47:25 -07:00
itsmattkc 4bbc75392a nodes: rewrote and simplified length signaling system 2021-07-15 21:00:18 -07:00
itsmattkc 528852c148 render: pack audio during playback
Should optimize audio rendering
2021-07-12 23:54:18 -07:00
itsmattkc c374a03e9d render: further simplified job times
Outside of silly mistakes, this should be significantly faster and more stable.
2021-07-12 15:14:37 -07:00
itsmattkc 310fd3541a various: greatly simplified job times
Hopefully this doesn't break everything
2021-07-11 23:33:21 -07:00
itsmattkc a9d6e0f3e5 audioplaybackcache: increase size of segments 2021-07-11 16:53:24 -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 8383929476 track/audioplaybackcache: re-did binary search algorithms
Fixes #1617
Fixes #1615
2021-05-10 10:42:07 +10:00
itsmattkc 77d4b18a60 updated copyright year for 2021 [skip ci] 2021-04-17 18:56:50 +10:00
itsmattkc 7b4e7099f5 audioplayback: break loop on failure to read segment
Fixes #1564
2021-04-13 13:29:31 +10:00
itsmattkc 40abdcc605 audioplaybackcache: fixed segmentation bug 2021-03-19 18:10:58 +11:00
itsmattkc 1b5426d786 audioplaybackcache: improve comments/documentation 2021-03-19 17:09:45 +11:00
itsmattkc cfbf563b2e ensure cache modified time is accurate 2021-02-22 00:23:34 +11:00
itsmattkc d0bcea3b1d audio: ignore shift event if from time exceeds length 2020-11-21 09:52:24 +11:00
itsmattkc 75d4cd899b use hardcoded namespace
The macro defined namespaces confused the hell out of lupdate and more or less broke translations permanently. Looks like the only way we can do it is to have a hardcoded namespace, which goes against my instinct, but honestly how likely is it that we'll change the namespace anyway (I guess forks might want to do it, but that's their problem ;) )
2020-11-17 20:24:42 +11:00
itsmattkc d241090a9f finally updated the copyright year 2020-11-17 20:13:22 +11:00
itsmattkc 3c1ac3eeba upgraded to ocio v2 2020-11-11 21:53:24 +11:00
itsmattkc 07dc7104c5 made timerangelist a encapsulation rather than a derivation
Locks off functionality that really shouldn't be used.
2020-10-29 02:18:41 +11:00
itsmattkc 5f5d6e82ab audioplaybackcache: fixed bug in one of the shift operations 2020-10-24 14:18:59 +11:00
itsmattkc 921608e1df audioplaybackcache: fixed various audio issues
Fixes #1276
2020-10-24 13:59:12 +11:00
itsmattkc e5b18fa45b audioplaybackcache: fixed bug where the wrong segment may be targeted 2020-10-14 17:40:15 +11:00
itsmattkc d20877570e Merge branch 'master' of https://github.com/olive-editor/olive 2020-10-13 23:59:52 +11:00
itsmattkc 65507d81ea audioplaybackcache: use null samplebuffer to write silence 2020-10-13 23:48:59 +11:00
Thomas Wilshaw b676f2f8b6 Fix #1252
Checks if the SampleBuffer is valid before trying to extract its
packed data. If it is not valid Olive writes blank segments instead.
2020-10-13 12:19:06 +01:00
itsmattkc f7ab0bb640 audio: rewrote audio cache to write to contiguous segments rather than one long file
Fixes issues with PCM file placement, optimizes some audio-based timeline
and cache operations, just generally a better approach.
2020-10-11 23:27:40 +11:00
itsmattkc edeeed49ba various: enabled config saving 2020-08-08 02:44:39 +10:00
itsmattkc d85089f71a cache: improved setting manual cache path on a per project basis 2020-08-07 13:41:09 +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 36dd06d2dc viewer: set video and audio caches to children of the viewer
Ensures their thread gets changed along with the viewer. The project
gets loaded/created in a background thread so the GUI can remain
responsive, and is then moved to the main thread for intended event
handling. However if the caches aren't parented, the hierarchy breaks
and the caches remain in a thread whose event loop is quickly destroyed.
Now that they're parented, events can be properly queued on them once
again.
2020-07-10 18:34:16 +10:00
itsmattkc bad60fc5f0 audioplaybackcache: no-op if params are invalid 2020-06-12 03:26:34 +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 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 5eeef76b62 waveform: shift track waveform alongside cache 2020-06-04 23:32:50 +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 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 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 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 2039067fdc renderer/viewer: fixed playback and live updates from value changes 2020-05-15 15:02:30 +10:00
itsmattkc 863ae1b913 a first attempt at a new render system 2020-05-14 14:43:03 +10:00