• 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 
16 #include <iostream>
17 #include <cstdio>
18 
19 #include <atomic>
20 #include <fstream>
21 #include <thread>
22 #include <mutex>
23 #include <queue>
24 #include <string>
25 #include "gtest/gtest.h"
26 #include "avcodec_codec_name.h"
27 #include "videodec_ndk_sample.h"
28 #include "native_avcapability.h"
29 
30 using namespace std;
31 using namespace OHOS;
32 using namespace OHOS::Media;
33 using namespace testing::ext;
34 namespace OHOS {
35 namespace Media {
36 class HwdecNdkTest : public testing::Test {
37 public:
38     // SetUpTestCase: Called before all test cases
39     static void SetUpTestCase(void);
40     // TearDownTestCase: Called after all test case
41     static void TearDownTestCase(void);
42     // SetUp: Called before each test cases
43     void SetUp(void);
44     // TearDown: Called after each test cases
45     void TearDown(void);
46 
47 protected:
48     const ::testing::TestInfo *testInfo_ = nullptr;
49     bool createCodecSuccess_ = false;
50 };
51 
52 string g_codecName;
53 string g_codecMime = "video/avc";
54 OH_AVCapability *cap = nullptr;
55 
SetUpTestCase(void)56 void HwdecNdkTest::SetUpTestCase(void)
57 {
58     cap = OH_AVCodec_GetCapabilityByCategory(g_codecMime.c_str(), false, HARDWARE);
59     g_codecName = OH_AVCapability_GetName(cap);
60 }
TearDownTestCase(void)61 void HwdecNdkTest::TearDownTestCase(void) {}
SetUp(void)62 void HwdecNdkTest::SetUp(void) {}
TearDown(void)63 void HwdecNdkTest::TearDown(void) {}
64 } // namespace Media
65 } // namespace OHOS
66 
67 namespace {
68 /**
69  * @tc.number    : VIDEO_HWDEC_H264_IPB_0100
70  * @tc.name      : hardware decode all idr frame
71  * @tc.desc      : function test
72  */
73 HWTEST_F(HwdecNdkTest, VIDEO_HWDEC_H264_IPB_0100, TestSize.Level0)
74 {
75     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
76     vDecSample->INP_DIR = "/data/test/media/1920_1080I.h264";
77     vDecSample->DEFAULT_WIDTH = 1920;
78     vDecSample->DEFAULT_HEIGHT = 1080;
79     vDecSample->DEFAULT_FRAME_RATE = 30;
80     vDecSample->SF_OUTPUT = false;
81     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
82     vDecSample->WaitForEOS();
83     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
84 }
85 
86 /**
87  * @tc.number    : VIDEO_HWDEC_H264_IPB_0200
88  * @tc.name      : hardware decode single idr frame
89  * @tc.desc      : function test
90  */
91 HWTEST_F(HwdecNdkTest, VIDEO_HWDEC_H264_IPB_0200, TestSize.Level0)
92 {
93     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
94     vDecSample->INP_DIR = "/data/test/media/1920_1080IP.h264";
95     vDecSample->DEFAULT_WIDTH = 1920;
96     vDecSample->DEFAULT_HEIGHT = 1080;
97     vDecSample->DEFAULT_FRAME_RATE = 30;
98     vDecSample->SF_OUTPUT = false;
99     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
100     vDecSample->WaitForEOS();
101     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
102 }
103 
104 /**
105  * @tc.number    : VIDEO_HWDEC_H264_IPB_0300
106  * @tc.name      : hardware decode all type frame
107  * @tc.desc      : function test
108  */
109 HWTEST_F(HwdecNdkTest, VIDEO_HWDEC_H264_IPB_0300, TestSize.Level0)
110 {
111     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
112     vDecSample->INP_DIR = "/data/test/media/1920_1080IPB.h264";
113     vDecSample->DEFAULT_WIDTH = 1920;
114     vDecSample->DEFAULT_HEIGHT = 1080;
115     vDecSample->DEFAULT_FRAME_RATE = 30;
116     vDecSample->SF_OUTPUT = false;
117     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
118     vDecSample->WaitForEOS();
119     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
120 }
121 
122 /**
123  * @tc.number    : VIDEO_HWDEC_H264_SVC_0100
124  * @tc.name      : hardware decode svc frame
125  * @tc.desc      : function test
126  */
127 HWTEST_F(HwdecNdkTest, VIDEO_HWDEC_H264_SVC_0100, TestSize.Level0)
128 {
129     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
130     vDecSample->INP_DIR = "/data/test/media/1920_1080_svc_avcc.h264";
131     vDecSample->DEFAULT_WIDTH = 1920;
132     vDecSample->DEFAULT_HEIGHT = 1080;
133     vDecSample->DEFAULT_FRAME_RATE = 30;
134     vDecSample->SF_OUTPUT = false;
135     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
136     vDecSample->WaitForEOS();
137     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
138 }
139 
140 /**
141  * @tc.number    : VIDEO_HWDEC_H264_01_0100
142  * @tc.name      : hardware decode 4k frame
143  * @tc.desc      : function test
144  */
145 HWTEST_F(HwdecNdkTest, VIDEO_HWDEC_H264_01_0100, TestSize.Level0)
146 {
147     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
148     vDecSample->INP_DIR = "/data/test/media/4096_2160_60_30Mb.h264";
149     vDecSample->DEFAULT_WIDTH = 3840;
150     vDecSample->DEFAULT_HEIGHT = 2160;
151     vDecSample->DEFAULT_FRAME_RATE = 30;
152     vDecSample->SF_OUTPUT = false;
153     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
154     vDecSample->WaitForEOS();
155     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
156 }
157 
158 /**
159  * @tc.number    : VIDEO_HWDEC_H264_01_0200
160  * @tc.name      : hardware decode 4k frame
161  * @tc.desc      : function test
162  */
163 HWTEST_F(HwdecNdkTest, VIDEO_HWDEC_H264_01_0200, TestSize.Level0)
164 {
165     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
166     vDecSample->INP_DIR = "/data/test/media/3840_2160_60_10M.h264";
167     vDecSample->DEFAULT_WIDTH = 3840;
168     vDecSample->DEFAULT_HEIGHT = 2160;
169     vDecSample->DEFAULT_FRAME_RATE = 30;
170     vDecSample->SF_OUTPUT = false;
171     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
172     vDecSample->WaitForEOS();
173     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
174 }
175 
176 /**
177  * @tc.number    : VIDEO_HWDEC_H264_01_0300
178  * @tc.name      : hardware decode 1080p frame
179  * @tc.desc      : function test
180  */
181 HWTEST_F(HwdecNdkTest, VIDEO_HWDEC_H264_01_0300, TestSize.Level0)
182 {
183     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
184     vDecSample->INP_DIR = "/data/test/media/1920_1080_60_10M_IP.h264";
185     vDecSample->DEFAULT_WIDTH = 1920;
186     vDecSample->DEFAULT_HEIGHT = 1080;
187     vDecSample->DEFAULT_FRAME_RATE = 30;
188     vDecSample->SF_OUTPUT = false;
189     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
190     vDecSample->WaitForEOS();
191     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
192 }
193 
194 /**
195  * @tc.number    : VIDEO_HWDEC_H264_01_0400
196  * @tc.name      : hardware decode non-standard resolution frame
197  * @tc.desc      : function test
198  */
199 HWTEST_F(HwdecNdkTest, VIDEO_HWDEC_H264_01_0400, TestSize.Level0)
200 {
201     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
202     vDecSample->INP_DIR = "/data/test/media/1504_720_60_10Mb.h264";
203     vDecSample->DEFAULT_WIDTH = 1920;
204     vDecSample->DEFAULT_HEIGHT = 1080;
205     vDecSample->DEFAULT_FRAME_RATE = 30;
206     vDecSample->SF_OUTPUT = false;
207     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
208     vDecSample->WaitForEOS();
209     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
210 }
211 
212 /**
213  * @tc.number    : VIDEO_HWDEC_H264_01_0500
214  * @tc.name      : hardware decode non-standard resolution frame
215  * @tc.desc      : function test
216  */
217 HWTEST_F(HwdecNdkTest, VIDEO_HWDEC_H264_01_0500, TestSize.Level0)
218 {
219     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
220     vDecSample->INP_DIR = "/data/test/media/1440_1080_60_10Mb.h264";
221     vDecSample->DEFAULT_WIDTH = 1920;
222     vDecSample->DEFAULT_HEIGHT = 1080;
223     vDecSample->DEFAULT_FRAME_RATE = 30;
224     vDecSample->SF_OUTPUT = false;
225     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
226     vDecSample->WaitForEOS();
227     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
228 }
229 
230 /**
231  * @tc.number    : VIDEO_HWDEC_H264_01_0600
232  * @tc.name      : hardware decode 720p frame
233  * @tc.desc      : function test
234  */
235 HWTEST_F(HwdecNdkTest, VIDEO_HWDEC_H264_01_0600, TestSize.Level0)
236 {
237     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
238     vDecSample->INP_DIR = "/data/test/media/1280_720_60_10M.h264";
239     vDecSample->DEFAULT_WIDTH = 1920;
240     vDecSample->DEFAULT_HEIGHT = 1080;
241     vDecSample->DEFAULT_FRAME_RATE = 30;
242     vDecSample->SF_OUTPUT = false;
243     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
244     vDecSample->WaitForEOS();
245     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
246 }
247 
248 /**
249  * @tc.number    : VIDEO_HWDEC_H264_01_0700
250  * @tc.name      : hardware decode non-standard resolution frame
251  * @tc.desc      : function test
252  */
253 HWTEST_F(HwdecNdkTest, VIDEO_HWDEC_H264_01_0700, TestSize.Level0)
254 {
255     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
256     vDecSample->INP_DIR = "/data/test/media/1232_768_60_10Mb.h264";
257     vDecSample->DEFAULT_WIDTH = 1920;
258     vDecSample->DEFAULT_HEIGHT = 1080;
259     vDecSample->DEFAULT_FRAME_RATE = 30;
260     vDecSample->SF_OUTPUT = false;
261     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
262     vDecSample->WaitForEOS();
263     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
264 }
265 
266 /**
267  * @tc.number    : VIDEO_HWDEC_H264_01_0800
268  * @tc.name      : hardware decode non-standard resolution frame
269  * @tc.desc      : function test
270  */
271 HWTEST_F(HwdecNdkTest, VIDEO_HWDEC_H264_01_0800, TestSize.Level0)
272 {
273     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
274     vDecSample->INP_DIR = "/data/test/media/1152_720_60_10Mb.h264";
275     vDecSample->DEFAULT_WIDTH = 1920;
276     vDecSample->DEFAULT_HEIGHT = 1080;
277     vDecSample->DEFAULT_FRAME_RATE = 30;
278     vDecSample->SF_OUTPUT = false;
279     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
280     vDecSample->WaitForEOS();
281     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
282 }
283 
284 /**
285  * @tc.number    : VIDEO_HWDEC_H264_01_0900
286  * @tc.name      : hardware decode non-standard resolution frame
287  * @tc.desc      : function test
288  */
289 HWTEST_F(HwdecNdkTest, VIDEO_HWDEC_H264_01_0900, TestSize.Level0)
290 {
291     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
292     vDecSample->INP_DIR = "/data/test/media/960_720_60_10Mb.h264";
293     vDecSample->DEFAULT_WIDTH = 1920;
294     vDecSample->DEFAULT_HEIGHT = 1080;
295     vDecSample->DEFAULT_FRAME_RATE = 30;
296     vDecSample->SF_OUTPUT = false;
297     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
298     vDecSample->WaitForEOS();
299     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
300 }
301 
302 /**
303  * @tc.number    : VIDEO_HWDEC_H264_01_1000
304  * @tc.name      : hardware decode non-standard resolution frame
305  * @tc.desc      : function test
306  */
307 HWTEST_F(HwdecNdkTest, VIDEO_HWDEC_H264_01_1000, TestSize.Level0)
308 {
309     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
310     vDecSample->INP_DIR = "/data/test/media/960_544_60_10Mb.h264";
311     vDecSample->DEFAULT_WIDTH = 1920;
312     vDecSample->DEFAULT_HEIGHT = 1080;
313     vDecSample->DEFAULT_FRAME_RATE = 30;
314     vDecSample->SF_OUTPUT = false;
315     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
316     vDecSample->WaitForEOS();
317     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
318 }
319 
320 /**
321  * @tc.number    : VIDEO_HWDEC_H264_01_1100
322  * @tc.name      : hardware decode non-standard resolution frame
323  * @tc.desc      : function test
324  */
325 HWTEST_F(HwdecNdkTest, VIDEO_HWDEC_H264_01_1100, TestSize.Level0)
326 {
327     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
328     vDecSample->INP_DIR = "/data/test/media/880_720_60_10Mb.h264";
329     vDecSample->DEFAULT_WIDTH = 1920;
330     vDecSample->DEFAULT_HEIGHT = 1080;
331     vDecSample->DEFAULT_FRAME_RATE = 30;
332     vDecSample->SF_OUTPUT = false;
333     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
334     vDecSample->WaitForEOS();
335     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
336 }
337 
338 /**
339  * @tc.number    : VIDEO_HWDEC_H264_01_1200
340  * @tc.name      : hardware decode non-standard resolution frame
341  * @tc.desc      : function test
342  */
343 HWTEST_F(HwdecNdkTest, VIDEO_HWDEC_H264_01_1200, TestSize.Level0)
344 {
345     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
346     vDecSample->INP_DIR = "/data/test/media/720_720_60_10Mb.h264";
347     vDecSample->DEFAULT_WIDTH = 1920;
348     vDecSample->DEFAULT_HEIGHT = 1080;
349     vDecSample->DEFAULT_FRAME_RATE = 30;
350     vDecSample->SF_OUTPUT = false;
351     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
352     vDecSample->WaitForEOS();
353     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
354 }
355 
356 /**
357  * @tc.number    : VIDEO_HWDEC_H264_01_1300
358  * @tc.name      : hardware decode 480p frame
359  * @tc.desc      : function test
360  */
361 HWTEST_F(HwdecNdkTest, VIDEO_HWDEC_H264_01_1300, TestSize.Level0)
362 {
363     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
364     vDecSample->INP_DIR = "/data/test/media/720_480_60_10Mb.h264";
365     vDecSample->DEFAULT_WIDTH = 1920;
366     vDecSample->DEFAULT_HEIGHT = 1080;
367     vDecSample->DEFAULT_FRAME_RATE = 30;
368     vDecSample->SF_OUTPUT = false;
369     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
370     vDecSample->WaitForEOS();
371     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
372 }
373 
374 /**
375  * @tc.number    : VIDEO_HWDEC_H264_01_1400
376  * @tc.name      : hardware decode non-standard resolution frame
377  * @tc.desc      : function test
378  */
379 HWTEST_F(HwdecNdkTest, VIDEO_HWDEC_H264_01_1400, TestSize.Level0)
380 {
381     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
382     vDecSample->INP_DIR = "/data/test/media/640_480_60_10Mb.h264";
383     vDecSample->DEFAULT_WIDTH = 1920;
384     vDecSample->DEFAULT_HEIGHT = 1080;
385     vDecSample->DEFAULT_FRAME_RATE = 30;
386     vDecSample->SF_OUTPUT = false;
387     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
388     vDecSample->WaitForEOS();
389     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
390 }
391 
392 /**
393  * @tc.number    : VIDEO_HWDEC_H264_01_1500
394  * @tc.name      : hardware decode non-standard resolution frame
395  * @tc.desc      : function test
396  */
397 HWTEST_F(HwdecNdkTest, VIDEO_HWDEC_H264_01_1500, TestSize.Level0)
398 {
399     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
400     vDecSample->INP_DIR = "/data/test/media/320_240_60_10Mb.h264";
401     vDecSample->DEFAULT_WIDTH = 1920;
402     vDecSample->DEFAULT_HEIGHT = 1080;
403     vDecSample->DEFAULT_FRAME_RATE = 30;
404     vDecSample->SF_OUTPUT = false;
405     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
406     vDecSample->WaitForEOS();
407     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
408 }
409 
410 /**
411  * @tc.number    : VIDEO_HWDEC_H264_01_1600
412  * @tc.name      : hardware decode non-standard resolution frame
413  * @tc.desc      : function test
414  */
415 HWTEST_F(HwdecNdkTest, VIDEO_HWDEC_H264_01_1600, TestSize.Level0)
416 {
417     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
418     vDecSample->INP_DIR = "/data/test/media/352_288_60_10Mb.h264";
419     vDecSample->DEFAULT_WIDTH = 1920;
420     vDecSample->DEFAULT_HEIGHT = 1080;
421     vDecSample->DEFAULT_FRAME_RATE = 30;
422     vDecSample->SF_OUTPUT = false;
423     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
424     vDecSample->WaitForEOS();
425     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
426 }
427 
428 /**
429  * @tc.number    : VIDEO_HWDEC_H264_02_0100
430  * @tc.name      : hardware decode 1080p frame
431  * @tc.desc      : function test
432  */
433 HWTEST_F(HwdecNdkTest, VIDEO_HWDEC_H264_02_0100, TestSize.Level0)
434 {
435     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
436     vDecSample->INP_DIR = "/data/test/media/1920_1080_60_30M.h264";
437     vDecSample->DEFAULT_WIDTH = 1920;
438     vDecSample->DEFAULT_HEIGHT = 1080;
439     vDecSample->DEFAULT_FRAME_RATE = 30;
440     vDecSample->SF_OUTPUT = false;
441     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
442     vDecSample->WaitForEOS();
443     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
444 }
445 
446 /**
447  * @tc.number    : VIDEO_HWDEC_H264_02_0200
448  * @tc.name      : hardware decode 1080p frame
449  * @tc.desc      : function test
450  */
451 HWTEST_F(HwdecNdkTest, VIDEO_HWDEC_H264_02_0200, TestSize.Level0)
452 {
453     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
454     vDecSample->INP_DIR = "/data/test/media/1920_1080_30_30M.h264";
455     vDecSample->DEFAULT_WIDTH = 1920;
456     vDecSample->DEFAULT_HEIGHT = 1080;
457     vDecSample->DEFAULT_FRAME_RATE = 30;
458     vDecSample->SF_OUTPUT = false;
459     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
460     vDecSample->WaitForEOS();
461     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
462 }
463 
464 /**
465  * @tc.number    : VIDEO_HWDEC_H264_02_0300
466  * @tc.name      : hardware decode 1080p frame
467  * @tc.desc      : function test
468  */
469 HWTEST_F(HwdecNdkTest, VIDEO_HWDEC_H264_02_0300, TestSize.Level0)
470 {
471     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
472     vDecSample->INP_DIR = "/data/test/media/1920_1080_10_30Mb.h264";
473     vDecSample->DEFAULT_WIDTH = 1920;
474     vDecSample->DEFAULT_HEIGHT = 1080;
475     vDecSample->DEFAULT_FRAME_RATE = 30;
476     vDecSample->SF_OUTPUT = false;
477     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
478     vDecSample->WaitForEOS();
479     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
480 }
481 
482 /**
483  * @tc.number    : VIDEO_HWDEC_H264_03_0100
484  * @tc.name      : hardware decode 1080p frame
485  * @tc.desc      : function test
486  */
487 HWTEST_F(HwdecNdkTest, VIDEO_HWDEC_H264_03_0100, TestSize.Level0)
488 {
489     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
490     vDecSample->INP_DIR = "/data/test/media/1920_1080_60_30M.h264";
491     vDecSample->DEFAULT_WIDTH = 1920;
492     vDecSample->DEFAULT_HEIGHT = 1080;
493     vDecSample->DEFAULT_FRAME_RATE = 30;
494     vDecSample->SF_OUTPUT = false;
495     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
496     vDecSample->WaitForEOS();
497     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
498 }
499 
500 /**
501  * @tc.number    : VIDEO_HWDEC_H264_03_0200
502  * @tc.name      : hardware decode 1080p frame
503  * @tc.desc      : function test
504  */
505 HWTEST_F(HwdecNdkTest, VIDEO_HWDEC_H264_03_0200, TestSize.Level0)
506 {
507     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
508     vDecSample->INP_DIR = "/data/test/media/1920_1080_60_30M.h264";
509     vDecSample->DEFAULT_WIDTH = 1920;
510     vDecSample->DEFAULT_HEIGHT = 1080;
511     vDecSample->DEFAULT_FRAME_RATE = 30;
512     vDecSample->SF_OUTPUT = false;
513     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
514     vDecSample->WaitForEOS();
515     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
516 }
517 
518 /**
519  * @tc.number    : VIDEO_HWDEC_H264_03_0300
520  * @tc.name      : hardware decode 1080p frame
521  * @tc.desc      : function test
522  */
523 HWTEST_F(HwdecNdkTest, VIDEO_HWDEC_H264_03_0300, TestSize.Level0)
524 {
525     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
526     vDecSample->INP_DIR = "/data/test/media/1920_1080_60_20M.h264";
527     vDecSample->DEFAULT_WIDTH = 1920;
528     vDecSample->DEFAULT_HEIGHT = 1080;
529     vDecSample->DEFAULT_FRAME_RATE = 30;
530     vDecSample->SF_OUTPUT = false;
531     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
532     vDecSample->WaitForEOS();
533     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
534 }
535 
536 /**
537  * @tc.number    : VIDEO_HWDEC_H264_03_0400
538  * @tc.name      : hardware decode 1080p frame
539  * @tc.desc      : function test
540  */
541 HWTEST_F(HwdecNdkTest, VIDEO_HWDEC_H264_03_0400, TestSize.Level0)
542 {
543     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
544     vDecSample->INP_DIR = "/data/test/media/1920_1080_60_3M.h264";
545     vDecSample->DEFAULT_WIDTH = 1920;
546     vDecSample->DEFAULT_HEIGHT = 1080;
547     vDecSample->DEFAULT_FRAME_RATE = 30;
548     vDecSample->SF_OUTPUT = false;
549     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
550     vDecSample->WaitForEOS();
551     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
552 }
553 
554 /**
555  * @tc.number    : VIDEO_HWDEC_H264_03_0500
556  * @tc.name      : hardware decode 1080p frame
557  * @tc.desc      : function test
558  */
559 HWTEST_F(HwdecNdkTest, VIDEO_HWDEC_H264_03_0500, TestSize.Level0)
560 {
561     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
562     vDecSample->INP_DIR = "/data/test/media/1920_1080_60_2M.h264";
563     vDecSample->DEFAULT_WIDTH = 1920;
564     vDecSample->DEFAULT_HEIGHT = 1080;
565     vDecSample->DEFAULT_FRAME_RATE = 30;
566     vDecSample->SF_OUTPUT = false;
567     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
568     vDecSample->WaitForEOS();
569     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
570 }
571 
572 /**
573  * @tc.number    : VIDEO_HWDEC_H264_03_0600
574  * @tc.name      : hardware decode 1080p frame
575  * @tc.desc      : function test
576  */
577 HWTEST_F(HwdecNdkTest, VIDEO_HWDEC_H264_03_0600, TestSize.Level0)
578 {
579     shared_ptr<VDecNdkSample> vDecSample = make_shared<VDecNdkSample>();
580     vDecSample->INP_DIR = "/data/test/media/1920_1080_60_1M.h264";
581     vDecSample->DEFAULT_WIDTH = 1920;
582     vDecSample->DEFAULT_HEIGHT = 1080;
583     vDecSample->DEFAULT_FRAME_RATE = 30;
584     vDecSample->SF_OUTPUT = false;
585     ASSERT_EQ(AV_ERR_OK, vDecSample->RunVideoDec(g_codecName));
586     vDecSample->WaitForEOS();
587     ASSERT_EQ(AV_ERR_OK, vDecSample->errCount);
588 }
589 } // namespace