diff options
author | Fernando Jiménez Moreno <ferjmoreno@gmail.com> | 2019-05-27 19:01:31 +0200 |
---|---|---|
committer | Fernando Jiménez Moreno <ferjmoreno@gmail.com> | 2019-05-29 16:17:36 +0200 |
commit | dfbf7e37ab3376f87e85fded14761b6de464c54c (patch) | |
tree | bfdca28b74140bf8a2d9b0a58ce0463ba16960d2 /components/script/dom/htmlmediaelement.rs | |
parent | 2a61a0dbb02fae6354f76b1abe2fe2ac6c3cb85d (diff) | |
download | servo-dfbf7e37ab3376f87e85fded14761b6de464c54c.tar.gz servo-dfbf7e37ab3376f87e85fded14761b6de464c54c.zip |
Allow simultaneous playback of audio and video for getUserMedia
Diffstat (limited to 'components/script/dom/htmlmediaelement.rs')
-rw-r--r-- | components/script/dom/htmlmediaelement.rs | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/components/script/dom/htmlmediaelement.rs b/components/script/dom/htmlmediaelement.rs index c816494fb70..322065ca8fd 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); |