mpi_vdec.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. /******************************************************************************
  2. Copyright (C), 2016, Hisilicon Tech. Co., Ltd.
  3. ******************************************************************************
  4. File Name : mpi_vdec.h
  5. Version : Initial Draft
  6. Author : Hisilicon multimedia software group
  7. Created : 2016/07/15
  8. Last Modified :
  9. Description : MPP Programe Interface for video decode
  10. Function List :
  11. ******************************************************************************/
  12. #ifndef __MPI_VDEC_H__
  13. #define __MPI_VDEC_H__
  14. #include "hi_common.h"
  15. #include "hi_comm_video.h"
  16. #include "hi_comm_vb.h"
  17. #include "hi_comm_vdec.h"
  18. #ifdef __cplusplus
  19. #if __cplusplus
  20. extern "C"{
  21. #endif
  22. #endif /* End of #ifdef __cplusplus */
  23. HI_S32 HI_MPI_VDEC_CreateChn(VDEC_CHN VdChn, const VDEC_CHN_ATTR_S *pstAttr);
  24. HI_S32 HI_MPI_VDEC_DestroyChn(VDEC_CHN VdChn);
  25. HI_S32 HI_MPI_VDEC_GetChnAttr(VDEC_CHN VdChn, VDEC_CHN_ATTR_S *pstAttr);
  26. HI_S32 HI_MPI_VDEC_SetChnAttr(VDEC_CHN VdChn, const VDEC_CHN_ATTR_S *pstAttr);
  27. HI_S32 HI_MPI_VDEC_StartRecvStream(VDEC_CHN VdChn);
  28. HI_S32 HI_MPI_VDEC_StopRecvStream(VDEC_CHN VdChn);
  29. HI_S32 HI_MPI_VDEC_QueryStatus(VDEC_CHN VdChn,VDEC_CHN_STATUS_S *pstStatus);
  30. HI_S32 HI_MPI_VDEC_GetFd(VDEC_CHN VdChn);
  31. HI_S32 HI_MPI_VDEC_CloseFd(VDEC_CHN VdChn);
  32. HI_S32 HI_MPI_VDEC_ResetChn(VDEC_CHN VdChn);
  33. HI_S32 HI_MPI_VDEC_SetChnParam(VDEC_CHN VdChn, const VDEC_CHN_PARAM_S* pstParam);
  34. HI_S32 HI_MPI_VDEC_GetChnParam(VDEC_CHN VdChn, VDEC_CHN_PARAM_S* pstParam);
  35. HI_S32 HI_MPI_VDEC_SetProtocolParam(VDEC_CHN VdChn, const VDEC_PRTCL_PARAM_S *pstParam);
  36. HI_S32 HI_MPI_VDEC_GetProtocolParam(VDEC_CHN VdChn,VDEC_PRTCL_PARAM_S *pstParam);
  37. /* s32MilliSec: -1 is block,0 is no block,other positive number is timeout */
  38. HI_S32 HI_MPI_VDEC_SendStream(VDEC_CHN VdChn, const VDEC_STREAM_S *pstStream, HI_S32 s32MilliSec);
  39. HI_S32 HI_MPI_VDEC_GetFrame(VDEC_CHN VdChn, VIDEO_FRAME_INFO_S *pstFrameInfo, HI_S32 s32MilliSec);
  40. HI_S32 HI_MPI_VDEC_ReleaseFrame(VDEC_CHN VdChn, const VIDEO_FRAME_INFO_S *pstFrameInfo);
  41. HI_S32 HI_MPI_VDEC_GetUserData(VDEC_CHN VdChn, VDEC_USERDATA_S *pstUserData, HI_S32 s32MilliSec);
  42. HI_S32 HI_MPI_VDEC_ReleaseUserData(VDEC_CHN VdChn, const VDEC_USERDATA_S *pstUserData);
  43. HI_S32 HI_MPI_VDEC_SetUserPic(VDEC_CHN VdChn, const VIDEO_FRAME_INFO_S *pstUsrPic);
  44. HI_S32 HI_MPI_VDEC_EnableUserPic(VDEC_CHN VdChn, HI_BOOL bInstant);
  45. HI_S32 HI_MPI_VDEC_DisableUserPic(VDEC_CHN VdChn);
  46. HI_S32 HI_MPI_VDEC_SetDisplayMode(VDEC_CHN VdChn, VIDEO_DISPLAY_MODE_E enDisplayMode);
  47. HI_S32 HI_MPI_VDEC_GetDisplayMode(VDEC_CHN VdChn, VIDEO_DISPLAY_MODE_E *penDisplayMode);
  48. HI_S32 HI_MPI_VDEC_SetRotation(VDEC_CHN VdChn, ROTATION_E enRotation);
  49. HI_S32 HI_MPI_VDEC_GetRotation(VDEC_CHN VdChn, ROTATION_E *penRotation);
  50. HI_S32 HI_MPI_VDEC_AttachVbPool(VDEC_CHN VdChn, const VDEC_CHN_POOL_S *pstPool);
  51. HI_S32 HI_MPI_VDEC_DetachVbPool(VDEC_CHN VdChn);
  52. HI_S32 HI_MPI_VDEC_SetModParam(const VDEC_MOD_PARAM_S *pstModParam);
  53. HI_S32 HI_MPI_VDEC_GetModParam(VDEC_MOD_PARAM_S *pstModParam);
  54. #ifdef __cplusplus
  55. #if __cplusplus
  56. }
  57. #endif
  58. #endif /* End of #ifdef __cplusplus */
  59. #endif /* End of #ifndef __MPI_VDEC_H__ */