/* * Copyright (C) 2009 The Android Open Source Project * Modified for use by h264bsd standalone library * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *//*------------------------------------------------------------------------------ Table of contents 1. Include headers 2. Module defines 3. Data types 4. Function prototypes------------------------------------------------------------------------------*/#ifndef H264SWDEC_SEQ_PARAM_SET_H#define H264SWDEC_SEQ_PARAM_SET_H/*------------------------------------------------------------------------------ 1. Include headers------------------------------------------------------------------------------*/#include "basetype.h"#include "h264bsd_stream.h"#include "h264bsd_vui.h"/*------------------------------------------------------------------------------ 2. Module defines------------------------------------------------------------------------------*//*------------------------------------------------------------------------------ 3. Data types------------------------------------------------------------------------------*//* structure to store sequence parameter set information decoded from the * stream */typedef struct{ u32 profileIdc; u32 levelIdc; u32 seqParameterSetId; u32 maxFrameNum; u32 picOrderCntType; u32 maxPicOrderCntLsb; u32 deltaPicOrderAlwaysZeroFlag; i32 offsetForNonRefPic; i32 offsetForTopToBottomField; u32 numRefFramesInPicOrderCntCycle; i32 *offsetForRefFrame; u32 numRefFrames; u32 gapsInFrameNumValueAllowedFlag; u32 picWidthInMbs; u32 picHeightInMbs; u32 frameCroppingFlag; u32 frameCropLeftOffset; u32 frameCropRightOffset; u32 frameCropTopOffset; u32 frameCropBottomOffset; u32 vuiParametersPresentFlag; vuiParameters_t *vuiParameters; u32 maxDpbSize;} seqParamSet_t;/*------------------------------------------------------------------------------ 4. Function prototypes------------------------------------------------------------------------------*/u32 h264bsdDecodeSeqParamSet(strmData_t *pStrmData, seqParamSet_t *pSeqParamSet);u32 h264bsdCompareSeqParamSets(seqParamSet_t *pSps1, seqParamSet_t *pSps2);#endif /* #ifdef H264SWDEC_SEQ_PARAM_SET_H */
/*
* Copyright (C) 2009 The Android Open Source Project
* Modified for use by h264bsd standalone library
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*------------------------------------------------------------------------------
Table of contents
1. Include headers
2. Module defines
3. Data types
4. Function prototypes
------------------------------------------------------------------------------*/
#ifndef H264SWDEC_SEQ_PARAM_SET_H
#define H264SWDEC_SEQ_PARAM_SET_H
/*------------------------------------------------------------------------------
1. Include headers
------------------------------------------------------------------------------*/
#include "basetype.h"
#include "h264bsd_stream.h"
#include "h264bsd_vui.h"
/*------------------------------------------------------------------------------
2. Module defines
------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------
3. Data types
------------------------------------------------------------------------------*/
/* structure to store sequence parameter set information decoded from the
* stream */
typedef struct
{
u32 profileIdc;
u32 levelIdc;
u32 seqParameterSetId;
u32 maxFrameNum;
u32 picOrderCntType;
u32 maxPicOrderCntLsb;
u32 deltaPicOrderAlwaysZeroFlag;
i32 offsetForNonRefPic;
i32 offsetForTopToBottomField;
u32 numRefFramesInPicOrderCntCycle;
i32 *offsetForRefFrame;
u32 numRefFrames;
u32 gapsInFrameNumValueAllowedFlag;
u32 picWidthInMbs;
u32 picHeightInMbs;
u32 frameCroppingFlag;
u32 frameCropLeftOffset;
u32 frameCropRightOffset;
u32 frameCropTopOffset;
u32 frameCropBottomOffset;
u32 vuiParametersPresentFlag;
vuiParameters_t *vuiParameters;
u32 maxDpbSize;
} seqParamSet_t;
/*------------------------------------------------------------------------------
4. Function prototypes
------------------------------------------------------------------------------*/
u32 h264bsdDecodeSeqParamSet(strmData_t *pStrmData,
seqParamSet_t *pSeqParamSet);
u32 h264bsdCompareSeqParamSets(seqParamSet_t *pSps1, seqParamSet_t *pSps2);
#endif /* #ifdef H264SWDEC_SEQ_PARAM_SET_H */