h265.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. /**
  2. * 叶海辉
  3. * QQ群121376426
  4. * http://blog.yundiantech.com/
  5. */
  6. #ifndef H265_H
  7. #define H265_H
  8. #include <stdlib.h>
  9. typedef enum e_hevc_nalu_type
  10. {
  11. HEVC_NAL_TRAIL_N = 0,
  12. HEVC_NAL_TRAIL_R = 1,
  13. HEVC_NAL_TSA_N = 2,
  14. HEVC_NAL_TSA_R = 3,
  15. HEVC_NAL_STSA_N = 4,
  16. HEVC_NAL_STSA_R = 5,
  17. HEVC_NAL_RADL_N = 6,
  18. HEVC_NAL_RADL_R = 7,
  19. HEVC_NAL_RASL_N = 8,
  20. HEVC_NAL_RASL_R = 9,
  21. HEVC_NAL_VCL_N10 = 10,
  22. HEVC_NAL_VCL_R11 = 11,
  23. HEVC_NAL_VCL_N12 = 12,
  24. HEVC_NAL_VCL_R13 = 13,
  25. HEVC_NAL_VCL_N14 = 14,
  26. HEVC_NAL_VCL_R15 = 15,
  27. HEVC_NAL_BLA_W_LP = 16,
  28. HEVC_NAL_BLA_W_RADL = 17,
  29. HEVC_NAL_BLA_N_LP = 18,
  30. HEVC_NAL_IDR_W_RADL = 19,
  31. HEVC_NAL_IDR_N_LP = 20,
  32. HEVC_NAL_CRA_NUT = 21,
  33. HEVC_NAL_IRAP_VCL22 = 22,
  34. HEVC_NAL_IRAP_VCL23 = 23,
  35. HEVC_NAL_RSV_VCL24 = 24,
  36. HEVC_NAL_RSV_VCL25 = 25,
  37. HEVC_NAL_RSV_VCL26 = 26,
  38. HEVC_NAL_RSV_VCL27 = 27,
  39. HEVC_NAL_RSV_VCL28 = 28,
  40. HEVC_NAL_RSV_VCL29 = 29,
  41. HEVC_NAL_RSV_VCL30 = 30,
  42. HEVC_NAL_RSV_VCL31 = 31,
  43. HEVC_NAL_VPS = 32,
  44. HEVC_NAL_SPS = 33,
  45. HEVC_NAL_PPS = 34,
  46. HEVC_NAL_AUD = 35,
  47. HEVC_NAL_EOS_NUT = 36,
  48. HEVC_NAL_EOB_NUT = 37,
  49. HEVC_NAL_FD_NUT = 38,
  50. HEVC_NAL_SEI_PREFIX = 39,
  51. HEVC_NAL_SEI_SUFFIX = 40
  52. } E_HEVC_NALU_TYPE;
  53. #pragma pack (1)
  54. typedef struct t_h265_nalu_header
  55. {
  56. unsigned char forbidden_zero_bit:1;
  57. unsigned char nal_unit_type:6;
  58. unsigned char nuh_layer_id:6;
  59. unsigned char nuh_temporal_id_plus1:3;
  60. } T_H265_NALU_HEADER;
  61. typedef struct t_h265_nalu
  62. {
  63. int startCodeLen;
  64. T_H265_NALU_HEADER h265NaluHeader;
  65. unsigned int len;
  66. unsigned char *buf;
  67. } T_H265_NALU;
  68. #pragma pack ()
  69. #endif // H264_H