aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom
diff options
context:
space:
mode:
authorManish Goregaokar <manishsmail@gmail.com>2019-05-07 14:33:55 -0700
committerManish Goregaokar <manishsmail@gmail.com>2019-05-07 17:09:04 -0700
commit70e1c29ae98f0dd4090c0093850ee07faba0dcbe (patch)
tree0500d8b3378ba6193afc8409a0e15050090f74c5 /components/script/dom
parent36abbca0a64d1886bf813e801aad3d3dec66a434 (diff)
downloadservo-70e1c29ae98f0dd4090c0093850ee07faba0dcbe.tar.gz
servo-70e1c29ae98f0dd4090c0093850ee07faba0dcbe.zip
Add MediaStream.getVideoTracks(), MediaStream.getAudioTracks()
Diffstat (limited to 'components/script/dom')
-rw-r--r--components/script/dom/mediastream.rs21
-rw-r--r--components/script/dom/webidls/MediaStream.webidl4
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);