Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Add a couple more methods to al::optional | Chris Robinson | 2021-12-31 | 1 | -0/+16 |
| | |||||
* | Avoid some unnecessary copying | Chris Robinson | 2021-12-31 | 1 | -10/+9 |
| | |||||
* | Some more restructuring of the PipeWire backend | Chris Robinson | 2021-12-30 | 1 | -73/+58 |
| | |||||
* | Set the node rate for the pipewire capture stream too | Chris Robinson | 2021-12-29 | 1 | -0/+1 |
| | |||||
* | Move some constexpr variables to where they're used | Chris Robinson | 2021-12-28 | 1 | -50/+47 |
| | |||||
* | C++-ize the PipeWire backend some more | Chris Robinson | 2021-12-28 | 1 | -61/+94 |
| | | | | | | | | | Use unique_ptrs for a few more types to avoid explicit free calls. Move ThreadMainloop::wait to the unique_lock wrapper that's holding the lock. Since the mainloop acts as both a lock and condition_variable, passing the lock to the wait method makes no sense. Also have it optionally take a predicate functor to dictate when to stop waiting. | ||||
* | Make sure alffplay properly stops when quiting | Chris Robinson | 2021-12-27 | 1 | -10/+13 |
| | | | | | | The parser thread could be waiting on the threads to join after queueing all packets, so it wouldn't see mQuit to flush the queue. So make a stop method that forces a flush when setting mQuit. | ||||
* | Trace the device format after starting playback | Chris Robinson | 2021-12-27 | 1 | -0/+7 |
| | | | | | Some devices can change it when starting, so it's useful to know what the device configuration is when that happens. | ||||
* | Heavily update alffplay packet handling | Chris Robinson | 2021-12-26 | 1 | -157/+209 |
| | | | | | Avoid deprecated use of raw AVPacket objects, and use a separate thread to send packets than receives the decoded frames. | ||||
* | Add the PipeWire config option to alsoft-config | Chris Robinson | 2021-12-25 | 2 | -0/+33 |
| | |||||
* | Increase the priority of the PipeWire backend | Chris Robinson | 2021-12-25 | 1 | -6/+6 |
| | |||||
* | Check for audio devices when initializing PipeWire | Chris Robinson | 2021-12-25 | 2 | -3/+79 |
| | | | | | | | | | | | This isn't great since it can fail when PipeWire is handling audio but no devices are available at initialization, causing the Pulseaudio or ALSA backend to be selected instead. Future versions of PipeWire are expected to have a better way to detect if it's handling audio, but for now this is better than nothing. A config option is available for users to have the PipeWire backend be usable even with no devices at initialization, just in case. | ||||
* | Fix non-runtime linking with pipewire | Chris Robinson | 2021-12-25 | 1 | -1/+2 |
| | |||||
* | Remove unnecessary ifdefs from alffplay | Chris Robinson | 2021-12-24 | 1 | -32/+9 |
| | | | | We already assume OpenAL Soft's alext.h, which these are part of now. | ||||
* | Use the audio clock as the default in alffplay | Chris Robinson | 2021-12-24 | 1 | -49/+59 |
| | |||||
* | Use a bitset instead of a plain uint for flags | Chris Robinson | 2021-12-23 | 4 | -37/+42 |
| | |||||
* | Don't do direct channels with UHJ output | Chris Robinson | 2021-12-21 | 2 | -21/+17 |
| | | | | | | | | | | Directly mixing a non-UHJ stereo signal into a UHJ stereo signal results in a non-UHJ stereo signal. Such a mix can't be properly decoded anymore. An option can probably be added for users that intend to listen to UHJ output undecoded and let a stereo sound come through as-is on their speakers, but it probably shouldn't be the default for cases where the output may be decoded back. | ||||
* | Work around a MinGW thread_local bug | Chris Robinson | 2021-12-20 | 7 | -22/+60 |
| | | | | | | | | | | MinGW-w64 generates bad code when accessing extern thread_local objects. Wrapper functions are used to ensure it only accesses them from the same place they're defined. This unfortunately adds a bit of overhead for what should be a relatively simple thing. These functions are inlined for non-MinGW targets, avoiding the overhead on non-affected targets. | ||||
* | Simplify and combine a couple macros | Chris Robinson | 2021-12-18 | 1 | -8/+8 |
| | |||||
* | Don't swallow up buffer callback samples when pausing | Chris Robinson | 2021-12-18 | 1 | -11/+17 |
| | |||||
* | Don't update voice sample histories when stopping/pausing | Chris Robinson | 2021-12-18 | 1 | -24/+25 |
| | | | | | Since a voice pausing is on a fade-out, and will replay the same samples again when restarting and fading in. | ||||
* | Set the voice's ambisonic order for playing super stereo | Chris Robinson | 2021-12-17 | 1 | -1/+1 |
| | |||||
* | Move some more context functions to the proper source | Chris Robinson | 2021-12-17 | 3 | -77/+80 |
| | |||||
* | Move the effects base and effectslot to core | Chris Robinson | 2021-12-17 | 22 | -225/+232 |
| | |||||
* | Move some ContextBase function definitions to the right place | Chris Robinson | 2021-12-17 | 2 | -64/+70 |
| | |||||
* | Remove an unnecessary parameter | Chris Robinson | 2021-12-17 | 3 | -16/+12 |
| | |||||
* | Allocate voice properties in clusters | Chris Robinson | 2021-12-17 | 5 | -31/+39 |
| | |||||
* | Set the PipeWire stream rate | Chris Robinson | 2021-12-16 | 1 | -0/+1 |
| | | | | | When requesting a non-default rate, this may allow the hardware to run at the requested rate. | ||||
* | Rename Voice::mNumChannels for clarity | Chris Robinson | 2021-12-15 | 3 | -7/+7 |
| | |||||
* | Add an option to use Super Stereo in alffplay | Chris Robinson | 2021-12-15 | 1 | -0/+23 |
| | |||||
* | Add source properties for Super Stereo | Chris Robinson | 2021-12-15 | 8 | -30/+116 |
| | | | | | When playing a stereo format, enabling Super Stereo causes the source to behave as a B-Format source, with a variable width control. | ||||
* | Minor UHJ coefficient scaling precision improvement | Chris Robinson | 2021-12-13 | 1 | -3/+3 |
| | |||||
* | Make an inline function to check for 2D ambisonic formats | Chris Robinson | 2021-12-12 | 4 | -11/+11 |
| | |||||
* | Avoid initializing the NFC filter for every voice channel | Chris Robinson | 2021-12-11 | 5 | -72/+61 |
| | | | | | | It can be initialized once with the device's speaker distance since it won't change in between resets, then copied into the voice where it can be adjusted as needed. | ||||
* | Add an internal Super Stereo format | Chris Robinson | 2021-12-11 | 9 | -33/+64 |
| | | | | | | | It's not available as an AL buffer format (yet) since I'm not sure how to expose it. Internally it seems fine as a separate channel configuration, but because OpenAL combines the channel configuration and sample type, a flag may work better there. | ||||
* | Use a vector in BFormatDec instead of FlexArray | Chris Robinson | 2021-12-10 | 2 | -5/+11 |
| | | | | | | FlexArray would be better since it's not likely to use much memory for the array, but the std::unique_ptr makes BFormatDec a non-standard layout, causing GCC and Clang to complain. | ||||
* | Remove unnecessary lines | Chris Robinson | 2021-12-10 | 1 | -3/+0 |
| | |||||
* | Improve the 2-channel UHJ response | Chris Robinson | 2021-12-09 | 4 | -4/+73 |
| | | | | | | This attempts to correct for the differences needed for 2-channel UHJ's shelf filters given the output shelf filters. It's far from ideal, but better than nothing. | ||||
* | Add a function for Super Stereo conversions | Chris Robinson | 2021-12-09 | 2 | -0/+97 |
| | | | | | | | a.k.a. Stereo Enhance. A common feature of UHJ decoders to take a plain stereo signal and generate a B-Format signal with variable width control, widening (or narrowing) the soundfield while maintaining a sharp central image. | ||||
* | GitHub CI still doesn't support libpipewire-0.3-dev | Chris Robinson | 2021-12-08 | 1 | -2/+0 |
| | |||||
* | Adjust the crossover frequency for HRTF ambisonic decoding | Chris Robinson | 2021-12-08 | 1 | -0/+13 |
| | |||||
* | Build with PipeWire with Linux CI | Chris Robinson | 2021-12-08 | 1 | -0/+2 |
| | |||||
* | Update changelog | Chris Robinson | 2021-12-06 | 1 | -0/+2 |
| | |||||
* | Don't clamp the distance with distance attenuation disabled | Chris Robinson | 2021-11-30 | 1 | -1/+0 |
| | |||||
* | Slight update to the UHJ coefficients | Chris Robinson | 2021-11-28 | 3 | -46/+46 |
| | | | | | | | The extended precision of the encoder's 0.6512*X term was guesswork, with no real basis for it. Switch back to the original value until something better actually comes up. Also updates the decoder to account for the change in the encoder. | ||||
* | Recognize PipeWire in alsoft-config | Chris Robinson | 2021-11-26 | 1 | -0/+3 |
| | |||||
* | Avoid passing spans unnecessarily | Chris Robinson | 2021-11-25 | 3 | -8/+8 |
| | |||||
* | Don't assume the UhjDecoder::decode offset is 16-byte aligned | Chris Robinson | 2021-11-25 | 1 | -6/+6 |
| | | | | It's not, it's MaxResamplerEdge which is currently 24. | ||||
* | Use a base for the UhjEncoder/Decoder common properties | Chris Robinson | 2021-11-25 | 2 | -18/+16 |
| | |||||
* | Return true from alcReopenDeviceSOFT if the new device opened | Chris Robinson | 2021-11-21 | 1 | -4/+29 |
| |