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