aboutsummaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2023-07-31Update submodulesupdate-submodulesPaul Adenot
2023-07-26Run clang-formatPaul Adenot
2023-07-26Compile in C++17, like GeckoPaul Adenot
2023-07-26AAudio: Fix log level when stopping a streamPaul Adenot
2023-07-26AAudio: When a device is disconnected, reinitialize the stream with the same ↵Paul Adenot
parameters
2023-07-26AAudio: Split init/destroy/start functions into an internal and external ↵Paul Adenot
interface This will allow calling those functions properly from an internal thread, and simplify lock management. This will happen in a subsequent patch. The initial parameter passed to cubeb_stream_init are now stored on the cubeb_stream struct to be able to reinitialized properly (again in a subsequent patch). Since all those calls need have a lock held, the lock is passed as argument to ensure thread safety. This ensures the caller of the internal functions has taken the lock, and at the same time allows not unlocking/relocking the mutex if a series of call is performed (that will be the case in a subsequent patch, during reinitialization). The boolean that marks that a stream is in use is modified in the external interface, called by the user. A stream is marked as being in use when the user initialize it, and is marked as not being in use when the user destroys it.
2023-07-26AAudio: switch to using cubeb logging facilitiesPaul Adenot
2023-07-26Fix clang-tidy warnings in cubeb_log.cppPaul Adenot
2023-07-26AAudio: fix clang-tidy issuesPaul Adenot
2023-07-26wasapi: Flag cubeb_stream as inactive when stopped, avoid reconfiguring ↵Matthew Gregan
inactive streams from render thread.
2023-07-26wasapi: Take stream_reset_lock earlier in render thread reconfig path.Matthew Gregan
2023-05-17Remove incorrect code to adjust output queue capacityPaul Adenot
2023-05-17Run clang-format-15 on the codebase -- fix a single differencePaul Adenot
2023-05-17Allow specifying a particular clang-format binary (version), and pin the CI ↵Paul Adenot
to version 15
2023-05-17wasapi: make render thread exist for the lifetime of the stream objectMichael M
- Converts cubeb_stream into a reference-counted object, and gets rid of emergency_bailout logic - When reconfiguring, only restart a stream if it was already started - Removes timeout inside the render thread, as we can't guarantee events while a stream is stopped Subsequently rebased by Paul Adenot <[email protected]>
2023-04-26Skip a couple more tests when a backend can't use audio inputPaul Adenot
2023-04-26Only run test_overload.cpp when using the WASAPI backendPaul Adenot
2023-04-26Don't run test_loopback and test_duplex on backends that can't open audio inputPaul Adenot
2023-04-26Don't wait in winmm_stream_destroy when the return value of the data ↵Paul Adenot
callback is an error.
2023-04-26Don't continue calling the data callback in the winmm backend if the user ↵Paul Adenot
has returned a negative value
2023-04-26Prevent running test that make use of audio input streams on backends that ↵Paul Adenot
don't implement it
2023-04-26Install virtual audio devices on Windows runners, enable microphone ↵Paul Adenot
permission globally
2023-04-26clang-format cubeb_winmm.cPaul Adenot
2023-04-26Attempt enabling test on gh action windows, also run the winmm backendPaul Adenot
2023-04-26Add some logging messages to winmm to ease debugging and make the logging ↵Paul Adenot
test pass
2023-04-26Handle a negative return value from the user callbackPaul Adenot
2023-04-26Change the WinMM backend so that it doesn't call the user callback during ↵Paul Adenot
initialization
2023-04-23Re-enable the test job on macOS CIaeiouaeiouaeiouaeiouaeiouaeiou
2023-04-20Sync back BMO#1825328Paul Adenot
https://bugzilla.mozilla.org/show_bug.cgi?id=1825328 landed in Firefox without going through upstream. It's necessary to build in an environment where gtests are all compiled in the same executable. Original patch by serge-sans-paille <[email protected]>.
2023-04-19Don't spin when waiting for streams to be stopped.Paul Adenot
2023-04-19When an error happens, wait for the streams to be stopped before dispatching ↵Paul Adenot
the error callback
2023-04-19Add a way to know if the data callback is runningPaul Adenot
2023-04-19Fix formatting warningPaul Adenot
2023-04-19Rename shutdown to shutdown_with_error got better convey the meaningPaul Adenot
2023-03-22opensl: Attempt to avoid a race with active callbacks during shutdown.Matthew Gregan
Based on examining crash dumps and investigating OpenSL workarounds in liboboe, there is a potential race between active buffer callbacks and stream shutdown, resulting in a buffer callback attempting to use a new buffer after stream destroy has freed the backing allocation. Ideally there would be a concrete event to watch for to ensure the last callbacks have completed before destroying the stream, but I'm not aware of one and the existing workaround in liboboe relies on an arbitrary ("long enough") sleep between stopping and destroying streams.
2023-03-21On NetBSD, define _NETBSD_SOURCE for timersub()Ryo ONODERA
2023-02-01format cubeb_sndio.cPaul Adenot
2023-02-01sndio: switch audio to 24-bit precisionAlexandre Ratchov
2023-01-27cmake: Make undefined symbols weak on AndroidMacdu
2023-01-23cmake: quote CXX_FLAGS substitution for MSVCLiam
2023-01-09Prefer the AAudio backend over the OpenSL ES backendPaul Adenot
The last issues have been fixed, and it's now better (and also uses an API that isn't deprecated).
2023-01-09Enable strdup(3) for NetBSDRyo ONODERA
2023-01-05wasapi: Drop context lock before deleting context.Matthew Gregan
2022-12-14Fix warningsPaul Adenot
2022-12-14Generalize latency reporting to make it work in input-only and duplex modesPaul Adenot
2022-12-14Rewrite aaudio_stream_get_position with the accurate timing info provided by ↵Paul Adenot
AAudio A/V sync is now perfect regardless of the output device (bluetooth, wired, speaker), and client side interpolation provides high accuracy regardless of the buffer-size that the users decides on.
2022-12-14Compute and publish timing info, including position and latency, from the ↵Paul Adenot
real-time audio callback (output-only) This is essentially the same technique we're using on macOS in cubeb-coreaudio-rs, ported for AAudio, and extended to input.
2022-12-14Store the sample-rate on the stream structPaul Adenot
2022-12-14Allow directly logging from cubeb_aaudio.cpp to logcatPaul Adenot
2022-12-14Add a triple_buffer class that allows publishing data in a wait-free manner ↵Paul Adenot
from a real-time thread to another thread. It's largely inspired from the crate cubeb-coreaudio-rs uses, but ported to C++.