Liam
6851e93296
audio: skip coefficient normalization for downmix
2 years ago
Kelebek1
ffbba74c91
Have GetActiveChannelCount return the system channels instead of host device channels
2 years ago
Liam
ecaa038b4d
audio_core: ignore renderer wait when stream is paused
2 years ago
Liam
68ea0a2b72
audio: fix shutdown deadlock in audio renderer
2 years ago
Morph
ea8d5ef5e8
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.
3 years ago
Kelebek1
5da70f7197
Remove memory allocations in some hot paths
3 years ago
Morph
8e56a84566
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.
3 years ago
bunnei
069d7e6be4
android: audio_core: sink_stream: Remove unnecessary check.
3 years ago
Liam
e96a3a1713
audio_renderer: resolve adsp thread deadlock shutdown
3 years ago
bunnei
40e938376b
android: audio_core: Avoid shutdown hang.
3 years ago
Kelebek1
9c2b211f12
Audren wait as suggested by ByLaws
3 years ago
Kelebek1
d75bcdd077
Smooth out the DSP callback by adding a 5ms wait time limit
3 years ago
Billy Laws
8908663f12
Use GetGlobalTimeNs as opposed to clock ticks
3 years ago
Billy Laws
0afb9631b5
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.
3 years ago
Billy Laws
530fe24768
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.
3 years ago
Billy Laws
237934b736
Run clang-format
3 years ago
Billy Laws
ea5dd02db9
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.
3 years ago
Billy Laws
d8fc3f403b
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.
3 years ago
arades79
683019878f
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>
3 years ago
arades79
45e13b03f3
add static lifetime to constexpr values to force compile time evaluation where possible
Signed-off-by: arades79 <scravers@protonmail.com>
3 years ago
Liam
ceda2d280e
general: rename CurrentProcess to ApplicationProcess
3 years ago
bunnei
8fd4e44014
audio_core: sink_stream: Hold the suspend lock when process is stalled.
- Prevents us from clashing with other callers trying to un/stall.
3 years ago
Liam
9737615948
general: fix compile for Apple Clang
3 years ago
Kelebek1
56b8a9ba6e
Do not try to pause core timing from the audio thread when using single-core
3 years ago
Kelebek1
e93e898df5
Remove pause callbacks from coretiming
3 years ago
Kelebek1
1deecc6f70
Remove a pragma once from a cpp file
3 years ago
Kelebek1
2129d040a5
Don't stall with nvdec
3 years ago
Kelebek1
ea9ff71725
Rework audio output, connecting AudioOut into coretiming to fix desync during heavy loads.
3 years ago