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
26 #include "gtest/gtest.h"
27 #include "videodec_ndk_sample.h"
28 using namespace std;
29 using namespace OHOS;
30 using namespace OHOS::Media;
31 using namespace testing::ext;
32 namespace OHOS {
33 namespace Media {
34 class SwdecCompNdkTest : public testing::Test {
35 public:
36 // SetUpTestCase: Called before all test cases
37 static void SetUpTestCase(void);
38 // TearDownTestCase: Called after all test case
39 static void TearDownTestCase(void);
40 // SetUp: Called before each test cases
41 void SetUp(void);
42 // TearDown: Called after each test cases
43 void TearDown(void);
44
45 protected:
46 const ::testing::TestInfo *testInfo_ = nullptr;
47 bool createCodecSuccess_ = false;
48 };
49
SetUpTestCase(void)50 void SwdecCompNdkTest::SetUpTestCase(void) {}
TearDownTestCase(void)51 void SwdecCompNdkTest::TearDownTestCase(void) {}
SetUp(void)52 void SwdecCompNdkTest::SetUp(void) {}
TearDown(void)53 void SwdecCompNdkTest::TearDown(void) {}
54 } // namespace Media
55 } // namespace OHOS
56
57 namespace {
58 /**
59 * @tc.number : VIDEO_SWDEC_H264_IPB_0100
60 * @tc.name : software decode all idr frame
61 * @tc.desc : function test
62 */
63 HWTEST_F(SwdecCompNdkTest, VIDEO_SWDEC_H264_IPB_0100, TestSize.Level0)
64 {
65 VDecNdkSample *vDecSample = new VDecNdkSample();
66
67 int32_t ret = vDecSample->CreateVideoDecoder("OH.Media.Codec.Decoder.Video.AVC");
68 ASSERT_EQ(AV_ERR_OK, ret);
69 ret = vDecSample->SetVideoDecoderCallback();
70 ASSERT_EQ(AV_ERR_OK, ret);
71 ret = vDecSample->ConfigureVideoDecoder();
72 ASSERT_EQ(AV_ERR_OK, ret);
73 vDecSample->INP_DIR = "/data/test/media/1920x1080I.h264";
74 ret = vDecSample->StartVideoDecoder();
75 ASSERT_EQ(AV_ERR_OK, ret);
76 vDecSample->WaitForEOS();
77 ASSERT_EQ(0, vDecSample->errCount);
78 vDecSample->Stop();
79 cout << "aaa" << endl;
80 vDecSample->Release();
81 cout << "bbb" << endl;
82 }
83
84 /**
85 * @tc.number : VIDEO_SWDEC_H264_IPB_0200
86 * @tc.name : software decode single idr frame
87 * @tc.desc : function test
88 */
89 HWTEST_F(SwdecCompNdkTest, VIDEO_SWDEC_H264_IPB_0200, TestSize.Level0)
90 {
91 VDecNdkSample *vDecSample = new VDecNdkSample();
92
93 int32_t ret = vDecSample->CreateVideoDecoder("OH.Media.Codec.Decoder.Video.AVC");
94 ASSERT_EQ(AV_ERR_OK, ret);
95 ret = vDecSample->SetVideoDecoderCallback();
96 ASSERT_EQ(AV_ERR_OK, ret);
97 ret = vDecSample->ConfigureVideoDecoder();
98 ASSERT_EQ(AV_ERR_OK, ret);
99 vDecSample->INP_DIR = "/data/test/media/1920x1080IP.h264";
100 ret = vDecSample->StartVideoDecoder();
101 ASSERT_EQ(AV_ERR_OK, ret);
102 vDecSample->WaitForEOS();
103 ASSERT_EQ(0, vDecSample->errCount);
104 vDecSample->Stop();
105 vDecSample->Release();
106 }
107
108 /**
109 * @tc.number : VIDEO_SWDEC_H264_IPB_0300
110 * @tc.name : software decode all idr frame
111 * @tc.desc : function test
112 */
113 HWTEST_F(SwdecCompNdkTest, VIDEO_SWDEC_H264_IPB_0300, TestSize.Level0)
114 {
115 VDecNdkSample *vDecSample = new VDecNdkSample();
116
117 int32_t ret = vDecSample->CreateVideoDecoder("OH.Media.Codec.Decoder.Video.AVC");
118 ASSERT_EQ(AV_ERR_OK, ret);
119 ret = vDecSample->SetVideoDecoderCallback();
120 ASSERT_EQ(AV_ERR_OK, ret);
121 ret = vDecSample->ConfigureVideoDecoder();
122 ASSERT_EQ(AV_ERR_OK, ret);
123 vDecSample->INP_DIR = "/data/test/media/1920x1080IPB.h264";
124 ret = vDecSample->StartVideoDecoder();
125 ASSERT_EQ(AV_ERR_OK, ret);
126 vDecSample->WaitForEOS();
127 ASSERT_EQ(0, vDecSample->errCount);
128 vDecSample->Stop();
129 vDecSample->Release();
130 }
131
132 /**
133 * @tc.number : VIDEO_SWDEC_H264_SVC_0100
134 * @tc.name : software decode all type frame
135 * @tc.desc : function test
136 */
137 HWTEST_F(SwdecCompNdkTest, VIDEO_SWDEC_H264_SVC_0100, TestSize.Level0)
138 {
139 VDecNdkSample *vDecSample = new VDecNdkSample();
140
141 int32_t ret = vDecSample->CreateVideoDecoder("OH.Media.Codec.Decoder.Video.AVC");
142 ASSERT_EQ(AV_ERR_OK, ret);
143 ret = vDecSample->SetVideoDecoderCallback();
144 ASSERT_EQ(AV_ERR_OK, ret);
145 ret = vDecSample->ConfigureVideoDecoder();
146 ASSERT_EQ(AV_ERR_OK, ret);
147 vDecSample->INP_DIR = "/data/test/media/1920x1080IPB.h264";
148 ret = vDecSample->StartVideoDecoder();
149 ASSERT_EQ(AV_ERR_OK, ret);
150 vDecSample->WaitForEOS();
151 ASSERT_EQ(0, vDecSample->errCount);
152 vDecSample->Stop();
153 vDecSample->Release();
154 }
155
156 /**
157 * @tc.number : VIDEO_SWDEC_H264_01_0200
158 * @tc.name : software decode frame
159 * @tc.desc : function test
160 */
161 HWTEST_F(SwdecCompNdkTest, VIDEO_SWDEC_H264_01_0200, TestSize.Level0)
162 {
163 VDecNdkSample *vDecSample = new VDecNdkSample();
164
165 int32_t ret = vDecSample->CreateVideoDecoder("OH.Media.Codec.Decoder.Video.AVC");
166 ASSERT_EQ(AV_ERR_OK, ret);
167 ret = vDecSample->SetVideoDecoderCallback();
168 ASSERT_EQ(AV_ERR_OK, ret);
169 ret = vDecSample->ConfigureVideoDecoder();
170 ASSERT_EQ(AV_ERR_OK, ret);
171 vDecSample->INP_DIR = "/data/test/media/3840x2160_60_10Mb.h264";
172 ret = vDecSample->StartVideoDecoder();
173 ASSERT_EQ(AV_ERR_OK, ret);
174 vDecSample->WaitForEOS();
175 ASSERT_EQ(0, vDecSample->errCount);
176 vDecSample->Stop();
177 vDecSample->Release();
178 }
179
180 /**
181 * @tc.number : VIDEO_SWDEC_H264_01_0300
182 * @tc.name : software decode frame
183 * @tc.desc : function test
184 */
185 HWTEST_F(SwdecCompNdkTest, VIDEO_SWDEC_H264_01_0300, TestSize.Level0)
186 {
187 VDecNdkSample *vDecSample = new VDecNdkSample();
188
189 int32_t ret = vDecSample->CreateVideoDecoder("OH.Media.Codec.Decoder.Video.AVC");
190 ASSERT_EQ(AV_ERR_OK, ret);
191 ret = vDecSample->SetVideoDecoderCallback();
192 ASSERT_EQ(AV_ERR_OK, ret);
193 ret = vDecSample->ConfigureVideoDecoder();
194 ASSERT_EQ(AV_ERR_OK, ret);
195 vDecSample->INP_DIR = "/data/test/media/1920x1080_60_10Mb.h264";
196 ret = vDecSample->StartVideoDecoder();
197 ASSERT_EQ(AV_ERR_OK, ret);
198 vDecSample->WaitForEOS();
199 ASSERT_EQ(0, vDecSample->errCount);
200 vDecSample->Stop();
201 vDecSample->Release();
202 }
203
204 /**
205 * @tc.number : VIDEO_SWDEC_H264_01_0400
206 * @tc.name : software decode frame
207 * @tc.desc : function test
208 */
209 HWTEST_F(SwdecCompNdkTest, VIDEO_SWDEC_H264_01_0400, TestSize.Level0)
210 {
211 VDecNdkSample *vDecSample = new VDecNdkSample();
212
213 int32_t ret = vDecSample->CreateVideoDecoder("OH.Media.Codec.Decoder.Video.AVC");
214 ASSERT_EQ(AV_ERR_OK, ret);
215 ret = vDecSample->SetVideoDecoderCallback();
216 ASSERT_EQ(AV_ERR_OK, ret);
217 ret = vDecSample->ConfigureVideoDecoder();
218 ASSERT_EQ(AV_ERR_OK, ret);
219 vDecSample->INP_DIR = "/data/test/media/1504x720_60_10Mb.h264";
220 ret = vDecSample->StartVideoDecoder();
221 ASSERT_EQ(AV_ERR_OK, ret);
222 vDecSample->WaitForEOS();
223 ASSERT_EQ(0, vDecSample->errCount);
224 vDecSample->Stop();
225 vDecSample->Release();
226 }
227
228 /**
229 * @tc.number : VIDEO_SWDEC_H264_01_0500
230 * @tc.name : software decode frame
231 * @tc.desc : function test
232 */
233 HWTEST_F(SwdecCompNdkTest, VIDEO_SWDEC_H264_01_0500, TestSize.Level0)
234 {
235 VDecNdkSample *vDecSample = new VDecNdkSample();
236
237 int32_t ret = vDecSample->CreateVideoDecoder("OH.Media.Codec.Decoder.Video.AVC");
238 ASSERT_EQ(AV_ERR_OK, ret);
239 ret = vDecSample->SetVideoDecoderCallback();
240 ASSERT_EQ(AV_ERR_OK, ret);
241 ret = vDecSample->ConfigureVideoDecoder();
242 ASSERT_EQ(AV_ERR_OK, ret);
243 vDecSample->INP_DIR = "/data/test/media/1440x1080_60_10Mb.h264";
244 ret = vDecSample->StartVideoDecoder();
245 ASSERT_EQ(AV_ERR_OK, ret);
246 vDecSample->WaitForEOS();
247 ASSERT_EQ(0, vDecSample->errCount);
248 vDecSample->Stop();
249 vDecSample->Release();
250 }
251
252 /**
253 * @tc.number : VIDEO_SWDEC_H264_01_0600
254 * @tc.name : software decode frame
255 * @tc.desc : function test
256 */
257 HWTEST_F(SwdecCompNdkTest, VIDEO_SWDEC_H264_01_0600, TestSize.Level0)
258 {
259 VDecNdkSample *vDecSample = new VDecNdkSample();
260
261 int32_t ret = vDecSample->CreateVideoDecoder("OH.Media.Codec.Decoder.Video.AVC");
262 ASSERT_EQ(AV_ERR_OK, ret);
263 ret = vDecSample->SetVideoDecoderCallback();
264 ASSERT_EQ(AV_ERR_OK, ret);
265 ret = vDecSample->ConfigureVideoDecoder();
266 ASSERT_EQ(AV_ERR_OK, ret);
267 vDecSample->INP_DIR = "/data/test/media/1280x720_60_10Mb.h264";
268 ret = vDecSample->StartVideoDecoder();
269 ASSERT_EQ(AV_ERR_OK, ret);
270 vDecSample->WaitForEOS();
271 ASSERT_EQ(0, vDecSample->errCount);
272 vDecSample->Stop();
273 vDecSample->Release();
274 }
275
276 /**
277 * @tc.number : VIDEO_SWDEC_H264_01_0700
278 * @tc.name : software decode frame
279 * @tc.desc : function test
280 */
281 HWTEST_F(SwdecCompNdkTest, VIDEO_SWDEC_H264_01_0700, TestSize.Level0)
282 {
283 VDecNdkSample *vDecSample = new VDecNdkSample();
284
285 int32_t ret = vDecSample->CreateVideoDecoder("OH.Media.Codec.Decoder.Video.AVC");
286 ASSERT_EQ(AV_ERR_OK, ret);
287 ret = vDecSample->SetVideoDecoderCallback();
288 ASSERT_EQ(AV_ERR_OK, ret);
289 ret = vDecSample->ConfigureVideoDecoder();
290 ASSERT_EQ(AV_ERR_OK, ret);
291 vDecSample->INP_DIR = "/data/test/media/1232x768_60_10Mb.h264";
292 ret = vDecSample->StartVideoDecoder();
293 ASSERT_EQ(AV_ERR_OK, ret);
294 vDecSample->WaitForEOS();
295 ASSERT_EQ(0, vDecSample->errCount);
296 vDecSample->Stop();
297 vDecSample->Release();
298 }
299
300 /**
301 * @tc.number : VIDEO_SWDEC_H264_01_0800
302 * @tc.name : software decode frame
303 * @tc.desc : function test
304 */
305 HWTEST_F(SwdecCompNdkTest, VIDEO_SWDEC_H264_01_0800, TestSize.Level0)
306 {
307 VDecNdkSample *vDecSample = new VDecNdkSample();
308
309 int32_t ret = vDecSample->CreateVideoDecoder("OH.Media.Codec.Decoder.Video.AVC");
310 ASSERT_EQ(AV_ERR_OK, ret);
311 ret = vDecSample->SetVideoDecoderCallback();
312 ASSERT_EQ(AV_ERR_OK, ret);
313 ret = vDecSample->ConfigureVideoDecoder();
314 ASSERT_EQ(AV_ERR_OK, ret);
315 vDecSample->INP_DIR = "/data/test/media/1152x720_60_10Mb.h264";
316 ret = vDecSample->StartVideoDecoder();
317 ASSERT_EQ(AV_ERR_OK, ret);
318 vDecSample->WaitForEOS();
319 ASSERT_EQ(0, vDecSample->errCount);
320 vDecSample->Stop();
321 vDecSample->Release();
322 }
323
324 /**
325 * @tc.number : VIDEO_SWDEC_H264_01_0900
326 * @tc.name : software decode frame
327 * @tc.desc : function test
328 */
329 HWTEST_F(SwdecCompNdkTest, VIDEO_SWDEC_H264_01_0900, TestSize.Level0)
330 {
331 VDecNdkSample *vDecSample = new VDecNdkSample();
332
333 int32_t ret = vDecSample->CreateVideoDecoder("OH.Media.Codec.Decoder.Video.AVC");
334 ASSERT_EQ(AV_ERR_OK, ret);
335 ret = vDecSample->SetVideoDecoderCallback();
336 ASSERT_EQ(AV_ERR_OK, ret);
337 ret = vDecSample->ConfigureVideoDecoder();
338 ASSERT_EQ(AV_ERR_OK, ret);
339 vDecSample->INP_DIR = "/data/test/media/960x720_60_10Mb.h264";
340 ret = vDecSample->StartVideoDecoder();
341 ASSERT_EQ(AV_ERR_OK, ret);
342 vDecSample->WaitForEOS();
343 ASSERT_EQ(0, vDecSample->errCount);
344 vDecSample->Stop();
345 vDecSample->Release();
346 }
347
348 /**
349 * @tc.number : VIDEO_SWDEC_H264_01_1000
350 * @tc.name : software decode frame
351 * @tc.desc : function test
352 */
353 HWTEST_F(SwdecCompNdkTest, VIDEO_SWDEC_H264_01_1000, TestSize.Level0)
354 {
355 VDecNdkSample *vDecSample = new VDecNdkSample();
356
357 int32_t ret = vDecSample->CreateVideoDecoder("OH.Media.Codec.Decoder.Video.AVC");
358 ASSERT_EQ(AV_ERR_OK, ret);
359 ret = vDecSample->SetVideoDecoderCallback();
360 ASSERT_EQ(AV_ERR_OK, ret);
361 ret = vDecSample->ConfigureVideoDecoder();
362 ASSERT_EQ(AV_ERR_OK, ret);
363 vDecSample->INP_DIR = "/data/test/media/960x544_60_10Mb.h264";
364 ret = vDecSample->StartVideoDecoder();
365 ASSERT_EQ(AV_ERR_OK, ret);
366 vDecSample->WaitForEOS();
367 ASSERT_EQ(0, vDecSample->errCount);
368 vDecSample->Stop();
369 vDecSample->Release();
370 }
371
372 /**
373 * @tc.number : VIDEO_SWDEC_H264_01_1100
374 * @tc.name : software decode frame
375 * @tc.desc : function test
376 */
377 HWTEST_F(SwdecCompNdkTest, VIDEO_SWDEC_H264_01_1100, TestSize.Level0)
378 {
379 VDecNdkSample *vDecSample = new VDecNdkSample();
380
381 int32_t ret = vDecSample->CreateVideoDecoder("OH.Media.Codec.Decoder.Video.AVC");
382 ASSERT_EQ(AV_ERR_OK, ret);
383 ret = vDecSample->SetVideoDecoderCallback();
384 ASSERT_EQ(AV_ERR_OK, ret);
385 ret = vDecSample->ConfigureVideoDecoder();
386 ASSERT_EQ(AV_ERR_OK, ret);
387 vDecSample->INP_DIR = "/data/test/media/880x720_60_10Mb.h264";
388 ret = vDecSample->StartVideoDecoder();
389 ASSERT_EQ(AV_ERR_OK, ret);
390 vDecSample->WaitForEOS();
391 ASSERT_EQ(0, vDecSample->errCount);
392 vDecSample->Stop();
393 vDecSample->Release();
394 }
395
396 /**
397 * @tc.number : VIDEO_SWDEC_H264_01_1200
398 * @tc.name : software decode frame
399 * @tc.desc : function test
400 */
401 HWTEST_F(SwdecCompNdkTest, VIDEO_SWDEC_H264_01_1200, TestSize.Level0)
402 {
403 VDecNdkSample *vDecSample = new VDecNdkSample();
404
405 int32_t ret = vDecSample->CreateVideoDecoder("OH.Media.Codec.Decoder.Video.AVC");
406 ASSERT_EQ(AV_ERR_OK, ret);
407 ret = vDecSample->SetVideoDecoderCallback();
408 ASSERT_EQ(AV_ERR_OK, ret);
409 ret = vDecSample->ConfigureVideoDecoder();
410 ASSERT_EQ(AV_ERR_OK, ret);
411 vDecSample->INP_DIR = "/data/test/media/720x720_60_10Mb.h264";
412 ret = vDecSample->StartVideoDecoder();
413 ASSERT_EQ(AV_ERR_OK, ret);
414 vDecSample->WaitForEOS();
415 ASSERT_EQ(0, vDecSample->errCount);
416 vDecSample->Stop();
417 vDecSample->Release();
418 }
419
420 /**
421 * @tc.number : VIDEO_SWDEC_H264_01_1300
422 * @tc.name : software decode frame
423 * @tc.desc : function test
424 */
425 HWTEST_F(SwdecCompNdkTest, VIDEO_SWDEC_H264_01_1300, TestSize.Level0)
426 {
427 VDecNdkSample *vDecSample = new VDecNdkSample();
428
429 int32_t ret = vDecSample->CreateVideoDecoder("OH.Media.Codec.Decoder.Video.AVC");
430 ASSERT_EQ(AV_ERR_OK, ret);
431 ret = vDecSample->SetVideoDecoderCallback();
432 ASSERT_EQ(AV_ERR_OK, ret);
433 ret = vDecSample->ConfigureVideoDecoder();
434 ASSERT_EQ(AV_ERR_OK, ret);
435 vDecSample->INP_DIR = "/data/test/media/720x480_60_10Mb.h264";
436 ret = vDecSample->StartVideoDecoder();
437 ASSERT_EQ(AV_ERR_OK, ret);
438 vDecSample->WaitForEOS();
439 ASSERT_EQ(0, vDecSample->errCount);
440 vDecSample->Stop();
441 vDecSample->Release();
442 }
443
444 /**
445 * @tc.number : VIDEO_SWDEC_H264_01_1400
446 * @tc.name : software decode frame
447 * @tc.desc : function test
448 */
449 HWTEST_F(SwdecCompNdkTest, VIDEO_SWDEC_H264_01_1400, TestSize.Level0)
450 {
451 VDecNdkSample *vDecSample = new VDecNdkSample();
452
453 int32_t ret = vDecSample->CreateVideoDecoder("OH.Media.Codec.Decoder.Video.AVC");
454 ASSERT_EQ(AV_ERR_OK, ret);
455 ret = vDecSample->SetVideoDecoderCallback();
456 ASSERT_EQ(AV_ERR_OK, ret);
457 ret = vDecSample->ConfigureVideoDecoder();
458 ASSERT_EQ(AV_ERR_OK, ret);
459 vDecSample->INP_DIR = "/data/test/media/640x480_60_10Mb.h264";
460 ret = vDecSample->StartVideoDecoder();
461 ASSERT_EQ(AV_ERR_OK, ret);
462 vDecSample->WaitForEOS();
463 ASSERT_EQ(0, vDecSample->errCount);
464 vDecSample->Stop();
465 vDecSample->Release();
466 }
467
468 /**
469 * @tc.number : VIDEO_SWDEC_H264_01_1500
470 * @tc.name : software decode frame
471 * @tc.desc : function test
472 */
473 HWTEST_F(SwdecCompNdkTest, VIDEO_SWDEC_H264_01_1500, TestSize.Level0)
474 {
475 VDecNdkSample *vDecSample = new VDecNdkSample();
476
477 int32_t ret = vDecSample->CreateVideoDecoder("OH.Media.Codec.Decoder.Video.AVC");
478 ASSERT_EQ(AV_ERR_OK, ret);
479 ret = vDecSample->SetVideoDecoderCallback();
480 ASSERT_EQ(AV_ERR_OK, ret);
481 ret = vDecSample->ConfigureVideoDecoder();
482 ASSERT_EQ(AV_ERR_OK, ret);
483 vDecSample->INP_DIR = "/data/test/media/320x240_60_10Mb.h264";
484 ret = vDecSample->StartVideoDecoder();
485 ASSERT_EQ(AV_ERR_OK, ret);
486 vDecSample->WaitForEOS();
487 ASSERT_EQ(0, vDecSample->errCount);
488 vDecSample->Stop();
489 vDecSample->Release();
490 }
491
492 /**
493 * @tc.number : VIDEO_SWDEC_H264_01_1600
494 * @tc.name : software decode frame
495 * @tc.desc : function test
496 */
497 HWTEST_F(SwdecCompNdkTest, VIDEO_SWDEC_H264_01_1600, TestSize.Level0)
498 {
499 VDecNdkSample *vDecSample = new VDecNdkSample();
500
501 int32_t ret = vDecSample->CreateVideoDecoder("OH.Media.Codec.Decoder.Video.AVC");
502 ASSERT_EQ(AV_ERR_OK, ret);
503 ret = vDecSample->SetVideoDecoderCallback();
504 ASSERT_EQ(AV_ERR_OK, ret);
505 ret = vDecSample->ConfigureVideoDecoder();
506 ASSERT_EQ(AV_ERR_OK, ret);
507 vDecSample->INP_DIR = "/data/test/media/352x288_60_10Mb.h264";
508 ret = vDecSample->StartVideoDecoder();
509 ASSERT_EQ(AV_ERR_OK, ret);
510 vDecSample->WaitForEOS();
511 ASSERT_EQ(0, vDecSample->errCount);
512 vDecSample->Stop();
513 vDecSample->Release();
514 }
515
516 /**
517 * @tc.number : VIDEO_SWDEC_H264_02_0100
518 * @tc.name : software decode frame
519 * @tc.desc : function test
520 */
521 HWTEST_F(SwdecCompNdkTest, VIDEO_SWDEC_H264_02_0100, TestSize.Level0)
522 {
523 VDecNdkSample *vDecSample = new VDecNdkSample();
524
525 int32_t ret = vDecSample->CreateVideoDecoder("OH.Media.Codec.Decoder.Video.AVC");
526 ASSERT_EQ(AV_ERR_OK, ret);
527 ret = vDecSample->SetVideoDecoderCallback();
528 ASSERT_EQ(AV_ERR_OK, ret);
529 ret = vDecSample->ConfigureVideoDecoder();
530 ASSERT_EQ(AV_ERR_OK, ret);
531 vDecSample->INP_DIR = "/data/test/media/1920x1080_60_30Mb.h264";
532 ret = vDecSample->StartVideoDecoder();
533 ASSERT_EQ(AV_ERR_OK, ret);
534 vDecSample->WaitForEOS();
535 ASSERT_EQ(0, vDecSample->errCount);
536 vDecSample->Stop();
537 vDecSample->Release();
538 }
539
540 /**
541 * @tc.number : VIDEO_SWDEC_H264_02_0200
542 * @tc.name : software decode frame
543 * @tc.desc : function test
544 */
545 HWTEST_F(SwdecCompNdkTest, VIDEO_SWDEC_H264_02_0200, TestSize.Level0)
546 {
547 VDecNdkSample *vDecSample = new VDecNdkSample();
548
549 int32_t ret = vDecSample->CreateVideoDecoder("OH.Media.Codec.Decoder.Video.AVC");
550 ASSERT_EQ(AV_ERR_OK, ret);
551 ret = vDecSample->SetVideoDecoderCallback();
552 ASSERT_EQ(AV_ERR_OK, ret);
553 ret = vDecSample->ConfigureVideoDecoder();
554 ASSERT_EQ(AV_ERR_OK, ret);
555 vDecSample->INP_DIR = "/data/test/media/1920x1080_30_30Mb.h264";
556 ret = vDecSample->StartVideoDecoder();
557 ASSERT_EQ(AV_ERR_OK, ret);
558 vDecSample->WaitForEOS();
559 ASSERT_EQ(0, vDecSample->errCount);
560 vDecSample->Stop();
561 vDecSample->Release();
562 }
563
564 /**
565 * @tc.number : VIDEO_SWDEC_H264_02_0300
566 * @tc.name : software decode frame
567 * @tc.desc : function test
568 */
569 HWTEST_F(SwdecCompNdkTest, VIDEO_SWDEC_H264_02_0300, TestSize.Level0)
570 {
571 VDecNdkSample *vDecSample = new VDecNdkSample();
572
573 int32_t ret = vDecSample->CreateVideoDecoder("OH.Media.Codec.Decoder.Video.AVC");
574 ASSERT_EQ(AV_ERR_OK, ret);
575 ret = vDecSample->SetVideoDecoderCallback();
576 ASSERT_EQ(AV_ERR_OK, ret);
577 ret = vDecSample->ConfigureVideoDecoder();
578 ASSERT_EQ(AV_ERR_OK, ret);
579 vDecSample->INP_DIR = "/data/test/media/1920x1080_10_30Mb.h264";
580 ret = vDecSample->StartVideoDecoder();
581 ASSERT_EQ(AV_ERR_OK, ret);
582 vDecSample->WaitForEOS();
583 ASSERT_EQ(0, vDecSample->errCount);
584 vDecSample->Stop();
585 vDecSample->Release();
586 }
587
588 /**
589 * @tc.number : VIDEO_SWDEC_H264_03_0100
590 * @tc.name : software decode frame
591 * @tc.desc : function test
592 */
593 HWTEST_F(SwdecCompNdkTest, VIDEO_SWDEC_H264_03_0100, TestSize.Level0)
594 {
595 VDecNdkSample *vDecSample = new VDecNdkSample();
596
597 int32_t ret = vDecSample->CreateVideoDecoder("OH.Media.Codec.Decoder.Video.AVC");
598 ASSERT_EQ(AV_ERR_OK, ret);
599 ret = vDecSample->SetVideoDecoderCallback();
600 ASSERT_EQ(AV_ERR_OK, ret);
601 ret = vDecSample->ConfigureVideoDecoder();
602 ASSERT_EQ(AV_ERR_OK, ret);
603 vDecSample->INP_DIR = "/data/test/media/1920x1080_60_30Mb.h264";
604 ret = vDecSample->StartVideoDecoder();
605 ASSERT_EQ(AV_ERR_OK, ret);
606 vDecSample->WaitForEOS();
607 ASSERT_EQ(0, vDecSample->errCount);
608 vDecSample->Stop();
609 vDecSample->Release();
610 }
611
612 /**
613 * @tc.number : VIDEO_SWDEC_H264_03_0200
614 * @tc.name : software decode frame
615 * @tc.desc : function test
616 */
617 HWTEST_F(SwdecCompNdkTest, VIDEO_SWDEC_H264_03_0200, TestSize.Level0)
618 {
619 VDecNdkSample *vDecSample = new VDecNdkSample();
620
621 int32_t ret = vDecSample->CreateVideoDecoder("OH.Media.Codec.Decoder.Video.AVC");
622 ASSERT_EQ(AV_ERR_OK, ret);
623 ret = vDecSample->SetVideoDecoderCallback();
624 ASSERT_EQ(AV_ERR_OK, ret);
625 ret = vDecSample->ConfigureVideoDecoder();
626 ASSERT_EQ(AV_ERR_OK, ret);
627 vDecSample->INP_DIR = "/data/test/media/1920x1080_60_30Mb.h264";
628 ret = vDecSample->StartVideoDecoder();
629 ASSERT_EQ(AV_ERR_OK, ret);
630 vDecSample->WaitForEOS();
631 ASSERT_EQ(0, vDecSample->errCount);
632 vDecSample->Stop();
633 vDecSample->Release();
634 }
635
636 /**
637 * @tc.number : VIDEO_SWDEC_H264_03_0300
638 * @tc.name : software decode frame
639 * @tc.desc : function test
640 */
641 HWTEST_F(SwdecCompNdkTest, VIDEO_SWDEC_H264_03_0300, TestSize.Level0)
642 {
643 VDecNdkSample *vDecSample = new VDecNdkSample();
644
645 int32_t ret = vDecSample->CreateVideoDecoder("OH.Media.Codec.Decoder.Video.AVC");
646 ASSERT_EQ(AV_ERR_OK, ret);
647 ret = vDecSample->SetVideoDecoderCallback();
648 ASSERT_EQ(AV_ERR_OK, ret);
649 ret = vDecSample->ConfigureVideoDecoder();
650 ASSERT_EQ(AV_ERR_OK, ret);
651 vDecSample->INP_DIR = "/data/test/media/1920x1080_60_20Mb.h264";
652 ret = vDecSample->StartVideoDecoder();
653 ASSERT_EQ(AV_ERR_OK, ret);
654 vDecSample->WaitForEOS();
655 ASSERT_EQ(0, vDecSample->errCount);
656 vDecSample->Stop();
657 vDecSample->Release();
658 }
659
660 /**
661 * @tc.number : VIDEO_SWDEC_H264_03_0400
662 * @tc.name : software decode frame
663 * @tc.desc : function test
664 */
665 HWTEST_F(SwdecCompNdkTest, VIDEO_SWDEC_H264_03_0400, TestSize.Level0)
666 {
667 VDecNdkSample *vDecSample = new VDecNdkSample();
668
669 int32_t ret = vDecSample->CreateVideoDecoder("OH.Media.Codec.Decoder.Video.AVC");
670 ASSERT_EQ(AV_ERR_OK, ret);
671 ret = vDecSample->SetVideoDecoderCallback();
672 ASSERT_EQ(AV_ERR_OK, ret);
673 ret = vDecSample->ConfigureVideoDecoder();
674 ASSERT_EQ(AV_ERR_OK, ret);
675 vDecSample->INP_DIR = "/data/test/media/1920x1080_60_3Mb.h264";
676 ret = vDecSample->StartVideoDecoder();
677 ASSERT_EQ(AV_ERR_OK, ret);
678 vDecSample->WaitForEOS();
679 ASSERT_EQ(0, vDecSample->errCount);
680 vDecSample->Stop();
681 vDecSample->Release();
682 }
683
684 /**
685 * @tc.number : VIDEO_SWDEC_H264_03_0500
686 * @tc.name : software decode frame
687 * @tc.desc : function test
688 */
689 HWTEST_F(SwdecCompNdkTest, VIDEO_SWDEC_H264_03_0500, TestSize.Level0)
690 {
691 VDecNdkSample *vDecSample = new VDecNdkSample();
692
693 int32_t ret = vDecSample->CreateVideoDecoder("OH.Media.Codec.Decoder.Video.AVC");
694 ASSERT_EQ(AV_ERR_OK, ret);
695 ret = vDecSample->SetVideoDecoderCallback();
696 ASSERT_EQ(AV_ERR_OK, ret);
697 ret = vDecSample->ConfigureVideoDecoder();
698 ASSERT_EQ(AV_ERR_OK, ret);
699 vDecSample->INP_DIR = "/data/test/media/1920x1080_60_2Mb.h264";
700 ret = vDecSample->StartVideoDecoder();
701 ASSERT_EQ(AV_ERR_OK, ret);
702 vDecSample->WaitForEOS();
703 ASSERT_EQ(0, vDecSample->errCount);
704 vDecSample->Stop();
705 vDecSample->Release();
706 }
707
708 /**
709 * @tc.number : VIDEO_SWDEC_H264_03_0600
710 * @tc.name : software decode frame
711 * @tc.desc : function test
712 */
713 HWTEST_F(SwdecCompNdkTest, VIDEO_SWDEC_H264_03_0600, TestSize.Level0)
714 {
715 VDecNdkSample *vDecSample = new VDecNdkSample();
716
717 int32_t ret = vDecSample->CreateVideoDecoder("OH.Media.Codec.Decoder.Video.AVC");
718 ASSERT_EQ(AV_ERR_OK, ret);
719 ret = vDecSample->SetVideoDecoderCallback();
720 ASSERT_EQ(AV_ERR_OK, ret);
721 ret = vDecSample->ConfigureVideoDecoder();
722 ASSERT_EQ(AV_ERR_OK, ret);
723 vDecSample->INP_DIR = "/data/test/media/1920x1080_60_1Mb.h264";
724 ret = vDecSample->StartVideoDecoder();
725 ASSERT_EQ(AV_ERR_OK, ret);
726 vDecSample->WaitForEOS();
727 ASSERT_EQ(0, vDecSample->errCount);
728 vDecSample->Stop();
729 vDecSample->Release();
730 }
731 } // namespace