Miriam Zimmerman
0426c8532a
Update rust submodules.
...
Build / build (macos-13, Debug) (push) Waiting to run
Build / build (macos-13, Release) (push) Waiting to run
Build / build (macos-14, Debug) (push) Waiting to run
Build / build (macos-14, Release) (push) Waiting to run
Build / build (ubuntu-20.04, Debug) (push) Waiting to run
Build / build (ubuntu-20.04, Release) (push) Waiting to run
Build / build (windows-2019, Debug) (push) Waiting to run
Build / build (windows-2019, Release) (push) Waiting to run
Build / build-android (arm64-v8a, Debug) (push) Waiting to run
Build / build-android (arm64-v8a, Release) (push) Waiting to run
Build / build-android (armeabi-v7a, Debug) (push) Waiting to run
Build / build-android (armeabi-v7a, Release) (push) Waiting to run
Build / build-android (x86_64, Debug) (push) Waiting to run
Build / build-android (x86_64, Release) (push) Waiting to run
Build / check_format (push) Waiting to run
Also, use gecko-in-tree feature to break circular dependency.
2024-11-20 12:15:56 +13:00
Miriam Zimmerman
78b2bce70e
Update cubeb-coreaudio-rs.
...
Build / build (macos-13, Debug) (push) Has been cancelled
Build / build (macos-13, Release) (push) Has been cancelled
Build / build (macos-14, Debug) (push) Has been cancelled
Build / build (macos-14, Release) (push) Has been cancelled
Build / build (ubuntu-20.04, Debug) (push) Has been cancelled
Build / build (ubuntu-20.04, Release) (push) Has been cancelled
Build / build (windows-2019, Debug) (push) Has been cancelled
Build / build (windows-2019, Release) (push) Has been cancelled
Build / build-android (arm64-v8a, Debug) (push) Has been cancelled
Build / build-android (arm64-v8a, Release) (push) Has been cancelled
Build / build-android (armeabi-v7a, Debug) (push) Has been cancelled
Build / build-android (armeabi-v7a, Release) (push) Has been cancelled
Build / build-android (x86_64, Debug) (push) Has been cancelled
Build / build-android (x86_64, Release) (push) Has been cancelled
Build / check_format (push) Has been cancelled
Pull in version of cubeb-coreaudio-rs that fixes a bug with downmixing
stereo input to a mono channel.
2024-10-24 09:05:07 +02:00
Miriam Zimmerman
ffd5184e47
Update cubeb-coreaudio-rs and cubeb-pulse-rs.
...
Build / build (macos-13, Debug) (push) Has been cancelled
Build / build (macos-13, Release) (push) Has been cancelled
Build / build (macos-14, Debug) (push) Has been cancelled
Build / build (macos-14, Release) (push) Has been cancelled
Build / build (ubuntu-20.04, Debug) (push) Has been cancelled
Build / build (ubuntu-20.04, Release) (push) Has been cancelled
Build / build (windows-2019, Debug) (push) Has been cancelled
Build / build (windows-2019, Release) (push) Has been cancelled
Build / build-android (arm64-v8a, Debug) (push) Has been cancelled
Build / build-android (arm64-v8a, Release) (push) Has been cancelled
Build / build-android (armeabi-v7a, Debug) (push) Has been cancelled
Build / build-android (armeabi-v7a, Release) (push) Has been cancelled
Build / build-android (x86_64, Debug) (push) Has been cancelled
Build / build-android (x86_64, Release) (push) Has been cancelled
Build / check_format (push) Has been cancelled
Specifically, pull in
https://github.com/mozilla/cubeb-coreaudio-rs/pull/236 and
https://github.com/mozilla/cubeb-pulse-rs/pull/94
2024-10-16 06:50:24 -07:00
Miriam Zimmerman
2bee6bcbd3
Add submodules for tier-1 rust backends.
...
Build / build (macos-13, Debug) (push) Has been cancelled
Build / build (macos-13, Release) (push) Has been cancelled
Build / build (macos-14, Debug) (push) Has been cancelled
Build / build (macos-14, Release) (push) Has been cancelled
Build / build (ubuntu-20.04, Debug) (push) Has been cancelled
Build / build (ubuntu-20.04, Release) (push) Has been cancelled
Build / build (windows-2019, Debug) (push) Has been cancelled
Build / build (windows-2019, Release) (push) Has been cancelled
Build / build-android (arm64-v8a, Debug) (push) Has been cancelled
Build / build-android (arm64-v8a, Release) (push) Has been cancelled
Build / build-android (armeabi-v7a, Debug) (push) Has been cancelled
Build / build-android (armeabi-v7a, Release) (push) Has been cancelled
Build / build-android (x86_64, Debug) (push) Has been cancelled
Build / build-android (x86_64, Release) (push) Has been cancelled
Build / check_format (push) Has been cancelled
Per https://github.com/mozilla/cubeb/wiki/Backend-Support the rust
backends for pulse and coreaudio are tier-1 and the older C++ backends
are tier-4. So, add these backends to cubeb by default.
2024-09-25 15:14:58 +12:00
Miriam Zimmerman
877364f050
windows: Set debug options if appropriate. ( #798 )
...
Build / build (macos-13, Debug) (push) Has been cancelled
Build / build (macos-13, Release) (push) Has been cancelled
Build / build (macos-14, Debug) (push) Has been cancelled
Build / build (macos-14, Release) (push) Has been cancelled
Build / build (ubuntu-20.04, Debug) (push) Has been cancelled
Build / build (ubuntu-20.04, Release) (push) Has been cancelled
Build / build (windows-2019, Debug) (push) Has been cancelled
Build / build (windows-2019, Release) (push) Has been cancelled
Build / build-android (arm64-v8a, Debug) (push) Has been cancelled
Build / build-android (arm64-v8a, Release) (push) Has been cancelled
Build / build-android (armeabi-v7a, Debug) (push) Has been cancelled
Build / build-android (armeabi-v7a, Release) (push) Has been cancelled
Build / build-android (x86_64, Debug) (push) Has been cancelled
Build / build-android (x86_64, Release) (push) Has been cancelled
Build / check_format (push) Has been cancelled
* windows: Set debug options if appropriate.
If building with debug, also build standard libraries with debug. This
ensures that any libraries linking against cubeb won't have mismatched
symbol definitions.
* Properly allow dynamic linking.
* Set global CMAKE_MSVC_RUNTIME_LIBRARY.
This variable will apply to all targets, rather than needing to apply a
per-target setting.
* remove unnecessary whitespace
* Simplify variable expression
2024-09-17 11:56:53 +12:00
Miriam Zimmerman
19d2f7bce6
wasapi: Fix default device handling.
...
Build / build (macos-13, Debug) (push) Has been cancelled
Build / build (macos-13, Release) (push) Has been cancelled
Build / build (macos-14, Debug) (push) Has been cancelled
Build / build (macos-14, Release) (push) Has been cancelled
Build / build (ubuntu-20.04, Debug) (push) Has been cancelled
Build / build (ubuntu-20.04, Release) (push) Has been cancelled
Build / build (windows-2019, Debug) (push) Has been cancelled
Build / build (windows-2019, Release) (push) Has been cancelled
Build / build-android (arm64-v8a, Debug) (push) Has been cancelled
Build / build-android (arm64-v8a, Release) (push) Has been cancelled
Build / build-android (armeabi-v7a, Debug) (push) Has been cancelled
Build / build-android (armeabi-v7a, Release) (push) Has been cancelled
Build / build-android (x86_64, Debug) (push) Has been cancelled
Build / build-android (x86_64, Release) (push) Has been cancelled
Build / check_format (push) Has been cancelled
Prior to https://github.com/mozilla/cubeb/pull/682 ,
a device could be default for all of
MULTIMEDIA, NOTIFICATION, and
VOICE.
After that PR, the first two were
mutually exclusive with the third, I
believe unintentionally.
Restore this behavior so that, e.g.,
on devices with only one output device,
querying for the "voice" device returns
that device.
2024-09-06 10:38:17 +02:00
Matthew Gregan
8f6c9a01dd
opensl: Add extra asserts to help track down BMO 1913284.
Build / build (macos-13, Debug) (push) Has been cancelled
Build / build (macos-13, Release) (push) Has been cancelled
Build / build (macos-14, Debug) (push) Has been cancelled
Build / build (macos-14, Release) (push) Has been cancelled
Build / build (ubuntu-20.04, Debug) (push) Has been cancelled
Build / build (ubuntu-20.04, Release) (push) Has been cancelled
Build / build (windows-2019, Debug) (push) Has been cancelled
Build / build (windows-2019, Release) (push) Has been cancelled
Build / build-android (arm64-v8a, Debug) (push) Has been cancelled
Build / build-android (arm64-v8a, Release) (push) Has been cancelled
Build / build-android (armeabi-v7a, Debug) (push) Has been cancelled
Build / build-android (armeabi-v7a, Release) (push) Has been cancelled
Build / build-android (x86_64, Debug) (push) Has been cancelled
Build / build-android (x86_64, Release) (push) Has been cancelled
Build / check_format (push) Has been cancelled
2024-08-17 01:46:32 +01:00
Matthew Gregan
95d8199dbd
opensl: Switch asserts to XASSERT wrapper.
2024-08-17 01:46:32 +01:00
John Lin
bbbe5bb0b2
[AAudio] offset position by number of written frames.
...
Build / build (macos-13, Debug) (push) Has been cancelled
Build / build (macos-13, Release) (push) Has been cancelled
Build / build (macos-14, Debug) (push) Has been cancelled
Build / build (macos-14, Release) (push) Has been cancelled
Build / build (ubuntu-20.04, Debug) (push) Has been cancelled
Build / build (ubuntu-20.04, Release) (push) Has been cancelled
Build / build (windows-2019, Debug) (push) Has been cancelled
Build / build (windows-2019, Release) (push) Has been cancelled
Build / build-android (arm64-v8a, Debug) (push) Has been cancelled
Build / build-android (arm64-v8a, Release) (push) Has been cancelled
Build / build-android (armeabi-v7a, Debug) (push) Has been cancelled
Build / build-android (armeabi-v7a, Release) (push) Has been cancelled
Build / build-android (x86_64, Debug) (push) Has been cancelled
Build / build-android (x86_64, Release) (push) Has been cancelled
Build / check_format (push) Has been cancelled
When reinitializating, `cubeb_stream::previous_clock` isn't reset
properly but stream gets reset and restarts `AAudioTimingInfo::output_frame_index`
from zero. Therefore, `aaudio_stream_get_position()` always reports
previous clock rather than actual position until it is surpassed later.
To estimate the position correctly, Save the number of frames sent
to stream before it's reset, and use the value as the basis for
future position estimation.
2024-07-10 11:10:17 +02:00
John Lin
063a090221
[AAudio] request pause rather than stop.
...
Build / build (macos-13, Debug) (push) Has been cancelled
Build / build (macos-13, Release) (push) Has been cancelled
Build / build (macos-14, Debug) (push) Has been cancelled
Build / build (macos-14, Release) (push) Has been cancelled
Build / build (ubuntu-20.04, Debug) (push) Has been cancelled
Build / build (ubuntu-20.04, Release) (push) Has been cancelled
Build / build (windows-2019, Debug) (push) Has been cancelled
Build / build (windows-2019, Release) (push) Has been cancelled
Build / build-android (arm64-v8a, Debug) (push) Has been cancelled
Build / build-android (arm64-v8a, Release) (push) Has been cancelled
Build / build-android (armeabi-v7a, Debug) (push) Has been cancelled
Build / build-android (armeabi-v7a, Release) (push) Has been cancelled
Build / build-android (x86_64, Debug) (push) Has been cancelled
Build / build-android (x86_64, Release) (push) Has been cancelled
Build / check_format (push) Has been cancelled
According to the document,
AAudioStream_requestStop():
"The stream will stop after all of the data currently buffered has been played."
AAudioStream_requestPause():
"Pausing a stream will freeze the data flow but not flush any buffers."
2024-07-08 18:08:38 +02:00
John Lin
0adfabf98d
[AAudio] track stopped time.
...
aaudio_stream_get_position() calculates position using elapsed time
since last callback, including the time during stream is stopped.
To interpolate correctly, record the stop time and use it in calculation.
2024-07-08 18:08:38 +02:00
Andreas Pehrson
89573c99c7
Reset stream params on init
...
Build / build (macos-13, Debug) (push) Has been cancelled
Build / build (macos-13, Release) (push) Has been cancelled
Build / build (macos-14, Debug) (push) Has been cancelled
Build / build (macos-14, Release) (push) Has been cancelled
Build / build (ubuntu-20.04, Debug) (push) Has been cancelled
Build / build (ubuntu-20.04, Release) (push) Has been cancelled
Build / build (windows-2019, Debug) (push) Has been cancelled
Build / build (windows-2019, Release) (push) Has been cancelled
Build / build-android (arm64-v8a, Debug) (push) Has been cancelled
Build / build-android (arm64-v8a, Release) (push) Has been cancelled
Build / build-android (armeabi-v7a, Debug) (push) Has been cancelled
Build / build-android (armeabi-v7a, Release) (push) Has been cancelled
Build / build-android (x86_64, Debug) (push) Has been cancelled
Build / build-android (x86_64, Release) (push) Has been cancelled
Build / check_format (push) Has been cancelled
Without a reset, a duplex stream being reused as an output stream will
open an input stream and provide an input buffer, which is not expected.
2024-07-05 11:02:26 +12:00
Andreas Pehrson
5d5008d25c
Set buffer capacity to allow for buffering
Build / build (macos-13, Debug) (push) Has been cancelled
Build / build (macos-13, Release) (push) Has been cancelled
Build / build (macos-14, Debug) (push) Has been cancelled
Build / build (macos-14, Release) (push) Has been cancelled
Build / build (ubuntu-20.04, Debug) (push) Has been cancelled
Build / build (ubuntu-20.04, Release) (push) Has been cancelled
Build / build (windows-2019, Debug) (push) Has been cancelled
Build / build (windows-2019, Release) (push) Has been cancelled
Build / build-android (arm64-v8a, Debug) (push) Has been cancelled
Build / build-android (arm64-v8a, Release) (push) Has been cancelled
Build / build-android (armeabi-v7a, Debug) (push) Has been cancelled
Build / build-android (armeabi-v7a, Release) (push) Has been cancelled
Build / build-android (x86_64, Debug) (push) Has been cancelled
Build / build-android (x86_64, Release) (push) Has been cancelled
Build / check_format (push) Has been cancelled
2024-07-01 12:18:39 +02:00
Chris Peterson
42cf7061fc
Include <memory> for std::unique_ptr
...
LLVM's libc++ is removing transitive inclusions among std header files in newer C++ versions, so user code must explicitly include needed std header files. In this case, cubeb_opensl.cpp must explicitly include <memory> for `std::unique_ptr` because, starting in C++23, <vector> no longers includes <memory>.
https://libcxx.llvm.org/DesignDocs/HeaderRemovalPolicy.html
```
libcubeb/src/cubeb_opensl.cpp:140:8: error: no template named 'unique_ptr' in namespace 'std'
140 | std::unique_ptr<cubeb_stream_params> input_params;
| ~~~~~^
```
2024-06-04 17:45:46 +02:00
Paul Adenot
dabff209dd
Build Android in cubeb's CI on the 3 main arch Gecko supports
2024-05-24 15:53:45 +02:00
Paul Adenot
cb2e32e3e5
Cast to int64_t to fix the build on 64-bits Android
2024-05-24 15:53:45 +02:00
Paul Adenot
b735de2cee
Build on aarch64 by default on Android
2024-05-24 15:53:45 +02:00
Paul Adenot
16a5edb677
Build on Android on an Ubuntu 22.04
2024-05-24 15:53:45 +02:00
Paul Adenot
d60b441123
Clamp to positive value when computing latency for an output stream
...
Diagnosed by jolin@mozilla.com , the same code is also found in Chromium.
2024-05-24 15:53:45 +02:00
Paul Adenot
b692d65069
Clamp to positive value when computing latency for an output stream
...
Diagnosed by jolin@mozilla.com , the same code is also found in Chromium.
2024-05-24 15:53:45 +02:00
Paul Adenot
6c1a6e151c
Revert "Fetch avrt.dll functions dynamically again."
...
This reverts commit aaffe75c25
.
2024-05-21 18:11:12 +02:00
John Lin
19fcbefe1a
Invalidate timing info buffers when destorying AAudio stream.
...
aaudio_stream_get_position() returns incorrect result because
aaudio_stream_init() recycled destroyed stream where the
timing_info buffers contain stale data.
2024-04-30 10:52:29 +12:00
Andreas Pehrson
b82e270abf
Account for enqueues while in cubeb_audio_dump_stream::write_all
2024-04-16 16:31:18 +02:00
Paul Adenot
a6752d6ffe
Add internal utility to log audio streams to disk from real-time audio callbacks
2024-04-16 16:31:18 +02:00
Paul Adenot
529c3d2644
Attempt to reinitialize the stream when the error callback is called with AAUDIO_ERROR_TIMEOUT
...
This can happen when the client side of the AAudio API fails to write
all the data to the server side, after the user callback has returned.
According to the reporter, this can be hit when a debugger is attached.
This fixes #767 .
2024-04-16 16:30:46 +02:00
Paul Adenot
f42ca23add
Log a message when waiting for AAUDIO_STREAM_STATE_STOP when shutting down a stream in error fails
2024-04-16 16:30:46 +02:00
Paul Adenot
67db4cbc18
Some DACs can go up to 768kHz
2024-04-03 15:15:53 +02:00
aeiouaeiouaeiouaeiouaeiouaeiou
1572ea3e8d
CI: use macos-13 environment and add macos-14 (arm64 M1)
...
Add a workaround for microphone permission: https://github.com/actions/runner-images/issues/9330
Co-authored-by: Andreas Pehrson <apehrson@mozilla.com>
2024-03-25 11:10:50 +01:00
Paul Adenot
1eb7e6824f
Fix mistake in first parameter type in function pointer
2024-03-20 12:51:34 +01:00
Paul Adenot
aaffe75c25
Fetch avrt.dll functions dynamically again.
...
Turns out this can crash sometimes, and we need to be more careful.
This reverts commit 661c653c86
.
2024-03-19 16:22:27 +01:00
Mike Hommey
5491fc8b27
Only build duplex_collection_change_no_unregister when death tests are supported ( #780 )
2024-03-06 20:45:53 -08:00
Andreas Pehrson
74d6b05465
Allow setting CUBEB_INPUT_PROCESSING_PARAM_NONE
...
Clients may want to disable processing...
2024-02-15 13:42:53 +01:00
Paul Adenot
46906c7bba
384kHz ought to be enough for anybody
2024-02-07 17:57:06 +01:00
Paul Adenot
799e775484
Format new changes
2024-01-31 10:51:22 +01:00
Steveice10
d0ffc6d302
audiounit: Resample to match output device hardware sample rate in uncommon cases.
...
In some cases, weird sample rates can cause AudioUnit output
units to misbehave. Instead, use resampling for non-native rates
to make sure this does not happen.
2024-01-31 10:51:22 +01:00
Andreas Pehrson
dd8a91f982
Add an API for muting the input side of a stream
2024-01-15 15:25:40 +01:00
Andreas Pehrson
5a2df9b0aa
Add APIs for input processing
2024-01-15 15:25:40 +01:00
Nikolay Borodin
ffec8ede4c
Checking buffer, buffer_in, buffer_out pointers for non NULL values
2024-01-08 11:31:04 +01:00
Andreas Pehrson
ed2efe22cb
auto_array: protect from various calls when length_ is 0
...
cubeb-coreaudio-rs has hit a case when running its tests on MacOS 12
where it fails the `assert(destination && source);` in `PodCopy` because
it tried to push 0 samples to an auto_array of length 0, as the internal
auto_array buffer had not been allocated yet.
2023-12-12 10:56:31 +01:00
Paul Adenot
54217bca3f
Relax a single test_sanity.cpp assertion when using OpenSL
2023-11-21 11:08:34 +01:00
Paul Adenot
33531e337a
Allow not being able to get the minimum latency in test_callback_ret.cpp and test_logging.cpp, as it's not essential for the test
2023-11-21 11:08:34 +01:00
Paul Adenot
699c44180e
Add static keyword to fix build of tests in unified builds
2023-11-21 11:08:34 +01:00
Paul Adenot
5707d0e447
Fix latency reporting on OpenSL
2023-11-21 11:08:34 +01:00
Paul Adenot
30efcd1cdf
Remove test_deadlock.cpp file, hasn't been compiled since March 2018
...
Removed in 789eaa.
2023-11-10 17:00:19 +01:00
Paul Adenot
2f01da4a8a
Include gtest.h in test/common.h
2023-11-10 15:52:55 +01:00
Paul Adenot
63f69b9986
Include the header directly to use AudioBuffer on macOS in cubeb_ring_array.h
2023-11-10 15:48:07 +01:00
Paul Adenot
001b904409
Non-functional change: Directly include string.h in test/common.h
2023-11-10 15:37:57 +01:00
Paul Adenot
47f9a4733b
Consistently use double in the mixer
...
This fixes a warning: INT32_MAX cannot be represented as a float.
2023-11-10 15:32:03 +01:00
Paul Adenot
28eed05dd5
Non functional change: Fix missing documentation in cubeb.h
2023-11-10 15:32:00 +01:00
Paul Adenot
625213fd9f
Non-functional change: Check tests when checking format
2023-11-10 15:31:57 +01:00