diff options
author | Fernando Jiménez Moreno <ferjmoreno@gmail.com> | 2019-07-05 11:01:19 +0200 |
---|---|---|
committer | Fernando Jiménez Moreno <ferjmoreno@gmail.com> | 2019-07-05 11:01:19 +0200 |
commit | 8e0160fa717e6f052c4bb6097147f10105e70448 (patch) | |
tree | fa1479ce9010282fd456c1b5af9607dfff008b89 | |
parent | 0dc17af7f0dab01f673894b6ac7c84cb50d03603 (diff) | |
download | servo-8e0160fa717e6f052c4bb6097147f10105e70448.tar.gz servo-8e0160fa717e6f052c4bb6097147f10105e70448.zip |
Update servo media to include global mute support
-rw-r--r-- | Cargo.lock | 381 | ||||
-rw-r--r-- | components/msg/constellation_msg.rs | 2 | ||||
-rw-r--r-- | components/script/dom/audiocontext.rs | 19 | ||||
-rw-r--r-- | components/script/dom/audionode.rs | 46 | ||||
-rw-r--r-- | components/script/dom/audioparam.rs | 2 | ||||
-rw-r--r-- | components/script/dom/baseaudiocontext.rs | 34 | ||||
-rw-r--r-- | components/script/dom/bindings/trace.rs | 4 | ||||
-rw-r--r-- | components/script/dom/htmlmediaelement.rs | 61 | ||||
-rw-r--r-- | components/script/dom/offlineaudiocontext.rs | 33 |
9 files changed, 363 insertions, 219 deletions
diff --git a/Cargo.lock b/Cargo.lock index ce8230924cd..9779cad90b4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1528,19 +1528,19 @@ dependencies = [ [[package]] name = "glib" -version = "0.7.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gobject-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "glib-sys" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1629,271 +1629,270 @@ dependencies = [ [[package]] name = "gobject-sys" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "glib-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "gstreamer" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "glib 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gobject-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", "muldiv 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "num-rational 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "paste 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "gstreamer-app" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "glib 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-app-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-base 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-base-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gobject-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-app-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-base 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-base-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "gstreamer-app-sys" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "glib-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-base-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-base-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "gstreamer-audio" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "array-init 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "glib 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-audio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gobject-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-audio-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "gstreamer-audio-sys" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "glib-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-base-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gobject-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-base-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "gstreamer-base" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "glib 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-base-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gobject-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-base-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "gstreamer-base-sys" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "glib-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gobject-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "gstreamer-gl" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "glib 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-base 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-base-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-gl-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-video 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-video-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gobject-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-base 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-gl-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-video 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-video-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "gstreamer-gl-sys" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "glib-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-base-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-video-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gobject-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-base-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-video-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "gstreamer-player" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "glib 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-player-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-video 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gobject-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-player-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-video 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "gstreamer-player-sys" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "glib-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-video-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gobject-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-video-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "gstreamer-sdp" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "glib 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-sdp-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", + "glib 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gobject-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-sdp-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "gstreamer-sdp-sys" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "glib-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gobject-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "gstreamer-sys" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "glib-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gobject-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "gstreamer-video" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "glib 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-base 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-base-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-video-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gobject-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-base 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-base-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-video-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "gstreamer-video-sys" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "glib-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-base-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gobject-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-base-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "gstreamer-webrtc" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "glib 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-sdp 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-webrtc-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gobject-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-sdp 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-webrtc-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "gstreamer-webrtc-sys" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "glib-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gobject-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-sdp-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gobject-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-sdp-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3337,6 +3336,26 @@ dependencies = [ ] [[package]] +name = "paste" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "paste-impl 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro-hack 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "paste-impl" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "proc-macro-hack 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] name = "peeking_take_while" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -3438,6 +3457,16 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] +name = "proc-macro-hack" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "proc-macro2 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] name = "proc-macro2" version = "0.4.26" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -4134,18 +4163,19 @@ dependencies = [ [[package]] name = "servo-media" version = "0.1.0" -source = "git+https://github.com/servo/media#c145e2097b027ca82ac767f4820693868a408bb5" +source = "git+https://github.com/servo/media#046f0575e675fed725e22a36bfb45a0cb8874f9f" dependencies = [ "servo-media-audio 0.1.0 (git+https://github.com/servo/media)", "servo-media-player 0.1.0 (git+https://github.com/servo/media)", "servo-media-streams 0.1.0 (git+https://github.com/servo/media)", + "servo-media-traits 0.1.0 (git+https://github.com/servo/media)", "servo-media-webrtc 0.1.0 (git+https://github.com/servo/media)", ] [[package]] name = "servo-media-audio" version = "0.1.0" -source = "git+https://github.com/servo/media#c145e2097b027ca82ac767f4820693868a408bb5" +source = "git+https://github.com/servo/media#046f0575e675fed725e22a36bfb45a0cb8874f9f" dependencies = [ "boxfnonce 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "byte-slice-cast 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4154,6 +4184,7 @@ dependencies = [ "petgraph 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "servo-media-traits 0.1.0 (git+https://github.com/servo/media)", "servo_media_derive 0.1.0 (git+https://github.com/servo/media)", "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -4161,7 +4192,7 @@ dependencies = [ [[package]] name = "servo-media-dummy" version = "0.1.0" -source = "git+https://github.com/servo/media#c145e2097b027ca82ac767f4820693868a408bb5" +source = "git+https://github.com/servo/media#046f0575e675fed725e22a36bfb45a0cb8874f9f" dependencies = [ "boxfnonce 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4169,30 +4200,31 @@ dependencies = [ "servo-media-audio 0.1.0 (git+https://github.com/servo/media)", "servo-media-player 0.1.0 (git+https://github.com/servo/media)", "servo-media-streams 0.1.0 (git+https://github.com/servo/media)", + "servo-media-traits 0.1.0 (git+https://github.com/servo/media)", "servo-media-webrtc 0.1.0 (git+https://github.com/servo/media)", ] [[package]] name = "servo-media-gstreamer" version = "0.1.0" -source = "git+https://github.com/servo/media#c145e2097b027ca82ac767f4820693868a408bb5" +source = "git+https://github.com/servo/media#046f0575e675fed725e22a36bfb45a0cb8874f9f" dependencies = [ "boxfnonce 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "byte-slice-cast 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "glib 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "glib-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-app 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-audio 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-base 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-player 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-sdp 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-sdp-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-video 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-webrtc 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-app 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-audio 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-base 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-player 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-sdp 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-video 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-webrtc 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", "regex 1.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "servo-media 0.1.0 (git+https://github.com/servo/media)", @@ -4201,6 +4233,7 @@ dependencies = [ "servo-media-gstreamer-render-unix 0.1.0 (git+https://github.com/servo/media)", "servo-media-player 0.1.0 (git+https://github.com/servo/media)", "servo-media-streams 0.1.0 (git+https://github.com/servo/media)", + "servo-media-traits 0.1.0 (git+https://github.com/servo/media)", "servo-media-webrtc 0.1.0 (git+https://github.com/servo/media)", "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", "zip 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4209,22 +4242,22 @@ dependencies = [ [[package]] name = "servo-media-gstreamer-render" version = "0.1.0" -source = "git+https://github.com/servo/media#c145e2097b027ca82ac767f4820693868a408bb5" +source = "git+https://github.com/servo/media#046f0575e675fed725e22a36bfb45a0cb8874f9f" dependencies = [ - "gstreamer 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-video 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-video 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", "servo-media-player 0.1.0 (git+https://github.com/servo/media)", ] [[package]] name = "servo-media-gstreamer-render-unix" version = "0.1.0" -source = "git+https://github.com/servo/media#c145e2097b027ca82ac767f4820693868a408bb5" +source = "git+https://github.com/servo/media#046f0575e675fed725e22a36bfb45a0cb8874f9f" dependencies = [ - "glib 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-gl 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gstreamer-video 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glib 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-gl 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gstreamer-video 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", "servo-media-gstreamer-render 0.1.0 (git+https://github.com/servo/media)", "servo-media-player 0.1.0 (git+https://github.com/servo/media)", ] @@ -4232,27 +4265,33 @@ dependencies = [ [[package]] name = "servo-media-player" version = "0.1.0" -source = "git+https://github.com/servo/media#c145e2097b027ca82ac767f4820693868a408bb5" +source = "git+https://github.com/servo/media#046f0575e675fed725e22a36bfb45a0cb8874f9f" dependencies = [ "ipc-channel 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", "servo-media-streams 0.1.0 (git+https://github.com/servo/media)", + "servo-media-traits 0.1.0 (git+https://github.com/servo/media)", ] [[package]] name = "servo-media-streams" version = "0.1.0" -source = "git+https://github.com/servo/media#c145e2097b027ca82ac767f4820693868a408bb5" +source = "git+https://github.com/servo/media#046f0575e675fed725e22a36bfb45a0cb8874f9f" dependencies = [ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] +name = "servo-media-traits" +version = "0.1.0" +source = "git+https://github.com/servo/media#046f0575e675fed725e22a36bfb45a0cb8874f9f" + +[[package]] name = "servo-media-webrtc" version = "0.1.0" -source = "git+https://github.com/servo/media#c145e2097b027ca82ac767f4820693868a408bb5" +source = "git+https://github.com/servo/media#046f0575e675fed725e22a36bfb45a0cb8874f9f" dependencies = [ "boxfnonce 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4351,7 +4390,7 @@ dependencies = [ [[package]] name = "servo_media_derive" version = "0.1.0" -source = "git+https://github.com/servo/media#c145e2097b027ca82ac767f4820693868a408bb5" +source = "git+https://github.com/servo/media#046f0575e675fed725e22a36bfb45a0cb8874f9f" dependencies = [ "proc-macro2 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", @@ -5833,8 +5872,8 @@ dependencies = [ "checksum gl_generator 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a0ffaf173cf76c73a73e080366bf556b4776ece104b06961766ff11449f38604" "checksum gl_generator 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "39a23d5e872a275135d66895d954269cf5e8661d234eb1c2480f4ce0d586acbd" "checksum gleam 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)" = "39bb69499005e11b7b7cc0af38404a1bc0f53d954bffa8adcdb6e8d5b14f75d5" -"checksum glib 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0c4e8fdc159c196a5dfa53a92929ac4c10c8a6637ffb43951f3fff89c2cd2365" -"checksum glib-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5bda542f3caee39a027638e9644ff89204101ad916fd7370b585ad2c5fc97e61" +"checksum glib 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d70d737019da0473a7cd6d9240571cf58c6897dcb10edf32b90774f4ba237c1b" +"checksum glib-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4b86a9169fbc9cf9a0ef315039c2304b09d5c575c5fde7defba3576a0311b863" "checksum glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb" "checksum glutin 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cb26027a84c3b9e1949ef0df0b6a3db8d0c124243a5c161ea25c7def90cb1474" "checksum glutin_egl_sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "23f48987ab6cb2b61ad903b59e54a2fd0c380a7baff68cffd6826b69a73dd326" @@ -5843,25 +5882,25 @@ dependencies = [ "checksum glutin_glx_sys 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "1290a5ca5e46fcfa7f66f949cc9d9194b2cb6f2ed61892c8c2b82343631dba57" "checksum glutin_wgl_sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f801bbc91efc22dd1c4818a47814fc72bf74d024510451b119381579bfa39021" "checksum glx 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d56d59aa89ba084f04dd4767df10649c65d1ab180a9a0d1eabb9b1d5a28ab2bd" -"checksum gobject-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "23e05a14290d3dc255223cba51db4b0f3da438d5250657996fa99b2a30faf43e" -"checksum gstreamer 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7edd8690dc3fb124e02d06c266c0b2a1ff4617910a26bbf2afb6d8183e76bf8c" -"checksum gstreamer-app 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6ac4e19310527c932c79da0afa2fb973bc300744347b65e7f8d67d83e4a5484c" -"checksum gstreamer-app-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ef2e3acd3ac1127109558bad31b8861f1806141375ca8787baecc25ed9c83497" -"checksum gstreamer-audio 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "505abc1a03de4dfcff4219ec21a98016ce6180950db7b349a31e4aadb4e376cd" -"checksum gstreamer-audio-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2be21b626cbb00f15582da5fc8e254dea95b728fe79a862687a3ad43918a4e8c" -"checksum gstreamer-base 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d5125abdd41935c39cf0525160882c18610ee9332496fd4ca69c1218069126ae" -"checksum gstreamer-base-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5a3f7c5624775ddfdc34a0e5932e1f3786a305390f26844e7567fb0179b985f2" -"checksum gstreamer-gl 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "364a49f206a6d58cc7d51204472cfb2b5e274c8b2b5a438aadfb3e93d21207d7" -"checksum gstreamer-gl-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "83ac65068d1e4d9a43e84cc87b68f0f3aa79a16edc107722b8fda476b7ae636a" -"checksum gstreamer-player 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e5341030ff6c8fb0e83ed01abab236a74cbcbe88afd0f4870e3a6b34a1fd61c4" -"checksum gstreamer-player-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ac29007ef1f9abc0e35ea0b65c4331ddae5355ad6869e1099f3497db606c40a" -"checksum gstreamer-sdp 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "edbaa1a273328f4e8ab261cc2bc0065fdb0f2f53a16f0525b4f5d75cf0aa6225" -"checksum gstreamer-sdp-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "81136c0579291b36c1b2fb0e797f4847e22ac502ee36733dfdc5a95fb71c23f0" -"checksum gstreamer-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "79e3a47e15245892cfa722e5f64714c9e2de5683eef0a706f56a8899b78100c8" -"checksum gstreamer-video 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1ac4da6efce179977de2337d392574c6e6c00f502a8fef6f6bfc11f8e16a93ed" -"checksum gstreamer-video-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "da2b2bc12f6cbb96f2735e4b9e3241a9832139de042cf67415025c282b2ff9b7" -"checksum gstreamer-webrtc 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "90b57e4a91aa677fae841711af3b5b962d37c64c1c62cbeefaba4af18e049c2f" -"checksum gstreamer-webrtc-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9dd6c04ea7cd1222787d6718f1e42a062cae3abbe257ff9ebb34793e67afcdad" +"checksum gobject-sys 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "61d55bc9202447ca776f6ad0048c36e3312010f66f82ab478e97513e93f3604b" +"checksum gstreamer 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ef25820a32bd6f51191f3eb466499a80f89c00d67a1448c08b9b5f9aebb7613" +"checksum gstreamer-app 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a85485c2db4149ccb24d0b3c6598725743dec254bf757ac7a3684e62b9822c27" +"checksum gstreamer-app-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "41c85ef44d827b9292833203f6623cf6592d5eda06ad1eeefa63bca0cc38ce71" +"checksum gstreamer-audio 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3d4f0bddc4c983105f3a0666d6e3abc88a72aad3d3b862816ed7f8c86aa3e833" +"checksum gstreamer-audio-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "03c8b1cc44e9df434e1817ee00bfa5cb146008cacfcfbd88de4a0dac90b04496" +"checksum gstreamer-base 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f9e72a0456c51e9cf3a21c96539bed9be3f38c85ea49eee6d87a4d61db0cc2b0" +"checksum gstreamer-base-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9ba1955ea091323c17fdf8ff54fd7cf3dfed1a6035193ba08f85eb76bf549056" +"checksum gstreamer-gl 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3a7e54a021369cc93be69d2aaaab75e8916517bbc6de9d19f6584135df740580" +"checksum gstreamer-gl-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb42f6fb935126b02e6221d0c3655da0b3817bda9e355cc44467cd54ad8259b5" +"checksum gstreamer-player 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "78395f87de2b954ca3e33a594a4eb85e68246f5f41a70bf0ab52187aacb4d3a9" +"checksum gstreamer-player-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c3608d3e96c8977f31b9b8db7da0b8d0e96758b060e3f05fc3ee9626d75ab1c5" +"checksum gstreamer-sdp 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b2e680156e5a488eda9ebd6081c0141386ef72bb81e3f0e6a2ca0c3129d82ac2" +"checksum gstreamer-sdp-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e062aa557a851d8aac367df24ca80040ec45340033c0c6675fbdc7f26f71da48" +"checksum gstreamer-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bdfc2f6cc9b6a1f5159bfd500310fe431cfb0b74b3af17ce3fdf8353cf586975" +"checksum gstreamer-video 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b3f0b864eced7c270c0e083a433128ddf65cda2409a5f400e1c7af3cb59858f" +"checksum gstreamer-video-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6b8fcb1e577de93d1ad1e5117234ce64d40f215143d752140719923651608983" +"checksum gstreamer-webrtc 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e085c2c1ddfbbf91459c950d10b40e7acef1f8661f6e86aa4d40edfef91cd167" +"checksum gstreamer-webrtc-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0bf7375d6737037e01c6c2342ab30e6ff77cf5e36fc64c81d8d43054b33f4fa7" "checksum gvr-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b1334b94d8ce67319ddc44663daef53d8c1538629a11562530c981dbd9085b9a" "checksum h2 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "a27e7ed946e8335bdf9a191bc1b9b14a03ba822d013d2f58437f4fabcbd7fc2c" "checksum half 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "63d68db75012a85555434ee079e7e6337931f87a087ab2988becbadf64673a7f" @@ -5974,6 +6013,8 @@ dependencies = [ "checksum parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fa7767817701cce701d5585b9c4db3cdd02086398322c1d7e8bf5094a96a2ce7" "checksum parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9" "checksum parking_lot_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cb88cb1cb3790baa6776844f968fea3be44956cf184fa1be5a03341f5491278c" +"checksum paste 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "1f4a4a1c555c6505821f9d58b8779d0f630a6b7e4e1be24ba718610acf01fa79" +"checksum paste-impl 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "26e796e623b8b257215f27e6c80a5478856cae305f5b59810ff9acdaa34570e6" "checksum peeking_take_while 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" "checksum percent-encoding 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "de154f638187706bde41d9b4738748933d64e6b37bdbffc0b47a97d16a6ae356" "checksum petgraph 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)" = "9c3659d1ee90221741f65dd128d9998311b0e40c5d3c23a62445938214abce4f" @@ -5986,6 +6027,7 @@ dependencies = [ "checksum png 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9adebf7fb91ccf5eac9da1a8e00e83cb8ae882c3e8d8e4ad59da73cb8c82a2c9" "checksum podio 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "780fb4b6698bbf9cf2444ea5d22411cef2953f0824b98f33cf454ec5615645bd" "checksum precomputed-hash 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" +"checksum proc-macro-hack 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)" = "0c1dd4172a1e1f96f709341418f49b11ea6c2d95d53dca08c0f74cbd332d9cf3" "checksum proc-macro2 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)" = "38fddd23d98b2144d197c0eca5705632d4fe2667d14a6be5df8934f8d74f1978" "checksum procedural-masquerade 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "9a1574a51c3fd37b26d2c0032b649d08a7d51d4cca9c41bbc5bf7118fa4509d0" "checksum quick-error 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "eda5fe9b71976e62bc81b781206aaa076401769b2143379d3eb2118388babac4" @@ -6041,6 +6083,7 @@ dependencies = [ "checksum servo-media-gstreamer-render-unix 0.1.0 (git+https://github.com/servo/media)" = "<none>" "checksum servo-media-player 0.1.0 (git+https://github.com/servo/media)" = "<none>" "checksum servo-media-streams 0.1.0 (git+https://github.com/servo/media)" = "<none>" +"checksum servo-media-traits 0.1.0 (git+https://github.com/servo/media)" = "<none>" "checksum servo-media-webrtc 0.1.0 (git+https://github.com/servo/media)" = "<none>" "checksum servo-skia 0.30000021.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f6c0a65022054874fc1f38dc45e19192accbae775784c3ff05c3875bcc176c19" "checksum servo_media_derive 0.1.0 (git+https://github.com/servo/media)" = "<none>" diff --git a/components/msg/constellation_msg.rs b/components/msg/constellation_msg.rs index f936a39cf96..b8ba3c84e31 100644 --- a/components/msg/constellation_msg.rs +++ b/components/msg/constellation_msg.rs @@ -174,7 +174,7 @@ thread_local!(pub static TOP_LEVEL_BROWSING_CONTEXT_ID: Cell<Option<TopLevelBrow #[derive( Clone, Copy, Debug, Deserialize, Eq, Hash, MallocSizeOf, Ord, PartialEq, PartialOrd, Serialize, )] -pub struct TopLevelBrowsingContextId(BrowsingContextId); +pub struct TopLevelBrowsingContextId(pub BrowsingContextId); impl TopLevelBrowsingContextId { pub fn new() -> TopLevelBrowsingContextId { diff --git a/components/script/dom/audiocontext.rs b/components/script/dom/audiocontext.rs index dca6e62de31..9321bee1089 100644 --- a/components/script/dom/audiocontext.rs +++ b/components/script/dom/audiocontext.rs @@ -23,6 +23,7 @@ use crate::dom::promise::Promise; use crate::dom::window::Window; use crate::task_source::TaskSource; use dom_struct::dom_struct; +use msg::constellation_msg::BrowsingContextId; use servo_media::audio::context::{LatencyCategory, ProcessingState, RealTimeAudioContextOptions}; use std::rc::Rc; @@ -39,10 +40,15 @@ pub struct AudioContext { impl AudioContext { #[allow(unrooted_must_root)] // https://webaudio.github.io/web-audio-api/#AudioContext-constructors - fn new_inherited(options: &AudioContextOptions) -> AudioContext { + fn new_inherited( + options: &AudioContextOptions, + browsing_context_id: BrowsingContextId, + ) -> AudioContext { // Steps 1-3. - let context = - BaseAudioContext::new_inherited(BaseAudioContextOptions::AudioContext(options.into())); + let context = BaseAudioContext::new_inherited( + BaseAudioContextOptions::AudioContext(options.into()), + browsing_context_id, + ); // Step 4.1. let latency_hint = options.latencyHint; @@ -64,7 +70,8 @@ impl AudioContext { #[allow(unrooted_must_root)] pub fn new(window: &Window, options: &AudioContextOptions) -> DomRoot<AudioContext> { - let context = AudioContext::new_inherited(options); + let browsing_context_id = window.window_proxy().top_level_browsing_context_id().0; + let context = AudioContext::new_inherited(options, browsing_context_id); let context = reflect_dom_object(Box::new(context), window, AudioContextBinding::Wrap); context.resume(); context @@ -128,7 +135,7 @@ impl AudioContextMethods for AudioContext { let window = DomRoot::downcast::<Window>(self.global()).unwrap(); let task_source = window.task_manager().dom_manipulation_task_source(); let trusted_promise = TrustedPromise::new(promise.clone()); - match self.context.audio_context_impl().suspend() { + match self.context.audio_context_impl().lock().unwrap().suspend() { Ok(_) => { let base_context = Trusted::new(&self.context); let context = Trusted::new(self); @@ -189,7 +196,7 @@ impl AudioContextMethods for AudioContext { let window = DomRoot::downcast::<Window>(self.global()).unwrap(); let task_source = window.task_manager().dom_manipulation_task_source(); let trusted_promise = TrustedPromise::new(promise.clone()); - match self.context.audio_context_impl().close() { + match self.context.audio_context_impl().lock().unwrap().close() { Ok(_) => { let base_context = Trusted::new(&self.context); let context = Trusted::new(self); diff --git a/components/script/dom/audionode.rs b/components/script/dom/audionode.rs index 64aa46f008e..841b99d2d8f 100644 --- a/components/script/dom/audionode.rs +++ b/components/script/dom/audionode.rs @@ -58,7 +58,11 @@ impl AudioNode { mode: options.mode.into(), interpretation: options.interpretation.into(), }; - let node_id = context.audio_context_impl().create_node(node_type, ch); + let node_id = context + .audio_context_impl() + .lock() + .unwrap() + .create_node(node_type, ch); Ok(AudioNode::new_inherited_for_id( node_id, context, @@ -90,6 +94,8 @@ impl AudioNode { pub fn message(&self, message: AudioNodeMessage) { self.context .audio_context_impl() + .lock() + .unwrap() .message_node(self.node_id, message); } @@ -116,10 +122,14 @@ impl AudioNodeMethods for AudioNode { // servo-media takes care of ignoring duplicated connections. - self.context.audio_context_impl().connect_ports( - self.node_id().output(output), - destination.node_id().input(input), - ); + self.context + .audio_context_impl() + .lock() + .unwrap() + .connect_ports( + self.node_id().output(output), + destination.node_id().input(input), + ); Ok(DomRoot::from_ref(destination)) } @@ -136,10 +146,14 @@ impl AudioNodeMethods for AudioNode { // servo-media takes care of ignoring duplicated connections. - self.context.audio_context_impl().connect_ports( - self.node_id().output(output), - dest.node_id().param(dest.param_type()), - ); + self.context + .audio_context_impl() + .lock() + .unwrap() + .connect_ports( + self.node_id().output(output), + dest.node_id().param(dest.param_type()), + ); Ok(()) } @@ -148,6 +162,8 @@ impl AudioNodeMethods for AudioNode { fn Disconnect(&self) -> ErrorResult { self.context .audio_context_impl() + .lock() + .unwrap() .disconnect_all_from(self.node_id()); Ok(()) } @@ -156,6 +172,8 @@ impl AudioNodeMethods for AudioNode { fn Disconnect_(&self, out: u32) -> ErrorResult { self.context .audio_context_impl() + .lock() + .unwrap() .disconnect_output(self.node_id().output(out)); Ok(()) } @@ -164,6 +182,8 @@ impl AudioNodeMethods for AudioNode { fn Disconnect__(&self, to: &AudioNode) -> ErrorResult { self.context .audio_context_impl() + .lock() + .unwrap() .disconnect_between(self.node_id(), to.node_id()); Ok(()) } @@ -172,6 +192,8 @@ impl AudioNodeMethods for AudioNode { fn Disconnect___(&self, to: &AudioNode, out: u32) -> ErrorResult { self.context .audio_context_impl() + .lock() + .unwrap() .disconnect_output_between(self.node_id().output(out), to.node_id()); Ok(()) } @@ -180,6 +202,8 @@ impl AudioNodeMethods for AudioNode { fn Disconnect____(&self, to: &AudioNode, out: u32, inp: u32) -> ErrorResult { self.context .audio_context_impl() + .lock() + .unwrap() .disconnect_output_between_to(self.node_id().output(out), to.node_id().input(inp)); Ok(()) } @@ -188,6 +212,8 @@ impl AudioNodeMethods for AudioNode { fn Disconnect_____(&self, param: &AudioParam) -> ErrorResult { self.context .audio_context_impl() + .lock() + .unwrap() .disconnect_to(self.node_id(), param.node_id().param(param.param_type())); Ok(()) } @@ -196,6 +222,8 @@ impl AudioNodeMethods for AudioNode { fn Disconnect______(&self, param: &AudioParam, out: u32) -> ErrorResult { self.context .audio_context_impl() + .lock() + .unwrap() .disconnect_output_between_to( self.node_id().output(out), param.node_id().param(param.param_type()), diff --git a/components/script/dom/audioparam.rs b/components/script/dom/audioparam.rs index f4e42264225..8d07a0d4bd5 100644 --- a/components/script/dom/audioparam.rs +++ b/components/script/dom/audioparam.rs @@ -81,6 +81,8 @@ impl AudioParam { fn message_node(&self, message: AudioNodeMessage) { self.context .audio_context_impl() + .lock() + .unwrap() .message_node(self.node, message); } diff --git a/components/script/dom/baseaudiocontext.rs b/components/script/dom/baseaudiocontext.rs index 29af7839382..c977e495eb5 100644 --- a/components/script/dom/baseaudiocontext.rs +++ b/components/script/dom/baseaudiocontext.rs @@ -49,11 +49,12 @@ use crate::task_source::TaskSource; use dom_struct::dom_struct; use js::rust::CustomAutoRooterGuard; use js::typedarray::ArrayBuffer; +use msg::constellation_msg::BrowsingContextId; use servo_media::audio::context::{AudioContext, AudioContextOptions, ProcessingState}; use servo_media::audio::context::{OfflineAudioContextOptions, RealTimeAudioContextOptions}; use servo_media::audio::decoder::AudioDecoderCallbacks; use servo_media::audio::graph::NodeId; -use servo_media::ServoMedia; +use servo_media::{ClientContextId, ServoMedia}; use std::cell::Cell; use std::collections::hash_map::Entry; use std::collections::{HashMap, VecDeque}; @@ -79,7 +80,7 @@ struct DecodeResolver { pub struct BaseAudioContext { eventtarget: EventTarget, #[ignore_malloc_size_of = "servo_media"] - audio_context_impl: AudioContext, + audio_context_impl: Arc<Mutex<AudioContext>>, /// https://webaudio.github.io/web-audio-api/#dom-baseaudiocontext-destination destination: MutNullableDom<AudioDestinationNode>, listener: MutNullableDom<AudioListener>, @@ -104,7 +105,10 @@ pub struct BaseAudioContext { impl BaseAudioContext { #[allow(unrooted_must_root)] - pub fn new_inherited(options: BaseAudioContextOptions) -> BaseAudioContext { + pub fn new_inherited( + options: BaseAudioContextOptions, + browsing_context_id: BrowsingContextId, + ) -> BaseAudioContext { let (sample_rate, channel_count) = match options { BaseAudioContextOptions::AudioContext(ref opt) => (opt.sample_rate, 2), BaseAudioContextOptions::OfflineAudioContext(ref opt) => { @@ -112,11 +116,15 @@ impl BaseAudioContext { }, }; + let client_context_id = ClientContextId::build( + browsing_context_id.namespace_id.0, + browsing_context_id.index.0.get(), + ); let context = BaseAudioContext { eventtarget: EventTarget::new_inherited(), audio_context_impl: ServoMedia::get() .unwrap() - .create_audio_context(options.into()), + .create_audio_context(&client_context_id, options.into()), destination: Default::default(), listener: Default::default(), in_flight_resume_promises_queue: Default::default(), @@ -135,16 +143,16 @@ impl BaseAudioContext { false } - pub fn audio_context_impl(&self) -> &AudioContext { - &self.audio_context_impl + pub fn audio_context_impl(&self) -> Arc<Mutex<AudioContext>> { + self.audio_context_impl.clone() } pub fn destination_node(&self) -> NodeId { - self.audio_context_impl.dest_node() + self.audio_context_impl.lock().unwrap().dest_node() } pub fn listener(&self) -> NodeId { - self.audio_context_impl.listener() + self.audio_context_impl.lock().unwrap().listener() } // https://webaudio.github.io/web-audio-api/#allowed-to-start @@ -205,7 +213,7 @@ impl BaseAudioContext { /// Control thread processing state pub fn control_thread_state(&self) -> ProcessingState { - self.audio_context_impl.state() + self.audio_context_impl.lock().unwrap().state() } /// Set audio context state @@ -220,7 +228,7 @@ impl BaseAudioContext { let this = Trusted::new(self); // Set the rendering thread state to 'running' and start // rendering the audio graph. - match self.audio_context_impl.resume() { + match self.audio_context_impl.lock().unwrap().resume() { Ok(()) => { self.take_pending_resume_promises(Ok(())); let _ = task_source.queue( @@ -264,7 +272,7 @@ impl BaseAudioContextMethods for BaseAudioContext { /// https://webaudio.github.io/web-audio-api/#dom-baseaudiocontext-currenttime fn CurrentTime(&self) -> Finite<f64> { - let current_time = self.audio_context_impl.current_time(); + let current_time = self.audio_context_impl.lock().unwrap().current_time(); Finite::wrap(current_time) } @@ -279,7 +287,7 @@ impl BaseAudioContextMethods for BaseAudioContext { let promise = Promise::new_in_current_compartment(&self.global(), comp); // Step 2. - if self.audio_context_impl.state() == ProcessingState::Closed { + if self.audio_context_impl.lock().unwrap().state() == ProcessingState::Closed { promise.reject_error(Error::InvalidState); return promise; } @@ -520,6 +528,8 @@ impl BaseAudioContextMethods for BaseAudioContext { }) .build(); self.audio_context_impl + .lock() + .unwrap() .decode_audio_data(audio_data, callbacks); } else { // Step 3. diff --git a/components/script/dom/bindings/trace.rs b/components/script/dom/bindings/trace.rs index d9e0cf893b6..a0a7fa67826 100644 --- a/components/script/dom/bindings/trace.rs +++ b/components/script/dom/bindings/trace.rs @@ -493,10 +493,10 @@ unsafe_no_jsmanaged_fields!(InteractiveWindow); unsafe_no_jsmanaged_fields!(CanvasId); unsafe_no_jsmanaged_fields!(SourceSet); unsafe_no_jsmanaged_fields!(AudioBuffer); -unsafe_no_jsmanaged_fields!(AudioContext); +unsafe_no_jsmanaged_fields!(Arc<Mutex<AudioContext>>); unsafe_no_jsmanaged_fields!(NodeId); unsafe_no_jsmanaged_fields!(AnalysisEngine, DistanceModel, PanningModel, ParamType); -unsafe_no_jsmanaged_fields!(dyn Player); +unsafe_no_jsmanaged_fields!(Arc<Mutex<dyn Player>>); unsafe_no_jsmanaged_fields!(WebRtcController); unsafe_no_jsmanaged_fields!(MediaStreamId, MediaStreamType); unsafe_no_jsmanaged_fields!(Mutex<MediaFrameRenderer>); diff --git a/components/script/dom/htmlmediaelement.rs b/components/script/dom/htmlmediaelement.rs index 690692a2481..9ba07fe0c09 100644 --- a/components/script/dom/htmlmediaelement.rs +++ b/components/script/dom/htmlmediaelement.rs @@ -75,7 +75,7 @@ use script_layout_interface::HTMLMediaData; use servo_config::pref; use servo_media::player::frame::{Frame, FrameRenderer}; use servo_media::player::{PlaybackState, Player, PlayerError, PlayerEvent, StreamType}; -use servo_media::{ServoMedia, SupportsMediaType}; +use servo_media::{ClientContextId, ServoMedia, SupportsMediaType}; use servo_url::ServoUrl; use std::cell::Cell; use std::collections::VecDeque; @@ -297,7 +297,7 @@ pub struct HTMLMediaElement { #[ignore_malloc_size_of = "promises are hard"] in_flight_play_promises_queue: DomRefCell<VecDeque<(Box<[Rc<Promise>]>, ErrorResult)>>, #[ignore_malloc_size_of = "servo_media"] - player: DomRefCell<Option<Box<dyn Player>>>, + player: DomRefCell<Option<Arc<Mutex<dyn Player>>>>, #[ignore_malloc_size_of = "Arc"] frame_renderer: Arc<Mutex<MediaFrameRenderer>>, /// https://html.spec.whatwg.org/multipage/#show-poster-flag @@ -415,10 +415,10 @@ impl HTMLMediaElement { fn play_media(&self) { if let Some(ref player) = *self.player.borrow() { - if let Err(e) = player.set_rate(self.playbackRate.get()) { + if let Err(e) = player.lock().unwrap().set_rate(self.playbackRate.get()) { warn!("Could not set the playback rate {:?}", e); } - if let Err(e) = player.play() { + if let Err(e) = player.lock().unwrap().play() { warn!("Could not play media {:?}", e); } } @@ -485,7 +485,7 @@ impl HTMLMediaElement { this.upcast::<EventTarget>().fire_event(atom!("pause")); if let Some(ref player) = *this.player.borrow() { - if let Err(e) = player.pause() { + if let Err(e) = player.lock().unwrap().pause() { eprintln!("Could not pause player {:?}", e); } } @@ -925,6 +925,8 @@ impl HTMLMediaElement { .borrow() .as_ref() .unwrap() + .lock() + .unwrap() .set_stream(&track.id(), pos == tracks.len() - 1) { self.queue_dedicated_media_source_failure_steps(); @@ -974,7 +976,7 @@ impl HTMLMediaElement { this.upcast::<EventTarget>().fire_event(atom!("error")); if let Some(ref player) = *this.player.borrow() { - if let Err(e) = player.stop() { + if let Err(e) = player.lock().unwrap().stop() { eprintln!("Could not stop player {:?}", e); } } @@ -1230,7 +1232,7 @@ impl HTMLMediaElement { // Step 11. if let Some(ref player) = *self.player.borrow() { - if let Err(e) = player.seek(time) { + if let Err(e) = player.lock().unwrap().seek(time) { eprintln!("Seek error {:?}", e); } } @@ -1302,7 +1304,13 @@ impl HTMLMediaElement { HTMLMediaElementTypeId::HTMLVideoElement => Some(self.frame_renderer.clone()), }; + let browsing_context_id = window.window_proxy().top_level_browsing_context_id().0; + let client_context_id = ClientContextId::build( + browsing_context_id.namespace_id.0, + browsing_context_id.index.0.get(), + ); let player = ServoMedia::get().unwrap().create_player( + &client_context_id, stream_type, action_sender, renderer, @@ -1737,9 +1745,14 @@ impl Drop for HTMLMediaElement { }); if let Some(ref player) = *self.player.borrow() { - if let Err(err) = player.shutdown() { - warn!("Error shutting down player {:?}", err); - } + let browsing_context_id = window.window_proxy().top_level_browsing_context_id().0; + let client_context_id = ClientContextId::build( + browsing_context_id.namespace_id.0, + browsing_context_id.index.0.get(), + ); + ServoMedia::get() + .unwrap() + .shutdown_player(&client_context_id, player.clone()); } } } @@ -1797,7 +1810,7 @@ impl HTMLMediaElementMethods for HTMLMediaElement { } if let Some(ref player) = *self.player.borrow() { - let _ = player.set_mute(value); + let _ = player.lock().unwrap().set_mute(value); } self.muted.set(value); @@ -2005,7 +2018,7 @@ impl HTMLMediaElementMethods for HTMLMediaElement { self.queue_ratechange_event(); if self.is_potentially_playing() { if let Some(ref player) = *self.player.borrow() { - if let Err(e) = player.set_rate(*value) { + if let Err(e) = player.lock().unwrap().set_rate(*value) { warn!("Could not set the playback rate {:?}", e); } } @@ -2072,7 +2085,7 @@ impl HTMLMediaElementMethods for HTMLMediaElement { fn Buffered(&self) -> DomRoot<TimeRanges> { let mut buffered = TimeRangesContainer::new(); if let Some(ref player) = *self.player.borrow() { - if let Ok(ranges) = player.buffered() { + if let Ok(ranges) = player.lock().unwrap().buffered() { for range in ranges { let _ = buffered.add(range.start as f64, range.end as f64); } @@ -2378,6 +2391,8 @@ impl FetchResponseListener for HTMLMediaElementFetchListener { .borrow() .as_ref() .unwrap() + .lock() + .unwrap() .set_input_size(content_length) { warn!("Could not set player input size {:?}", e); @@ -2431,7 +2446,15 @@ impl FetchResponseListener for HTMLMediaElementFetchListener { let payload_len = payload.len() as u64; // Push input data into the player. - if let Err(e) = elem.player.borrow().as_ref().unwrap().push_data(payload) { + if let Err(e) = elem + .player + .borrow() + .as_ref() + .unwrap() + .lock() + .unwrap() + .push_data(payload) + { // If we are pushing too much data and we know that we can // restart the download later from where we left, we cancel // the current request. Otherwise, we continue the request @@ -2478,7 +2501,15 @@ impl FetchResponseListener for HTMLMediaElementFetchListener { if elem.generation_id.get() == self.generation_id { if let Some(ref current_fetch_context) = *elem.current_fetch_context.borrow() { if let Some(CancelReason::Error) = current_fetch_context.cancel_reason() { - if let Err(e) = elem.player.borrow().as_ref().unwrap().end_of_stream() { + if let Err(e) = elem + .player + .borrow() + .as_ref() + .unwrap() + .lock() + .unwrap() + .end_of_stream() + { warn!("Could not signal EOS to player {:?}", e); } return; diff --git a/components/script/dom/offlineaudiocontext.rs b/components/script/dom/offlineaudiocontext.rs index db7985a84f1..8e3776817ab 100644 --- a/components/script/dom/offlineaudiocontext.rs +++ b/components/script/dom/offlineaudiocontext.rs @@ -23,6 +23,7 @@ use crate::dom::promise::Promise; use crate::dom::window::Window; use crate::task_source::TaskSource; use dom_struct::dom_struct; +use msg::constellation_msg::BrowsingContextId; use servo_media::audio::context::OfflineAudioContextOptions as ServoMediaOfflineAudioContextOptions; use std::cell::Cell; use std::rc::Rc; @@ -42,14 +43,21 @@ pub struct OfflineAudioContext { impl OfflineAudioContext { #[allow(unrooted_must_root)] - fn new_inherited(channel_count: u32, length: u32, sample_rate: f32) -> OfflineAudioContext { + fn new_inherited( + channel_count: u32, + length: u32, + sample_rate: f32, + browsing_context_id: BrowsingContextId, + ) -> OfflineAudioContext { let options = ServoMediaOfflineAudioContextOptions { channels: channel_count as u8, length: length as usize, sample_rate, }; - let context = - BaseAudioContext::new_inherited(BaseAudioContextOptions::OfflineAudioContext(options)); + let context = BaseAudioContext::new_inherited( + BaseAudioContextOptions::OfflineAudioContext(options), + browsing_context_id, + ); OfflineAudioContext { context, channel_count, @@ -74,7 +82,13 @@ impl OfflineAudioContext { { return Err(Error::NotSupported); } - let context = OfflineAudioContext::new_inherited(channel_count, length, sample_rate); + let browsing_context_id = window.window_proxy().top_level_browsing_context_id().0; + let context = OfflineAudioContext::new_inherited( + channel_count, + length, + sample_rate, + browsing_context_id, + ); Ok(reflect_dom_object( Box::new(context), window, @@ -130,6 +144,8 @@ impl OfflineAudioContextMethods for OfflineAudioContext { let sender = Mutex::new(sender); self.context .audio_context_impl() + .lock() + .unwrap() .set_eos_callback(Box::new(move |buffer| { processed_audio_ .lock() @@ -181,7 +197,14 @@ impl OfflineAudioContextMethods for OfflineAudioContext { }) .unwrap(); - if self.context.audio_context_impl().resume().is_err() { + if self + .context + .audio_context_impl() + .lock() + .unwrap() + .resume() + .is_err() + { promise.reject_error(Error::Type("Could not start offline rendering".to_owned())); } |