diff --git a/pkg/remux/avpacket2flv.go b/pkg/remux/avpacket2flv.go index 7fe56c3..284ae78 100644 --- a/pkg/remux/avpacket2flv.go +++ b/pkg/remux/avpacket2flv.go @@ -150,9 +150,9 @@ func AVPacket2FLVTag(pkt base.AVPacket) (tag httpflv.Tag, err error) { for i := 0; i != len(pkt.Payload); { naluSize := int(bele.BEUint32(pkt.Payload[i:])) - t := avc.ParseNALUType(pkt.Payload[i+4]) switch pkt.PayloadType { case base.AVPacketPTAVC: + t := avc.ParseNALUType(pkt.Payload[i+4]) if t == avc.NALUTypeIDRSlice { tag.Raw[httpflv.TagHeaderSize] = base.RTMPAVCKeyFrame } else { @@ -160,6 +160,7 @@ func AVPacket2FLVTag(pkt base.AVPacket) (tag httpflv.Tag, err error) { } tag.Raw[httpflv.TagHeaderSize+1] = base.RTMPAVCPacketTypeNALU case base.AVPacketPTHEVC: + t := hevc.ParseNALUType(pkt.Payload[i+4]) if t == hevc.NALUTypeSliceIDR || t == hevc.NALUTypeSliceIDRNLP { tag.Raw[httpflv.TagHeaderSize] = base.RTMPHEVCKeyFrame } else { diff --git a/pkg/remux/avpacket2rtmp.go b/pkg/remux/avpacket2rtmp.go index 07b1660..f641ac6 100644 --- a/pkg/remux/avpacket2rtmp.go +++ b/pkg/remux/avpacket2rtmp.go @@ -143,9 +143,9 @@ func AVPacket2RTMPMsg(pkt base.AVPacket) (msg base.RTMPMsg, err error) { for i := 0; i != len(pkt.Payload); { naluSize := int(bele.BEUint32(pkt.Payload[i:])) - t := avc.ParseNALUType(pkt.Payload[i+4]) switch pkt.PayloadType { case base.AVPacketPTAVC: + t := avc.ParseNALUType(pkt.Payload[i+4]) if t == avc.NALUTypeIDRSlice { msg.Payload[0] = base.RTMPAVCKeyFrame } else { @@ -153,6 +153,7 @@ func AVPacket2RTMPMsg(pkt base.AVPacket) (msg base.RTMPMsg, err error) { } msg.Payload[1] = base.RTMPAVCPacketTypeNALU case base.AVPacketPTHEVC: + t := hevc.ParseNALUType(pkt.Payload[i+4]) if t == hevc.NALUTypeSliceIDR || t == hevc.NALUTypeSliceIDRNLP { msg.Payload[0] = base.RTMPHEVCKeyFrame } else {