From e295bc4eaffa979e3fdf270e4be243c9d3720cc2 Mon Sep 17 00:00:00 2001 From: Alexey Khit Date: Thu, 26 Jan 2023 22:00:25 +0300 Subject: [PATCH] Fix RTSP AAC sound from some Reolink cameras --- pkg/aac/rtp.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pkg/aac/rtp.go b/pkg/aac/rtp.go index f5cd9adc..74565ea7 100644 --- a/pkg/aac/rtp.go +++ b/pkg/aac/rtp.go @@ -17,9 +17,14 @@ func RTPDepay(track *streamer.Track) streamer.WrapperFunc { //log.Printf("[RTP/AAC] units: %d, size: %4d, ts: %10d, %t", headersSize/2, len(packet.Payload), packet.Timestamp, packet.Marker) + data := packet.Payload[2+headersSize:] + if IsADTS(data) { + data = data[7:] + } + clone := *packet clone.Version = RTPPacketVersionAAC - clone.Payload = packet.Payload[2+headersSize:] + clone.Payload = data return push(&clone) } } @@ -55,3 +60,7 @@ func RTPPay(mtu uint16) streamer.WrapperFunc { } } } + +func IsADTS(b []byte) bool { + return len(b) > 7 && b[0] == 0xFF && b[1]&0xF0 == 0xF0 +}