Commit graph

31 commits

Author SHA1 Message Date
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