Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Fix JACK process callback handling | Chris Robinson | 2020-01-12 | 1 | -50/+48 |
| | | | | | | The callback apparently can't be set after activation, but we can't allocate the ring buffer until after activation when the callback is already getting called. An ugly flag it is, then, I guess. | ||||
* | Don't allocate the ring buffer for JACK before activation | Chris Robinson | 2020-01-11 | 1 | -32/+20 |
| | | | | | | | | | | | | | | It seems the JACK server can send buffer size change events during device reset and wait on it, which causes a failure since the change event can't be processed during a reset. It's otherwise impossible to safely disable the change event callback during a reset since the lock is already held and the callback can be waiting to acquire it. The only guarantee we seem to have is the event callback won't be invoked after jack_activate succeeds. So instead, the buffer size can be queried after jack_activate and the ring buffer allocated then, instead of using an event callback. This does mean the buffer size can change with a start() call, but it's better than a failure to start. | ||||
* | Make CreateRingBuffer a static RingBuffer method | Chris Robinson | 2020-01-10 | 10 | -13/+13 |
| | |||||
* | Make a duration type to handle WASAPI reference times | Chris Robinson | 2019-12-22 | 1 | -34/+36 |
| | |||||
* | Print the unhandled subformat | Chris Robinson | 2019-12-22 | 1 | -54/+54 |
| | |||||
* | Try harder to find a matching WASAPI configuration | Chris Robinson | 2019-12-22 | 1 | -92/+110 |
| | | | | | | As long as the lowest channel bits match the enabled bits for a given configuration, higher bits from any extra channels can be ignored since they can be skipped. | ||||
* | Handle padding between device sample frames | Chris Robinson | 2019-12-21 | 15 | -36/+58 |
| | | | | | | | | The padding must be constant and sample type aligned (e.g. some fixed multiple of two bytes between the start of two consecutive frames for 16-bit output). The intent is to always have the ability for stereo output with WASAPI even if the device has some other unsupported configuration, as long as front-left and front-right exist. | ||||
* | Add a config option for custom ALSA capture devices | Chris Robinson | 2019-10-27 | 1 | -18/+16 |
| | |||||
* | Gracefully drain the OpenSL capture buffer on disconnect | Chris Robinson | 2019-10-10 | 1 | -13/+24 |
| | |||||
* | Use one PulseAudio mainloop per device | Chris Robinson | 2019-10-09 | 1 | -221/+270 |
| | | | | | To help avoid devices blocking on each other when handling asynchronous messages. | ||||
* | Remove a useless prebuf check with PulseAudio | Chris Robinson | 2019-10-09 | 1 | -14/+0 |
| | |||||
* | Create the initial PulseAudio stream corked | Chris Robinson | 2019-10-09 | 1 | -1/+2 |
| | |||||
* | Don't track the PulseAudio context state in devices | Chris Robinson | 2019-10-09 | 1 | -30/+0 |
| | |||||
* | Make C callbacks noexcept | Chris Robinson | 2019-10-09 | 8 | -88/+85 |
| | | | | | No telling what would happen if exceptions managed to get back into presumably C-based callers. | ||||
* | Use smart pointers for ALSA param handles | Chris Robinson | 2019-10-09 | 1 | -132/+128 |
| | | | | And simplify some related error handling | ||||
* | Never return null from CreateRingBuffer | Chris Robinson | 2019-10-08 | 10 | -43/+5 |
| | | | | | 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 messages | Chris Robinson | 2019-10-08 | 14 | -184/+46 |
| | |||||
* | Define some simple wrapper methods inline | Chris Robinson | 2019-10-08 | 1 | -63/+30 |
| | |||||
* | Avoid raw lock/unlock calls | Chris Robinson | 2019-10-07 | 14 | -58/+44 |
| | |||||
* | Fix BackendVase typo | Chris Robinson | 2019-10-07 | 1 | -1/+1 |
| | |||||
* | Reduce some indentation | Chris Robinson | 2019-10-07 | 1 | -32/+36 |
| | |||||
* | Use exceptions for backend open failures | Chris Robinson | 2019-10-07 | 19 | -542/+514 |
| | |||||
* | Make MAX_RESAMPLER_PADDING specify the total padding | Chris Robinson | 2019-09-28 | 1 | -1/+1 |
| | |||||
* | Use FastBSinc24 for WASAPI and CoreAudio capture | Chris Robinson | 2019-09-28 | 2 | -2/+2 |
| | | | | Given a fixed rate, there's no downside to the fast version. | ||||
* | Fix a couple more conversion warnings | Chris Robinson | 2019-09-22 | 1 | -6/+6 |
| | |||||
* | Make the resampler type an enum class | Chris Robinson | 2019-09-22 | 2 | -2/+2 |
| | |||||
* | Fix some Windows warnings | Chris Robinson | 2019-09-18 | 2 | -12/+12 |
| | |||||
* | Clean up some more conversion warnings | Chris Robinson | 2019-09-16 | 1 | -22/+19 |
| | |||||
* | Clean up some more shadowing warnings | Chris Robinson | 2019-09-16 | 1 | -8/+6 |
| | |||||
* | Add a fallback if SLAndroidDataFormat_PCM_EX isn't available | Chris Robinson | 2019-09-15 | 1 | -56/+91 |
| | |||||
* | Make the BackendFactory base destructor protected | Chris Robinson | 2019-09-15 | 1 | -2/+3 |
| | |||||
* | Return and pass more appropriate types for backends | Chris Robinson | 2019-09-15 | 19 | -223/+222 |
| | |||||
* | Fix a few more GCC warnings | Chris Robinson | 2019-09-14 | 3 | -4/+7 |
| | |||||
* | Enable and fix more warnings | Chris Robinson | 2019-09-14 | 2 | -1/+3 |
| | |||||
* | Don't hold the pulse lock while not necessary | Chris Robinson | 2019-09-14 | 1 | -1/+2 |
| | |||||
* | Fix some more implicit conversions noted by GCC | Chris Robinson | 2019-09-14 | 4 | -13/+14 |
| | |||||
* | Clean up (most) implicit conversions in the backends | Chris Robinson | 2019-09-14 | 6 | -86/+98 |
| | |||||
* | Store the ambisonic order as unsigned | Chris Robinson | 2019-09-13 | 1 | -1/+1 |
| | |||||
* | Return unsigned values from the FromDevFmt functions | Chris Robinson | 2019-09-13 | 9 | -68/+55 |
| | |||||
* | Clean up more implicit conversions | Chris Robinson | 2019-09-13 | 3 | -23/+26 |
| | |||||
* | Use unsigned channel indices | Chris Robinson | 2019-09-12 | 1 | -2/+2 |
| | |||||
* | Fix a few more C-style casts | Chris Robinson | 2019-09-11 | 2 | -3/+4 |
| | |||||
* | Fix function declaration | Chris Robinson | 2019-09-11 | 1 | -2/+3 |
| | |||||
* | Avoid C-style casts in C++ | Chris Robinson | 2019-09-11 | 4 | -8/+13 |
| | |||||
* | Avoid dynamically allocating ChannelConverter | Chris Robinson | 2019-09-10 | 1 | -16/+6 |
| | |||||
* | Use al::byte for a couple more buffers | Chris Robinson | 2019-08-25 | 2 | -11/+11 |
| | |||||
* | Use unsigned for the sample and channel converters | Chris Robinson | 2019-08-20 | 2 | -10/+9 |
| | |||||
* | Add methods to get env vars as an optional | Chris Robinson | 2019-08-12 | 1 | -2/+3 |
| | |||||
* | Move the wstr converters to a separate header | Chris Robinson | 2019-08-11 | 4 | -0/+4 |
| | |||||
* | Move the dynload decls and defs to common | Chris Robinson | 2019-08-10 | 5 | -4/+6 |
| |