mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-14 22:05:44 +00:00
Bug 1232082 - add RTCRtpReceiver for each remote track. r=jesup
--HG-- extra : transplant_source : %20%28eG%1DW%0FK%B2%9B%D1%29%00%E4%AB%F7m%95%0F%8C
This commit is contained in:
parent
3b64896d86
commit
fd16766941
@ -1453,12 +1453,21 @@ PeerConnectionObserver.prototype = {
|
||||
},
|
||||
|
||||
onAddTrack: function(track) {
|
||||
let pc = this._dompc;
|
||||
let receiver = pc._win.RTCRtpReceiver._create(pc._win,
|
||||
new RTCRtpReceiver(this,
|
||||
track));
|
||||
pc._receivers.push(receiver);
|
||||
let ev = new this._dompc._win.MediaStreamTrackEvent("addtrack",
|
||||
{ track: track });
|
||||
this.dispatchEvent(ev);
|
||||
},
|
||||
|
||||
onRemoveTrack: function(track, type) {
|
||||
let i = this._dompc._receivers.findIndex(receiver => receiver.track == track);
|
||||
if (i >= 0) {
|
||||
this._receivers.splice(i, 1);
|
||||
}
|
||||
this.dispatchEvent(new this._dompc._win.MediaStreamTrackEvent("removetrack",
|
||||
{ track: track }));
|
||||
},
|
||||
@ -1534,7 +1543,7 @@ RTCRtpSender.prototype = {
|
||||
};
|
||||
|
||||
function RTCRtpReceiver(pc, track) {
|
||||
this.pc = pc;
|
||||
this._pc = pc;
|
||||
this.track = track;
|
||||
}
|
||||
RTCRtpReceiver.prototype = {
|
||||
|
@ -19,6 +19,13 @@
|
||||
.some(sn => sn.track == t))) // that's being sent over |pc|.
|
||||
}
|
||||
|
||||
function allRemoteStreamsHaveReceiver(pc) {
|
||||
return pc.getRemoteStreams()
|
||||
.every(s => s.getTracks() // Every remote stream,
|
||||
.some(t => pc.getReceivers() // should have some track,
|
||||
.some(sn => sn.track == t))) // that's being received over |pc|.
|
||||
}
|
||||
|
||||
function replacetest(wrapper) {
|
||||
var pc = wrapper._pc;
|
||||
var oldSenderCount = pc.getSenders().length;
|
||||
@ -26,7 +33,9 @@
|
||||
var oldTrack = sender.track;
|
||||
ok(sender, "We have a sender for video");
|
||||
ok(allLocalStreamsHaveSender(pc),
|
||||
"Shouldn't have any streams without a corresponding sender");
|
||||
"Shouldn't have any local streams without a corresponding sender");
|
||||
ok(allRemoteStreamsHaveReceiver(pc),
|
||||
"Shouldn't have any remote streams without a corresponding receiver");
|
||||
|
||||
var newTrack;
|
||||
var audiotrack;
|
||||
|
Loading…
Reference in New Issue
Block a user