vc1hwd_picture.h 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  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. -- Description : Container for picture and field information
  17. --
  18. --------------------------------------------------------------------------------
  19. --
  20. -- Version control information, please leave untouched.
  21. --
  22. -- $RCSfile: vc1hwd_picture.h,v $
  23. -- $Revision: 1.5 $
  24. -- $Date: 2007/12/11 13:07:50 $
  25. --
  26. ------------------------------------------------------------------------------*/
  27. #ifndef VC1HWD_PICTURE_H
  28. #define VC1HWD_PICTURE_H
  29. /*------------------------------------------------------------------------------
  30. Include headers
  31. ------------------------------------------------------------------------------*/
  32. #include "basetype.h"
  33. #include "dwl.h"
  34. #include "vc1decapi.h"
  35. /*------------------------------------------------------------------------------
  36. Module defines
  37. ------------------------------------------------------------------------------*/
  38. typedef enum
  39. {
  40. NONE = 0,
  41. PIPELINED = 1,
  42. PARALLEL = 2,
  43. STAND_ALONE = 3
  44. } decPpStatus_e;
  45. /*------------------------------------------------------------------------------
  46. Data types
  47. ------------------------------------------------------------------------------*/
  48. /* Part of picture buffer descriptor. This informaton is unique
  49. * for each field of the frame. */
  50. typedef struct field
  51. {
  52. intCompField_e intCompF;
  53. i32 iScaleA; /* A used for TOP */
  54. i32 iShiftA;
  55. i32 iScaleB; /* B used for BOTTOM */
  56. i32 iShiftB;
  57. picType_e type;
  58. u32 picId;
  59. decPpStatus_e decPpStat; /* pipeline / parallel ... */
  60. VC1DecRet returnValue;
  61. } field_t;
  62. /* Picture buffer descriptor. Used for anchor frames
  63. * and work buffer and output buffer. */
  64. typedef struct picture
  65. {
  66. DWLLinearMem_t data;
  67. fcm_e fcm; /* frame coding mode */
  68. u16x codedWidth; /* Coded height in pixels */
  69. u16x codedHeight; /* Coded widht in pixels */
  70. u16x keyFrame; /* for field pictures both must be Intra */
  71. u16x rangeRedFrm; /* Main profile range reduction information */
  72. u32 rangeMapYFlag; /* Advanced profile range mapping parameters */
  73. u32 rangeMapY;
  74. u32 rangeMapUvFlag;
  75. u32 rangeMapUv;
  76. u32 isFirstField; /* Is current field first or second */
  77. u32 isTopFieldFirst; /* Which field is first */
  78. u32 rff; /* repeat first field */
  79. u32 rptfrm; /* repeat frame count */
  80. field_t field[2]; /* 0 = first; 1 = second */
  81. } picture_t;
  82. /*------------------------------------------------------------------------------
  83. Function prototypes
  84. ------------------------------------------------------------------------------*/
  85. #endif /* #ifndef VC1SWD_PICTURE_H */