diff --git a/demos/browser/app/meetingV2/meetingV2.ts b/demos/browser/app/meetingV2/meetingV2.ts index ebb56dd6cc..abe106dc50 100644 --- a/demos/browser/app/meetingV2/meetingV2.ts +++ b/demos/browser/app/meetingV2/meetingV2.ts @@ -3570,6 +3570,21 @@ export class DemoMeetingApp break; } + const chosenVideoSendCodec = (document.getElementById('videoCodecSelect') as HTMLSelectElement).value; + switch (chosenVideoSendCodec) { + case 'vp8': + this.videoCodecPreferences = [VideoCodecCapability.vp8()]; + break; + case 'h264ConstrainedBaselineProfile': + // If `h264ConstrainedBaselineProfile` is explicitly selected, include VP8 as fallback + this.videoCodecPreferences = [VideoCodecCapability.h264ConstrainedBaselineProfile(), VideoCodecCapability.vp8()]; + break; + default: + // If left on 'Meeting Default', use the existing behavior when `setVideoCodecSendPreferences` is not called + // which should be equivalent to `this.videoCodecPreferences = [VideoCodecCapability.h264ConstrainedBaselineProfile()]` + break; + } + AsyncScheduler.nextTick( async (): Promise => { let chimeMeetingId: string = ''; diff --git a/demos/browser/package-lock.json b/demos/browser/package-lock.json index 67e501e9d7..d0edbe9fa2 100644 --- a/demos/browser/package-lock.json +++ b/demos/browser/package-lock.json @@ -41,7 +41,7 @@ } }, "../..": { - "version": "3.6.0", + "version": "3.7.0", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-js": "^2.0.1", @@ -89,7 +89,7 @@ "typescript": "^4.2.3" }, "engines": { - "node": "^12 || ^14 || ^15 || ^16", + "node": "^12 || ^14 || ^15 || ^16 || ^18", "npm": "^6 || ^7 || ^8" } },