diff --git a/scripts/peer-connection.js b/scripts/peer-connection.js index 688447a..b2e32d9 100644 --- a/scripts/peer-connection.js +++ b/scripts/peer-connection.js @@ -129,6 +129,7 @@ window.RTCPeerConnection = function (conf, options) { }, options, ) + debug(`created`, { conf, options, pc }) PeerConnections.set(id, pc) @@ -296,6 +297,24 @@ window.RTCPeerConnection = function (conf, options) { } } + const addTrackNative = pc.addTrack.bind(pc) + pc.addTrack = (...args) => { + debug(`addTrack`, args) + const sender = addTrackNative(...args) + for (const transceiver of pc.getTransceivers()) { + if (['sendonly', 'sendrecv'].includes(transceiver.direction)) { + if (encodedInsertableStreams && timestampInsertableStreams) { + handleTransceiverForInsertableStreams(id, transceiver) + } + handleTransceiverForPlayoutDelayHint(id, transceiver, 'addTrack') + handleTransceiverForJitterBufferTarget(id, transceiver, 'addTrack') + + checkSaveStream(transceiver) + } + } + return sender + } + pc.addEventListener('track', async event => { const { receiver, transceiver } = event if (receiver?.track) {