summaryrefslogtreecommitdiff
path: root/src/audio_core/sink
AgeCommit message (Collapse)Author
2025-02-20Revert "audio: refactor SDL2 sink implementation"Zephyron
This reverts commit 3aa9c0d1518ceec8e3f9ad93efa84bf90e1f1b21.
2025-02-08audio: refactor SDL2 sink implementationZephyron
- Move SDLSinkStream class definition to header file - Add additional error checking for SDL audio device availability - Limit audio channels to stereo - Add format verification and warning messages - Improve audio device initialization with better error handling - Rename device variable to audio_device_id for clarity - Add running state flag - Update copyright header to include citron This refactoring improves error handling and provides better debug information when audio device initialization fails. The implementation is now more robust and provides clearer feedback for troubleshooting audio issues.
2025-01-14Revert incorrect copyright attribution for non-contributed filesZephyron
- In commit b3facaa6bb30cdc39f2b7d632fef1e3bfeee7785, the copyright header was updated to include "Citron Homebrew Project" across multiple files, regardless of whether any contributions were made. - This commit removes the incorrect attribution and reverts the copyright header to its previous state. - Copyright attribution should only be added when meaningful contributions have been made to the file. - This commit ensures proper compliance with copyright standards and maintains correct attribution to the respective contributors. - Special thanks to Tachi for pointing out the need for these corrections and ensuring that proper attribution practices are followed.
2024-12-31chore: update project references and add Citron copyrightZephyron
- Replaced all references to the old project name with Citron. - Added Citron copyright information alongside existing notices in all files.
2024-02-23oboe_sink: handle temporary stream creation failureLiam
2024-02-19scope_exit: Make constexprFearlessTobi
Allows the use of the macro in constexpr-contexts. Also avoids some potential problems when nesting braces inside it.
2023-12-19Merge pull request #12387 from liamwhite/oboeFernando S
android: add oboe audio sink
2023-12-18oboe_sink: specify additional required parametersLiam
2023-12-17oboe_sink: set low latency performance modeLiam
2023-12-17oboe_sink: implement channel count queryingLiam
2023-12-17android: add oboe audio sinkLiam
2023-12-16audio: skip coefficient normalization for downmixLiam
2023-12-16Have GetActiveChannelCount return the system channels instead of host device ↵Kelebek1
channels
2023-11-12audio_core: ignore renderer wait when stream is pausedLiam
2023-10-13audio: fix shutdown deadlock in audio rendererLiam
2023-08-27audio: allow more latency in cubeb initializationLiam
2023-08-23Pre-test opening a stream for audio backends, fall back to null if not suitable.Kelebek1
2023-07-21(ui,)settings: Use explicit instantiationlat9nq
Reduces compile times a tad on clang.
2023-07-21settings,general: Rename non-confirming enumslat9nq
2023-07-21configure_audio: Implement ui generationlat9nq
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-06-30sink_stream: Resolve heap buffer corruption due to out of bounds writeMorph
Also, remove the use of ScratchBuffer when upmixing, as other channels may not be initialized with zeroed out data.
2023-06-22Remove memory allocations in some hot pathsKelebek1
2023-06-07core_timing: Use CNTPCT as the guest CPU tickMorph
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-05android: audio_core: sink_stream: Remove unnecessary check.bunnei
2023-06-05Merge pull request #10508 from yuzu-emu/limebunnei
Project Lime - yuzu Android Port
2023-06-04audio_renderer: resolve adsp thread deadlock shutdownLiam
2023-06-03android: audio_core: Avoid shutdown hang.bunnei
2023-05-27Audren wait as suggested by ByLawsKelebek1
2023-05-18Smooth out the DSP callback by adding a 5ms wait time limitKelebek1
2023-05-05yuzu-sdl,audio_core: Remove antiquated warning ignorelat9nq
Issue was fixed a long time ago, both by SDL2 and in yuzu by including SDL2 as a system library.
2023-04-08Use GetGlobalTimeNs as opposed to clock ticksBilly Laws
2023-04-03Add some explicit latency to sample count reportingBilly Laws
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-03-27audio_core: No longer stall when sink queue is fullBilly Laws
Now the audout and audren update rates are tied to the sink status stalling is no longer necessary.
2023-03-27Run clang-formatBilly Laws
2023-03-27audio: Wait for samples on the emulated DSP side to avoid desyncsBilly Laws
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-26audio: Interpolate system manager sample count using host sink sample infoBilly Laws
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-02-15Merge pull request #9796 from liamwhite/currentliamwhite
general: rename CurrentProcess to ApplicationProcess
2023-02-14remove static from pointer sized or smaller types for aesthetics, change ↵arades79
constexpr static to static constexpr for consistency Signed-off-by: arades79 <scravers@protonmail.com>
2023-02-14add static lifetime to constexpr values to force compile time evaluation ↵arades79
where possible Signed-off-by: arades79 <scravers@protonmail.com>
2023-02-13general: rename CurrentProcess to ApplicationProcessLiam
2023-02-09audio: cubeb: Fix yuzu crashing when it test for latencyNarr the Reg
2022-12-03Merge pull request #9289 from liamwhite/fruit-companyliamwhite
general: fix compile for Apple Clang
2022-11-29audio_core: sink_stream: Hold the suspend lock when process is stalled.bunnei
- Prevents us from clashing with other callers trying to un/stall.
2022-11-22general: fix compile for Apple ClangLiam
2022-10-16sdl2_sink: Inline variable init into if conditionlat9nq
Co-authored-by: Mai <mathew1800@gmail.com>
2022-10-16sdl2_sink: Distinguish between capture and non-capture device nameslat9nq
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-16sdl2_sink: Check for null string when loading SDL audio deviceslat9nq
Attempting to place a null string into a vector of strings causes an error that closes the application. Don't.
2022-10-14audio_core: Revert sink name to sdl2Narr the Reg
2022-10-09Choose the SDL audio backend when Cubeb reports too high of a latencyKelebek1
2022-09-22Do not try to pause core timing from the audio thread when using single-coreKelebek1