itsmattkc
e671fb63b7
always close pull audio device when we're doing with it
2020-01-03 21:11:47 +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
cb5d816145
removed extraneous debug line in audiohybrid device
...
Code cleanup.
2019-11-23 17:03:37 +09:00
itsmattkc
51c95cc48f
ensure audio output is always closed when it's no longer needed
2019-11-19 11:09:21 +09:00
itsmattkc
cd69bd76b9
use sequence parameters as audio output parameters
2019-11-15 20:11:17 +09:00
itsmattkc
a9660201f1
miscellaneous other changes to make audio rendering work
...
Many changes were made throughout the codebase to support audio, these are
most of the small changes necessary.
The audio support still is not perfect. I still need to write in resampling
support. After that it should work correctly with all audio types.
2019-11-15 13:57:49 +09:00
itsmattkc
9a44e656b5
added simple wave classes
...
To assist the input/output of PCM data, we use the fairly straight-forward
WAVE format. These classes simplify the input and output of such data.
2019-11-15 13:49:40 +09:00
itsmattkc
2fdf78df4a
implemented preliminary pre-cacher for audio
...
FFmpegDecoder now implements an "indexer" for audio, which actually just
extracts the raw PCM audio from an audio codec and saves it to disk
2019-10-24 16:36:26 +11: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
31453e7b46
stop when pushing samples as well
2019-10-17 09:43:09 +11:00
itsmattkc
856d42d431
documented AudioHybridDevice
2019-10-17 09:42:42 +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