h264hwd_seq_param_set.h 4.0 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 : Decode seq parameter set information from the stream
  17. --
  18. --------------------------------------------------------------------------------
  19. --
  20. -- Version control information, please leave untouched.
  21. --
  22. -- $RCSfile: h264hwd_seq_param_set.h,v $
  23. -- $Date: 2008/07/31 08:51:30 $
  24. -- $Revision: 1.2 $
  25. --
  26. ------------------------------------------------------------------------------*/
  27. /*------------------------------------------------------------------------------
  28. Table of contents
  29. 1. Include headers
  30. 2. Module defines
  31. 3. Data types
  32. 4. Function prototypes
  33. ------------------------------------------------------------------------------*/
  34. #ifndef H264HWD_SEQ_PARAM_SET_H
  35. #define H264HWD_SEQ_PARAM_SET_H
  36. /*------------------------------------------------------------------------------
  37. 1. Include headers
  38. ------------------------------------------------------------------------------*/
  39. #include "basetype.h"
  40. #include "h264hwd_stream.h"
  41. #include "h264hwd_vui.h"
  42. /*------------------------------------------------------------------------------
  43. 2. Module defines
  44. ------------------------------------------------------------------------------*/
  45. /*------------------------------------------------------------------------------
  46. 3. Data types
  47. ------------------------------------------------------------------------------*/
  48. /* structure to store sequence parameter set information decoded from the
  49. * stream */
  50. typedef struct
  51. {
  52. u32 profileIdc;
  53. u32 levelIdc;
  54. u8 constrained_set0_flag;
  55. u8 constrained_set1_flag;
  56. u8 constrained_set2_flag;
  57. u8 constrained_set3_flag;
  58. u32 seqParameterSetId;
  59. u32 maxFrameNum;
  60. u32 picOrderCntType;
  61. u32 maxPicOrderCntLsb;
  62. u32 deltaPicOrderAlwaysZeroFlag;
  63. i32 offsetForNonRefPic;
  64. i32 offsetForTopToBottomField;
  65. u32 numRefFramesInPicOrderCntCycle;
  66. i32 *offsetForRefFrame;
  67. u32 numRefFrames;
  68. u32 gapsInFrameNumValueAllowedFlag;
  69. u32 picWidthInMbs;
  70. u32 picHeightInMbs;
  71. u32 frameCroppingFlag;
  72. u32 frameCropLeftOffset;
  73. u32 frameCropRightOffset;
  74. u32 frameCropTopOffset;
  75. u32 frameCropBottomOffset;
  76. u32 vuiParametersPresentFlag;
  77. vuiParameters_t *vuiParameters;
  78. u32 maxDpbSize;
  79. u32 frameMbsOnlyFlag;
  80. u32 mbAdaptiveFrameFieldFlag;
  81. u32 direct8x8InferenceFlag;
  82. u32 chromaFormatIdc;
  83. u32 monoChrome;
  84. u32 scalingMatrixPresentFlag;
  85. u32 scalingListPresent[8];
  86. u32 useDefaultScaling[8];
  87. u8 scalingList[8][64];
  88. } seqParamSet_t;
  89. /*------------------------------------------------------------------------------
  90. 4. Function prototypes
  91. ------------------------------------------------------------------------------*/
  92. u32 h264bsdDecodeSeqParamSet(strmData_t *pStrmData,
  93. seqParamSet_t *pSeqParamSet);
  94. u32 h264bsdCompareSeqParamSets(seqParamSet_t *pSps1, seqParamSet_t *pSps2);
  95. #endif /* #ifdef H264HWD_SEQ_PARAM_SET_H */