Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Build an appropriate channel map for PulseAudio | Chris Robinson | 2013-02-08 | 1 | -2/+28 |
| | |||||
* | Avoid locking PulseAudio's mainloop when starting and stopping capture | Chris Robinson | 2012-11-19 | 1 | -4/+0 |
| | | | | | The mainloop is already locked by the caller, and double-locking interferes with the subsequent wait. | ||||
* | Lock the device using the pulseaudio main loop | Chris Robinson | 2012-10-07 | 1 | -8/+15 |
| | |||||
* | Scale and round NumUpdates when PulseAudio changes the sample rate | Chris Robinson | 2012-10-04 | 1 | -7/+7 |
| | |||||
* | Reset maxlength if PulseAudio updates the playback rate | Chris Robinson | 2012-10-02 | 1 | -0/+1 |
| | |||||
* | Round when calculating NumUpdates from PulseAudio's minreq | Chris Robinson | 2012-09-25 | 1 | -7/+8 |
| | |||||
* | Make sure PulseAudio sets an update size that's a multiple of 4 samples with SSE | Chris Robinson | 2012-09-20 | 1 | -2/+5 |
| | |||||
* | Don't include alu.h in alMain.h | Chris Robinson | 2012-09-14 | 1 | -0/+2 |
| | |||||
* | Add a macro to help make a 64-bit value | Chris Robinson | 2012-08-19 | 1 | -1/+1 |
| | |||||
* | Hold the device lock with PulseAudio between mixing and writing | Chris Robinson | 2012-08-18 | 1 | -0/+2 |
| | |||||
* | Move the device lock into the backend function table | Chris Robinson | 2012-08-18 | 1 | -0/+2 |
| | | | | | For backend-specific implementations: this should hold the audio mixer loop for playback devices, and provide recursive mutex behavior. | ||||
* | Add a device method to retrieve the active latency | Chris Robinson | 2012-08-17 | 1 | -1/+22 |
| | | | | | This is effectively the time until the next update will be heard by the user, or the closest approximation thereof, in nanoseconds. | ||||
* | Don't unlock the pulseaudio mainloop when mixing | Chris Robinson | 2012-08-12 | 1 | -2/+0 |
| | | | | | | Lock contention could cause a lengthy delay between mixing and writing the audio. There shouldn't be any risk of dead-locking as the device lock should never be held when the mainloop gets locked. | ||||
* | Add missing include | Chris Robinson | 2012-06-19 | 1 | -0/+1 |
| | |||||
* | Use a proper method to wait for a PulseAudio operation | Chris Robinson | 2012-06-19 | 1 | -18/+19 |
| | |||||
* | Allow PulseAudio to spawn a server by default | Chris Robinson | 2012-06-16 | 1 | -1/+1 |
| | | | | | | | Since only one backend is used at a time now, the issues with device ownership aren't really prevelant anymore. An application that tries to open all enumerated devices won't run into the problem of spawning a server and end up preventing other backend devices from working. | ||||
* | Add an option to allow PulseAudio to move streams | Chris Robinson | 2012-06-16 | 1 | -3/+28 |
| | | | | | This could be made the default, if there's a safe way to update the AL device specifier. | ||||
* | Rename AllDevice -> AllDevices | Chris Robinson | 2012-05-09 | 1 | -1/+1 |
| | |||||
* | Remove hungarian notation from the device and context structs | Chris Robinson | 2012-04-19 | 1 | -4/+4 |
| | |||||
* | Add a comment explaining the pulseaudio prop_filter | Chris Robinson | 2012-03-06 | 1 | -0/+4 |
| | |||||
* | Filter out a couple pulseaudio stream properties by setting them to 0-length ↵ | Chris Robinson | 2012-03-05 | 1 | -7/+25 |
| | | | | | | | | | data It seems Qt/Phonon will globally set media.role and phonon.streamid properties, causing them to apply even to our streams if they happen to be loaded in the same process. This is particularly a problem because media.role gets set to "event", preventing the streams from showing in pavucontrol. | ||||
* | Returned pa_operations can be NULL | Chris Robinson | 2012-03-05 | 1 | -31/+21 |
| | |||||
* | Use a separate backend callback to start playback of the device | Chris Robinson | 2012-03-05 | 1 | -19/+22 |
| | | | | | | | | | | | | This allows us to properly update the ALCdevice and its resources with the new parameters before starting playback, instead of expecting the mixer to block and wait after it has begun. This also lets us avoid holding the device lock while resetting and starting the device, which helps prevent lock inversion on some backends (ie, one thread locking A then B, and another thread locking B then A), ultimately allowing certain backends to asynchronously update the ALCdevice without risk of lockup. Capture still has issues here, however. | ||||
* | Print and handle errors from pa_stream_readable_size | Chris Robinson | 2012-03-05 | 1 | -1/+6 |
| | |||||
* | Set prebuf to 0 since we're handling the stream start manually | Chris Robinson | 2012-03-04 | 1 | -1/+2 |
| | |||||
* | Make sure the pulse stream is properly started and better handle buffer size ↵ | Chris Robinson | 2012-03-04 | 1 | -3/+22 |
| | | | | changes | ||||
* | Remove some unneeded pulseaudio calls | Chris Robinson | 2012-03-02 | 1 | -3/+0 |
| | |||||
* | Don't unload libpulse | Chris Robinson | 2012-03-02 | 1 | -5/+1 |
| | | | | This sometimes spawns esoteric errors in dlclose | ||||
* | Remove some unneeded markers | Chris Robinson | 2012-03-02 | 1 | -55/+52 |
| | |||||
* | Set prebuf to the expected buffer size | Chris Robinson | 2012-03-02 | 1 | -3/+4 |
| | | | | This is to make sure the stream starts even if PulseAudio increases tlength. | ||||
* | Don't rely on PulseAudio to wake us up using early requests | Chris Robinson | 2012-03-02 | 1 | -54/+14 |
| | |||||
* | Recalculate the new update size using the device's UpdateSize | Chris Robinson | 2012-03-02 | 1 | -3/+2 |
| | |||||
* | Set the func list after successfully connecting to PulseAudio | Chris Robinson | 2012-03-01 | 1 | -2/+1 |
| | |||||
* | Use NULL to open the default PulseAudio device, and get the actual device ↵ | Chris Robinson | 2012-03-01 | 1 | -25/+88 |
| | | | | name from the stream | ||||
* | Move some function definitions down | Chris Robinson | 2012-03-01 | 1 | -58/+57 |
| | |||||
* | Don't define lib handles when dynamic loading is disabled | Chris Robinson | 2012-03-01 | 1 | -9/+3 |
| | |||||
* | Only support PA_API_VERSION 12 | Chris Robinson | 2012-03-01 | 1 | -17/+16 |
| | |||||
* | Update the stored buffer attributes if PulseAudio changes it | Chris Robinson | 2012-03-01 | 1 | -63/+67 |
| | |||||
* | Don't allow the PulseAudio stream to move | Chris Robinson | 2012-03-01 | 1 | -14/+4 |
| | | | | | Since the device specifier isn't updated to reflect the change, it's best to not allow it to move. This should be fixed eventually. | ||||
* | Don't force a sample spec when looking for the default device | Chris Robinson | 2012-03-01 | 1 | -4/+12 |
| | |||||
* | Don't check if the pulseaudio sink is suspended when opening | Chris Robinson | 2012-03-01 | 1 | -35/+1 |
| | |||||
* | Constify a couple string pointers | Chris Robinson | 2012-03-01 | 1 | -3/+3 |
| | |||||
* | Look for and enumerate the default PulseAudio source first | Chris Robinson | 2012-02-29 | 1 | -0/+26 |
| | |||||
* | Use a separate function to create and connect a PulseAudio record stream | Chris Robinson | 2012-02-29 | 1 | -36/+44 |
| | |||||
* | Look for and enumerate the default PulseAudio sink first | Chris Robinson | 2012-02-29 | 1 | -0/+23 |
| | |||||
* | Avoid enumerating multiple devices with the same name | Chris Robinson | 2012-02-29 | 1 | -0/+14 |
| | |||||
* | Avoid passing the ALCdevice to connect_playback_stream | Chris Robinson | 2012-02-29 | 1 | -15/+15 |
| | |||||
* | Print the enumerated devices from PulseAudio | Chris Robinson | 2012-02-29 | 1 | -36/+4 |
| | |||||
* | Don't store the frame size with pulse_data | Chris Robinson | 2012-02-29 | 1 | -26/+29 |
| | |||||
* | Read capture data from pulseaudio as needed, avoiding a ring buffer | Chris Robinson | 2012-02-29 | 1 | -33/+66 |
| |