fix: Correctly detect configuration for the webrtc-card live provider (#1850)

- Closes #1843

If this breaks something for you, please let me know. As a workaround,
you should manually be able to set it back to what it was with something
like:

```yaml
cameras:
 - camera_entity: camera.office
   webrtc_card:
      url: <frigate camera name>
```
This commit is contained in:
Dermot Duffy
2025-01-21 19:42:47 -08:00
committed by GitHub
parent 0212840688
commit 805a21107d
6 changed files with 33 additions and 25 deletions
@@ -987,18 +987,6 @@ export class FrigateCameraManagerEngine
};
};
const getWebRTCCard = (): CameraEndpoint | null => {
// By default use the frigate camera name which is the default recommended
// setup as per:
// https://deploy-preview-4055--frigate-docs.netlify.app/guides/configuring_go2rtc/
//
// The user may override this in their webrtc_card configuration.
const endpoint = cameraConfig.frigate.camera_name
? cameraConfig.frigate.camera_name
: null;
return endpoint ? { endpoint: endpoint } : null;
};
const ui = getUIEndpoint();
const go2rtc = getDefaultGo2RTCEndpoint(cameraConfig, {
url:
@@ -1010,14 +998,12 @@ export class FrigateCameraManagerEngine
stream: cameraConfig.go2rtc?.stream ?? cameraConfig.frigate.camera_name,
});
const jsmpeg = getJSMPEG();
const webrtcCard = getWebRTCCard();
return {
...super.getCameraEndpoints(cameraConfig, context),
...(ui && { ui: ui }),
...(go2rtc && { go2rtc: go2rtc }),
...(jsmpeg && { jsmpeg: jsmpeg }),
...(webrtcCard && { webrtcCard: webrtcCard }),
};
}
+11 -2
View File
@@ -219,10 +219,19 @@ export class GenericCameraManagerEngine implements CameraManagerEngine {
cameraConfig: CameraConfig,
_context?: CameraEndpointsContext,
): CameraEndpoints | null {
const getWebRTCCard = (): CameraEndpoint | null => {
// The user may override this in their webrtc_card configuration.
const endpoint = cameraConfig.camera_entity ? cameraConfig.camera_entity : null;
return endpoint ? { endpoint: endpoint } : null;
};
const go2rtc = getDefaultGo2RTCEndpoint(cameraConfig);
return go2rtc
const webrtcCard = getWebRTCCard();
return go2rtc || webrtcCard
? {
go2rtc: go2rtc,
...(go2rtc && { go2rtc: go2rtc }),
...(webrtcCard && { webrtcCard: webrtcCard }),
}
: null;
}