Commit graph

47 commits

Author SHA1 Message Date
Liam
b787b5db2e android: add oboe audio sink 2023-12-17 01:42:59 -05:00
Liam
c0e37fa65f audio_core: ignore renderer wait when stream is paused 2023-11-12 23:10:53 -05:00
Liam
d881c9f326 audio: fix shutdown deadlock in audio renderer 2023-10-13 16:34:31 -04:00
Liam
b12322b8fe audio: allow more latency in cubeb initialization 2023-08-27 12:46:01 -04:00
Kelebek1
5c4e9a276f Pre-test opening a stream for audio backends, fall back to null if not suitable. 2023-08-23 08:33:26 +01:00
lat9nq
5a2b7f951d (ui,)settings: Use explicit instantiation
Reduces compile times a tad on clang.
2023-07-21 10:56:54 -04:00
lat9nq
78f92086ca settings,general: Rename non-confirming enums 2023-07-21 10:56:54 -04:00
lat9nq
d39bfc646f configure_audio: Implement ui generation
Needs a considerable amount of management specific to some of
the comoboboxes due to the audio engine configuration.

general: Partial audio config implmentation

configure_audio: Implement ui generation

Needs a considerable amount of management specific to some of
the comoboboxes due to the audio engine configuration.

general: Partial audio config implmentation

settings: Make audio settings as enums
2023-07-21 10:56:07 -04:00
Morph
885090dc13 sink_stream: Resolve heap buffer corruption due to out of bounds write
Also, remove the use of ScratchBuffer when upmixing, as other channels may not be initialized with zeroed out data.
2023-06-30 00:54:23 -04:00
Kelebek1
c7430e51e3 Remove memory allocations in some hot paths 2023-06-22 08:05:10 +01:00
Morph
2856fadaa0 core_timing: Use CNTPCT as the guest CPU tick
Previously, we were mixing the raw CPU frequency and CNTFRQ.
The raw CPU frequency (1020 MHz) should've never been used as CNTPCT (whose frequency is CNTFRQ) is the only counter available.
2023-06-07 21:44:42 -04:00
bunnei
5b8f185151 android: audio_core: sink_stream: Remove unnecessary check. 2023-06-05 21:47:36 -07:00
bunnei
31ad92b287 Merge pull request #10508 from yuzu-emu/lime
Project Lime - yuzu Android Port
2023-06-05 21:43:43 -07:00
Liam
16bd50f9b4 audio_renderer: resolve adsp thread deadlock shutdown 2023-06-04 13:00:10 -04:00
bunnei
bbd4f9c722 android: audio_core: Avoid shutdown hang. 2023-06-03 00:06:06 -07:00
Kelebek1
29e1cdf7e1 Audren wait as suggested by ByLaws 2023-05-27 17:38:07 +01:00
Kelebek1
ba0d258a3f Smooth out the DSP callback by adding a 5ms wait time limit 2023-05-18 13:03:32 +01:00
lat9nq
be5eee647e yuzu-sdl,audio_core: Remove antiquated warning ignore
Issue was fixed a long time ago, both by SDL2 and in yuzu by including
SDL2 as a system library.
2023-05-05 03:48:28 -04:00
Billy Laws
6b2510c7c5 Use GetGlobalTimeNs as opposed to clock ticks 2023-04-08 21:54:19 +01:00
Billy Laws
5dbfd7861a Add some explicit latency to sample count reporting
Some games have very tight scheduling requirements for their audio which can't really be matched on the host, adding a constant to the reported value helps to provide some leeway.
2023-04-03 23:11:36 +01:00
Billy Laws
1794a33c52 audio_core: No longer stall when sink queue is full
Now the audout and audren update rates are tied to the sink status stalling is no longer necessary.
2023-03-27 22:01:41 +01:00
Billy Laws
91d14c0022 Run clang-format 2023-03-27 22:01:41 +01:00
Billy Laws
d3f0149af2 audio: Wait for samples on the emulated DSP side to avoid desyncs
Waiting on the host side is inaccurate and leads to desyncs in the event of the sink missing a deadline that require stalls to fix. By waiting for the sink to have space before even starting rendering such desyncs can be avoided.
2023-03-27 21:34:28 +01:00
Billy Laws
7e7ad78aaf audio: Interpolate system manager sample count using host sink sample info
This avoids the need to stall if the host sink sporadically misses the deadline, in such a case the previous implementation would report them samples as being played on-time, causing the guest to send more samples and leading to a gradual buildup.
2023-03-26 22:48:57 +01:00
liamwhite
207fdfe57d Merge pull request #9796 from liamwhite/current
general: rename CurrentProcess to ApplicationProcess
2023-02-15 17:42:45 -05:00
arades79
60a68839ee remove static from pointer sized or smaller types for aesthetics, change constexpr static to static constexpr for consistency
Signed-off-by: arades79 <scravers@protonmail.com>
2023-02-14 12:35:39 -05:00
arades79
adcef452e0 add static lifetime to constexpr values to force compile time evaluation where possible
Signed-off-by: arades79 <scravers@protonmail.com>
2023-02-14 12:33:11 -05:00
Liam
c68577384a general: rename CurrentProcess to ApplicationProcess 2023-02-13 19:03:12 -05:00
Narr the Reg
326d8c0905 audio: cubeb: Fix yuzu crashing when it test for latency 2023-02-09 19:38:03 -06:00
liamwhite
e20c5a0b7f Merge pull request #9289 from liamwhite/fruit-company
general: fix compile for Apple Clang
2022-12-03 12:09:21 -05:00
bunnei
9ac846fece audio_core: sink_stream: Hold the suspend lock when process is stalled.
- Prevents us from clashing with other callers trying to un/stall.
2022-11-29 20:32:06 -08:00
Liam
5a712bb51a general: fix compile for Apple Clang 2022-11-22 22:22:28 -05:00
lat9nq
87b2c9f144 sdl2_sink: Inline variable init into if condition
Co-authored-by: Mai <mathew1800@gmail.com>
2022-10-16 21:36:40 -04:00
lat9nq
8e23f79384 sdl2_sink: Distinguish between capture and non-capture device names
The function prototype appears to care whether we are loading capture
devices or not, and SDL_GetAudioDeviceName has a parameter to use it,
but for some reason it isn't.

