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_PIC_PARAM_SET_H
29 #define H264SWDEC_PIC_PARAM_SET_H
30 
31 /*------------------------------------------------------------------------------
32     1. Include headers
33 ------------------------------------------------------------------------------*/
34 
35 #include "basetype.h"
36 #include "h264bsd_stream.h"
37 
38 /*------------------------------------------------------------------------------
39     2. Module defines
40 ------------------------------------------------------------------------------*/
41 
42 /*------------------------------------------------------------------------------
43     3. Data types
44 ------------------------------------------------------------------------------*/
45 
46 /* data structure to store PPS information decoded from the stream */
47 typedef struct
48 {
49     u32 picParameterSetId;
50     u32 seqParameterSetId;
51     u32 picOrderPresentFlag;
52     u32 numSliceGroups;
53     u32 sliceGroupMapType;
54     u32 *runLength;
55     u32 *topLeft;
56     u32 *bottomRight;
57     u32 sliceGroupChangeDirectionFlag;
58     u32 sliceGroupChangeRate;
59     u32 picSizeInMapUnits;
60     u32 *sliceGroupId;
61     u32 numRefIdxL0Active;
62     u32 picInitQp;
63     i32 chromaQpIndexOffset;
64     u32 deblockingFilterControlPresentFlag;
65     u32 constrainedIntraPredFlag;
66     u32 redundantPicCntPresentFlag;
67 } picParamSet_t;
68 
69 /*------------------------------------------------------------------------------
70     4. Function prototypes
71 ------------------------------------------------------------------------------*/
72 
73 u32 h264bsdDecodePicParamSet(strmData_t *pStrmData,
74     picParamSet_t *pPicParamSet);
75 
76 #endif /* #ifdef H264SWDEC_PIC_PARAM_SET_H */
77 
78