Lioncash
9254ec6fde
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
5d1edf66c1
Added audren:u#GetAudioRendererState
7 years ago
Subv
747e579d97
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
e27a1af5f7
time_stretch: Remove unused <array> include
This isn't used within this header and isn't necessary.
7 years ago
Lioncash
184f8e72b0
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
01a14e4bdf
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
1190ea6ddb
Port #4182 from Citra: "Prefix all size_t with std::"
7 years ago
Lioncash
7c7c12f664
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
514f8f036c
cubeb_sink: Correct context name in ListCubebSinkDevices()
This ain't Citra.
7 years ago
Lioncash
a51b67f163
audio_core/time_stretch: Silence truncation warnings in Process()
The SoundTouch API only accepts uint amount of samples.
7 years ago
MerryMage
9ffbfeee26
audio_core: Flush stream when not playing anything
7 years ago
Lioncash
93e3030d0c
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
84b7a67ef1
cubeb_sink: Downsample arbitrary number of channels
7 years ago
MerryMage
d7d7fec6c7
cubeb_sink: Perform audio stretching
7 years ago
MerryMage
4e439efbf6
audio_core: Add audio stretcher
7 years ago
MerryMage
722441ef0b
cubeb_sink: Hold last available value instead of writing zeros
This reduces clicking in output audio should we underrun.
7 years ago
MerryMage
d99dceeb7a
cubeb_sink: Use RingBuffer
7 years ago
fearlessTobi
7377afca3a
Add audio stretching support
7 years ago
MerryMage
ed0dc20280
audio_renderer: Rename AudioOut instance to audio_out
7 years ago
Markus Wick
71250d28d6
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
a6c2e1e95c
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
26aa4ae7a8
audio_renderer: samples_remaining counts frames, not samples
7 years ago
MerryMage
0525998743
audio_core: Interpolate
7 years ago
MerryMage
fea4df74c2
audio_core: Implement low-pass filter
7 years ago
MerryMage
c9923e03bb
cubeb_sink: Protect queue with a mutex
7 years ago
David Marcec
7d49bcdb1b
Pushed the requested sample rate instead of our fixed sample rate
7 years ago
David Marcec
f3ef58207e
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
fef6c33e77
Make building cubeb optional
7 years ago
bunnei
5904aa20ce
audio_core: Implement audren_u audio playback.
8 years ago
bunnei
600e4bbeac
audio_core: Use s16 where possible for audio samples.
8 years ago
bunnei
7688b83a1c
audio_core: Port codec code from Citra for ADPCM decoding.
8 years ago
bunnei
950de5fd73
cubeb_sink: Support variable sample_rate and num_channels.
8 years ago
bunnei
97647e60f2
audio_core: Sinks need unique names as well.
8 years ago
bunnei
7186882bfe
audio_core: Streams need unique names for CoreTiming.
8 years ago
Lioncash
07a3c8a2a5
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
881380bc97
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
5061e89fd1
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
14d9b2d6d3
audio_core: Add configuration settings.
8 years ago
bunnei
0ba0cdbed9
audio_core: Implement Sink and SinkStream interfaces with cubeb.
8 years ago
bunnei
f1f3a65391
audio_core: Add interfaces for Sink and SinkStream.
8 years ago
bunnei
02472448da
audio_core: Misc. improvements to stream/buffer/audio_out.
8 years ago
bunnei
fa8e381b3e
audio_core: Add initial code for keeping track of audout state.
8 years ago
James Rowe
5dbd091a80
Massive removal of unused modules
8 years ago
B3n30
1b2aa3780d
CoreTiming: Reworked CoreTiming (cherry-picked from Citra #3119 )
* CoreTiming: New CoreTiming; Add Test for CoreTiming
8 years ago
bunnei
9b8fff5568
audio: Log dropping frames as trace to reduce spam.
8 years ago
Huw Pascoe
da1c8d1522
Fixed type conversion ambiguity
8 years ago
Subv
3532957099
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
cbb31422b7
interpolate: Interpolate on a frame-by-frame basis
9 years ago
Yuri Kunde Schlesner
f9a960614d
CMake: Add SoundTouch include path to target property
9 years ago
Yuri Kunde Schlesner
d84915c4a1
CMake: Define an interface target for SDL2 definitions
9 years ago