1 /* 2 * Copyright (C) 2009 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 /*------------------------------------------------------------------------------ 18 19 Table of contents 20 21 1. Include headers 22 2. Module defines 23 3. Data types 24 4. Function prototypes 25 26 ------------------------------------------------------------------------------*/ 27 28 #ifndef H264SWDEC_SEQ_PARAM_SET_H 29 #define H264SWDEC_SEQ_PARAM_SET_H 30 31 /*------------------------------------------------------------------------------ 32 1. Include headers 33 ------------------------------------------------------------------------------*/ 34 35 #include "basetype.h" 36 #include "h264bsd_stream.h" 37 #include "h264bsd_vui.h" 38 39 /*------------------------------------------------------------------------------ 40 2. Module defines 41 ------------------------------------------------------------------------------*/ 42 43 /*------------------------------------------------------------------------------ 44 3. Data types 45 ------------------------------------------------------------------------------*/ 46 47 /* structure to store sequence parameter set information decoded from the 48 * stream */ 49 typedef struct 50 { 51 u32 profileIdc; 52 u32 levelIdc; 53 u32 seqParameterSetId; 54 u32 maxFrameNum; 55 u32 picOrderCntType; 56 u32 maxPicOrderCntLsb; 57 u32 deltaPicOrderAlwaysZeroFlag; 58 i32 offsetForNonRefPic; 59 i32 offsetForTopToBottomField; 60 u32 numRefFramesInPicOrderCntCycle; 61 i32 *offsetForRefFrame; 62 u32 numRefFrames; 63 u32 gapsInFrameNumValueAllowedFlag; 64 u32 picWidthInMbs; 65 u32 picHeightInMbs; 66 u32 frameCroppingFlag; 67 u32 frameCropLeftOffset; 68 u32 frameCropRightOffset; 69 u32 frameCropTopOffset; 70 u32 frameCropBottomOffset; 71 u32 vuiParametersPresentFlag; 72 vuiParameters_t *vuiParameters; 73 u32 maxDpbSize; 74 } seqParamSet_t; 75 76 /*------------------------------------------------------------------------------ 77 4. Function prototypes 78 ------------------------------------------------------------------------------*/ 79 80 u32 h264bsdDecodeSeqParamSet(strmData_t *pStrmData, 81 seqParamSet_t *pSeqParamSet); 82 83 u32 h264bsdCompareSeqParamSets(seqParamSet_t *pSps1, seqParamSet_t *pSps2); 84 85 #endif /* #ifdef H264SWDEC_SEQ_PARAM_SET_H */ 86 87