From de997a1a2e24d6cd3b7d5e1329b4dfc4a5d4e44c Mon Sep 17 00:00:00 2001 From: yedajiang44 <602830483@qq.com> Date: Wed, 13 May 2020 12:23:43 +0800 Subject: [PATCH] remove fix length cache --- src/JT1078.Flv/FlvEncoder.cs | 9 +++++---- src/JT1078.Flv/JT1078.Flv.xml | 1 + 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/JT1078.Flv/FlvEncoder.cs b/src/JT1078.Flv/FlvEncoder.cs index cad5ee1..98e9a0a 100644 --- a/src/JT1078.Flv/FlvEncoder.cs +++ b/src/JT1078.Flv/FlvEncoder.cs @@ -193,13 +193,14 @@ namespace JT1078.Flv /// /// 编码视频 /// + /// 必须是组包后的数据 /// 1078包 /// 是否需要首帧视频 /// public byte[] EncoderVideoTag(JT1078Package package, bool needVideoHeader = false) { if (package.Label3.DataType == JT1078DataType.音频帧) return default; - byte[] buffer = FlvArrayPool.Rent(65535); + byte[] buffer = FlvArrayPool.Rent(package.Bodies.Length); FlvMessagePackWriter flvMessagePackWriter = new FlvMessagePackWriter(buffer); var nalus = h264Decoder.ParseNALU(package); if (nalus != null && nalus.Count > 0) @@ -221,7 +222,7 @@ namespace JT1078.Flv if (sps == null) { return null; - } + } var rawData = h264Decoder.DiscardEmulationPreventionBytes(sps.RawData); ExpGolombReader h264GolombReader = new ExpGolombReader(rawData); SPSInfo spsInfo = h264GolombReader.ReadSPS(); @@ -289,7 +290,7 @@ namespace JT1078.Flv /// public byte[] EncoderOtherVideoTag(H264NALU nALU) { - byte[] buffer = FlvArrayPool.Rent(65535); + byte[] buffer = FlvArrayPool.Rent(nALU.RawData.Length); try { FlvMessagePackWriter flvMessagePackWriter = new FlvMessagePackWriter(buffer); @@ -340,7 +341,7 @@ namespace JT1078.Flv byte[] EncoderAacAudioTag(uint timestamp, byte[] aacFrameData) { - byte[] buffer = FlvArrayPool.Rent(65535); + byte[] buffer = FlvArrayPool.Rent(aacFrameData.Length); try { FlvMessagePackWriter flvMessagePackWriter = new FlvMessagePackWriter(buffer); diff --git a/src/JT1078.Flv/JT1078.Flv.xml b/src/JT1078.Flv/JT1078.Flv.xml index 7e937e1..f261003 100644 --- a/src/JT1078.Flv/JT1078.Flv.xml +++ b/src/JT1078.Flv/JT1078.Flv.xml @@ -266,6 +266,7 @@ 编码视频 + 必须是组包后的数据 1078包 是否需要首帧视频