From 45f1ee62153a70e982f5fbf4766a0c43d4525ad7 Mon Sep 17 00:00:00 2001 From: "SmallChi(Koike)" <564952747@qq.com> Date: Mon, 21 Oct 2019 23:59:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=80=E4=B8=AA=E6=89=A9?= =?UTF-8?q?=E5=B1=95=E5=8F=82=E6=95=B0=E7=94=A8=E6=9D=A5=E8=8E=B7=E5=8F=96?= =?UTF-8?q?SIM=E5=8D=A1=E4=B8=BA=E7=A9=BA=E7=9A=84=E6=83=85=E5=86=B5,?= =?UTF-8?q?=E5=A6=82=E6=9E=9C=E6=9C=89=E6=9B=BF=E6=8D=A2JT1078Package.GetK?= =?UTF-8?q?ey()=E7=9A=84=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/JT1078.Flv/FlvEncoder.cs | 16 ++++++++++++---- src/JT1078.Flv/H264/H264Decoder.cs | 3 ++- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/JT1078.Flv/FlvEncoder.cs b/src/JT1078.Flv/FlvEncoder.cs index 1a9aa24..086bdcc 100644 --- a/src/JT1078.Flv/FlvEncoder.cs +++ b/src/JT1078.Flv/FlvEncoder.cs @@ -214,7 +214,14 @@ namespace JT1078.Flv FlvArrayPool.Return(buffer); } } - public byte[] CreateFlvFrame(List nALUs,int minimumLength = 65535) + /// + /// + /// + /// + /// 由于获取的SIM卡可能为000000000000,所以如果有替换JT1078Package.GetKey()的值 + /// + /// + public byte[] CreateFlvFrame(List nALUs, string key = null, int minimumLength = 65535) { byte[] buffer = FlvArrayPool.Rent(minimumLength); try @@ -223,7 +230,7 @@ namespace JT1078.Flv H264NALU sps=null, pps=null, sei=null; foreach (var naln in nALUs) { - string key = naln.GetKey(); + key = key ?? naln.GetKey(); if (sps != null && pps != null) { var rawData = H264Decoder.DiscardEmulationPreventionBytes(sps.RawData); @@ -391,13 +398,14 @@ namespace JT1078.Flv /// /// /// 完整的1078包 + /// 由于获取的SIM卡可能为000000000000,所以如果有替换JT1078Package.GetKey()的值 /// 默认65535 /// - public byte[] CreateFlvFrame(JT1078Package package,int minimumLength = 65535) + public byte[] CreateFlvFrame(JT1078Package package,string key=null,int minimumLength = 65535) { var nalus = H264Decoder.ParseNALU(package); if (nalus == null || nalus.Count <= 0) return default; - return CreateFlvFrame(nalus, minimumLength); + return CreateFlvFrame(nalus, key, minimumLength); } /// /// diff --git a/src/JT1078.Flv/H264/H264Decoder.cs b/src/JT1078.Flv/H264/H264Decoder.cs index 19c8972..0c31bd9 100644 --- a/src/JT1078.Flv/H264/H264Decoder.cs +++ b/src/JT1078.Flv/H264/H264Decoder.cs @@ -16,8 +16,9 @@ namespace JT1078.Flv.H264 /// /// /// + /// /// - public List ParseNALU(JT1078Package package) + public List ParseNALU(JT1078Package package, string key = null) { List h264NALUs = new List(); int i=0,state=0;