Browse Source

增加一个扩展参数用来获取SIM卡为空的情况,如果有替换JT1078Package.GetKey()的值

tags/v1.1.0
SmallChi(Koike) 5 years ago
parent
commit
45f1ee6215
2 changed files with 14 additions and 5 deletions
  1. +12
    -4
      src/JT1078.Flv/FlvEncoder.cs
  2. +2
    -1
      src/JT1078.Flv/H264/H264Decoder.cs

+ 12
- 4
src/JT1078.Flv/FlvEncoder.cs View File

@@ -214,7 +214,14 @@ namespace JT1078.Flv
FlvArrayPool.Return(buffer);
}
}
public byte[] CreateFlvFrame(List<H264NALU> nALUs,int minimumLength = 65535)
/// <summary>
///
/// </summary>
/// <param name="nALUs"></param>
/// <param name="key">由于获取的SIM卡可能为000000000000,所以如果有替换JT1078Package.GetKey()的值</param>
/// <param name="minimumLength"></param>
/// <returns></returns>
public byte[] CreateFlvFrame(List<H264NALU> 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
///
/// </summary>
/// <param name="package">完整的1078包</param>
/// <param name="key">由于获取的SIM卡可能为000000000000,所以如果有替换JT1078Package.GetKey()的值</param>
/// <param name="minimumLength">默认65535</param>
/// <returns></returns>
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);
}
/// <summary>
///


+ 2
- 1
src/JT1078.Flv/H264/H264Decoder.cs View File

@@ -16,8 +16,9 @@ namespace JT1078.Flv.H264
/// <see cref="https://github.com/samirkumardas/jmuxer/blob/master/src/parsers/h264.js"/>
/// </summary>
/// <param name="package"></param>
/// <param name="key"></param>
/// <returns></returns>
public List<H264NALU> ParseNALU(JT1078Package package)
public List<H264NALU> ParseNALU(JT1078Package package, string key = null)
{
List<H264NALU> h264NALUs = new List<H264NALU>();
int i=0,state=0;


Loading…
Cancel
Save