From 247b61790e4020a403d528db97028b8124f61cb8 Mon Sep 17 00:00:00 2001 From: Alexey Khit Date: Wed, 5 Oct 2022 15:34:34 +0300 Subject: [PATCH] Update EncodeAVC for empty NALs --- pkg/h264/avc.go | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/pkg/h264/avc.go b/pkg/h264/avc.go index e4844d8b..1e3d2925 100644 --- a/pkg/h264/avc.go +++ b/pkg/h264/avc.go @@ -13,17 +13,22 @@ func IsAVC(codec *streamer.Codec) bool { } func EncodeAVC(nals ...[]byte) (avc []byte) { - n := 4 * len(nals) + var i, n int + for _, nal := range nals { - n += len(nal) + if i = len(nal); i > 0 { + n += 4 + i + } } avc = make([]byte, n) - var i int + n = 0 for _, nal := range nals { - binary.BigEndian.PutUint32(avc[i:], uint32(len(nal))) - i += 4 + copy(avc[i+4:], nal) + if i = len(nal); i > 0 { + binary.BigEndian.PutUint32(avc[n:], uint32(i)) + n += 4 + copy(avc[n+4:], nal) + } } return