aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Don't update the channel format if all JACK ports were allocatedChris Robinson2014-12-231-9/+11
|
* Try the device-specified channel configuration firstChris Robinson2014-12-231-3/+15
| | | | | This does basically no checking that the channel config is correct, but should be good enough for when non-stereo modes are requested.
* Use the custom ringbuffer instead of JACK'sChris Robinson2014-12-231-41/+20
|
* Add a lockless ringbufferChris Robinson2014-12-232-0/+290
| | | | | | Largely copied from JACK, it's extended to work with user-specified element sizes instead of bytes. This is necessary to be able to work with 6- and 7- channel output modes.
* Don't set unused pointers to NULL, don't try to write 0 samplesChris Robinson2014-12-231-7/+8
|
* At least measure the ringbuffer size for JACK's latencyChris Robinson2014-12-231-1/+17
| | | | | | We should also add the port latency, but there's currently no way to ensure it's synchronized with the ringbuffer (the ringbuffer will update before the port latency gets updated).
* Add an option to prevent spawning a JACK serverChris Robinson2014-12-222-2/+11
|
* Add JACK to the config utilityChris Robinson2014-12-221-0/+1
|
* Add an option for an increased ringbuffer size with JACKChris Robinson2014-12-222-2/+24
|
* Fill out the JACK playback backendChris Robinson2014-12-221-15/+326
| | | | | | | | | | | | | | | | | | | | | | | | A few notes about it: The OpenAL device's requested buffer metrics are ignored, and instead the device will keep one JACK-sized buffer's worth of audio prepared for JACK's next process request. Output is restricted to 32-bit float stereo. Part of this is because JACK requires a buffer size that's a power of 2 (measured in samples), and the ringbuffer requires a buffer size that's a power of 2 (measured in bytes). A channel count of 6 (5.1) or 7 (6.1) will not work without causing a sample to split over the edge of the ringbuffer. Additioanlly, JACK doesn't provide information about what channel configuration a device or set of ports has, so there's no way to know what ports 3 and up map to (even the first two ports are unknown, but assuming stereo seems to work well enough). There is no device latency measurement (for AL_SOFT_source_latency) due to the non-atomicity between the ringbuffer's read size and port latency. A method is needed to ensure the ringbuffer's read size and port latency can both be measured between the end of a JACK update cycle (when the port latency has been updated with the newly-retrieved audio) and the following ringbuffer read update.
* Add a skeleton backend for JACKChris Robinson2014-12-215-0/+290
|
* Add a cmake module to find JACKChris Robinson2014-12-211-0/+60
|
* Set error if capture device fails to startChris Robinson2014-12-211-4/+10
|
* Trace lparam and wparam message valuesChris Robinson2014-12-211-1/+1
|
* Check the PROPVARIANT type before useChris Robinson2014-12-211-2/+8
|
* Use VECTOR_FOR_EACH instead of a manual loopChris Robinson2014-12-211-9/+7
|
* Use a macro for the record thread nameChris Robinson2014-12-214-3/+5
|
* Cast to the pointer-to-type to increment the bufferChris Robinson2014-12-211-1/+1
|
* Fix logging on WindowsChris Robinson2014-12-202-3/+3
|
* Support capture with mmdevapiChris Robinson2014-12-192-1/+552
|
* Handle logging Unicode strings on WindowsChris Robinson2014-12-191-38/+62
|
* Set the right variable when assuming CPU extensionsChris Robinson2014-12-191-3/+3
|
* Do up to 256 samples at a time with multi-step loopsChris Robinson2014-12-189-25/+23
|
* Inline a couple functionsChris Robinson2014-12-181-2/+2
|
* Offset to the buffer's channel start firstChris Robinson2014-12-181-3/+6
|
* Avoid duplicate calculationsChris Robinson2014-12-181-4/+4
|
* Assert that there's a buffer for mixingChris Robinson2014-12-171-0/+1
| | | | For Clang's static analysis.
* Set a couple pulse callbacks to NULL during reset, and minor cleanupsChris Robinson2014-12-171-9/+9
|
* Don't kill pulseaudio's mixer thread if it's already killedChris Robinson2014-12-171-1/+1
|
* Use aluVector and aluMatrix in a couple more placesChris Robinson2014-12-162-46/+31
|
* Constify some variablesChris Robinson2014-12-162-24/+24
|
* Pass a vectory to aluMatrixVectorChris Robinson2014-12-161-20/+23
|
* Use aluVector in some more placesChris Robinson2014-12-166-93/+66
|
* Add explicit matrix and vector types to operate withChris Robinson2014-12-164-51/+85
|
* Multiply samples with the cubic coeffs before transposingChris Robinson2014-12-152-12/+14
| | | | This avoids having to transpose the cubic coefficients.
* Load samples with _mm_loadu_ps in the cubic SSE resamplersChris Robinson2014-12-152-8/+10
|
* Add SSE2 and SSE4.1 cubic resamplersChris Robinson2014-12-154-0/+139
|
* Use a lookup table to do cubic resamplingChris Robinson2014-12-155-11/+29
|
* Transpose the cubic matrix opChris Robinson2014-12-151-6/+6
|
* Use the default channel layout in alffplay if one isn't specifiedChris Robinson2014-12-121-1/+3
|
* Don't pass float literals for unsigned intsChris Robinson2014-12-061-2/+2
|
* Fix a potential leak when opening a data file on WindowsChris Robinson2014-12-011-0/+2
|
* Remove IrSize from DirectParamsChris Robinson2014-11-293-4/+4
|
* Remove an unnecessary maxf()Chris Robinson2014-11-291-1/+1
|
* Check mmdevice endpoint for being headphonesChris Robinson2014-11-272-1/+33
|
* Avoid unnecessary uses of ALCdevice_Lock and ALCdevice_UnlockChris Robinson2014-11-271-8/+8
|
* Set headphones when dsound reports headphonesChris Robinson2014-11-271-1/+3
|
* Improve ambient gain calculationsChris Robinson2014-11-252-5/+5
|
* Support B-Format output with the wave file writerChris Robinson2014-11-2510-2/+67
|
* Halve the gain of the Cube8 coefficientsChris Robinson2014-11-251-8/+8
|