62 lines
2.6 KiB

  1. using JT1078.Hls.Enums;
  2. using JT1078.Hls.MessagePack;
  3. using JT1078.Protocol.Extensions;
  4. using System;
  5. using System.Collections.Generic;
  6. using Xunit;
  7. namespace JT1078.Hls.Test
  8. {
  9. /// <summary>
  10. /// 使用doc/video/demo0.ts
  11. /// </summary>
  12. public class TS_SDT_Package_Test
  13. {
  14. [Fact]
  15. public void ToBufferTest()
  16. {
  17. TS_SDT_Package package = new TS_SDT_Package();
  18. package.Header = new TS_Header();
  19. package.Header.PID = 0x0011;
  20. package.Header.AdaptationFieldControl = AdaptationFieldControl.无自适应域_仅含有效负载;
  21. package.Header.ContinuityCounter = 0;
  22. package.TableId = 0x42;
  23. package.TransportStreamId = 0x0001;
  24. package.VersionNumber = 0;
  25. package.CurrentNextIndicator = 0x01;
  26. package.SectionNumber = 0x00;
  27. package.LastSectionNumber = 0x00;
  28. package.OriginalNetworkId = 0xFF01;
  29. package.Services = new List<TS_SDT_Service>();
  30. package.Services.Add(new TS_SDT_Service()
  31. {
  32. ServiceId = 0x0001,
  33. EITScheduleFlag = 0x00,
  34. EITPresentFollowingFlag = 0x00,
  35. RunningStatus = TS_SDT_Service_RunningStatus.运行,
  36. FreeCAMode = 0x00,
  37. Descriptors = new List<Descriptors.TS_SDT_Service_Descriptor> {
  38. new Descriptors.TS_SDT_Service_Descriptor{
  39. Tag=0x48,
  40. ServiceType= TS_SDT_Service_Descriptor_ServiceType.数字电视业务,
  41. ServiceProvider="FFmpeg",
  42. ServiceName="Service01"
  43. }
  44. }
  45. }) ;
  46. TSMessagePackWriter writer = new TSMessagePackWriter(new byte[188]);
  47. package.ToBuffer(ref writer);
  48. var patData = writer.FlushAndGetArray().ToHexString();
  49. Assert.Equal("47 40 11 10 00 42 F0 25 00 01 C1 00 00 FF 01 FF 00 01 FC 80 14 48 12 01 06 46 46 6D 70 65 67 09 53 65 72 76 69 63 65 30 31 77 7C 43 CA FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF".Replace(" ", ""), patData);
  50. }
  51. [Fact]
  52. public void Test() {
  53. byte a = 0x01;
  54. var b = (ushort)(a << 15);
  55. }
  56. }
  57. }