From af789a27ddda4df3f710448c8fa119ee3ddb856b Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Wed, 5 Oct 2022 13:24:37 -0700 Subject: [PATCH] pam-diff: fix session abruptly ending --- plugins/pam-diff/package-lock.json | 4 ++-- plugins/pam-diff/package.json | 2 +- plugins/pam-diff/src/main.ts | 9 ++++----- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/plugins/pam-diff/package-lock.json b/plugins/pam-diff/package-lock.json index 7a754d337..ce31ff27c 100644 --- a/plugins/pam-diff/package-lock.json +++ b/plugins/pam-diff/package-lock.json @@ -1,12 +1,12 @@ { "name": "@scrypted/pam-diff", - "version": "0.0.8", + "version": "0.0.9", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@scrypted/pam-diff", - "version": "0.0.8", + "version": "0.0.9", "hasInstallScript": true, "dependencies": { "@types/node": "^16.6.1", diff --git a/plugins/pam-diff/package.json b/plugins/pam-diff/package.json index 71a3cccd2..b555aef19 100644 --- a/plugins/pam-diff/package.json +++ b/plugins/pam-diff/package.json @@ -43,5 +43,5 @@ "devDependencies": { "@scrypted/sdk": "file:../../sdk" }, - "version": "0.0.8" + "version": "0.0.9" } diff --git a/plugins/pam-diff/src/main.ts b/plugins/pam-diff/src/main.ts index 73b4505c7..aee76e600 100644 --- a/plugins/pam-diff/src/main.ts +++ b/plugins/pam-diff/src/main.ts @@ -1,4 +1,4 @@ -import { FFmpegInput, MediaObject, ObjectDetection, ObjectDetectionModel, ObjectDetectionSession, ObjectsDetected, ScryptedDeviceBase, ScryptedInterface, ScryptedMimeTypes } from '@scrypted/sdk'; +import { FFmpegInput, MediaObject, ObjectDetection, ObjectDetectionCallbacks, ObjectDetectionModel, ObjectDetectionSession, ObjectsDetected, ScryptedDeviceBase, ScryptedInterface, ScryptedMimeTypes } from '@scrypted/sdk'; import sdk from '@scrypted/sdk'; import { ffmpegLogInitialOutput } from "../../../common/src/media-helpers"; @@ -39,16 +39,15 @@ class PamDiff extends ScryptedDeviceBase implements ObjectDetection { pds.timeout = setTimeout(() => this.endSession(pds), duration); } - async detectObjects(mediaObject: MediaObject, session?: ObjectDetectionSession): Promise { + async detectObjects(mediaObject: MediaObject, session?: ObjectDetectionSession, callbacks?: ObjectDetectionCallbacks): Promise { if (mediaObject && mediaObject.mimeType?.startsWith('image/')) throw new Error('can not run motion detection on image') let { detectionId } = session; let pds = this.sessions.get(detectionId); - if (!mediaObject) { - if (pds) { + if (!session?.duration || !pds) { + if (pds) this.endSession(pds); - } return { detectionId, running: false,