yuzu/src/core/hle/service/audio
Kelebek1 0857d6a3db Decouple audio processing and run at variable rate
Currently, processing of audio samples is called from AudioRenderer's Update method, using a fixed 4 buffers to process the given samples. Games call Update at variable rates, depending on framerate and/or sample count, which causes inconsistency in audio processing. From what I've seen, 60 FPS games update every ~0.004s, but 30 FPS/160 sample games update somewhere between 0.02 and 0.04, 5-10x slower. Not enough samples get fed to the backend, leading to a lot of audio skipping.

This PR seeks to address this by de-coupling the audio consumption and the audio update. Update remains the same without calling for buffer queuing, and the consume now schedules itself to run based on the sample rate and count.
2021-06-27 15:58:07 +01:00
..
audctl.cpp general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
audctl.h service: Eliminate usages of the global system instance 2020-11-26 20:03:11 -05:00
auddbg.cpp service: Eliminate usages of the global system instance 2020-11-26 20:03:11 -05:00
auddbg.h service: Eliminate usages of the global system instance 2020-11-26 20:03:11 -05:00
audin_a.cpp audin_a: Use proper names 2021-04-08 19:40:24 -06:00
audin_a.h service: Eliminate usages of the global system instance 2020-11-26 20:03:11 -05:00
audin_u.cpp general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
audin_u.h service: Eliminate usages of the global system instance 2020-11-26 20:03:11 -05:00
audio.cpp service: Eliminate usages of the global system instance 2020-11-26 20:03:11 -05:00
audio.h service/audio: Remove global system accessors 2019-07-19 07:29:36 -04:00
audout_a.cpp audout_a: Use proper names 2021-04-08 19:40:24 -06:00
audout_a.h service: Eliminate usages of the global system instance 2020-11-26 20:03:11 -05:00
audout_u.cpp Implement audout GetAudioOutPlayedSampleCount 2021-06-22 04:39:17 +01:00
audout_u.h service: Eliminate usages of the global system instance 2020-11-26 20:03:11 -05:00
audrec_a.cpp audrec_a: Use proper names 2021-04-08 19:40:24 -06:00
audrec_a.h service: Eliminate usages of the global system instance 2020-11-26 20:03:11 -05:00
audrec_u.cpp audrec_u: Use proper names, update to 12.x 2021-04-08 19:40:24 -06:00
audrec_u.h service: Eliminate usages of the global system instance 2020-11-26 20:03:11 -05:00
audren_a.cpp audren_a: Use proper names 2021-04-08 19:40:24 -06:00
audren_a.h service: Eliminate usages of the global system instance 2020-11-26 20:03:11 -05:00
audren_u.cpp Decouple audio processing and run at variable rate 2021-06-27 15:58:07 +01:00
audren_u.h audren 2021-05-11 10:24:53 -07:00
codecctl.cpp codecctl: Use proper names 2021-04-08 19:40:24 -06:00
codecctl.h service: Eliminate usages of the global system instance 2020-11-26 20:03:11 -05:00
errors.h hle/service/audio: Extract audio error codes to a header 2019-03-05 16:51:37 -05:00
hwopus.cpp hle: service: hwopus: OpenHardwareOpusDecoderEx: Remove unused buffer size. 2021-06-26 00:38:08 -07:00
hwopus.h hle: service: hwopus: Implement GetWorkBufferSizeEx and OpenHardwareOpusDecoderEx. 2021-06-24 18:25:37 -07:00