1 /*
2 * Copyright (c) 2017-2022, 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(m_osInterface);
61         MHW_MI_CHK_NULL(cmdBuffer);
62         MHW_MI_CHK_NULL(params);
63 
64         typename TVdencCmds::VD_PIPELINE_FLUSH_CMD cmd;
65 
66         cmd.DW1.HevcPipelineDone           = params->Flags.bWaitDoneHEVC;
67         cmd.DW1.VdencPipelineDone          = params->Flags.bWaitDoneVDENC;
68         cmd.DW1.MflPipelineDone            = params->Flags.bWaitDoneMFL;
69         cmd.DW1.MfxPipelineDone            = params->Flags.bWaitDoneMFX;
70         cmd.DW1.VdCommandMessageParserDone = params->Flags.bWaitDoneVDCmdMsgParser;
71         cmd.DW1.HevcPipelineCommandFlush   = params->Flags.bFlushHEVC;
72         cmd.DW1.VdencPipelineCommandFlush  = params->Flags.bFlushVDENC;
73         cmd.DW1.MflPipelineCommandFlush    = params->Flags.bFlushMFL;
74         cmd.DW1.MfxPipelineCommandFlush    = params->Flags.bFlushMFX;
75 
76         MHW_MI_CHK_STATUS(m_osInterface->pfnAddCommand(cmdBuffer, &cmd, sizeof(cmd)));
77 
78         return MOS_STATUS_SUCCESS;
79     }
80 
AddVdencConstQPStateCmd(PMOS_COMMAND_BUFFER cmdBuffer,PMHW_VDBOX_VDENC_CQPT_STATE_PARAMS params)81     MOS_STATUS AddVdencConstQPStateCmd(
82         PMOS_COMMAND_BUFFER                  cmdBuffer,
83         PMHW_VDBOX_VDENC_CQPT_STATE_PARAMS   params)
84     {
85         MHW_FUNCTION_ENTER;
86 
87         MHW_MI_CHK_NULL(m_osInterface);
88         MHW_MI_CHK_NULL(cmdBuffer);
89         MHW_MI_CHK_NULL(params);
90 
91         typename TVdencCmds::VDENC_CONST_QPT_STATE_CMD cmd;
92 
93         cmd.DW1_10.QpLambdaArrayIndex[0]  = 1;
94         cmd.DW1_10.QpLambdaArrayIndex[1]  = 1;
95         cmd.DW1_10.QpLambdaArrayIndex[2]  = 1;
96         cmd.DW1_10.QpLambdaArrayIndex[3]  = 1;
97         cmd.DW1_10.QpLambdaArrayIndex[4]  = 1;
98         cmd.DW1_10.QpLambdaArrayIndex[5]  = 1;
99         cmd.DW1_10.QpLambdaArrayIndex[6]  = 1;
100         cmd.DW1_10.QpLambdaArrayIndex[7]  = 2;
101         cmd.DW1_10.QpLambdaArrayIndex[8]  = 2;
102         cmd.DW1_10.QpLambdaArrayIndex[9]  = 2;
103         cmd.DW1_10.QpLambdaArrayIndex[10] = 2;
104         cmd.DW1_10.QpLambdaArrayIndex[11] = 3;
105         cmd.DW1_10.QpLambdaArrayIndex[12] = 3;
106         cmd.DW1_10.QpLambdaArrayIndex[13] = 3;
107         cmd.DW1_10.QpLambdaArrayIndex[14] = 4;
108         cmd.DW1_10.QpLambdaArrayIndex[15] = 4;
109         cmd.DW1_10.QpLambdaArrayIndex[16] = 5;
110         cmd.DW1_10.QpLambdaArrayIndex[17] = 5;
111         cmd.DW1_10.QpLambdaArrayIndex[18] = 6;
112         cmd.DW1_10.QpLambdaArrayIndex[19] = 7;
113         cmd.DW1_10.QpLambdaArrayIndex[20] = 7;
114         cmd.DW1_10.QpLambdaArrayIndex[21] = 8;
115         cmd.DW1_10.QpLambdaArrayIndex[22] = 9;
116         cmd.DW1_10.QpLambdaArrayIndex[23] = 10;
117         cmd.DW1_10.QpLambdaArrayIndex[24] = 12;
118         cmd.DW1_10.QpLambdaArrayIndex[25] = 13;
119         cmd.DW1_10.QpLambdaArrayIndex[26] = 15;
120         cmd.DW1_10.QpLambdaArrayIndex[27] = 17;
121         cmd.DW1_10.QpLambdaArrayIndex[28] = 19;
122         cmd.DW1_10.QpLambdaArrayIndex[29] = 21;
123         cmd.DW1_10.QpLambdaArrayIndex[30] = 23;
124         cmd.DW1_10.QpLambdaArrayIndex[31] = 26;
125         cmd.DW1_10.QpLambdaArrayIndex[32] = 30;
126         cmd.DW1_10.QpLambdaArrayIndex[33] = 33;
127         cmd.DW1_10.QpLambdaArrayIndex[34] = 37;
128         cmd.DW1_10.QpLambdaArrayIndex[35] = 42;
129         cmd.DW1_10.QpLambdaArrayIndex[36] = 47;
130         cmd.DW1_10.QpLambdaArrayIndex[37] = 53;
131         cmd.DW1_10.QpLambdaArrayIndex[38] = 59;
132         cmd.DW1_10.QpLambdaArrayIndex[39] = 66;
133         cmd.DW11.QpLambdaArrayIndex40 = 74;
134         cmd.DW11.QpLambdaArrayIndex41 = 83;
135 
136         if (params->wPictureCodingType == P_TYPE)
137         {
138             cmd.DW12_24.SkipThresholdArrayIndex[0]  = 0;
139             cmd.DW12_24.SkipThresholdArrayIndex[1]  = 0;
140             cmd.DW12_24.SkipThresholdArrayIndex[2]  = 0;
141             cmd.DW12_24.SkipThresholdArrayIndex[3]  = 0;
142             cmd.DW12_24.SkipThresholdArrayIndex[4]  = 2;
143             cmd.DW12_24.SkipThresholdArrayIndex[5]  = 4;
144             cmd.DW12_24.SkipThresholdArrayIndex[6]  = 7;
145             cmd.DW12_24.SkipThresholdArrayIndex[7]  = 11;
146             cmd.DW12_24.SkipThresholdArrayIndex[8]  = 17;
147             cmd.DW12_24.SkipThresholdArrayIndex[9]  = 25;
148             cmd.DW12_24.SkipThresholdArrayIndex[10] = 35;
149             cmd.DW12_24.SkipThresholdArrayIndex[11] = 50;
150             cmd.DW12_24.SkipThresholdArrayIndex[12] = 68;
151             cmd.DW12_24.SkipThresholdArrayIndex[13] = 91;
152             cmd.DW12_24.SkipThresholdArrayIndex[14] = 119;
153             cmd.DW12_24.SkipThresholdArrayIndex[15] = 153;
154             cmd.DW12_24.SkipThresholdArrayIndex[16] = 194;
155             cmd.DW12_24.SkipThresholdArrayIndex[17] = 241;
156             cmd.DW12_24.SkipThresholdArrayIndex[18] = 296;
157             cmd.DW12_24.SkipThresholdArrayIndex[19] = 360;
158             cmd.DW12_24.SkipThresholdArrayIndex[20] = 432;
159             cmd.DW12_24.SkipThresholdArrayIndex[21] = 513;
160             cmd.DW12_24.SkipThresholdArrayIndex[22] = 604;
161             cmd.DW12_24.SkipThresholdArrayIndex[23] = 706;
162             cmd.DW12_24.SkipThresholdArrayIndex[24] = 819;
163             cmd.DW12_24.SkipThresholdArrayIndex[25] = 944;
164 
165             if (!params->bBlockBasedSkip)
166             {
167                 for (uint8_t i = 0; i < 26; i++)
168                 {
169                     cmd.DW12_24.SkipThresholdArrayIndex[i] *= 3;
170                 }
171             }
172             else if (!params->bTransform8x8Flag)
173             {
174                 for (uint8_t i = 0; i < 26; i++)
175                 {
176                     cmd.DW12_24.SkipThresholdArrayIndex[i] /= 2;
177                 }
178             }
179 
180             if (params->bFTQEnabled)
181             {
182                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[0]  = 0x02;
183                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[1]  = 0x02;
184                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[2]  = 0x03;
185                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[3]  = 0x04;
186                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[4]  = 0x04;
187                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[5]  = 0x05;
188                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[6]  = 0x07;
189                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[7]  = 0x09;
190                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[8]  = 0x0b;
191                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[9]  = 0x0e;
192                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[10] = 0x12;
193                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[11] = 0x14;
194                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[12] = 0x18;
195                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[13] = 0x1d;
196                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[14] = 0x20;
197                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[15] = 0x25;
198                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[16] = 0x2a;
199                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[17] = 0x34;
200                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[18] = 0x39;
201                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[19] = 0x3f;
202                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[20] = 0x4e;
203                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[21] = 0x51;
204                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[22] = 0x5b;
205                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[23] = 0x63;
206                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[24] = 0x6f;
207                 cmd.DW26_38.SicForwardTransformCoeffThresholdMatrix0ArrayIndex[25] = 0x7f;
208 
209                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[0]  = 0x03;
210                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[1]  = 0x04;
211                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[2]  = 0x05;
212                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[3]  = 0x05;
213                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[4]  = 0x07;
214                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[5]  = 0x09;
215                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[6]  = 0x0b;
216                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[7]  = 0x0e;
217                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[8]  = 0x12;
218                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[9]  = 0x17;
219                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[10] = 0x1c;
220                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[11] = 0x21;
221                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[12] = 0x27;
222                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[13] = 0x2c;
223                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[14] = 0x33;
224                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[15] = 0x3b;
225                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[16] = 0x41;
226                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[17] = 0x51;
227                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[18] = 0x5c;
228                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[19] = 0x1a;
229                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[20] = 0x1e;
230                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[21] = 0x21;
231                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[22] = 0x22;
232                 cmd.DW40_45.SicForwardTransformCoeffThresholdMatrix135ArrayIndexN[23] = 0x26;
233                 cmd.DW46.SicForwardTransformCoeffThresholdMatrix135ArrayIndex24       = 0x2c;
234                 cmd.DW46.SicForwardTransformCoeffThresholdMatrix135ArrayIndex25       = 0x30;
235 
236                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[0]  = 0x02;
237                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[1]  = 0x02;
238                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[2]  = 0x03;
239                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[3]  = 0x04;
240                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[4]  = 0x04;
241                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[5]  = 0x05;
242                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[6]  = 0x07;
243                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[7]  = 0x09;
244                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[8]  = 0x0b;
245                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[9]  = 0x0e;
246                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[10] = 0x12;
247                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[11] = 0x14;
248                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[12] = 0x18;
249                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[13] = 0x1d;
250                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[14] = 0x20;
251                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[15] = 0x25;
252                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[16] = 0x2a;
253                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[17] = 0x34;
254                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[18] = 0x39;
255                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[19] = 0x0f;
256                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[20] = 0x13;
257                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[21] = 0x14;
258                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[22] = 0x16;
259                 cmd.DW47_52.SicForwardTransformCoeffThresholdMatrix2ArrayIndex[23] = 0x18;
260                 cmd.DW53.SicForwardTransformCoeffThresholdMatrix2ArrayIndex24      = 0x1b;
261                 cmd.DW53.SicForwardTransformCoeffThresholdMatrix2ArrayIndex25      = 0x1f;
262 
263                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[0]  = 0x04;
264                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[1]  = 0x05;
265                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[2]  = 0x06;
266                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[3]  = 0x09;
267                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[4]  = 0x0b;
268                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[5]  = 0x0d;
269                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[6]  = 0x12;
270                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[7]  = 0x16;
271                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[8]  = 0x1b;
272                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[9]  = 0x23;
273                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[10] = 0x2c;
274                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[11] = 0x33;
275                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[12] = 0x3d;
276                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[13] = 0x45;
277                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[14] = 0x4f;
278                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[15] = 0x5b;
279                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[16] = 0x66;
280                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[17] = 0x7f;
281                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[18] = 0x8e;
282                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[19] = 0x2a;
283                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[20] = 0x2f;
284                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[21] = 0x32;
285                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[22] = 0x37;
286                 cmd.DW54_59.SicForwardTransformCoeffThresholdMatrix46ArrayIndexN[23] = 0x3c;
287                 cmd.DW60.SicForwardTransformCoeffThresholdMatrix46ArrayIndex24       = 0x45;
288                 cmd.DW60.SicForwardTransformCoeffThresholdMatrix46ArrayIndex25       = 0x4c;
289             }
290         }
291 
292         MHW_MI_CHK_STATUS(m_osInterface->pfnAddCommand(cmdBuffer, &cmd, sizeof(cmd)));
293 
294         return MOS_STATUS_SUCCESS;
295     }
296 
297 public:
GetVdencAvcImgStateSize()298     inline uint32_t GetVdencAvcImgStateSize()
299     {
300         return TVdencCmds::VDENC_IMG_STATE_CMD::byteSize;
301     }
302 
GetVdencCmd3Size()303     inline uint32_t GetVdencCmd3Size()
304     {
305         return 0;
306     }
307 
GetVdencAvcCostStateSize()308     inline uint32_t GetVdencAvcCostStateSize()
309     {
310         return 0;
311     }
312 
GetVdencAvcSlcStateSize()313     inline uint32_t GetVdencAvcSlcStateSize()
314     {
315         return 0;
316     }
317 };
318 
319 #endif