aboutsummaryrefslogtreecommitdiffstats
path: root/alc
Commit message (Collapse)AuthorAgeFilesLines
* Use a span instead of a count+pointerChris Robinson2023-01-111-1/+1
|
* Rename some struct membersChris Robinson2023-01-102-5/+5
| | | | And make a related function a member function
* Don't rely on mRateMatch while waiting for PipeWire timing infoChris Robinson2023-01-091-5/+2
|
* Handle the stereo-encoding option for loopback devices tooChris Robinson2023-01-091-12/+12
|
* Fix handling the ALC_HRTF_SOFT attributeChris Robinson2023-01-091-1/+20
|
* Add an option to mix on PipeWire's non-RT threadChris Robinson2023-01-081-14/+14
|
* Better handle negative sample rate valuesChris Robinson2023-01-081-5/+5
|
* Update some config commentsChris Robinson2023-01-081-1/+1
|
* Get device config options earlier in a device updateChris Robinson2023-01-071-310/+275
|
* Avoid using a reversed all-pass for the front stablizerChris Robinson2023-01-062-7/+2
| | | | | | While a neat trick, it's been shown to be too volatile and add noise as the signal gets louder. It's better to just accept the phase shift and ensure everything stays aligned.
* Rename some lambda parameters to avoid shadowing warningsChris Robinson2023-01-055-15/+15
|
* Add and use mixers that process one input and output channelChris Robinson2023-01-054-8/+8
|
* Simplify handling effect output for spatial effectsChris Robinson2023-01-045-83/+140
| | | | | | | | | | | | Effects are given a 3D ambisonic buffer of the same order as the device, for processing surround sound. Effects that pass input channels to matching output channels as it processes them don't need to mix each input channel to all output channels. At most, an input channel may mix to a different output channel, if the target buffer uses a different channel layout, and need a gain adjustment, if it uses a different scaling. With a 2D output buffer, a number of channels can be skipped altogether.
* Handle UHJ better with convolution reverbChris Robinson2023-01-011-44/+66
| | | | | | It's now decoded to B-Format while being FFT'd, and processed as B-Format. Again, not that UHJ should really ever be used for convolution, but it's a valid format someone may want to use despite the overhead from converting it.
* Avoid some explicit casts and referencesChris Robinson2023-01-013-15/+16
|
* Use a simple spinlock to protect the current global contextChris Robinson2022-12-303-7/+26
| | | | | This will be much for efficient than a recursive mutex, given the amount of contention will be very low.
* Avoid using a macro to set a context error and returnChris Robinson2022-12-241-6/+0
|
* Avoid duplicate code to update the reverb delay linesChris Robinson2022-12-221-14/+7
|
* Include the reverb delay times in the fade sample countChris Robinson2022-12-201-24/+15
|
* Make sure to update the input filters with partial updatesChris Robinson2022-12-201-1/+11
|
* Clean up some reverb mixing loopsChris Robinson2022-12-191-21/+18
|
* Turn a static member function into a lambda where it's usedChris Robinson2022-12-191-31/+29
| | | | And clean up some parameters
* Remove a redundant commentChris Robinson2022-12-181-4/+1
|
* Use a size_t for the reverb decay fade countChris Robinson2022-12-181-2/+2
|
* Clear the old reverb pipeline buffer when it's doneChris Robinson2022-12-171-9/+46
|
* Rework reverb fading to toggle between pipelinesChris Robinson2022-12-171-475/+360
| | | | | | | | | | | | When non-simple properties are changed, the active reverb pipeline is switched and the new parameters set on that one. The main process function will then be set to fade out input on the old pipeline, fade in input on the new pipeline, then process and mix both pipelines. After some number of samples (calculated from its decay time), the old pipeline will stop processing. This should improve the transition from a highly reverberant environment by not harshly interpolating to the new environment, as well as better handle changes to the all-pass and T60 filters.
* Use a bitset for the enabled event flagsChris Robinson2022-12-161-4/+3
|
* Avoid inlining certain exception functionsChris Robinson2022-12-162-7/+17
|
* Avoid extraneous temporaries when filling vectorsChris Robinson2022-12-152-8/+18
|
* Avoid manually specifying FFT template parametersChris Robinson2022-12-142-5/+5
|
* Implement an al::unreachable wrapper/helperChris Robinson2022-12-131-1/+1
|
* Rename a potentially confusing member functionChris Robinson2022-12-081-2/+2
|
* Avoid setting PipeWire stream properties with separate callsChris Robinson2022-12-061-12/+11
|
* Avoid using a macro to wrap standard attributesChris Robinson2022-12-067-36/+36
|
* Avoid LIKELY/UNLIKELY macrosChris Robinson2022-12-055-23/+23
|
* Avoid some uses of the LIKELY/UNLIKELY macrosChris Robinson2022-12-051-1/+1
|
* Use standard likely/unlikely attributes when availableChris Robinson2022-12-053-12/+12
|
* Use the correct variable for reading the WASAPI playback rateChris Robinson2022-12-051-2/+2
|
* Fix building with PipeWire 0.3.49 and earlierChris Robinson2022-12-021-0/+19
|
* Add missing device_clock/source_latency enums for queryingChris Robinson2022-11-291-0/+9
|
* Use complex floats for convolution reverb FFTsChris Robinson2022-11-242-24/+23
|
* Don't prematurely change ALCdevice::BufferSizeChris Robinson2022-11-221-7/+11
|
* Fix WASAPI capture handling the background COM threadChris Robinson2022-11-191-18/+30
|
* Avoid a use-after-free in the ALSA backendChris Robinson2022-11-161-12/+12
|
* Use the correct frame size for WASAPI resamplingChris Robinson2022-11-131-2/+2
|
* Change a function to a static methodChris Robinson2022-11-132-4/+5
|
* Add a config option to prevent WASAPI from using a resamplerChris Robinson2022-11-121-1/+5
|
* Add a resampler to WASAPI outputChris Robinson2022-11-121-10/+75
| | | | | | | This allows mixing at various samples rates that WASAPI doesn't otherwise support. This is mostly helpful for users that have unnecessarily high device rates (96 or 192khz), and lets the ALC_FREQUENCY attribute or frequency config option set a lower mixing rate for more efficient processing.
* Dynamically start/stop the WASAPI message threadChris Robinson2022-11-121-86/+117
|
* Try to detect the update and buffer size from PipeWireChris Robinson2022-11-081-4/+45
|