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)