Ver código fonte

组装测试fmp4盒子

pull/13/head
SmallChi(Koike) 4 anos atrás
pai
commit
87e4eab0bb
5 arquivos alterados com 58354 adições e 6 exclusões
  1. +58313
    -0
      doc/video/fragmented_demo_mdat.txt
  2. +15
    -4
      src/JT1078.FMp4.Test/FMp4Box_Test.cs
  3. +12
    -1
      src/JT1078.FMp4.Test/JT1078.FMp4.Test.csproj
  4. +6
    -1
      src/JT1078.FMp4/Boxs/MediaDataBox.cs
  5. +8
    -0
      src/JT1078.FMp4/JT1078.FMp4.xml

+ 58313
- 0
doc/video/fragmented_demo_mdat.txt
Diferenças do arquivo suprimidas por serem muito extensas
Ver arquivo


+ 15
- 4
src/JT1078.FMp4.Test/FMp4Box_Test.cs Ver arquivo

@@ -6,6 +6,8 @@ using Xunit;
using JT1078.Protocol.Extensions;
using JT1078.FMp4.Enums;
using JT1078.FMp4.Samples;
using System.IO;
using System.Linq;

namespace JT1078.FMp4.Test
{
@@ -233,6 +235,7 @@ namespace JT1078.FMp4.Test
public void moov_udta_test()
{
//todo:moov->udta

}
/// <summary>
/// 使用doc/video/fragmented_demo.mp4
@@ -266,17 +269,25 @@ namespace JT1078.FMp4.Test
movieFragmentBox.TrackFragmentBox.TrackFragmentBaseMediaDecodeTimeBox = new TrackFragmentBaseMediaDecodeTimeBox();
//todo:moof->trun
movieFragmentBox.TrackFragmentBox.TrackRunBox = new TrackRunBox(0, 0x00000305);
}
}
/// <summary>
/// 使用doc/video/fragmented_demo.mp4
/// </summary>
[Fact(DisplayName = "mdat")]
public void mdat_test()
{
//todo:mdat
MediaDataBox mediaDataBox = new MediaDataBox();
}
var lines = File.ReadAllLines(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "H264", "fragmented_demo_mdat.txt"));
var buffers = lines.Where(w => !string.IsNullOrEmpty(w)).Select(s => s.ToHexBytes()).ToList();
List<byte> data = new List<byte>();
foreach (var buffer in buffers)
{
data = data.Concat(buffer).ToList();
}
//00 0E 3C 9C Size
//6D 64 61 74 BoxType
Assert.Equal(0x000E3C9C-8, data.Count);
}
/// <summary>
/// 使用doc/video/fragmented_demo.mp4
/// </summary>


+ 12
- 1
src/JT1078.FMp4.Test/JT1078.FMp4.Test.csproj Ver arquivo

@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
@@ -22,5 +22,16 @@
<ItemGroup>
<ProjectReference Include="..\JT1078.FMp4\JT1078.FMp4.csproj" />
</ItemGroup>
<ItemGroup>
<Folder Include="H264\" />
<None Include="..\..\doc\video\fragmented_demo_mdat.txt" Link="H264\fragmented_demo_mdat.txt">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<None Update="H264\fragmented_demo_mdat.txt">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>

</Project>

+ 6
- 1
src/JT1078.FMp4/Boxs/MediaDataBox.cs Ver arquivo

@@ -17,7 +17,12 @@ namespace JT1078.FMp4
public MediaDataBox() : base("mdat")
{
}

/// <summary>
/// 过滤掉AUD/SPS/PPS NAL <br/>
/// 然后将其他NAL写入Data中 <br/>
/// Filter out AUD/SPS/PPS NAL units from your stream<br/>
/// Write you converted NAL units into the MDAT box<br/>
/// </summary>
public byte[] Data { get; set; }

public void ToBuffer(ref FMp4MessagePackWriter writer)


+ 8
- 0
src/JT1078.FMp4/JT1078.FMp4.xml Ver arquivo

@@ -298,6 +298,14 @@
mdat
</summary>
</member>
<member name="P:JT1078.FMp4.MediaDataBox.Data">
<summary>
过滤掉AUD/SPS/PPS NAL <br/>
然后将其他NAL写入Data中 <br/>
Filter out AUD/SPS/PPS NAL units from your stream<br/>
Write you converted NAL units into the MDAT box<br/>
</summary>
</member>
<member name="T:JT1078.FMp4.MediaHeaderBox">
<summary>
mdhd


Carregando…
Cancelar
Salvar