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 namespace OHOS {
31 namespace Media {
32 class DemuxerSeek2NdkTest : public testing::Test {
33 public:
34 // SetUpTestCase: Called before all test cases
35 static void SetUpTestCase(void);
36 // TearDownTestCase: Called after all test case
37 static void TearDownTestCase(void);
38 // SetUp: Called before each test cases
39 void SetUp(void);
40 // TearDown: Called after each test cases
41 void TearDown(void);
42 };
43
44 static OH_AVMemory *memory = nullptr;
45 static OH_AVSource *source = nullptr;
46 static OH_AVDemuxer *demuxer = nullptr;
47 static OH_AVFormat *sourceFormat = nullptr;
48 static OH_AVFormat *trackFormat = nullptr;
49 static OH_AVBuffer *avBuffer = nullptr;
50 static OH_AVFormat *format = nullptr;
51 static int32_t g_trackCount;
52 static int32_t g_width = 3840;
53 static int32_t g_height = 2160;
54 constexpr int32_t THOUSAND = 1000.0;
SetUpTestCase()55 void DemuxerSeek2NdkTest::SetUpTestCase() {}
TearDownTestCase()56 void DemuxerSeek2NdkTest::TearDownTestCase() {}
SetUp()57 void DemuxerSeek2NdkTest::SetUp()
58 {
59 memory = OH_AVMemory_Create(g_width * g_height);
60 g_trackCount = 0;
61 }
TearDown()62 void DemuxerSeek2NdkTest::TearDown()
63 {
64 if (trackFormat != nullptr) {
65 OH_AVFormat_Destroy(trackFormat);
66 trackFormat = nullptr;
67 }
68
69 if (sourceFormat != nullptr) {
70 OH_AVFormat_Destroy(sourceFormat);
71 sourceFormat = nullptr;
72 }
73 if (format != nullptr) {
74 OH_AVFormat_Destroy(format);
75 format = nullptr;
76 }
77
78 if (memory != nullptr) {
79 OH_AVMemory_Destroy(memory);
80 memory = nullptr;
81 }
82 if (source != nullptr) {
83 OH_AVSource_Destroy(source);
84 source = nullptr;
85 }
86 if (demuxer != nullptr) {
87 OH_AVDemuxer_Destroy(demuxer);
88 demuxer = nullptr;
89 }
90 if (avBuffer != nullptr) {
91 OH_AVBuffer_Destroy(avBuffer);
92 avBuffer = nullptr;
93 }
94 }
95 } // namespace Media
96 } // namespace OHOS
97
98 using namespace std;
99 using namespace OHOS;
100 using namespace OHOS::Media;
101 using namespace testing::ext;
102
GetFileSize(const char * fileName)103 static int64_t GetFileSize(const char *fileName)
104 {
105 int64_t fileSize = 0;
106 if (fileName != nullptr) {
107 struct stat fileStatus {};
108 if (stat(fileName, &fileStatus) == 0) {
109 fileSize = static_cast<int64_t>(fileStatus.st_size);
110 }
111 }
112 return fileSize;
113 }
114
115 struct seekInfo {
116 const char *fileName;
117 OH_AVSeekMode seekmode;
118 int64_t millisecond;
119 int32_t videoCount;
120 int32_t audioCount;
121 int32_t subtitleCount;
122 };
123
CheckSeekMode(seekInfo seekInfo)124 static void CheckSeekMode(seekInfo seekInfo)
125 {
126 int tarckType = 0;
127 OH_AVCodecBufferAttr attr;
128 int fd = open(seekInfo.fileName, O_RDONLY);
129 int64_t size = GetFileSize(seekInfo.fileName);
130 cout << seekInfo.fileName << "-------" << fd << "-------" << size << endl;
131 source = OH_AVSource_CreateWithFD(fd, 0, size);
132 ASSERT_NE(source, nullptr);
133
134 demuxer = OH_AVDemuxer_CreateWithSource(source);
135 ASSERT_NE(demuxer, nullptr);
136
137 sourceFormat = OH_AVSource_GetSourceFormat(source);
138 ASSERT_NE(sourceFormat, nullptr);
139 ASSERT_TRUE(OH_AVFormat_GetIntValue(sourceFormat, OH_MD_KEY_TRACK_COUNT, &g_trackCount));
140 cout << "g_trackCount----" << g_trackCount << endl;
141
142 for (int32_t index = 0; index < g_trackCount; index++) {
143 ASSERT_EQ(AV_ERR_OK, OH_AVDemuxer_SelectTrackByID(demuxer, index));
144 }
145
146 for (int32_t index = 0; index < g_trackCount; index++) {
147 trackFormat = OH_AVSource_GetTrackFormat(source, index);
148 ASSERT_NE(trackFormat, nullptr);
149 ASSERT_TRUE(OH_AVFormat_GetIntValue(trackFormat, OH_MD_KEY_TRACK_TYPE, &tarckType));
150 ASSERT_EQ(AV_ERR_OK, OH_AVDemuxer_SeekToTime(demuxer, seekInfo.millisecond / THOUSAND, seekInfo.seekmode));
151 bool readEnd = false;
152 int32_t frameNum = 0;
153 while (!readEnd) {
154 ASSERT_EQ(AV_ERR_OK, OH_AVDemuxer_ReadSample(demuxer, index, memory, &attr));
155 //cout << "frameNum---" << frameNum << "---PTS---" << attr.pts << "---tarckType---" << tarckType << endl;
156 if (attr.flags & OH_AVCodecBufferFlags::AVCODEC_BUFFER_FLAGS_EOS) {
157 readEnd = true;
158 break;
159 }
160 frameNum++;
161 }
162 if (tarckType == MEDIA_TYPE_VID) {
163 ASSERT_EQ(seekInfo.videoCount, frameNum);
164 } else if (tarckType == MEDIA_TYPE_AUD) {
165 ASSERT_EQ(seekInfo.audioCount, frameNum);
166 } else if (tarckType == MEDIA_TYPE_SUBTITLE) {
167 ASSERT_EQ(seekInfo.subtitleCount, frameNum);
168 }
169 }
170 close(fd);
171 fd = -1;
172 }
173
174
175 /**
176 * @tc.number : DEMUXER_SEEK_0087
177 * @tc.name : demuxer seek, H264_base@5_1920_1080_30_AAC_48K_1.mov
178 * @tc.desc : function test
179 */
180 HWTEST_F(DemuxerSeek2NdkTest, DEMUXER_SEEK_0087, TestSize.Level0)
181 {
182 seekInfo fileTest1{"/data/test/media/H264_base@5_1920_1080_30_AAC_48K_1.mov",
183 SEEK_MODE_NEXT_SYNC, 0, 60, 94, 0};
184 CheckSeekMode(fileTest1);
185 seekInfo fileTest2{"/data/test/media/H264_base@5_1920_1080_30_AAC_48K_1.mov",
186 SEEK_MODE_NEXT_SYNC, 900000, 30, 47, 0};
187 CheckSeekMode(fileTest2);
188 seekInfo fileTest3{"/data/test/media/H264_base@5_1920_1080_30_AAC_48K_1.mov",
189 SEEK_MODE_PREVIOUS_SYNC, 0, 60, 94, 0};
190 CheckSeekMode(fileTest3);
191 seekInfo fileTest4{"/data/test/media/H264_base@5_1920_1080_30_AAC_48K_1.mov",
192 SEEK_MODE_PREVIOUS_SYNC, 900000, 40, 63, 0};
193 CheckSeekMode(fileTest4);
194 seekInfo fileTest5{"/data/test/media/H264_base@5_1920_1080_30_AAC_48K_1.mov",
195 SEEK_MODE_PREVIOUS_SYNC, 1966667, 10, 16, 0};
196 CheckSeekMode(fileTest5);
197 seekInfo fileTest6{"/data/test/media/H264_base@5_1920_1080_30_AAC_48K_1.mov",
198 SEEK_MODE_CLOSEST_SYNC, 0, 60, 94, 0};
199 CheckSeekMode(fileTest6);
200 seekInfo fileTest7{"/data/test/media/H264_base@5_1920_1080_30_AAC_48K_1.mov",
201 SEEK_MODE_CLOSEST_SYNC, 900000, 30, 47, 0};
202 CheckSeekMode(fileTest7);
203 seekInfo fileTest8{"/data/test/media/H264_base@5_1920_1080_30_AAC_48K_1.mov",
204 SEEK_MODE_CLOSEST_SYNC, 1966667, 10, 16, 0};
205 CheckSeekMode(fileTest8);
206 }
207
208 /**
209 * @tc.number : DEMUXER_SEEK_0088
210 * @tc.name : demuxer seek, H264_high@5.1_3840_2160_30_MP3_48K_1.mov
211 * @tc.desc : function test
212 */
213 HWTEST_F(DemuxerSeek2NdkTest, DEMUXER_SEEK_0088, TestSize.Level0)
214 {
215 seekInfo fileTest1{"/data/test/media/H264_high@5.1_3840_2160_30_MP3_48K_1.mov",
216 SEEK_MODE_NEXT_SYNC, 0, 60, 85, 0};
217 CheckSeekMode(fileTest1);
218 seekInfo fileTest2{"/data/test/media/H264_high@5.1_3840_2160_30_MP3_48K_1.mov",
219 SEEK_MODE_NEXT_SYNC, 866667, 30, 45, 0};
220 CheckSeekMode(fileTest2);
221 seekInfo fileTest3{"/data/test/media/H264_high@5.1_3840_2160_30_MP3_48K_1.mov",
222 SEEK_MODE_PREVIOUS_SYNC, 0, 60, 85, 0};
223 CheckSeekMode(fileTest3);
224 seekInfo fileTest4{"/data/test/media/H264_high@5.1_3840_2160_30_MP3_48K_1.mov",
225 SEEK_MODE_PREVIOUS_SYNC, 866667, 40, 60, 0};
226 CheckSeekMode(fileTest4);
227 seekInfo fileTest5{"/data/test/media/H264_high@5.1_3840_2160_30_MP3_48K_1.mov",
228 SEEK_MODE_PREVIOUS_SYNC, 1966667, 10, 18, 0};
229 CheckSeekMode(fileTest5);
230 seekInfo fileTest6{"/data/test/media/H264_high@5.1_3840_2160_30_MP3_48K_1.mov",
231 SEEK_MODE_CLOSEST_SYNC, 0, 60, 85, 0};
232 CheckSeekMode(fileTest6);
233 seekInfo fileTest7{"/data/test/media/H264_high@5.1_3840_2160_30_MP3_48K_1.mov",
234 SEEK_MODE_CLOSEST_SYNC, 866667, 30, 45, 0};
235 CheckSeekMode(fileTest7);
236 seekInfo fileTest8{"/data/test/media/H264_high@5.1_3840_2160_30_MP3_48K_1.mov",
237 SEEK_MODE_CLOSEST_SYNC, 1966667, 10, 18, 0};
238 CheckSeekMode(fileTest8);
239 }
240
241 /**
242 * @tc.number : DEMUXER_SEEK_0089
243 * @tc.name : demuxer seek, H264_h444@5.1_1920_1080_60_vorbis_32K_2.mov
244 * @tc.desc : function test
245 */
246 HWTEST_F(DemuxerSeek2NdkTest, DEMUXER_SEEK_0089, TestSize.Level0)
247 {
248 seekInfo fileTest1{"/data/test/media/H264_h444@5.1_1920_1080_60_vorbis_32K_2.mov",
249 SEEK_MODE_NEXT_SYNC, 0, 119, 72, 0};
250 CheckSeekMode(fileTest1);
251 seekInfo fileTest2{"/data/test/media/H264_h444@5.1_1920_1080_60_vorbis_32K_2.mov",
252 SEEK_MODE_NEXT_SYNC, 1300000, 39, 27, 0};
253 CheckSeekMode(fileTest2);
254 seekInfo fileTest3{"/data/test/media/H264_h444@5.1_1920_1080_60_vorbis_32K_2.mov",
255 SEEK_MODE_PREVIOUS_SYNC, 0, 119, 72, 0};
256 CheckSeekMode(fileTest3);
257 seekInfo fileTest4{"/data/test/media/H264_h444@5.1_1920_1080_60_vorbis_32K_2.mov",
258 SEEK_MODE_PREVIOUS_SYNC, 1300000, 49, 33, 0};
259 CheckSeekMode(fileTest4);
260 seekInfo fileTest5{"/data/test/media/H264_h444@5.1_1920_1080_60_vorbis_32K_2.mov",
261 SEEK_MODE_PREVIOUS_SYNC, 1966667, 9, 7, 0};
262 CheckSeekMode(fileTest5);
263 seekInfo fileTest6{"/data/test/media/H264_h444@5.1_1920_1080_60_vorbis_32K_2.mov",
264 SEEK_MODE_CLOSEST_SYNC, 0, 119, 72, 0};
265 CheckSeekMode(fileTest6);
266 seekInfo fileTest7{"/data/test/media/H264_h444@5.1_1920_1080_60_vorbis_32K_2.mov",
267 SEEK_MODE_CLOSEST_SYNC, 1300000, 39, 27, 0};
268 CheckSeekMode(fileTest7);
269 seekInfo fileTest8{"/data/test/media/H264_h444@5.1_1920_1080_60_vorbis_32K_2.mov",
270 SEEK_MODE_CLOSEST_SYNC, 1966667, 9, 7, 0};
271 CheckSeekMode(fileTest8);
272 }
273
274 /**
275 * @tc.number : DEMUXER_SEEK_0090
276 * @tc.name : demuxer seek, H264_main@3_720_480_30_PCM_48K_24_1.mov
277 * @tc.desc : function test
278 */
279 HWTEST_F(DemuxerSeek2NdkTest, DEMUXER_SEEK_0090, TestSize.Level0)
280 {
281 seekInfo fileTest1{"/data/test/media/H264_main@3_720_480_30_PCM_48K_24_1.mov",
282 SEEK_MODE_NEXT_SYNC, 0, 60, 144, 0};
283 CheckSeekMode(fileTest1);
284 seekInfo fileTest2{"/data/test/media/H264_main@3_720_480_30_PCM_48K_24_1.mov",
285 SEEK_MODE_NEXT_SYNC, 1266667, 20, 52, 0};
286 CheckSeekMode(fileTest2);
287 seekInfo fileTest3{"/data/test/media/H264_main@3_720_480_30_PCM_48K_24_1.mov",
288 SEEK_MODE_PREVIOUS_SYNC, 0, 60, 144, 0};
289 CheckSeekMode(fileTest3);
290 seekInfo fileTest4{"/data/test/media/H264_main@3_720_480_30_PCM_48K_24_1.mov",
291 SEEK_MODE_PREVIOUS_SYNC, 1266667, 30, 77, 0};
292 CheckSeekMode(fileTest4);
293 seekInfo fileTest5{"/data/test/media/H264_main@3_720_480_30_PCM_48K_24_1.mov",
294 SEEK_MODE_PREVIOUS_SYNC, 1966667, 10, 28, 0};
295 CheckSeekMode(fileTest5);
296 seekInfo fileTest6{"/data/test/media/H264_main@3_720_480_30_PCM_48K_24_1.mov",
297 SEEK_MODE_CLOSEST_SYNC, 0, 60, 144, 0};
298 CheckSeekMode(fileTest6);
299 seekInfo fileTest7{"/data/test/media/H264_main@3_720_480_30_PCM_48K_24_1.mov",
300 SEEK_MODE_CLOSEST_SYNC, 1266667, 20, 52, 0};
301 CheckSeekMode(fileTest7);
302 seekInfo fileTest8{"/data/test/media/H264_main@3_720_480_30_PCM_48K_24_1.mov",
303 SEEK_MODE_CLOSEST_SYNC, 1966667, 10, 28, 0};
304 CheckSeekMode(fileTest8);
305 }
306
307 /**
308 * @tc.number : DEMUXER_SEEK_0091
309 * @tc.name : demuxer seek, H264_main@4_1280_720_60_MP2_44.1K_2.mov
310 * @tc.desc : function test
311 */
312 HWTEST_F(DemuxerSeek2NdkTest, DEMUXER_SEEK_0091, TestSize.Level0)
313 {
314 seekInfo fileTest1{"/data/test/media/H264_main@4_1280_720_60_MP2_44.1K_2.mov",
315 SEEK_MODE_NEXT_SYNC, 0, 119, 77, 0};
316 CheckSeekMode(fileTest1);
317 seekInfo fileTest2{"/data/test/media/H264_main@4_1280_720_60_MP2_44.1K_2.mov",
318 SEEK_MODE_NEXT_SYNC, 1366667, 29, 21, 0};
319 CheckSeekMode(fileTest2);
320 seekInfo fileTest3{"/data/test/media/H264_main@4_1280_720_60_MP2_44.1K_2.mov",
321 SEEK_MODE_PREVIOUS_SYNC, 0, 119, 77, 0};
322 CheckSeekMode(fileTest3);
323 seekInfo fileTest4{"/data/test/media/H264_main@4_1280_720_60_MP2_44.1K_2.mov",
324 SEEK_MODE_PREVIOUS_SYNC, 1366667, 39, 28, 0};
325 CheckSeekMode(fileTest4);
326 seekInfo fileTest5{"/data/test/media/H264_main@4_1280_720_60_MP2_44.1K_2.mov",
327 SEEK_MODE_PREVIOUS_SYNC, 1966667, 9, 9, 0};
328 CheckSeekMode(fileTest5);
329 seekInfo fileTest6{"/data/test/media/H264_main@4_1280_720_60_MP2_44.1K_2.mov",
330 SEEK_MODE_CLOSEST_SYNC, 0, 119, 77, 0};
331 CheckSeekMode(fileTest6);
332 seekInfo fileTest7{"/data/test/media/H264_main@4_1280_720_60_MP2_44.1K_2.mov",
333 SEEK_MODE_CLOSEST_SYNC, 1366667, 39, 28, 0};
334 CheckSeekMode(fileTest7);
335 seekInfo fileTest8{"/data/test/media/H264_main@4_1280_720_60_MP2_44.1K_2.mov",
336 SEEK_MODE_CLOSEST_SYNC, 1966667, 9, 9, 0};
337 CheckSeekMode(fileTest8);
338 }
339
340 /**
341 * @tc.number : DEMUXER_SEEK_0092
342 * @tc.name : demuxer seek, H265_main@4_1920_1080_30_AAC_44.1K_2.mov
343 * @tc.desc : function test
344 */
345 HWTEST_F(DemuxerSeek2NdkTest, DEMUXER_SEEK_0092, TestSize.Level0)
346 {
347 seekInfo fileTest1{"/data/test/media/H265_main@4_1920_1080_30_AAC_44.1K_2.mov",
348 SEEK_MODE_NEXT_SYNC, 0, 60, 88, 0};
349 CheckSeekMode(fileTest1);
350 seekInfo fileTest2{"/data/test/media/H265_main@4_1920_1080_30_AAC_44.1K_2.mov",
351 SEEK_MODE_NEXT_SYNC, 1133333, 24, 38, 0};
352 CheckSeekMode(fileTest2);
353 seekInfo fileTest3{"/data/test/media/H265_main@4_1920_1080_30_AAC_44.1K_2.mov",
354 SEEK_MODE_PREVIOUS_SYNC, 0, 60, 88, 0};
355 CheckSeekMode(fileTest3);
356 seekInfo fileTest4{"/data/test/media/H265_main@4_1920_1080_30_AAC_44.1K_2.mov",
357 SEEK_MODE_PREVIOUS_SYNC, 1133333, 34, 53, 0};
358 CheckSeekMode(fileTest4);
359 seekInfo fileTest5{"/data/test/media/H265_main@4_1920_1080_30_AAC_44.1K_2.mov",
360 SEEK_MODE_PREVIOUS_SYNC, 1966667, 10, 19, 0};
361 CheckSeekMode(fileTest5);
362 seekInfo fileTest6{"/data/test/media/H265_main@4_1920_1080_30_AAC_44.1K_2.mov",
363 SEEK_MODE_CLOSEST_SYNC, 0, 60, 88, 0};
364 CheckSeekMode(fileTest6);
365 seekInfo fileTest7{"/data/test/media/H265_main@4_1920_1080_30_AAC_44.1K_2.mov",
366 SEEK_MODE_CLOSEST_SYNC, 1133333, 24, 38, 0};
367 CheckSeekMode(fileTest7);
368 seekInfo fileTest8{"/data/test/media/H265_main@4_1920_1080_30_AAC_44.1K_2.mov",
369 SEEK_MODE_CLOSEST_SYNC, 1966667, 10, 19, 0};
370 CheckSeekMode(fileTest8);
371 }
372
373 /**
374 * @tc.number : DEMUXER_SEEK_0093
375 * @tc.name : demuxer seek, H265_main@5_3840_2160_30_vorbis_48K_1.mov
376 * @tc.desc : function test
377 */
378 HWTEST_F(DemuxerSeek2NdkTest, DEMUXER_SEEK_0093, TestSize.Level0)
379 {
380 seekInfo fileTest1{"/data/test/media/H265_main@5_3840_2160_30_vorbis_48K_1.mov",
381 SEEK_MODE_NEXT_SYNC, 0, 60, 96, 0};
382 CheckSeekMode(fileTest1);
383 seekInfo fileTest2{"/data/test/media/H265_main@5_3840_2160_30_vorbis_48K_1.mov",
384 SEEK_MODE_NEXT_SYNC, 1233333, 22, 38, 0};
385 CheckSeekMode(fileTest2);
386 seekInfo fileTest3{"/data/test/media/H265_main@5_3840_2160_30_vorbis_48K_1.mov",
387 SEEK_MODE_PREVIOUS_SYNC, 0, 60, 96, 0};
388 CheckSeekMode(fileTest3);
389 seekInfo fileTest4{"/data/test/media/H265_main@5_3840_2160_30_vorbis_48K_1.mov",
390 SEEK_MODE_PREVIOUS_SYNC, 1233333, 33, 56, 0};
391 CheckSeekMode(fileTest4);
392 seekInfo fileTest5{"/data/test/media/H265_main@5_3840_2160_30_vorbis_48K_1.mov",
393 SEEK_MODE_PREVIOUS_SYNC, 1966667, 10, 20, 0};
394 CheckSeekMode(fileTest5);
395 seekInfo fileTest6{"/data/test/media/H265_main@5_3840_2160_30_vorbis_48K_1.mov",
396 SEEK_MODE_CLOSEST_SYNC, 0, 60, 96, 0};
397 CheckSeekMode(fileTest6);
398 seekInfo fileTest7{"/data/test/media/H265_main@5_3840_2160_30_vorbis_48K_1.mov",
399 SEEK_MODE_CLOSEST_SYNC, 1233333, 33, 56, 0};
400 CheckSeekMode(fileTest7);
401 seekInfo fileTest8{"/data/test/media/H265_main@5_3840_2160_30_vorbis_48K_1.mov",
402 SEEK_MODE_CLOSEST_SYNC, 1966667, 10, 20, 0};
403 CheckSeekMode(fileTest8);
404 }
405
406 /**
407 * @tc.number : DEMUXER_SEEK_0094
408 * @tc.name : demuxer seek, H265_main10@4.1_1280_720_60_MP2_48K_1.mov
409 * @tc.desc : function test
410 */
411 HWTEST_F(DemuxerSeek2NdkTest, DEMUXER_SEEK_0094, TestSize.Level0)
412 {
413 seekInfo fileTest1{"/data/test/media/H265_main10@4.1_1280_720_60_MP2_48K_1.mov",
414 SEEK_MODE_NEXT_SYNC, 0, 119, 84, 0};
415 CheckSeekMode(fileTest1);
416 seekInfo fileTest2{"/data/test/media/H265_main10@4.1_1280_720_60_MP2_48K_1.mov",
417 SEEK_MODE_NEXT_SYNC, 983333, 53, 39, 0};
418 CheckSeekMode(fileTest2);
419 seekInfo fileTest3{"/data/test/media/H265_main10@4.1_1280_720_60_MP2_48K_1.mov",
420 SEEK_MODE_PREVIOUS_SYNC, 0, 119, 84, 0};
421 CheckSeekMode(fileTest3);
422 seekInfo fileTest4{"/data/test/media/H265_main10@4.1_1280_720_60_MP2_48K_1.mov",
423 SEEK_MODE_PREVIOUS_SYNC, 983333, 63, 47, 0};
424 CheckSeekMode(fileTest4);
425 seekInfo fileTest5{"/data/test/media/H265_main10@4.1_1280_720_60_MP2_48K_1.mov",
426 SEEK_MODE_PREVIOUS_SYNC, 1966667, 13, 12, 0};
427 CheckSeekMode(fileTest5);
428 seekInfo fileTest6{"/data/test/media/H265_main10@4.1_1280_720_60_MP2_48K_1.mov",
429 SEEK_MODE_CLOSEST_SYNC, 0, 119, 84, 0};
430 CheckSeekMode(fileTest6);
431 seekInfo fileTest7{"/data/test/media/H265_main10@4.1_1280_720_60_MP2_48K_1.mov",
432 SEEK_MODE_CLOSEST_SYNC, 983333, 63, 47, 0};
433 CheckSeekMode(fileTest7);
434 seekInfo fileTest8{"/data/test/media/H265_main10@4.1_1280_720_60_MP2_48K_1.mov",
435 SEEK_MODE_CLOSEST_SYNC, 1966667, 13, 12, 0};
436 CheckSeekMode(fileTest8);
437 }
438
439 /**
440 * @tc.number : DEMUXER_SEEK_0095
441 * @tc.name : demuxer seek, H265_main10@5.1_3840_2160_60_PCM(mulaw)_48K_16_2.mov
442 * @tc.desc : function test
443 */
444 HWTEST_F(DemuxerSeek2NdkTest, DEMUXER_SEEK_0095, TestSize.Level0)
445 {
446 seekInfo fileTest1{"/data/test/media/H265_main10@5.1_3840_2160_60_PCM(mulaw)_48K_16_2.mov",
447 SEEK_MODE_NEXT_SYNC, 0, 119, 171, 0};
448 CheckSeekMode(fileTest1);
449 seekInfo fileTest2{"/data/test/media/H265_main10@5.1_3840_2160_60_PCM(mulaw)_48K_16_2.mov",
450 SEEK_MODE_NEXT_SYNC, 1433333, 30, 46, 0};
451 CheckSeekMode(fileTest2);
452 seekInfo fileTest3{"/data/test/media/H265_main10@5.1_3840_2160_60_PCM(mulaw)_48K_16_2.mov",
453 SEEK_MODE_PREVIOUS_SYNC, 0, 119, 171, 0};
454 CheckSeekMode(fileTest3);
455 seekInfo fileTest4{"/data/test/media/H265_main10@5.1_3840_2160_60_PCM(mulaw)_48K_16_2.mov",
456 SEEK_MODE_PREVIOUS_SYNC, 1433333, 40, 61, 0};
457 CheckSeekMode(fileTest4);
458 seekInfo fileTest5{"/data/test/media/H265_main10@5.1_3840_2160_60_PCM(mulaw)_48K_16_2.mov",
459 SEEK_MODE_PREVIOUS_SYNC, 1966667, 10, 19, 0};
460 CheckSeekMode(fileTest5);
461 seekInfo fileTest6{"/data/test/media/H265_main10@5.1_3840_2160_60_PCM(mulaw)_48K_16_2.mov",
462 SEEK_MODE_CLOSEST_SYNC, 0, 119, 171, 0};
463 CheckSeekMode(fileTest6);
464 seekInfo fileTest7{"/data/test/media/H265_main10@5.1_3840_2160_60_PCM(mulaw)_48K_16_2.mov",
465 SEEK_MODE_CLOSEST_SYNC, 1433333, 30, 46, 0};
466 CheckSeekMode(fileTest7);
467 seekInfo fileTest8{"/data/test/media/H265_main10@5.1_3840_2160_60_PCM(mulaw)_48K_16_2.mov",
468 SEEK_MODE_CLOSEST_SYNC, 1966667, 10, 19, 0};
469 CheckSeekMode(fileTest8);
470 }
471
472 /**
473 * @tc.number : DEMUXER_SEEK_0096
474 * @tc.name : demuxer seek, H265_main10@5_1920_1080_60_MP3_44.1K_2.mov
475 * @tc.desc : function test
476 */
477 HWTEST_F(DemuxerSeek2NdkTest, DEMUXER_SEEK_0096, TestSize.Level0)
478 {
479 seekInfo fileTest1{"/data/test/media/H265_main10@5_1920_1080_60_MP3_44.1K_2.mov",
480 SEEK_MODE_NEXT_SYNC, 0, 119, 78, 0};
481 CheckSeekMode(fileTest1);
482 seekInfo fileTest2{"/data/test/media/H265_main10@5_1920_1080_60_MP3_44.1K_2.mov",
483 SEEK_MODE_NEXT_SYNC, 1300000, 40, 27, 0};
484 CheckSeekMode(fileTest2);
485 seekInfo fileTest3{"/data/test/media/H265_main10@5_1920_1080_60_MP3_44.1K_2.mov",
486 SEEK_MODE_PREVIOUS_SYNC, 0, 119, 78, 0};
487 CheckSeekMode(fileTest3);
488 seekInfo fileTest4{"/data/test/media/H265_main10@5_1920_1080_60_MP3_44.1K_2.mov",
489 SEEK_MODE_PREVIOUS_SYNC, 1300000, 53, 37, 0};
490 CheckSeekMode(fileTest4);
491 seekInfo fileTest5{"/data/test/media/H265_main10@5_1920_1080_60_MP3_44.1K_2.mov",
492 SEEK_MODE_PREVIOUS_SYNC, 1966667, 9, 9, 0};
493 CheckSeekMode(fileTest5);
494 seekInfo fileTest6{"/data/test/media/H265_main10@5_1920_1080_60_MP3_44.1K_2.mov",
495 SEEK_MODE_CLOSEST_SYNC, 0, 119, 78, 0};
496 CheckSeekMode(fileTest6);
497 seekInfo fileTest7{"/data/test/media/H265_main10@5_1920_1080_60_MP3_44.1K_2.mov",
498 SEEK_MODE_CLOSEST_SYNC, 1300000, 53, 37, 0};
499 CheckSeekMode(fileTest7);
500 seekInfo fileTest8{"/data/test/media/H265_main10@5_1920_1080_60_MP3_44.1K_2.mov",
501 SEEK_MODE_CLOSEST_SYNC, 1966667, 9, 9, 0};
502 CheckSeekMode(fileTest8);
503 }
504
505 /**
506 * @tc.number : DEMUXER_SEEK_0097
507 * @tc.name : demuxer seek, MPEG4_ASP@3_352_288_30_MP3_32K_1.mov
508 * @tc.desc : function test
509 */
510 HWTEST_F(DemuxerSeek2NdkTest, DEMUXER_SEEK_0097, TestSize.Level0)
511 {
512 seekInfo fileTest1{"/data/test/media/MPEG4_ASP@3_352_288_30_MP3_32K_1.mov",
513 SEEK_MODE_NEXT_SYNC, 0, 60, 57, 0};
514 CheckSeekMode(fileTest1);
515 seekInfo fileTest2{"/data/test/media/MPEG4_ASP@3_352_288_30_MP3_32K_1.mov",
516 SEEK_MODE_NEXT_SYNC, 500000, 40, 37, 0};
517 CheckSeekMode(fileTest2);
518 seekInfo fileTest3{"/data/test/media/MPEG4_ASP@3_352_288_30_MP3_32K_1.mov",
519 SEEK_MODE_PREVIOUS_SYNC, 0, 60, 57, 0};
520 CheckSeekMode(fileTest3);
521 seekInfo fileTest4{"/data/test/media/MPEG4_ASP@3_352_288_30_MP3_32K_1.mov",
522 SEEK_MODE_PREVIOUS_SYNC, 500000, 50, 47, 0};
523 CheckSeekMode(fileTest4);
524 seekInfo fileTest5{"/data/test/media/MPEG4_ASP@3_352_288_30_MP3_32K_1.mov",
525 SEEK_MODE_PREVIOUS_SYNC, 1966667, 10, 10, 0};
526 CheckSeekMode(fileTest5);
527 seekInfo fileTest6{"/data/test/media/MPEG4_ASP@3_352_288_30_MP3_32K_1.mov",
528 SEEK_MODE_CLOSEST_SYNC, 0, 60, 57, 0};
529 CheckSeekMode(fileTest6);
530 seekInfo fileTest7{"/data/test/media/MPEG4_ASP@3_352_288_30_MP3_32K_1.mov",
531 SEEK_MODE_CLOSEST_SYNC, 500000, 50, 47, 0};
532 CheckSeekMode(fileTest7);
533 seekInfo fileTest8{"/data/test/media/MPEG4_ASP@3_352_288_30_MP3_32K_1.mov",
534 SEEK_MODE_CLOSEST_SYNC, 1966667, 10, 10, 0};
535 CheckSeekMode(fileTest8);
536 }
537
538 /**
539 * @tc.number : DEMUXER_SEEK_0098
540 * @tc.name : demuxer seek, MPEG4_ASP@4_720_576_30_Vorbis_44.1K_2.mov
541 * @tc.desc : function test
542 */
543 HWTEST_F(DemuxerSeek2NdkTest, DEMUXER_SEEK_0098, TestSize.Level0)
544 {
545 seekInfo fileTest1{"/data/test/media/MPEG4_ASP@4_720_576_30_Vorbis_44.1K_2.mov",
546 SEEK_MODE_NEXT_SYNC, 0, 60, 90, 0};
547 CheckSeekMode(fileTest1);
548 seekInfo fileTest2{"/data/test/media/MPEG4_ASP@4_720_576_30_Vorbis_44.1K_2.mov",
549 SEEK_MODE_NEXT_SYNC, 933333, 30, 46, 0};
550 CheckSeekMode(fileTest2);
551 seekInfo fileTest3{"/data/test/media/MPEG4_ASP@4_720_576_30_Vorbis_44.1K_2.mov",
552 SEEK_MODE_PREVIOUS_SYNC, 0, 60, 90, 0};
553 CheckSeekMode(fileTest3);
554 seekInfo fileTest4{"/data/test/media/MPEG4_ASP@4_720_576_30_Vorbis_44.1K_2.mov",
555 SEEK_MODE_PREVIOUS_SYNC, 933333, 40, 61, 0};
556 CheckSeekMode(fileTest4);
557 seekInfo fileTest5{"/data/test/media/MPEG4_ASP@4_720_576_30_Vorbis_44.1K_2.mov",
558 SEEK_MODE_PREVIOUS_SYNC, 1966667, 10, 16, 0};
559 CheckSeekMode(fileTest5);
560 seekInfo fileTest6{"/data/test/media/MPEG4_ASP@4_720_576_30_Vorbis_44.1K_2.mov",
561 SEEK_MODE_CLOSEST_SYNC, 0, 60, 90, 0};
562 CheckSeekMode(fileTest6);
563 seekInfo fileTest7{"/data/test/media/MPEG4_ASP@4_720_576_30_Vorbis_44.1K_2.mov",
564 SEEK_MODE_CLOSEST_SYNC, 933333, 30, 46, 0};
565 CheckSeekMode(fileTest7);
566 seekInfo fileTest8{"/data/test/media/MPEG4_ASP@4_720_576_30_Vorbis_44.1K_2.mov",
567 SEEK_MODE_CLOSEST_SYNC, 1966667, 10, 16, 0};
568 CheckSeekMode(fileTest8);
569 }
570
571 /**
572 * @tc.number : DEMUXER_SEEK_0099
573 * @tc.name : demuxer seek, MPEG4_Core@2_1920_1080_30_PCM(mulaw)_44.1K_16_1.mov
574 * @tc.desc : function test
575 */
576 HWTEST_F(DemuxerSeek2NdkTest, DEMUXER_SEEK_0099, TestSize.Level0)
577 {
578 seekInfo fileTest1{"/data/test/media/MPEG4_Core@2_1920_1080_30_PCM(mulaw)_44.1K_16_1.mov",
579 SEEK_MODE_NEXT_SYNC, 0, 45, 65, 0};
580 CheckSeekMode(fileTest1);
581 seekInfo fileTest2{"/data/test/media/MPEG4_Core@2_1920_1080_30_PCM(mulaw)_44.1K_16_1.mov",
582 SEEK_MODE_NEXT_SYNC, 700000, 15, 21, 0};
583 CheckSeekMode(fileTest2);
584 seekInfo fileTest3{"/data/test/media/MPEG4_Core@2_1920_1080_30_PCM(mulaw)_44.1K_16_1.mov",
585 SEEK_MODE_PREVIOUS_SYNC, 0, 45, 65, 0};
586 CheckSeekMode(fileTest3);
587 seekInfo fileTest4{"/data/test/media/MPEG4_Core@2_1920_1080_30_PCM(mulaw)_44.1K_16_1.mov",
588 SEEK_MODE_PREVIOUS_SYNC, 700000, 25, 37, 0};
589 CheckSeekMode(fileTest4);
590 seekInfo fileTest5{"/data/test/media/MPEG4_Core@2_1920_1080_30_PCM(mulaw)_44.1K_16_1.mov",
591 SEEK_MODE_PREVIOUS_SYNC, 1466667, 5, 8, 0};
592 CheckSeekMode(fileTest5);
593 seekInfo fileTest6{"/data/test/media/MPEG4_Core@2_1920_1080_30_PCM(mulaw)_44.1K_16_1.mov",
594 SEEK_MODE_CLOSEST_SYNC, 0, 45, 65, 0};
595 CheckSeekMode(fileTest6);
596 seekInfo fileTest7{"/data/test/media/MPEG4_Core@2_1920_1080_30_PCM(mulaw)_44.1K_16_1.mov",
597 SEEK_MODE_CLOSEST_SYNC, 700000, 25, 37, 0};
598 CheckSeekMode(fileTest7);
599 seekInfo fileTest8{"/data/test/media/MPEG4_Core@2_1920_1080_30_PCM(mulaw)_44.1K_16_1.mov",
600 SEEK_MODE_CLOSEST_SYNC, 1466667, 5, 8, 0};
601 CheckSeekMode(fileTest8);
602 }
603
604 /**
605 * @tc.number : DEMUXER_SEEK_0100
606 * @tc.name : demuxer seek, MPEG4_SP@5_720_480_30_AAC_32K_1.mov
607 * @tc.desc : function test
608 */
609 HWTEST_F(DemuxerSeek2NdkTest, DEMUXER_SEEK_0100, TestSize.Level0)
610 {
611 seekInfo fileTest1{"/data/test/media/MPEG4_SP@5_720_480_30_AAC_32K_1.mov",
612 SEEK_MODE_NEXT_SYNC, 0, 60, 63, 0};
613 CheckSeekMode(fileTest1);
614 seekInfo fileTest2{"/data/test/media/MPEG4_SP@5_720_480_30_AAC_32K_1.mov",
615 SEEK_MODE_NEXT_SYNC, 1466667, 10, 10, 0};
616 CheckSeekMode(fileTest2);
617 seekInfo fileTest3{"/data/test/media/MPEG4_SP@5_720_480_30_AAC_32K_1.mov",
618 SEEK_MODE_PREVIOUS_SYNC, 0, 60, 63, 0};
619 CheckSeekMode(fileTest3);
620 seekInfo fileTest4{"/data/test/media/MPEG4_SP@5_720_480_30_AAC_32K_1.mov",
621 SEEK_MODE_PREVIOUS_SYNC, 1466667, 20, 22, 0};
622 CheckSeekMode(fileTest4);
623 seekInfo fileTest5{"/data/test/media/MPEG4_SP@5_720_480_30_AAC_32K_1.mov",
624 SEEK_MODE_PREVIOUS_SYNC, 1966667, 10, 11, 0};
625 CheckSeekMode(fileTest5);
626 seekInfo fileTest6{"/data/test/media/MPEG4_SP@5_720_480_30_AAC_32K_1.mov",
627 SEEK_MODE_CLOSEST_SYNC, 0, 60, 63, 0};
628 CheckSeekMode(fileTest6);
629 seekInfo fileTest7{"/data/test/media/MPEG4_SP@5_720_480_30_AAC_32K_1.mov",
630 SEEK_MODE_CLOSEST_SYNC, 1466667, 20, 22, 0};
631 CheckSeekMode(fileTest7);
632 seekInfo fileTest8{"/data/test/media/MPEG4_SP@5_720_480_30_AAC_32K_1.mov",
633 SEEK_MODE_CLOSEST_SYNC, 1966667, 10, 11, 0};
634 CheckSeekMode(fileTest8);
635 }
636
637 /**
638 * @tc.number : DEMUXER_SEEK_0101
639 * @tc.name : demuxer seek, MPEG4_SP@6_1280_720_30_MP2_32K_2.mov
640 * @tc.desc : function test
641 */
642 HWTEST_F(DemuxerSeek2NdkTest, DEMUXER_SEEK_0101, TestSize.Level0)
643 {
644 seekInfo fileTest1{"/data/test/media/MPEG4_SP@6_1280_720_30_MP2_32K_2.mov",
645 SEEK_MODE_NEXT_SYNC, 0, 60, 56, 0};
646 CheckSeekMode(fileTest1);
647 seekInfo fileTest2{"/data/test/media/MPEG4_SP@6_1280_720_30_MP2_32K_2.mov",
648 SEEK_MODE_NEXT_SYNC, 1100000, 20, 19, 0};
649 CheckSeekMode(fileTest2);
650 seekInfo fileTest3{"/data/test/media/MPEG4_SP@6_1280_720_30_MP2_32K_2.mov",
651 SEEK_MODE_PREVIOUS_SYNC, 0, 60, 56, 0};
652 CheckSeekMode(fileTest3);
653 seekInfo fileTest4{"/data/test/media/MPEG4_SP@6_1280_720_30_MP2_32K_2.mov",
654 SEEK_MODE_PREVIOUS_SYNC, 1100000, 30, 29, 0};
655 CheckSeekMode(fileTest4);
656 seekInfo fileTest5{"/data/test/media/MPEG4_SP@6_1280_720_30_MP2_32K_2.mov",
657 SEEK_MODE_PREVIOUS_SYNC, 1966667, 10, 10, 0};
658 CheckSeekMode(fileTest5);
659 seekInfo fileTest6{"/data/test/media/MPEG4_SP@6_1280_720_30_MP2_32K_2.mov",
660 SEEK_MODE_CLOSEST_SYNC, 0, 60, 56, 0};
661 CheckSeekMode(fileTest6);
662 seekInfo fileTest7{"/data/test/media/MPEG4_SP@6_1280_720_30_MP2_32K_2.mov",
663 SEEK_MODE_CLOSEST_SYNC, 1100000, 30, 29, 0};
664 CheckSeekMode(fileTest7);
665 seekInfo fileTest8{"/data/test/media/MPEG4_SP@6_1280_720_30_MP2_32K_2.mov",
666 SEEK_MODE_CLOSEST_SYNC, 1966667, 10, 10, 0};
667 CheckSeekMode(fileTest8);
668 }
669
670 /**
671 * @tc.number : DEMUXER_SEEK_0102
672 * @tc.name : demuxer seek, H264_base@5_1920_1080_30_MP2_44.1K_1.mpg
673 * @tc.desc : function test
674 */
675 HWTEST_F(DemuxerSeek2NdkTest, DEMUXER_SEEK_0102, TestSize.Level0)
676 {
677 seekInfo fileTest1{"/data/test/media/H264_base@5_1920_1080_30_MP2_44.1K_1.mpg",
678 SEEK_MODE_NEXT_SYNC, 0, 60, 77, 0};
679 CheckSeekMode(fileTest1);
680 seekInfo fileTest2{"/data/test/media/H264_base@5_1920_1080_30_MP2_44.1K_1.mpg",
681 SEEK_MODE_NEXT_SYNC, 800000, 36, 72, 0};
682 CheckSeekMode(fileTest2);
683 seekInfo fileTest3{"/data/test/media/H264_base@5_1920_1080_30_MP2_44.1K_1.mpg",
684 SEEK_MODE_PREVIOUS_SYNC, 0, 60, 77, 0};
685 CheckSeekMode(fileTest3);
686 seekInfo fileTest4{"/data/test/media/H264_base@5_1920_1080_30_MP2_44.1K_1.mpg",
687 SEEK_MODE_PREVIOUS_SYNC, 800000, 36, 72, 0};
688 CheckSeekMode(fileTest4);
689 seekInfo fileTest5{"/data/test/media/H264_base@5_1920_1080_30_MP2_44.1K_1.mpg",
690 SEEK_MODE_PREVIOUS_SYNC, 2000000, 2, 28, 0};
691 CheckSeekMode(fileTest5);
692 seekInfo fileTest6{"/data/test/media/H264_base@5_1920_1080_30_MP2_44.1K_1.mpg",
693 SEEK_MODE_CLOSEST_SYNC, 0, 60, 77, 0};
694 CheckSeekMode(fileTest6);
695 seekInfo fileTest7{"/data/test/media/H264_base@5_1920_1080_30_MP2_44.1K_1.mpg",
696 SEEK_MODE_CLOSEST_SYNC, 800000, 36, 72, 0};
697 CheckSeekMode(fileTest7);
698 seekInfo fileTest8{"/data/test/media/H264_base@5_1920_1080_30_MP2_44.1K_1.mpg",
699 SEEK_MODE_CLOSEST_SYNC, 2000000, 2, 28, 0};
700 CheckSeekMode(fileTest8);
701 }
702
703 /**
704 * @tc.number : DEMUXER_SEEK_0103
705 * @tc.name : demuxer seek, H264_h444p@5.1_1920_1080_60_MP2_48K_2.mpg
706 * @tc.desc : function test
707 */
708 HWTEST_F(DemuxerSeek2NdkTest, DEMUXER_SEEK_0103, TestSize.Level0)
709 {
710 seekInfo fileTest1{"/data/test/media/H264_h444p@5.1_1920_1080_60_MP2_48K_2.mpg",
711 SEEK_MODE_NEXT_SYNC, 0, 118, 82, 0};
712 CheckSeekMode(fileTest1);
713 seekInfo fileTest2{"/data/test/media/H264_h444p@5.1_1920_1080_60_MP2_48K_2.mpg",
714 SEEK_MODE_NEXT_SYNC, 940000, 59, 69, 0};
715 CheckSeekMode(fileTest2);
716 seekInfo fileTest3{"/data/test/media/H264_h444p@5.1_1920_1080_60_MP2_48K_2.mpg",
717 SEEK_MODE_PREVIOUS_SYNC, 0, 118, 82, 0};
718 CheckSeekMode(fileTest3);
719 seekInfo fileTest4{"/data/test/media/H264_h444p@5.1_1920_1080_60_MP2_48K_2.mpg",
720 SEEK_MODE_PREVIOUS_SYNC, 940000, 62, 73, 0};
721 CheckSeekMode(fileTest4);
722 seekInfo fileTest5{"/data/test/media/H264_h444p@5.1_1920_1080_60_MP2_48K_2.mpg",
723 SEEK_MODE_PREVIOUS_SYNC, 1950000, 2, 29, 0};
724 CheckSeekMode(fileTest5);
725 seekInfo fileTest6{"/data/test/media/H264_h444p@5.1_1920_1080_60_MP2_48K_2.mpg",
726 SEEK_MODE_CLOSEST_SYNC, 0, 118, 82, 0};
727 CheckSeekMode(fileTest6);
728 seekInfo fileTest7{"/data/test/media/H264_h444p@5.1_1920_1080_60_MP2_48K_2.mpg",
729 SEEK_MODE_CLOSEST_SYNC, 940000, 62, 73, 0};
730 CheckSeekMode(fileTest7);
731 seekInfo fileTest8{"/data/test/media/H264_h444p@5.1_1920_1080_60_MP2_48K_2.mpg",
732 SEEK_MODE_CLOSEST_SYNC, 1950000, 2, 29, 0};
733 CheckSeekMode(fileTest8);
734 }
735
736 /**
737 * @tc.number : DEMUXER_SEEK_0104
738 * @tc.name : demuxer seek, H264_high@5.1_3840_2160_30_MP3_44.1K_1.mpg
739 * @tc.desc : function test
740 */
741 HWTEST_F(DemuxerSeek2NdkTest, DEMUXER_SEEK_0104, TestSize.Level0)
742 {
743 seekInfo fileTest1{"/data/test/media/H264_high@5.1_3840_2160_30_MP3_44.1K_1.mpg",
744 SEEK_MODE_NEXT_SYNC, 0, 59, 68, 0};
745 CheckSeekMode(fileTest1);
746 seekInfo fileTest2{"/data/test/media/H264_high@5.1_3840_2160_30_MP3_44.1K_1.mpg",
747 SEEK_MODE_NEXT_SYNC, 940000, 29, 48, 0};
748 CheckSeekMode(fileTest2);
749 seekInfo fileTest3{"/data/test/media/H264_high@5.1_3840_2160_30_MP3_44.1K_1.mpg",
750 SEEK_MODE_PREVIOUS_SYNC, 0, 59, 68, 0};
751 CheckSeekMode(fileTest3);
752 seekInfo fileTest4{"/data/test/media/H264_high@5.1_3840_2160_30_MP3_44.1K_1.mpg",
753 SEEK_MODE_PREVIOUS_SYNC, 940000, 30, 58, 0};
754 CheckSeekMode(fileTest4);
755 seekInfo fileTest5{"/data/test/media/H264_high@5.1_3840_2160_30_MP3_44.1K_1.mpg",
756 SEEK_MODE_PREVIOUS_SYNC, 2000000, 1, 17, 0};
757 CheckSeekMode(fileTest5);
758 seekInfo fileTest6{"/data/test/media/H264_high@5.1_3840_2160_30_MP3_44.1K_1.mpg",
759 SEEK_MODE_CLOSEST_SYNC, 0, 59, 68, 0};
760 CheckSeekMode(fileTest6);
761 seekInfo fileTest7{"/data/test/media/H264_high@5.1_3840_2160_30_MP3_44.1K_1.mpg",
762 SEEK_MODE_CLOSEST_SYNC, 940000, 30, 58, 0};
763 CheckSeekMode(fileTest7);
764 seekInfo fileTest8{"/data/test/media/H264_high@5.1_3840_2160_30_MP3_44.1K_1.mpg",
765 SEEK_MODE_CLOSEST_SYNC, 2000000, 1, 17, 0};
766 CheckSeekMode(fileTest8);
767 }
768
769 /**
770 * @tc.number : DEMUXER_SEEK_0105
771 * @tc.name : demuxer seek, H264_main@4.2_1280_720_60_MP3_32K_2.mpg
772 * @tc.desc : function test
773 */
774 HWTEST_F(DemuxerSeek2NdkTest, DEMUXER_SEEK_0105, TestSize.Level0)
775 {
776 seekInfo fileTest1{"/data/test/media/H264_main@4.2_1280_720_60_MP3_32K_2.mpg",
777 SEEK_MODE_NEXT_SYNC, 0, 118, 53, 0};
778 CheckSeekMode(fileTest1);
779 seekInfo fileTest2{"/data/test/media/H264_main@4.2_1280_720_60_MP3_32K_2.mpg",
780 SEEK_MODE_NEXT_SYNC, 700000, 74, 46, 0};
781 CheckSeekMode(fileTest2);
782 seekInfo fileTest3{"/data/test/media/H264_main@4.2_1280_720_60_MP3_32K_2.mpg",
783 SEEK_MODE_PREVIOUS_SYNC, 0, 118, 53, 0};
784 CheckSeekMode(fileTest3);
785 seekInfo fileTest4{"/data/test/media/H264_main@4.2_1280_720_60_MP3_32K_2.mpg",
786 SEEK_MODE_PREVIOUS_SYNC, 700000, 78, 46, 0};
787 CheckSeekMode(fileTest4);
788 seekInfo fileTest5{"/data/test/media/H264_main@4.2_1280_720_60_MP3_32K_2.mpg",
789 SEEK_MODE_PREVIOUS_SYNC, 1983333, 3, 15, 0};
790 CheckSeekMode(fileTest5);
791 seekInfo fileTest6{"/data/test/media/H264_main@4.2_1280_720_60_MP3_32K_2.mpg",
792 SEEK_MODE_CLOSEST_SYNC, 0, 118, 53, 0};
793 CheckSeekMode(fileTest6);
794 seekInfo fileTest7{"/data/test/media/H264_main@4.2_1280_720_60_MP3_32K_2.mpg",
795 SEEK_MODE_CLOSEST_SYNC, 700000, 74, 46, 0};
796 CheckSeekMode(fileTest7);
797 seekInfo fileTest8{"/data/test/media/H264_main@4.2_1280_720_60_MP3_32K_2.mpg",
798 SEEK_MODE_CLOSEST_SYNC, 1983333, 3, 15, 0};
799 CheckSeekMode(fileTest8);
800 }
801
802 /**
803 * @tc.number : DEMUXER_SEEK_0106
804 * @tc.name : demuxer seek, MPEG2_422p_1280_720_60_MP3_32K_1.mpg
805 * @tc.desc : function test
806 */
807 HWTEST_F(DemuxerSeek2NdkTest, DEMUXER_SEEK_0106, TestSize.Level0)
808 {
809 seekInfo fileTest1{"/data/test/media/MPEG2_422p_1280_720_60_MP3_32K_1.mpg",
810 SEEK_MODE_NEXT_SYNC, 0, 118, 47, 0};
811 CheckSeekMode(fileTest1);
812 seekInfo fileTest2{"/data/test/media/MPEG2_422p_1280_720_60_MP3_32K_1.mpg",
813 SEEK_MODE_NEXT_SYNC, 700000, 76, 38, 0};
814 CheckSeekMode(fileTest2);
815 seekInfo fileTest3{"/data/test/media/MPEG2_422p_1280_720_60_MP3_32K_1.mpg",
816 SEEK_MODE_PREVIOUS_SYNC, 0, 118, 47, 0};
817 CheckSeekMode(fileTest3);
818 seekInfo fileTest4{"/data/test/media/MPEG2_422p_1280_720_60_MP3_32K_1.mpg",
819 SEEK_MODE_PREVIOUS_SYNC, 700000, 78, 38, 0};
820 CheckSeekMode(fileTest4);
821 seekInfo fileTest5{"/data/test/media/MPEG2_422p_1280_720_60_MP3_32K_1.mpg",
822 SEEK_MODE_PREVIOUS_SYNC, 1983333, 2, 1, 0};
823 CheckSeekMode(fileTest5);
824 seekInfo fileTest6{"/data/test/media/MPEG2_422p_1280_720_60_MP3_32K_1.mpg",
825 SEEK_MODE_CLOSEST_SYNC, 0, 118, 47, 0};
826 CheckSeekMode(fileTest6);
827 seekInfo fileTest7{"/data/test/media/MPEG2_422p_1280_720_60_MP3_32K_1.mpg",
828 SEEK_MODE_CLOSEST_SYNC, 700000, 78, 38, 0};
829 CheckSeekMode(fileTest7);
830 seekInfo fileTest8{"/data/test/media/MPEG2_422p_1280_720_60_MP3_32K_1.mpg",
831 SEEK_MODE_CLOSEST_SYNC, 1983333, 2, 1, 0};
832 CheckSeekMode(fileTest8);
833 }
834
835 /**
836 * @tc.number : DEMUXER_SEEK_0107
837 * @tc.name : demuxer seek, MPEG2_high_720_480_30_MP2_32K_2.mpg
838 * @tc.desc : function test
839 */
840 HWTEST_F(DemuxerSeek2NdkTest, DEMUXER_SEEK_0107, TestSize.Level0)
841 {
842 seekInfo fileTest1{"/data/test/media/MPEG2_high_720_480_30_MP2_32K_2.mpg",
843 SEEK_MODE_NEXT_SYNC, 0, 59, 57, 0};
844 CheckSeekMode(fileTest1);
845 seekInfo fileTest2{"/data/test/media/MPEG2_high_720_480_30_MP2_32K_2.mpg",
846 SEEK_MODE_NEXT_SYNC, 790000, 36, 52, 0};
847 CheckSeekMode(fileTest2);
848 seekInfo fileTest3{"/data/test/media/MPEG2_high_720_480_30_MP2_32K_2.mpg",
849 SEEK_MODE_PREVIOUS_SYNC, 0, 59, 57, 0};
850 CheckSeekMode(fileTest3);
851 seekInfo fileTest4{"/data/test/media/MPEG2_high_720_480_30_MP2_32K_2.mpg",
852 SEEK_MODE_PREVIOUS_SYNC, 790000, 38, 55, 0};
853 CheckSeekMode(fileTest4);
854 seekInfo fileTest5{"/data/test/media/MPEG2_high_720_480_30_MP2_32K_2.mpg",
855 SEEK_MODE_PREVIOUS_SYNC, 2000000, 2, 20, 0};
856 CheckSeekMode(fileTest5);
857 seekInfo fileTest6{"/data/test/media/MPEG2_high_720_480_30_MP2_32K_2.mpg",
858 SEEK_MODE_CLOSEST_SYNC, 0, 59, 57, 0};
859 CheckSeekMode(fileTest6);
860 seekInfo fileTest7{"/data/test/media/MPEG2_high_720_480_30_MP2_32K_2.mpg",
861 SEEK_MODE_CLOSEST_SYNC, 790000, 36, 52, 0};
862 CheckSeekMode(fileTest7);
863 seekInfo fileTest8{"/data/test/media/MPEG2_high_720_480_30_MP2_32K_2.mpg",
864 SEEK_MODE_CLOSEST_SYNC, 2000000, 2, 20, 0};
865 CheckSeekMode(fileTest8);
866 }
867
868 /**
869 * @tc.number : DEMUXER_SEEK_0108
870 * @tc.name : demuxer seek, MPEG2_main_352_288_30_MP2_44.1K_1.mpg
871 * @tc.desc : function test
872 */
873 HWTEST_F(DemuxerSeek2NdkTest, DEMUXER_SEEK_0108, TestSize.Level0)
874 {
875 seekInfo fileTest1{"/data/test/media/MPEG2_main_352_288_30_MP2_44.1K_1.mpg",
876 SEEK_MODE_NEXT_SYNC, 0, 60, 79, 0};
877 CheckSeekMode(fileTest1);
878 seekInfo fileTest2{"/data/test/media/MPEG2_main_352_288_30_MP2_44.1K_1.mpg",
879 SEEK_MODE_NEXT_SYNC, 1260000, 20, 52, 0};
880 CheckSeekMode(fileTest2);
881 seekInfo fileTest3{"/data/test/media/MPEG2_main_352_288_30_MP2_44.1K_1.mpg",
882 SEEK_MODE_PREVIOUS_SYNC, 0, 60, 79, 0};
883 CheckSeekMode(fileTest3);
884 seekInfo fileTest4{"/data/test/media/MPEG2_main_352_288_30_MP2_44.1K_1.mpg",
885 SEEK_MODE_PREVIOUS_SYNC, 1260000, 23, 54, 0};
886 CheckSeekMode(fileTest4);
887 seekInfo fileTest5{"/data/test/media/MPEG2_main_352_288_30_MP2_44.1K_1.mpg",
888 SEEK_MODE_PREVIOUS_SYNC, 1933333, 3, 31, 0};
889 CheckSeekMode(fileTest5);
890 seekInfo fileTest6{"/data/test/media/MPEG2_main_352_288_30_MP2_44.1K_1.mpg",
891 SEEK_MODE_CLOSEST_SYNC, 0, 60, 79, 0};
892 CheckSeekMode(fileTest6);
893 seekInfo fileTest7{"/data/test/media/MPEG2_main_352_288_30_MP2_44.1K_1.mpg",
894 SEEK_MODE_CLOSEST_SYNC, 1260000, 23, 54, 0};
895 CheckSeekMode(fileTest7);
896 seekInfo fileTest8{"/data/test/media/MPEG2_main_352_288_30_MP2_44.1K_1.mpg",
897 SEEK_MODE_CLOSEST_SYNC, 1933333, 3, 31, 0};
898 CheckSeekMode(fileTest8);
899 }
900
901 /**
902 * @tc.number : DEMUXER_SEEK_0109
903 * @tc.name : demuxer seek, MPEG2_main_1920_1080_30_MP3_48K_2.mpg
904 * @tc.desc : function test
905 */
906 HWTEST_F(DemuxerSeek2NdkTest, DEMUXER_SEEK_0109, TestSize.Level0)
907 {
908 seekInfo fileTest1{"/data/test/media/MPEG2_main_1920_1080_30_MP3_48K_2.mpg",
909 SEEK_MODE_NEXT_SYNC, 0, 60, 79, 0};
910 CheckSeekMode(fileTest1);
911 seekInfo fileTest2{"/data/test/media/MPEG2_main_1920_1080_30_MP3_48K_2.mpg",
912 SEEK_MODE_NEXT_SYNC, 1190000, 24, 48, 0};
913 CheckSeekMode(fileTest2);
914 seekInfo fileTest3{"/data/test/media/MPEG2_main_1920_1080_30_MP3_48K_2.mpg",
915 SEEK_MODE_PREVIOUS_SYNC, 0, 60, 79, 0};
916 CheckSeekMode(fileTest3);
917 seekInfo fileTest4{"/data/test/media/MPEG2_main_1920_1080_30_MP3_48K_2.mpg",
918 SEEK_MODE_PREVIOUS_SYNC, 1190000, 25, 48, 0};
919 CheckSeekMode(fileTest4);
920 seekInfo fileTest5{"/data/test/media/MPEG2_main_1920_1080_30_MP3_48K_2.mpg",
921 SEEK_MODE_PREVIOUS_SYNC, 2000000, 2, 16, 0};
922 CheckSeekMode(fileTest5);
923 seekInfo fileTest6{"/data/test/media/MPEG2_main_1920_1080_30_MP3_48K_2.mpg",
924 SEEK_MODE_CLOSEST_SYNC, 0, 60, 79, 0};
925 CheckSeekMode(fileTest6);
926 seekInfo fileTest7{"/data/test/media/MPEG2_main_1920_1080_30_MP3_48K_2.mpg",
927 SEEK_MODE_CLOSEST_SYNC, 1190000, 24, 48, 0};
928 CheckSeekMode(fileTest7);
929 seekInfo fileTest8{"/data/test/media/MPEG2_main_1920_1080_30_MP3_48K_2.mpg",
930 SEEK_MODE_CLOSEST_SYNC, 2000000, 2, 16, 0};
931 CheckSeekMode(fileTest8);
932 }
933
934 /**
935 * @tc.number : DEMUXER_SEEK_0110
936 * @tc.name : demuxer seek, MPEG2_simple_320_240_24_MP3_48K_2.mpg
937 * @tc.desc : function test
938 */
939 HWTEST_F(DemuxerSeek2NdkTest, DEMUXER_SEEK_0110, TestSize.Level0)
940 {
941 seekInfo fileTest1{"/data/test/media/MPEG2_simple_320_240_24_MP3_48K_2.mpg",
942 SEEK_MODE_NEXT_SYNC, 0, 48, 79, 0};
943 CheckSeekMode(fileTest1);
944 seekInfo fileTest2{"/data/test/media/MPEG2_simple_320_240_24_MP3_48K_2.mpg",
945 SEEK_MODE_NEXT_SYNC, 833333, 28, 74, 0};
946 CheckSeekMode(fileTest2);
947 seekInfo fileTest3{"/data/test/media/MPEG2_simple_320_240_24_MP3_48K_2.mpg",
948 SEEK_MODE_PREVIOUS_SYNC, 0, 48, 79, 0};
949 CheckSeekMode(fileTest3);
950 seekInfo fileTest4{"/data/test/media/MPEG2_simple_320_240_24_MP3_48K_2.mpg",
951 SEEK_MODE_PREVIOUS_SYNC, 833333, 34, 74, 0};
952 CheckSeekMode(fileTest4);
953 seekInfo fileTest5{"/data/test/media/MPEG2_simple_320_240_24_MP3_48K_2.mpg",
954 SEEK_MODE_PREVIOUS_SYNC, 1939689, 5, 32, 0};
955 CheckSeekMode(fileTest5);
956 seekInfo fileTest6{"/data/test/media/MPEG2_simple_320_240_24_MP3_48K_2.mpg",
957 SEEK_MODE_CLOSEST_SYNC, 0, 48, 79, 0};
958 CheckSeekMode(fileTest6);
959 seekInfo fileTest7{"/data/test/media/MPEG2_simple_320_240_24_MP3_48K_2.mpg",
960 SEEK_MODE_CLOSEST_SYNC, 833333, 28, 74, 0};
961 CheckSeekMode(fileTest7);
962 seekInfo fileTest8{"/data/test/media/MPEG2_simple_320_240_24_MP3_48K_2.mpg",
963 SEEK_MODE_CLOSEST_SYNC, 1939689, 5, 32, 0};
964 CheckSeekMode(fileTest8);
965 }