csi_venc_h265.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /*
  2. * Copyright (C) 2021 Alibaba Group Holding Limited
  3. * Author: LuChongzhi <chongzhi.lcz@alibaba-inc.com>
  4. *
  5. * This program is free software; you can redistribute it and/or modify
  6. * it under the terms of the GNU General Public License version 2 as
  7. * published by the Free Software Foundation.
  8. */
  9. #ifndef __CSI_VENC_H265_H__
  10. #define __CSI_VENC_H265_H__
  11. #include <csi_venc_h265.h>
  12. typedef enum {
  13. CSI_VENC_H265_PROFILE_MAIN = 0,
  14. CSI_VENC_H265_PROFILE_MAIN10,
  15. CSI_VENC_H265_PROFILE_MAINSTILL,
  16. } csi_venc_h265_profile_e;
  17. typedef enum {
  18. CSI_VENC_H265_LEVEL_1 = 10, /* QCIF (176x144) 64k bps */
  19. CSI_VENC_H265_LEVEL_2 = 20, /* CIF (352x288) 122k bps" */
  20. CSI_VENC_H265_LEVEL_2_1 = 21,
  21. CSI_VENC_H265_LEVEL_3 = 30, /* SD (720x576) 6M bps */
  22. CSI_VENC_H265_LEVEL_3_1 = 31,
  23. CSI_VENC_H265_LEVEL_4 = 40, /* 1080p (1920x1080) 12M bps */
  24. CSI_VENC_H265_LEVEL_4_1 = 41,
  25. CSI_VENC_H265_LEVEL_5 = 50, /* 4k (3840x2160) 25M bps */
  26. CSI_VENC_H265_LEVEL_5_1 = 51,
  27. CSI_VENC_H265_LEVEL_5_2 = 52,
  28. CSI_VENC_H265_LEVEL_6 = 60, /* 8k (7680x4320) 60M bps */
  29. CSI_VENC_H265_LEVEL_6_1 = 61,
  30. CSI_VENC_H265_LEVEL_6_2 = 62,
  31. } csi_venc_h265_level_e;
  32. typedef struct csi_venc_h265_attr {
  33. csi_venc_h265_profile_e profile;
  34. csi_venc_h265_level_e level;
  35. uint32_t frame_type; // bitmask of csi_vcodec_frame_type_e
  36. bool frame_mode; // encode by frame or slice mode
  37. bool share_buf; //Whether to enable the Share Buf of Rcn and Ref
  38. } csi_venc_h265_attr_s;
  39. typedef enum csi_venc_h265_nalu {
  40. CSI_VENC_H265_NALU_BSLICE, /*B SLICE types*/
  41. CSI_VENC_H265_NALU_PSLICE, /*P SLICE types*/
  42. CSI_VENC_H265_NALU_ISLICE, /*I SLICE types*/
  43. CSI_VENC_H265_NALU_IDRSLICE, /*IDR SLICE types*/
  44. CSI_VENC_H265_NALU_VPS, /*VPS types*/
  45. CSI_VENC_H265_NALU_SEI, /*SEI types*/
  46. CSI_VENC_H265_NALU_SPS, /*SPS types*/
  47. CSI_VENC_H265_NALU_PPS, /*PPS types*/
  48. } csi_venc_h265_nalu_e;
  49. typedef csi_venc_h264_cbr_s csi_venc_h265_cbr_s;
  50. typedef csi_venc_h264_vbr_s csi_venc_h265_vbr_s;
  51. typedef csi_venc_h264_avbr_s csi_venc_h265_avbr_s;
  52. typedef csi_venc_h264_fixqp_s csi_venc_h265_fixqp_s;
  53. #endif /* __CSI_VENC_H265_H__ */