From b4925dbc2411e343e3fbaabcfa41bc2ec330de91 Mon Sep 17 00:00:00 2001 From: aler9 <46489434+aler9@users.noreply.github.com> Date: Wed, 15 Jun 2022 10:37:15 +0200 Subject: [PATCH] fix crash in client-read-h264-save-to-disk --- examples/client-read-h264-save-to-disk/mpegtsencoder.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/examples/client-read-h264-save-to-disk/mpegtsencoder.go b/examples/client-read-h264-save-to-disk/mpegtsencoder.go index 015176d1..7e893fbc 100644 --- a/examples/client-read-h264-save-to-disk/mpegtsencoder.go +++ b/examples/client-read-h264-save-to-disk/mpegtsencoder.go @@ -61,6 +61,7 @@ func (e *mpegtsEncoder) encode(nalus [][]byte, pts time.Duration) error { {byte(h264.NALUTypeAccessUnitDelimiter), 240}, } + nonIDRPresent := false idrPresent := false for _, nalu := range nalus { @@ -84,11 +85,18 @@ func (e *mpegtsEncoder) encode(nalus [][]byte, pts time.Duration) error { if e.sps != nil && e.pps != nil { filteredNALUs = append(filteredNALUs, e.sps, e.pps) } + + case h264.NALUTypeNonIDR: + nonIDRPresent = true } filteredNALUs = append(filteredNALUs, nalu) } + if !nonIDRPresent && !idrPresent { + return nil + } + var dts time.Duration if !e.firstIDRReceived {