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