Commit Graph
21 Commits
Author SHA1 Message Date
itsmattkc 5a070f14de general: use IdlePriority rather than LowPriority
Fixes a number of playback stuttering and general UI lag issues by setting all
background tasks to IdlePriority rather than LowPriority. While it was assumed
LowPriority tasks would always get scheduled below NormalPriority (e.g. main
thread) tasks, it turns out this is not always the case. If the background tasks
start consuming a lot of CPU cycles, the scheduler may use "dynamic scheduling"
to schedule them above the main thread regardless leading to UI lag. This is
apparently the case for all thread priorities apart from IdlePriority, which
is allegedly a special case where threads are *only* scheduled when other
threads aren't busy ensuring the main thread stays responsive.
2020-02-20 17:48:50 +11:00
itsmattkc 1101b58ee8 allow setting of pixel format/ocio method/sample format in preferences
Implementation isn't perfect yet, viewer/renderer doesn't update yet when
the preference is changed so a sequence needs to be re-opened for the change to
take effect.
2020-01-18 03:37:36 +11:00
itsmattkc a616aaa182 correctly affect speed/reversing when shuttling audio 2020-01-07 16:41:30 +11:00
itsmattkc f13f5b5fdb fixes memory leak in AudioManager
Ensures a thread that gets created gets deleted when it's done.
2020-01-03 02:44:33 +11:00
itsmattkc 02a790b041 simple file renames to better represent their new purposes 2020-01-03 02:36:30 +11:00
itsmattkc 0ac202078c rewrite of audio output manager for vastly improved operation
Previously the audio output manager was a "hybrid device" that acted as a pull
device for audio devices and as a push device and device proxy for the rest of
the application. This approach turned out to be flawed, particularly in the
frequent opening and closing of the audio device (extremely slow). Since we
use both pulling (for constant playback) and pushing (audio scrubbing, short
bursts of sound), it needed a similar but different approach. This approach
will switch the output device from push mode (default) to pull mode (during
playback) only when necessary resulting in far less UI lag (basically
unnoticeable now) than the previous approach.
2020-01-03 02:33:11 +11:00
itsmattkc 8ec63abc74 moved audio output manager and device to separate thread 2020-01-03 00:32:23 +11:00
itsmattkc 7d0d73bcfe use signal/slot threading for the audio refresh thread instead of subclassing QThread 2020-01-02 22:02:48 +11:00
itsmattkc 61c60e00d6 various small code cleanups and improvements
Largely refactoring work to make the code somewhat nicer to work with.
2019-12-26 19:00:08 +11:00
itsmattkc eb970fc293 replaced assert(false) calls with abort() 2019-11-30 02:45:47 +11:00
itsmattkc cd69bd76b9 use sequence parameters as audio output parameters 2019-11-15 20:11:17 +09:00
itsmattkc 52f4c59bec implemented new audio monitor widget 2019-10-23 03:21:05 +11:00
itsmattkc 2860fe33a0 reworded debug message on output device change 2019-10-17 10:51:37 +11:00
itsmattkc 259b5d530a improved audio pausing feedback 2019-10-17 09:43:38 +11:00
itsmattkc 658820a103 removed debug msg 2019-10-16 22:34:04 +11:00
itsmattkc d6483916ac base audio renderer classes created 2019-10-16 13:51:56 +11:00
itsmattkc fe2b0f2dc2 implemented base audio playback and scrubbing 2019-10-14 11:38:29 +11:00
itsmattkc b942300aea setup test parameters 2019-10-14 08:42:03 +11:00
itsmattkc e0a483065a minor improvements 2019-09-27 03:07:59 +10:00
itsmattkc 8df4cf2cdc audiomanager implementation 2019-09-27 03:01:09 +10:00
itsmattkc d1cc36cb78 audio preferences 2019-09-26 19:53:35 +10:00