ax_venc_api.h 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /**********************************************************************************
  2. *
  3. * Copyright (c) 2019-2020 Beijing AXera Technology Co., Ltd. All Rights Reserved.
  4. *
  5. * This source file is the property of Beijing AXera Technology Co., Ltd. and
  6. * may not be copied or distributed in any isomorphic form without the prior
  7. * written consent of Beijing AXera Technology Co., Ltd.
  8. *
  9. **********************************************************************************/
  10. #ifndef _AX_VENC_API_H_
  11. #define _AX_VENC_API_H_
  12. #include <stdbool.h>
  13. #include "ax_comm_venc.h"
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif /* End of #ifdef __cplusplus */
  17. AX_S32 AX_VENC_Init(const AX_VENC_MOD_ATTR_S *pstModAttr);
  18. AX_S32 AX_VENC_Deinit();
  19. AX_S32 AX_VENC_CreateChn(VENC_CHN VeChn, const AX_VENC_CHN_ATTR_S *pstAttr);
  20. AX_S32 AX_VENC_DestroyChn(VENC_CHN VeChn);
  21. AX_S32 AX_VENC_SendFrame(VENC_CHN VeChn, const AX_VIDEO_FRAME_INFO_S *pstFrame , AX_S32 s32MilliSec);
  22. AX_S32 AX_VENC_SendFrameEx(VENC_CHN VeChn, const AX_USER_FRAME_INFO_S *pstFrame, AX_S32 s32MilliSec);
  23. AX_S32 AX_VENC_SelectChn(AX_CHN_STREAM_STATUS_S *pstChnStrmState, AX_S32 s32MilliSec);
  24. AX_S32 AX_VENC_GetStream(VENC_CHN VeChn, AX_VENC_STREAM_S *pstStream, AX_S32 s32MilliSec);
  25. AX_S32 AX_VENC_ReleaseStream(VENC_CHN VeChn, const AX_VENC_STREAM_S *pstStream);
  26. AX_S32 AX_VENC_GetStreamBufInfo(VENC_CHN VeChn, AX_VENC_STREAM_BUF_INFO_T * pstStreamBufInfo);
  27. AX_S32 AX_VENC_StartRecvFrame(VENC_CHN VeChn, const AX_VENC_RECV_PIC_PARAM_S *pstRecvParam);
  28. AX_S32 AX_VENC_StopRecvFrame(VENC_CHN VeChn);
  29. AX_S32 AX_VENC_SetRoiAttr(VENC_CHN VeChn, const AX_VENC_ROI_ATTR_S *pstRoiAttr);
  30. AX_S32 AX_VENC_GetRoiAttr(VENC_CHN VeChn, AX_U32 u32Index, AX_VENC_ROI_ATTR_S *pstRoiAttr);
  31. AX_S32 AX_VENC_SetRcParam(VENC_CHN VeChn, const AX_VENC_RC_PARAM_S *pstRcParam);
  32. AX_S32 AX_VENC_GetRcParam(VENC_CHN VeChn, AX_VENC_RC_PARAM_S *pstRcParam);
  33. AX_S32 AX_VENC_SetModParam(AX_VENC_ENCODER_TYPE_E enVencType, const AX_VENC_MOD_PARAM_S *pstModParam);
  34. AX_S32 AX_VENC_GetModParam(AX_VENC_ENCODER_TYPE_E enVencType, AX_VENC_MOD_PARAM_S *pstModParam);
  35. AX_S32 AX_VENC_SetSpsVuiParam(VENC_CHN VeChn, const AX_VENC_SPS_VUI_PARAM_S *pstSpsVuiParam);
  36. AX_S32 AX_VENC_GetSpsVuiParam(VENC_CHN VeChn, AX_VENC_SPS_VUI_PARAM_S *pstSpsVuiParam);
  37. AX_S32 AX_VENC_SetChnAttr(VENC_CHN VeChn, const AX_VENC_CHN_ATTR_S *pstChnAttr);
  38. AX_S32 AX_VENC_GetChnAttr(VENC_CHN VeChn, AX_VENC_CHN_ATTR_S *pstChnAttr);
  39. AX_S32 AX_VENC_SetRateJamStrategy(VENC_CHN VeChn, const AX_VENC_RATE_JAM_CFG_S *pstRateJamParam);
  40. AX_S32 AX_VENC_GetRateJamStrategy(VENC_CHN VeChn, AX_VENC_RATE_JAM_CFG_S *pstRateJamParam);
  41. AX_S32 AX_VENC_SetSuperFrameStrategy(VENC_CHN VeChn, const AX_VENC_SUPERFRAME_CFG_S *pstSuperFrameCfg);
  42. AX_S32 AX_VENC_GetSuperFrameStrategy(VENC_CHN VeChn, AX_VENC_SUPERFRAME_CFG_S *pstSuperFrameCfg);
  43. AX_S32 AX_VENC_InsertUserData(VENC_CHN VeChn, const AX_U8 *pu8Data, AX_U32 u32Len);
  44. AX_S32 AX_VENC_RequestIDR(VENC_CHN VeChn, AX_BOOL bInstant);
  45. AX_S32 AX_VENC_QueryStatus(VENC_CHN VeChn, AX_VENC_CHN_STATUS_S *pstStatus);
  46. AX_S32 AX_VENC_SetJpegParam(VENC_CHN VeChn, const AX_VENC_JPEG_PARAM_S *pstJpegParam);
  47. AX_S32 AX_VENC_GetJpegParam(VENC_CHN VeChn, AX_VENC_JPEG_PARAM_S *pstJpegParam);
  48. AX_S32 AX_VENC_SetDebugFifoDepth(VENC_CHN VeChn, AX_VENC_ENCODER_TYPE_E enType, AX_U16 u16InFifoDepth, AX_U16 u16OutFifoDepth);
  49. AX_S32 AX_VENC_GetInDebugFifoFrame(VENC_CHN VeChn, AX_VENC_ENCODER_TYPE_E enType, AX_VIDEO_FRAME_S *pstVFrame);
  50. AX_S32 AX_VENC_ReleaseInDebugFifoFrame(VENC_CHN VeChn, AX_VENC_ENCODER_TYPE_E enType, const AX_VIDEO_FRAME_S *pstVFrame);
  51. #ifdef __cplusplus
  52. }
  53. #endif /* End of #ifdef __cplusplus */
  54. #endif /* End of _AX_VENC_API_H_ */