From 0a68117435c2c7a2de42a6c8a592ea566409309a Mon Sep 17 00:00:00 2001 From: Allen Porter Date: Mon, 21 Feb 2022 14:29:52 -0800 Subject: [PATCH] Crash fix: don't write packets for uninitialized HLS segments Add a check to avoid writing to an uninitialized HLS segment. --- hlsMuxer.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hlsMuxer.go b/hlsMuxer.go index f4cde85..e90b8bc 100644 --- a/hlsMuxer.go +++ b/hlsMuxer.go @@ -48,6 +48,11 @@ func (element *MuxerHLS) WritePacket(packet *av.Packet) { element.mutex.Lock() defer element.mutex.Unlock() //TODO delete packet.IsKeyFrame if need no EXT-X-INDEPENDENT-SEGMENTS + + if !packet.IsKeyFrame && element.CurrentSegment == nil { + // Wait for the first keyframe before initializing + return + } if packet.IsKeyFrame && (element.CurrentSegment == nil || element.CurrentSegment.GetDuration().Seconds() >= 4) { if element.CurrentSegment != nil { element.CurrentSegment.Close()