Fix whep's memory leak (#15)

This commit is contained in:
Han Gyoung-Su
2025-03-13 01:41:12 +09:00
committed by GitHub
parent cb7d99483f
commit 02bba77844
3 changed files with 12 additions and 5 deletions

View File

@@ -7,6 +7,6 @@ disk_ram = true
[docker]
mode=false
[mp4]
record=false
record=true
[ebml]
record=false
record=false

View File

@@ -94,7 +94,6 @@ func (m *MP4) Start(ctx context.Context, source hub.Source) error {
if !m.splitPending && data.H264Video.RawDTS()-m.lastSplitTime >= m.splitIntervalMS {
m.splitPending = true
}
}
if data.H264Video != nil {

View File

@@ -169,13 +169,21 @@ func (w *WHEP) syncAndSendPackets() error {
// Remove lagging packet from buffer
if videoPacket.timestamp <= audioPacket.timestamp {
// If audio is ahead, remove video from buffer
w.videoBuffer = w.videoBuffer[1:]
if len(w.videoBuffer) > 100 {
w.videoBuffer = append([]*packetWithTimestamp{}, w.videoBuffer[1:]...)
} else {
w.videoBuffer = w.videoBuffer[1:]
}
if err := w.videoTrack.WriteRTP(videoPacket.packet); err != nil {
return err
}
} else {
// If video is ahead, remove audio from buffer
w.audioBuffer = w.audioBuffer[1:]
if len(w.audioBuffer) > 100 {
w.audioBuffer = append([]*packetWithTimestamp{}, w.audioBuffer[1:]...)
} else {
w.audioBuffer = w.audioBuffer[1:]
}
if err := w.audioTrack.WriteRTP(audioPacket.packet); err != nil {
return err
}