Lioncash
2fd124bc93
stream: Replace includes with forward declarations where applicable
...
Avoids propagating includes in headers where it's not necessary to do
so.
2018-09-17 15:08:34 -04:00
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.
2018-09-17 15:08:30 -04:00
bunnei
692e7cee4f
Merge pull request #1314 from lioncash/cast
...
audio_core/time_stretch: Silence truncation warnings in Process()
2018-09-17 12:28:19 -04:00
bunnei
59beb540ae
Merge pull request #1321 from lioncash/audio-shadow
...
cubeb_sink: Get rid of variable shadowing within CubebSink's constructor
2018-09-17 12:26:29 -04:00
bunnei
3476ba2aee
Merge pull request #1320 from lioncash/name
...
cubeb_sink: Correct context name in ListCubebSinkDevices()
2018-09-17 10:10:33 -04:00
fearlessTobi
63c2e32e20
Port #4182 from Citra: "Prefix all size_t with std::"
2018-09-15 15:21:06 +02:00
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.
2018-09-14 12:20:51 -04:00
Lioncash
b5218d9986
cubeb_sink: Correct context name in ListCubebSinkDevices()
...
This ain't Citra.
2018-09-14 12:18:09 -04:00
Lioncash
9969a5db1e
audio_core/time_stretch: Silence truncation warnings in Process()
...
The SoundTouch API only accepts uint amount of samples.
2018-09-13 19:50:01 -04:00
bunnei
60899b80f0
Merge pull request #1298 from lioncash/view
...
audio_core/sink_details: Change std::string parameter into std::string_view
2018-09-12 18:24:57 -04:00
bunnei
926dd41587
Merge pull request #1163 from FearlessTobi/add-audio-stretching
...
audio_core: Add audio stretching support
2018-09-12 18:23:54 -04:00
MerryMage
957ddab679
audio_core: Flush stream when not playing anything
2018-09-12 18:09:14 +01:00
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
2018-09-11 21:36:12 -04:00
MerryMage
55af5bda55
cubeb_sink: Downsample arbitrary number of channels
2018-09-09 09:51:46 +01:00
MerryMage
1aa195a9c0
cubeb_sink: Perform audio stretching
2018-09-08 18:56:38 +01:00
MerryMage
e51bd49f87
audio_core: Add audio stretcher
2018-09-08 18:56:38 +01:00
MerryMage
7e697ab7ff
cubeb_sink: Hold last available value instead of writing zeros
...
This reduces clicking in output audio should we underrun.
2018-09-08 18:56:38 +01:00
MerryMage
6d9dd1dc6d
cubeb_sink: Use RingBuffer
2018-09-08 18:56:38 +01:00
fearlessTobi
a6efff8b02
Add audio stretching support
2018-09-08 18:26:23 +01:00
MerryMage
a76f0d5d06
audio_renderer: Rename AudioOut instance to audio_out
2018-09-08 16:50:12 +01:00
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.
2018-09-04 11:04:26 +02:00
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
2018-08-21 12:32:37 -04:00
bunnei
f19b4fab5f
Merge pull request #1033 from MerryMage/interp
...
audio_core: Interpolate
2018-08-13 12:19:59 -04:00
MerryMage
01d199965a
audio_renderer: samples_remaining counts frames, not samples
2018-08-13 11:26:50 +01:00
MerryMage
4b44b8b4fb
audio_core: Interpolate
2018-08-13 11:26:50 +01:00
MerryMage
56300f2928
audio_core: Implement low-pass filter
2018-08-13 11:26:50 +01:00
MerryMage
fcc5ffdfdd
cubeb_sink: Protect queue with a mutex
2018-08-12 20:41:46 +01:00
David Marcec
094f6003e0
Pushed the requested sample rate instead of our fixed sample rate
2018-08-12 14:58:36 +10:00
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
2018-08-12 14:46:12 +10:00
KAMiKAZOW
0f5c4615ae
Make building cubeb optional
2018-08-07 13:21:56 +02:00
bunnei
b46df98e93
audio_core: Implement audren_u audio playback.
2018-08-04 21:54:30 -04:00
bunnei
1dee8ceda1
audio_core: Use s16 where possible for audio samples.
2018-08-04 18:22:58 -04:00
bunnei
f1cb3903ac
audio_core: Port codec code from Citra for ADPCM decoding.
2018-08-04 18:22:58 -04:00
bunnei
02fccc0940
cubeb_sink: Support variable sample_rate and num_channels.
2018-08-04 15:30:10 -04:00
bunnei
34b3f83498
audio_core: Sinks need unique names as well.
2018-08-04 14:34:12 -04:00
bunnei
9f846d3aa4
audio_core: Streams need unique names for CoreTiming.
2018-08-04 14:34:12 -04:00
bunnei
b6d61abd78
Merge pull request #895 from lioncash/sink
...
sink_details: std::move std::function instances
2018-08-03 11:00:56 -04:00
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().
2018-08-02 05:18:32 -04:00
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
2018-08-01 23:56:02 -04:00
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).
2018-08-01 23:50:48 -04:00
bunnei
ca84b530a3
audio_core: Add configuration settings.
2018-07-31 22:38:42 -04:00
bunnei
f437c11caf
audio_core: Implement Sink and SinkStream interfaces with cubeb.
2018-07-30 21:45:24 -04:00
bunnei
9ef227e09d
audio_core: Add interfaces for Sink and SinkStream.
2018-07-30 21:45:24 -04:00
bunnei
0e8a2c7222
audio_core: Misc. improvements to stream/buffer/audio_out.
2018-07-30 18:58:40 -04:00
bunnei
ab756fd068
audio_core: Add initial code for keeping track of audout state.
2018-07-27 22:33:31 -04:00
James Rowe
ebf9a784a9
Massive removal of unused modules
2018-01-12 19:11:03 -07:00
B3n30
82151d407d
CoreTiming: Reworked CoreTiming (cherry-picked from Citra #3119 )
...
* CoreTiming: New CoreTiming; Add Test for CoreTiming
2018-01-08 19:10:25 -05:00
bunnei
bd377908d7
audio: Log dropping frames as trace to reduce spam.
2018-01-07 16:52:59 -05:00
Huw Pascoe
a13ab958cb
Fixed type conversion ambiguity
2017-09-30 09:34:35 +01:00
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)
2017-09-25 18:31:37 -05:00