aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock59
-rw-r--r--components/script/dom/htmlmediaelement.rs3
-rw-r--r--components/servo/Cargo.toml7
-rw-r--r--components/servo/lib.rs25
4 files changed, 69 insertions, 25 deletions
diff --git a/Cargo.lock b/Cargo.lock
index fbf547ae545..72d0c9ca162 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2400,7 +2400,8 @@ dependencies = [
"script_layout_interface 0.0.1",
"script_traits 0.0.1",
"servo-media 0.1.0 (git+https://github.com/servo/media)",
- "servo-media-auto 0.1.0 (git+https://github.com/servo/media)",
+ "servo-media-dummy 0.1.0 (git+https://github.com/servo/media)",
+ "servo-media-gstreamer 0.1.0 (git+https://github.com/servo/media)",
"servo_config 0.0.1",
"servo_geometry 0.0.1",
"servo_url 0.0.1",
@@ -3780,7 +3781,7 @@ dependencies = [
[[package]]
name = "servo-media"
version = "0.1.0"
-source = "git+https://github.com/servo/media#a7e38bb566e81085eef9410b9dd6bd67873ffdd9"
+source = "git+https://github.com/servo/media#04bfd8853b71f99a0fa226b21d7d5f923536ddf6"
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)",
@@ -3791,7 +3792,7 @@ dependencies = [
[[package]]
name = "servo-media-audio"
version = "0.1.0"
-source = "git+https://github.com/servo/media#a7e38bb566e81085eef9410b9dd6bd67873ffdd9"
+source = "git+https://github.com/servo/media#04bfd8853b71f99a0fa226b21d7d5f923536ddf6"
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)",
@@ -3805,18 +3806,9 @@ dependencies = [
]
[[package]]
-name = "servo-media-auto"
-version = "0.1.0"
-source = "git+https://github.com/servo/media#a7e38bb566e81085eef9410b9dd6bd67873ffdd9"
-dependencies = [
- "servo-media-dummy 0.1.0 (git+https://github.com/servo/media)",
- "servo-media-gstreamer 0.1.0 (git+https://github.com/servo/media)",
-]
-
-[[package]]
name = "servo-media-dummy"
version = "0.1.0"
-source = "git+https://github.com/servo/media#a7e38bb566e81085eef9410b9dd6bd67873ffdd9"
+source = "git+https://github.com/servo/media#04bfd8853b71f99a0fa226b21d7d5f923536ddf6"
dependencies = [
"boxfnonce 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -3830,7 +3822,7 @@ dependencies = [
[[package]]
name = "servo-media-gstreamer"
version = "0.1.0"
-source = "git+https://github.com/servo/media#a7e38bb566e81085eef9410b9dd6bd67873ffdd9"
+source = "git+https://github.com/servo/media#04bfd8853b71f99a0fa226b21d7d5f923536ddf6"
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)",
@@ -3839,7 +3831,7 @@ dependencies = [
"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-gl 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)",
@@ -3848,9 +3840,12 @@ dependencies = [
"gstreamer-webrtc 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)",
"regex 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-media 0.1.0 (git+https://github.com/servo/media)",
"servo-media-audio 0.1.0 (git+https://github.com/servo/media)",
+ "servo-media-gstreamer-render 0.1.0 (git+https://github.com/servo/media)",
+ "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-webrtc 0.1.0 (git+https://github.com/servo/media)",
@@ -3859,9 +3854,32 @@ dependencies = [
]
[[package]]
+name = "servo-media-gstreamer-render"
+version = "0.1.0"
+source = "git+https://github.com/servo/media#04bfd8853b71f99a0fa226b21d7d5f923536ddf6"
+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)",
+ "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#04bfd8853b71f99a0fa226b21d7d5f923536ddf6"
+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)",
+ "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)",
+]
+
+[[package]]
name = "servo-media-player"
version = "0.1.0"
-source = "git+https://github.com/servo/media#a7e38bb566e81085eef9410b9dd6bd67873ffdd9"
+source = "git+https://github.com/servo/media#04bfd8853b71f99a0fa226b21d7d5f923536ddf6"
dependencies = [
"ipc-channel 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -3872,7 +3890,7 @@ dependencies = [
[[package]]
name = "servo-media-streams"
version = "0.1.0"
-source = "git+https://github.com/servo/media#a7e38bb566e81085eef9410b9dd6bd67873ffdd9"
+source = "git+https://github.com/servo/media#04bfd8853b71f99a0fa226b21d7d5f923536ddf6"
dependencies = [
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"uuid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -3881,7 +3899,7 @@ dependencies = [
[[package]]
name = "servo-media-webrtc"
version = "0.1.0"
-source = "git+https://github.com/servo/media#a7e38bb566e81085eef9410b9dd6bd67873ffdd9"
+source = "git+https://github.com/servo/media#04bfd8853b71f99a0fa226b21d7d5f923536ddf6"
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)",
@@ -3980,7 +3998,7 @@ dependencies = [
[[package]]
name = "servo_media_derive"
version = "0.1.0"
-source = "git+https://github.com/servo/media#a7e38bb566e81085eef9410b9dd6bd67873ffdd9"
+source = "git+https://github.com/servo/media#04bfd8853b71f99a0fa226b21d7d5f923536ddf6"
dependencies = [
"proc-macro2 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)",
"quote 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -5549,9 +5567,10 @@ dependencies = [
"checksum servo-freetype-sys 4.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5d00ab791f66cd2ec58e72c91b6076cee20fac560463aa871404eb31dfc9c4ff"
"checksum servo-media 0.1.0 (git+https://github.com/servo/media)" = "<none>"
"checksum servo-media-audio 0.1.0 (git+https://github.com/servo/media)" = "<none>"
-"checksum servo-media-auto 0.1.0 (git+https://github.com/servo/media)" = "<none>"
"checksum servo-media-dummy 0.1.0 (git+https://github.com/servo/media)" = "<none>"
"checksum servo-media-gstreamer 0.1.0 (git+https://github.com/servo/media)" = "<none>"
+"checksum servo-media-gstreamer-render 0.1.0 (git+https://github.com/servo/media)" = "<none>"
+"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-webrtc 0.1.0 (git+https://github.com/servo/media)" = "<none>"
diff --git a/components/script/dom/htmlmediaelement.rs b/components/script/dom/htmlmediaelement.rs
index 51170564be2..b6abf77f334 100644
--- a/components/script/dom/htmlmediaelement.rs
+++ b/components/script/dom/htmlmediaelement.rs
@@ -1300,7 +1300,8 @@ impl HTMLMediaElement {
}
}
},
- PlayerEvent::Error => {
+ PlayerEvent::Error(ref error) => {
+ error!("Player error: {:?}", error);
self.error.set(Some(&*MediaError::new(
&*window_from_node(self),
MEDIA_ERR_DECODE,
diff --git a/components/servo/Cargo.toml b/components/servo/Cargo.toml
index 720408017d7..a81954f885f 100644
--- a/components/servo/Cargo.toml
+++ b/components/servo/Cargo.toml
@@ -66,7 +66,6 @@ script_traits = {path = "../script_traits"}
servo_config = {path = "../config"}
servo_geometry = {path = "../geometry"}
servo-media = {git = "https://github.com/servo/media"}
-servo-media-auto = {git = "https://github.com/servo/media"}
servo_url = {path = "../url"}
style = {path = "../style", features = ["servo"]}
style_traits = {path = "../style_traits", features = ["servo"]}
@@ -78,3 +77,9 @@ webvr_traits = {path = "../webvr_traits"}
[target.'cfg(all(not(target_os = "windows"), not(target_os = "ios"), not(target_os="android"), not(target_arch="arm"), not(target_arch="aarch64")))'.dependencies]
gaol = {git = "https://github.com/servo/gaol"}
+
+[target.'cfg(any(all(target_os = "android", target_arch = "arm"), target_arch = "x86_64"))'.dependencies.servo-media-gstreamer]
+git = "https://github.com/servo/media"
+
+[target.'cfg(not(any(all(target_os = "android", target_arch = "arm"), target_arch = "x86_64")))'.dependencies.servo-media-dummy]
+git = "https://github.com/servo/media"
diff --git a/components/servo/lib.rs b/components/servo/lib.rs
index 1ccff9db714..d919613c9c0 100644
--- a/components/servo/lib.rs
+++ b/components/servo/lib.rs
@@ -104,7 +104,6 @@ use script_traits::{ConstellationMsg, SWManagerSenders, ScriptToConstellationCha
use servo_config::opts;
use servo_config::{pref, prefs};
use servo_media::ServoMedia;
-use servo_media_auto::Backend;
use std::borrow::Cow;
use std::cmp::max;
use std::path::PathBuf;
@@ -118,6 +117,26 @@ pub use msg::constellation_msg::TopLevelBrowsingContextId as BrowserId;
pub use servo_config as config;
pub use servo_url as url;
+#[cfg(any(
+ all(target_os = "android", target_arch = "arm"),
+ target_arch = "x86_64"
+))]
+mod media_platform {
+ pub use self::servo_media_gstreamer::GStreamerBackend as MediaBackend;
+ use servo_media_gstreamer;
+}
+
+#[cfg(not(any(
+ all(target_os = "android", target_arch = "arm"),
+ target_arch = "x86_64"
+)))]
+mod media_platform {
+ pub use self::servo_media_dummy::DummyBackend as MediaBackend;
+ use servo_media_dummy;
+}
+
+type MediaBackend = media_platform::MediaBackend;
+
/// The in-process interface to Servo.
///
/// It does everything necessary to render the web, primarily
@@ -185,7 +204,7 @@ where
let opts = opts::get();
if !opts.multiprocess {
- ServoMedia::init::<Backend>();
+ ServoMedia::init::<MediaBackend>();
}
// Make sure the gl context is made current.
@@ -757,7 +776,7 @@ pub fn run_content_process(token: String) {
script::init();
script::init_service_workers(sw_senders);
- ServoMedia::init::<Backend>();
+ ServoMedia::init::<MediaBackend>();
unprivileged_content.start_all::<script_layout_interface::message::Msg,
layout_thread::LayoutThread,