Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Don't set unused pointers to NULL, don't try to write 0 samples | Chris Robinson | 2014-12-23 | 1 | -7/+8 |
| | |||||
* | At least measure the ringbuffer size for JACK's latency | Chris Robinson | 2014-12-23 | 1 | -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 server | Chris Robinson | 2014-12-22 | 1 | -2/+6 |
| | |||||
* | Add an option for an increased ringbuffer size with JACK | Chris Robinson | 2014-12-22 | 1 | -2/+10 |
| | |||||
* | Fill out the JACK playback backend | Chris Robinson | 2014-12-22 | 1 | -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 JACK | Chris Robinson | 2014-12-21 | 2 | -0/+262 |
| | |||||
* | Trace lparam and wparam message values | Chris Robinson | 2014-12-21 | 1 | -1/+1 |
| | |||||
* | Check the PROPVARIANT type before use | Chris Robinson | 2014-12-21 | 1 | -2/+8 |
| | |||||
* | Use VECTOR_FOR_EACH instead of a manual loop | Chris Robinson | 2014-12-21 | 1 | -9/+7 |
| | |||||
* | Use a macro for the record thread name | Chris Robinson | 2014-12-21 | 3 | -3/+3 |
| | |||||
* | Support capture with mmdevapi | Chris Robinson | 2014-12-19 | 1 | -1/+551 |
| | |||||
* | Set a couple pulse callbacks to NULL during reset, and minor cleanups | Chris Robinson | 2014-12-17 | 1 | -9/+9 |
| | |||||
* | Don't kill pulseaudio's mixer thread if it's already killed | Chris Robinson | 2014-12-17 | 1 | -1/+1 |
| | |||||
* | Check mmdevice endpoint for being headphones | Chris Robinson | 2014-11-27 | 1 | -1/+31 |
| | |||||
* | Avoid unnecessary uses of ALCdevice_Lock and ALCdevice_Unlock | Chris Robinson | 2014-11-27 | 1 | -8/+8 |
| | |||||
* | Set headphones when dsound reports headphones | Chris Robinson | 2014-11-27 | 1 | -1/+3 |
| | |||||
* | Support B-Format output with the wave file writer | Chris Robinson | 2014-11-25 | 7 | -1/+33 |
| | |||||
* | Require at least pulse client 0.9.16 | Chris Robinson | 2014-11-24 | 1 | -48/+8 |
| | |||||
* | Trace PulseAudio's active port | Chris Robinson | 2014-11-24 | 1 | -2/+5 |
| | |||||
* | Set headphones when pulse reports using the headphones port | Chris Robinson | 2014-11-23 | 1 | -0/+3 |
| | |||||
* | Don't force UpdateSize to a multiple of 4 after buffer metrics were set | Chris Robinson | 2014-11-17 | 1 | -2/+0 |
| | |||||
* | Always get the pulseaudio sink info on device reset | Chris Robinson | 2014-11-17 | 1 | -16/+14 |
| | |||||
* | Fix 5.1 surround sound | Chris Robinson | 2014-11-07 | 7 | -33/+38 |
| | | | | | | | | | | | | | 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. | ||||
* | Use a wave file channel mask based on the actual format | Chris Robinson | 2014-09-10 | 1 | -14/+12 |
| | |||||
* | Remove some unnecessary config options | Chris Robinson | 2014-09-08 | 1 | -18/+8 |
| | |||||
* | Use a vector instead of a manual dynamic array | Chris Robinson | 2014-09-08 | 1 | -150/+90 |
| | |||||
* | Don't modify a capture device's format | Chris Robinson | 2014-09-08 | 1 | -168/+7 |
| | | | | | | OpenAL's capture API guarantees the application gets the format requested, or else the device will fail to open. The only valid change is that the capture buffer can be larger than requested. | ||||
* | Remove the GetLatency method from the old BackendFuncs | Chris Robinson | 2014-09-08 | 7 | -37/+9 |
| | |||||
* | Convert the winmm backend to the new backend API | Chris Robinson | 2014-09-08 | 2 | -285/+381 |
| | |||||
* | Only pass nano seconds to al_nssleep | Chris Robinson | 2014-09-08 | 4 | -5/+5 |
| | |||||
* | Check mmdevapi device ids to match the default device | Chris Robinson | 2014-08-28 | 1 | -19/+36 |
| | | | | | Seems Windows can return different IMMDevice object pointers for the same endpoint. | ||||
* | Check the given CoreAudio capture device name | Chris Robinson | 2014-08-26 | 1 | -0/+5 |
| | |||||
* | Convert the wave writer backend to the new API | Chris Robinson | 2014-08-24 | 2 | -111/+181 |
| | |||||
* | Update COPYING to the latest ↵ | François Cami | 2014-08-18 | 14 | -28/+28 |
| | | | | 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 loops | Chris Robinson | 2014-08-09 | 3 | -105/+56 |
| | |||||
* | Use the default input device for portaudio's default capture device | Chris Robinson | 2014-08-08 | 1 | -1/+4 |
| | |||||
* | Use pulseaudio's write callback to signal a mixer proc wakeup | Chris Robinson | 2014-07-26 | 1 | -3/+11 |
| | |||||
* | Don't require pre-declaring vector types | Chris Robinson | 2014-07-06 | 5 | -12/+8 |
| | |||||
* | Don't print an ERR if pulse fails to get latency info due to no data | Chris Robinson | 2014-05-26 | 1 | -3/+8 |
| | | | | It just means it was called too quickly after starting. | ||||
* | Add a needed header for the CoreAudio backend | Chris Robinson | 2014-05-22 | 1 | -0/+1 |
| | |||||
* | Initialize a pointer to NULL instead of a string | Chris Robinson | 2014-05-15 | 1 | -2/+1 |
| | |||||
* | Initialize some variables when declaring them | Chris Robinson | 2014-05-15 | 1 | -4/+2 |
| | |||||
* | Don't try to read the internal capture buffer into itself | Chris Robinson | 2014-05-14 | 1 | -6/+9 |
| | |||||
* | Avoid freeing an in-use capture buffer | Chris Robinson | 2014-05-14 | 1 | -5/+3 |
| | | | | | When stopping, ALSA may capture into its own storage buffer. Do not free the storage buffer if it first reads from it. | ||||
* | Make RefCount a non-integer type | Chris Robinson | 2014-05-14 | 1 | -4/+4 |
| | | | | | It should only be accessed through the appropriate functions to ensure proper atomicity. | ||||
* | Iniitialize some mmdevapi backend fields in the constructor | Chris Robinson | 2014-05-02 | 1 | -0/+23 |
| | |||||
* | Add a helper VECTOR_FOR_EACH macro | Chris Robinson | 2014-04-30 | 5 | -55/+42 |
| | |||||
* | Convert the mmdevapi backend to the new backend API | Chris Robinson | 2014-04-25 | 2 | -393/+510 |
| | |||||
* | Use a vector for mmdevapi device lists | Chris Robinson | 2014-04-24 | 1 | -93/+77 |
| | |||||
* | More device list cleanup cleanup | Chris Robinson | 2014-04-24 | 2 | -40/+25 |
| |