diff --git a/CHANGELOG.md b/CHANGELOG.md index c7048b233a..4061989454 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed ### Fixed +- Removed use of regex to create redundant audio worker code to avoid errors where the regex match fails and leads to failure to start the AudioVideoController ## [3.18.1] - 2023-09-29 diff --git a/docs/classes/defaulttransceivercontroller.html b/docs/classes/defaulttransceivercontroller.html index bcd1dcfd60..230a57d91d 100644 --- a/docs/classes/defaulttransceivercontroller.html +++ b/docs/classes/defaulttransceivercontroller.html @@ -157,7 +157,7 @@
Protected addTransceiver
@@ -345,7 +345,7 @@
@@ -374,7 +374,7 @@
@@ -409,7 +409,7 @@
@@ -432,7 +432,7 @@
@@ -455,7 +455,7 @@
@@ -478,7 +478,7 @@
@@ -507,7 +507,7 @@
@@ -536,7 +536,7 @@
@@ -565,7 +565,7 @@
@@ -588,7 +588,7 @@
@@ -617,7 +617,7 @@
@@ -651,7 +651,7 @@
@@ -688,7 +688,7 @@
@@ -717,7 +717,7 @@
@@ -749,7 +749,7 @@
@@ -778,7 +778,7 @@
@@ -806,7 +806,7 @@
getMidForGroupId
getMidForStreamId
hasVideoInput
localAudioTransceiver
localVideoTransceiver
metricsDidReceive
removeRedundantAudioRecoveryMetricsObserver
replaceAudioTrack
reset
setAudioInput
setAudioPayloadTypes
setEncodingParameters
setPeer
setStreamIdForMid
setVideoInput
setVideoSendingBitrateKbps
Protected setupAudio
@@ -847,7 +847,7 @@
@@ -875,7 +875,7 @@
Returns void
@@ -824,7 +824,7 @@setupLocalTransceivers
trackIsVideoInput
Protected transceiverIsV
@@ -931,7 +931,7 @@
diff --git a/docs/classes/simulcastcontentsharetransceivercontroller.html b/docs/classes/simulcastcontentsharetransceivercontroller.html
index c063461323..aa4eac91bc 100644
--- a/docs/classes/simulcastcontentsharetransceivercontroller.html
+++ b/docs/classes/simulcastcontentsharetransceivercontroller.html
@@ -185,7 +185,7 @@
Parameters
@@ -899,7 +899,7 @@updateVideoTransceivers
useTransceivers
Protected _localAudio
Inherited from SimulcastTransceiverController._localAudioTransceiver
-- Defined in src/transceivercontroller/DefaultTransceiverController.ts:22
+ - Defined in src/transceivercontroller/DefaultTransceiverController.ts:23
@@ -196,7 +196,7 @@Protected _localCamera
Inherited from SimulcastTransceiverController._localCameraTransceiver
-- Defined in src/transceivercontroller/DefaultTransceiverController.ts:21
+ - Defined in src/transceivercontroller/DefaultTransceiverController.ts:22
@@ -215,7 +215,7 @@Protected defaultMedia
Inherited from SimulcastTransceiverController.defaultMediaStream
-- Defined in src/transceivercontroller/DefaultTransceiverController.ts:24
+ - Defined in src/transceivercontroller/DefaultTransceiverController.ts:25
@@ -226,7 +226,7 @@Protected groupIdTo
@@ -253,7 +253,7 @@
Protected peer
@@ -264,7 +264,7 @@Protected streamIdTo
Inherited from SimulcastTransceiverController.streamIdToTransceiver
-- Defined in src/transceivercontroller/DefaultTransceiverController.ts:26
+ - Defined in src/transceivercontroller/DefaultTransceiverController.ts:27
@@ -286,7 +286,7 @@Protected videoSubscript
@@ -359,7 +359,7 @@
@@ -389,7 +389,7 @@
addRedundantAudioRecoveryMetricsObserver
Protected addTransceiver
@@ -448,7 +448,7 @@
@@ -477,7 +477,7 @@
@@ -512,7 +512,7 @@
@@ -535,7 +535,7 @@
@@ -558,7 +558,7 @@
@@ -599,7 +599,7 @@
@@ -628,7 +628,7 @@
@@ -657,7 +657,7 @@
@@ -686,7 +686,7 @@
@@ -709,7 +709,7 @@
@@ -738,7 +738,7 @@
@@ -809,7 +809,7 @@
@@ -838,7 +838,7 @@
@@ -870,7 +870,7 @@
@@ -928,7 +928,7 @@
getMidForGroupId
getMidForStreamId
hasVideoInput
localAudioTransceiver
localVideoTransceiver
metricsDidReceive
removeRedundantAudioRecoveryMetricsObserver
replaceAudioTrack
reset
setAudioInput
setAudioPayloadTypes
setPeer
setStreamIdForMid
setVideoInput
Protected setupAudio
@@ -998,7 +998,7 @@
Inherited from SimulcastTransceiverController.setupAudioRedWorker
-- Defined in src/transceivercontroller/DefaultTransceiverController.ts:469
+ - Defined in src/transceivercontroller/DefaultTransceiverController.ts:470
Returns void
@@ -969,7 +969,7 @@trackIsVideoInput
Protected transceiverIsV
@@ -1054,7 +1054,7 @@
diff --git a/docs/classes/simulcasttransceivercontroller.html b/docs/classes/simulcasttransceivercontroller.html
index f147e9e7ed..4089d60ebf 100644
--- a/docs/classes/simulcasttransceivercontroller.html
+++ b/docs/classes/simulcasttransceivercontroller.html
@@ -190,7 +190,7 @@
Parameters
@@ -1022,7 +1022,7 @@updateVideoTransceivers
useTransceivers
Protected _localAudio
Inherited from DefaultTransceiverController._localAudioTransceiver
-- Defined in src/transceivercontroller/DefaultTransceiverController.ts:22
+ - Defined in src/transceivercontroller/DefaultTransceiverController.ts:23
@@ -201,7 +201,7 @@Protected _localCamera
Inherited from DefaultTransceiverController._localCameraTransceiver
-- Defined in src/transceivercontroller/DefaultTransceiverController.ts:21
+ - Defined in src/transceivercontroller/DefaultTransceiverController.ts:22
@@ -220,7 +220,7 @@Protected defaultMedia
Inherited from DefaultTransceiverController.defaultMediaStream
-- Defined in src/transceivercontroller/DefaultTransceiverController.ts:24
+ - Defined in src/transceivercontroller/DefaultTransceiverController.ts:25
@@ -231,7 +231,7 @@Protected groupIdTo
@@ -258,7 +258,7 @@
Protected peer
@@ -269,7 +269,7 @@Protected streamIdTo
Inherited from DefaultTransceiverController.streamIdToTransceiver
-- Defined in src/transceivercontroller/DefaultTransceiverController.ts:26
+ - Defined in src/transceivercontroller/DefaultTransceiverController.ts:27
@@ -290,7 +290,7 @@Protected videoSubscript
@@ -358,7 +358,7 @@
@@ -388,7 +388,7 @@
addRedundantAudioRecoveryMetricsObserver
Protected addTransceiver
@@ -446,7 +446,7 @@
@@ -475,7 +475,7 @@
@@ -510,7 +510,7 @@
@@ -533,7 +533,7 @@
@@ -556,7 +556,7 @@
@@ -596,7 +596,7 @@
@@ -625,7 +625,7 @@
@@ -654,7 +654,7 @@
@@ -683,7 +683,7 @@
@@ -706,7 +706,7 @@
@@ -735,7 +735,7 @@
@@ -806,7 +806,7 @@
@@ -835,7 +835,7 @@
@@ -867,7 +867,7 @@
@@ -925,7 +925,7 @@
getMidForGroupId
getMidForStreamId
hasVideoInput
localAudioTransceiver
localVideoTransceiver
metricsDidReceive
removeRedundantAudioRecoveryMetricsObserver
replaceAudioTrack
reset
setAudioInput
setAudioPayloadTypes
setPeer
setStreamIdForMid
setVideoInput
Protected setupAudio
@@ -995,7 +995,7 @@
Inherited from DefaultTransceiverController.setupAudioRedWorker
-- Defined in src/transceivercontroller/DefaultTransceiverController.ts:469
+ - Defined in src/transceivercontroller/DefaultTransceiverController.ts:470
Returns void
@@ -966,7 +966,7 @@trackIsVideoInput
Protected transceiverIsV
@@ -1051,7 +1051,7 @@
diff --git a/docs/classes/videoonlytransceivercontroller.html b/docs/classes/videoonlytransceivercontroller.html
index c695424db6..eb0fb0c50b 100644
--- a/docs/classes/videoonlytransceivercontroller.html
+++ b/docs/classes/videoonlytransceivercontroller.html
@@ -177,7 +177,7 @@
Parameters
@@ -1019,7 +1019,7 @@updateVideoTransceivers
useTransceivers
Protected _localAudio
Inherited from DefaultTransceiverController._localAudioTransceiver
-- Defined in src/transceivercontroller/DefaultTransceiverController.ts:22
+ - Defined in src/transceivercontroller/DefaultTransceiverController.ts:23
@@ -188,7 +188,7 @@Protected _localCamera
Inherited from DefaultTransceiverController._localCameraTransceiver
-- Defined in src/transceivercontroller/DefaultTransceiverController.ts:21
+ - Defined in src/transceivercontroller/DefaultTransceiverController.ts:22
@@ -207,7 +207,7 @@Protected defaultMedia
Inherited from DefaultTransceiverController.defaultMediaStream
-- Defined in src/transceivercontroller/DefaultTransceiverController.ts:24
+ - Defined in src/transceivercontroller/DefaultTransceiverController.ts:25
@@ -218,7 +218,7 @@Protected groupIdTo
@@ -245,7 +245,7 @@
Protected peer
@@ -256,7 +256,7 @@Protected streamIdTo
Inherited from DefaultTransceiverController.streamIdToTransceiver
-- Defined in src/transceivercontroller/DefaultTransceiverController.ts:26
+ - Defined in src/transceivercontroller/DefaultTransceiverController.ts:27
@@ -267,7 +267,7 @@Protected videoSubscript
@@ -285,7 +285,7 @@
@@ -315,7 +315,7 @@
addRedundantAudioRecoveryMetricsObserver
Protected addTransceiver
@@ -347,7 +347,7 @@
@@ -376,7 +376,7 @@
@@ -411,7 +411,7 @@
@@ -434,7 +434,7 @@
@@ -457,7 +457,7 @@
@@ -480,7 +480,7 @@
@@ -509,7 +509,7 @@
@@ -538,7 +538,7 @@
@@ -567,7 +567,7 @@
@@ -590,7 +590,7 @@
@@ -619,7 +619,7 @@
@@ -653,7 +653,7 @@
@@ -690,7 +690,7 @@
@@ -719,7 +719,7 @@
@@ -751,7 +751,7 @@
@@ -780,7 +780,7 @@
@@ -809,7 +809,7 @@
getMidForGroupId
getMidForStreamId
hasVideoInput
localAudioTransceiver
localVideoTransceiver
metricsDidReceive
removeRedundantAudioRecoveryMetricsObserver
replaceAudioTrack
reset
setAudioInput
setAudioPayloadTypes
setEncodingParameters
setPeer
setStreamIdForMid
setVideoInput
setVideoSendingBitrateKbps
Protected setupAudio
@@ -879,7 +879,7 @@
Inherited from DefaultTransceiverController.setupAudioRedWorker
-- Defined in src/transceivercontroller/DefaultTransceiverController.ts:469
+ - Defined in src/transceivercontroller/DefaultTransceiverController.ts:470
Returns void
@@ -850,7 +850,7 @@trackIsVideoInput
Protected transceiverIsV
@@ -935,7 +935,7 @@
diff --git a/src/redundantaudioencoder/RedundantAudioEncoder.ts b/src/redundantaudioencoder/RedundantAudioEncoder.ts
index 242a3cfcdb..11ceacda70 100644
--- a/src/redundantaudioencoder/RedundantAudioEncoder.ts
+++ b/src/redundantaudioencoder/RedundantAudioEncoder.ts
@@ -1480,3 +1480,15 @@ namespace RedundantAudioEncoder {
windowSize: number;
}
}
+
+/* istanbul ignore next */
+/**
+ * This function is only meant to be called within the RED worker to initialize and start RED functionality.
+ */
+function startRedWorker(): void {
+ RedundantAudioEncoder.shouldLogDebug = true;
+ RedundantAudioEncoder.shouldReportStats = true;
+ RedundantAudioEncoder.initializeWorker();
+}
+
+export const redWorkerCode = `${RedundantAudioEncoder.toString()}(${startRedWorker})();`;
diff --git a/src/transceivercontroller/DefaultTransceiverController.ts b/src/transceivercontroller/DefaultTransceiverController.ts
index b744d879a4..7fb34f376c 100644
--- a/src/transceivercontroller/DefaultTransceiverController.ts
+++ b/src/transceivercontroller/DefaultTransceiverController.ts
@@ -8,8 +8,9 @@ import BrowserBehavior from '../browserbehavior/BrowserBehavior';
import ClientMetricReport from '../clientmetricreport/ClientMetricReport';
import RedundantAudioRecoveryMetricReport from '../clientmetricreport/RedundantAudioRecoveryMetricReport';
import Logger from '../logger/Logger';
-import LogLevel from '../logger/LogLevel';
-import RedundantAudioEncoder from '../redundantaudioencoder/RedundantAudioEncoder';
+import RedundantAudioEncoder, {
+ redWorkerCode,
+} from '../redundantaudioencoder/RedundantAudioEncoder';
import RedundantAudioRecoveryMetricsObserver from '../redundantaudiorecoverymetricsobserver/RedundantAudioRecoveryMetricsObserver';
import AsyncScheduler from '../scheduler/AsyncScheduler';
import VideoStreamIdSet from '../videostreamidset/VideoStreamIdSet';
@@ -493,20 +494,8 @@ export default class DefaultTransceiverController
);
}
- // Stringify the `RedundantAudioEncoder` class code and get the new name of the `RedundantAudioEncoder` class since
- // its name is changed in the browser.
- const redWorkerCode = RedundantAudioEncoder.toString();
- const redClassName = redWorkerCode.match(/class\s*(\w+)\s*\{/)[1];
-
- const blobParts: BlobPart[] = [redWorkerCode];
- if (this.logger.getLogLevel() === LogLevel.DEBUG) {
- blobParts.push(`${redClassName}.shouldLogDebug=1;`);
- }
- blobParts.push(`${redClassName}.shouldReportStats=1;`);
- blobParts.push(`${redClassName}.initializeWorker();`);
-
this.audioRedWorkerURL = URL.createObjectURL(
- new Blob(blobParts, {
+ new Blob([redWorkerCode], {
type: 'application/javascript',
})
);
Parameters
@@ -903,7 +903,7 @@updateVideoTransceivers
useTransceivers