xref: /rockchip-linux_mpp/mpp/common/avsd_syntax.h (revision 437bfbeb9567cca9cd9080e3f6954aa9d6a94f18)
1*437bfbebSnyanmisaka /*
2*437bfbebSnyanmisaka  * Copyright 2015 Rockchip Electronics Co. LTD
3*437bfbebSnyanmisaka  *
4*437bfbebSnyanmisaka  * Licensed under the Apache License, Version 2.0 (the "License");
5*437bfbebSnyanmisaka  * you may not use this file except in compliance with the License.
6*437bfbebSnyanmisaka  * You may obtain a copy of the License at
7*437bfbebSnyanmisaka  *
8*437bfbebSnyanmisaka  *      http://www.apache.org/licenses/LICENSE-2.0
9*437bfbebSnyanmisaka  *
10*437bfbebSnyanmisaka  * Unless required by applicable law or agreed to in writing, software
11*437bfbebSnyanmisaka  * distributed under the License is distributed on an "AS IS" BASIS,
12*437bfbebSnyanmisaka  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*437bfbebSnyanmisaka  * See the License for the specific language governing permissions and
14*437bfbebSnyanmisaka  * limitations under the License.
15*437bfbebSnyanmisaka  */
16*437bfbebSnyanmisaka 
17*437bfbebSnyanmisaka #ifndef __AVSD_SYNTAX_H__
18*437bfbebSnyanmisaka #define __AVSD_SYNTAX_H__
19*437bfbebSnyanmisaka 
20*437bfbebSnyanmisaka #include "rk_type.h"
21*437bfbebSnyanmisaka 
22*437bfbebSnyanmisaka 
23*437bfbebSnyanmisaka //!< cavs decoder picture parameters structure
24*437bfbebSnyanmisaka typedef struct _PicParams_Avsd {
25*437bfbebSnyanmisaka     //!< sequence header
26*437bfbebSnyanmisaka     RK_U32 profileId;
27*437bfbebSnyanmisaka     RK_U32 levelId;
28*437bfbebSnyanmisaka     RK_U32 progressiveSequence;
29*437bfbebSnyanmisaka     RK_U32 horizontalSize;
30*437bfbebSnyanmisaka     RK_U32 verticalSize;
31*437bfbebSnyanmisaka     RK_U32 chromaFormat;
32*437bfbebSnyanmisaka     RK_U32 aspectRatio;
33*437bfbebSnyanmisaka     RK_U32 frameRateCode;
34*437bfbebSnyanmisaka     RK_U32 bitRateValue;
35*437bfbebSnyanmisaka     RK_U32 lowDelay;
36*437bfbebSnyanmisaka     RK_U32 bbvBufferSize;
37*437bfbebSnyanmisaka     //!< sequence display extension header
38*437bfbebSnyanmisaka     RK_U32 videoFormat;
39*437bfbebSnyanmisaka     RK_U32 sampleRange;
40*437bfbebSnyanmisaka     RK_U32 colorDescription;
41*437bfbebSnyanmisaka     RK_U32 colorPrimaries;
42*437bfbebSnyanmisaka     RK_U32 transferCharacteristics;
43*437bfbebSnyanmisaka     RK_U32 matrixCoefficients;
44*437bfbebSnyanmisaka     RK_U32 displayHorizontalSize;
45*437bfbebSnyanmisaka     RK_U32 displayVerticalSize;
46*437bfbebSnyanmisaka 
47*437bfbebSnyanmisaka     //!< picture header
48*437bfbebSnyanmisaka     RK_U32 picCodingType;
49*437bfbebSnyanmisaka     RK_U32 bbvDelay;
50*437bfbebSnyanmisaka     RK_U16 bbvDelayExtension;
51*437bfbebSnyanmisaka     RK_U8  timeCodeFlag;
52*437bfbebSnyanmisaka     RK_U32 timeCode;
53*437bfbebSnyanmisaka 
54*437bfbebSnyanmisaka     RK_U32 pictureDistance;
55*437bfbebSnyanmisaka     RK_U32 progressiveFrame;
56*437bfbebSnyanmisaka     RK_U32 pictureStructure;
57*437bfbebSnyanmisaka     RK_U32 advancedPredModeDisable;
58*437bfbebSnyanmisaka     RK_U32 topFieldFirst;
59*437bfbebSnyanmisaka     RK_U32 repeatFirstField;
60*437bfbebSnyanmisaka     RK_U32 fixedPictureQp;
61*437bfbebSnyanmisaka     RK_U32 pictureQp;
62*437bfbebSnyanmisaka     RK_U32 pictureReferenceFlag;
63*437bfbebSnyanmisaka     RK_U32 skipModeFlag;
64*437bfbebSnyanmisaka     RK_U32 loopFilterDisable;
65*437bfbebSnyanmisaka     RK_S32 alphaOffset;
66*437bfbebSnyanmisaka     RK_S32 betaOffset;
67*437bfbebSnyanmisaka 
68*437bfbebSnyanmisaka     //!< weighting quant, AVS Plus stuff
69*437bfbebSnyanmisaka     RK_U32 weightingQuantFlag;
70*437bfbebSnyanmisaka     RK_U32 chromaQuantParamDisable;
71*437bfbebSnyanmisaka     RK_S32 chromaQuantParamDeltaCb;
72*437bfbebSnyanmisaka     RK_S32 chromaQuantParamDeltaCr;
73*437bfbebSnyanmisaka     RK_U32 weightingQuantParamIndex;
74*437bfbebSnyanmisaka     RK_U32 weightingQuantModel;
75*437bfbebSnyanmisaka     RK_S32 weightingQuantParamDelta1[6];
76*437bfbebSnyanmisaka     RK_S32 weightingQuantParamDelta2[6];
77*437bfbebSnyanmisaka     RK_U32 weightingQuantParam[6]; // wqP[m][6]
78*437bfbebSnyanmisaka 
79*437bfbebSnyanmisaka     //!< advance entropy coding
80*437bfbebSnyanmisaka     RK_U32 aecEnable;
81*437bfbebSnyanmisaka 
82*437bfbebSnyanmisaka     //!< picture enhance
83*437bfbebSnyanmisaka     RK_U32 noForwardReferenceFlag;
84*437bfbebSnyanmisaka     RK_U32 pbFieldEnhancedFlag;
85*437bfbebSnyanmisaka 
86*437bfbebSnyanmisaka } PicParams_Avsd, *LP_PicParams_Avsd;
87*437bfbebSnyanmisaka 
88*437bfbebSnyanmisaka 
89*437bfbebSnyanmisaka 
90*437bfbebSnyanmisaka typedef struct avsd_syntax_t {
91*437bfbebSnyanmisaka     PicParams_Avsd     pp;
92*437bfbebSnyanmisaka     RK_U8             *bitstream;
93*437bfbebSnyanmisaka     RK_U32             bitstream_offset;
94*437bfbebSnyanmisaka     RK_U32             bitstream_size;
95*437bfbebSnyanmisaka } AvsdSyntax_t;
96*437bfbebSnyanmisaka 
97*437bfbebSnyanmisaka 
98*437bfbebSnyanmisaka 
99*437bfbebSnyanmisaka #endif /*__AVSD_SYNTAX_H__*/
100*437bfbebSnyanmisaka 
101