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> 31namespace OHOS { 32namespace Media { 33class DemuxerRandomSeekNdkTest : public testing::Test { 34public: 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 45static OH_AVMemory *memory = nullptr; 46static OH_AVSource *source = nullptr; 47static OH_AVDemuxer *demuxer = nullptr; 48static OH_AVFormat *sourceFormat = nullptr; 49static OH_AVFormat *trackFormat = nullptr; 50static OH_AVBuffer *avBuffer = nullptr; 51static OH_AVFormat *format = nullptr; 52static int32_t g_trackCount; 53static int32_t g_width = 3840; 54static int32_t g_height = 2160; 55constexpr int32_t THOUSAND = 1000.0; 56constexpr int32_t SEEKTIMES = 10; 57void DemuxerRandomSeekNdkTest::SetUpTestCase() {} 58void DemuxerRandomSeekNdkTest::TearDownTestCase() {} 59void DemuxerRandomSeekNdkTest::SetUp() 60{ 61 memory = OH_AVMemory_Create(g_width * g_height); 62 g_trackCount = 0; 63} 64void 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 100using namespace std; 101using namespace OHOS; 102using namespace OHOS::Media; 103using namespace testing::ext; 104std::random_device rd; 105 106static 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 118static 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 */ 154HWTEST_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 */ 164HWTEST_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 */ 174HWTEST_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 */ 184HWTEST_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 */ 194HWTEST_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 */ 204HWTEST_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 */ 214HWTEST_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 */ 224HWTEST_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 */ 234HWTEST_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 */ 244HWTEST_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 */ 254HWTEST_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 */ 264HWTEST_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 */ 274HWTEST_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 */ 284HWTEST_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 */ 294HWTEST_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 */ 304HWTEST_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 */ 314HWTEST_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 */ 324HWTEST_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 */ 334HWTEST_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 */ 344HWTEST_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 */ 354HWTEST_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 */ 364HWTEST_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 */ 374HWTEST_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 */ 384HWTEST_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 */ 394HWTEST_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 */ 404HWTEST_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 */ 414HWTEST_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 */ 424HWTEST_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 */ 434HWTEST_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 */ 444HWTEST_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 */ 454HWTEST_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 */ 464HWTEST_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 */ 474HWTEST_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 */ 484HWTEST_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 */ 494HWTEST_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 */ 504HWTEST_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 */ 514HWTEST_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 */ 524HWTEST_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 */ 534HWTEST_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 */ 544HWTEST_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 */ 554HWTEST_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 */ 564HWTEST_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 */ 574HWTEST_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 */ 584HWTEST_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 */ 594HWTEST_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 */ 604HWTEST_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 */ 614HWTEST_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 */ 624HWTEST_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 */ 634HWTEST_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 */ 644HWTEST_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 */ 654HWTEST_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 */ 664HWTEST_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 */ 674HWTEST_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 */ 684HWTEST_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 */ 694HWTEST_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 */ 704HWTEST_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 */ 714HWTEST_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 */ 724HWTEST_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 */ 734HWTEST_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 */ 744HWTEST_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 */ 754HWTEST_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 */ 764HWTEST_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 */ 774HWTEST_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 */ 784HWTEST_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 */ 794HWTEST_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 */ 804HWTEST_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 */ 814HWTEST_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 */ 824HWTEST_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 */ 834HWTEST_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 */ 844HWTEST_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 */ 854HWTEST_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 */ 864HWTEST_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 */ 874HWTEST_F(DemuxerRandomSeekNdkTest, DEMUXER_RANDOM_SEEK_0085, TestSize.Level2) 875{ 876 CheckSeekResult("/data/test/media/audio/wav_audio_test_202406290859.wav", SEEKTIMES); 877}