From 0352e50aeacccfc5d051c8484e348aa73736df33 Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Wed, 6 Oct 2021 20:51:24 -0700 Subject: [PATCH] homekit: rtp talkback logging --- plugins/homekit/package-lock.json | 4 ++-- plugins/homekit/package.json | 2 +- plugins/homekit/src/rtp/rtp-ffmpeg-input.ts | 7 ++++--- plugins/homekit/src/types/camera.ts | 4 +++- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/plugins/homekit/package-lock.json b/plugins/homekit/package-lock.json index 2ccdaf9eb..8f4a162c6 100644 --- a/plugins/homekit/package-lock.json +++ b/plugins/homekit/package-lock.json @@ -1,12 +1,12 @@ { "name": "@scrypted/homekit", - "version": "0.0.79", + "version": "0.0.80", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@scrypted/homekit", - "version": "0.0.79", + "version": "0.0.80", "dependencies": { "hap-nodejs": "file:../HAP-NodeJS", "lodash": "^4.17.21", diff --git a/plugins/homekit/package.json b/plugins/homekit/package.json index 482c23aae..48bddce88 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.79" + "version": "0.0.80" } diff --git a/plugins/homekit/src/rtp/rtp-ffmpeg-input.ts b/plugins/homekit/src/rtp/rtp-ffmpeg-input.ts index 32602e45b..dcc1c6a90 100644 --- a/plugins/homekit/src/rtp/rtp-ffmpeg-input.ts +++ b/plugins/homekit/src/rtp/rtp-ffmpeg-input.ts @@ -12,7 +12,7 @@ function pickPort() { export class HomeKitRtpSink { heartbeatTimer: NodeJS.Timeout; - constructor(public server: Server, public rtpPort: number, public ffmpegInput: FFMpegInput) { + constructor(public server: Server, public rtpPort: number, public ffmpegInput: FFMpegInput, public console: Console) { } // Send a regular heartbeat to FFmpeg to ensure the pipe remains open and the process alive. @@ -32,12 +32,13 @@ export class HomeKitRtpSink { } destroy() { + this.console.log('rtp sink closed'); this.server?.close(); clearTimeout(this.heartbeatTimer); } } -export async function startRtpSink(socketType: SocketType, address: string, srtp: Buffer,sampleRate: AudioStreamingSamplerate) { +export async function startRtpSink(socketType: SocketType, address: string, srtp: Buffer, sampleRate: AudioStreamingSamplerate, console: Console) { const sdpIpVersion = socketType === "udp6" ? "IP6 " : "IP4"; const rtpPort = pickPort(); @@ -142,5 +143,5 @@ export async function startRtpSink(socketType: SocketType, address: string, srtp ] }; - return new HomeKitRtpSink(server, rtpPort, ffmpegInput); + return new HomeKitRtpSink(server, rtpPort, ffmpegInput, console); } \ No newline at end of file diff --git a/plugins/homekit/src/types/camera.ts b/plugins/homekit/src/types/camera.ts index 9e8ceca79..5a70e5b7f 100644 --- a/plugins/homekit/src/types/camera.ts +++ b/plugins/homekit/src/types/camera.ts @@ -178,6 +178,8 @@ addSupportedType({ if (!session) return; + console.log('streaming session killed'); + sessions.delete(sessionID); session.cp?.kill(); session.videoReturn?.close(); @@ -513,7 +515,7 @@ addSupportedType({ const socketType = session.prepareRequest.addressVersion === 'ipv6' ? 'udp6' : 'udp4'; session.rtpSink = await startRtpSink(socketType, session.prepareRequest.targetAddress, - audioKey, (request as StartStreamRequest).audio.sample_rate); + audioKey, (request as StartStreamRequest).audio.sample_rate, console); session.demuxer.on('rtp', (buffer: Buffer) => { session.audioReturn.send(buffer, session.rtpSink.rtpPort);