- the test case was failing because of an additional error message which is logged only on DevEdition.
- this patch makes the assertions on the cached messages more resilient to this kind of changes in the logged messages, by filtering the cached messages and then making assertions on the length of the messages found.
MozReview-Commit-ID: GIPOkWzM9Bo
--HG--
extra : rebase_source : ba0b92859105afcc6f2101a95e74b99b5a3f9aae
Our current build system support for Rust compiles any Rust crate into a
so-called staticlib, which is a static library (.a file) that includes
the Rust runtime. That staticlib is then linked into libxul. For
supporting multiple crates, this approach breaks down, as linking
multiple copies of the Rust runtime is going to fail.
For supporting multiple crates, the approach taken here is to compile
each crate into a so-called rlib, which is essentially a staticlib
without the Rust runtime linked in. The build system takes note of
every crate destined for linking with libxul (treating them like static
libraries generated from C/C++ files), and generates a super-crate,
whimsically named "rul", that is compiled as a staticlib (so as to
include the Rust runtime) and then linked into libxul. Thus only one
copy of the Rust runtime is included, and the Rust compiler can take
care of any inter-crate dependencies.
This patch currently only supports Rust code in shared libraries, not in
binaries.
The speex resampler can never return an error in its current state. But just in case and to handle any future changes to the speex resampler.
Also ensure that we can never access a stale speex resampler.
MozReview-Commit-ID: CEME0AA9ghK
--HG--
extra : rebase_source : a8d9ba46a4a4bbfd8d29a7d8bb6df01d9d828ad6
Performing all audio processing operations in the same place, allows to simplify the code.
Additionally, if accessibility.monoaudio.enable is not set, we always upmix mono to stereo so that if the first audio stream seen was mono, we aren't stuck playing all future streams in mono.
MozReview-Commit-ID: 5yANN6PLFhX
--HG--
extra : rebase_source : f40dfacc9fc323794325de0431c4958854012180
We attempt to avoid unnecessary resampling of 44.1kHz and 48kHz content, for all others we use cubeb's preferred sampling rate as final sampling rate.
MozReview-Commit-ID: 413qnsDFHzY
--HG--
extra : rebase_source : a469cb7269be48bfbca82fbbd90c3e2caf21b9a7
The audio is automatically converted to always match the format of the first processed sample.
This is a temporary approach, as it would be preferred to use a final sampling rate not causing too much quality loss.
MozReview-Commit-ID: Lo3827aon43
--HG--
extra : rebase_source : 51322d12415995bd5ba7d8a25500860f333c9c3e
This will allow to easily detect audio configuration change prior immediate playback.
MozReview-Commit-ID: IwDUGOd17ND
--HG--
extra : rebase_source : 3af32634eb431661436bf1d3aaeb80124b229716
Sharing DBus connections can interfere with other modules (e.g., watching
connections on multiple threads concurrently might introduce race conditions).
This patch changes |nsDBusHandlerApp| to use it's private connection to
the session bus to avoid interference.