From 52ffdcd789ce05800bcd82458c108c942bcbf9f7 Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Tue, 28 Dec 2021 13:13:25 -0800 Subject: [PATCH] homekit: fix reversed logic when there is no audio --- plugins/homekit/package-lock.json | 4 ++-- plugins/homekit/package.json | 2 +- plugins/homekit/src/camera-mixin.ts | 16 ++++++++++------ plugins/homekit/src/types/camera.ts | 2 +- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/plugins/homekit/package-lock.json b/plugins/homekit/package-lock.json index 9579fa0d0..38a51c387 100644 --- a/plugins/homekit/package-lock.json +++ b/plugins/homekit/package-lock.json @@ -1,12 +1,12 @@ { "name": "@scrypted/homekit", - "version": "0.0.142", + "version": "0.0.143", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@scrypted/homekit", - "version": "0.0.142", + "version": "0.0.143", "dependencies": { "hap-nodejs": "file:../../external/HAP-NodeJS", "lodash": "^4.17.21", diff --git a/plugins/homekit/package.json b/plugins/homekit/package.json index dce1f2efc..e042c81dc 100644 --- a/plugins/homekit/package.json +++ b/plugins/homekit/package.json @@ -40,5 +40,5 @@ "@types/qrcode": "^1.4.1", "@types/url-parse": "^1.4.3" }, - "version": "0.0.142" + "version": "0.0.143" } diff --git a/plugins/homekit/src/camera-mixin.ts b/plugins/homekit/src/camera-mixin.ts index 4fc893d65..424ef9714 100644 --- a/plugins/homekit/src/camera-mixin.ts +++ b/plugins/homekit/src/camera-mixin.ts @@ -4,11 +4,6 @@ import { getH264DecoderArgs, getH264EncoderArgs } from "../../../common/src/ffmp const { log, systemManager, deviceManager } = sdk; -const extraEncoderArgs = [ - '-b:v', - '${request.video.max_bit_rate * 2}k', -]; - export const defaultObjectDetectionContactSensorTimeout = 60; export class CameraMixin extends SettingsMixinDeviceBase implements Settings { @@ -205,8 +200,17 @@ export class CameraMixin extends SettingsMixinDeviceBase implements Setting if (key === 'h264EncoderArguments') { const encoderArgs = getH264EncoderArgs(); const args = encoderArgs[value.toString()]; - if (args) + if (args) { + // if default args were specified (ie, videotoolbox, quicksync, etc), + // expand that into args that include bitrate and rescale. + const extraEncoderArgs = [ + '-b:v', + '${request.video.max_bit_rate * 2}k', + '-vf', + 'scale=${request.video.width}:${request.video.height}', + ]; args.push(...extraEncoderArgs); + } const substitute = args?.join(' '); value = substitute ? `\`${substitute}\`` : value; } diff --git a/plugins/homekit/src/types/camera.ts b/plugins/homekit/src/types/camera.ts index 49a552fad..4dae5f546 100644 --- a/plugins/homekit/src/types/camera.ts +++ b/plugins/homekit/src/types/camera.ts @@ -253,7 +253,7 @@ addSupportedType({ args.push(...ffmpegInput.inputArguments); // dummy audio - if (!noAudio) { + if (noAudio) { // create a dummy audio track if none actually exists. // this track will only be used if no audio track is available. // https://stackoverflow.com/questions/37862432/ffmpeg-output-silent-audio-track-if-source-has-no-audio-or-audio-is-shorter-th