diff options
author | Manish Goregaokar <manishsmail@gmail.com> | 2019-05-07 14:33:55 -0700 |
---|---|---|
committer | Manish Goregaokar <manishsmail@gmail.com> | 2019-05-07 17:09:04 -0700 |
commit | 70e1c29ae98f0dd4090c0093850ee07faba0dcbe (patch) | |
tree | 0500d8b3378ba6193afc8409a0e15050090f74c5 /components/script/dom | |
parent | 36abbca0a64d1886bf813e801aad3d3dec66a434 (diff) | |
download | servo-70e1c29ae98f0dd4090c0093850ee07faba0dcbe.tar.gz servo-70e1c29ae98f0dd4090c0093850ee07faba0dcbe.zip |
Add MediaStream.getVideoTracks(), MediaStream.getAudioTracks()
Diffstat (limited to 'components/script/dom')
-rw-r--r-- | components/script/dom/mediastream.rs | 21 | ||||
-rw-r--r-- | components/script/dom/webidls/MediaStream.webidl | 4 |
2 files changed, 23 insertions, 2 deletions
diff --git a/components/script/dom/mediastream.rs b/components/script/dom/mediastream.rs index ed80b2c8cb1..8cf68e80490 100644 --- a/components/script/dom/mediastream.rs +++ b/components/script/dom/mediastream.rs @@ -10,6 +10,7 @@ use crate::dom::eventtarget::EventTarget; use crate::dom::globalscope::GlobalScope; use crate::dom::mediastreamtrack::MediaStreamTrack; use dom_struct::dom_struct; +use servo_media::streams::MediaStreamType; use std::cell::Ref; #[dom_struct] @@ -52,4 +53,24 @@ impl MediaStreamMethods for MediaStream { .map(|x| DomRoot::from_ref(&**x)) .collect() } + + /// https://w3c.github.io/mediacapture-main/#dom-mediastream-getaudiotracks + fn GetAudioTracks(&self) -> Vec<DomRoot<MediaStreamTrack>> { + self.tracks + .borrow() + .iter() + .filter(|x| x.ty() == MediaStreamType::Audio) + .map(|x| DomRoot::from_ref(&**x)) + .collect() + } + + /// https://w3c.github.io/mediacapture-main/#dom-mediastream-getvideotracks + fn GetVideoTracks(&self) -> Vec<DomRoot<MediaStreamTrack>> { + self.tracks + .borrow() + .iter() + .filter(|x| x.ty() == MediaStreamType::Video) + .map(|x| DomRoot::from_ref(&**x)) + .collect() + } } diff --git a/components/script/dom/webidls/MediaStream.webidl b/components/script/dom/webidls/MediaStream.webidl index 47a73fed66e..650ad1ed95d 100644 --- a/components/script/dom/webidls/MediaStream.webidl +++ b/components/script/dom/webidls/MediaStream.webidl @@ -11,8 +11,8 @@ [Exposed=Window, Pref="dom.webrtc.enabled"] interface MediaStream : EventTarget { // readonly attribute DOMString id; - // sequence<MediaStreamTrack> getAudioTracks(); - // sequence<MediaStreamTrack> getVideoTracks(); + sequence<MediaStreamTrack> getAudioTracks(); + sequence<MediaStreamTrack> getVideoTracks(); sequence<MediaStreamTrack> getTracks(); // MediaStreamTrack? getTrackById(DOMString trackId); // void addTrack(MediaStreamTrack track); |