onvif: fix backchannel clock and aggregation. fixes https://github.com/koush/scrypted/issues/2118

This commit is contained in:
Koushik Dutta
2026-08-11 12:49:25 -07:00
parent 70c2597903
commit 6dc4bec201

View File

@@ -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;
}