Age | Commit message (Collapse) | Author |
|
|
|
Also, use gecko-in-tree feature to break circular dependency.
|
|
Pull in version of cubeb-coreaudio-rs that fixes a bug with downmixing
stereo input to a mono channel.
|
|
Specifically, pull in
https://github.com/mozilla/cubeb-coreaudio-rs/pull/236 and
https://github.com/mozilla/cubeb-pulse-rs/pull/94
|
|
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.
|
|
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.
|
|
|
|
|
|
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.
|
|
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."
|
|
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.
|
|
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.
|
|
|
|
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;
| ~~~~~^
```
|
|
|
|
Diagnosed by [email protected], the same code is also found in Chromium.
|
|
Diagnosed by [email protected], the same code is also found in Chromium.
|
|
This reverts commit aaffe75c25c18bd171b60edc2d5a6f287a9f9808.
|
|
aaudio_stream_get_position() returns incorrect result because
aaudio_stream_init() recycled destroyed stream where the
timing_info buffers contain stale data.
|
|
|
|
|
|
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.
|
|
stream in error fails
|
|
|
|
|
|
Turns out this can crash sometimes, and we need to be more careful.
This reverts commit 661c653c8650b2b1c485e86b5a5b4f6d0ed07d1b.
|
|
Clients may want to disable processing...
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
This fixes a warning: INT32_MAX cannot be represented as a float.
|
|
|
|
comfortably
|
|
buffer size to be 3 times the burst size
|
|
|
|
reinitialize the duplex stream
|
|
|
|
This is not 100% correct, but prevents crashing on an assert in the very
common case of opening multiple streams back to back with logging
enabled.
|
|
and output
|
|
|
|
|
|
supported issue
|
|
|