mfcapi.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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_JPEG 110
  9. #define RAW_STRM_TYPE_H264_NOREORDER (RAW_STRM_TYPE_H264 | (1 << 8))
  10. #define MAX_OUTFRAME_NUM 8
  11. #define MAX_OUTFRAME_WIDTH 1280
  12. #define MAX_OUTFRAME_HEIGHT 720
  13. typedef struct
  14. {
  15. u32 yBusAddress;
  16. u32 cbcrBusAddress;
  17. u32 crBusAddress;
  18. const void *pyVirAddress;
  19. const void *pcbcrVirAddress;
  20. const void *pcrVirAddress;
  21. i32 keyPicture;
  22. }FrameBuffer;
  23. typedef struct
  24. {
  25. i32 num;
  26. i32 codedWidth;
  27. i32 codedHeight;
  28. i32 frameWidth;
  29. i32 frameHeight;
  30. i32 outputFormat; /* JPEGDEC_YCbCr400/JPEGDEC_YCbCr420/JPEGDEC_YCbCr422 */
  31. FrameBuffer buffer[MAX_OUTFRAME_NUM];
  32. }OutFrameBuffer;
  33. typedef enum{
  34. MFCDEC_RET_OK = 1,
  35. MFCDEC_RET_DECFAIL = 0,
  36. MFCDEC_RET_MEMFAIL = -1,
  37. MFCDEC_RET_LOCKFAIL = -2,
  38. }MFCDecodeRet;
  39. typedef struct
  40. {
  41. void *decInst;
  42. int streamType;
  43. int delayInit;
  44. int outputFormat;
  45. }MFCHandle;
  46. typedef struct {
  47. MFCHandle *handle;
  48. uint32_t jpg_addr;
  49. uint32_t jpg_size;
  50. uint32_t dec_addry;
  51. uint32_t dec_addru;
  52. uint32_t dec_addrv;
  53. uint32_t dec_size;
  54. uint16_t jpg_width;
  55. uint16_t jpg_height;
  56. uint16_t dec_width;
  57. uint16_t dec_height;
  58. uint32_t dec_format;
  59. } JpegHeaderInfo;
  60. MFCHandle *mfc_init(int streamType);
  61. int mfc_decode(MFCHandle *handle, DWLLinearMem_t *inBuffer, OutFrameBuffer *outBuffer);
  62. int mfc_jpegdec(JpegHeaderInfo *jpegInfo);
  63. void mfc_uninit(MFCHandle *handle);
  64. int mfc_pp_init(MFCHandle *handle, int outWidth, int outHeight, int outFormat);
  65. #ifdef __cplusplus
  66. }
  67. #endif
  68. #endif