From 787ce30f05f78e98be1ae2b478b5ae2ce16dfc52 Mon Sep 17 00:00:00 2001 From: William Belcher Date: Thu, 9 Feb 2023 13:41:35 +1000 Subject: [PATCH] Add the rest of the browsers supported codecs after setting the preferred codec --- .../EpicGames/package-lock.json | 4 ++-- Frontend/library/package-lock.json | 5 ++-- .../PeerConnectionController.ts | 24 +++++++++++++++---- 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/Frontend/implementations/EpicGames/package-lock.json b/Frontend/implementations/EpicGames/package-lock.json index 8853d4b2..360d7dcc 100644 --- a/Frontend/implementations/EpicGames/package-lock.json +++ b/Frontend/implementations/EpicGames/package-lock.json @@ -1,11 +1,11 @@ { - "name": "@epicgames/reference-pixelstreamingfrontend", + "name": "@epicgames-ps/reference-pixelstreamingfrontend", "version": "0.0.1", "lockfileVersion": 2, "requires": true, "packages": { "": { - "name": "@epicgames/reference-pixelstreamingfrontend", + "name": "@epicgames-ps/reference-pixelstreamingfrontend", "version": "0.0.1", "hasInstallScript": true, "devDependencies": { diff --git a/Frontend/library/package-lock.json b/Frontend/library/package-lock.json index 4e39ccd4..d7756ab5 100644 --- a/Frontend/library/package-lock.json +++ b/Frontend/library/package-lock.json @@ -1,12 +1,13 @@ { - "name": "@epicgames/lib-pixelstreamingfrontend-dev", + "name": "@epicgames-ps/lib-pixelstreamingfrontend-dev", "version": "0.0.1", "lockfileVersion": 2, "requires": true, "packages": { "": { - "name": "@epicgames/lib-pixelstreamingfrontend-dev", + "name": "@epicgames-ps/lib-pixelstreamingfrontend-dev", "version": "0.0.1", + "license": "MIT", "dependencies": { "jss": "^10.9.2", "jss-plugin-camel-case": "^10.9.2", diff --git a/Frontend/library/src/PeerConnectionController/PeerConnectionController.ts b/Frontend/library/src/PeerConnectionController/PeerConnectionController.ts index 8e5bdd10..5cc5bbc6 100644 --- a/Frontend/library/src/PeerConnectionController/PeerConnectionController.ts +++ b/Frontend/library/src/PeerConnectionController/PeerConnectionController.ts @@ -343,11 +343,27 @@ export class PeerConnectionController { sdpFmtpLine: preferredRTPCodec[1] /* sdpFmtpLine */ ? preferredRTPCodec[1] : '' }]; - if(codecs[0].sdpFmtpLine === '') { - // We can't dynamically add members to the codec, so instead remove the field if it's empty - delete codecs[0].sdpFmtpLine; + this.config.getSettingOption(OptionParameters.PreferredCodec).options + .filter((option) => { + // Remove the preferred codec from the list of possible codecs as we've set it already + return option != this.preferredCodec; + }).forEach((option) => { + // Ammend the rest of the browsers supported codecs + const altCodec = option.split(" "); + codecs.push({ + mimeType: 'video/' + altCodec[0] /* Name */, + clockRate: 90000, + sdpFmtpLine: altCodec[1] /* sdpFmtpLine */ ? altCodec[1] : '' + }) + }) + + for(const codec of codecs) { + if(codec.sdpFmtpLine === '') { + // We can't dynamically add members to the codec, so instead remove the field if it's empty + delete codec.sdpFmtpLine; + } } - + transceiver.setCodecPreferences(codecs); } }