aboutsummaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2023-05-02cubeb - re-enable and polish IAudioClient3 to achieve lower latenciescubeb_audio_client_3_CIFiloppi
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++.
2022-12-13Don't include timeapi.h because it doesn't exist in MinGW, include ↵Paul Adenot
mmsystem.h that declares timeGetTime instead.
2022-12-13Fix warnings in cubeb_wasapi.cpp.Paul Adenot
This fixes #733.
2022-12-12Include timeapi.h in cubeb_wasapi.cpp manually to unbreak the build when ↵Paul Adenot
WIN32_LEAN_AND_MEAN is defined.
2022-12-12Add a test to stress test the asynchronous logging systemPaul Adenot
2022-12-12Allow the asynchronous logging system to safely delete its storage.Paul Adenot
2022-12-08wasapi: Avoid reconfiguring default output stream spuriously.Matthew Gregan
2022-12-08wasapi: Fix default device change filtering logic.Matthew Gregan
2022-12-08wasapi: Typo fix.Matthew Gregan
2022-12-08cubeb-test: Add a newline after each log message.Matthew Gregan
2022-12-08wasapi: Release WASAPI resources in inverse order to acquisition.Matthew Gregan
This shouldn't have any behavioural effect as the WASAPI resources are reference counted internally.
2022-12-05Account for the fact that some OSes have longer callback duration and async ↵Paul Adenot
logging is batched
2022-12-02Inline values for stream params in test_logging.cpp, undef defines in test ↵Paul Adenot
to avoid breaking unified builds when building tests in Firefox.
2022-12-02Allow dynamic enabling and disabling of the log, add tests for the logging ↵Paul Adenot
system. Also clear out the memory used by the async logger when it's shut down. This relies on the fact that enabling and disabling logging is performed on the same thread, but I think this is a reasonnable thing to do. We could assert it though.
2022-10-19Properly compare against current log levelTy Lamontagne