xref: /OK3568_Linux_fs/external/mpp/mpp/common/avsd_syntax.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /*
2  * Copyright 2015 Rockchip Electronics Co. LTD
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 #ifndef __AVSD_SYNTAX_H__
18 #define __AVSD_SYNTAX_H__
19 
20 #include "rk_type.h"
21 
22 
23 //!< cavs decoder picture parameters structure
24 typedef struct _PicParams_Avsd {
25     //!< sequence header
26     RK_U32 profileId;
27     RK_U32 levelId;
28     RK_U32 progressiveSequence;
29     RK_U32 horizontalSize;
30     RK_U32 verticalSize;
31     RK_U32 chromaFormat;
32     RK_U32 aspectRatio;
33     RK_U32 frameRateCode;
34     RK_U32 bitRateValue;
35     RK_U32 lowDelay;
36     RK_U32 bbvBufferSize;
37     //!< sequence display extension header
38     RK_U32 videoFormat;
39     RK_U32 sampleRange;
40     RK_U32 colorDescription;
41     RK_U32 colorPrimaries;
42     RK_U32 transferCharacteristics;
43     RK_U32 matrixCoefficients;
44     RK_U32 displayHorizontalSize;
45     RK_U32 displayVerticalSize;
46 
47     //!< picture header
48     RK_U32 picCodingType;
49     RK_U32 bbvDelay;
50     RK_U16 bbvDelayExtension;
51     RK_U8  timeCodeFlag;
52     RK_U32 timeCode;
53 
54     RK_U32 pictureDistance;
55     RK_U32 progressiveFrame;
56     RK_U32 pictureStructure;
57     RK_U32 advancedPredModeDisable;
58     RK_U32 topFieldFirst;
59     RK_U32 repeatFirstField;
60     RK_U32 fixedPictureQp;
61     RK_U32 pictureQp;
62     RK_U32 pictureReferenceFlag;
63     RK_U32 skipModeFlag;
64     RK_U32 loopFilterDisable;
65     RK_S32 alphaOffset;
66     RK_S32 betaOffset;
67 
68     //!< weighting quant, AVS Plus stuff
69     RK_U32 weightingQuantFlag;
70     RK_U32 chromaQuantParamDisable;
71     RK_S32 chromaQuantParamDeltaCb;
72     RK_S32 chromaQuantParamDeltaCr;
73     RK_U32 weightingQuantParamIndex;
74     RK_U32 weightingQuantModel;
75     RK_S32 weightingQuantParamDelta1[6];
76     RK_S32 weightingQuantParamDelta2[6];
77     RK_U32 weightingQuantParam[6]; // wqP[m][6]
78 
79     //!< advance entropy coding
80     RK_U32 aecEnable;
81 
82     //!< picture enhance
83     RK_U32 noForwardReferenceFlag;
84     RK_U32 pbFieldEnhancedFlag;
85 
86 } PicParams_Avsd, *LP_PicParams_Avsd;
87 
88 
89 
90 typedef struct avsd_syntax_t {
91     PicParams_Avsd     pp;
92     RK_U8             *bitstream;
93     RK_U32             bitstream_offset;
94     RK_U32             bitstream_size;
95 } AvsdSyntax_t;
96 
97 
98 
99 #endif /*__AVSD_SYNTAX_H__*/
100 
101