decppif.h 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  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 : interface between pp and decoder
  17. --
  18. --------------------------------------------------------------------------------
  19. --
  20. -- Version control information, please leave untouched.
  21. --
  22. -- $RCSfile: decppif.h,v $
  23. -- $Date: 2010/12/02 10:53:50 $
  24. -- $Revision: 1.16 $
  25. --
  26. ------------------------------------------------------------------------------*/
  27. #ifndef _PPDEC_H_
  28. #define _PPDEC_H_
  29. #include "basetype.h"
  30. /* PP input types (picStruct) */
  31. /* Frame or top field */
  32. #define DECPP_PIC_FRAME_OR_TOP_FIELD 0U
  33. /* Bottom field only */
  34. #define DECPP_PIC_BOT_FIELD 1U
  35. /* top and bottom is separate locations */
  36. #define DECPP_PIC_TOP_AND_BOT_FIELD 2U
  37. /* top and bottom interleaved */
  38. #define DECPP_PIC_TOP_AND_BOT_FIELD_FRAME 3U
  39. /* interleaved top only */
  40. #define DECPP_PIC_TOP_FIELD_FRAME 4U
  41. /* interleaved bottom only */
  42. #define DECPP_PIC_BOT_FIELD_FRAME 5U
  43. /* Control interface between decoder and pp */
  44. /* decoder writes, pp read-only */
  45. typedef struct DecPpInterface_
  46. {
  47. enum
  48. {
  49. DECPP_IDLE = 0,
  50. DECPP_RUNNING, /* PP was started */
  51. DECPP_PIC_READY, /* PP has finished a picture */
  52. DECPP_PIC_NOT_FINISHED /* PP still processing a picture */
  53. } ppStatus; /* Decoder keeps track of what it asked the pp to do */
  54. enum
  55. {
  56. MULTIBUFFER_UNINIT = 0, /* buffering mode not yet decided */
  57. MULTIBUFFER_DISABLED, /* Single buffer legacy mode */
  58. MULTIBUFFER_SEMIMODE, /* enabled but full pipel cannot be used */
  59. MULTIBUFFER_FULLMODE /* enabled and full pipeline successful */
  60. } multiBufStat;
  61. u32 inputBusLuma;
  62. u32 inputBusChroma;
  63. u32 bottomBusLuma;
  64. u32 bottomBusChroma;
  65. u32 picStruct; /* structure of input picture */
  66. u32 topField;
  67. u32 inwidth;
  68. u32 inheight;
  69. u32 usePipeline;
  70. u32 littleEndian;
  71. u32 wordSwap;
  72. u32 croppedW;
  73. u32 croppedH;
  74. u32 bufferIndex; /* multibuffer, where to put PP output */
  75. u32 displayIndex; /* multibuffer, next picture in display order */
  76. u32 prevAnchorDisplayIndex;
  77. /* VC-1 */
  78. u32 rangeRed;
  79. u32 rangeMapYEnable;
  80. u32 rangeMapYCoeff;
  81. u32 rangeMapCEnable;
  82. u32 rangeMapCCoeff;
  83. u32 tiledMode;
  84. } DecPpInterface;
  85. /* Decoder asks with this struct information about pp setup */
  86. /* pp writes, decoder read-only */
  87. typedef struct DecPpQuery_
  88. {
  89. /* Dec-to-PP direction */
  90. u32 tiledMode;
  91. /* PP-to-Dec direction */
  92. u32 pipelineAccepted; /* PP accepts pipeline */
  93. u32 deinterlace; /* Deinterlace feature used */
  94. u32 multiBuffer; /* multibuffer PP output enabled */
  95. u32 ppConfigChanged; /* PP config changed after previous output */
  96. } DecPpQuery;
  97. #endif