From 6dc4bec201ee152559eb4f27ea5693205551748d Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Tue, 11 Aug 2026 12:49:25 -0700 Subject: [PATCH] onvif: fix backchannel clock and aggregation. fixes https://github.com/koush/scrypted/issues/2118 --- plugins/onvif/src/onvif-intercom.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/onvif/src/onvif-intercom.ts b/plugins/onvif/src/onvif-intercom.ts index d9f7cbba4..ee9b770d8 100644 --- a/plugins/onvif/src/onvif-intercom.ts +++ b/plugins/onvif/src/onvif-intercom.ts @@ -150,8 +150,10 @@ export class OnvifIntercom implements Intercom { return; } - const elapsedRtpTimeMs = Math.abs(pending.header.timestamp - p.header.timestamp) / 8000 * 1000; - if (elapsedRtpTimeMs <= 160 && pending.payload.length + p.payload.length <= 1024) { + const clock = defaultMatch.clock || 8000; + const canAggregate = defaultMatch.ffmpegEncoder === 'pcm_mulaw' || defaultMatch.ffmpegEncoder === 'pcm_alaw'; + const elapsedRtpTimeMs = Math.abs(pending.header.timestamp - p.header.timestamp) / clock * 1000; + if (canAggregate && elapsedRtpTimeMs <= 160 && pending.payload.length + p.payload.length <= 1024) { pending.payload = Buffer.concat([pending.payload, p.payload]); return; }