diff options
Diffstat (limited to 'components/script/dom/mediastream.rs')
-rw-r--r-- | components/script/dom/mediastream.rs | 21 |
1 files changed, 21 insertions, 0 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() + } } |