浏览代码

remove fix length cache

tags/v1.1.0
yedajiang44 5 年前
父节点
当前提交
de997a1a2e
共有 2 个文件被更改,包括 6 次插入4 次删除
  1. +5
    -4
      src/JT1078.Flv/FlvEncoder.cs
  2. +1
    -0
      src/JT1078.Flv/JT1078.Flv.xml

+ 5
- 4
src/JT1078.Flv/FlvEncoder.cs 查看文件

@@ -193,13 +193,14 @@ namespace JT1078.Flv
/// <summary> /// <summary>
/// 编码视频 /// 编码视频
/// </summary> /// </summary>
/// <remarks><paramref name="package"/>必须是组包后的数据</remarks>
/// <param name="package">1078包</param> /// <param name="package">1078包</param>
/// <param name="needVideoHeader">是否需要首帧视频</param> /// <param name="needVideoHeader">是否需要首帧视频</param>
/// <returns></returns> /// <returns></returns>
public byte[] EncoderVideoTag(JT1078Package package, bool needVideoHeader = false) public byte[] EncoderVideoTag(JT1078Package package, bool needVideoHeader = false)
{ {
if (package.Label3.DataType == JT1078DataType.音频帧) return default; if (package.Label3.DataType == JT1078DataType.音频帧) return default;
byte[] buffer = FlvArrayPool.Rent(65535);
byte[] buffer = FlvArrayPool.Rent(package.Bodies.Length);
FlvMessagePackWriter flvMessagePackWriter = new FlvMessagePackWriter(buffer); FlvMessagePackWriter flvMessagePackWriter = new FlvMessagePackWriter(buffer);
var nalus = h264Decoder.ParseNALU(package); var nalus = h264Decoder.ParseNALU(package);
if (nalus != null && nalus.Count > 0) if (nalus != null && nalus.Count > 0)
@@ -221,7 +222,7 @@ namespace JT1078.Flv
if (sps == null) if (sps == null)
{ {
return null; return null;
}
}
var rawData = h264Decoder.DiscardEmulationPreventionBytes(sps.RawData); var rawData = h264Decoder.DiscardEmulationPreventionBytes(sps.RawData);
ExpGolombReader h264GolombReader = new ExpGolombReader(rawData); ExpGolombReader h264GolombReader = new ExpGolombReader(rawData);
SPSInfo spsInfo = h264GolombReader.ReadSPS(); SPSInfo spsInfo = h264GolombReader.ReadSPS();
@@ -289,7 +290,7 @@ namespace JT1078.Flv
/// <returns></returns> /// <returns></returns>
public byte[] EncoderOtherVideoTag(H264NALU nALU) public byte[] EncoderOtherVideoTag(H264NALU nALU)
{ {
byte[] buffer = FlvArrayPool.Rent(65535);
byte[] buffer = FlvArrayPool.Rent(nALU.RawData.Length);
try try
{ {
FlvMessagePackWriter flvMessagePackWriter = new FlvMessagePackWriter(buffer); FlvMessagePackWriter flvMessagePackWriter = new FlvMessagePackWriter(buffer);
@@ -340,7 +341,7 @@ namespace JT1078.Flv


byte[] EncoderAacAudioTag(uint timestamp, byte[] aacFrameData) byte[] EncoderAacAudioTag(uint timestamp, byte[] aacFrameData)
{ {
byte[] buffer = FlvArrayPool.Rent(65535);
byte[] buffer = FlvArrayPool.Rent(aacFrameData.Length);
try try
{ {
FlvMessagePackWriter flvMessagePackWriter = new FlvMessagePackWriter(buffer); FlvMessagePackWriter flvMessagePackWriter = new FlvMessagePackWriter(buffer);


+ 1
- 0
src/JT1078.Flv/JT1078.Flv.xml 查看文件

@@ -266,6 +266,7 @@
<summary> <summary>
编码视频 编码视频
</summary> </summary>
<remarks><paramref name="package"/>必须是组包后的数据</remarks>
<param name="package">1078包</param> <param name="package">1078包</param>
<param name="needVideoHeader">是否需要首帧视频</param> <param name="needVideoHeader">是否需要首帧视频</param>
<returns></returns> <returns></returns>


正在加载...
取消
保存