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