No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

53 líneas
1.7 KiB

  1. using JT1078.Protocol.Enums;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Text;
  5. namespace JT1078.Protocol.H264
  6. {
  7. public class H264NALU
  8. {
  9. public readonly static byte[] Start1 = new byte[3] { 0, 0, 1 };
  10. public readonly static byte[] Start2 = new byte[4] { 0, 0, 0, 1 };
  11. public byte[] StartCodePrefix { get; set; }
  12. public NALUHeader NALUHeader { get; set; }
  13. /// <summary>
  14. /// 终端设备SIM卡号
  15. /// BCD[6]
  16. /// </summary>
  17. public string SIM { get; set; }
  18. /// <summary>
  19. /// 逻辑通道号
  20. /// </summary>
  21. public byte LogicChannelNumber { get; set; }
  22. /// <summary>
  23. /// 数据类型
  24. /// </summary>
  25. public JT1078DataType DataType { get; set; }
  26. /// <summary>
  27. /// 该帧与上一个关键帧之间的时间间隔,单位毫秒(ms),
  28. /// 当数据类型为非视频帧时,则没有该字段
  29. /// </summary>
  30. public ushort LastIFrameInterval { get; set; }
  31. /// <summary>
  32. /// 该帧与上一个帧之间的时间间隔,单位毫秒(ms),
  33. /// 当数据类型为非视频帧时,则没有该字段
  34. /// </summary>
  35. public ushort LastFrameInterval { get; set; }
  36. /// <summary>
  37. /// 时间戳
  38. /// 标识此RTP数据包当前帧的相对时间,单位毫秒(ms)。
  39. /// 当数据类型为01000时,则没有该字段
  40. /// </summary>
  41. public ulong Timestamp { get; set; }
  42. /// <summary>
  43. /// 数据体
  44. /// </summary>
  45. public byte[] RawData { get; set; }
  46. public string GetKey()
  47. {
  48. return $"{SIM}_{LogicChannelNumber.ToString()}";
  49. }
  50. }
  51. }