gecko-dev/modules
alwu fd3d570d36 Bug 1823541 - part2 : recreate the state machine if DRM playback is not allowed for the media engine playback. r=jolin
As we can't determine if the external state machine is going to be used
for DRM playback at the time we create it, we need to check that later
when the CDM proxy is assigned to the decoder.

So when detecting DRM playback on the media engine playback and the pref
is disabled, we would destroy the external state machine and then create
our normal state machine in order to run Gecko's media pipeline.

There is a race between shutting down the old format reader and the new
format reader. For the media source playback, we would reuse the
demuxer [1]. If the demuxer init hasn't finished when the new format
reader starts initializing the demuxer, we would end up chaining the
same init promise twice, which hit the assertion of exclusive promise.

Therefore, we change the init promise to non-exlusive, which won't hurt,
because in our case that means we don't need to re-init the demuxer
again. For other cases, it won't change any behavior because the
media format reader won't change its demuxer at the middle of playback,
and that promise actually isn't necessary to be an exclusive promise.


[1]
https://searchfox.org/mozilla-central/rev/137075514eddc08c68ff652e9899da82e8043574/dom/media/mediasource/MediaSourceDecoder.cpp#42-44

[2]
https://searchfox.org/mozilla-central/rev/137075514eddc08c68ff652e9899da82e8043574/dom/media/MediaFormatReader.cpp#782-788

Depends on D173205

Differential Revision: https://phabricator.services.mozilla.com/D173206
2023-03-23 17:36:50 +00:00
..
brotli Bug 1821026 - Vendor brotli using mach vendor r=jfkthame 2023-03-08 17:13:24 +00:00
fdlibm Bug 1760633: Apply the fdlibm patches for the new files to the in-tree files r=arai 2023-01-06 20:12:33 +00:00
freetype2 Bug 1815879 - Update freetype2 to 2.13.0. r=jfkthame 2023-02-14 03:31:03 +00:00
libjar Bug 1818305: apply code formatting via Lando 2023-03-15 19:55:42 +00:00
libmar Bug 1817312 - Make modules/libmar/sign buildable outside of a unified build environment r=andi 2023-02-19 21:40:37 +00:00
libpref Bug 1823541 - part2 : recreate the state machine if DRM playback is not allowed for the media engine playback. r=jolin 2023-03-23 17:36:50 +00:00
woff2 Bug 1821011 - Vendor woff2 using mach vendor r=jfkthame 2023-03-08 17:13:08 +00:00
xz-embedded
zlib Bug 1816737 - silence warning spam in (third-party) zlib code r=glandium 2023-02-17 01:29:01 +00:00
moz.build