1 /*
2 * Copyright (c) 2017-2021, Intel Corporation
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the
9 * Software is furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included
12 * in all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
18 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20 * OTHER DEALINGS IN THE SOFTWARE.
21 */
22 
23 //! \file     mhw_vdbox_vdenc_generic.h
24 //! \brief    MHW interface for constructing Vdenc commands for the Vdbox engine
25 //! \details  Defines the interfaces for constructing MHW Vdbox Vdenc commands across all platforms
26 //!
27 
28 #ifndef _MHW_VDBOX_VDENC_GENERIC_H_
29 #define _MHW_VDBOX_VDENC_GENERIC_H_
30 
31 #include "mhw_vdbox_vdenc_interface.h"
32 
33 //!  MHW Vdbox Vdenc generic interface
34 /*!
35 This class defines the shared Vdenc command construction functions across all platforms as templates
36 */
37 template <class TVdencCmds>
38 class MhwVdboxVdencInterfaceGeneric : public MhwVdboxVdencInterface
39 {
40 protected:
41     //!
42     //! \brief    Constructor
43     //!
MhwVdboxVdencInterfaceGeneric(PMOS_INTERFACE osInterface)44     MhwVdboxVdencInterfaceGeneric(PMOS_INTERFACE osInterface) : MhwVdboxVdencInterface(osInterface)
45     {
46         MHW_FUNCTION_ENTER;
47     }
48 
49     //!
50     //! \brief   Destructor
51     //!
~MhwVdboxVdencInterfaceGeneric()52     virtual ~MhwVdboxVdencInterfaceGeneric() {}
53 
AddVdPipelineFlushCmd(PMOS_COMMAND_BUFFER cmdBuffer,PMHW_VDBOX_VD_PIPE_FLUSH_PARAMS params)54     MOS_STATUS AddVdPipelineFlushCmd(
55         PMOS_COMMAND_BUFFER              cmdBuffer,
56         PMHW_VDBOX_VD_PIPE_FLUSH_PARAMS  params)
57     {
58         MHW_FUNCTION_ENTER;
59 
60         MHW_MI_CHK_NULL(cmdBuffer);
61         MHW_MI_CHK_NULL(params);
62 
63         typename TVdencCmds::VD_PIPELINE_FLUSH_CMD cmd;
64 
65         cmd.DW1.HevcPipelineDone           = params->Flags.bWaitDoneHEVC;
66         cmd.DW1.VdencPipelineDone          = params->Flags.bWaitDoneVDENC;
67         cmd.DW1.MflPipelineDone            = params->Flags.bWaitDoneMFL;
68         cmd.DW1.MfxPipelineDone            = params->Flags.bWaitDoneMFX;
69         cmd.DW1.VdCommandMessageParserDone = params->Flags.bWaitDoneVDCmdMsgParser;
70         cmd.DW1.HevcPipelineCommandFlush   = params->Flags.bFlushHEVC;
71         cmd.DW1.VdencPipelineCommandFlush  = params->Flags.bFlushVDENC;
72         cmd.DW1.MflPipelineCommandFlush    = params->Flags.bFlushMFL;
73         cmd.DW1.MfxPipelineCommandFlush    = params->Flags.bFlushMFX;
74 
75         MHW_MI_CHK_STATUS(Mos_AddCommand(cmdBuffer, &cmd, sizeof(cmd)));
76 
77         return MOS_STATUS_SUCCESS;
78     }
79 
AddVdencConstQPStateCmd(PMOS_COMMAND_BUFFER cmdBuffer,PMHW_VDBOX_VDENC_CQPT_STATE_PARAMS params)80     MOS_STATUS AddVdencConstQPStateCmd(
81         PMOS_COMMAND_BUFFER                  cmdBuffer,
82         PMHW_VDBOX_VDENC_CQPT_STATE_PARAMS   params)
83     {
84         MHW_FUNCTION_ENTER;
85 
86         MHW_MI_CHK_NULL(cmdBuffer);
87         MHW_MI_CHK_NULL(params);
88 
89         typename TVdencCmds::VDENC_CONST_QPT_STATE_CMD cmd;
90 
91         cmd.DW1_10.QpLambdaArrayIndex[0]  = 1;
92         cmd.DW1_10.QpLambdaArrayIndex[1]  = 1;
93         cmd.DW1_10.QpLambdaArrayIndex[2]  = 1;
94         cmd.DW1_10.QpLambdaArrayIndex[3]  = 1;
95         cmd.DW1_10.QpLambdaArrayIndex[4]  = 1;
96         cmd.DW1_10.QpLambdaArrayIndex[5]  = 1;
97         cmd.DW1_10.QpLambdaArrayIndex[6]  = 1;
98         cmd.DW1_10.QpLambdaArrayIndex[7]  = 2;
99         cmd.DW1_10.QpLambdaArrayIndex[8]  = 2;
100         cmd.DW1_10.QpLambdaArrayIndex[9]  = 2;
101         cmd.DW1_10.QpLambdaArrayIndex[10] = 2;
102         cmd.DW1_10.QpLambdaArrayIndex[11] = 3;
103         cmd.DW1_10.QpLambdaArrayIndex[12] = 3;
104         cmd.DW1_10.QpLambdaArrayIndex[13] = 3;
105         cmd.DW1_10.QpLambdaArrayIndex[14] = 4;
106         cmd.DW1_10.QpLambdaArrayIndex[15] = 4;
107         cmd.DW1_10.QpLambdaArrayIndex[16] = 5;
108         cmd.DW1_10.QpLambdaArrayIndex[17] = 5;
109         cmd.DW1_10.QpLambdaArrayIndex[18] = 6;
110         cmd.DW1_10.QpLambdaArrayIndex[19] = 7;
111         cmd.DW1_10.QpLambdaArrayIndex[20] = 7;
112         cmd.DW1_10.QpLambdaArrayIndex[21] = 8;
113         cmd.DW1_10.QpLambdaArrayIndex[22] = 9;
114         cmd.DW1_10.QpLambdaArrayIndex[23] = 10;
115         cmd.DW1_10.QpLambdaArrayIndex[24] = 12;
116         cmd.DW1_10.QpLambdaArrayIndex[25] = 13;
117         cmd.DW1_10.QpLambdaArrayIndex[26] = 15;
118         cmd.DW1_10.QpLambdaArrayIndex[27] = 17;
119         cmd.DW1_10.QpLambdaArrayIndex[28] = 19;
120         cmd.DW1_10.QpLambdaArrayIndex[29] = 21;
121         cmd.DW1_10.QpLambdaArrayIndex[30] = 23;
122         cmd.DW1_10.QpLambdaArrayIndex[31] = 26;
123         cmd.DW1_10.QpLambdaArrayIndex[32] = 30;
124         cmd.DW1_10.QpLambdaArrayIndex[33] = 33;
125         cmd.DW1_10.QpLambdaArrayIndex[34] = 37;
126         cmd.DW1_10.QpLambdaArrayIndex[35] = 42;
127         cmd.DW1_10.QpLambdaArrayIndex[36] = 47;
128         cmd.DW1_10.QpLambdaArrayIndex[37] = 53;
129         cmd.DW1_10.QpLambdaArrayIndex[38] = 59;
130         cmd.DW1_10.QpLambdaArrayIndex[39] = 66;
131         cmd.DW11.QpLambdaArrayIndex40 = 74;
132         cmd.DW11.QpLambdaArrayIndex41 = 83;
133 
134         if (params->wPictureCodingType == P_TYPE)
135         {
136             cmd.DW12_24.SkipThresholdArrayIndex[0]  = 0;
137             cmd.DW12_24.SkipThresholdArrayIndex[1]  = 0;
138             cmd.DW12_24.SkipThresholdArrayIndex[2]  = 0;
139             cmd.DW12_24.SkipThresholdArrayIndex[3]  = 0;
140             cmd.DW12_24.SkipThresholdArrayIndex[4]  = 2;
141             cmd.DW12_24.SkipThresholdArrayIndex[5]  = 4;
142             cmd.DW12_24.SkipThresholdArrayIndex[6]  = 7;
143             cmd.DW12_24.SkipThresholdArrayIndex[7]  = 11;
144             cmd.DW12_24.SkipThresholdArrayIndex[8]  = 17;
145             cmd.DW12_24.SkipThresholdArrayIndex[9]  = 25;
146             cmd.DW12_24.SkipThresholdArrayIndex[10] = 35;
147             cmd.DW12_24.SkipThresholdArrayIndex[11] = 50;
148             cmd.DW12_24.SkipThresholdArrayIndex[12] = 68;
149             cmd.DW12_24.SkipThresholdArrayIndex[13] = 91;
150             cmd.DW12_24.SkipThresholdArrayIndex[14] = 119;
151             cmd.DW12_24.SkipThresholdArrayIndex[15] = 153;
152             cmd.DW12_24.SkipThresholdArrayIndex[16] = 194;
153             cmd.DW12_24.SkipThresholdArrayIndex[17] = 241;
154             cmd.DW12_24.SkipThresholdArrayIndex[18] = 296;
155             cmd.DW12_24.SkipThresholdArrayIndex[19] = 360;
156             cmd.DW12_24.SkipThresholdArrayIndex[20] = 432;
157             cmd.DW12_24.SkipThresholdArrayIndex[21] = 513;
158             cmd.DW12_24.SkipThresholdArrayIndex[22] = 604;
159             cmd.DW12_24.SkipThresholdArrayIndex[23] = 706;
160             cmd.DW12_24.SkipThresholdArrayIndex[24] = 819;
161             cmd.DW12_24.SkipThresholdArrayIndex[25] = 944;
162 
163             if (!params->bBlockBasedSkip)
164             {
165                 for (uint8_t i = 0; i < 26; i++)
166                 {
167                     cmd.DW12_24.SkipThresholdArrayIndex[i] *= 3;
168                 }
169             }
170             else if (!params->bTransform8x8Flag)
171             {
172                 for (uint8_t i = 0; i < 26; i++)
173                 {
174                     cmd.DW12_24.SkipThresholdArrayIndex[i] /= 2;
175                 }
176             }
177 
178             if (params->bFTQEnabled)
179             {
180                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[0]  = 0x02;
181                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[1]  = 0x02;
182                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[2]  = 0x03;
183                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[3]  = 0x04;
184                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[4]  = 0x04;
185                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[5]  = 0x05;
186                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[6]  = 0x07;
187                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[7]  = 0x09;
188                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[8]  = 0x0b;
189                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[9]  = 0x0e;
190                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[10] = 0x12;
191                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[11] = 0x14;
192                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[12] = 0x18;
193                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[13] = 0x1d;
194                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[14] = 0x20;
195                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[15] = 0x25;
196                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[16] = 0x2a;
197                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[17] = 0x34;
198                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[18] = 0x39;
199                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[19] = 0x3f;
200                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[20] = 0x4e;
201                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[21] = 0x51;
202                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[22] = 0x5b;
203                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[23] = 0x63;
204                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[24] = 0x6f;
205                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[25] = 0x7f;
206 
207                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[0]  = 0x03;
208                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[1]  = 0x04;
209                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[2]  = 0x05;
210                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[3]  = 0x05;
211                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[4]  = 0x07;
212                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[5]  = 0x09;
213                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[6]  = 0x0b;
214                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[7]  = 0x0e;
215                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[8]  = 0x12;
216                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[9]  = 0x17;
217                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[10] = 0x1c;
218                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[11] = 0x21;
219                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[12] = 0x27;
220                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[13] = 0x2c;
221                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[14] = 0x33;
222                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[15] = 0x3b;
223                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[16] = 0x41;
224                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[17] = 0x51;
225                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[18] = 0x5c;
226                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[19] = 0x1a;
227                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[20] = 0x1e;
228                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[21] = 0x21;
229                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[22] = 0x22;
230                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[23] = 0x26;
231                 cmd.DW46.SicForwardTransformCoeffThresholdMatrix135ArrayIndex24       = 0x2c;
232                 cmd.DW46.SicForwardTransformCoeffThresholdMatrix135ArrayIndex25       = 0x30;
233 
234                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[0]  = 0x02;
235                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[1]  = 0x02;
236                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[2]  = 0x03;
237                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[3]  = 0x04;
238                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[4]  = 0x04;
239                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[5]  = 0x05;
240                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[6]  = 0x07;
241                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[7]  = 0x09;
242                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[8]  = 0x0b;
243                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[9]  = 0x0e;
244                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[10] = 0x12;
245                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[11] = 0x14;
246                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[12] = 0x18;
247                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[13] = 0x1d;
248                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[14] = 0x20;
249                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[15] = 0x25;
250                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[16] = 0x2a;
251                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[17] = 0x34;
252                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[18] = 0x39;
253                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[19] = 0x0f;
254                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[20] = 0x13;
255                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[21] = 0x14;
256                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[22] = 0x16;
257                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[23] = 0x18;
258                 cmd.DW53.SicForwardTransformCoeffThresholdMatrix2ArrayIndex24      = 0x1b;
259                 cmd.DW53.SicForwardTransformCoeffThresholdMatrix2ArrayIndex25      = 0x1f;
260 
261                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[0]  = 0x04;
262                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[1]  = 0x05;
263                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[2]  = 0x06;
264                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[3]  = 0x09;
265                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[4]  = 0x0b;
266                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[5]  = 0x0d;
267                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[6]  = 0x12;
268                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[7]  = 0x16;
269                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[8]  = 0x1b;
270                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[9]  = 0x23;
271                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[10] = 0x2c;
272                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[11] = 0x33;
273                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[12] = 0x3d;
274                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[13] = 0x45;
275                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[14] = 0x4f;
276                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[15] = 0x5b;
277                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[16] = 0x66;
278                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[17] = 0x7f;
279                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[18] = 0x8e;
280                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[19] = 0x2a;
281                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[20] = 0x2f;
282                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[21] = 0x32;
283                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[22] = 0x37;
284                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[23] = 0x3c;
285                 cmd.DW60.SicForwardTransformCoeffThresholdMatrix46ArrayIndex24       = 0x45;
286                 cmd.DW60.SicForwardTransformCoeffThresholdMatrix46ArrayIndex25       = 0x4c;
287             }
288         }
289 
290         MHW_MI_CHK_STATUS(Mos_AddCommand(cmdBuffer, &cmd, sizeof(cmd)));
291 
292         return MOS_STATUS_SUCCESS;
293     }
294 
295 public:
GetVdencAvcImgStateSize()296     inline uint32_t GetVdencAvcImgStateSize()
297     {
298         return TVdencCmds::VDENC_IMG_STATE_CMD::byteSize;
299     }
300 
GetVdencAvcCostStateSize()301     uint32_t GetVdencAvcCostStateSize()
302     {
303         return 0;
304     }
305 
GetVdencAvcSlcStateSize()306     inline uint32_t GetVdencAvcSlcStateSize()
307     {
308         return 0;
309     }
310 };
311 
312 #endif