aboutsummaryrefslogtreecommitdiffstats
path: root/alc
Commit message (Collapse)AuthorAgeFilesLines
* Create the initial PulseAudio stream corkedChris Robinson2019-10-091-1/+2
|
* Don't track the PulseAudio context state in devicesChris Robinson2019-10-091-30/+0
|
* Make C callbacks noexceptChris Robinson2019-10-098-88/+85
| | | | | No telling what would happen if exceptions managed to get back into presumably C-based callers.
* Use smart pointers for ALSA param handlesChris Robinson2019-10-091-132/+128
| | | | And simplify some related error handling
* Catch exceptions from backend start callsChris Robinson2019-10-091-11/+24
|
* Never return null from CreateRingBufferChris Robinson2019-10-0811-44/+8
| | | | | Allocation failure would already throw a bad_alloc anyway, now a size overflow throws an exception too.
* Clean up some exception messages and avoid duplicate log messagesChris Robinson2019-10-0814-184/+46
|
* Define some simple wrapper methods inlineChris Robinson2019-10-081-63/+30
|
* Improve logging for WindowsChris Robinson2019-10-082-6/+6
|
* Avoid raw lock/unlock callsChris Robinson2019-10-0714-58/+44
|
* Fix BackendVase typoChris Robinson2019-10-071-1/+1
|
* Reduce some indentationChris Robinson2019-10-071-32/+36
|
* Use exceptions for backend open failuresChris Robinson2019-10-0720-564/+524
|
* Put the pragma defines in a separate headerChris Robinson2019-10-071-1/+2
|
* Use std::array instead of plain arrays in a couple placesChris Robinson2019-10-053-28/+23
|
* Use a span instead of a reference-to-arrayChris Robinson2019-10-052-20/+24
|
* Avoid duplicate structsChris Robinson2019-10-053-11/+6
|
* Avoid direct function template and alias typesChris Robinson2019-10-033-38/+24
| | | | | | | It's somewhat ambiguous what they mean. Sometimes acting as a pointer, other times having weird behavior. Pointer-to-function types are explicitly defined as such, whereas uses of these tend to be as references (never null and not changeable).
* Remove the Offset parameter from ApplyCoeffsChris Robinson2019-10-024-88/+97
|
* Remove an unnecessary struct specifierChris Robinson2019-10-021-1/+1
|
* Fix a commentChris Robinson2019-10-021-1/+1
|
* Clean up some unnecessary includesChris Robinson2019-10-023-17/+7
|
* Clean up some ALfloat -> floatChris Robinson2019-10-026-71/+65
|
* Move ALvoice from alu.h to a separate headerChris Robinson2019-10-028-326/+351
|
* Move a couple types to the source they're used inChris Robinson2019-10-022-6/+7
|
* Rename mixvoice.cpp to voice.cppChris Robinson2019-10-021-0/+0
|
* Make sure the temporary HRIRs are properly alignedChris Robinson2019-10-011-1/+1
|
* Remove an unnecessary functionChris Robinson2019-10-011-9/+5
|
* Clear the HRTF state values on allocationChris Robinson2019-09-301-1/+1
|
* Avoid infs/nans in the crest detectorChris Robinson2019-09-301-2/+3
| | | | | | It needs to be investigated why the rendered mix sometimes has such large sample values when starting, but the compressor/limiter shouldn't generate NaNs because of it.
* Separate a couple assignments from conditionalsChris Robinson2019-09-301-1/+2
|
* Repack the bsinc resamplers coefficientsChris Robinson2019-09-293-12/+12
| | | | | | This puts the base coefficients and the phase deltas next to each other. This improves caching, as the base and phase deltas are always used together while the scales are only used for the non-fast versions.
* Modify the bsinc resamplerChris Robinson2019-09-291-1/+1
| | | | | Readjusted the bsinc12 cutoff back to -60dB. Also increased the filter's phase count.
* Silence an MSVC warningChris Robinson2019-09-281-1/+5
|
* Check MAX_RESAMPLER_PADDING properly to ensure it's large enoughChris Robinson2019-09-282-4/+4
|
* Make the BSincTables constexpr in an anonymous namespaceChris Robinson2019-09-281-1/+0
|
* Make MAX_RESAMPLER_PADDING specify the total paddingChris Robinson2019-09-287-27/+30
|
* Use FastBSinc24 for WASAPI and CoreAudio captureChris Robinson2019-09-282-2/+2
| | | | Given a fixed rate, there's no downside to the fast version.
* Combine two function calls into oneChris Robinson2019-09-284-111/+108
|
* Add "fast" variants for the bsinc resamplersChris Robinson2019-09-284-7/+14
| | | | | | This simply omits the scale factor from the filter, similar to how up-sampling does. The consequence of this is less smooth transitions when ramping the pitch while down-sampling, but otherwise behaves fine.
* Implement a "fast" bsinc pathChris Robinson2019-09-268-6/+135
| | | | | | | | | | This takes advantage of the fact than when increment <= 1 (when not down- sampling), the scale factor is always 0. As a result, the scale and scale-phase deltas never contribute to the filtered output. Removing those multiply+add operations cuts half of the work done by the inner loop. Sounds that do need to down-sample (when played with a high pitch, or is 48khz on 44.1khz output, for example), still go through the normal bsinc process.
* Avoid extraneous parametersChris Robinson2019-09-253-19/+17
|
* Use blended HRIRs for the B-Format decodeChris Robinson2019-09-243-70/+107
|
* Fix unsigned 8-bit buffersChris Robinson2019-09-241-1/+1
|
* Use an array to match the HRTF rendering methodChris Robinson2019-09-241-17/+20
|
* Add a missing header for AndroidChris Robinson2019-09-231-0/+1
|
* Fix a couple more conversion warningsChris Robinson2019-09-221-6/+6
|
* Make the resampler type an enum classChris Robinson2019-09-226-27/+27
|
* Move the ifstream wrapper to commonChris Robinson2019-09-225-209/+9
|
* Avoid storing an integer in a pointerChris Robinson2019-09-211-3/+6
| | | | | | C++ does not guarantee that, given an int of sufficient size, converting int->ptr->int will result in the original value. A pointer may have more than one integer representation. Only ptr->int->ptr round trips are well-defined.