• 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 
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