@@ -17,10 +17,6 @@ jobs: | |||||
run: dotnet --info | run: dotnet --info | ||||
- name: dotnet restore | - name: dotnet restore | ||||
run: dotnet restore ./src/JT1078.sln | run: dotnet restore ./src/JT1078.sln | ||||
- name: dotnet JT1078.Protocol.Test build | |||||
run: dotnet build ./src/JT1078.Protocol.Test/JT1078.Protocol.Test.csproj | |||||
- name: dotnet JT1078.Protocol.Test test | |||||
run: dotnet test ./src/JT1078.Protocol.Test/JT1078.Protocol.Test.csproj | |||||
- name: dotnet JT808.Protocol.Extensions.JT1078.Test build | - name: dotnet JT808.Protocol.Extensions.JT1078.Test build | ||||
run: dotnet build ./src/JT808.Protocol.Extensions.JT1078.Test/JT808.Protocol.Extensions.JT1078.Test.csproj | run: dotnet build ./src/JT808.Protocol.Extensions.JT1078.Test/JT808.Protocol.Extensions.JT1078.Test.csproj | ||||
- name: dotnet JT808.Protocol.Extensions.JT1078.Test test | - name: dotnet JT808.Protocol.Extensions.JT1078.Test test | ||||
@@ -0,0 +1,15 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
namespace JT1078.Hls.Enums | |||||
{ | |||||
public enum PackageType | |||||
{ | |||||
PAT=1, | |||||
PMT=2, | |||||
Data_Start=3, | |||||
Data_Segment = 4, | |||||
Data_End = 5, | |||||
} | |||||
} |
@@ -199,7 +199,6 @@ namespace JT1078.Hls | |||||
package.Payload.Payload.NALUs.Add(dataReader.Slice(index, remainingLength).ToArray()); | package.Payload.Payload.NALUs.Add(dataReader.Slice(index, remainingLength).ToArray()); | ||||
index += remainingLength; | index += remainingLength; | ||||
package.ToBuffer(ref messagePackReader); | package.ToBuffer(ref messagePackReader); | ||||
while(index!= jt1078Package.Bodies.Length) | while(index!= jt1078Package.Bodies.Length) | ||||
{ | { | ||||
if (counter > 0xf) | if (counter > 0xf) | ||||
@@ -240,6 +239,7 @@ namespace JT1078.Hls | |||||
//package.Header.Adaptation.FillSize | //package.Header.Adaptation.FillSize | ||||
if (nalu.Length < FiexdSegmentPESLength) | if (nalu.Length < FiexdSegmentPESLength) | ||||
{ | { | ||||
package.Header.PackageType = PackageType.Data_End; | |||||
package.Header.Adaptation = new TS_AdaptationInfo(); | package.Header.Adaptation = new TS_AdaptationInfo(); | ||||
package.Header.Adaptation.PCRIncluded = PCRInclude.不包含; | package.Header.Adaptation.PCRIncluded = PCRInclude.不包含; | ||||
package.Header.Adaptation.FillSize = (byte)(FiexdSegmentPESLength - nalu.Length); | package.Header.Adaptation.FillSize = (byte)(FiexdSegmentPESLength - nalu.Length); | ||||
@@ -57,6 +57,8 @@ namespace JT1078.Hls | |||||
/// </summary> | /// </summary> | ||||
public TS_AdaptationInfo Adaptation { get; set; } | public TS_AdaptationInfo Adaptation { get; set; } | ||||
public PackageType PackageType { get; set; } | |||||
public void ToBuffer(ref TSMessagePackWriter writer) | public void ToBuffer(ref TSMessagePackWriter writer) | ||||
{ | { | ||||
writer.WriteByte(SyncByte); | writer.WriteByte(SyncByte); | ||||
@@ -64,16 +66,22 @@ namespace JT1078.Hls | |||||
//0 1 0 0000 0000 0000 0 | //0 1 0 0000 0000 0000 0 | ||||
writer.WriteUInt16((ushort)(0b_0100_0000_0000_0000 | PID)); | writer.WriteUInt16((ushort)(0b_0100_0000_0000_0000 | PID)); | ||||
writer.WriteByte((byte)((byte)AdaptationFieldControl | ContinuityCounter)); | writer.WriteByte((byte)((byte)AdaptationFieldControl | ContinuityCounter)); | ||||
if (Adaptation != null) | |||||
if(PackageType== PackageType.PAT || | |||||
PackageType == PackageType.PMT || | |||||
PackageType == PackageType.Data_Start || | |||||
PackageType == PackageType.Data_End) | |||||
{ | { | ||||
writer.Skip(1, out int AdaptationLengthPosition); | |||||
Adaptation.ToBuffer(ref writer); | |||||
writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - AdaptationLengthPosition - 1), AdaptationLengthPosition); | |||||
if (Adaptation != null) | |||||
{ | |||||
writer.Skip(1, out int AdaptationLengthPosition); | |||||
Adaptation.ToBuffer(ref writer); | |||||
writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - AdaptationLengthPosition - 1), AdaptationLengthPosition); | |||||
} | |||||
else | |||||
{ | |||||
writer.WriteByte(0); | |||||
} | |||||
} | } | ||||
else | |||||
{ | |||||
writer.WriteByte(0); | |||||
} | |||||
} | } | ||||
} | } | ||||
} | } |
@@ -1,4 +1,5 @@ | |||||
using JT1078.Hls.Interfaces; | |||||
using JT1078.Hls.Enums; | |||||
using JT1078.Hls.Interfaces; | |||||
using JT1078.Hls.MessagePack; | using JT1078.Hls.MessagePack; | ||||
using System; | using System; | ||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
@@ -78,6 +79,7 @@ namespace JT1078.Hls | |||||
public void ToBuffer(ref TSMessagePackWriter writer) | public void ToBuffer(ref TSMessagePackWriter writer) | ||||
{ | { | ||||
Header.PackageType = PackageType.PAT; | |||||
Header.ToBuffer(ref writer); | Header.ToBuffer(ref writer); | ||||
writer.WriteByte(TableId); | writer.WriteByte(TableId); | ||||
//SectionSyntaxIndicator Zero Reserved1 SectionLength | //SectionSyntaxIndicator Zero Reserved1 SectionLength | ||||
@@ -1,4 +1,5 @@ | |||||
using JT1078.Hls.Interfaces; | |||||
using JT1078.Hls.Enums; | |||||
using JT1078.Hls.Interfaces; | |||||
using JT1078.Hls.MessagePack; | using JT1078.Hls.MessagePack; | ||||
using System; | using System; | ||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
@@ -95,6 +96,7 @@ namespace JT1078.Hls | |||||
public uint CRC32 { get; set; } | public uint CRC32 { get; set; } | ||||
public void ToBuffer(ref TSMessagePackWriter writer) | public void ToBuffer(ref TSMessagePackWriter writer) | ||||
{ | { | ||||
Header.PackageType = PackageType.PMT; | |||||
Header.ToBuffer(ref writer); | Header.ToBuffer(ref writer); | ||||
writer.WriteByte(TableId); | writer.WriteByte(TableId); | ||||
//SectionSyntaxIndicator Zero Reserved1 SectionLength | //SectionSyntaxIndicator Zero Reserved1 SectionLength | ||||
@@ -1,4 +1,5 @@ | |||||
using JT1078.Hls.Interfaces; | |||||
using JT1078.Hls.Enums; | |||||
using JT1078.Hls.Interfaces; | |||||
using JT1078.Hls.MessagePack; | using JT1078.Hls.MessagePack; | ||||
using System; | using System; | ||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
@@ -12,6 +13,7 @@ namespace JT1078.Hls | |||||
public byte[] Payload { get; set; } | public byte[] Payload { get; set; } | ||||
public void ToBuffer(ref TSMessagePackWriter writer) | public void ToBuffer(ref TSMessagePackWriter writer) | ||||
{ | { | ||||
Header.PackageType = PackageType.Data_Segment; | |||||
Header.ToBuffer(ref writer); | Header.ToBuffer(ref writer); | ||||
writer.WriteArray(Payload); | writer.WriteArray(Payload); | ||||
} | } | ||||