Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Try to detect headphones with CoreAudio | Chris Robinson | 2023-04-24 | 1 | -0/+18 |
| | |||||
* | Recognize I24 and I32 formats from Oboe | Chris Robinson | 2023-03-15 | 1 | -1/+15 |
| | |||||
* | Allow Oboe to resample when requesting a sample rate | Chris Robinson | 2023-03-15 | 1 | -0/+3 |
| | |||||
* | Use macros for the likely/unlikely attributes | Chris Robinson | 2023-03-01 | 4 | -69/+70 |
| | | | | | The syntax parser for GCC 8 (and earlier?) fails when these attributes are in certain places. | ||||
* | Check a string for NULL before calling strtoull | Chris Robinson | 2023-02-11 | 1 | -8/+9 |
| | |||||
* | Distinguish a couple log messages | Chris Robinson | 2023-01-30 | 1 | -3/+3 |
| | | | | And downgrade an ERR to a WARN | ||||
* | Use the object serial ID from PipeWire when available | Chris Robinson | 2023-01-24 | 1 | -21/+47 |
| | | | | | | | | | | | Using the node ID as a target is deprecated in newer versions of PipeWire. The serial ID is a monotonic 64-bit integer ID, incremeneted for every object created, so is guaranteed to always refer to the same target (until it wraps around, which I suppose isn't expected/allowed to happen), compared to the 32-bit node ID which I guess allows reuse. We could instead use the target node's name instead of the serial ID, but an integer is nicer to manage than a string. | ||||
* | Change a couple macros to constexpr variables | Chris Robinson | 2023-01-16 | 1 | -2/+2 |
| | |||||
* | clang-tidy cleanups (#800) | Rosen Penev | 2023-01-15 | 4 | -11/+11 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * clang-tidy: use bool literals Found with modernize-use-bool-literals Signed-off-by: Rosen Penev <[email protected]> * clang-tidy: replace std::bind with lambdas Found with modernize-avoid-bind Signed-off-by: Rosen Penev <[email protected]> * clang-tidy: use data() instead of pointer stuff Found with readability-container-data-pointe Signed-off-by: Rosen Penev <[email protected]> * clang-tidy: use empty() Found with readability-container-size-empty Signed-off-by: Rosen Penev <[email protected]> * clang-tidy: remove static in anon namespace Found with readability-static-definition-in-anonymous-namespace Signed-off-by: Rosen Penev <[email protected]> * clang-tidy: remove const return Found with readability-const-return-type Signed-off-by: Rosen Penev <[email protected]> Signed-off-by: Rosen Penev <[email protected]> | ||||
* | Don't explicitly try to spawn servers by default | Chris Robinson | 2023-01-14 | 2 | -2/+2 |
| | |||||
* | Avoid using a non-0 span length over nullptr | Chris Robinson | 2023-01-13 | 1 | -17/+32 |
| | |||||
* | Write proper samples when starting the PulseAudio stream | Chris Robinson | 2023-01-13 | 1 | -17/+3 |
| | | | | | Instead of silence, to ensure the number of samples written to PulseAudio is the same as the number mixed/rendered. | ||||
* | Avoid single-use static class method wrappers | Chris Robinson | 2023-01-13 | 1 | -81/+46 |
| | |||||
* | Avoid unnecessary uses of make_optional | Chris Robinson | 2023-01-13 | 1 | -2/+4 |
| | |||||
* | Fix RingBuffer crash in OpenSL backend (#807) | IamSN0WBALL | 2023-01-12 | 1 | -1/+1 |
| | | | Co-authored-by: IamSN0WBALL <[email protected]> | ||||
* | Don't rely on mRateMatch while waiting for PipeWire timing info | Chris Robinson | 2023-01-09 | 1 | -5/+2 |
| | |||||
* | Add an option to mix on PipeWire's non-RT thread | Chris Robinson | 2023-01-08 | 1 | -14/+14 |
| | |||||
* | Avoid some explicit casts and references | Chris Robinson | 2023-01-01 | 2 | -13/+15 |
| | |||||
* | Avoid inlining certain exception functions | Chris Robinson | 2022-12-16 | 2 | -7/+17 |
| | |||||
* | Avoid extraneous temporaries when filling vectors | Chris Robinson | 2022-12-15 | 2 | -8/+18 |
| | |||||
* | Avoid setting PipeWire stream properties with separate calls | Chris Robinson | 2022-12-06 | 1 | -12/+11 |
| | |||||
* | Avoid using a macro to wrap standard attributes | Chris Robinson | 2022-12-06 | 4 | -27/+27 |
| | |||||
* | Avoid LIKELY/UNLIKELY macros | Chris Robinson | 2022-12-05 | 3 | -16/+16 |
| | |||||
* | Use standard likely/unlikely attributes when available | Chris Robinson | 2022-12-05 | 2 | -11/+11 |
| | |||||
* | Use the correct variable for reading the WASAPI playback rate | Chris Robinson | 2022-12-05 | 1 | -2/+2 |
| | |||||
* | Fix building with PipeWire 0.3.49 and earlier | Chris Robinson | 2022-12-02 | 1 | -0/+19 |
| | |||||
* | Don't prematurely change ALCdevice::BufferSize | Chris Robinson | 2022-11-22 | 1 | -7/+11 |
| | |||||
* | Fix WASAPI capture handling the background COM thread | Chris Robinson | 2022-11-19 | 1 | -18/+30 |
| | |||||
* | Avoid a use-after-free in the ALSA backend | Chris Robinson | 2022-11-16 | 1 | -12/+12 |
| | |||||
* | Use the correct frame size for WASAPI resampling | Chris Robinson | 2022-11-13 | 1 | -2/+2 |
| | |||||
* | Change a function to a static method | Chris Robinson | 2022-11-13 | 2 | -4/+5 |
| | |||||
* | Add a config option to prevent WASAPI from using a resampler | Chris Robinson | 2022-11-12 | 1 | -1/+5 |
| | |||||
* | Add a resampler to WASAPI output | Chris Robinson | 2022-11-12 | 1 | -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 thread | Chris Robinson | 2022-11-12 | 1 | -86/+117 |
| | |||||
* | Try to detect the update and buffer size from PipeWire | Chris Robinson | 2022-11-08 | 1 | -4/+45 |
| | |||||
* | Make sure sio_write and sio_read return valid values | Chris Robinson | 2022-11-07 | 1 | -5/+12 |
| | |||||
* | Add preliminary support for 7.1.4 output modes | Chris Robinson | 2022-11-03 | 10 | -4/+88 |
| | | | | | | | | I don't know how different sound APIs handle 7.1.4 ("Atmos" or "Auro3D") output, but currently it simply specifies the additional channels with the height channel labels. This isn't likely how it works for a virtualized channel bed, for playing over other with-height configurations (7.1.2, 5.1.4, etc), but this should be an okay start. | ||||
* | Remove unnecessary includes and forward declarations | Chris Robinson | 2022-09-23 | 1 | -7/+0 |
| | |||||
* | Remove an unnecessary include | Chris Robinson | 2022-09-22 | 1 | -1/+0 |
| | |||||
* | Use PulseAudio's threaded mainloop instead of a custom one | Chris Robinson | 2022-09-22 | 1 | -141/+160 |
| | |||||
* | Fix the ringbuffer write size | Chris Robinson | 2022-08-18 | 1 | -1/+1 |
| | |||||
* | Use an intermediate buffer for writing to the ringbuffer | Chris Robinson | 2022-08-18 | 1 | -26/+11 |
| | | | | | It doesn't seem as though AudioUnitRender likes being given two buffers to render/capture samples into segmented memory. | ||||
* | Pass the action flags to AudioUnitRender from the callback | Chris Robinson | 2022-08-17 | 1 | -3/+2 |
| | |||||
* | Pass the bus number to AudioUnitRender from the callback | Chris Robinson | 2022-08-16 | 1 | -2/+2 |
| | |||||
* | Add media class for Audio/Source/Virtual as a valid node (#747) | Eir W | 2022-08-02 | 1 | -1/+6 |
| | |||||
* | Declare variables closer to where they're used | Chris Robinson | 2022-07-18 | 1 | -4/+2 |
| | |||||
* | Define PW_KEY_NODE_RATE when needed | Chris Robinson | 2022-06-24 | 1 | -0/+5 |
| | |||||
* | Fix the PipeWire version check | Chris Robinson | 2022-06-24 | 1 | -1/+2 |
| | | | | | | PW_CHECK_VERSION checks if the header version is equal to or newer than the values specified, it can't be used to check if the library version is equal to or newer than the header version. | ||||
* | Match exactly 5.1 Rear in WASAPI | Chris Robinson | 2022-06-16 | 1 | -2/+2 |
| | | | | | So 7.1 and other configurations like it aren't detected as 5.1 Rear despite having side channels. | ||||
* | Handle a blank channel mask from WASAPI | Chris Robinson | 2022-06-14 | 1 | -10/+18 |
| | | | | | | | Without a channel mask, the channels are treated as "raw" or unknown. Auto- detection will only go up to stereo (assuming the first two channels are front- left and front-right), while explicit requests will work as long as there are enough channels (the user is responsible for ensuring a correct setup). |