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