1 /*
2 * Copyright (C) 2024 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 "gtest/gtest.h"
17
18 #include "native_avcodec_base.h"
19 #include "native_avdemuxer.h"
20 #include "native_avformat.h"
21 #include "native_avsource.h"
22 #include "native_avmemory.h"
23
24 #include <iostream>
25 #include <cstdio>
26 #include <string>
27 #include <fcntl.h>
28 #include <cmath>
29 #include <thread>
30 #include <random>
31 namespace OHOS {
32 namespace Media {
33 class DemuxerRandomSeekNdkTest : public testing::Test {
34 public:
35 // SetUpTestCase: Called before all test cases
36 static void SetUpTestCase(void);
37 // TearDownTestCase: Called after all test case
38 static void TearDownTestCase(void);
39 // SetUp: Called before each test cases
40 void SetUp(void);
41 // TearDown: Called after each test cases
42 void TearDown(void);
43 };
44
45 static OH_AVMemory *memory = nullptr;
46 static OH_AVSource *source = nullptr;
47 static OH_AVDemuxer *demuxer = nullptr;
48 static OH_AVFormat *sourceFormat = nullptr;
49 static OH_AVFormat *trackFormat = nullptr;
50 static OH_AVBuffer *avBuffer = nullptr;
51 static OH_AVFormat *format = nullptr;
52 static int32_t g_trackCount;
53 static int32_t g_width = 3840;
54 static int32_t g_height = 2160;
55 constexpr int32_t THOUSAND = 1000.0;
56 constexpr int32_t SEEKTIMES = 10;
SetUpTestCase()57 void DemuxerRandomSeekNdkTest::SetUpTestCase() {}
TearDownTestCase()58 void DemuxerRandomSeekNdkTest::TearDownTestCase() {}
SetUp()59 void DemuxerRandomSeekNdkTest::SetUp()
60 {
61 memory = OH_AVMemory_Create(g_width * g_height);
62 g_trackCount = 0;
63 }
TearDown()64 void DemuxerRandomSeekNdkTest::TearDown()
65 {
66 if (trackFormat != nullptr) {
67 OH_AVFormat_Destroy(trackFormat);
68 trackFormat = nullptr;
69 }
70
71 if (sourceFormat != nullptr) {
72 OH_AVFormat_Destroy(sourceFormat);
73 sourceFormat = nullptr;
74 }
75 if (format != nullptr) {
76 OH_AVFormat_Destroy(format);
77 format = nullptr;
78 }
79
80 if (memory != nullptr) {
81 OH_AVMemory_Destroy(memory);
82 memory = nullptr;
83 }
84 if (source != nullptr) {
85 OH_AVSource_Destroy(source);
86 source = nullptr;
87 }
88 if (demuxer != nullptr) {
89 OH_AVDemuxer_Destroy(demuxer);
90 demuxer = nullptr;
91 }
92 if (avBuffer != nullptr) {
93 OH_AVBuffer_Destroy(avBuffer);
94 avBuffer = nullptr;
95 }
96 }
97 } // namespace Media
98 } // namespace OHOS
99
100 using namespace std;
101 using namespace OHOS;
102 using namespace OHOS::Media;
103 using namespace testing::ext;
104 std::random_device rd;
105
GetFileSize(const char * fileName)106 static int64_t GetFileSize(const char *fileName)
107 {
108 int64_t fileSize = 0;
109 if (fileName != nullptr) {
110 struct stat fileStatus {};
111 if (stat(fileName, &fileStatus) == 0) {
112 fileSize = static_cast<int64_t>(fileStatus.st_size);
113 }
114 }
115 return fileSize;
116 }
117
CheckSeekResult(const char * fileName,uint32_t seekCount)118 static void CheckSeekResult(const char *fileName, uint32_t seekCount)
119 {
120 int64_t duration = 0;
121 OH_AVCodecBufferAttr attr;
122 int fd = open(fileName, O_RDONLY);
123 int64_t size = GetFileSize(fileName);
124 cout << fileName << "-------" << fd << "-------" << size << endl;
125 source = OH_AVSource_CreateWithFD(fd, 0, size);
126 ASSERT_NE(source, nullptr);
127 demuxer = OH_AVDemuxer_CreateWithSource(source);
128 ASSERT_NE(demuxer, nullptr);
129 sourceFormat = OH_AVSource_GetSourceFormat(source);
130 ASSERT_NE(sourceFormat, nullptr);
131 ASSERT_TRUE(OH_AVFormat_GetIntValue(sourceFormat, OH_MD_KEY_TRACK_COUNT, &g_trackCount));
132 cout << "g_trackCount----" << g_trackCount << endl;
133 ASSERT_TRUE(OH_AVFormat_GetLongValue(sourceFormat, OH_MD_KEY_DURATION, &duration));
134 cout << "duration----" << duration << endl;
135 srand(time(NULL));
136 for (int32_t index = 0; index < g_trackCount; index++) {
137 ASSERT_EQ(AV_ERR_OK, OH_AVDemuxer_SelectTrackByID(demuxer, index));
138 for (int32_t i = 0; i < seekCount; i++) {
139 if (duration != 0) {
140 ASSERT_EQ(AV_ERR_OK, OH_AVDemuxer_SeekToTime(demuxer, (rd() % duration) / THOUSAND,
141 (OH_AVSeekMode)((rd() % 1) +1)));
142 }
143 ASSERT_EQ(AV_ERR_OK, OH_AVDemuxer_ReadSample(demuxer, index, memory, &attr));
144 }
145 }
146 close(fd);
147 }
148
149 /**
150 * @tc.number : DEMUXER_RANDOM_SEEK_0001
151 * @tc.name : demuxer random seek, 01_video_audio.mp4
152 * @tc.desc : function test
153 */
154 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0001, TestSize.Level0)
155 {
156 CheckSeekResult("/data/test/media/01_video_audio.mp4", SEEKTIMES);
157 }
158
159 /**
160 * @tc.number : DEMUXER_RANDOM_SEEK_0002
161 * @tc.name : demuxer random seek, avc_mp3.flv
162 * @tc.desc : function test
163 */
164 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0002, TestSize.Level0)
165 {
166 CheckSeekResult("/data/test/media/avc_mp3.flv", SEEKTIMES);
167 }
168
169 /**
170 * @tc.number : DEMUXER_RANDOM_SEEK_0003
171 * @tc.name : demuxer random seek, avc_mp3_error.flv
172 * @tc.desc : function test
173 */
174 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0003, TestSize.Level2)
175 {
176 CheckSeekResult("/data/test/media/avc_mp3_error.flv", SEEKTIMES);
177 }
178
179 /**
180 * @tc.number : DEMUXER_RANDOM_SEEK_0004
181 * @tc.name : demuxer random seek, avcc_10sec.mp4
182 * @tc.desc : function test
183 */
184 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0004, TestSize.Level2)
185 {
186 CheckSeekResult("/data/test/media/avcc_10sec.mp4", SEEKTIMES);
187 }
188
189 /**
190 * @tc.number : DEMUXER_RANDOM_SEEK_0005
191 * @tc.name : demuxer random seek, demuxer_parser_2_layer_frame_avc.mp4
192 * @tc.desc : function test
193 */
194 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0005, TestSize.Level0)
195 {
196 CheckSeekResult("/data/test/media/demuxer_parser_2_layer_frame_avc.mp4", SEEKTIMES);
197 }
198
199 /**
200 * @tc.number : DEMUXER_RANDOM_SEEK_0006
201 * @tc.name : demuxer random seek, demuxer_parser_2_layer_frame_hevc.mp4
202 * @tc.desc : function test
203 */
204 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0006, TestSize.Level2)
205 {
206 CheckSeekResult("/data/test/media/demuxer_parser_2_layer_frame_hevc.mp4", SEEKTIMES);
207 }
208
209 /**
210 * @tc.number : DEMUXER_RANDOM_SEEK_0007
211 * @tc.name : demuxer random seek, demuxer_parser_3_layer_frame_avc.mp4
212 * @tc.desc : function test
213 */
214 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0007, TestSize.Level2)
215 {
216 CheckSeekResult("/data/test/media/demuxer_parser_3_layer_frame_avc.mp4", SEEKTIMES);
217 }
218
219 /**
220 * @tc.number : DEMUXER_RANDOM_SEEK_0008
221 * @tc.name : demuxer random seek, demuxer_parser_3_layer_frame_hevc.mp4
222 * @tc.desc : function test
223 */
224 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0008, TestSize.Level2)
225 {
226 CheckSeekResult("/data/test/media/demuxer_parser_3_layer_frame_hevc.mp4", SEEKTIMES);
227 }
228
229 /**
230 * @tc.number : DEMUXER_RANDOM_SEEK_0009
231 * @tc.name : demuxer random seek, demuxer_parser_4_layer_frame_avc.mp4
232 * @tc.desc : function test
233 */
234 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0009, TestSize.Level2)
235 {
236 CheckSeekResult("/data/test/media/demuxer_parser_4_layer_frame_avc.mp4", SEEKTIMES);
237 }
238
239 /**
240 * @tc.number : DEMUXER_RANDOM_SEEK_0010
241 * @tc.name : demuxer random seek, demuxer_parser_4_layer_frame_hevc.mp4
242 * @tc.desc : function test
243 */
244 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0010, TestSize.Level2)
245 {
246 CheckSeekResult("/data/test/media/demuxer_parser_4_layer_frame_hevc.mp4", SEEKTIMES);
247 }
248
249 /**
250 * @tc.number : DEMUXER_RANDOM_SEEK_0011
251 * @tc.name : demuxer random seek, demuxer_parser_all_i_frame_avc.mp4
252 * @tc.desc : function test
253 */
254 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0011, TestSize.Level1)
255 {
256 CheckSeekResult("/data/test/media/demuxer_parser_all_i_frame_avc.mp4", SEEKTIMES);
257 }
258
259 /**
260 * @tc.number : DEMUXER_RANDOM_SEEK_0012
261 * @tc.name : demuxer random seek, demuxer_parser_all_i_frame_hevc.mp4
262 * @tc.desc : function test
263 */
264 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0012, TestSize.Level1)
265 {
266 CheckSeekResult("/data/test/media/demuxer_parser_all_i_frame_hevc.mp4", SEEKTIMES);
267 }
268
269 /**
270 * @tc.number : DEMUXER_RANDOM_SEEK_0013
271 * @tc.name : demuxer random seek, demuxer_parser_ipb_frame_avc.mp4
272 * @tc.desc : function test
273 */
274 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0013, TestSize.Level0)
275 {
276 CheckSeekResult("/data/test/media/demuxer_parser_ipb_frame_avc.mp4", SEEKTIMES);
277 }
278
279 /**
280 * @tc.number : DEMUXER_RANDOM_SEEK_0014
281 * @tc.name : demuxer random seek, demuxer_parser_ipb_frame_hevc.mp4
282 * @tc.desc : function test
283 */
284 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0014, TestSize.Level0)
285 {
286 CheckSeekResult("/data/test/media/demuxer_parser_ipb_frame_hevc.mp4", SEEKTIMES);
287 }
288
289 /**
290 * @tc.number : DEMUXER_RANDOM_SEEK_0015
291 * @tc.name : demuxer random seek, demuxer_parser_ltr_frame_avc.mp4
292 * @tc.desc : function test
293 */
294 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0015, TestSize.Level2)
295 {
296 CheckSeekResult("/data/test/media/demuxer_parser_ltr_frame_avc.mp4", SEEKTIMES);
297 }
298
299 /**
300 * @tc.number : DEMUXER_RANDOM_SEEK_0016
301 * @tc.name : demuxer random seek, demuxer_parser_ltr_frame_hevc.mp4
302 * @tc.desc : function test
303 */
304 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0016, TestSize.Level2)
305 {
306 CheckSeekResult("/data/test/media/demuxer_parser_ltr_frame_hevc.mp4", SEEKTIMES);
307 }
308
309 /**
310 * @tc.number : DEMUXER_RANDOM_SEEK_0017
311 * @tc.name : demuxer random seek, demuxer_parser_one_i_frame_avc.mp4
312 * @tc.desc : function test
313 */
314 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0017, TestSize.Level0)
315 {
316 CheckSeekResult("/data/test/media/demuxer_parser_one_i_frame_avc.mp4", SEEKTIMES);
317 }
318
319 /**
320 * @tc.number : DEMUXER_RANDOM_SEEK_0018
321 * @tc.name : demuxer random seek, demuxer_parser_one_i_frame_hevc.mp4
322 * @tc.desc : function test
323 */
324 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0018, TestSize.Level1)
325 {
326 CheckSeekResult("/data/test/media/demuxer_parser_one_i_frame_hevc.mp4", SEEKTIMES);
327 }
328
329 /**
330 * @tc.number : DEMUXER_RANDOM_SEEK_0019
331 * @tc.name : demuxer random seek, demuxer_parser_one_i_frame_no_audio_avc.mp4
332 * @tc.desc : function test
333 */
334 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0019, TestSize.Level2)
335 {
336 CheckSeekResult("/data/test/media/demuxer_parser_one_i_frame_no_audio_avc.mp4", SEEKTIMES);
337 }
338
339 /**
340 * @tc.number : DEMUXER_RANDOM_SEEK_0020
341 * @tc.name : demuxer random seek, demuxer_parser_one_i_frame_no_audio_hevc.mp4
342 * @tc.desc : function test
343 */
344 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0020, TestSize.Level2)
345 {
346 CheckSeekResult("/data/test/media/demuxer_parser_one_i_frame_no_audio_hevc.mp4", SEEKTIMES);
347 }
348
349 /**
350 * @tc.number : DEMUXER_RANDOM_SEEK_0021
351 * @tc.name : demuxer random seek, demuxer_parser_sdtp_frame_avc.mp4
352 * @tc.desc : function test
353 */
354 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0021, TestSize.Level2)
355 {
356 CheckSeekResult("/data/test/media/demuxer_parser_sdtp_frame_avc.mp4", SEEKTIMES);
357 }
358
359 /**
360 * @tc.number : DEMUXER_RANDOM_SEEK_0022
361 * @tc.name : demuxer random seek, demuxer_parser_sdtp_frame_hevc.mp4
362 * @tc.desc : function test
363 */
364 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0022, TestSize.Level2)
365 {
366 CheckSeekResult("/data/test/media/demuxer_parser_sdtp_frame_hevc.mp4", SEEKTIMES);
367 }
368
369 /**
370 * @tc.number : DEMUXER_RANDOM_SEEK_0023
371 * @tc.name : demuxer random seek, double_hevc.mp4
372 * @tc.desc : function test
373 */
374 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0023, TestSize.Level1)
375 {
376 CheckSeekResult("/data/test/media/double_hevc.mp4", SEEKTIMES);
377 }
378
379 /**
380 * @tc.number : DEMUXER_RANDOM_SEEK_0024
381 * @tc.name : demuxer random seek, double_vivid.mp4
382 * @tc.desc : function test
383 */
384 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0024, TestSize.Level2)
385 {
386 CheckSeekResult("/data/test/media/double_vivid.mp4", SEEKTIMES);
387 }
388
389 /**
390 * @tc.number : DEMUXER_RANDOM_SEEK_0026
391 * @tc.name : demuxer random seek, h264_aac_640.ts
392 * @tc.desc : function test
393 */
394 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0026, TestSize.Level2)
395 {
396 CheckSeekResult("/data/test/media/h264_aac_640.ts", SEEKTIMES);
397 }
398
399 /**
400 * @tc.number : DEMUXER_RANDOM_SEEK_0027
401 * @tc.name : demuxer random seek, h264_aac_1280.ts
402 * @tc.desc : function test
403 */
404 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0027, TestSize.Level2)
405 {
406 CheckSeekResult("/data/test/media/h264_aac_1280.ts", SEEKTIMES);
407 }
408
409 /**
410 * @tc.number : DEMUXER_RANDOM_SEEK_0028
411 * @tc.name : demuxer random seek, h264_aac_1920.ts
412 * @tc.desc : function test
413 */
414 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0028, TestSize.Level2)
415 {
416 CheckSeekResult("/data/test/media/h264_aac_1920.ts", SEEKTIMES);
417 }
418
419 /**
420 * @tc.number : DEMUXER_RANDOM_SEEK_0029
421 * @tc.name : demuxer random seek, h264_mp3_3mevx_fmp4.mp4
422 * @tc.desc : function test
423 */
424 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0029, TestSize.Level1)
425 {
426 CheckSeekResult("/data/test/media/h264_mp3_3mevx_fmp4.mp4", SEEKTIMES);
427 }
428
429 /**
430 * @tc.number : DEMUXER_RANDOM_SEEK_0030
431 * @tc.name : demuxer random seek, h265_aac_1mvex_fmp4.mp4
432 * @tc.desc : function test
433 */
434 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0030, TestSize.Level2)
435 {
436 CheckSeekResult("/data/test/media/h265_aac_1mvex_fmp4.mp4", SEEKTIMES);
437 }
438
439 /**
440 * @tc.number : DEMUXER_RANDOM_SEEK_0032
441 * @tc.name : demuxer random seek, h265_mp3_640.ts
442 * @tc.desc : function test
443 */
444 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0032, TestSize.Level2)
445 {
446 CheckSeekResult("/data/test/media/h265_mp3_640.ts", SEEKTIMES);
447 }
448
449 /**
450 * @tc.number : DEMUXER_RANDOM_SEEK_0033
451 * @tc.name : demuxer random seek, h265_mp3_1280.ts
452 * @tc.desc : function test
453 */
454 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0033, TestSize.Level2)
455 {
456 CheckSeekResult("/data/test/media/h265_mp3_1280.ts", SEEKTIMES);
457 }
458
459 /**
460 * @tc.number : DEMUXER_RANDOM_SEEK_0034
461 * @tc.name : demuxer random seek, h265_mp3_1920.ts
462 * @tc.desc : function test
463 */
464 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0034, TestSize.Level2)
465 {
466 CheckSeekResult("/data/test/media/h265_mp3_1920.ts", SEEKTIMES);
467 }
468
469 /**
470 * @tc.number : DEMUXER_RANDOM_SEEK_0035
471 * @tc.name : demuxer random seek, hevc_pcm_a.flv
472 * @tc.desc : function test
473 */
474 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0035, TestSize.Level2)
475 {
476 CheckSeekResult("/data/test/media/hevc_pcm_a.flv", SEEKTIMES);
477 }
478
479 /**
480 * @tc.number : DEMUXER_RANDOM_SEEK_0036
481 * @tc.name : demuxer random seek, hevc_v.ts
482 * @tc.desc : function test
483 */
484 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0036, TestSize.Level2)
485 {
486 CheckSeekResult("/data/test/media/hevc_v.ts", SEEKTIMES);
487 }
488
489 /**
490 * @tc.number : DEMUXER_RANDOM_SEEK_0037
491 * @tc.name : demuxer random seek, hevc_v_a.ts
492 * @tc.desc : function test
493 */
494 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0037, TestSize.Level2)
495 {
496 CheckSeekResult("/data/test/media/hevc_v_a.ts", SEEKTIMES);
497 }
498
499 /**
500 * @tc.number : DEMUXER_RANDOM_SEEK_0038
501 * @tc.name : demuxer random seek, hvcc.mp4
502 * @tc.desc : function test
503 */
504 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0038, TestSize.Level1)
505 {
506 CheckSeekResult("/data/test/media/hvcc.mp4", SEEKTIMES);
507 }
508
509 /**
510 * @tc.number : DEMUXER_RANDOM_SEEK_0039
511 * @tc.name : demuxer random seek, m4a_fmp4.mp4
512 * @tc.desc : function test
513 */
514 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0039, TestSize.Level2)
515 {
516 CheckSeekResult("/data/test/media/m4a_fmp4.mp4", SEEKTIMES);
517 }
518
519 /**
520 * @tc.number : DEMUXER_RANDOM_SEEK_0040
521 * @tc.name : demuxer random seek, m4v_fmp4.mp4
522 * @tc.desc : function test
523 */
524 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0040, TestSize.Level2)
525 {
526 CheckSeekResult("/data/test/media/m4v_fmp4.mp4", SEEKTIMES);
527 }
528
529 /**
530 * @tc.number : DEMUXER_RANDOM_SEEK_0041
531 * @tc.name : demuxer random seek, mkv.mkv
532 * @tc.desc : function test
533 */
534 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0041, TestSize.Level1)
535 {
536 CheckSeekResult("/data/test/media/mkv.mkv", SEEKTIMES);
537 }
538
539 /**
540 * @tc.number : DEMUXER_RANDOM_SEEK_0042
541 * @tc.name : demuxer random seek, MP3_avcc_10sec.bin
542 * @tc.desc : function test
543 */
544 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0042, TestSize.Level2)
545 {
546 CheckSeekResult("/data/test/media/MP3_avcc_10sec.bin", SEEKTIMES);
547 }
548
549 /**
550 * @tc.number : DEMUXER_RANDOM_SEEK_0043
551 * @tc.name : demuxer random seek, MP3_OGG_48000_1.bin
552 * @tc.desc : function test
553 */
554 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0043, TestSize.Level2)
555 {
556 CheckSeekResult("/data/test/media/MP3_OGG_48000_1.bin", SEEKTIMES);
557 }
558
559 /**
560 * @tc.number : DEMUXER_RANDOM_SEEK_0044
561 * @tc.name : demuxer random seek, mpeg2.mp4
562 * @tc.desc : function test
563 */
564 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0044, TestSize.Level2)
565 {
566 CheckSeekResult("/data/test/media/mpeg2.mp4", SEEKTIMES);
567 }
568
569 /**
570 * @tc.number : DEMUXER_RANDOM_SEEK_0045
571 * @tc.name : demuxer random seek, noPermission.mp4
572 * @tc.desc : function test
573 */
574 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0045, TestSize.Level2)
575 {
576 CheckSeekResult("/data/test/media/noPermission.mp4", SEEKTIMES);
577 }
578
579 /**
580 * @tc.number : DEMUXER_RANDOM_SEEK_0046
581 * @tc.name : demuxer random seek, NoTimedmetadataAudio.mp4
582 * @tc.desc : function test
583 */
584 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0046, TestSize.Level2)
585 {
586 CheckSeekResult("/data/test/media/NoTimedmetadataAudio.mp4", SEEKTIMES);
587 }
588
589 /**
590 * @tc.number : DEMUXER_RANDOM_SEEK_0047
591 * @tc.name : demuxer random seek, single_60.mp4
592 * @tc.desc : function test
593 */
594 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0047, TestSize.Level2)
595 {
596 CheckSeekResult("/data/test/media/single_60.mp4", SEEKTIMES);
597 }
598
599 /**
600 * @tc.number : DEMUXER_RANDOM_SEEK_0048
601 * @tc.name : demuxer random seek, single_rk.mp4
602 * @tc.desc : function test
603 */
604 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0048, TestSize.Level2)
605 {
606 CheckSeekResult("/data/test/media/single_rk.mp4", SEEKTIMES);
607 }
608
609 /**
610 * @tc.number : DEMUXER_RANDOM_SEEK_0054
611 * @tc.name : demuxer random seek, test_264_B_Gop25_4sec.mp4
612 * @tc.desc : function test
613 */
614 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0054, TestSize.Level2)
615 {
616 CheckSeekResult("/data/test/media/test_264_B_Gop25_4sec.mp4", SEEKTIMES);
617 }
618
619 /**
620 * @tc.number : DEMUXER_RANDOM_SEEK_0055
621 * @tc.name : demuxer random seek, test_265_B_Gop25_4sec.mp4
622 * @tc.desc : function test
623 */
624 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0055, TestSize.Level2)
625 {
626 CheckSeekResult("/data/test/media/test_265_B_Gop25_4sec.mp4", SEEKTIMES);
627 }
628
629 /**
630 * @tc.number : DEMUXER_RANDOM_SEEK_0056
631 * @tc.name : demuxer random seek, test_video_avcc_10sec.bin
632 * @tc.desc : function test
633 */
634 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0056, TestSize.Level1)
635 {
636 CheckSeekResult("/data/test/media/test_video_avcc_10sec.bin", SEEKTIMES);
637 }
638
639 /**
640 * @tc.number : DEMUXER_RANDOM_SEEK_0057
641 * @tc.name : demuxer random seek, Timedmetadata1Track0.mp4
642 * @tc.desc : function test
643 */
644 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0057, TestSize.Level2)
645 {
646 CheckSeekResult("/data/test/media/Timedmetadata1Track0.mp4", SEEKTIMES);
647 }
648
649 /**
650 * @tc.number : DEMUXER_RANDOM_SEEK_0058
651 * @tc.name : demuxer random seek, Timedmetadata1Track1.mp4
652 * @tc.desc : function test
653 */
654 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0058, TestSize.Level2)
655 {
656 CheckSeekResult("/data/test/media/Timedmetadata1Track1.mp4", SEEKTIMES);
657 }
658
659 /**
660 * @tc.number : DEMUXER_RANDOM_SEEK_0059
661 * @tc.name : demuxer random seek, Timedmetadata1Track2.mp4
662 * @tc.desc : function test
663 */
664 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0059, TestSize.Level2)
665 {
666 CheckSeekResult("/data/test/media/Timedmetadata1Track2.mp4", SEEKTIMES);
667 }
668
669 /**
670 * @tc.number : DEMUXER_RANDOM_SEEK_0060
671 * @tc.name : demuxer random seek, Timedmetadata2Track2.mp4
672 * @tc.desc : function test
673 */
674 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0060, TestSize.Level2)
675 {
676 CheckSeekResult("/data/test/media/Timedmetadata2Track2.mp4", SEEKTIMES);
677 }
678
679 /**
680 * @tc.number : DEMUXER_RANDOM_SEEK_0061
681 * @tc.name : demuxer random seek, TimedmetadataAudio.mp4
682 * @tc.desc : function test
683 */
684 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0061, TestSize.Level2)
685 {
686 CheckSeekResult("/data/test/media/TimedmetadataAudio.mp4", SEEKTIMES);
687 }
688
689 /**
690 * @tc.number : DEMUXER_RANDOM_SEEK_0062
691 * @tc.name : demuxer random seek, TimedmetadataVideo.mp4
692 * @tc.desc : function test
693 */
694 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0062, TestSize.Level2)
695 {
696 CheckSeekResult("/data/test/media/TimedmetadataVideo.mp4", SEEKTIMES);
697 }
698
699 /**
700 * @tc.number : DEMUXER_RANDOM_SEEK_0063
701 * @tc.name : demuxer random seek, ts_video.ts
702 * @tc.desc : function test
703 */
704 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0063, TestSize.Level1)
705 {
706 CheckSeekResult("/data/test/media/ts_video.ts", SEEKTIMES);
707 }
708
709 /**
710 * @tc.number : DEMUXER_RANDOM_SEEK_0064
711 * @tc.name : demuxer random seek, video_2audio.mp4
712 * @tc.desc : function test
713 */
714 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0064, TestSize.Level2)
715 {
716 CheckSeekResult("/data/test/media/video_2audio.mp4", SEEKTIMES);
717 }
718
719 /**
720 * @tc.number : DEMUXER_RANDOM_SEEK_0065
721 * @tc.name : demuxer random seek, video_9audio.mp4
722 * @tc.desc : function test
723 */
724 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0065, TestSize.Level2)
725 {
726 CheckSeekResult("/data/test/media/video_9audio.mp4", SEEKTIMES);
727 }
728
729 /**
730 * @tc.number : DEMUXER_RANDOM_SEEK_0071
731 * @tc.name : demuxer random seek, xm.mp4
732 * @tc.desc : function test
733 */
734 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0071, TestSize.Level2)
735 {
736 CheckSeekResult("/data/test/media/xm.mp4", SEEKTIMES);
737 }
738
739 /**
740 * @tc.number : DEMUXER_RANDOM_SEEK_0072
741 * @tc.name : demuxer random seek, AAC_48000_1.aac
742 * @tc.desc : function test
743 */
744 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0072, TestSize.Level2)
745 {
746 CheckSeekResult("/data/test/media/audio/AAC_48000_1.aac", SEEKTIMES);
747 }
748
749 /**
750 * @tc.number : DEMUXER_RANDOM_SEEK_0073
751 * @tc.name : demuxer random seek, amr_nb_8000_1.amr
752 * @tc.desc : function test
753 */
754 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0073, TestSize.Level2)
755 {
756 CheckSeekResult("/data/test/media/audio/amr_nb_8000_1.amr", SEEKTIMES);
757 }
758
759 /**
760 * @tc.number : DEMUXER_RANDOM_SEEK_0074
761 * @tc.name : demuxer random seek, amr_wb_16000_1.amr
762 * @tc.desc : function test
763 */
764 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0074, TestSize.Level2)
765 {
766 CheckSeekResult("/data/test/media/audio/amr_wb_16000_1.amr", SEEKTIMES);
767 }
768
769 /**
770 * @tc.number : DEMUXER_RANDOM_SEEK_0075
771 * @tc.name : demuxer random seek, ape.ape
772 * @tc.desc : function test
773 */
774 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0075, TestSize.Level2)
775 {
776 CheckSeekResult("/data/test/media/audio/ape.ape", SEEKTIMES);
777 }
778
779 /**
780 * @tc.number : DEMUXER_RANDOM_SEEK_0076
781 * @tc.name : demuxer random seek, feff_bom.mp3
782 * @tc.desc : function test
783 */
784 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0076, TestSize.Level2)
785 {
786 CheckSeekResult("/data/test/media/audio/feff_bom.mp3", SEEKTIMES);
787 }
788
789 /**
790 * @tc.number : DEMUXER_RANDOM_SEEK_0077
791 * @tc.name : demuxer random seek, fffe_bom.mp3
792 * @tc.desc : function test
793 */
794 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0077, TestSize.Level2)
795 {
796 CheckSeekResult("/data/test/media/audio/fffe_bom.mp3", SEEKTIMES);
797 }
798
799 /**
800 * @tc.number : DEMUXER_RANDOM_SEEK_0078
801 * @tc.name : demuxer random seek, FLAC_48000_1.flac
802 * @tc.desc : function test
803 */
804 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0078, TestSize.Level2)
805 {
806 CheckSeekResult("/data/test/media/audio/FLAC_48000_1.flac", SEEKTIMES);
807 }
808
809 /**
810 * @tc.number : DEMUXER_RANDOM_SEEK_0079
811 * @tc.name : demuxer random seek, M4A_48000_1.m4a
812 * @tc.desc : function test
813 */
814 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0079, TestSize.Level2)
815 {
816 CheckSeekResult("/data/test/media/audio/M4A_48000_1.m4a", SEEKTIMES);
817 }
818
819 /**
820 * @tc.number : DEMUXER_RANDOM_SEEK_0080
821 * @tc.name : demuxer random seek, MP3_48000_1.mp3
822 * @tc.desc : function test
823 */
824 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0080, TestSize.Level2)
825 {
826 CheckSeekResult("/data/test/media/audio/MP3_48000_1.mp3", SEEKTIMES);
827 }
828
829 /**
830 * @tc.number : DEMUXER_RANDOM_SEEK_0081
831 * @tc.name : demuxer random seek, nonstandard_bom.mp3
832 * @tc.desc : function test
833 */
834 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0081, TestSize.Level2)
835 {
836 CheckSeekResult("/data/test/media/audio/nonstandard_bom.mp3", SEEKTIMES);
837 }
838
839 /**
840 * @tc.number : DEMUXER_RANDOM_SEEK_0082
841 * @tc.name : demuxer random seek, OGG_48000_1.ogg
842 * @tc.desc : function test
843 */
844 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0082, TestSize.Level2)
845 {
846 CheckSeekResult("/data/test/media/audio/OGG_48000_1.ogg", SEEKTIMES);
847 }
848
849 /**
850 * @tc.number : DEMUXER_RANDOM_SEEK_0083
851 * @tc.name : demuxer random seek, wav_48000_1.wav
852 * @tc.desc : function test
853 */
854 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0083, TestSize.Level2)
855 {
856 CheckSeekResult("/data/test/media/audio/wav_48000_1.wav", SEEKTIMES);
857 }
858
859 /**
860 * @tc.number : DEMUXER_RANDOM_SEEK_0084
861 * @tc.name : demuxer random seek, wav_audio_test_1562.wav
862 * @tc.desc : function test
863 */
864 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0084, TestSize.Level2)
865 {
866 CheckSeekResult("/data/test/media/audio/wav_audio_test_1562.wav", SEEKTIMES);
867 }
868
869 /**
870 * @tc.number : DEMUXER_RANDOM_SEEK_0085
871 * @tc.name : demuxer random seek, wav_audio_test_202406290859.wav
872 * @tc.desc : function test
873 */
874 HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0085, TestSize.Level2)
875 {
876 CheckSeekResult("/data/test/media/audio/wav_audio_test_202406290859.wav", SEEKTIMES);
877 }