• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 #include <string>
16 #include "gtest/gtest.h"
17 #include "native_avcodec_videodecoder.h"
18 #include "native_averrors.h"
19 #include "videodec_sample.h"
20 #include "videodec_api11_sample.h"
21 #include "native_avcodec_base.h"
22 #include "avcodec_codec_name.h"
23 #include "native_avcapability.h"
24 
25 #define MAX_THREAD 16
26 
27 using namespace std;
28 using namespace OHOS;
29 using namespace OHOS::Media;
30 using namespace testing::ext;
31 
32 namespace OHOS {
33 namespace Media {
34 class HwdecFuncNdkTest : public testing::Test {
35 public:
36     static void SetUpTestCase();
37     static void TearDownTestCase();
38     void SetUp() override;
39     void TearDown() override;
40     void InputFunc();
41     void OutputFunc();
42     void Release();
43     int32_t Stop();
44 
45 protected:
46     const char *INP_DIR_720_30 = "/data/test/media/1280_720_30_10Mb.h264";
47     const char *INP_DIR_1080_30 = "/data/test/media/1920_1080_10_30Mb.h264";
48     const char *INP_DIR_1080_20 = "/data/test/media/1920_1080_20M_30.h265";
49     const char *inpDirVivid = "/data/test/media/hlg_vivid_4k.h265";
50     const char *INP_DIR_VVC_1080 = "/data/test/media/1920_1080_10bit.vvc";
51     const char *inpDirVvcResolution = "/data/test/media/resolution.vvc";
52     const char *inpDirVvcResolution8Bit = "/data/test/media/resolution_8bit.vvc";
53     const char *inpDirVvcResolution10Bit = "/data/test/media/resolution_10bit.vvc";
54     const char *inpDirVvcResolutionHdr10Bit = "/data/test/media/resolution_hdr_10bit.vvc";
55 };
56 } // namespace Media
57 } // namespace OHOS
58 
59 namespace {
60 static OH_AVCapability *cap = nullptr;
61 static OH_AVCapability *cap_hevc = nullptr;
62 static OH_AVCapability *cap_vvc = nullptr;
63 static string g_codecName = "";
64 static string g_codecNameHEVC = "";
65 static string g_codecNameVVC = "";
66 constexpr int32_t DEFAULT_WIDTH = 1920;
67 constexpr int32_t DEFAULT_HEIGHT = 1080;
68 constexpr int32_t MAX_NALU_LEN = 12000;
69 constexpr int32_t UHD_RESOLUTION[2] = {3840, 2160};
70 constexpr int32_t HD_RESOLUTION[2] = {1104, 622};
71 constexpr uint32_t CHANGE_AVC_FRAME = 1500;
72 constexpr uint32_t CHANGE_HEVC_FRAME = 3006;
73 constexpr uint32_t CHANGE_HEVC_TEN_FRAME = 1800;
74 constexpr uint32_t CHANGE_VVC_FRAME = 1524;
75 } // namespace
76 
SetUpTestCase()77 void HwdecFuncNdkTest::SetUpTestCase()
78 {
79     cap = OH_AVCodec_GetCapabilityByCategory(OH_AVCODEC_MIMETYPE_VIDEO_AVC, false, HARDWARE);
80     g_codecName = OH_AVCapability_GetName(cap);
81     cout << "codecname: " << g_codecName << endl;
82     cap_hevc = OH_AVCodec_GetCapabilityByCategory(OH_AVCODEC_MIMETYPE_VIDEO_HEVC, false, HARDWARE);
83     g_codecNameHEVC = OH_AVCapability_GetName(cap_hevc);
84     cout << "g_codecNameHEVC: " << g_codecNameHEVC << endl;
85     cap_vvc = OH_AVCodec_GetCapabilityByCategory(OH_AVCODEC_MIMETYPE_VIDEO_VVC, false, HARDWARE);
86     g_codecNameVVC = OH_AVCapability_GetName(cap_vvc);
87     cout << "g_codecNameVVC: " << g_codecNameVVC << endl;
88 }
TearDownTestCase()89 void HwdecFuncNdkTest::TearDownTestCase() {}
SetUp()90 void HwdecFuncNdkTest::SetUp() {}
TearDown()91 void HwdecFuncNdkTest::TearDown() {}
92 
93 namespace {
94 /**
95  * @tc.number    : VIDEO_HWDEC_FUNCTION_0200
96  * @tc.name      : create nonexist decoder
97  * @tc.desc      : function test
98  */
99 HWTEST_F(HwdecFuncNdkTest, VIDEO_HWDEC_FUNCTION_0200, TestSize.Level1)
100 {
101     OH_AVCodec *vdec_ = OH_VideoDecoder_CreateByName("OMX.h264.decode.111.222.333");
102     ASSERT_EQ(nullptr, vdec_);
103 }
104 
105 /**
106  * @tc.number    : VIDEO_HWDEC_FUNCTION_0300
107  * @tc.name      : test h264 asyn decode buffer, pixel foramt nv12
108  * @tc.desc      : function test
109  */
110 HWTEST_F(HwdecFuncNdkTest, VIDEO_HWDEC_FUNCTION_0300, TestSize.Level0)
111 {
112     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
113     vDecSample->INP_DIR = INP_DIR_1080_30;
114     vDecSample->DEFAULT_WIDTH = 1920;
115     vDecSample->DEFAULT_HEIGHT = 1080;
116     vDecSample->DEFAULT_FRAME_RATE = 30;
117     vDecSample->SF_OUTPUT = false;
118     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
119     vDecSample->WaitForEOS();
120     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
121 }
122 
123 /**
124  * @tc.number    : VIDEO_HWDEC_FUNCTION_0310
125  * @tc.name      : test h26 asyn decode buffer, pixel foramt nv21
126  * @tc.desc      : function test
127  */
128 HWTEST_F(HwdecFuncNdkTest, VIDEO_HWDEC_FUNCTION_0310, TestSize.Level0)
129 {
130     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
131     vDecSample->INP_DIR = INP_DIR_1080_30;
132     vDecSample->DEFAULT_WIDTH = 1920;
133     vDecSample->DEFAULT_HEIGHT = 1080;
134     vDecSample->DEFAULT_FRAME_RATE = 30;
135     vDecSample->defualtPixelFormat = AV_PIXEL_FORMAT_NV21;
136     vDecSample->SF_OUTPUT = false;
137     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
138     vDecSample->WaitForEOS();
139     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
140 }
141 
142 /**
143  * @tc.number    : VIDEO_HWDEC_FUNCTION_0320
144  * @tc.name      : test h265 decode buffer, pixel foramt nv12
145  * @tc.desc      : function test
146  */
147 HWTEST_F(HwdecFuncNdkTest, VIDEO_HWDEC_FUNCTION_0320, TestSize.Level0)
148 {
149     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
150     vDecSample->INP_DIR = INP_DIR_1080_30;
151     vDecSample->DEFAULT_WIDTH = 1920;
152     vDecSample->DEFAULT_HEIGHT = 1080;
153     vDecSample->DEFAULT_FRAME_RATE = 30;
154     vDecSample->SF_OUTPUT = false;
155     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecNameHEVC));
156     vDecSample->WaitForEOS();
157     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
158 }
159 
160 /**
161  * @tc.number    : VIDEO_HWDEC_FUNCTION_0330
162  * @tc.name      : test h265 decode buffer, pixel foramt nv21
163  * @tc.desc      : function test
164  */
165 HWTEST_F(HwdecFuncNdkTest, VIDEO_HWDEC_FUNCTION_0330, TestSize.Level0)
166 {
167     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
168     vDecSample->INP_DIR = INP_DIR_1080_30;
169     vDecSample->DEFAULT_WIDTH = 1920;
170     vDecSample->DEFAULT_HEIGHT = 1080;
171     vDecSample->DEFAULT_FRAME_RATE = 30;
172     vDecSample->defualtPixelFormat = AV_PIXEL_FORMAT_NV21;
173     vDecSample->SF_OUTPUT = false;
174     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecNameHEVC));
175     vDecSample->WaitForEOS();
176     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
177 }
178 
179 /**
180  * @tc.number    : VIDEO_HWDEC_FUNCTION_0400
181  * @tc.name      : test h264 asyn decode surface, pixel foramt nv12
182  * @tc.desc      : function test
183  */
184 HWTEST_F(HwdecFuncNdkTest, VIDEO_HWDEC_FUNCTION_0400, TestSize.Level0)
185 {
186     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
187     vDecSample->INP_DIR = INP_DIR_1080_30;
188     vDecSample->SF_OUTPUT = true;
189     vDecSample->DEFAULT_WIDTH = 1920;
190     vDecSample->DEFAULT_HEIGHT = 1080;
191     vDecSample->DEFAULT_FRAME_RATE = 30;
192     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec_Surface(g_codecName));
193     vDecSample->WaitForEOS();
194     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
195 }
196 
197 /**
198  * @tc.number    : VIDEO_HWDEC_FUNCTION_0410
199  * @tc.name      : test h264 asyn decode surface, pixel foramt nv21
200  * @tc.desc      : function test
201  */
202 HWTEST_F(HwdecFuncNdkTest, VIDEO_HWDEC_FUNCTION_0410, TestSize.Level0)
203 {
204     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
205     vDecSample->INP_DIR = INP_DIR_1080_30;
206     vDecSample->SF_OUTPUT = true;
207     vDecSample->DEFAULT_WIDTH = 1920;
208     vDecSample->DEFAULT_HEIGHT = 1080;
209     vDecSample->DEFAULT_FRAME_RATE = 30;
210     vDecSample->defualtPixelFormat = AV_PIXEL_FORMAT_NV21;
211     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec_Surface(g_codecName));
212     vDecSample->WaitForEOS();
213     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
214 }
215 
216 /**
217  * @tc.number    : VIDEO_HWDEC_FUNCTION_0420
218  * @tc.name      : test h265 asyn decode surface, pixel foramt nv12
219  * @tc.desc      : function test
220  */
221 HWTEST_F(HwdecFuncNdkTest, VIDEO_HWDEC_FUNCTION_0420, TestSize.Level0)
222 {
223     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
224     vDecSample->INP_DIR = INP_DIR_1080_30;
225     vDecSample->SF_OUTPUT = true;
226     vDecSample->DEFAULT_WIDTH = 1920;
227     vDecSample->DEFAULT_HEIGHT = 1080;
228     vDecSample->DEFAULT_FRAME_RATE = 30;
229     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec_Surface(g_codecNameHEVC));
230     vDecSample->WaitForEOS();
231     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
232 }
233 
234 /**
235  * @tc.number    : VIDEO_HWDEC_FUNCTION_0430
236  * @tc.name      : test h265 asyn decode surface, pixel foramt nv21
237  * @tc.desc      : function test
238  */
239 HWTEST_F(HwdecFuncNdkTest, VIDEO_HWDEC_FUNCTION_0430, TestSize.Level0)
240 {
241     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
242     vDecSample->INP_DIR = INP_DIR_1080_30;
243     vDecSample->SF_OUTPUT = true;
244     vDecSample->DEFAULT_WIDTH = 1920;
245     vDecSample->DEFAULT_HEIGHT = 1080;
246     vDecSample->DEFAULT_FRAME_RATE = 30;
247     vDecSample->defualtPixelFormat = AV_PIXEL_FORMAT_NV21;
248     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec_Surface(g_codecNameHEVC));
249     vDecSample->WaitForEOS();
250     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
251 }
252 
253 /**
254  * @tc.number    : VIDEO_HWDEC_FUNCTION_0700
255  * @tc.name      : test set EOS when last frame
256  * @tc.desc      : function test
257  */
258 HWTEST_F(HwdecFuncNdkTest, VIDEO_HWDEC_FUNCTION_0700, TestSize.Level1)
259 {
260     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
261     vDecSample->INP_DIR = INP_DIR_1080_30;
262     vDecSample->DEFAULT_WIDTH = 1920;
263     vDecSample->DEFAULT_HEIGHT = 1080;
264     vDecSample->DEFAULT_FRAME_RATE = 30;
265     vDecSample->SF_OUTPUT = false;
266     ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecName));
267     ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
268     ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
269     ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
270     vDecSample->WaitForEOS();
271     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
272 }
273 
274 /**
275  * @tc.number    : VIDEO_HWDEC_FUNCTION_0800
276  * @tc.name      : test set EOS before last frame then stop
277  * @tc.desc      : function test
278  */
279 HWTEST_F(HwdecFuncNdkTest, VIDEO_HWDEC_FUNCTION_0800, TestSize.Level1)
280 {
281     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
282     vDecSample->INP_DIR = INP_DIR_1080_30;
283     vDecSample->DEFAULT_WIDTH = 1920;
284     vDecSample->DEFAULT_HEIGHT = 1080;
285     vDecSample->DEFAULT_FRAME_RATE = 30;
286     vDecSample->SF_OUTPUT = false;
287     vDecSample->BEFORE_EOS_INPUT = true;
288     ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecName));
289     ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
290     ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
291     ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
292     vDecSample->WaitForEOS();
293     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
294 }
295 
296 /**
297  * @tc.number    : VIDEO_HWDEC_FUNCTION_0900
298  * @tc.name      : test set EOS before last frame then input frames
299  * @tc.desc      : function test
300  */
301 HWTEST_F(HwdecFuncNdkTest, VIDEO_HWDEC_FUNCTION_0900, TestSize.Level1)
302 {
303     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
304     vDecSample->INP_DIR = INP_DIR_1080_30;
305     vDecSample->DEFAULT_WIDTH = 1920;
306     vDecSample->DEFAULT_HEIGHT = 1080;
307     vDecSample->DEFAULT_FRAME_RATE = 30;
308     vDecSample->SF_OUTPUT = false;
309     vDecSample->BEFORE_EOS_INPUT_INPUT = true;
310     ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecName));
311     ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
312     ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
313     ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
314     vDecSample->WaitForEOS();
315     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
316 }
317 
318 /**
319  * @tc.number    : VIDEO_HWDEC_FUNCTION_1000
320  * @tc.name      : test reconfigure for new file with one decoder
321  * @tc.desc      : function test
322  */
323 HWTEST_F(HwdecFuncNdkTest, VIDEO_HWDEC_FUNCTION_1000, TestSize.Level1)
324 {
325     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
326     vDecSample->INP_DIR = INP_DIR_1080_30;
327     vDecSample->DEFAULT_WIDTH = 1920;
328     vDecSample->DEFAULT_HEIGHT = 1080;
329     vDecSample->DEFAULT_FRAME_RATE = 30;
330     vDecSample->SF_OUTPUT = false;
331     vDecSample->AFTER_EOS_DESTORY_CODEC = false;
332     ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecName));
333     ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
334     ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
335     ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
336     vDecSample->WaitForEOS();
337     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
338     ASSERT_EQ(AV_ERR_OK, vDecSample->Reset());
339     ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
340     ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
341     ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
342     vDecSample->WaitForEOS();
343     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
344 }
345 
346 /**
347  * @tc.number    : VIDEO_HWDEC_FUNCTION_1100
348  * @tc.name      : test reconfigure for new file with the recreated decoder
349  * @tc.desc      : function test
350  */
351 HWTEST_F(HwdecFuncNdkTest, VIDEO_HWDEC_FUNCTION_1100, TestSize.Level1)
352 {
353     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
354     vDecSample->INP_DIR = INP_DIR_1080_30;
355     vDecSample->DEFAULT_WIDTH = 1920;
356     vDecSample->DEFAULT_HEIGHT = 1080;
357     vDecSample->DEFAULT_FRAME_RATE = 30;
358     vDecSample->SF_OUTPUT = false;
359     vDecSample->AFTER_EOS_DESTORY_CODEC = false;
360     ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecName));
361     ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
362     ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
363     ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
364     vDecSample->WaitForEOS();
365     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
366     ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecName));
367     ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
368     ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
369     ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
370     vDecSample->WaitForEOS();
371     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
372 }
373 
374 /**
375  * @tc.number    : VIDEO_HWDEC_FUNCTION_1200
376  * @tc.name      : repeat start and stop 5 times before EOS
377  * @tc.desc      : function test
378  */
379 HWTEST_F(HwdecFuncNdkTest, VIDEO_HWDEC_FUNCTION_1200, TestSize.Level2)
380 {
381     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
382     vDecSample->INP_DIR = INP_DIR_1080_30;
383     vDecSample->DEFAULT_WIDTH = 1920;
384     vDecSample->DEFAULT_HEIGHT = 1080;
385     vDecSample->DEFAULT_FRAME_RATE = 30;
386     vDecSample->SF_OUTPUT = false;
387     vDecSample->REPEAT_START_STOP_BEFORE_EOS = 5;
388     ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecName));
389     ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
390     ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
391     ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
392     vDecSample->WaitForEOS();
393     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
394 }
395 
396 /**
397  * @tc.number    : VIDEO_HWDEC_FUNCTION_1300
398  * @tc.name      : repeat start and flush 5 times before EOS
399  * @tc.desc      : function test
400  */
401 HWTEST_F(HwdecFuncNdkTest, VIDEO_HWDEC_FUNCTION_1300, TestSize.Level2)
402 {
403     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
404     vDecSample->INP_DIR = INP_DIR_1080_30;
405     vDecSample->DEFAULT_WIDTH = 1920;
406     vDecSample->DEFAULT_HEIGHT = 1080;
407     vDecSample->DEFAULT_FRAME_RATE = 30;
408     vDecSample->SF_OUTPUT = false;
409     vDecSample->REPEAT_START_FLUSH_BEFORE_EOS = 5;
410     ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecName));
411     ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
412     ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
413     ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
414     vDecSample->WaitForEOS();
415     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
416 }
417 
418 /**
419  * @tc.number    : VIDEO_HWDEC_FUNCTION_1400
420  * @tc.name      : set larger width and height
421  * @tc.desc      : function test
422  */
423 HWTEST_F(HwdecFuncNdkTest, VIDEO_HWDEC_FUNCTION_1400, TestSize.Level2)
424 {
425     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
426     vDecSample->INP_DIR = INP_DIR_720_30;
427     vDecSample->DEFAULT_WIDTH = 1920;
428     vDecSample->DEFAULT_HEIGHT = 1080;
429     vDecSample->DEFAULT_FRAME_RATE = 30;
430     vDecSample->SF_OUTPUT = false;
431     ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecName));
432     ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
433     ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
434     ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
435     vDecSample->WaitForEOS();
436     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
437 }
438 
439 /**
440  * @tc.number    : VIDEO_HWDEC_FUNCTION_1600
441  * @tc.name      : 265 decode
442  * @tc.desc      : function test
443  */
444 HWTEST_F(HwdecFuncNdkTest, VIDEO_HWDEC_FUNCTION_1600, TestSize.Level2)
445 {
446     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
447     vDecSample->INP_DIR = "/data/test/media/1920_1080_20M_30.h265";
448     vDecSample->DEFAULT_WIDTH = 1920;
449     vDecSample->DEFAULT_HEIGHT = 1080;
450     vDecSample->DEFAULT_FRAME_RATE = 30;
451     vDecSample->SF_OUTPUT = false;
452     ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecNameHEVC));
453     ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
454     ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
455     ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
456     vDecSample->WaitForEOS();
457     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
458 }
459 
460 /**
461  * @tc.number    : VIDEO_HWDEC_FUNCTION_1700
462  * @tc.name      : resolution change
463  * @tc.desc      : function test
464  */
465 HWTEST_F(HwdecFuncNdkTest, VIDEO_HWDEC_FUNCTION_1700, TestSize.Level2)
466 {
467     if (g_codecName.find("hisi") != string::npos) {
468         auto vDecSample = make_shared<VDecAPI11Sample>();
469         vDecSample->INP_DIR = "/data/test/media/resolutionChange.h264";
470         vDecSample->DEFAULT_WIDTH = 1104;
471         vDecSample->DEFAULT_HEIGHT = 622;
472         vDecSample->DEFAULT_FRAME_RATE = 30;
473         vDecSample->SF_OUTPUT = false;
474         vDecSample->NocaleHash = true;
475         ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecName));
476         ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
477         ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
478         ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
479         vDecSample->WaitForEOS();
480         ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
481         ASSERT_EQ(CHANGE_AVC_FRAME, vDecSample->outFrameCount);
482     } else {
483         cout << "hardware encoder is rk,skip." << endl;
484     }
485 }
486 /**
487  * @tc.number    : SURF_CHANGE_FUNC_001
488  * @tc.name      : surf change in normal state
489  * @tc.desc      : function test
490  */
491 HWTEST_F(HwdecFuncNdkTest, SURF_CHANGE_FUNC_001, TestSize.Level0)
492 {
493     auto vDecSample = make_shared<VDecNdkSample>();
494     vDecSample->INP_DIR = INP_DIR_1080_30;
495     vDecSample->DEFAULT_WIDTH = DEFAULT_WIDTH;
496     vDecSample->DEFAULT_HEIGHT = DEFAULT_HEIGHT;
497     vDecSample->DEFAULT_FRAME_RATE = 30;
498     vDecSample->SF_OUTPUT = true;
499     vDecSample->autoSwitchSurface = true;
500     vDecSample->AFTER_EOS_DESTORY_CODEC = false;
501     vDecSample->sleepOnFPS = true;
502     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec_Surface(g_codecName));
503     vDecSample->WaitForEOS();
504     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
505     ASSERT_EQ(AV_ERR_OK, vDecSample->Reset());
506     ASSERT_EQ(AV_ERR_INVALID_STATE, vDecSample->SwitchSurface());
507     ASSERT_EQ(AV_ERR_OK, vDecSample->Release());
508 }
509 /**
510  * @tc.number    : SURF_CHANGE_FUNC_002
511  * @tc.name      : surf change in flushed state
512  * @tc.desc      : function test
513  */
514 HWTEST_F(HwdecFuncNdkTest, SURF_CHANGE_FUNC_002, TestSize.Level0)
515 {
516     auto vDecSample = make_shared<VDecNdkSample>();
517     vDecSample->INP_DIR = INP_DIR_1080_30;
518     vDecSample->DEFAULT_WIDTH = DEFAULT_WIDTH;
519     vDecSample->DEFAULT_HEIGHT = DEFAULT_HEIGHT;
520     vDecSample->DEFAULT_FRAME_RATE = 30;
521     vDecSample->SF_OUTPUT = true;
522     vDecSample->autoSwitchSurface = true;
523     vDecSample->sleepOnFPS = true;
524     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec_Surface(g_codecName));
525     ASSERT_EQ(AV_ERR_OK, vDecSample->Flush());
526     ASSERT_EQ(AV_ERR_OK, vDecSample->SwitchSurface());
527     ASSERT_EQ(AV_ERR_OK, vDecSample->Stop());
528     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
529 }
530 /**
531  * @tc.number    : SURF_CHANGE_FUNC_003
532  * @tc.name      : surf change in buffer mode
533  * @tc.desc      : function test
534  */
535 HWTEST_F(HwdecFuncNdkTest, SURF_CHANGE_FUNC_003, TestSize.Level0)
536 {
537     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
538     vDecSample->INP_DIR = INP_DIR_1080_30;
539     vDecSample->DEFAULT_WIDTH = 1920;
540     vDecSample->DEFAULT_HEIGHT = 1080;
541     vDecSample->DEFAULT_FRAME_RATE = 30;
542     vDecSample->SF_OUTPUT = false;
543     vDecSample->CreateSurface();
544     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
545     ASSERT_EQ(AV_ERR_OPERATE_NOT_PERMIT, vDecSample->SwitchSurface());
546     vDecSample->WaitForEOS();
547     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
548 }
549 /**
550  * @tc.number    : SURF_CHANGE_FUNC_004
551  * @tc.name      : repeat call setSurface fastly
552  * @tc.desc      : function test
553  */
554 HWTEST_F(HwdecFuncNdkTest, SURF_CHANGE_FUNC_004, TestSize.Level0)
555 {
556     auto vDecSample = make_shared<VDecNdkSample>();
557     vDecSample->INP_DIR = INP_DIR_1080_30;
558     vDecSample->DEFAULT_WIDTH = DEFAULT_WIDTH;
559     vDecSample->DEFAULT_HEIGHT = DEFAULT_HEIGHT;
560     vDecSample->DEFAULT_FRAME_RATE = 30;
561     vDecSample->SF_OUTPUT = true;
562     vDecSample->autoSwitchSurface = true;
563     vDecSample->sleepOnFPS = true;
564     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec_Surface(g_codecName));
565     ASSERT_EQ(AV_ERR_OK, vDecSample->RepeatCallSetSurface());
566     vDecSample->WaitForEOS();
567 }
568 
569 /**
570  * @tc.number    : OUTPUT_DECS_FUNC_001
571  * @tc.name      : get decode output descriptions h264
572  * @tc.desc      : function test
573  */
574 HWTEST_F(HwdecFuncNdkTest, OUTPUT_DECS_FUNC_001, TestSize.Level0)
575 {
576     if (g_codecName.find("hisi") != string::npos) {
577         auto vDecSample = make_shared<VDecNdkSample>();
578         vDecSample->INP_DIR = "/data/test/media/1920x1080.h264";
579         vDecSample->DEFAULT_WIDTH = DEFAULT_WIDTH;
580         vDecSample->DEFAULT_HEIGHT = DEFAULT_HEIGHT;
581         vDecSample->DEFAULT_FRAME_RATE = 30;
582         vDecSample->needCheckOutputDesc = true;
583         vDecSample->expectCropTop = 0;
584         vDecSample->expectCropBottom = DEFAULT_HEIGHT - 1;
585         vDecSample->expectCropLeft = 0;
586         vDecSample->expectCropRight = DEFAULT_WIDTH - 1;
587 
588         ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecName));
589         ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
590         ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
591         ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
592         vDecSample->WaitForEOS();
593         ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
594     } else {
595         cout << "hardware encoder is rk,skip." << endl;
596     }
597 }
598 /**
599  * @tc.number    : OUTPUT_DECS_FUNC_002
600  * @tc.name      : get decode output descriptions h265
601  * @tc.desc      : function test
602  */
603 HWTEST_F(HwdecFuncNdkTest, OUTPUT_DECS_FUNC_002, TestSize.Level0)
604 {
605     if (g_codecName.find("hisi") != string::npos) {
606         auto vDecSample = make_shared<VDecNdkSample>();
607         vDecSample->INP_DIR = "/data/test/media/1920x1080.h265";
608         vDecSample->DEFAULT_WIDTH = DEFAULT_WIDTH;
609         vDecSample->DEFAULT_HEIGHT = DEFAULT_HEIGHT;
610         vDecSample->DEFAULT_FRAME_RATE = 30;
611         vDecSample->needCheckOutputDesc = true;
612         vDecSample->expectCropTop = 0;
613         vDecSample->expectCropBottom = DEFAULT_HEIGHT - 1;
614         vDecSample->expectCropLeft = 0;
615         vDecSample->expectCropRight = DEFAULT_WIDTH - 1;
616 
617         ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecNameHEVC));
618         ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
619         ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
620         ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
621         vDecSample->WaitForEOS();
622         ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
623     } else {
624         cout << "hardware encoder is rk,skip." << endl;
625     }
626 }
627 /**
628  * @tc.number    : OUTPUT_DECS_FUNC_003
629  * @tc.name      : get decode output descriptions h264 ,4k
630  * @tc.desc      : function test
631  */
632 HWTEST_F(HwdecFuncNdkTest, OUTPUT_DECS_FUNC_003, TestSize.Level0)
633 {
634     if (g_codecName.find("hisi") != string::npos) {
635         auto vDecSample = make_shared<VDecNdkSample>();
636         vDecSample->INP_DIR = "/data/test/media/3840x2160.h264";
637         vDecSample->DEFAULT_WIDTH = UHD_RESOLUTION[0];
638         vDecSample->DEFAULT_HEIGHT = UHD_RESOLUTION[1];
639         vDecSample->DEFAULT_FRAME_RATE = 30;
640         vDecSample->needCheckOutputDesc = true;
641         vDecSample->expectCropTop = 0;
642         vDecSample->expectCropBottom = UHD_RESOLUTION[1] - 1;
643         vDecSample->expectCropLeft = 0;
644         vDecSample->expectCropRight = UHD_RESOLUTION[0] - 1;
645 
646         ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecName));
647         ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
648         ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
649         ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
650         vDecSample->WaitForEOS();
651         ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
652     } else {
653         cout << "hardware encoder is rk,skip." << endl;
654     }
655 }
656 /**
657  * @tc.number    : OUTPUT_DECS_FUNC_004
658  * @tc.name      : get decode output descriptions h265 ,4k
659  * @tc.desc      : function test
660  */
661 HWTEST_F(HwdecFuncNdkTest, OUTPUT_DECS_FUNC_004, TestSize.Level0)
662 {
663     if (g_codecName.find("hisi") != string::npos) {
664         auto vDecSample = make_shared<VDecNdkSample>();
665         vDecSample->INP_DIR = "/data/test/media/3840x2160.h265";
666         vDecSample->DEFAULT_WIDTH = UHD_RESOLUTION[0];
667         vDecSample->DEFAULT_HEIGHT = UHD_RESOLUTION[1];
668         vDecSample->DEFAULT_FRAME_RATE = 30;
669         vDecSample->needCheckOutputDesc = true;
670         vDecSample->expectCropTop = 0;
671         vDecSample->expectCropBottom = UHD_RESOLUTION[1] - 1;
672         vDecSample->expectCropLeft = 0;
673         vDecSample->expectCropRight = UHD_RESOLUTION[0] - 1;
674 
675         ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecNameHEVC));
676         ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
677         ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
678         ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
679         vDecSample->WaitForEOS();
680         ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
681     } else {
682         cout << "hardware encoder is rk,skip." << endl;
683     }
684 }
685 /**
686  * @tc.number    : OUTPUT_DECS_FUNC_005
687  * @tc.name      : get decode output descriptions h264 ,crop size
688  * @tc.desc      : function test
689  */
690 HWTEST_F(HwdecFuncNdkTest, OUTPUT_DECS_FUNC_005, TestSize.Level0)
691 {
692     if (g_codecName.find("hisi") != string::npos) {
693         auto vDecSample = make_shared<VDecNdkSample>();
694         vDecSample->INP_DIR = "/data/test/media/1104x622.h264";
695         vDecSample->DEFAULT_WIDTH = HD_RESOLUTION[0];
696         vDecSample->DEFAULT_HEIGHT = HD_RESOLUTION[1];
697         vDecSample->DEFAULT_FRAME_RATE = 30;
698         vDecSample->needCheckOutputDesc = true;
699         vDecSample->expectCropTop = 0;
700         vDecSample->expectCropBottom = HD_RESOLUTION[1] - 1;
701         vDecSample->expectCropLeft = 0;
702         vDecSample->expectCropRight = HD_RESOLUTION[0] - 1;
703 
704         ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecName));
705         ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
706         ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
707         ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
708         vDecSample->WaitForEOS();
709         ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
710     } else {
711         cout << "hardware encoder is rk,skip." << endl;
712     }
713 }
714 /**
715  * @tc.number    : OUTPUT_DECS_FUNC_006
716  * @tc.name      : get decode output descriptions h265 ,crop size
717  * @tc.desc      : function test
718  */
719 HWTEST_F(HwdecFuncNdkTest, OUTPUT_DECS_FUNC_006, TestSize.Level0)
720 {
721     if (g_codecName.find("hisi") != string::npos) {
722         auto vDecSample = make_shared<VDecNdkSample>();
723         vDecSample->INP_DIR = "/data/test/media/1104x622.h265";
724         vDecSample->DEFAULT_WIDTH = HD_RESOLUTION[0];
725         vDecSample->DEFAULT_HEIGHT = HD_RESOLUTION[1];
726         vDecSample->DEFAULT_FRAME_RATE = 30;
727         vDecSample->needCheckOutputDesc = true;
728         vDecSample->expectCropTop = 0;
729         vDecSample->expectCropBottom = HD_RESOLUTION[1] - 1;
730         vDecSample->expectCropLeft = 0;
731         vDecSample->expectCropRight = HD_RESOLUTION[0] - 1;
732 
733         ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecNameHEVC));
734         ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
735         ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
736         ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
737         vDecSample->WaitForEOS();
738         ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
739     } else {
740         cout << "hardware encoder is rk,skip." << endl;
741     }
742 }
743 /**
744  * @tc.number    : OUTPUT_DECS_FUNC_007
745  * @tc.name      : get decode output descriptions h265 ,resolution change
746  * @tc.desc      : function test
747  */
748 HWTEST_F(HwdecFuncNdkTest, OUTPUT_DECS_FUNC_007, TestSize.Level0)
749 {
750     if (g_codecName.find("hisi") != string::npos) {
751         auto vDecSample = make_shared<VDecNdkSample>();
752         vDecSample->INP_DIR = "/data/test/media/resolutionChange.h264";
753         vDecSample->DEFAULT_WIDTH = HD_RESOLUTION[0];
754         vDecSample->DEFAULT_HEIGHT = HD_RESOLUTION[1];
755         vDecSample->DEFAULT_FRAME_RATE = 30;
756         vDecSample->isResChangeStream = true;
757         vDecSample->expectCropTop = 0;
758         vDecSample->expectCropBottom = HD_RESOLUTION[1] - 1;
759         vDecSample->expectCropLeft = 0;
760         vDecSample->expectCropRight = HD_RESOLUTION[0] - 1;
761 
762         ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecName));
763         ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
764         ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
765         ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
766         vDecSample->WaitForEOS();
767         ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
768     } else {
769         cout << "hardware encoder is rk,skip." << endl;
770     }
771 }
772 
773 /**
774  * @tc.number    : MAX_INPUT_SIZE_CHECK_001
775  * @tc.name      : MaxInputSize value incorrect
776  * @tc.desc      : function test
777  */
778 HWTEST_F(HwdecFuncNdkTest, MAX_INPUT_SIZE_CHECK_001, TestSize.Level0)
779 {
780     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
781     vDecSample->INP_DIR = "/data/test/media/1920_1080_10_30Mb.h264";
782     vDecSample->DEFAULT_WIDTH = 1920;
783     vDecSample->DEFAULT_HEIGHT = 1080;
784     vDecSample->DEFAULT_FRAME_RATE = 30;
785     vDecSample->defualtPixelFormat = AV_PIXEL_FORMAT_NV21;
786     vDecSample->maxInputSize = -1;
787     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
788     vDecSample->WaitForEOS();
789     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
790 }
791 
792 /**
793  * @tc.number    : MAX_INPUT_SIZE_CHECK_002
794  * @tc.name      : MaxInputSize value incorrect
795  * @tc.desc      : function test
796  */
797 HWTEST_F(HwdecFuncNdkTest, MAX_INPUT_SIZE_CHECK_002, TestSize.Level0)
798 {
799     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
800     vDecSample->INP_DIR = "/data/test/media/1920_1080_10_30Mb.h264";
801     vDecSample->DEFAULT_WIDTH = 1920;
802     vDecSample->DEFAULT_HEIGHT = 1080;
803     vDecSample->DEFAULT_FRAME_RATE = 30;
804     vDecSample->defualtPixelFormat = AV_PIXEL_FORMAT_NV21;
805     vDecSample->maxInputSize = INT_MAX;
806     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
807     vDecSample->WaitForEOS();
808     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
809 }
810 
811 /**
812  * @tc.number    : MAX_INPUT_SIZE_CHECK_003
813  * @tc.name      : MaxInputSize value normal
814  * @tc.desc      : function test
815  */
816 HWTEST_F(HwdecFuncNdkTest, MAX_INPUT_SIZE_CHECK_003, TestSize.Level0)
817 {
818     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
819     vDecSample->INP_DIR = "/data/test/media/1104x622.h264";
820     vDecSample->DEFAULT_WIDTH = 1108;
821     vDecSample->DEFAULT_HEIGHT = 622;
822     vDecSample->DEFAULT_FRAME_RATE = 30;
823     vDecSample->defualtPixelFormat = AV_PIXEL_FORMAT_NV21;
824     vDecSample->maxInputSize = MAX_NALU_LEN;
825     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
826     vDecSample->WaitForEOS();
827     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
828 }
829 /**
830  * @tc.number    : MAX_INPUT_SIZE_CHECK_004
831  * @tc.name      : MaxInputSize value incorrect hevc
832  * @tc.desc      : function test
833  */
834 HWTEST_F(HwdecFuncNdkTest, MAX_INPUT_SIZE_CHECK_004, TestSize.Level0)
835 {
836     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
837     vDecSample->INP_DIR = "/data/test/media/1920_1080_20M_30.h265";
838     vDecSample->DEFAULT_WIDTH = 1920;
839     vDecSample->DEFAULT_HEIGHT = 1080;
840     vDecSample->DEFAULT_FRAME_RATE = 30;
841     vDecSample->defualtPixelFormat = AV_PIXEL_FORMAT_NV21;
842     vDecSample->maxInputSize = -1;
843     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecNameHEVC));
844     vDecSample->WaitForEOS();
845     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
846 }
847 
848 /**
849  * @tc.number    : MAX_INPUT_SIZE_CHECK_005
850  * @tc.name      : MaxInputSize value incorrect
851  * @tc.desc      : function test
852  */
853 HWTEST_F(HwdecFuncNdkTest, MAX_INPUT_SIZE_CHECK_005, TestSize.Level0)
854 {
855     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
856     vDecSample->INP_DIR = "/data/test/media/1920_1080_20M_30.h265";
857     vDecSample->DEFAULT_WIDTH = 1920;
858     vDecSample->DEFAULT_HEIGHT = 1080;
859     vDecSample->DEFAULT_FRAME_RATE = 30;
860     vDecSample->defualtPixelFormat = AV_PIXEL_FORMAT_NV21;
861     vDecSample->maxInputSize = INT_MAX;
862     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecNameHEVC));
863     vDecSample->WaitForEOS();
864     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
865 }
866 
867 /**
868  * @tc.number    : MAX_INPUT_SIZE_CHECK_006
869  * @tc.name      : MaxInputSize value normal
870  * @tc.desc      : function test
871  */
872 HWTEST_F(HwdecFuncNdkTest, MAX_INPUT_SIZE_CHECK_006, TestSize.Level0)
873 {
874     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
875     vDecSample->INP_DIR = "/data/test/media/1104x622.h265";
876     vDecSample->DEFAULT_WIDTH = 1108;
877     vDecSample->DEFAULT_HEIGHT = 622;
878     vDecSample->DEFAULT_FRAME_RATE = 30;
879     vDecSample->defualtPixelFormat = AV_PIXEL_FORMAT_NV21;
880     vDecSample->maxInputSize = MAX_NALU_LEN;
881     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecNameHEVC));
882     vDecSample->WaitForEOS();
883     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
884 }
885 
886 /**
887  * @tc.number    : FLUSH_CHECK_001
888  * @tc.name      : Compare the flush frame with the normal process frame
889  * @tc.desc      : function test
890  */
891 HWTEST_F(HwdecFuncNdkTest, FLUSH_CHECK_001, TestSize.Level0)
892 {
893     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
894     vDecSample->INP_DIR = INP_DIR_1080_30;
895     vDecSample->DEFAULT_WIDTH = 1920;
896     vDecSample->DEFAULT_HEIGHT = 1080;
897     vDecSample->DEFAULT_FRAME_RATE = 30;
898     vDecSample->SF_OUTPUT = false;
899     ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecName));
900     ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
901     ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
902     ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
903     vDecSample->WaitForEOS();
904     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
905     cout << "--vDecSample--" << vDecSample->outCount << endl;
906     shared_ptr<VDecNdkSample> vDecSample1 = make_shared<VDecNdkSample>();
907     vDecSample1->INP_DIR = INP_DIR_1080_30;
908     vDecSample1->DEFAULT_WIDTH = 1920;
909     vDecSample1->DEFAULT_HEIGHT = 1080;
910     vDecSample1->DEFAULT_FRAME_RATE = 30;
911     vDecSample1->SF_OUTPUT = false;
912     vDecSample1->REPEAT_START_FLUSH_BEFORE_EOS = 1;
913     ASSERT_EQ(AV_ERR_OK, vDecSample1->CreateVideoDecoder(g_codecName));
914     ASSERT_EQ(AV_ERR_OK, vDecSample1->ConfigureVideoDecoder());
915     ASSERT_EQ(AV_ERR_OK, vDecSample1->SetVideoDecoderCallback());
916     ASSERT_EQ(AV_ERR_OK, vDecSample1->StartVideoDecoder());
917     vDecSample1->WaitForEOS();
918     ASSERT_EQ(AV_ERR_OK, vDecSample1->errCount);
919     cout << "--Flush--" << vDecSample1->outCount << endl;
920     ASSERT_EQ(vDecSample->outCount, vDecSample1->outCount);
921 }
922 
923 /**
924  * @tc.number    : VIDEO_HWDEC_FUNCTION_ATTIME_0010
925  * @tc.name      : test h264 asyn decode surface,use at time
926  * @tc.desc      : function test
927  */
928 HWTEST_F(HwdecFuncNdkTest, VIDEO_HWDEC_FUNCTION_ATTIME_0010, TestSize.Level0)
929 {
930     shared_ptr<VDecAPI11Sample> vDecSample = make_shared<VDecAPI11Sample>();
931     vDecSample->INP_DIR = INP_DIR_720_30;
932     vDecSample->SF_OUTPUT = true;
933     vDecSample->DEFAULT_WIDTH = 1280;
934     vDecSample->DEFAULT_HEIGHT = 720;
935     vDecSample->DEFAULT_FRAME_RATE = 30;
936     vDecSample->rsAtTime = true;
937     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec_Surface(g_codecName));
938     vDecSample->WaitForEOS();
939     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
940 }
941 
942 /**
943  * @tc.number    : VIDEO_HWDEC_FUNCTION_ATTIME_0011
944  * @tc.name      : test h265 asyn decode surface,use at time
945  * @tc.desc      : function test
946  */
947 HWTEST_F(HwdecFuncNdkTest, VIDEO_HWDEC_FUNCTION_ATTIME_0011, TestSize.Level1)
948 {
949     shared_ptr<VDecAPI11Sample> vDecSample = make_shared<VDecAPI11Sample>();
950     vDecSample->INP_DIR = INP_DIR_1080_20;
951     vDecSample->SF_OUTPUT = true;
952     vDecSample->DEFAULT_WIDTH = 1920;
953     vDecSample->DEFAULT_HEIGHT = 1080;
954     vDecSample->DEFAULT_FRAME_RATE = 30;
955     vDecSample->rsAtTime = true;
956     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec_Surface(g_codecNameHEVC));
957     vDecSample->WaitForEOS();
958     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
959 }
960 
961 /**
962  * @tc.number    : VIDEO_HWDEC_FUNCTION_ATTIME_0012
963  * @tc.name      : test h265 10bit asyn decode surface,use at time
964  * @tc.desc      : function test
965  */
966 HWTEST_F(HwdecFuncNdkTest, VIDEO_HWDEC_FUNCTION_ATTIME_0012, TestSize.Level1)
967 {
968     shared_ptr<VDecAPI11Sample> vDecSample = make_shared<VDecAPI11Sample>();
969     vDecSample->DEFAULT_PROFILE = HEVC_PROFILE_MAIN;
970     vDecSample->INP_DIR = inpDirVivid;
971     vDecSample->SF_OUTPUT = true;
972     vDecSample->DEFAULT_WIDTH = 3840;
973     vDecSample->DEFAULT_HEIGHT = 2160;
974     vDecSample->DEFAULT_FRAME_RATE = 30;
975     vDecSample->rsAtTime = true;
976     vDecSample->useHDRSource = true;
977     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec_Surface(g_codecNameHEVC));
978     vDecSample->WaitForEOS();
979     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
980 }
981 
982 /**
983  * @tc.number    : VIDEO_HWDEC_FUNCTION_1410
984  * @tc.name      : Increase frame rate judgment
985  * @tc.desc      : function test
986  */
987 HWTEST_F(HwdecFuncNdkTest, VIDEO_HWDEC_FUNCTION_1410, TestSize.Level2)
988 {
989     shared_ptr<VDecAPI11Sample> vDecSample = make_shared<VDecAPI11Sample>();
990     vDecSample->INP_DIR = INP_DIR_720_30;
991     vDecSample->OUT_DIR = "/data/test/media/HW_720_30.yuv";
992     vDecSample->DEFAULT_WIDTH = 1280;
993     vDecSample->DEFAULT_HEIGHT = 720;
994     vDecSample->DEFAULT_FRAME_RATE = 30;
995     vDecSample->SF_OUTPUT = false;
996     vDecSample->outputYuvFlag = true;
997     ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecName));
998     ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
999     ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
1000     ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
1001     vDecSample->WaitForEOS();
1002     ASSERT_EQ(101, vDecSample->outFrameCount);
1003     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
1004 }
1005 
1006 /**
1007  * @tc.number    : VIDEO_HWDEC_FUNCTION_1420
1008  * @tc.name      : Increase frame rate judgment
1009  * @tc.desc      : function test
1010  */
1011 HWTEST_F(HwdecFuncNdkTest, VIDEO_HWDEC_FUNCTION_1420, TestSize.Level2)
1012 {
1013     shared_ptr<VDecAPI11Sample> vDecSample = make_shared<VDecAPI11Sample>();
1014     vDecSample->INP_DIR = "/data/test/media/1920_1080_20M_30.h265";
1015     vDecSample->OUT_DIR = "/data/test/media/HW_1920_1080_20M_30.yuv";
1016     vDecSample->DEFAULT_WIDTH = 1920;
1017     vDecSample->DEFAULT_HEIGHT = 1080;
1018     vDecSample->DEFAULT_FRAME_RATE = 30;
1019     vDecSample->SF_OUTPUT = false;
1020     vDecSample->outputYuvFlag = true;
1021     ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecNameHEVC));
1022     ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
1023     ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
1024     ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
1025     vDecSample->WaitForEOS();
1026     ASSERT_EQ(501, vDecSample->outFrameCount);
1027     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
1028 }
1029 
1030 /**
1031  * @tc.number    : VIDEO_DECODE_VVC_0100
1032  * @tc.name      : decode vvc buffer
1033  * @tc.desc      : function test
1034  */
1035 HWTEST_F(HwdecFuncNdkTest, VIDEO_DECODE_VVC_0100, TestSize.Level0)
1036 {
1037     if (access(INP_DIR_VVC_1080, F_OK) == 0) {
1038         auto vDecSample = make_shared<VDecAPI11Sample>();
1039         vDecSample->INP_DIR = INP_DIR_VVC_1080;
1040         vDecSample->DEFAULT_WIDTH = 1920;
1041         vDecSample->DEFAULT_HEIGHT = 1080;
1042         vDecSample->DEFAULT_FRAME_RATE = 30;
1043         ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecNameVVC));
1044         ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
1045         ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
1046         ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
1047         vDecSample->WaitForEOS();
1048         ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
1049     }
1050 }
1051 
1052 /**
1053  * @tc.number    : VIDEO_DECODE_VVC_0200
1054  * @tc.name      : decode vvc surface
1055  * @tc.desc      : function test
1056  */
1057 HWTEST_F(HwdecFuncNdkTest, VIDEO_DECODE_VVC_0200, TestSize.Level0)
1058 {
1059     if (access(INP_DIR_VVC_1080, F_OK) == 0) {
1060         auto vDecSample = make_shared<VDecAPI11Sample>();
1061         vDecSample->INP_DIR = INP_DIR_VVC_1080;
1062         vDecSample->DEFAULT_WIDTH = 1920;
1063         vDecSample->DEFAULT_HEIGHT = 1080;
1064         vDecSample->DEFAULT_FRAME_RATE = 30;
1065         vDecSample->SF_OUTPUT = true;
1066         vDecSample->sleepOnFPS = true;
1067         ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec_Surface(g_codecNameVVC));
1068         vDecSample->WaitForEOS();
1069         ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
1070     }
1071 }
1072 
1073 /**
1074  * @tc.number    : VIDEO_DECODE_VVC_0300
1075  * @tc.name      : decode vvc switch surface
1076  * @tc.desc      : function test
1077  */
1078 HWTEST_F(HwdecFuncNdkTest, VIDEO_DECODE_VVC_0300, TestSize.Level1)
1079 {
1080     if (access(INP_DIR_VVC_1080, F_OK) == 0) {
1081         auto vDecSample = make_shared<VDecAPI11Sample>();
1082         vDecSample->INP_DIR = INP_DIR_VVC_1080;
1083         vDecSample->DEFAULT_WIDTH = 1920;
1084         vDecSample->DEFAULT_HEIGHT = 1080;
1085         vDecSample->DEFAULT_FRAME_RATE = 30;
1086         vDecSample->SF_OUTPUT = true;
1087         vDecSample->autoSwitchSurface = true;
1088         vDecSample->sleepOnFPS = true;
1089         ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec_Surface(g_codecNameVVC));
1090         vDecSample->WaitForEOS();
1091         ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
1092     }
1093 }
1094 
1095 /**
1096  * @tc.number    : VIDEO_DECODE_VVC_0400
1097  * @tc.name      : decode vvc resolution change
1098  * @tc.desc      : function test
1099  */
1100 HWTEST_F(HwdecFuncNdkTest, VIDEO_DECODE_VVC_0400, TestSize.Level2)
1101 {
1102     if (access(inpDirVvcResolution, F_OK) == 0) {
1103         auto vDecSample = make_shared<VDecAPI11Sample>();
1104         vDecSample->INP_DIR = inpDirVvcResolution;
1105         vDecSample->DEFAULT_WIDTH = 1104;
1106         vDecSample->DEFAULT_HEIGHT = 622;
1107         vDecSample->DEFAULT_FRAME_RATE = 30;
1108         vDecSample->SF_OUTPUT = false;
1109         ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecNameVVC));
1110         ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
1111         ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
1112         ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
1113         vDecSample->WaitForEOS();
1114         ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
1115     }
1116 }
1117 
1118 /**
1119  * @tc.number    : VIDEO_DECODE_VVC_0500
1120  * @tc.name      : decode vvc 10bit hdrVivid
1121  * @tc.desc      : function test
1122  */
1123 HWTEST_F(HwdecFuncNdkTest, VIDEO_DECODE_VVC_0500, TestSize.Level1)
1124 {
1125     if (access(INP_DIR_VVC_1080, F_OK) == 0) {
1126         auto vDecSample = make_shared<VDecAPI11Sample>();
1127         vDecSample->INP_DIR = INP_DIR_VVC_1080;
1128         vDecSample->DEFAULT_WIDTH = 1920;
1129         vDecSample->DEFAULT_HEIGHT = 1080;
1130         vDecSample->DEFAULT_FRAME_RATE = 30;
1131         vDecSample->SF_OUTPUT = false;
1132         ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecNameVVC));
1133         ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
1134         ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
1135         ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
1136         vDecSample->WaitForEOS();
1137         ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
1138     }
1139 }
1140 
1141 /**
1142  * @tc.number    : VIDEO_DECODE_VVC_0600
1143  * @tc.name      : decode vvc surf change in normal state
1144  * @tc.desc      : function test
1145  */
1146 HWTEST_F(HwdecFuncNdkTest, VIDEO_DECODE_VVC_0600, TestSize.Level2)
1147 {
1148     if (access(INP_DIR_VVC_1080, F_OK) == 0) {
1149         auto vDecSample = make_shared<VDecAPI11Sample>();
1150         vDecSample->INP_DIR = INP_DIR_VVC_1080;
1151         vDecSample->DEFAULT_WIDTH = DEFAULT_WIDTH;
1152         vDecSample->DEFAULT_HEIGHT = DEFAULT_HEIGHT;
1153         vDecSample->DEFAULT_FRAME_RATE = 30;
1154         vDecSample->SF_OUTPUT = true;
1155         vDecSample->autoSwitchSurface = true;
1156         vDecSample->AFTER_EOS_DESTORY_CODEC = false;
1157         vDecSample->sleepOnFPS = true;
1158         ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec_Surface(g_codecNameVVC));
1159         vDecSample->WaitForEOS();
1160         ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
1161         ASSERT_EQ(AV_ERR_OK, vDecSample->Reset());
1162         ASSERT_EQ(AV_ERR_INVALID_STATE, vDecSample->SwitchSurface());
1163         ASSERT_EQ(AV_ERR_OK, vDecSample->Release());
1164     }
1165 }
1166 
1167 /**
1168  * @tc.number    : VIDEO_DECODE_VVC_0700
1169  * @tc.name      : decode vvc surf change in flushed state
1170  * @tc.desc      : function test
1171  */
1172 HWTEST_F(HwdecFuncNdkTest, VIDEO_DECODE_VVC_0700, TestSize.Level2)
1173 {
1174     if (access(INP_DIR_VVC_1080, F_OK) == 0) {
1175         auto vDecSample = make_shared<VDecAPI11Sample>();
1176         vDecSample->INP_DIR = INP_DIR_VVC_1080;
1177         vDecSample->DEFAULT_WIDTH = DEFAULT_WIDTH;
1178         vDecSample->DEFAULT_HEIGHT = DEFAULT_HEIGHT;
1179         vDecSample->DEFAULT_FRAME_RATE = 30;
1180         vDecSample->SF_OUTPUT = true;
1181         vDecSample->autoSwitchSurface = true;
1182         vDecSample->sleepOnFPS = true;
1183         ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec_Surface(g_codecNameVVC));
1184         ASSERT_EQ(AV_ERR_OK, vDecSample->Flush());
1185         ASSERT_EQ(AV_ERR_OK, vDecSample->SwitchSurface());
1186         ASSERT_EQ(AV_ERR_OK, vDecSample->Stop());
1187         ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
1188     }
1189 }
1190 
1191 /**
1192  * @tc.number    : VIDEO_DECODE_VVC_0800
1193  * @tc.name      : decode vvc surf change in buffer mode
1194  * @tc.desc      : function test
1195  */
1196 HWTEST_F(HwdecFuncNdkTest, VIDEO_DECODE_VVC_0800, TestSize.Level2)
1197 {
1198     if (access(INP_DIR_VVC_1080, F_OK) == 0) {
1199         auto vDecSample = make_shared<VDecAPI11Sample>();
1200         vDecSample->INP_DIR = INP_DIR_VVC_1080;
1201         vDecSample->DEFAULT_WIDTH = 1920;
1202         vDecSample->DEFAULT_HEIGHT = 1080;
1203         vDecSample->DEFAULT_FRAME_RATE = 30;
1204         vDecSample->SF_OUTPUT = false;
1205         vDecSample->CreateSurface();
1206         ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecNameVVC));
1207         ASSERT_EQ(AV_ERR_OPERATE_NOT_PERMIT, vDecSample->SwitchSurface());
1208         vDecSample->WaitForEOS();
1209         ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
1210     }
1211 }
1212 
1213 /**
1214  * @tc.number    : VIDEO_DECODE_VVC_0900
1215  * @tc.name      : decode vvc get decode output descriptions h265
1216  * @tc.desc      : function test
1217  */
1218 HWTEST_F(HwdecFuncNdkTest, VIDEO_DECODE_VVC_0900, TestSize.Level2)
1219 {
1220     if (access(INP_DIR_VVC_1080, F_OK) == 0) {
1221         auto vDecSample = make_shared<VDecAPI11Sample>();
1222         vDecSample->INP_DIR = INP_DIR_VVC_1080;
1223         vDecSample->DEFAULT_WIDTH = DEFAULT_WIDTH;
1224         vDecSample->DEFAULT_HEIGHT = DEFAULT_HEIGHT;
1225         vDecSample->DEFAULT_FRAME_RATE = 30;
1226         vDecSample->needCheckOutputDesc = true;
1227         vDecSample->expectCropTop = 0;
1228         vDecSample->expectCropBottom = DEFAULT_HEIGHT - 1;
1229         vDecSample->expectCropLeft = 0;
1230         vDecSample->expectCropRight = DEFAULT_WIDTH - 1;
1231 
1232         ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecNameVVC));
1233         ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
1234         ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
1235         ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
1236         vDecSample->WaitForEOS();
1237         ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
1238     }
1239 }
1240 
1241 /**
1242  * @tc.number    : VIDEO_DECODE_VVC_1000
1243  * @tc.name      : decode vvc enable low latency
1244  * @tc.desc      : function test
1245  */
1246 HWTEST_F(HwdecFuncNdkTest, VIDEO_DECODE_VVC_1000, TestSize.Level2)
1247 {
1248     if (access(INP_DIR_VVC_1080, F_OK) == 0) {
1249         auto vDecSample = make_shared<VDecNdkSample>();
1250         vDecSample->INP_DIR = INP_DIR_VVC_1080;
1251         vDecSample->DEFAULT_WIDTH = DEFAULT_WIDTH;
1252         vDecSample->DEFAULT_HEIGHT = DEFAULT_HEIGHT;
1253         vDecSample->DEFAULT_FRAME_RATE = 30;
1254         vDecSample->enableLowLatency = true;
1255         ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecNameVVC));
1256         ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
1257         ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
1258         ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
1259         vDecSample->WaitForEOS();
1260         ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
1261     }
1262 }
1263 
1264 /**
1265  * @tc.number    : VIDEO_DECODE_VRR_0001
1266  * @tc.name      : decode to NV12 format, enable VRR
1267  * @tc.desc      : function test
1268  */
1269 HWTEST_F(HwdecFuncNdkTest, VIDEO_DECODE_VRR_0001, TestSize.Level0)
1270 {
1271     auto vDecSample = make_shared<VDecAPI11Sample>();
1272     vDecSample->INP_DIR = INP_DIR_1080_30;
1273     vDecSample->DEFAULT_FRAME_RATE = 60.0;
1274     vDecSample->DEFAULT_WIDTH = DEFAULT_WIDTH;
1275     vDecSample->DEFAULT_HEIGHT = DEFAULT_HEIGHT;
1276     vDecSample->enableVRR = true;
1277     vDecSample->defualtPixelFormat = AV_PIXEL_FORMAT_NV12;
1278     ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecName));
1279     ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
1280 }
1281 
1282 /**
1283  * @tc.number    : VIDEO_DECODE_VRR_0002
1284  * @tc.name      : decode to NV21 format, enable VRR
1285  * @tc.desc      : function test
1286  */
1287 HWTEST_F(HwdecFuncNdkTest, VIDEO_DECODE_VRR_0002, TestSize.Level0)
1288 {
1289     auto vDecSample = make_shared<VDecAPI11Sample>();
1290     vDecSample->INP_DIR = INP_DIR_1080_30;
1291     vDecSample->DEFAULT_FRAME_RATE = 60.0;
1292     vDecSample->DEFAULT_WIDTH = DEFAULT_WIDTH;
1293     vDecSample->DEFAULT_HEIGHT = DEFAULT_HEIGHT;
1294     vDecSample->enableVRR = true;
1295     vDecSample->defualtPixelFormat = AV_PIXEL_FORMAT_NV21;
1296     ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecName));
1297     if (!access("/system/lib64/media/", 0)) {
1298         ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
1299     }
1300 }
1301 
1302 /**
1303  * @tc.number    : VIDEO_HWDEC_FUNCTION_1800
1304  * @tc.name      : resolution change
1305  * @tc.desc      : function test
1306  */
1307 HWTEST_F(HwdecFuncNdkTest, VIDEO_HWDEC_FUNCTION_1800, TestSize.Level2)
1308 {
1309     if (g_codecNameHEVC.find("hisi") != string::npos) {
1310         auto vDecSample = make_shared<VDecAPI11Sample>();
1311         vDecSample->INP_DIR = "/data/test/media/change_8bit_h265.h265";
1312         vDecSample->DEFAULT_WIDTH = 1280;
1313         vDecSample->DEFAULT_HEIGHT = 720;
1314         vDecSample->DEFAULT_FRAME_RATE = 30;
1315         vDecSample->SF_OUTPUT = false;
1316         vDecSample->outputYuvFlag = true;
1317         vDecSample->NocaleHash = true;
1318         ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecNameHEVC));
1319         ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
1320         ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
1321         ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
1322         vDecSample->WaitForEOS();
1323         ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
1324         ASSERT_EQ(CHANGE_HEVC_FRAME, vDecSample->outFrameCount);
1325     }
1326 }
1327 
1328 /**
1329  * @tc.number    : VIDEO_HWDEC_FUNCTION_1900
1330  * @tc.name      : resolution change
1331  * @tc.desc      : function test
1332  */
1333 HWTEST_F(HwdecFuncNdkTest, VIDEO_HWDEC_FUNCTION_1900, TestSize.Level2)
1334 {
1335     if (g_codecNameHEVC.find("hisi") != string::npos) {
1336         auto vDecSample = make_shared<VDecAPI11Sample>();
1337         vDecSample->INP_DIR = "/data/test/media/change_10bit_h265.h265";
1338         vDecSample->DEFAULT_WIDTH = 1280;
1339         vDecSample->DEFAULT_HEIGHT = 720;
1340         vDecSample->DEFAULT_FRAME_RATE = 30;
1341         vDecSample->SF_OUTPUT = false;
1342         vDecSample->outputYuvFlag = true;
1343         vDecSample->NocaleHash = true;
1344         ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecNameHEVC));
1345         ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
1346         ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
1347         ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
1348         vDecSample->WaitForEOS();
1349         ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
1350         ASSERT_EQ(CHANGE_HEVC_TEN_FRAME, vDecSample->outFrameCount);
1351     }
1352 }
1353 
1354 /**
1355  * @tc.number    : VIDEO_DECODE_VVC_RESOLUTION_0010
1356  * @tc.name      : h266变分辨率,8bit解码,buffer, nv12
1357  * @tc.desc      : function test
1358  */
1359 HWTEST_F(HwdecFuncNdkTest, VIDEO_DECODE_VVC_RESOLUTION_0010, TestSize.Level0)
1360 {
1361     if (g_codecNameVVC.find("hisi") != string::npos) {
1362         auto vDecSample = make_shared<VDecAPI11Sample>();
1363         vDecSample->INP_DIR = inpDirVvcResolution8Bit;
1364         vDecSample->DEFAULT_WIDTH = 3840;
1365         vDecSample->DEFAULT_HEIGHT = 2160;
1366         vDecSample->DEFAULT_FRAME_RATE = 30;
1367         vDecSample->SF_OUTPUT = false;
1368         vDecSample->outputYuvFlag = true;
1369         vDecSample->NocaleHash = true;
1370         vDecSample->defualtPixelFormat = AV_PIXEL_FORMAT_NV12;
1371         ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecNameVVC));
1372         ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
1373         ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
1374         ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
1375         vDecSample->WaitForEOS();
1376         ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
1377         ASSERT_EQ(CHANGE_VVC_FRAME, vDecSample->outFrameCount);
1378     }
1379 }
1380 
1381 /**
1382  * @tc.number    : VIDEO_DECODE_VVC_RESOLUTION_0020
1383  * @tc.name      : h266变分辨率,8bit解码,buffer, nv21
1384  * @tc.desc      : function test
1385  */
1386 HWTEST_F(HwdecFuncNdkTest, VIDEO_DECODE_VVC_RESOLUTION_0020, TestSize.Level0)
1387 {
1388     if (g_codecNameVVC.find("hisi") != string::npos) {
1389         auto vDecSample = make_shared<VDecAPI11Sample>();
1390         vDecSample->INP_DIR = inpDirVvcResolution8Bit;
1391         vDecSample->DEFAULT_WIDTH = 3840;
1392         vDecSample->DEFAULT_HEIGHT = 2160;
1393         vDecSample->DEFAULT_FRAME_RATE = 30;
1394         vDecSample->SF_OUTPUT = false;
1395         vDecSample->outputYuvFlag = true;
1396         vDecSample->NocaleHash = true;
1397         vDecSample->defualtPixelFormat = AV_PIXEL_FORMAT_NV21;
1398         ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecNameVVC));
1399         ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
1400         ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
1401         ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
1402         vDecSample->WaitForEOS();
1403         ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
1404         ASSERT_EQ(CHANGE_VVC_FRAME, vDecSample->outFrameCount);
1405     }
1406 }
1407 
1408 /**
1409  * @tc.number    : VIDEO_DECODE_VVC_RESOLUTION_0030
1410  * @tc.name      : h266变分辨率,10bit解码,buffer, nv12
1411  * @tc.desc      : function test
1412  */
1413 HWTEST_F(HwdecFuncNdkTest, VIDEO_DECODE_VVC_RESOLUTION_0030, TestSize.Level0)
1414 {
1415     if (g_codecNameVVC.find("hisi") != string::npos) {
1416         auto vDecSample = make_shared<VDecAPI11Sample>();
1417         vDecSample->INP_DIR = inpDirVvcResolution10Bit;
1418         vDecSample->DEFAULT_WIDTH = 128;
1419         vDecSample->DEFAULT_HEIGHT = 128;
1420         vDecSample->DEFAULT_FRAME_RATE = 30;
1421         vDecSample->SF_OUTPUT = false;
1422         vDecSample->outputYuvFlag = true;
1423         vDecSample->NocaleHash = true;
1424         vDecSample->defualtPixelFormat = AV_PIXEL_FORMAT_NV12;
1425         ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecNameVVC));
1426         ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
1427         ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
1428         ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
1429         vDecSample->WaitForEOS();
1430         ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
1431         ASSERT_EQ(CHANGE_VVC_FRAME, vDecSample->outFrameCount);
1432     }
1433 }
1434 
1435 /**
1436  * @tc.number    : VIDEO_DECODE_VVC_RESOLUTION_0040
1437  * @tc.name      : h266变分辨率,10bit解码,buffer, nv21
1438  * @tc.desc      : function test
1439  */
1440 HWTEST_F(HwdecFuncNdkTest, VIDEO_DECODE_VVC_RESOLUTION_0040, TestSize.Level0)
1441 {
1442     if (g_codecNameVVC.find("hisi") != string::npos) {
1443         auto vDecSample = make_shared<VDecAPI11Sample>();
1444         vDecSample->INP_DIR = inpDirVvcResolution10Bit;
1445         vDecSample->DEFAULT_WIDTH = 128;
1446         vDecSample->DEFAULT_HEIGHT = 128;
1447         vDecSample->DEFAULT_FRAME_RATE = 30;
1448         vDecSample->SF_OUTPUT = false;
1449         vDecSample->outputYuvFlag = true;
1450         vDecSample->NocaleHash = true;
1451         vDecSample->defualtPixelFormat = AV_PIXEL_FORMAT_NV21;
1452         ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecNameVVC));
1453         ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
1454         ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
1455         ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
1456         vDecSample->WaitForEOS();
1457         ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
1458         ASSERT_EQ(CHANGE_VVC_FRAME, vDecSample->outFrameCount);
1459     }
1460 }
1461 
1462 /**
1463  * @tc.number    : VIDEO_DECODE_VVC_RESOLUTION_0050
1464  * @tc.name      : h266变分辨率,hdr解码,buffer, nv12
1465  * @tc.desc      : function test
1466  */
1467 HWTEST_F(HwdecFuncNdkTest, VIDEO_DECODE_VVC_RESOLUTION_0050, TestSize.Level0)
1468 {
1469     if (g_codecNameVVC.find("hisi") != string::npos) {
1470         auto vDecSample = make_shared<VDecAPI11Sample>();
1471         vDecSample->INP_DIR = inpDirVvcResolutionHdr10Bit;
1472         vDecSample->DEFAULT_WIDTH = 1280;
1473         vDecSample->DEFAULT_HEIGHT = 720;
1474         vDecSample->DEFAULT_FRAME_RATE = 30;
1475         vDecSample->SF_OUTPUT = false;
1476         vDecSample->outputYuvFlag = true;
1477         vDecSample->NocaleHash = true;
1478         vDecSample->defualtPixelFormat = AV_PIXEL_FORMAT_NV12;
1479         ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecNameVVC));
1480         ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
1481         ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
1482         ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
1483         vDecSample->WaitForEOS();
1484         ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
1485         ASSERT_EQ(CHANGE_VVC_FRAME, vDecSample->outFrameCount);
1486     }
1487 }
1488 
1489 /**
1490  * @tc.number    : VIDEO_DECODE_VVC_RESOLUTION_0060
1491  * @tc.name      : h266变分辨率,hdr解码,buffer, nv21
1492  * @tc.desc      : function test
1493  */
1494 HWTEST_F(HwdecFuncNdkTest, VIDEO_DECODE_VVC_RESOLUTION_0060, TestSize.Level0)
1495 {
1496     if (g_codecNameVVC.find("hisi") != string::npos) {
1497         auto vDecSample = make_shared<VDecAPI11Sample>();
1498         vDecSample->INP_DIR = inpDirVvcResolutionHdr10Bit;
1499         vDecSample->DEFAULT_WIDTH = 1280;
1500         vDecSample->DEFAULT_HEIGHT = 720;
1501         vDecSample->DEFAULT_FRAME_RATE = 30;
1502         vDecSample->SF_OUTPUT = false;
1503         vDecSample->outputYuvFlag = true;
1504         vDecSample->NocaleHash = true;
1505         vDecSample->defualtPixelFormat = AV_PIXEL_FORMAT_NV21;
1506         ASSERT_EQ(AV_ERR_OK, vDecSample->CreateVideoDecoder(g_codecNameVVC));
1507         ASSERT_EQ(AV_ERR_OK, vDecSample->ConfigureVideoDecoder());
1508         ASSERT_EQ(AV_ERR_OK, vDecSample->SetVideoDecoderCallback());
1509         ASSERT_EQ(AV_ERR_OK, vDecSample->StartVideoDecoder());
1510         vDecSample->WaitForEOS();
1511         ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
1512         ASSERT_EQ(CHANGE_VVC_FRAME, vDecSample->outFrameCount);
1513     }
1514 }
1515 
1516 /**
1517  * @tc.number    : VIDEO_DECODE_VVC_RESOLUTION_0070
1518  * @tc.name      : h266变分辨率,8bit解码,surface, nv12
1519  * @tc.desc      : function test
1520  */
1521 HWTEST_F(HwdecFuncNdkTest, VIDEO_DECODE_VVC_RESOLUTION_0070, TestSize.Level0)
1522 {
1523     if (g_codecNameVVC.find("hisi") != string::npos) {
1524         auto vDecSample = make_shared<VDecAPI11Sample>();
1525         vDecSample->INP_DIR = inpDirVvcResolution8Bit;
1526         vDecSample->DEFAULT_WIDTH = 3840;
1527         vDecSample->DEFAULT_HEIGHT = 2160;
1528         vDecSample->DEFAULT_FRAME_RATE = 30;
1529         vDecSample->SF_OUTPUT = true;
1530         vDecSample->outputYuvSurface = true;
1531         vDecSample->NocaleHash = true;
1532         vDecSample->defualtPixelFormat = AV_PIXEL_FORMAT_NV12;
1533         ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec_Surface(g_codecNameVVC));
1534         vDecSample->WaitForEOS();
1535         ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
1536         ASSERT_EQ(CHANGE_VVC_FRAME, vDecSample->outFrameCount);
1537     }
1538 }
1539 
1540 /**
1541  * @tc.number    : VIDEO_DECODE_VVC_RESOLUTION_0080
1542  * @tc.name      : h266变分辨率,8bit解码,surface, nv21
1543  * @tc.desc      : function test
1544  */
1545 HWTEST_F(HwdecFuncNdkTest, VIDEO_DECODE_VVC_RESOLUTION_0080, TestSize.Level0)
1546 {
1547     if (g_codecNameVVC.find("hisi") != string::npos) {
1548         auto vDecSample = make_shared<VDecAPI11Sample>();
1549         vDecSample->INP_DIR = inpDirVvcResolution8Bit;
1550         vDecSample->DEFAULT_WIDTH = 3840;
1551         vDecSample->DEFAULT_HEIGHT = 2160;
1552         vDecSample->DEFAULT_FRAME_RATE = 30;
1553         vDecSample->SF_OUTPUT = true;
1554         vDecSample->outputYuvSurface = true;
1555         vDecSample->NocaleHash = true;
1556         vDecSample->defualtPixelFormat = AV_PIXEL_FORMAT_NV21;
1557         ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec_Surface(g_codecNameVVC));
1558         vDecSample->WaitForEOS();
1559         ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
1560         ASSERT_EQ(CHANGE_VVC_FRAME, vDecSample->outFrameCount);
1561     }
1562 }
1563 
1564 /**
1565  * @tc.number    : VIDEO_DECODE_VVC_RESOLUTION_0090
1566  * @tc.name      : h266变分辨率,10bit解码,surface, nv12
1567  * @tc.desc      : function test
1568  */
1569 HWTEST_F(HwdecFuncNdkTest, VIDEO_DECODE_VVC_RESOLUTION_0090, TestSize.Level0)
1570 {
1571     if (g_codecNameVVC.find("hisi") != string::npos) {
1572         auto vDecSample = make_shared<VDecAPI11Sample>();
1573         vDecSample->INP_DIR = inpDirVvcResolution10Bit;
1574         vDecSample->DEFAULT_WIDTH = 128;
1575         vDecSample->DEFAULT_HEIGHT = 128;
1576         vDecSample->DEFAULT_FRAME_RATE = 30;
1577         vDecSample->SF_OUTPUT = true;
1578         vDecSample->outputYuvSurface = true;
1579         vDecSample->NocaleHash = true;
1580         vDecSample->defualtPixelFormat = AV_PIXEL_FORMAT_NV12;
1581         ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec_Surface(g_codecNameVVC));
1582         vDecSample->WaitForEOS();
1583         ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
1584         ASSERT_EQ(CHANGE_VVC_FRAME, vDecSample->outFrameCount);
1585     }
1586 }
1587 
1588 /**
1589  * @tc.number    : VIDEO_DECODE_VVC_RESOLUTION_0100
1590  * @tc.name      : h266变分辨率,10bit解码,surface, nv21
1591  * @tc.desc      : function test
1592  */
1593 HWTEST_F(HwdecFuncNdkTest, VIDEO_DECODE_VVC_RESOLUTION_0100, TestSize.Level0)
1594 {
1595     if (g_codecNameVVC.find("hisi") != string::npos) {
1596         auto vDecSample = make_shared<VDecAPI11Sample>();
1597         vDecSample->INP_DIR = inpDirVvcResolution10Bit;
1598         vDecSample->DEFAULT_WIDTH = 128;
1599         vDecSample->DEFAULT_HEIGHT = 128;
1600         vDecSample->DEFAULT_FRAME_RATE = 30;
1601         vDecSample->SF_OUTPUT = true;
1602         vDecSample->outputYuvSurface = true;
1603         vDecSample->NocaleHash = true;
1604         vDecSample->defualtPixelFormat = AV_PIXEL_FORMAT_NV21;
1605         ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec_Surface(g_codecNameVVC));
1606         vDecSample->WaitForEOS();
1607         ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
1608         ASSERT_EQ(CHANGE_VVC_FRAME, vDecSample->outFrameCount);
1609     }
1610 }
1611 
1612 /**
1613  * @tc.number    : VIDEO_DECODE_VVC_RESOLUTION_0110
1614  * @tc.name      : h266变分辨率,10bit解码,surface, nv12
1615  * @tc.desc      : function test
1616  */
1617 HWTEST_F(HwdecFuncNdkTest, VIDEO_DECODE_VVC_RESOLUTION_0110, TestSize.Level0)
1618 {
1619     if (g_codecNameVVC.find("hisi") != string::npos) {
1620         auto vDecSample = make_shared<VDecAPI11Sample>();
1621         vDecSample->INP_DIR = inpDirVvcResolutionHdr10Bit;
1622         vDecSample->DEFAULT_WIDTH = 1280;
1623         vDecSample->DEFAULT_HEIGHT = 720;
1624         vDecSample->DEFAULT_FRAME_RATE = 30;
1625         vDecSample->SF_OUTPUT = true;
1626         vDecSample->outputYuvSurface = true;
1627         vDecSample->NocaleHash = true;
1628         vDecSample->defualtPixelFormat = AV_PIXEL_FORMAT_NV12;
1629         ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec_Surface(g_codecNameVVC));
1630         vDecSample->WaitForEOS();
1631         ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
1632         ASSERT_EQ(CHANGE_VVC_FRAME, vDecSample->outFrameCount);
1633     }
1634 }
1635 
1636 /**
1637  * @tc.number    : VIDEO_DECODE_VVC_RESOLUTION_0100
1638  * @tc.name      : h266变分辨率,10bit解码,surface, nv21
1639  * @tc.desc      : function test
1640  */
1641 HWTEST_F(HwdecFuncNdkTest, VIDEO_DECODE_VVC_RESOLUTION_0120, TestSize.Level0)
1642 {
1643     if (g_codecNameVVC.find("hisi") != string::npos) {
1644         auto vDecSample = make_shared<VDecAPI11Sample>();
1645         vDecSample->INP_DIR = inpDirVvcResolutionHdr10Bit;
1646         vDecSample->DEFAULT_WIDTH = 1280;
1647         vDecSample->DEFAULT_HEIGHT = 720;
1648         vDecSample->DEFAULT_FRAME_RATE = 30;
1649         vDecSample->SF_OUTPUT = true;
1650         vDecSample->outputYuvSurface = true;
1651         vDecSample->NocaleHash = true;
1652         vDecSample->defualtPixelFormat = AV_PIXEL_FORMAT_NV21;
1653         ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec_Surface(g_codecNameVVC));
1654         vDecSample->WaitForEOS();
1655         ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
1656         ASSERT_EQ(CHANGE_VVC_FRAME, vDecSample->outFrameCount);
1657     }
1658 }
1659 } // namespace