aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/backends/pulseaudio.c
Commit message (Collapse)AuthorAgeFilesLines
* Pass the device name list to the backend probe methodChris Robinson2018-09-071-10/+11
|
* Release the PulseAudio mainloop lock soonerChris Robinson2018-03-141-10/+16
|
* Avoid using pa_stream_begin_write with PulseAudioChris Robinson2018-03-141-23/+9
| | | | | | | | | | | | | It seems to actually have a negative performance impact when the system is under load. Without having actual measurements for any potential benefits, simply go with the recommended (and previous fallback) method of allocating space for the write and passing the free method. Ideally some kind of ring buffer could be used, so rather than constantly allocating and freeing blocks of memory, it uses the same memory over again with the callback marking each one as reusable. Unfortunately the callback isn't given much information to work with, and the update size (minreq) can potentially change during playback, which complicates things.
* Make the Connected state atomicChris Robinson2018-02-041-6/+7
| | | | Also don't send the Disconnected event more than once.
* Avoid potentially writing partial samplesChris Robinson2018-02-031-1/+3
|
* Provide more descriptive messages to disconnection eventsChris Robinson2018-02-031-8/+9
|
* Don't bother with an explicit stop backend methodChris Robinson2018-01-291-26/+16
|
* Call the backend close method in the destructorChris Robinson2018-01-281-12/+16
|
* Use GetProcBinary to get the executable name for PulseAudioChris Robinson2018-01-131-4/+7
|
* Move the config function declarations to their own headerChris Robinson2018-01-111-0/+1
| | | | And rename alcConfig.c to alconfig.c for consistency.
* Limit device buffer based on PulseAudio's tlengthChris Robinson2017-06-151-10/+9
| | | | | | Unfortunately PulseAudio has a habit of limiting tlength, and trying to calculate the device's buffer length to write regardless of tlength could result in some amount always being writable.
* Add an env var to specify a default pulse deviceChris Robinson2017-05-161-0/+7
| | | | | Some apps don't allow selecting an audio device, and due to problems with KDE, PulseAudio isn't allowed to move the stream after being created by default.
* Store the ambisonic order separate from the channel enumChris Robinson2017-04-121-7/+41
|
* Clean up some formattingChris Robinson2017-04-081-5/+5
|
* Try to write the full configured buffer length with PulseAudioChris Robinson2017-04-081-15/+37
| | | | | This basically ignores tlength even if it's smaller than what was requested. It keeps up-to-date with minreq changes too now, in case that happens.
* Rename al_string_* functions to alstr_*Chris Robinson2017-04-041-40/+40
|
* Print warnings about missing libraries and functionsChris Robinson2017-02-211-0/+8
|
* Hold Pulse's mainloop lock while calling capture functionsChris Robinson2017-01-101-2/+10
| | | | | | | Since commit c837484015e, the backend's lock is no longer implicitly held when calling capture functions. A separate mutex is used to ensure serial access, and its up to the backend to protect against races and reentrancy with the audio API.
* Remove DevFmtBFormat3D, which is covered by DevFmtAmbi1Chris Robinson2016-07-311-1/+0
|
* Add a config to output first-, second-, or third-order ambisonicsChris Robinson2016-07-291-0/+3
| | | | | | | | | Currently incomplete, as second- and third-order output will not correctly handle B-Format input buffers. A standalone up-sampler will be needed, similar to the high-quality decoder. Also, output is ACN ordering with SN3D normalization. A config option will eventually be provided to change this if desired.
* Combine VECTOR_RESIZE and VECTOR_RESERVEChris Robinson2016-07-261-1/+1
|
* Change the backend getLatency method to return the clock time tooChris Robinson2016-05-281-13/+25
| | | | | | This will also allow backends to better synchronize the tracked clock time with the device output latency, without necessarily needing to lock if the backend API can allow for it.
* Shorten VECTOR_ITER_ macros to VECTOR_Chris Robinson2016-04-151-6/+6
|
* Add a hack to workaround erroneous prebuf values from pulseChris Robinson2016-03-311-5/+28
|
* Add options to disable Pulse's and ALSA's resamplersChris Robinson2015-11-071-1/+2
|
* Specify the pa_channel_map directly instead of through a stringChris Robinson2015-09-041-30/+43
|
* Use the correct device name for PulseAudio tooChris Robinson2015-09-031-10/+24
| | | | | Like mmdevapi. duplicate device names will have a '#2' or such appended, so the device's reported name may be incorrect.
* Allow for device-specific config valuesChris Robinson2015-08-281-4/+4
|
* Fix handling of PulseAudio devices that have the same descriptionChris Robinson2015-08-141-10/+44
|
* Add a macro to simplify allocating and constructing an objectChris Robinson2015-05-181-12/+2
|
* Ensure PulseAudio's mixing loop is signaled when stoppingChris Robinson2015-01-211-0/+8
|
* 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
|
* Support B-Format output with the wave file writerChris Robinson2014-11-251-0/+3
|
* Require at least pulse client 0.9.16Chris Robinson2014-11-241-48/+8
|
* Trace PulseAudio's active portChris Robinson2014-11-241-2/+5
|
* Set headphones when pulse reports using the headphones portChris Robinson2014-11-231-0/+3
|
* Don't force UpdateSize to a multiple of 4 after buffer metrics were setChris Robinson2014-11-171-2/+0
|
* Always get the pulseaudio sink info on device resetChris Robinson2014-11-171-16/+14
|
* Fix 5.1 surround soundChris Robinson2014-11-071-6/+6
| | | | | | | | | | | | | Apparently, 5.1 surround sound is supposed to use the "side" channels, not the back channels, and we've been wrong this whole time. That means the "5.1 Side" is actually the correct 5.1 setup, and using the back channels is anomalous. Additionally, this means the 5.1 buffer format should also use the the side channels instead of the back channels. A final note: the 5.1 mixing coefficients are changed so both use the original 5.1 surround sound set (with the surround channels at +/-110 degrees). So the only difference now between 5.1 "side" and 5.1 "back" is the channel labels.
* Update COPYING to the latest ↵François Cami2014-08-181-2/+2
| | | | https://www.gnu.org/licenses/old-licenses/lgpl-2.0.txt to fix the FSF' address Fix the FSF' address in the source
* Use VECTOR_FIND_IF and VECTOR_FOR_EACH instead of manual loopsChris Robinson2014-08-091-49/+27
|
* Use pulseaudio's write callback to signal a mixer proc wakeupChris Robinson2014-07-261-3/+11
|
* Don't require pre-declaring vector typesChris Robinson2014-07-061-1/+1
|
* Don't print an ERR if pulse fails to get latency info due to no dataChris Robinson2014-05-261-3/+8
| | | | It just means it was called too quickly after starting.
* Initialize a pointer to NULL instead of a stringChris Robinson2014-05-151-2/+1
|
* Add a helper VECTOR_FOR_EACH macroChris Robinson2014-04-301-10/+7
|
* Use a helper function to clear PulseAudio device listsChris Robinson2014-04-241-36/+20
|
* Avoid forward-declaring backend vtablesChris Robinson2014-04-231-28/+35
|
* Trace the device name being opened in ALSA and PulseAudioChris Robinson2014-04-211-0/+2
|