aboutsummaryrefslogtreecommitdiff
path: root/src/audio_core/cubeb_sink.cpp
AgeCommit message (Collapse)Author
2020-03-08cubeb_sink: Don't discard other channels when performing downmixingFearlessTobi
Previously, when performing downmixing, we would discard all channels except the left and right one. This implementation respects them when mixing down to Stereo. It is taken from this document: http://www.atsc.org/wp-content/uploads/2015/03/A52-201212-17.pdf. Fixes Luigis Mansion 3 cutscene and Bayonetta audio.
2019-03-09audio_core/cubeb_sink: Convert _MSC_VER ifdefs to _WIN32Lioncash
This behavior also needs to be visible for MinGW builds as well.
2019-02-27audio_core/cubeb_sink: Ensure COM is initialized on Windows prior to calling ↵Lioncash
cubeb_init cubeb now requires that COM explicitly be initialized on the thread prior to calling cubeb_init.
2019-02-25audio_core/cubeb_sink: Initialize CubebSinkStream's last_frame data memberLioncash
Ensures that all member variables are initialized in a deterministic manner across the board.
2019-02-25audio_core/cubeb_sink: Add override specifier to destructorLioncash
CubebSinkStream inherits from a base class with a virtual destructor, so override can be appended to CubebSinkStream's destructor.
2019-02-25audio_core/cubeb_sink: Resolve variable shadowing warnings in SamplesInQueueLioncash
The name of the parameter was shadowing the member variable of the same name. Instead, alter the name of the parameter to prevent said shadowing.
2018-12-13audio_core: Make g_sink_details internally linkedLioncash
We can hide the direct array from external view and instead provide functions to retrieve the necessary info. This has the benefit of completely hiding the makeup of the SinkDetails structure from the rest of the code. Given that this makes the array hidden, we can also make the array constexpr by altering the members slightly. This gets rid of several static constructor calls related to std::vector and std::function. Now we don't have heap allocations here that need to occur before the program can even enter main(). It also has the benefit of saving a little bit of heap space, but this doesn't matter too much, since the savings in that regard are pretty tiny.
2018-10-27cubeb_sink: ignore null-name device when selectingWeiyi Wang
We already ignore them on listing devices. We should do the same when selecting devices. This fix a crash when opening a specific device while there is a null device in the list
2018-09-17Merge pull request #1321 from lioncash/audio-shadowbunnei
cubeb_sink: Get rid of variable shadowing within CubebSink's constructor
2018-09-17Merge pull request #1320 from lioncash/namebunnei
cubeb_sink: Correct context name in ListCubebSinkDevices()
2018-09-15Port #4182 from Citra: "Prefix all size_t with std::"fearlessTobi
2018-09-14cubeb_sink: Get rid of variable shadowing within CubebSink's constructorLioncash
The parameter of the lambda was shadowing the variable that was being assigned to.
2018-09-14cubeb_sink: Correct context name in ListCubebSinkDevices()Lioncash
This ain't Citra.
2018-09-12audio_core: Flush stream when not playing anythingMerryMage
2018-09-09cubeb_sink: Downsample arbitrary number of channelsMerryMage
2018-09-08cubeb_sink: Perform audio stretchingMerryMage
2018-09-08cubeb_sink: Hold last available value instead of writing zerosMerryMage
This reduces clicking in output audio should we underrun.
2018-09-08cubeb_sink: Use RingBufferMerryMage
2018-09-08Add audio stretching supportfearlessTobi
2018-08-12cubeb_sink: Protect queue with a mutexMerryMage
2018-08-04audio_core: Use s16 where possible for audio samples.bunnei
2018-08-04cubeb_sink: Support variable sample_rate and num_channels.bunnei
2018-08-04audio_core: Sinks need unique names as well.bunnei
2018-07-30audio_core: Implement Sink and SinkStream interfaces with cubeb.bunnei