This puts `capture` where it goes.
2022-10-16 03:15:54 -04:00
lat9nq
4e968241f6 sdl2_sink: Check for null string when loading SDL audio devices
Attempting to place a null string into a vector of strings causes an
error that closes the application.

Don't.
2022-10-16 03:14:52 -04:00
Narr the Reg
34a6ec8d59 audio_core: Revert sink name to sdl2 2022-10-14 10:59:33 -05:00
Kelebek1
8351d39dd0 Choose the SDL audio backend when Cubeb reports too high of a latency 2022-10-09 13:47:59 +01:00
Kelebek1
c8f8b9e076 Do not try to pause core timing from the audio thread when using single-core 2022-09-22 01:23:57 +01:00
Lioncash
d4623d8dc8 sink_stream: Mark GetQueueSize as const 2022-09-16 10:00:52 -04:00
bunnei
ba667d9af0 Merge pull request #8878 from Kelebek1/remove_pause
Remove pause callbacks from coretiming
2022-09-15 13:50:13 -07:00
Lioncash
af8ce57e18 audio_core: Amend documentation tags
Resolves a wackload of -Wdocumentation warnings due to mismatching tags
and whatnot.
2022-09-15 09:47:23 -04:00
Kelebek1
c6d4071162 Remove pause callbacks from coretiming 2022-09-13 13:20:35 +01:00
Kelebek1
0c01ac7410 Remove a pragma once from a cpp file 2022-09-12 19:27:11 +01:00
Kelebek1
77a30f7286 Don't stall with nvdec 2022-09-04 05:41:06 +01:00
Kelebek1
c3e3874d8d Rework audio output, connecting AudioOut into coretiming to fix desync during heavy loads. 2022-09-02 04:43:04 +01:00
Kelebek1
26353451be Do some log memes to help perceived volume 2022-08-12 19:59:09 +01:00
Kelebek1
be1f5f1d9f Project Andio 2022-07-22 01:11:32 +01:00