diff --git a/server/package-lock.json b/server/package-lock.json index 55030e0a4..856d4299f 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -1,12 +1,12 @@ { "name": "@scrypted/server", - "version": "0.115.35", + "version": "0.115.36", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@scrypted/server", - "version": "0.115.35", + "version": "0.115.36", "hasInstallScript": true, "license": "ISC", "dependencies": { diff --git a/server/src/plugin/runtime/electron-worker.ts b/server/src/plugin/runtime/electron-worker.ts index 0bb51b66f..58a17637d 100644 --- a/server/src/plugin/runtime/electron-worker.ts +++ b/server/src/plugin/runtime/electron-worker.ts @@ -19,7 +19,7 @@ export class ElectronForkWorker extends ChildProcessWorker { const { env } = options; fs.chmodSync(electronBin, 0o755); - const enabledFeatures = ['SharedArrayBuffer']; + const enabledFeatures = ['SharedArrayBuffer', 'VaapiVideoDecodeLinuxGL']; const args = [ electronBin, '--disable-features=BlockInsecurePrivateNetworkRequests,PrivateNetworkAccessSendPreflights', @@ -28,6 +28,8 @@ export class ElectronForkWorker extends ChildProcessWorker { if (mode !== 'default') { args.push( '--ignore-gpu-blocklist', + '--use-gl=angle', + '--use-angle=gl-egl', ); } @@ -110,9 +112,11 @@ export class ElectronForkWorker extends ChildProcessWorker { } kill(): void { - super.kill(); - if (this.worker) + if (this.worker) { ElectronForkWorker.allocatedDisplays.delete(this.allocatedDisplay); + this.worker.disconnect(); + } + super.kill(); } setupRpcPeer(peer: RpcPeer): void {