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包
是否需要首帧视频