gecko-dev/media
Chun-Min Chang ec036851de Bug 1530715 - P42: Remove unnecessary mutex. r=padenot
There are three potential data-race operations that may run at the same
time:
1. Data callback and stream reinitialization
2. Data callback and stream destroying
3. Stream reinitialization and stream destroying

The case 1 and 2 won't happen as long as the AudioOutputUnitStop is
called at the beginning of stream reinitialization and stream
destorying. The AudioOutputUnitStop requires to lock a mutex inside
CoreAudio framework that is also used by the data callback. Thus, if
there is a running callback, which holds the mutex inside CoreAudio
framework, when AudioOutputUnitStop is called, then the calling will
block the current thread until the data callback ends since it is
waiting for the mutex. By calling AudioOutputUnitStop at the beginning
of the stream reinitialization and stream destroying, the data race of
case 1 and 2 can be avoided.

On the other hand, the case 3 won't happen since the stream
initialization and destroying is run on the same task queue. The two
tasks on the same serial task queue are impossible to be run at the same
time. The mutex in AudioUnitStream is unnecessary because it's used for
the case 3.

Differential Revision: https://phabricator.services.mozilla.com/D34076

--HG--
extra : moz-landing-system : lando
2019-07-10 08:06:56 +00:00
..
audioipc Bug 1561681 - Change log level for audio thread promotion related-messages. r=kinetik 2019-06-26 20:23:49 +00:00
ffvpx Bug 1465407 - Add media fuzzing targets. r=jya 2019-07-16 14:50:17 +00:00
gmp-clearkey/0.1 Bug 1562642 - Part 2 - Add missing MPL2 headers r=Gijs 2019-07-08 09:27:47 +00:00
kiss_fft
libaom Bug 1540096 - Handle AArch64 in libaom fuzzing target. r=jya 2019-04-01 06:59:47 +00:00
libcubeb Bug 1530715 - P42: Remove unnecessary mutex. r=padenot 2019-07-10 08:06:56 +00:00
libdav1d Bug 1557528 - Import dav1d from upstream to version 0.4.0. r=TD-Linux 2019-06-18 20:52:59 +00:00
libjpeg Bug 1557259 - Don't use clang integrated assembler for jsimd_dspr2.S. r=dmajor 2019-06-06 12:39:12 +00:00
libmkv Bug 1465407 - Add media fuzzing targets. r=jya 2019-07-16 14:50:17 +00:00
libnestegg Bug 1465407 - Add media fuzzing targets. r=jya 2019-07-16 14:50:17 +00:00
libogg Bug 1465407 - Add media fuzzing targets. r=jya 2019-07-16 14:50:17 +00:00
libopus Bug 1465407 - Add media fuzzing targets. r=jya 2019-07-16 14:50:17 +00:00
libpng Bug 1513236 - Update libpng to version 1.6.37. r=aosmond 2019-04-23 22:04:35 +00:00
libsoundtouch Bug 1299139 - Don't export symbols from soundtouch on Windows; r=padenot 2019-06-11 10:01:54 +00:00
libspeex_resampler Bug 1512504 - Remove support for MSVC. r=froydnj 2019-02-14 21:45:27 +00:00
libtheora Bug 1512504 - Remove support for MSVC. r=froydnj 2019-02-14 21:45:27 +00:00
libtremor
libvorbis Bug 1465407 - Add media fuzzing targets. r=jya 2019-07-16 14:50:17 +00:00
libvpx Bug 1540760 - Rerun generate_sources_mozbuild.sh for arm64 windows; r=jya 2019-05-01 15:04:49 +00:00
libwebp Bug 1556062 - Add additional libfuzzer instrumentation for WebP. r=posidron 2019-05-31 19:26:23 +00:00
libyuv Bug 1540760 - Enable neon for libyuv for aarch64; r=jya 2019-05-01 15:04:49 +00:00
mp4parse-rust Bug 1564643 - Update to latest mp4parse that fixes rust 1.37 deprecation errors. r!kinetik r=kinetik 2019-07-10 14:39:47 +00:00
mtransport Bug 1289211 - Rename InfallibleTArray to nsTArray in media/ r=bwc 2019-07-10 05:58:24 +00:00
openmax_dl
openmax_il/il112
psshparser Bug 1542146 - Apply the change with the option StatementMacros from clang-format-8 r=andi 2019-04-05 21:42:17 +00:00
webrtc Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan 2019-07-16 07:33:44 +00:00
moz.build
update-libjpeg.sh Bug 1520760 - Fix AVX2 detection to ensure we have all required CPU parameters. r=jrmuizel 2019-01-21 12:53:46 -05:00