vp6hwd_container.h 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  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: vp6hwd_container.h,v $
  23. -- $Date: 2010/02/25 12:30:24 $
  24. -- $Revision: 1.7 $
  25. --
  26. ------------------------------------------------------------------------------*/
  27. #ifndef VP6HWD_CONTAINER_H
  28. #define VP6HWD_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 "vp6dec.h"
  37. #include "refbuffer.h"
  38. #include "bqueue.h"
  39. /*------------------------------------------------------------------------------
  40. 2. Module defines
  41. ------------------------------------------------------------------------------*/
  42. /*------------------------------------------------------------------------------
  43. 3. Data types
  44. ------------------------------------------------------------------------------*/
  45. #define VP6DEC_UNINITIALIZED 0U
  46. #define VP6DEC_INITIALIZED 1U
  47. #define VP6DEC_BUFFER_EMPTY 2U
  48. #define VP6DEC_NEW_HEADERS 3U
  49. /* asic interface */
  50. typedef struct DecAsicBuffers
  51. {
  52. DWLLinearMem_t probTbl;
  53. DWLLinearMem_t *outBuffer;
  54. DWLLinearMem_t *prevOutBuffer;
  55. DWLLinearMem_t *refBuffer;
  56. DWLLinearMem_t *goldenBuffer;
  57. DWLLinearMem_t pictures[16];
  58. /* Indexes for picture buffers in pictures[] array */
  59. u32 outBufferI;
  60. u32 refBufferI;
  61. u32 goldenBufferI;
  62. u32 width;
  63. u32 height;
  64. u32 wholePicConcealed;
  65. u32 disableOutWriting;
  66. u32 partition1Base;
  67. u32 partition1BitOffset;
  68. u32 partition2Base;
  69. } DecAsicBuffers_t;
  70. typedef struct VP6DecContainer
  71. {
  72. const void *checksum;
  73. u32 decStat;
  74. u32 picNumber;
  75. u32 asicRunning;
  76. u32 width;
  77. u32 height;
  78. u32 vp6Regs[DEC_X170_REGISTERS];
  79. DecAsicBuffers_t asicBuff[1];
  80. const void *dwl; /* DWL instance */
  81. u32 refBufSupport;
  82. refBuffer_t refBufferCtrl;
  83. PB_INSTANCE pb; /* SW decoder instance */
  84. struct
  85. {
  86. const void *ppInstance;
  87. void (*PPDecStart) (const void *, const DecPpInterface *);
  88. void (*PPDecWaitEnd) (const void *);
  89. void (*PPConfigQuery) (const void *, DecPpQuery *);
  90. DecPpInterface decPpIf;
  91. DecPpQuery ppInfo;
  92. } pp;
  93. u32 pictureBroken;
  94. u32 intraFreeze;
  95. u32 refToOut;
  96. u32 outCount;
  97. u32 numBuffers;
  98. bufferQueue_t bq;
  99. } VP6DecContainer_t;
  100. /*------------------------------------------------------------------------------
  101. 4. Function prototypes
  102. ------------------------------------------------------------------------------*/
  103. #endif /* #ifdef VP6HWD_CONTAINER_H */