Skip to content

Commit ff0ba43

Browse files
authored
Clean up repeat jitterbuffer target event
1 parent 7624076 commit ff0ba43

File tree

1 file changed

+18
-14
lines changed

1 file changed

+18
-14
lines changed

addons/gst-web/src/app.js

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -518,44 +518,48 @@ function enableStatWatch() {
518518
}
519519
webrtc.onconnectionstatechange = (state) => {
520520
videoConnected = state;
521-
if (videoConnected === "connected" && audioConnected === "connected") {
522-
app.status = state;
523-
if (!statwatchenabled) {
524-
enableStatWatch();
525-
}
521+
if (videoConnected === "connected") {
526522
// Repeatedly emit minimum latency target
527523
webrtc.peerConnection.getReceivers().forEach((receiver) => {
528-
let intervalLoop = setInterval(() => {
524+
let intervalLoop = setInterval(async () => {
529525
if (receiver.track.readyState !== "live" || receiver.transport.state !== "connected") {
530526
clearInterval(intervalLoop);
531527
return;
532528
} else {
533-
receiver.jitterBufferTarget = receiver.jitterBufferDelayHint = receiver.playoutDelayHint = 0;
529+
receiver.jitterBufferTarget = receiver.jitterBufferDelayHint = receiver.playoutDelayHint = 0.0;
534530
}
535531
}, 1);
536532
});
537-
} else {
538-
app.status = state === "connected" ? audioConnected : videoConnected;
539533
}
540-
};
541-
audio_webrtc.onconnectionstatechange = (state) => {
542-
audioConnected = state;
543534
if (videoConnected === "connected" && audioConnected === "connected") {
544535
app.status = state;
545536
if (!statwatchenabled) {
546537
enableStatWatch();
547538
}
539+
} else {
540+
app.status = state === "connected" ? audioConnected : videoConnected;
541+
}
542+
};
543+
audio_webrtc.onconnectionstatechange = (state) => {
544+
audioConnected = state;
545+
if (audioConnected === "connected") {
548546
// Repeatedly emit minimum latency target
549547
audio_webrtc.peerConnection.getReceivers().forEach((receiver) => {
550-
let intervalLoop = setInterval(() => {
548+
let intervalLoop = setInterval(async () => {
551549
if (receiver.track.readyState !== "live" || receiver.transport.state !== "connected") {
552550
clearInterval(intervalLoop);
553551
return;
554552
} else {
555-
receiver.jitterBufferTarget = receiver.jitterBufferDelayHint = receiver.playoutDelayHint = 0;
553+
receiver.jitterBufferTarget = receiver.jitterBufferDelayHint = receiver.playoutDelayHint = 0.0;
556554
}
557555
}, 1);
558556
});
557+
}
558+
if (audioConnected === "connected" && videoConnected === "connected") {
559+
app.status = state;
560+
if (!statwatchenabled) {
561+
enableStatWatch();
562+
}
559563
} else {
560564
app.status = state === "connected" ? videoConnected : audioConnected;
561565
}

0 commit comments

Comments
 (0)