vp8hwd_container.h 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. /*------------------------------------------------------------------------------
  2. -- --
  3. -- This software is confidential and proprietary and may be used --
  4. -- only as expressly authorized by a licensing agreement from --
  5. -- --
  6. -- Hantro Products Oy. --
  7. -- --
  8. -- (C) COPYRIGHT 2006 HANTRO PRODUCTS OY --
  9. -- ALL RIGHTS RESERVED --
  10. -- --
  11. -- The entire notice above must be reproduced --
  12. -- on all copies and should not be removed. --
  13. -- --
  14. --------------------------------------------------------------------------------
  15. --
  16. -- Abstract : Definition of decContainer_t data structure
  17. --
  18. --------------------------------------------------------------------------------
  19. --
  20. -- Version control information, please leave untouched.
  21. --
  22. -- $RCSfile: vp8hwd_container.h,v $
  23. -- $Date: 2010/12/01 12:31:05 $
  24. -- $Revision: 1.9 $
  25. --
  26. ------------------------------------------------------------------------------*/
  27. #ifndef VP8HWD_CONTAINER_H
  28. #define VP8HWD_CONTAINER_H
  29. /*------------------------------------------------------------------------------
  30. 1. Include headers
  31. ------------------------------------------------------------------------------*/
  32. #include "basetype.h"
  33. #include "deccfg.h"
  34. #include "decppif.h"
  35. #include "dwl.h"
  36. #include "refbuffer.h"
  37. #include "vp8hwd_decoder.h"
  38. #include "vp8hwd_bool.h"
  39. #include "bqueue.h"
  40. /*------------------------------------------------------------------------------
  41. 2. Module defines
  42. ------------------------------------------------------------------------------*/
  43. /*------------------------------------------------------------------------------
  44. 3. Data types
  45. ------------------------------------------------------------------------------*/
  46. #define VP8DEC_UNINITIALIZED 0U
  47. #define VP8DEC_INITIALIZED 1U
  48. #define VP8DEC_NEW_HEADERS 3U
  49. #define VP8DEC_DECODING 4U
  50. #define VP8DEC_MIDDLE_OF_PIC 5U
  51. typedef struct
  52. {
  53. u32 *pPicBufferY;
  54. u32 picBufferBusAddrY;
  55. u32 *pPicBufferC;
  56. u32 picBufferBusAddrC;
  57. } userMem_t;
  58. /* asic interface */
  59. typedef struct DecAsicBuffers
  60. {
  61. u32 width, height;
  62. DWLLinearMem_t probTbl;
  63. DWLLinearMem_t segmentMap;
  64. DWLLinearMem_t *outBuffer;
  65. DWLLinearMem_t *prevOutBuffer;
  66. DWLLinearMem_t *refBuffer;
  67. DWLLinearMem_t *goldenBuffer;
  68. DWLLinearMem_t *alternateBuffer;
  69. DWLLinearMem_t pictures[16];
  70. /* Indexes for picture buffers in pictures[] array */
  71. u32 outBufferI;
  72. u32 refBufferI;
  73. u32 goldenBufferI;
  74. u32 alternateBufferI;
  75. u32 wholePicConcealed;
  76. u32 disableOutWriting;
  77. u32 segmentMapSize;
  78. u32 partition1Base;
  79. u32 partition1BitOffset;
  80. u32 partition2Base;
  81. i32 dcPred[2];
  82. i32 dcMatch[2];
  83. userMem_t userMem;
  84. } DecAsicBuffers_t;
  85. typedef struct VP8DecContainer
  86. {
  87. const void *checksum;
  88. u32 decMode;
  89. u32 decStat;
  90. u32 picNumber;
  91. u32 asicRunning;
  92. u32 width;
  93. u32 height;
  94. u32 vp8Regs[DEC_X170_REGISTERS];
  95. DecAsicBuffers_t asicBuff[1];
  96. const void *dwl; /* DWL instance */
  97. u32 refBufSupport;
  98. refBuffer_t refBufferCtrl;
  99. vp8Decoder_t decoder;
  100. vpBoolCoder_t bc;
  101. struct
  102. {
  103. const void *ppInstance;
  104. void (*PPDecStart) (const void *, const DecPpInterface *);
  105. void (*PPDecWaitEnd) (const void *);
  106. void (*PPConfigQuery) (const void *, DecPpQuery *);
  107. DecPpInterface decPpIf;
  108. DecPpQuery ppInfo;
  109. } pp;
  110. u32 pictureBroken;
  111. u32 intraFreeze;
  112. u32 outCount;
  113. u32 refToOut;
  114. u32 pendingPicToPp;
  115. bufferQueue_t bq;
  116. u32 numBuffers;
  117. u32 intraOnly;
  118. u32 userMem;
  119. u32 sliceHeight;
  120. u32 totDecodedRows;
  121. u32 outputRows;
  122. u32 tiledModeSupport;
  123. u32 tiledReferenceEnable;
  124. } VP8DecContainer_t;
  125. /*------------------------------------------------------------------------------
  126. 4. Function prototypes
  127. ------------------------------------------------------------------------------*/
  128. #endif /* #ifdef VP8HWD_CONTAINER_H */