Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Receive streams in WebRTC (and MediaStreamTrack support) #23342

Merged
merged 12 commits into from May 9, 2019

Add MediaStream.addTrack() and MediaStream.removeTrack()

  • Loading branch information
Manishearth committed May 8, 2019
commit 477ca175e38b232535bdad47eb71f1f2152b4da4
@@ -83,4 +83,19 @@ impl MediaStreamMethods for MediaStream {
.find(|x| x.id().id().to_string() == &*id)
.map(|x| DomRoot::from_ref(&**x))
}

/// https://w3c.github.io/mediacapture-main/#dom-mediastream-addtrack
fn AddTrack(&self, track: &MediaStreamTrack) {
let existing = self.tracks.borrow().iter().find(|x| *x == &track).is_some();

if existing {
return;
}
self.add_track(track)
}

/// https://w3c.github.io/mediacapture-main/#dom-mediastream-removetrack
fn RemoveTrack(&self, track: &MediaStreamTrack) {
self.tracks.borrow_mut().retain(|x| *x != track);
}
}
@@ -15,8 +15,8 @@ interface MediaStream : EventTarget {
sequence<MediaStreamTrack> getVideoTracks();
sequence<MediaStreamTrack> getTracks();
MediaStreamTrack? getTrackById(DOMString trackId);
// void addTrack(MediaStreamTrack track);
// void removeTrack(MediaStreamTrack track);
void addTrack(MediaStreamTrack track);
void removeTrack(MediaStreamTrack track);
// MediaStream clone();
// readonly attribute boolean active;
// attribute EventHandler onaddtrack;
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.