From 0772db509a047aebf96f2d232cc18d322a540002 Mon Sep 17 00:00:00 2001 From: aler9 <46489434+aler9@users.noreply.github.com> Date: Sun, 18 Dec 2022 23:16:20 +0100 Subject: [PATCH] fix freeze when reading a stream with both HLS and RTSP --- internal/core/formatprocessor_h264.go | 4 +++- internal/core/formatprocessor_h265.go | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/internal/core/formatprocessor_h264.go b/internal/core/formatprocessor_h264.go index 20b95c00..932626a0 100644 --- a/internal/core/formatprocessor_h264.go +++ b/internal/core/formatprocessor_h264.go @@ -222,7 +222,9 @@ func (t *formatProcessorH264) process(dat data, hasNonRTSPReaders bool) error { t.decoder = t.format.CreateDecoder() } - tdata.rtpPackets = nil + if t.encoder != nil { + tdata.rtpPackets = nil + } // DecodeUntilMarker() is necessary, otherwise Encode() generates partial groups nalus, pts, err := t.decoder.DecodeUntilMarker(pkt) diff --git a/internal/core/formatprocessor_h265.go b/internal/core/formatprocessor_h265.go index 7091b3f5..3027e624 100644 --- a/internal/core/formatprocessor_h265.go +++ b/internal/core/formatprocessor_h265.go @@ -170,7 +170,9 @@ func (t *formatProcessorH265) process(dat data, hasNonRTSPReaders bool) error { t.decoder = t.format.CreateDecoder() } - tdata.rtpPackets = nil + if t.encoder != nil { + tdata.rtpPackets = nil + } // DecodeUntilMarker() is necessary, otherwise Encode() generates partial groups nalus, pts, err := t.decoder.DecodeUntilMarker(pkt)