diff --git a/Cargo.lock b/Cargo.lock index 5460685c46e7..9769ebc6b35e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3995,7 +3995,7 @@ dependencies = [ [[package]] name = "servo-media" version = "0.1.0" -source = "git+https://github.com/servo/media#ecd5a7c6e4f51c5409321649dfb4a387bbd41925" +source = "git+https://github.com/servo/media#2dabf1ab7e3b6d3b6764eebdf8855431367752c4" 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)", @@ -4006,7 +4006,7 @@ dependencies = [ [[package]] name = "servo-media-audio" version = "0.1.0" -source = "git+https://github.com/servo/media#ecd5a7c6e4f51c5409321649dfb4a387bbd41925" +source = "git+https://github.com/servo/media#2dabf1ab7e3b6d3b6764eebdf8855431367752c4" 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)", @@ -4022,7 +4022,7 @@ dependencies = [ [[package]] name = "servo-media-dummy" version = "0.1.0" -source = "git+https://github.com/servo/media#ecd5a7c6e4f51c5409321649dfb4a387bbd41925" +source = "git+https://github.com/servo/media#2dabf1ab7e3b6d3b6764eebdf8855431367752c4" 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)", @@ -4036,7 +4036,7 @@ dependencies = [ [[package]] name = "servo-media-gstreamer" version = "0.1.0" -source = "git+https://github.com/servo/media#ecd5a7c6e4f51c5409321649dfb4a387bbd41925" +source = "git+https://github.com/servo/media#2dabf1ab7e3b6d3b6764eebdf8855431367752c4" 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)", @@ -4070,7 +4070,7 @@ dependencies = [ [[package]] name = "servo-media-gstreamer-render" version = "0.1.0" -source = "git+https://github.com/servo/media#ecd5a7c6e4f51c5409321649dfb4a387bbd41925" +source = "git+https://github.com/servo/media#2dabf1ab7e3b6d3b6764eebdf8855431367752c4" 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)", @@ -4080,7 +4080,7 @@ dependencies = [ [[package]] name = "servo-media-gstreamer-render-unix" version = "0.1.0" -source = "git+https://github.com/servo/media#ecd5a7c6e4f51c5409321649dfb4a387bbd41925" +source = "git+https://github.com/servo/media#2dabf1ab7e3b6d3b6764eebdf8855431367752c4" 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)", @@ -4093,7 +4093,7 @@ dependencies = [ [[package]] name = "servo-media-player" version = "0.1.0" -source = "git+https://github.com/servo/media#ecd5a7c6e4f51c5409321649dfb4a387bbd41925" +source = "git+https://github.com/servo/media#2dabf1ab7e3b6d3b6764eebdf8855431367752c4" 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)", @@ -4104,7 +4104,7 @@ dependencies = [ [[package]] name = "servo-media-streams" version = "0.1.0" -source = "git+https://github.com/servo/media#ecd5a7c6e4f51c5409321649dfb4a387bbd41925" +source = "git+https://github.com/servo/media#2dabf1ab7e3b6d3b6764eebdf8855431367752c4" dependencies = [ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "uuid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4113,7 +4113,7 @@ dependencies = [ [[package]] name = "servo-media-webrtc" version = "0.1.0" -source = "git+https://github.com/servo/media#ecd5a7c6e4f51c5409321649dfb4a387bbd41925" +source = "git+https://github.com/servo/media#2dabf1ab7e3b6d3b6764eebdf8855431367752c4" 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)", @@ -4212,7 +4212,7 @@ dependencies = [ [[package]] name = "servo_media_derive" version = "0.1.0" -source = "git+https://github.com/servo/media#ecd5a7c6e4f51c5409321649dfb4a387bbd41925" +source = "git+https://github.com/servo/media#2dabf1ab7e3b6d3b6764eebdf8855431367752c4" 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)", diff --git a/components/script/dom/htmlmediaelement.rs b/components/script/dom/htmlmediaelement.rs index c816494fb70c..322065ca8fd3 100644 --- a/components/script/dom/htmlmediaelement.rs +++ b/components/script/dom/htmlmediaelement.rs @@ -846,13 +846,14 @@ impl HTMLMediaElement { self.fetch_request(None); }, SrcObject::MediaStream(ref stream) => { - for stream in &*stream.get_tracks() { + let tracks = &*stream.get_tracks(); + for (pos, track) in tracks.iter().enumerate() { if let Err(_) = self .player .borrow() .as_ref() .unwrap() - .set_stream(&stream.id()) + .set_stream(&track.id(), pos == tracks.len() - 1) { self.queue_dedicated_media_source_failure_steps(); } @@ -1222,13 +1223,13 @@ impl HTMLMediaElement { _ => StreamType::Seekable, }; - let player = ServoMedia::get() - .unwrap() - .create_player(stream_type, Box::new(PlayerContextDummy())); - let (action_sender, action_receiver) = ipc::channel().unwrap(); - player.register_event_handler(action_sender); - player.register_frame_renderer(self.frame_renderer.clone()); + let player = ServoMedia::get().unwrap().create_player( + stream_type, + action_sender, + Some(self.frame_renderer.clone()), + Box::new(PlayerContextDummy()), + ); *self.player.borrow_mut() = Some(player);