vdec_drv_if_dep.h 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. #ifndef VDEC_DRV_IF_DEP_H /* for 6572 only */
  2. #define VDEC_DRV_IF_DEP_H
  3. /*=============================================================================
  4. * Include Files
  5. *===========================================================================*/
  6. #include "val_types_private.h"
  7. #include "vcodec_if_v2.h"
  8. /* #include "rv_format_info.h" */
  9. #include "wmc_type.h"
  10. /* #include "strm_iem.h" */
  11. #include "vcodec_dec_demuxer_if_v2.h"
  12. /* #include "ts_vcodec_common.h" */
  13. #define DumpInput__
  14. #ifdef DumpInput__
  15. #include <stdio.h>
  16. #endif
  17. #ifdef __cplusplus
  18. extern "C" {
  19. #endif
  20. /*=============================================================================
  21. * Definition
  22. *===========================================================================*/
  23. #define MAX_BUFFER_SIZE 21
  24. /*typedef struct
  25. {
  26. // for speedy mode
  27. VAL_UINT32_T nBufferStatus;
  28. VAL_INT64_T llLastVideoTime;
  29. VAL_INT64_T llCurrentPlayTime;
  30. } DRIVER_HANDLER_T;
  31. */
  32. /*
  33. typedef struct __RV9_DRV_DATA_T
  34. {
  35. VAL_UINT32_T uStreamHdrWidth;
  36. VAL_UINT32_T uStreamHdrHeight;
  37. RM_DECODER_INPUT_PARAM_T rRM_INPUT_Data;
  38. payload_inf_st payload_inf_tab_rv9[200]; //set up 200
  39. RM_DECODER_PAYLOAD_INFO_T payload_inf_tab_rv9_MAUI[200]; //set up 200
  40. } RV9_DRV_DATA_T, *P_RV9_DRV_DATA_T;
  41. */
  42. typedef struct __H264_DRV_DATA_T {
  43. H264_DECODER_PAYLOAD_INFO_T prH264Payload;
  44. H264_DECODER_INPUT_PARAM_T prInputData;
  45. H264_DECODER_PRIVATE_PARAM_T rPrivateData;
  46. } H264_DRV_DATA_T, *P_H264_DRV_DATA_T;
  47. typedef struct __MPEG4_DRV_DATA_T {
  48. MPEG4_DECODER_PAYLOAD_INFO_T prMPEG4Payload;
  49. MPEG4_DECODER_INPUT_PARAM_T prInputData;
  50. MPEG4_DECODER_PRIVATE_PARAM_T rPrivateData;
  51. } MPEG4_DRV_DATA_T, *P_MPEG4_DRV_DATA_T;
  52. typedef struct __VP8_DRV_DATA_T {
  53. /* VP8_DEC_CUSTOM_SETTING_T VP8CustSetting; */
  54. } VP8_DRV_DATA_T, *P_VP8_DRV_DATA_T;
  55. typedef struct __VP9_DRV_DATA_T {
  56. /* VP9_DEC_CUSTOM_SETTING_T VP9CustSetting; */
  57. } VP9_DRV_DATA_T, *P_VP9_DRV_DATA_T;
  58. typedef struct __VC1_DRV_DATA_T {
  59. VAL_BOOL_T bVC1FirstDecode;
  60. VC1_DECODER_PAYLOAD_INFO_T prVC1Payload;
  61. VC1_DECODER_INPUT_PARAM_T prInputData;
  62. TEMP_INTERFACE VC1TempInterface;
  63. } VC1_DRV_DATA_T, *P_VC1_DRV_DATA_T;
  64. typedef struct __VDEC_DRV_BUF_STATUS_T {
  65. VAL_BOOL_T bDisplay;
  66. VAL_BOOL_T bFree;
  67. VDEC_DRV_FRAMEBUF_T *pFrameBuf;
  68. } VDEC_DRV_BUF_STATUS_T, *P_VDEC_DRV_BUF_STATUS_T;
  69. typedef enum {
  70. VDEC_DRV_STATUS_OPEN_DONE = 0x00000001,
  71. VDEC_DRV_STATUS_INIT_DONE = 0x00000002,
  72. VDEC_DRV_STATUS_DECODE_EVER = 0x00000004
  73. } VDEC_DRV_STATUS;
  74. typedef struct __VDEC_HANDLE_T {
  75. VAL_HANDLE_T hHalHandle; /* /< HAL data. */
  76. VAL_HANDLE_T vHandle; /* /< for MMSYS power on/off */
  77. VAL_MEMORY_T rHandleMem; /* /< Save handle memory information to be used in release. */
  78. VAL_BOOL_T bFirstDecoded; /* / < already pass first video data to codec */
  79. VAL_BOOL_T bHeaderPassed; /* / < already pass video header to codec */
  80. VAL_BOOL_T bFlushAll;
  81. VAL_BOOL_T bNewMemory; /* / allocate buffer for first DOU */
  82. VAL_MEMORY_T HeaderBuf;
  83. VAL_MEMORY_T HeaderBufwithFrame;
  84. VAL_HANDLE_T hCodec;
  85. DRIVER_HANDLER_T hDrv;
  86. VIDEO_WRAP_HANDLE_T hWrapper;
  87. VAL_UINT32_T CustomSetting;
  88. VCODEC_BUFFER_T rVideoBitBuf;
  89. VCODEC_DEC_INPUT_YUV_INFO_T rVideoFrameBuf;
  90. VCODEC_MEMORY_TYPE_T rVideoDecMemType;
  91. VAL_UINT32_T YUVBuffer[MAX_BUFFER_SIZE];
  92. VAL_UINT32_T nYUVBufferIndex;
  93. VAL_UINT32_T nDrvStatus;
  94. VDEC_DRV_BUF_STATUS_T pFrameBufArray[MAX_BUFFER_SIZE];
  95. VDEC_DRV_FRAMEBUF_T *DispFrameBuf, *FreeFrameBuf;
  96. VCODEC_OPEN_SETTING_T codecOpenSetting;
  97. VCODEC_DEC_INPUT_T rInputUnit;
  98. VIDEO_DECODER_INPUT_NC_T rVideoDecInputNC;
  99. VCODEC_DEC_OUTPUT_PARAM_T *rVideoDecOutputParam;
  100. VCODEC_DEC_PRIVATE_OUTPUT_T rVideoDecOutput;
  101. VCODEC_DEC_OUTPUT_BUFFER_PARAM_T rVideoDecYUVBufferParameter;
  102. VCODEC_DEC_INPUT_BUFFER_PARAM_T rBitStreamParam;
  103. /* for seek and thumbnail mode optimization */
  104. VAL_BOOL_T bFirstDecodeForThumbnail;
  105. VAL_BOOL_T bThumbnailModeOK;
  106. VDEC_DRV_SET_DECODE_MODE_T rSetDecodeMode;
  107. /* for no VOS header when MPEG4 */
  108. VAL_UINT16_T nDefWidth;
  109. VAL_UINT16_T nDefHeight;
  110. VDEC_DRV_VIDEO_FORMAT_T CodecFormat;
  111. VAL_VOID_T *prExtraData; /* /< Driver private data pointer. */
  112. VAL_MEMORY_T rExtraDataMem; /* /< Save extra data memory information to be used in release. */
  113. VCODEC_DEC_PRIVATE_OUTPUT_EXTRA_T prExtraDecOutput;
  114. #ifdef DumpInput__
  115. FILE *pf_out;
  116. VAL_MEM_ADDR_T rDumpBase;
  117. #endif
  118. /* Morris Yang 20111101 [ */
  119. VAL_UINT32_T nOmxTids;
  120. /* ] */
  121. #if 1 /* defined(MT6572) //VCODEC_MULTI_THREAD */
  122. /* Jackal Chen [ */
  123. VAL_VOID_T *pDrvModule; /* /< used for dlopen and dlclose */
  124. /* ] */
  125. #endif
  126. VAL_BOOL_T fgValInitFlag; /* /< hValHandle is available or not */
  127. } VDEC_HANDLE_T;
  128. /*=============================================================================
  129. * Function Declaration
  130. *===========================================================================*/
  131. #ifdef __cplusplus
  132. }
  133. #endif
  134. #endif /* VDEC_DRV_IF_DEP_H */