Bug 1616875: Add some functions to PeerConnectionObserver that PeerConnectionImpl can use to fire track/stream association events. r=jib,smaug

Differential Revision: https://phabricator.services.mozilla.com/D64237

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Byron Campen [:bwc] 2020-03-20 15:33:37 +00:00
Родитель 1898507132
Коммит 9a84c4d7b4
2 изменённых файлов: 36 добавлений и 0 удалений

Просмотреть файл

@ -1989,6 +1989,32 @@ class PeerConnectionObserver {
);
}
fireTrackEvent(receiver, streams) {
const pc = this._dompc;
const transceiver = pc.getTransceivers().find(t => t.receiver == receiver);
if (!transceiver) {
return;
}
const track = receiver.track;
this.dispatchEvent(
new this._win.RTCTrackEvent("track", {
transceiver,
receiver,
track,
streams,
})
);
// Fire legacy event as well for a little bit.
this.dispatchEvent(
new this._win.MediaStreamTrackEvent("addtrack", { track })
);
}
fireStreamEvent(stream) {
const ev = new this._win.MediaStreamEvent("addstream", { stream });
this.dispatchEvent(ev);
}
onDTMFToneChange(track, tone) {
var pc = this._dompc;
var sender = pc.getSenders().find(sender => sender.track == track);

Просмотреть файл

@ -42,6 +42,16 @@ interface PeerConnectionObserver
transceiver to be created on the C++ side */
void onTransceiverNeeded(DOMString kind, TransceiverImpl transceiverImpl);
/*
Lets PeerConnectionImpl fire track events on the RTCPeerConnection
*/
void fireTrackEvent(RTCRtpReceiver receiver, sequence<MediaStream> streams);
/*
Lets PeerConnectionImpl fire addstream events on the RTCPeerConnection
*/
void fireStreamEvent(MediaStream stream);
/* DTMF callback */
void onDTMFToneChange(MediaStreamTrack track, DOMString tone);