From ab18d5d1ca55976bf543a1ec72483172d70b6b97 Mon Sep 17 00:00:00 2001 From: Alex X Date: Sat, 16 Sep 2023 11:11:23 +0300 Subject: [PATCH] Improve magic bitstream producer --- pkg/magic/bitstream/producer.go | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/pkg/magic/bitstream/producer.go b/pkg/magic/bitstream/producer.go index d6f7e72e..7951a77c 100644 --- a/pkg/magic/bitstream/producer.go +++ b/pkg/magic/bitstream/producer.go @@ -64,20 +64,22 @@ func (c *Producer) Start() error { buf = append(buf, b[:n]...) - i := annexb.IndexFrame(buf) - if i < 0 { - continue + for { + i := annexb.IndexFrame(buf) + if i < 0 { + break + } + + pkt := &rtp.Packet{ + Header: rtp.Header{Timestamp: core.Now90000()}, + Payload: annexb.EncodeToAVCC(buf[:i], true), + } + c.Receivers[0].WriteRTP(pkt) + + //log.Printf("[AVC] %v, len: %d", h264.Types(pkt.Payload), len(pkt.Payload)) + + buf = buf[i:] } - - pkt := &rtp.Packet{ - Header: rtp.Header{Timestamp: core.Now90000()}, - Payload: annexb.EncodeToAVCC(buf[:i], true), - } - c.Receivers[0].WriteRTP(pkt) - - //log.Printf("[AVC] %v, len: %d", h264.Types(pkt.Payload), len(pkt.Payload)) - - buf = buf[i:] } }