From 5cacbb68e3b42d78e0190abb51b0a121fbb374db Mon Sep 17 00:00:00 2001 From: Henry Smith <36210679+hensmi-amazon@users.noreply.github.com> Date: Wed, 2 Oct 2024 14:40:54 -0700 Subject: [PATCH] Terminate audio RED worker before removing reference (#2960) --- CHANGELOG.md | 2 ++ demos/browser/package-lock.json | 2 +- docs/classes/defaulttransceivercontroller.html | 8 ++++---- .../simulcastcontentsharetransceivercontroller.html | 8 ++++---- docs/classes/simulcasttransceivercontroller.html | 8 ++++---- docs/classes/videoonlytransceivercontroller.html | 8 ++++---- src/transceivercontroller/DefaultTransceiverController.ts | 1 + test/dommock/DOMMockBuilder.ts | 2 ++ 8 files changed, 22 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 78a0b387a..1795415ef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed +- Terminate audio RED worker before removing reference. + ## [3.24.0] - 2024-07-11 ### Added diff --git a/demos/browser/package-lock.json b/demos/browser/package-lock.json index cbeb49662..8bbcc5c61 100644 --- a/demos/browser/package-lock.json +++ b/demos/browser/package-lock.json @@ -44,7 +44,7 @@ } }, "../..": { - "version": "3.24.0", + "version": "3.25.0", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-js": "^2.0.1", diff --git a/docs/classes/defaulttransceivercontroller.html b/docs/classes/defaulttransceivercontroller.html index 2715a9a0a..0279f0a63 100644 --- a/docs/classes/defaulttransceivercontroller.html +++ b/docs/classes/defaulttransceivercontroller.html @@ -284,7 +284,7 @@

addRedundantAudioRecoveryMetricsObserver

@@ -478,7 +478,7 @@

metricsDidReceive

@@ -507,7 +507,7 @@

removeRedundantAudioRecoveryMetricsObserver

@@ -617,7 +617,7 @@

setAudioPayloadTypes

diff --git a/docs/classes/simulcastcontentsharetransceivercontroller.html b/docs/classes/simulcastcontentsharetransceivercontroller.html index 814c6befc..3983020aa 100644 --- a/docs/classes/simulcastcontentsharetransceivercontroller.html +++ b/docs/classes/simulcastcontentsharetransceivercontroller.html @@ -359,7 +359,7 @@

addRedundantAudioRecoveryMetricsObserver

@@ -599,7 +599,7 @@

metricsDidReceive

@@ -628,7 +628,7 @@

removeRedundantAudioRecoveryMetricsObserver

@@ -738,7 +738,7 @@

setAudioPayloadTypes

diff --git a/docs/classes/simulcasttransceivercontroller.html b/docs/classes/simulcasttransceivercontroller.html index 60f409162..4ebc92d37 100644 --- a/docs/classes/simulcasttransceivercontroller.html +++ b/docs/classes/simulcasttransceivercontroller.html @@ -358,7 +358,7 @@

addRedundantAudioRecoveryMetricsObserver

@@ -596,7 +596,7 @@

metricsDidReceive

@@ -625,7 +625,7 @@

removeRedundantAudioRecoveryMetricsObserver

@@ -735,7 +735,7 @@

setAudioPayloadTypes

diff --git a/docs/classes/videoonlytransceivercontroller.html b/docs/classes/videoonlytransceivercontroller.html index 9355517df..d2619b33d 100644 --- a/docs/classes/videoonlytransceivercontroller.html +++ b/docs/classes/videoonlytransceivercontroller.html @@ -285,7 +285,7 @@

addRedundantAudioRecoveryMetricsObserver

@@ -480,7 +480,7 @@

metricsDidReceive

@@ -509,7 +509,7 @@

removeRedundantAudioRecoveryMetricsObserver

@@ -619,7 +619,7 @@

setAudioPayloadTypes

diff --git a/src/transceivercontroller/DefaultTransceiverController.ts b/src/transceivercontroller/DefaultTransceiverController.ts index 77ac5882b..00174e7e2 100644 --- a/src/transceivercontroller/DefaultTransceiverController.ts +++ b/src/transceivercontroller/DefaultTransceiverController.ts @@ -631,6 +631,7 @@ export default class DefaultTransceiverController if (this.audioRedWorker) { URL.revokeObjectURL(this.audioRedWorkerURL); this.audioRedWorkerURL = null; + this.audioRedWorker.terminate(); this.audioRedWorker = null; this.currentNumRedundantEncodings = 0; this.lastRedHolddownTimerStartTimestampMs = 0; diff --git a/test/dommock/DOMMockBuilder.ts b/test/dommock/DOMMockBuilder.ts index e30e15261..e4e8f7301 100644 --- a/test/dommock/DOMMockBuilder.ts +++ b/test/dommock/DOMMockBuilder.ts @@ -164,6 +164,8 @@ export default class DOMMockBuilder { return true; } + + terminate(): void {} }; GlobalAny.WebSocket = class MockWebSocket {