vc1hwd_headers.h 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  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 2007 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 : Interface for sequence level header decoding
  17. --
  18. --------------------------------------------------------------------------------
  19. --
  20. -- Version control information, please leave untouched.
  21. --
  22. -- $RCSfile: vc1hwd_headers.h,v $
  23. -- $Revision: 1.3 $
  24. -- $Date: 2007/12/04 14:44:18 $
  25. --
  26. ------------------------------------------------------------------------------*/
  27. #ifndef VC1HWD_HEADERS_H
  28. #define VC1HWD_HEADERS_H
  29. /*------------------------------------------------------------------------------
  30. Include headers
  31. ------------------------------------------------------------------------------*/
  32. #include "vc1hwd_util.h"
  33. #include "vc1hwd_stream.h"
  34. /*------------------------------------------------------------------------------
  35. Module defines
  36. ------------------------------------------------------------------------------*/
  37. /* enumerated sample aspect ratios, ASPECT_RATIO_M_N means M:N */
  38. enum
  39. {
  40. ASPECT_RATIO_UNSPECIFIED = 0,
  41. ASPECT_RATIO_1_1,
  42. ASPECT_RATIO_12_11,
  43. ASPECT_RATIO_10_11,
  44. ASPECT_RATIO_16_11,
  45. ASPECT_RATIO_40_33,
  46. ASPECT_RATIO_24_11,
  47. ASPECT_RATIO_20_11,
  48. ASPECT_RATIO_32_11,
  49. ASPECT_RATIO_80_33,
  50. ASPECT_RATIO_18_11,
  51. ASPECT_RATIO_15_11,
  52. ASPECT_RATIO_64_33,
  53. ASPECT_RATIO_160_99,
  54. ASPECT_RATIO_EXTENDED = 15
  55. };
  56. typedef enum {
  57. SC_END_OF_SEQ = 0x0000010A,
  58. SC_SLICE = 0x0000010B,
  59. SC_FIELD = 0x0000010C,
  60. SC_FRAME = 0x0000010D,
  61. SC_ENTRY_POINT = 0x0000010E,
  62. SC_SEQ = 0x0000010F,
  63. SC_SLICE_UD = 0x0000011B,
  64. SC_FIELD_UD = 0x0000011C,
  65. SC_FRAME_UD = 0x0000011D,
  66. SC_ENTRY_POINT_UD = 0x0000011E,
  67. SC_SEQ_UD = 0x0000011F,
  68. SC_NOT_FOUND = 0xFFFE
  69. } startCode_e;
  70. typedef enum {
  71. VC1_SIMPLE,
  72. VC1_MAIN,
  73. VC1_ADVANCED
  74. } vc1Profile_e;
  75. /*------------------------------------------------------------------------------
  76. Data types
  77. ------------------------------------------------------------------------------*/
  78. /*------------------------------------------------------------------------------
  79. Function prototypes
  80. ------------------------------------------------------------------------------*/
  81. struct swStrmStorage;
  82. u32 vc1hwdDecodeSequenceLayer( struct swStrmStorage *pStorage,
  83. strmData_t *pStrmData );
  84. u32 vc1hwdDecodeEntryPointLayer( struct swStrmStorage *pStorage,
  85. strmData_t *pStrmData );
  86. u32 vc1hwdGetStartCode( strmData_t *pStrmData );
  87. u32 vc1hwdGetUserData( struct swStrmStorage *pStorage,
  88. strmData_t *pStrmData );
  89. #endif /* #ifndef VC1HWD_HEADERS_H */