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