mfcapi.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #ifndef __MFCAPI_H__
  2. #define __MFCAPI_H__
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. #include "dwl.h"
  7. #define RAW_STRM_TYPE_H264 104
  8. #define RAW_STRM_TYPE_MP2 105
  9. #define RAW_STRM_TYPE_MP4 106
  10. #define RAW_STRM_TYPE_REAL 107
  11. #define RAW_STRM_TYPE_VC1 108
  12. #define RAW_STRM_TYPE_WMV3 109
  13. #define RAW_STRM_TYPE_JPEG 110
  14. #define RAW_STRM_TYPE_SOR 111
  15. #define RAW_STRM_TYPE_VP8 112
  16. #define RAW_STRM_TYPE_VP6 113
  17. #define RAW_STRM_TYPE_RV1020 114
  18. #define RAW_STRM_TYPE_MSMP4 115
  19. #define RAW_STRM_TYPE_MP4_CUSTOM 116
  20. #define RAW_STRM_TYPE_H264_NOREORDER (RAW_STRM_TYPE_H264 | (1 << 8))
  21. #define MAX_OUTFRAME_NUM 8
  22. #define MAX_OUTFRAME_WIDTH 1920
  23. #define MAX_OUTFRAME_HEIGHT 1088
  24. typedef struct
  25. {
  26. u32 yBusAddress;
  27. u32 cbcrBusAddress;
  28. u32 crBusAddress;
  29. const void *pyVirAddress;
  30. const void *pcbcrVirAddress;
  31. const void *pcrVirAddress;
  32. i32 keyPicture;
  33. }FrameBuffer;
  34. typedef struct
  35. {
  36. i32 num;
  37. i32 codedWidth;
  38. i32 codedHeight;
  39. i32 frameWidth;
  40. i32 frameHeight;
  41. FrameBuffer buffer[MAX_OUTFRAME_NUM];
  42. }OutFrameBuffer;
  43. typedef enum{
  44. MFCDEC_RET_OK = 1,
  45. MFCDEC_RET_DECFAIL = 0,
  46. MFCDEC_RET_MEMFAIL = -1,
  47. MFCDEC_RET_LOCKFAIL = -2,
  48. }MFCDecodeRet;
  49. typedef struct
  50. {
  51. void *decInst;
  52. void *ppInst;
  53. int streamType;
  54. int delayInit;
  55. int isCustomMp4;
  56. int outputFormat;
  57. int ppInit;
  58. int ppMemalloc;
  59. int ppOutWidth;
  60. int ppOutHeight;
  61. int ppOutFormat;
  62. int ppOutBufferIndex;
  63. DWLLinearMem_t ppOutBuffer;
  64. }MFCHandle;
  65. MFCHandle *mfc_init(int streamType);
  66. int mfc_decode(MFCHandle *handle, DWLLinearMem_t *inBuffer, OutFrameBuffer *outBuffer);
  67. void mfc_uninit(MFCHandle *handle);
  68. int mfc_pp_init(MFCHandle *handle, int outWidth, int outHeight, int outFormat);
  69. #ifdef __cplusplus
  70. }
  71. #endif
  72. #endif