Lioncash
2f6a611311
stream: Preserve enum class type in GetState()
Preserves the meaning/type-safetiness of the stream state instead of
making it an opaque u32. This makes it usable for other things outside
of the service HLE context.
7 years ago
David Marcec
c461188f51
Added audren:u#GetAudioRendererState
7 years ago
Subv
8ba21e28cf
Logging: Change the TimeStretch::Process log from debug to trace level.
This function is called too many times and makes the debug logging basically unusable due to the spam.
7 years ago
Lioncash
f7308a6c25
time_stretch: Remove unused <array> include
This isn't used within this header and isn't necessary.
7 years ago
Lioncash
2fd124bc93
stream: Replace includes with forward declarations where applicable
Avoids propagating includes in headers where it's not necessary to do
so.
7 years ago
Lioncash
1adbcd54fe
audio_renderer: Replace includes with forward declarations where applicable
Avoids including unnecessary headers within the audio_renderer.h header,
lessening the likelihood of needing to rebuild source files including
this header if they ever change.
Given std::vector allows forward declaring contained types, we can move
VoiceState to the cpp file and hide the implementation entirely.
7 years ago
fearlessTobi
63c2e32e20
Port #4182 from Citra: "Prefix all size_t with std::"
7 years ago
Lioncash
fc669a97d4
cubeb_sink: Get rid of variable shadowing within CubebSink's constructor
The parameter of the lambda was shadowing the variable that was being
assigned to.
7 years ago
Lioncash
b5218d9986
cubeb_sink: Correct context name in ListCubebSinkDevices()
This ain't Citra.
7 years ago
Lioncash
9969a5db1e
audio_core/time_stretch: Silence truncation warnings in Process()
The SoundTouch API only accepts uint amount of samples.
7 years ago
MerryMage
957ddab679
audio_core: Flush stream when not playing anything
7 years ago
Lioncash
bad035e9a3
audio_core/sink_details: Change std::string parameter into std::string_view
The given string is only ever used for lookup and comparison, so we can
just utilize a non-owning view to string data here
7 years ago
MerryMage
55af5bda55
cubeb_sink: Downsample arbitrary number of channels
7 years ago
MerryMage
1aa195a9c0
cubeb_sink: Perform audio stretching
7 years ago
MerryMage
e51bd49f87
audio_core: Add audio stretcher
7 years ago
MerryMage
7e697ab7ff
cubeb_sink: Hold last available value instead of writing zeros
This reduces clicking in output audio should we underrun.
7 years ago
MerryMage
6d9dd1dc6d
cubeb_sink: Use RingBuffer
7 years ago
fearlessTobi
a6efff8b02
Add audio stretching support
7 years ago
MerryMage
a76f0d5d06
audio_renderer: Rename AudioOut instance to audio_out
7 years ago
Markus Wick
10bc725944
Update microprofile scopes.
Blame the subsystems which deserve the blame :)
The updated list is not complete, just the ones I've spotted on random sampling the stack trace.
7 years ago
Lioncash
0057a47e41
audio_core/filter: Add explicit cast to assignment in Process()
Previously this would cause warnings about implicit conversions to s16
from a double
7 years ago
MerryMage
01d199965a
audio_renderer: samples_remaining counts frames, not samples
7 years ago
MerryMage
4b44b8b4fb
audio_core: Interpolate
7 years ago
MerryMage
56300f2928
audio_core: Implement low-pass filter
7 years ago
MerryMage
fcc5ffdfdd
cubeb_sink: Protect queue with a mutex
7 years ago
David Marcec
094f6003e0
Pushed the requested sample rate instead of our fixed sample rate
7 years ago
David Marcec
e5ee0afe6f
Added GetAudioRendererSampleRate, GetAudioRendererSampleCount & GetAudioRendererMixBufferCount
GetAudioRendererSampleRate is set as a "STUB" as a game could check if the sample rate it sent and the sample rate it wants don't match. Just a thought of something which could happen so keeping it as stub for the mean time
7 years ago
KAMiKAZOW
0f5c4615ae
Make building cubeb optional
7 years ago
bunnei
b46df98e93
audio_core: Implement audren_u audio playback.
8 years ago
bunnei
1dee8ceda1
audio_core: Use s16 where possible for audio samples.
8 years ago
bunnei
f1cb3903ac
audio_core: Port codec code from Citra for ADPCM decoding.
8 years ago
bunnei
02fccc0940
cubeb_sink: Support variable sample_rate and num_channels.
8 years ago
bunnei
34b3f83498
audio_core: Sinks need unique names as well.
8 years ago
bunnei
9f846d3aa4
audio_core: Streams need unique names for CoreTiming.
8 years ago
Lioncash
c1c397d37c
audio_out: Use Buffer::Tag alias in GetTagsAndReleaseBuffers()'s prototype
This makes the Buffer::Tag usage consistent with the Stream class's
prototype of GetTagsAndReleaseBuffers().
8 years ago
Lioncash
2bc4ab3958
sink_details: Deduplicate long std::function repetition
We can just use type aliases to avoid needing to write the same long
type twice
8 years ago
Lioncash
89ebef6571
sink_details: std::move std::function instances
Given std::function is allowed to potentially allocate, these should be
std::move'd to prevent potential reallocation (should that ever happen).
8 years ago
bunnei
ca84b530a3
audio_core: Add configuration settings.
8 years ago
bunnei
f437c11caf
audio_core: Implement Sink and SinkStream interfaces with cubeb.
8 years ago
bunnei
9ef227e09d
audio_core: Add interfaces for Sink and SinkStream.
8 years ago
bunnei
0e8a2c7222
audio_core: Misc. improvements to stream/buffer/audio_out.
8 years ago
bunnei
ab756fd068
audio_core: Add initial code for keeping track of audout state.
8 years ago
James Rowe
ebf9a784a9
Massive removal of unused modules
8 years ago
B3n30
82151d407d
CoreTiming: Reworked CoreTiming (cherry-picked from Citra #3119 )
* CoreTiming: New CoreTiming; Add Test for CoreTiming
8 years ago
bunnei
bd377908d7
audio: Log dropping frames as trace to reduce spam.
8 years ago
Huw Pascoe
a13ab958cb
Fixed type conversion ambiguity
8 years ago
Subv
d7459354f5
Audio: Use std::deque instead of std::vector for the audio buffer type (StereoBuffer16).
The current code inserts and deletes elements from the beginning of the audio buffer, which is very inefficient in an std::vector.
Profiling was done using VisualStudio2017's Performance Analyzer in Super Mario 3D Land.
Before this change: AudioInterp::Linear had 14.14% of the runtime (inclusive) and most of that time was spent in std::vector's insert implementation.
After this change: AudioInterp::Linear has 0.36% of the runtime (inclusive)
8 years ago
MerryMage
933508e2a2
interpolate: Interpolate on a frame-by-frame basis
9 years ago
Yuri Kunde Schlesner
74afcd5328
CMake: Add SoundTouch include path to target property
9 years ago
Yuri Kunde Schlesner
776cb91785
CMake: Define an interface target for SDL2 definitions
9 years ago