From 7e9c23b490393b65798c222145cb275c11535d10 Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Sat, 16 Mar 2024 17:06:04 -0700 Subject: [PATCH] sdk: add privacy mask support --- .../scrypted_python/scrypted_sdk/types.py | 28 +++++++++++++++++++ sdk/types/src/types.input.ts | 14 ++++++++++ 2 files changed, 42 insertions(+) diff --git a/sdk/types/scrypted_python/scrypted_sdk/types.py b/sdk/types/scrypted_python/scrypted_sdk/types.py index 448372c19b..fc8d496136 100644 --- a/sdk/types/scrypted_python/scrypted_sdk/types.py +++ b/sdk/types/scrypted_python/scrypted_sdk/types.py @@ -184,6 +184,7 @@ class ScryptedInterface(str, Enum): VOCSensor = "VOCSensor" VideoCamera = "VideoCamera" VideoCameraConfiguration = "VideoCameraConfiguration" + VideoCameraMask = "VideoCameraMask" VideoClips = "VideoClips" VideoFrameGenerator = "VideoFrameGenerator" VideoRecorder = "VideoRecorder" @@ -319,6 +320,10 @@ class PictureDimensions(TypedDict): height: float width: float +class PrivacyMask(TypedDict): + + points: list[Point] + class RequestMediaStreamAdaptiveOptions(TypedDict): keyframe: bool @@ -658,6 +663,10 @@ class Position(TypedDict): latitude: float longitude: float +class PrivacyMasks(TypedDict): + + masks: list[PrivacyMask] + class RecordedEvent(TypedDict): data: Any @@ -1457,6 +1466,15 @@ async def setVideoStreamOptions(self, options: MediaStreamOptions) -> None: pass +class VideoCameraMask: + + async def getPrivacyMasks(self) -> PrivacyMasks: + pass + + async def setPrivacyMasks(self, masks: PrivacyMasks) -> None: + pass + + class VideoClips: async def getVideoClip(self, videoId: str) -> MediaObject: @@ -1793,6 +1811,8 @@ class ScryptedInterfaceMethods(str, Enum): stopDisplay = "stopDisplay" getVideoStream = "getVideoStream" getVideoStreamOptions = "getVideoStreamOptions" + getPrivacyMasks = "getPrivacyMasks" + setPrivacyMasks = "setPrivacyMasks" getRecordingStream = "getRecordingStream" getRecordingStreamCurrentTime = "getRecordingStreamCurrentTime" getRecordingStreamOptions = "getRecordingStreamOptions" @@ -2587,6 +2607,14 @@ def applicationInfo(self, value: LauncherApplicationInfo): ], "properties": [] }, + "VideoCameraMask": { + "name": "VideoCameraMask", + "methods": [ + "getPrivacyMasks", + "setPrivacyMasks" + ], + "properties": [] + }, "VideoRecorder": { "name": "VideoRecorder", "methods": [ diff --git a/sdk/types/src/types.input.ts b/sdk/types/src/types.input.ts index fc9ca5576e..437c97e04b 100644 --- a/sdk/types/src/types.input.ts +++ b/sdk/types/src/types.input.ts @@ -816,6 +816,19 @@ export interface Intercom { stopIntercom(): Promise; } +export interface PrivacyMask { + points: Point[]; +} + +export interface PrivacyMasks { + masks: PrivacyMask[]; +} + +export interface VideoCameraMask { + getPrivacyMasks(): Promise; + setPrivacyMasks(masks: PrivacyMasks): Promise; +} + export enum PanTiltZoomMovement { Absolute = "Absolute", Relative = "Relative" @@ -2022,6 +2035,7 @@ export enum ScryptedInterface { Microphone = "Microphone", Display = "Display", VideoCamera = "VideoCamera", + VideoCameraMask = "VideoCameraMask", VideoRecorder = "VideoRecorder", VideoRecorderManagement = "VideoRecorderManagement", PanTiltZoom = "PanTiltZoom",