From 62a9046f019aeea3b69da7e60c0ca9c07f7bbff7 Mon Sep 17 00:00:00 2001 From: seydx Date: Tue, 28 Oct 2025 12:50:36 +0100 Subject: [PATCH] Revert configurable packet size for RepackG711 --- pkg/pcm/handlers.go | 15 ++++++--------- pkg/rtsp/consumer.go | 2 +- pkg/webrtc/consumer.go | 2 +- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/pkg/pcm/handlers.go b/pkg/pcm/handlers.go index 7eab1e15..18a96468 100644 --- a/pkg/pcm/handlers.go +++ b/pkg/pcm/handlers.go @@ -12,11 +12,8 @@ import ( // 1. Fixes WebRTC audio quality issue (monotonic timestamp) // 2. Fixes Reolink Doorbell backchannel issue (zero timestamp) // https://github.com/AlexxIT/go2rtc/issues/331 -func RepackG711(zeroTS bool, size int, handler core.HandlerFunc) core.HandlerFunc { - packetSize := 1024 - if size > 0 { - packetSize = size - } +func RepackG711(zeroTS bool, handler core.HandlerFunc) core.HandlerFunc { + const PacketSize = 1024 var buf []byte var seq uint16 @@ -29,7 +26,7 @@ func RepackG711(zeroTS bool, size int, handler core.HandlerFunc) core.HandlerFun mu.Lock() buf = append(buf, packet.Payload...) - if len(buf) < packetSize { + if len(buf) < PacketSize { mu.Unlock() return } @@ -42,7 +39,7 @@ func RepackG711(zeroTS bool, size int, handler core.HandlerFunc) core.HandlerFun SequenceNumber: seq, SSRC: packet.SSRC, }, - Payload: buf[:packetSize], + Payload: buf[:PacketSize], } seq++ @@ -51,10 +48,10 @@ func RepackG711(zeroTS bool, size int, handler core.HandlerFunc) core.HandlerFun // don't have this strange devices for tests if !zeroTS { pkt.Timestamp = ts - ts += uint32(packetSize) + ts += PacketSize } - buf = buf[packetSize:] + buf = buf[PacketSize:] mu.Unlock() diff --git a/pkg/rtsp/consumer.go b/pkg/rtsp/consumer.go index 8fab94f3..e6525d96 100644 --- a/pkg/rtsp/consumer.go +++ b/pkg/rtsp/consumer.go @@ -56,7 +56,7 @@ func (c *Conn) AddTrack(media *core.Media, codec *core.Codec, track *core.Receiv if c.mode == core.ModeActiveProducer && track.Codec.Name == core.CodecPCMA { // Fix Reolink Doorbell https://github.com/AlexxIT/go2rtc/issues/331 - sender.Handler = pcm.RepackG711(true, 0, sender.Handler) + sender.Handler = pcm.RepackG711(true, sender.Handler) } sender.HandleRTP(track) diff --git a/pkg/webrtc/consumer.go b/pkg/webrtc/consumer.go index 261ba10b..767394df 100644 --- a/pkg/webrtc/consumer.go +++ b/pkg/webrtc/consumer.go @@ -66,7 +66,7 @@ func (c *Conn) AddTrack(media *core.Media, codec *core.Codec, track *core.Receiv case core.CodecPCMA, core.CodecPCMU, core.CodecPCM, core.CodecPCML: // Fix audio quality https://github.com/AlexxIT/WebRTC/issues/500 // should be before ResampleToG711, because it will be called last - sender.Handler = pcm.RepackG711(false, 0, sender.Handler) + sender.Handler = pcm.RepackG711(false, sender.Handler) if codec.ClockRate == 0 { if codec.Name == core.CodecPCM || codec.Name == core.CodecPCML {