From 2eaf84ad6695328ea97c22a7011d11bf25634213 Mon Sep 17 00:00:00 2001 From: Artur Melanchyk Date: Thu, 26 Dec 2024 04:01:21 +0100 Subject: [PATCH] Reduce memory allocation in WritePaddingRTP / WriteProbePackets (#3288) * allocate memory once in WriteProbePackets Signed-off-by: Artur Melanchyk * allocate memory once in WritePaddingRTP Signed-off-by: Artur Melanchyk --------- Signed-off-by: Artur Melanchyk --- pkg/sfu/downtrack.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkg/sfu/downtrack.go b/pkg/sfu/downtrack.go index b3401c312..1c5c3c682 100644 --- a/pkg/sfu/downtrack.go +++ b/pkg/sfu/downtrack.go @@ -1034,6 +1034,7 @@ func (d *DownTrack) WritePaddingRTP(bytesToSend int, paddingOnMute bool, forceMa } bytesSent := 0 + payloads := make([]byte, RTPPaddingMaxPayloadSize*len(snts)) for i := 0; i < len(snts); i++ { hdr := &rtp.Header{ Version: 2, @@ -1046,7 +1047,7 @@ func (d *DownTrack) WritePaddingRTP(bytesToSend int, paddingOnMute bool, forceMa } d.addDummyExtensions(hdr) - payload := make([]byte, RTPPaddingMaxPayloadSize) + payload := payloads[i*RTPPaddingMaxPayloadSize : (i+1)*RTPPaddingMaxPayloadSize : (i+1)*RTPPaddingMaxPayloadSize] // last byte of padding has padding size including that byte payload[RTPPaddingMaxPayloadSize-1] = byte(RTPPaddingMaxPayloadSize) @@ -2106,6 +2107,7 @@ func (d *DownTrack) WriteProbePackets(bytesToSend int, usePadding bool) int { } rtxExtSequenceNumber := d.rtxSequenceNumber.Inc() + payloads := make([]byte, RTPPaddingMaxPayloadSize*num) for i := 0; i < num; i++ { hdr := &rtp.Header{ Version: 2, @@ -2118,7 +2120,7 @@ func (d *DownTrack) WriteProbePackets(bytesToSend int, usePadding bool) int { } d.addDummyExtensions(hdr) - payload := make([]byte, RTPPaddingMaxPayloadSize) + payload := payloads[i*RTPPaddingMaxPayloadSize : (i+1)*RTPPaddingMaxPayloadSize : (i+1)*RTPPaddingMaxPayloadSize] // last byte of padding has padding size including that byte payload[RTPPaddingMaxPayloadSize-1] = byte(RTPPaddingMaxPayloadSize)