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