1da853ecaSopenharmony_ci/*
2da853ecaSopenharmony_ci * Copyright (C) 2022 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 <string>
17da853ecaSopenharmony_ci#include "gtest/gtest.h"
18da853ecaSopenharmony_ci#include "AVMuxerDemo.h"
19da853ecaSopenharmony_ci
20da853ecaSopenharmony_ciusing namespace std;
21da853ecaSopenharmony_ciusing namespace testing::ext;
22da853ecaSopenharmony_ciusing namespace OHOS;
23da853ecaSopenharmony_ciusing namespace OHOS::MediaAVCodec;
24da853ecaSopenharmony_ci
25da853ecaSopenharmony_ci
26da853ecaSopenharmony_cinamespace {
27da853ecaSopenharmony_ci    class NativeAVMuxerInterfaceDependCheckTest : public testing::Test {
28da853ecaSopenharmony_ci    public:
29da853ecaSopenharmony_ci        static void SetUpTestCase();
30da853ecaSopenharmony_ci        static void TearDownTestCase();
31da853ecaSopenharmony_ci        void SetUp() override;
32da853ecaSopenharmony_ci        void TearDown() override;
33da853ecaSopenharmony_ci    };
34da853ecaSopenharmony_ci
35da853ecaSopenharmony_ci    void NativeAVMuxerInterfaceDependCheckTest::SetUpTestCase() {}
36da853ecaSopenharmony_ci    void NativeAVMuxerInterfaceDependCheckTest::TearDownTestCase() {}
37da853ecaSopenharmony_ci    void NativeAVMuxerInterfaceDependCheckTest::SetUp() {}
38da853ecaSopenharmony_ci    void NativeAVMuxerInterfaceDependCheckTest::TearDown() {}
39da853ecaSopenharmony_ci
40da853ecaSopenharmony_ci    constexpr int64_t BITRATE = 32000;
41da853ecaSopenharmony_ci    constexpr int32_t CODEC_CONFIG = 100;
42da853ecaSopenharmony_ci    constexpr int32_t CHANNEL_COUNT = 1;
43da853ecaSopenharmony_ci    constexpr int32_t SAMPLE_RATE = 48000;
44da853ecaSopenharmony_ci    constexpr int32_t PROFILE = 0;
45da853ecaSopenharmony_ci    constexpr int32_t INFO_SIZE = 100;
46da853ecaSopenharmony_ci
47da853ecaSopenharmony_ci    OH_AVMuxer* Create(AVMuxerDemo* muxerDemo)
48da853ecaSopenharmony_ci    {
49da853ecaSopenharmony_ci        OH_AVOutputFormat format = AV_OUTPUT_FORMAT_MPEG_4;
50da853ecaSopenharmony_ci        OH_AVMuxer* handle = nullptr;
51da853ecaSopenharmony_ci        int32_t fd = muxerDemo->GetFdByMode(format);
52da853ecaSopenharmony_ci        handle = muxerDemo->NativeCreate(fd, format);
53da853ecaSopenharmony_ci
54da853ecaSopenharmony_ci        return handle;
55da853ecaSopenharmony_ci    }
56da853ecaSopenharmony_ci
57da853ecaSopenharmony_ci    OH_AVErrCode SetRotation(AVMuxerDemo* muxerDemo, OH_AVMuxer* handle)
58da853ecaSopenharmony_ci    {
59da853ecaSopenharmony_ci        int32_t rotation = 0;
60da853ecaSopenharmony_ci
61da853ecaSopenharmony_ci        OH_AVErrCode ret = muxerDemo->NativeSetRotation(handle, rotation);
62da853ecaSopenharmony_ci
63da853ecaSopenharmony_ci        return ret;
64da853ecaSopenharmony_ci    }
65da853ecaSopenharmony_ci
66da853ecaSopenharmony_ci    OH_AVErrCode AddTrack(AVMuxerDemo* muxerDemo, int32_t* trackId, OH_AVMuxer* handle)
67da853ecaSopenharmony_ci    {
68da853ecaSopenharmony_ci        uint8_t a[100];
69da853ecaSopenharmony_ci
70da853ecaSopenharmony_ci        OH_AVFormat* trackFormat = OH_AVFormat_Create();
71da853ecaSopenharmony_ci        OH_AVFormat_SetStringValue(trackFormat, OH_MD_KEY_CODEC_MIME, OH_AVCODEC_MIMETYPE_AUDIO_AAC);
72da853ecaSopenharmony_ci        OH_AVFormat_SetLongValue(trackFormat, OH_MD_KEY_BITRATE, BITRATE);
73da853ecaSopenharmony_ci        OH_AVFormat_SetBuffer(trackFormat, OH_MD_KEY_CODEC_CONFIG, a, CODEC_CONFIG);
74da853ecaSopenharmony_ci        OH_AVFormat_SetIntValue(trackFormat, OH_MD_KEY_AUD_CHANNEL_COUNT, CHANNEL_COUNT);
75da853ecaSopenharmony_ci        OH_AVFormat_SetIntValue(trackFormat, OH_MD_KEY_AUD_SAMPLE_RATE, SAMPLE_RATE);
76da853ecaSopenharmony_ci        OH_AVFormat_SetIntValue(trackFormat, OH_MD_KEY_PROFILE, PROFILE);
77da853ecaSopenharmony_ci
78da853ecaSopenharmony_ci        OH_AVErrCode ret = muxerDemo->NativeAddTrack(handle, trackId, trackFormat);
79da853ecaSopenharmony_ci        OH_AVFormat_Destroy(trackFormat);
80da853ecaSopenharmony_ci        return ret;
81da853ecaSopenharmony_ci    }
82da853ecaSopenharmony_ci
83da853ecaSopenharmony_ci    OH_AVErrCode Start(AVMuxerDemo* muxerDemo, OH_AVMuxer* handle)
84da853ecaSopenharmony_ci    {
85da853ecaSopenharmony_ci        OH_AVErrCode ret = muxerDemo->NativeStart(handle);
86da853ecaSopenharmony_ci
87da853ecaSopenharmony_ci        return ret;
88da853ecaSopenharmony_ci    }
89da853ecaSopenharmony_ci
90da853ecaSopenharmony_ci    OH_AVErrCode WriteSampleBuffer(AVMuxerDemo* muxerDemo, OH_AVMuxer* handle, uint32_t trackIndex)
91da853ecaSopenharmony_ci    {
92da853ecaSopenharmony_ci        OH_AVMemory* avMemBuffer = OH_AVMemory_Create(100);
93da853ecaSopenharmony_ci
94da853ecaSopenharmony_ci        OH_AVCodecBufferAttr info;
95da853ecaSopenharmony_ci        info.size = INFO_SIZE;
96da853ecaSopenharmony_ci        info.pts = 0;
97da853ecaSopenharmony_ci        info.offset = 0;
98da853ecaSopenharmony_ci        info.flags = 0;
99da853ecaSopenharmony_ci
100da853ecaSopenharmony_ci        OH_AVErrCode ret = muxerDemo->NativeWriteSampleBuffer(handle, trackIndex, avMemBuffer, info);
101da853ecaSopenharmony_ci        OH_AVMemory_Destroy(avMemBuffer);
102da853ecaSopenharmony_ci        return ret;
103da853ecaSopenharmony_ci    }
104da853ecaSopenharmony_ci
105da853ecaSopenharmony_ci    OH_AVErrCode Stop(AVMuxerDemo* muxerDemo, OH_AVMuxer* handle)
106da853ecaSopenharmony_ci    {
107da853ecaSopenharmony_ci        OH_AVErrCode ret = muxerDemo->NativeStop(handle);
108da853ecaSopenharmony_ci
109da853ecaSopenharmony_ci        return ret;
110da853ecaSopenharmony_ci    }
111da853ecaSopenharmony_ci
112da853ecaSopenharmony_ci    OH_AVErrCode Destroy(AVMuxerDemo* muxerDemo, OH_AVMuxer* handle)
113da853ecaSopenharmony_ci    {
114da853ecaSopenharmony_ci        OH_AVErrCode ret = muxerDemo->NativeDestroy(handle);
115da853ecaSopenharmony_ci
116da853ecaSopenharmony_ci        return ret;
117da853ecaSopenharmony_ci    }
118da853ecaSopenharmony_ci}
119da853ecaSopenharmony_ci
120da853ecaSopenharmony_ci
121da853ecaSopenharmony_ci/**
122da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_001
123da853ecaSopenharmony_ci * @tc.name      : Create -> SetRotation
124da853ecaSopenharmony_ci * @tc.desc      : interface depend check
125da853ecaSopenharmony_ci */
126da853ecaSopenharmony_ciHWTEST_F(NativeAVMuxerInterfaceDependCheckTest, SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_001, TestSize.Level2)
127da853ecaSopenharmony_ci{
128da853ecaSopenharmony_ci    AVMuxerDemo* muxerDemo = new AVMuxerDemo();
129da853ecaSopenharmony_ci    OH_AVMuxer* handle = Create(muxerDemo);
130da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
131da853ecaSopenharmony_ci
132da853ecaSopenharmony_ci    OH_AVErrCode ret;
133da853ecaSopenharmony_ci
134da853ecaSopenharmony_ci    ret = SetRotation(muxerDemo, handle);
135da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
136da853ecaSopenharmony_ci
137da853ecaSopenharmony_ci    Destroy(muxerDemo, handle);
138da853ecaSopenharmony_ci    delete muxerDemo;
139da853ecaSopenharmony_ci}
140da853ecaSopenharmony_ci
141da853ecaSopenharmony_ci
142da853ecaSopenharmony_ci/**
143da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_002
144da853ecaSopenharmony_ci * @tc.name      : Create -> SetRotation -> SetRotation
145da853ecaSopenharmony_ci * @tc.desc      : interface depend check
146da853ecaSopenharmony_ci */
147da853ecaSopenharmony_ciHWTEST_F(NativeAVMuxerInterfaceDependCheckTest, SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_002, TestSize.Level2)
148da853ecaSopenharmony_ci{
149da853ecaSopenharmony_ci    AVMuxerDemo* muxerDemo = new AVMuxerDemo();
150da853ecaSopenharmony_ci    OH_AVMuxer* handle = Create(muxerDemo);
151da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
152da853ecaSopenharmony_ci
153da853ecaSopenharmony_ci    OH_AVErrCode ret;
154da853ecaSopenharmony_ci
155da853ecaSopenharmony_ci    ret = SetRotation(muxerDemo, handle);
156da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
157da853ecaSopenharmony_ci
158da853ecaSopenharmony_ci    ret = SetRotation(muxerDemo, handle);
159da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
160da853ecaSopenharmony_ci
161da853ecaSopenharmony_ci    Destroy(muxerDemo, handle);
162da853ecaSopenharmony_ci    delete muxerDemo;
163da853ecaSopenharmony_ci}
164da853ecaSopenharmony_ci
165da853ecaSopenharmony_ci
166da853ecaSopenharmony_ci/**
167da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_003
168da853ecaSopenharmony_ci * @tc.name      : Create -> AddTrack -> SetRotation
169da853ecaSopenharmony_ci * @tc.desc      : interface depend check
170da853ecaSopenharmony_ci */
171da853ecaSopenharmony_ciHWTEST_F(NativeAVMuxerInterfaceDependCheckTest, SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_003, TestSize.Level2)
172da853ecaSopenharmony_ci{
173da853ecaSopenharmony_ci    AVMuxerDemo* muxerDemo = new AVMuxerDemo();
174da853ecaSopenharmony_ci    OH_AVMuxer* handle = Create(muxerDemo);
175da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
176da853ecaSopenharmony_ci
177da853ecaSopenharmony_ci    OH_AVErrCode ret;
178da853ecaSopenharmony_ci
179da853ecaSopenharmony_ci    int32_t trackId;
180da853ecaSopenharmony_ci    ret = AddTrack(muxerDemo, &trackId, handle);
181da853ecaSopenharmony_ci    ASSERT_EQ(0, trackId);
182da853ecaSopenharmony_ci
183da853ecaSopenharmony_ci    ret = SetRotation(muxerDemo, handle);
184da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
185da853ecaSopenharmony_ci
186da853ecaSopenharmony_ci    Destroy(muxerDemo, handle);
187da853ecaSopenharmony_ci    delete muxerDemo;
188da853ecaSopenharmony_ci}
189da853ecaSopenharmony_ci
190da853ecaSopenharmony_ci
191da853ecaSopenharmony_ci/**
192da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_004
193da853ecaSopenharmony_ci * @tc.name      : Create -> AddTrack -> Start -> SetRotation
194da853ecaSopenharmony_ci * @tc.desc      : interface depend check
195da853ecaSopenharmony_ci */
196da853ecaSopenharmony_ciHWTEST_F(NativeAVMuxerInterfaceDependCheckTest, SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_004, TestSize.Level2)
197da853ecaSopenharmony_ci{
198da853ecaSopenharmony_ci    AVMuxerDemo* muxerDemo = new AVMuxerDemo();
199da853ecaSopenharmony_ci    OH_AVMuxer* handle = Create(muxerDemo);
200da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
201da853ecaSopenharmony_ci
202da853ecaSopenharmony_ci    OH_AVErrCode ret;
203da853ecaSopenharmony_ci
204da853ecaSopenharmony_ci    int32_t trackId;
205da853ecaSopenharmony_ci    ret = AddTrack(muxerDemo, &trackId, handle);
206da853ecaSopenharmony_ci    ASSERT_EQ(0, trackId);
207da853ecaSopenharmony_ci
208da853ecaSopenharmony_ci    ret = Start(muxerDemo, handle);
209da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
210da853ecaSopenharmony_ci
211da853ecaSopenharmony_ci    ret = SetRotation(muxerDemo, handle);
212da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OPERATE_NOT_PERMIT, ret);
213da853ecaSopenharmony_ci
214da853ecaSopenharmony_ci    Destroy(muxerDemo, handle);
215da853ecaSopenharmony_ci    delete muxerDemo;
216da853ecaSopenharmony_ci}
217da853ecaSopenharmony_ci
218da853ecaSopenharmony_ci
219da853ecaSopenharmony_ci/**
220da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_005
221da853ecaSopenharmony_ci * @tc.name      : Create -> AddTrack -> Start -> Stop -> SetRotation
222da853ecaSopenharmony_ci * @tc.desc      : interface depend check
223da853ecaSopenharmony_ci */
224da853ecaSopenharmony_ciHWTEST_F(NativeAVMuxerInterfaceDependCheckTest, SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_005, TestSize.Level2)
225da853ecaSopenharmony_ci{
226da853ecaSopenharmony_ci    AVMuxerDemo* muxerDemo = new AVMuxerDemo();
227da853ecaSopenharmony_ci    OH_AVMuxer* handle = Create(muxerDemo);
228da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
229da853ecaSopenharmony_ci
230da853ecaSopenharmony_ci    OH_AVErrCode ret;
231da853ecaSopenharmony_ci
232da853ecaSopenharmony_ci    int32_t trackId;
233da853ecaSopenharmony_ci    ret = AddTrack(muxerDemo, &trackId, handle);
234da853ecaSopenharmony_ci    ASSERT_EQ(0, trackId);
235da853ecaSopenharmony_ci
236da853ecaSopenharmony_ci    ret = Start(muxerDemo, handle);
237da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
238da853ecaSopenharmony_ci
239da853ecaSopenharmony_ci    ret = Stop(muxerDemo, handle);
240da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
241da853ecaSopenharmony_ci
242da853ecaSopenharmony_ci    ret = SetRotation(muxerDemo, handle);
243da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OPERATE_NOT_PERMIT, ret);
244da853ecaSopenharmony_ci
245da853ecaSopenharmony_ci    Destroy(muxerDemo, handle);
246da853ecaSopenharmony_ci    delete muxerDemo;
247da853ecaSopenharmony_ci}
248da853ecaSopenharmony_ci
249da853ecaSopenharmony_ci
250da853ecaSopenharmony_ci/**
251da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_006
252da853ecaSopenharmony_ci * @tc.name      : Create -> AddTrack
253da853ecaSopenharmony_ci * @tc.desc      : interface depend check
254da853ecaSopenharmony_ci */
255da853ecaSopenharmony_ciHWTEST_F(NativeAVMuxerInterfaceDependCheckTest, SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_006, TestSize.Level2)
256da853ecaSopenharmony_ci{
257da853ecaSopenharmony_ci    AVMuxerDemo* muxerDemo = new AVMuxerDemo();
258da853ecaSopenharmony_ci    OH_AVMuxer* handle = Create(muxerDemo);
259da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
260da853ecaSopenharmony_ci
261da853ecaSopenharmony_ci    int32_t trackId;
262da853ecaSopenharmony_ci    OH_AVErrCode ret = AddTrack(muxerDemo, &trackId, handle);
263da853ecaSopenharmony_ci    ASSERT_EQ(0, trackId);
264da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
265da853ecaSopenharmony_ci
266da853ecaSopenharmony_ci    Destroy(muxerDemo, handle);
267da853ecaSopenharmony_ci    delete muxerDemo;
268da853ecaSopenharmony_ci}
269da853ecaSopenharmony_ci
270da853ecaSopenharmony_ci
271da853ecaSopenharmony_ci/**
272da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_007
273da853ecaSopenharmony_ci * @tc.name      : Create -> AddTrack -> AddTrack
274da853ecaSopenharmony_ci * @tc.desc      : interface depend check
275da853ecaSopenharmony_ci */
276da853ecaSopenharmony_ciHWTEST_F(NativeAVMuxerInterfaceDependCheckTest, SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_007, TestSize.Level2)
277da853ecaSopenharmony_ci{
278da853ecaSopenharmony_ci    AVMuxerDemo* muxerDemo = new AVMuxerDemo();
279da853ecaSopenharmony_ci    OH_AVMuxer* handle = Create(muxerDemo);
280da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
281da853ecaSopenharmony_ci
282da853ecaSopenharmony_ci    int32_t trackId;
283da853ecaSopenharmony_ci    OH_AVErrCode ret = AddTrack(muxerDemo, &trackId, handle);
284da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
285da853ecaSopenharmony_ci    ASSERT_EQ(0, trackId);
286da853ecaSopenharmony_ci
287da853ecaSopenharmony_ci    ret = AddTrack(muxerDemo, &trackId, handle);
288da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
289da853ecaSopenharmony_ci    ASSERT_EQ(1, trackId);
290da853ecaSopenharmony_ci
291da853ecaSopenharmony_ci    Destroy(muxerDemo, handle);
292da853ecaSopenharmony_ci    delete muxerDemo;
293da853ecaSopenharmony_ci}
294da853ecaSopenharmony_ci
295da853ecaSopenharmony_ci
296da853ecaSopenharmony_ci/**
297da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_008
298da853ecaSopenharmony_ci * @tc.name      : Create -> SetRotation -> AddTrack
299da853ecaSopenharmony_ci * @tc.desc      : interface depend check
300da853ecaSopenharmony_ci */
301da853ecaSopenharmony_ciHWTEST_F(NativeAVMuxerInterfaceDependCheckTest, SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_008, TestSize.Level2)
302da853ecaSopenharmony_ci{
303da853ecaSopenharmony_ci    AVMuxerDemo* muxerDemo = new AVMuxerDemo();
304da853ecaSopenharmony_ci    OH_AVMuxer* handle = Create(muxerDemo);
305da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
306da853ecaSopenharmony_ci
307da853ecaSopenharmony_ci    OH_AVErrCode ret;
308da853ecaSopenharmony_ci
309da853ecaSopenharmony_ci    ret = SetRotation(muxerDemo, handle);
310da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
311da853ecaSopenharmony_ci
312da853ecaSopenharmony_ci    int32_t trackId;
313da853ecaSopenharmony_ci    ret = AddTrack(muxerDemo, &trackId, handle);
314da853ecaSopenharmony_ci    ASSERT_EQ(0, trackId);
315da853ecaSopenharmony_ci
316da853ecaSopenharmony_ci    Destroy(muxerDemo, handle);
317da853ecaSopenharmony_ci    delete muxerDemo;
318da853ecaSopenharmony_ci}
319da853ecaSopenharmony_ci
320da853ecaSopenharmony_ci
321da853ecaSopenharmony_ci/**
322da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_009
323da853ecaSopenharmony_ci * @tc.name      : Create -> AddTrack -> Start -> AddTrack
324da853ecaSopenharmony_ci * @tc.desc      : interface depend check
325da853ecaSopenharmony_ci */
326da853ecaSopenharmony_ciHWTEST_F(NativeAVMuxerInterfaceDependCheckTest, SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_009, TestSize.Level2)
327da853ecaSopenharmony_ci{
328da853ecaSopenharmony_ci    AVMuxerDemo* muxerDemo = new AVMuxerDemo();
329da853ecaSopenharmony_ci    OH_AVMuxer* handle = Create(muxerDemo);
330da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
331da853ecaSopenharmony_ci
332da853ecaSopenharmony_ci    OH_AVErrCode ret;
333da853ecaSopenharmony_ci
334da853ecaSopenharmony_ci    int32_t trackId;
335da853ecaSopenharmony_ci    ret = AddTrack(muxerDemo, &trackId, handle);
336da853ecaSopenharmony_ci    ASSERT_EQ(0, trackId);
337da853ecaSopenharmony_ci
338da853ecaSopenharmony_ci    ret = Start(muxerDemo, handle);
339da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
340da853ecaSopenharmony_ci
341da853ecaSopenharmony_ci    ret = AddTrack(muxerDemo, &trackId, handle);
342da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OPERATE_NOT_PERMIT, ret);
343da853ecaSopenharmony_ci
344da853ecaSopenharmony_ci    Destroy(muxerDemo, handle);
345da853ecaSopenharmony_ci    delete muxerDemo;
346da853ecaSopenharmony_ci}
347da853ecaSopenharmony_ci
348da853ecaSopenharmony_ci
349da853ecaSopenharmony_ci/**
350da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_010
351da853ecaSopenharmony_ci * @tc.name      : Create -> AddTrack -> Start -> Stop -> AddTrack
352da853ecaSopenharmony_ci * @tc.desc      : interface depend check
353da853ecaSopenharmony_ci */
354da853ecaSopenharmony_ciHWTEST_F(NativeAVMuxerInterfaceDependCheckTest, SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_010, TestSize.Level2)
355da853ecaSopenharmony_ci{
356da853ecaSopenharmony_ci    AVMuxerDemo* muxerDemo = new AVMuxerDemo();
357da853ecaSopenharmony_ci    OH_AVMuxer* handle = Create(muxerDemo);
358da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
359da853ecaSopenharmony_ci
360da853ecaSopenharmony_ci    OH_AVErrCode ret;
361da853ecaSopenharmony_ci
362da853ecaSopenharmony_ci    int32_t trackId;
363da853ecaSopenharmony_ci    ret = AddTrack(muxerDemo, &trackId, handle);
364da853ecaSopenharmony_ci    ASSERT_EQ(0, trackId);
365da853ecaSopenharmony_ci
366da853ecaSopenharmony_ci    ret = Start(muxerDemo, handle);
367da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
368da853ecaSopenharmony_ci
369da853ecaSopenharmony_ci    ret = Stop(muxerDemo, handle);
370da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
371da853ecaSopenharmony_ci
372da853ecaSopenharmony_ci    ret = AddTrack(muxerDemo, &trackId, handle);
373da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OPERATE_NOT_PERMIT, ret);
374da853ecaSopenharmony_ci
375da853ecaSopenharmony_ci    Destroy(muxerDemo, handle);
376da853ecaSopenharmony_ci    delete muxerDemo;
377da853ecaSopenharmony_ci}
378da853ecaSopenharmony_ci
379da853ecaSopenharmony_ci
380da853ecaSopenharmony_ci/**
381da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_011
382da853ecaSopenharmony_ci * @tc.name      : Create -> Start
383da853ecaSopenharmony_ci * @tc.desc      : interface depend check
384da853ecaSopenharmony_ci */
385da853ecaSopenharmony_ciHWTEST_F(NativeAVMuxerInterfaceDependCheckTest, SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_011, TestSize.Level2)
386da853ecaSopenharmony_ci{
387da853ecaSopenharmony_ci    AVMuxerDemo* muxerDemo = new AVMuxerDemo();
388da853ecaSopenharmony_ci    OH_AVMuxer* handle = Create(muxerDemo);
389da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
390da853ecaSopenharmony_ci
391da853ecaSopenharmony_ci    OH_AVErrCode ret;
392da853ecaSopenharmony_ci
393da853ecaSopenharmony_ci    ret = Start(muxerDemo, handle);
394da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OPERATE_NOT_PERMIT, ret);
395da853ecaSopenharmony_ci
396da853ecaSopenharmony_ci    Destroy(muxerDemo, handle);
397da853ecaSopenharmony_ci    delete muxerDemo;
398da853ecaSopenharmony_ci}
399da853ecaSopenharmony_ci
400da853ecaSopenharmony_ci
401da853ecaSopenharmony_ci/**
402da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_012
403da853ecaSopenharmony_ci * @tc.name      : Create -> AddTrack -> Start
404da853ecaSopenharmony_ci * @tc.desc      : interface depend check
405da853ecaSopenharmony_ci */
406da853ecaSopenharmony_ciHWTEST_F(NativeAVMuxerInterfaceDependCheckTest, SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_012, TestSize.Level2)
407da853ecaSopenharmony_ci{
408da853ecaSopenharmony_ci    AVMuxerDemo* muxerDemo = new AVMuxerDemo();
409da853ecaSopenharmony_ci    OH_AVMuxer* handle = Create(muxerDemo);
410da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
411da853ecaSopenharmony_ci
412da853ecaSopenharmony_ci    OH_AVErrCode ret;
413da853ecaSopenharmony_ci
414da853ecaSopenharmony_ci    int32_t trackId;
415da853ecaSopenharmony_ci    ret = AddTrack(muxerDemo, &trackId, handle);
416da853ecaSopenharmony_ci    ASSERT_EQ(0, trackId);
417da853ecaSopenharmony_ci
418da853ecaSopenharmony_ci    ret = Start(muxerDemo, handle);
419da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
420da853ecaSopenharmony_ci
421da853ecaSopenharmony_ci    Destroy(muxerDemo, handle);
422da853ecaSopenharmony_ci    delete muxerDemo;
423da853ecaSopenharmony_ci}
424da853ecaSopenharmony_ci
425da853ecaSopenharmony_ci
426da853ecaSopenharmony_ci/**
427da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_013
428da853ecaSopenharmony_ci * @tc.name      : Create -> SetRotation -> AddTrack -> Start
429da853ecaSopenharmony_ci * @tc.desc      : interface depend check
430da853ecaSopenharmony_ci */
431da853ecaSopenharmony_ciHWTEST_F(NativeAVMuxerInterfaceDependCheckTest, SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_013, TestSize.Level2)
432da853ecaSopenharmony_ci{
433da853ecaSopenharmony_ci    AVMuxerDemo* muxerDemo = new AVMuxerDemo();
434da853ecaSopenharmony_ci    OH_AVMuxer* handle = Create(muxerDemo);
435da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
436da853ecaSopenharmony_ci
437da853ecaSopenharmony_ci    OH_AVErrCode ret;
438da853ecaSopenharmony_ci
439da853ecaSopenharmony_ci    ret = SetRotation(muxerDemo, handle);
440da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
441da853ecaSopenharmony_ci
442da853ecaSopenharmony_ci    int32_t trackId;
443da853ecaSopenharmony_ci    ret = AddTrack(muxerDemo, &trackId, handle);
444da853ecaSopenharmony_ci    ASSERT_EQ(0, trackId);
445da853ecaSopenharmony_ci
446da853ecaSopenharmony_ci    ret = Start(muxerDemo, handle);
447da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
448da853ecaSopenharmony_ci
449da853ecaSopenharmony_ci    Destroy(muxerDemo, handle);
450da853ecaSopenharmony_ci    delete muxerDemo;
451da853ecaSopenharmony_ci}
452da853ecaSopenharmony_ci
453da853ecaSopenharmony_ci
454da853ecaSopenharmony_ci/**
455da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_014
456da853ecaSopenharmony_ci * @tc.name      : Create -> AddTrack -> Start -> Start
457da853ecaSopenharmony_ci * @tc.desc      : interface depend check
458da853ecaSopenharmony_ci */
459da853ecaSopenharmony_ciHWTEST_F(NativeAVMuxerInterfaceDependCheckTest, SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_014, TestSize.Level2)
460da853ecaSopenharmony_ci{
461da853ecaSopenharmony_ci    AVMuxerDemo* muxerDemo = new AVMuxerDemo();
462da853ecaSopenharmony_ci    OH_AVMuxer* handle = Create(muxerDemo);
463da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
464da853ecaSopenharmony_ci
465da853ecaSopenharmony_ci    OH_AVErrCode ret;
466da853ecaSopenharmony_ci
467da853ecaSopenharmony_ci    int32_t trackId;
468da853ecaSopenharmony_ci    ret = AddTrack(muxerDemo, &trackId, handle);
469da853ecaSopenharmony_ci    ASSERT_EQ(0, trackId);
470da853ecaSopenharmony_ci
471da853ecaSopenharmony_ci    ret = Start(muxerDemo, handle);
472da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
473da853ecaSopenharmony_ci
474da853ecaSopenharmony_ci    ret = Start(muxerDemo, handle);
475da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OPERATE_NOT_PERMIT, ret);
476da853ecaSopenharmony_ci
477da853ecaSopenharmony_ci    Destroy(muxerDemo, handle);
478da853ecaSopenharmony_ci    delete muxerDemo;
479da853ecaSopenharmony_ci}
480da853ecaSopenharmony_ci
481da853ecaSopenharmony_ci
482da853ecaSopenharmony_ci/**
483da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_015
484da853ecaSopenharmony_ci * @tc.name      : Create -> AddTrack -> Start -> Stop -> Start
485da853ecaSopenharmony_ci * @tc.desc      : interface depend check
486da853ecaSopenharmony_ci */
487da853ecaSopenharmony_ciHWTEST_F(NativeAVMuxerInterfaceDependCheckTest, SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_015, TestSize.Level2)
488da853ecaSopenharmony_ci{
489da853ecaSopenharmony_ci    AVMuxerDemo* muxerDemo = new AVMuxerDemo();
490da853ecaSopenharmony_ci    OH_AVMuxer* handle = Create(muxerDemo);
491da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
492da853ecaSopenharmony_ci
493da853ecaSopenharmony_ci    OH_AVErrCode ret;
494da853ecaSopenharmony_ci
495da853ecaSopenharmony_ci    int32_t trackId;
496da853ecaSopenharmony_ci    ret = AddTrack(muxerDemo, &trackId, handle);
497da853ecaSopenharmony_ci    ASSERT_EQ(0, trackId);
498da853ecaSopenharmony_ci
499da853ecaSopenharmony_ci    ret = Start(muxerDemo, handle);
500da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
501da853ecaSopenharmony_ci
502da853ecaSopenharmony_ci    ret = Stop(muxerDemo, handle);
503da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
504da853ecaSopenharmony_ci
505da853ecaSopenharmony_ci    ret = Start(muxerDemo, handle);
506da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OPERATE_NOT_PERMIT, ret);
507da853ecaSopenharmony_ci
508da853ecaSopenharmony_ci    Destroy(muxerDemo, handle);
509da853ecaSopenharmony_ci    delete muxerDemo;
510da853ecaSopenharmony_ci}
511da853ecaSopenharmony_ci
512da853ecaSopenharmony_ci
513da853ecaSopenharmony_ci/**
514da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_016
515da853ecaSopenharmony_ci * @tc.name      : Create -> WriteSampleBuffer
516da853ecaSopenharmony_ci * @tc.desc      : interface depend check
517da853ecaSopenharmony_ci */
518da853ecaSopenharmony_ciHWTEST_F(NativeAVMuxerInterfaceDependCheckTest, SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_016, TestSize.Level2)
519da853ecaSopenharmony_ci{
520da853ecaSopenharmony_ci    AVMuxerDemo* muxerDemo = new AVMuxerDemo();
521da853ecaSopenharmony_ci    OH_AVMuxer* handle = Create(muxerDemo);
522da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
523da853ecaSopenharmony_ci
524da853ecaSopenharmony_ci    OH_AVErrCode ret;
525da853ecaSopenharmony_ci    int32_t trackId = -1;
526da853ecaSopenharmony_ci
527da853ecaSopenharmony_ci    ret = WriteSampleBuffer(muxerDemo, handle, trackId);
528da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OPERATE_NOT_PERMIT, ret);
529da853ecaSopenharmony_ci
530da853ecaSopenharmony_ci    Destroy(muxerDemo, handle);
531da853ecaSopenharmony_ci    delete muxerDemo;
532da853ecaSopenharmony_ci}
533da853ecaSopenharmony_ci
534da853ecaSopenharmony_ci
535da853ecaSopenharmony_ci/**
536da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_017
537da853ecaSopenharmony_ci * @tc.name      : Create -> AddTrack -> WriteSampleBuffer
538da853ecaSopenharmony_ci * @tc.desc      : interface depend check
539da853ecaSopenharmony_ci */
540da853ecaSopenharmony_ciHWTEST_F(NativeAVMuxerInterfaceDependCheckTest, SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_017, TestSize.Level2)
541da853ecaSopenharmony_ci{
542da853ecaSopenharmony_ci    AVMuxerDemo* muxerDemo = new AVMuxerDemo();
543da853ecaSopenharmony_ci    OH_AVMuxer* handle = Create(muxerDemo);
544da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
545da853ecaSopenharmony_ci
546da853ecaSopenharmony_ci    OH_AVErrCode ret;
547da853ecaSopenharmony_ci    int32_t trackId = -1;
548da853ecaSopenharmony_ci
549da853ecaSopenharmony_ci    ret = AddTrack(muxerDemo, &trackId, handle);
550da853ecaSopenharmony_ci    ASSERT_EQ(0, trackId);
551da853ecaSopenharmony_ci
552da853ecaSopenharmony_ci    ret = WriteSampleBuffer(muxerDemo, handle, trackId);
553da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OPERATE_NOT_PERMIT, ret);
554da853ecaSopenharmony_ci
555da853ecaSopenharmony_ci    Destroy(muxerDemo, handle);
556da853ecaSopenharmony_ci    delete muxerDemo;
557da853ecaSopenharmony_ci}
558da853ecaSopenharmony_ci
559da853ecaSopenharmony_ci
560da853ecaSopenharmony_ci/**
561da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_018
562da853ecaSopenharmony_ci * @tc.name      : Create -> SetRotation -> AddTrack -> Start -> WriteSampleBuffer
563da853ecaSopenharmony_ci * @tc.desc      : interface depend check
564da853ecaSopenharmony_ci */
565da853ecaSopenharmony_ciHWTEST_F(NativeAVMuxerInterfaceDependCheckTest, SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_018, TestSize.Level2)
566da853ecaSopenharmony_ci{
567da853ecaSopenharmony_ci    AVMuxerDemo* muxerDemo = new AVMuxerDemo();
568da853ecaSopenharmony_ci    OH_AVMuxer* handle = Create(muxerDemo);
569da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
570da853ecaSopenharmony_ci
571da853ecaSopenharmony_ci    OH_AVErrCode ret;
572da853ecaSopenharmony_ci    int32_t trackId = -1;
573da853ecaSopenharmony_ci
574da853ecaSopenharmony_ci    ret = SetRotation(muxerDemo, handle);
575da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
576da853ecaSopenharmony_ci
577da853ecaSopenharmony_ci    ret = AddTrack(muxerDemo, &trackId, handle);
578da853ecaSopenharmony_ci    ASSERT_EQ(0, trackId);
579da853ecaSopenharmony_ci
580da853ecaSopenharmony_ci    ret = Start(muxerDemo, handle);
581da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
582da853ecaSopenharmony_ci
583da853ecaSopenharmony_ci    ret = WriteSampleBuffer(muxerDemo, handle, trackId);
584da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
585da853ecaSopenharmony_ci
586da853ecaSopenharmony_ci    Destroy(muxerDemo, handle);
587da853ecaSopenharmony_ci    delete muxerDemo;
588da853ecaSopenharmony_ci}
589da853ecaSopenharmony_ci
590da853ecaSopenharmony_ci
591da853ecaSopenharmony_ci/**
592da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_019
593da853ecaSopenharmony_ci * @tc.name      : Create -> AddTrack -> Start -> WriteSampleBuffer
594da853ecaSopenharmony_ci * @tc.desc      : interface depend check
595da853ecaSopenharmony_ci */
596da853ecaSopenharmony_ciHWTEST_F(NativeAVMuxerInterfaceDependCheckTest, SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_019, TestSize.Level2)
597da853ecaSopenharmony_ci{
598da853ecaSopenharmony_ci    AVMuxerDemo* muxerDemo = new AVMuxerDemo();
599da853ecaSopenharmony_ci    OH_AVMuxer* handle = Create(muxerDemo);
600da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
601da853ecaSopenharmony_ci
602da853ecaSopenharmony_ci    OH_AVErrCode ret;
603da853ecaSopenharmony_ci    int32_t trackId = -1;
604da853ecaSopenharmony_ci
605da853ecaSopenharmony_ci    ret = AddTrack(muxerDemo, &trackId, handle);
606da853ecaSopenharmony_ci    ASSERT_EQ(0, trackId);
607da853ecaSopenharmony_ci
608da853ecaSopenharmony_ci    ret = Start(muxerDemo, handle);
609da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
610da853ecaSopenharmony_ci
611da853ecaSopenharmony_ci    ret = WriteSampleBuffer(muxerDemo, handle, trackId);
612da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
613da853ecaSopenharmony_ci
614da853ecaSopenharmony_ci    Destroy(muxerDemo, handle);
615da853ecaSopenharmony_ci    delete muxerDemo;
616da853ecaSopenharmony_ci}
617da853ecaSopenharmony_ci
618da853ecaSopenharmony_ci
619da853ecaSopenharmony_ci/**
620da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_020
621da853ecaSopenharmony_ci * @tc.name      : Create -> AddTrack -> Start -> WriteSampleBuffer -> WriteSampleBuffer
622da853ecaSopenharmony_ci * @tc.desc      : interface depend check
623da853ecaSopenharmony_ci */
624da853ecaSopenharmony_ciHWTEST_F(NativeAVMuxerInterfaceDependCheckTest, SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_020, TestSize.Level2)
625da853ecaSopenharmony_ci{
626da853ecaSopenharmony_ci    AVMuxerDemo* muxerDemo = new AVMuxerDemo();
627da853ecaSopenharmony_ci    OH_AVMuxer* handle = Create(muxerDemo);
628da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
629da853ecaSopenharmony_ci
630da853ecaSopenharmony_ci    OH_AVErrCode ret;
631da853ecaSopenharmony_ci    int32_t trackId = -1;
632da853ecaSopenharmony_ci
633da853ecaSopenharmony_ci    ret = AddTrack(muxerDemo, &trackId, handle);
634da853ecaSopenharmony_ci    ASSERT_EQ(0, trackId);
635da853ecaSopenharmony_ci
636da853ecaSopenharmony_ci    ret = Start(muxerDemo, handle);
637da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
638da853ecaSopenharmony_ci
639da853ecaSopenharmony_ci    ret = WriteSampleBuffer(muxerDemo, handle, trackId);
640da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
641da853ecaSopenharmony_ci
642da853ecaSopenharmony_ci    ret = WriteSampleBuffer(muxerDemo, handle, trackId);
643da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
644da853ecaSopenharmony_ci
645da853ecaSopenharmony_ci    Destroy(muxerDemo, handle);
646da853ecaSopenharmony_ci    delete muxerDemo;
647da853ecaSopenharmony_ci}
648da853ecaSopenharmony_ci
649da853ecaSopenharmony_ci
650da853ecaSopenharmony_ci/**
651da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_021
652da853ecaSopenharmony_ci * @tc.name      : Create -> AddTrack -> Start -> Stop -> WriteSampleBuffer
653da853ecaSopenharmony_ci * @tc.desc      : interface depend check
654da853ecaSopenharmony_ci */
655da853ecaSopenharmony_ciHWTEST_F(NativeAVMuxerInterfaceDependCheckTest, SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_021, TestSize.Level2)
656da853ecaSopenharmony_ci{
657da853ecaSopenharmony_ci    AVMuxerDemo* muxerDemo = new AVMuxerDemo();
658da853ecaSopenharmony_ci    OH_AVMuxer* handle = Create(muxerDemo);
659da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
660da853ecaSopenharmony_ci
661da853ecaSopenharmony_ci    OH_AVErrCode ret;
662da853ecaSopenharmony_ci    int32_t trackId = -1;
663da853ecaSopenharmony_ci
664da853ecaSopenharmony_ci    ret = AddTrack(muxerDemo, &trackId, handle);
665da853ecaSopenharmony_ci    ASSERT_EQ(0, trackId);
666da853ecaSopenharmony_ci
667da853ecaSopenharmony_ci    ret = Start(muxerDemo, handle);
668da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
669da853ecaSopenharmony_ci
670da853ecaSopenharmony_ci    ret = Stop(muxerDemo, handle);
671da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
672da853ecaSopenharmony_ci
673da853ecaSopenharmony_ci    ret = WriteSampleBuffer(muxerDemo, handle, trackId);
674da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OPERATE_NOT_PERMIT, ret);
675da853ecaSopenharmony_ci
676da853ecaSopenharmony_ci    Destroy(muxerDemo, handle);
677da853ecaSopenharmony_ci    delete muxerDemo;
678da853ecaSopenharmony_ci}
679da853ecaSopenharmony_ci
680da853ecaSopenharmony_ci
681da853ecaSopenharmony_ci/**
682da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_022
683da853ecaSopenharmony_ci * @tc.name      : Create -> Stop
684da853ecaSopenharmony_ci * @tc.desc      : interface depend check
685da853ecaSopenharmony_ci */
686da853ecaSopenharmony_ciHWTEST_F(NativeAVMuxerInterfaceDependCheckTest, SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_022, TestSize.Level2)
687da853ecaSopenharmony_ci{
688da853ecaSopenharmony_ci    AVMuxerDemo* muxerDemo = new AVMuxerDemo();
689da853ecaSopenharmony_ci    OH_AVMuxer* handle = Create(muxerDemo);
690da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
691da853ecaSopenharmony_ci
692da853ecaSopenharmony_ci    OH_AVErrCode ret;
693da853ecaSopenharmony_ci
694da853ecaSopenharmony_ci    ret = Stop(muxerDemo, handle);
695da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OPERATE_NOT_PERMIT, ret);
696da853ecaSopenharmony_ci
697da853ecaSopenharmony_ci    Destroy(muxerDemo, handle);
698da853ecaSopenharmony_ci    delete muxerDemo;
699da853ecaSopenharmony_ci}
700da853ecaSopenharmony_ci
701da853ecaSopenharmony_ci
702da853ecaSopenharmony_ci/**
703da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_023
704da853ecaSopenharmony_ci * @tc.name      : Create -> AddTrack -> Stop
705da853ecaSopenharmony_ci * @tc.desc      : interface depend check
706da853ecaSopenharmony_ci */
707da853ecaSopenharmony_ciHWTEST_F(NativeAVMuxerInterfaceDependCheckTest, SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_023, TestSize.Level2)
708da853ecaSopenharmony_ci{
709da853ecaSopenharmony_ci    AVMuxerDemo* muxerDemo = new AVMuxerDemo();
710da853ecaSopenharmony_ci    OH_AVMuxer* handle = Create(muxerDemo);
711da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
712da853ecaSopenharmony_ci
713da853ecaSopenharmony_ci    OH_AVErrCode ret;
714da853ecaSopenharmony_ci    int32_t trackId = -1;
715da853ecaSopenharmony_ci
716da853ecaSopenharmony_ci    ret = AddTrack(muxerDemo, &trackId, handle);
717da853ecaSopenharmony_ci    ASSERT_EQ(0, trackId);
718da853ecaSopenharmony_ci
719da853ecaSopenharmony_ci    ret = Stop(muxerDemo, handle);
720da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OPERATE_NOT_PERMIT, ret);
721da853ecaSopenharmony_ci
722da853ecaSopenharmony_ci    Destroy(muxerDemo, handle);
723da853ecaSopenharmony_ci    delete muxerDemo;
724da853ecaSopenharmony_ci}
725da853ecaSopenharmony_ci
726da853ecaSopenharmony_ci
727da853ecaSopenharmony_ci/**
728da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_024
729da853ecaSopenharmony_ci * @tc.name      : Create -> AddTrack -> Start -> Stop
730da853ecaSopenharmony_ci * @tc.desc      : interface depend check
731da853ecaSopenharmony_ci */
732da853ecaSopenharmony_ciHWTEST_F(NativeAVMuxerInterfaceDependCheckTest, SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_024, TestSize.Level2)
733da853ecaSopenharmony_ci{
734da853ecaSopenharmony_ci    AVMuxerDemo* muxerDemo = new AVMuxerDemo();
735da853ecaSopenharmony_ci    OH_AVMuxer* handle = Create(muxerDemo);
736da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
737da853ecaSopenharmony_ci
738da853ecaSopenharmony_ci    OH_AVErrCode ret;
739da853ecaSopenharmony_ci    int32_t trackId = -1;
740da853ecaSopenharmony_ci
741da853ecaSopenharmony_ci    ret = AddTrack(muxerDemo, &trackId, handle);
742da853ecaSopenharmony_ci    ASSERT_EQ(0, trackId);
743da853ecaSopenharmony_ci
744da853ecaSopenharmony_ci    ret = Start(muxerDemo, handle);
745da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
746da853ecaSopenharmony_ci
747da853ecaSopenharmony_ci    ret = Stop(muxerDemo, handle);
748da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
749da853ecaSopenharmony_ci
750da853ecaSopenharmony_ci    Destroy(muxerDemo, handle);
751da853ecaSopenharmony_ci    delete muxerDemo;
752da853ecaSopenharmony_ci}
753da853ecaSopenharmony_ci
754da853ecaSopenharmony_ci
755da853ecaSopenharmony_ci/**
756da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_025
757da853ecaSopenharmony_ci * @tc.name      : Create -> SetRotation -> AddTrack -> Start -> Stop
758da853ecaSopenharmony_ci * @tc.desc      : interface depend check
759da853ecaSopenharmony_ci */
760da853ecaSopenharmony_ciHWTEST_F(NativeAVMuxerInterfaceDependCheckTest, SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_025, TestSize.Level2)
761da853ecaSopenharmony_ci{
762da853ecaSopenharmony_ci    AVMuxerDemo* muxerDemo = new AVMuxerDemo();
763da853ecaSopenharmony_ci    OH_AVMuxer* handle = Create(muxerDemo);
764da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
765da853ecaSopenharmony_ci
766da853ecaSopenharmony_ci    OH_AVErrCode ret;
767da853ecaSopenharmony_ci
768da853ecaSopenharmony_ci    ret = SetRotation(muxerDemo, handle);
769da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
770da853ecaSopenharmony_ci
771da853ecaSopenharmony_ci    int32_t trackId = -1;
772da853ecaSopenharmony_ci    ret = AddTrack(muxerDemo, &trackId, handle);
773da853ecaSopenharmony_ci    ASSERT_EQ(0, trackId);
774da853ecaSopenharmony_ci
775da853ecaSopenharmony_ci    ret = Start(muxerDemo, handle);
776da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
777da853ecaSopenharmony_ci
778da853ecaSopenharmony_ci    ret = Stop(muxerDemo, handle);
779da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
780da853ecaSopenharmony_ci
781da853ecaSopenharmony_ci    Destroy(muxerDemo, handle);
782da853ecaSopenharmony_ci    delete muxerDemo;
783da853ecaSopenharmony_ci}
784da853ecaSopenharmony_ci
785da853ecaSopenharmony_ci
786da853ecaSopenharmony_ci/**
787da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_026
788da853ecaSopenharmony_ci * @tc.name      : Create -> AddTrack -> Start -> WriteSampleBuffer -> Stop -> Stop
789da853ecaSopenharmony_ci * @tc.desc      : interface depend check
790da853ecaSopenharmony_ci */
791da853ecaSopenharmony_ciHWTEST_F(NativeAVMuxerInterfaceDependCheckTest, SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_026, TestSize.Level2)
792da853ecaSopenharmony_ci{
793da853ecaSopenharmony_ci    AVMuxerDemo* muxerDemo = new AVMuxerDemo();
794da853ecaSopenharmony_ci    OH_AVMuxer* handle = Create(muxerDemo);
795da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
796da853ecaSopenharmony_ci
797da853ecaSopenharmony_ci    OH_AVErrCode ret;
798da853ecaSopenharmony_ci
799da853ecaSopenharmony_ci    int32_t trackId = -1;
800da853ecaSopenharmony_ci    ret = AddTrack(muxerDemo, &trackId, handle);
801da853ecaSopenharmony_ci    ASSERT_EQ(0, trackId);
802da853ecaSopenharmony_ci
803da853ecaSopenharmony_ci    ret = Start(muxerDemo, handle);
804da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
805da853ecaSopenharmony_ci
806da853ecaSopenharmony_ci    ret = WriteSampleBuffer(muxerDemo, handle, trackId);
807da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
808da853ecaSopenharmony_ci
809da853ecaSopenharmony_ci    ret = Stop(muxerDemo, handle);
810da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
811da853ecaSopenharmony_ci
812da853ecaSopenharmony_ci    ret = Stop(muxerDemo, handle);
813da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OPERATE_NOT_PERMIT, ret);
814da853ecaSopenharmony_ci
815da853ecaSopenharmony_ci    Destroy(muxerDemo, handle);
816da853ecaSopenharmony_ci    delete muxerDemo;
817da853ecaSopenharmony_ci}
818da853ecaSopenharmony_ci
819da853ecaSopenharmony_ci
820da853ecaSopenharmony_ci/**
821da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_027
822da853ecaSopenharmony_ci * @tc.name      : Create -> Destroy
823da853ecaSopenharmony_ci * @tc.desc      : interface depend check
824da853ecaSopenharmony_ci */
825da853ecaSopenharmony_ciHWTEST_F(NativeAVMuxerInterfaceDependCheckTest, SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_027, TestSize.Level2)
826da853ecaSopenharmony_ci{
827da853ecaSopenharmony_ci    AVMuxerDemo* muxerDemo = new AVMuxerDemo();
828da853ecaSopenharmony_ci    OH_AVMuxer* handle = Create(muxerDemo);
829da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
830da853ecaSopenharmony_ci
831da853ecaSopenharmony_ci    OH_AVErrCode ret;
832da853ecaSopenharmony_ci
833da853ecaSopenharmony_ci    ret = Destroy(muxerDemo, handle);
834da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
835da853ecaSopenharmony_ci
836da853ecaSopenharmony_ci    delete muxerDemo;
837da853ecaSopenharmony_ci}
838da853ecaSopenharmony_ci
839da853ecaSopenharmony_ci
840da853ecaSopenharmony_ci/**
841da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_028
842da853ecaSopenharmony_ci * @tc.name      : Create -> SetRotation -> Destroy
843da853ecaSopenharmony_ci * @tc.desc      : interface depend check
844da853ecaSopenharmony_ci */
845da853ecaSopenharmony_ciHWTEST_F(NativeAVMuxerInterfaceDependCheckTest, SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_028, TestSize.Level2)
846da853ecaSopenharmony_ci{
847da853ecaSopenharmony_ci    AVMuxerDemo* muxerDemo = new AVMuxerDemo();
848da853ecaSopenharmony_ci    OH_AVMuxer* handle = Create(muxerDemo);
849da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
850da853ecaSopenharmony_ci
851da853ecaSopenharmony_ci    OH_AVErrCode ret;
852da853ecaSopenharmony_ci
853da853ecaSopenharmony_ci    ret = SetRotation(muxerDemo, handle);
854da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
855da853ecaSopenharmony_ci
856da853ecaSopenharmony_ci    ret = Destroy(muxerDemo, handle);
857da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
858da853ecaSopenharmony_ci
859da853ecaSopenharmony_ci    delete muxerDemo;
860da853ecaSopenharmony_ci}
861da853ecaSopenharmony_ci
862da853ecaSopenharmony_ci
863da853ecaSopenharmony_ci/**
864da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_029
865da853ecaSopenharmony_ci * @tc.name      : Create -> AddTrack -> Destroy
866da853ecaSopenharmony_ci * @tc.desc      : interface depend check
867da853ecaSopenharmony_ci */
868da853ecaSopenharmony_ciHWTEST_F(NativeAVMuxerInterfaceDependCheckTest, SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_029, TestSize.Level2)
869da853ecaSopenharmony_ci{
870da853ecaSopenharmony_ci    AVMuxerDemo* muxerDemo = new AVMuxerDemo();
871da853ecaSopenharmony_ci    OH_AVMuxer* handle = Create(muxerDemo);
872da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
873da853ecaSopenharmony_ci
874da853ecaSopenharmony_ci    OH_AVErrCode ret;
875da853ecaSopenharmony_ci    int32_t trackId = -1;
876da853ecaSopenharmony_ci
877da853ecaSopenharmony_ci    ret = AddTrack(muxerDemo, &trackId, handle);
878da853ecaSopenharmony_ci    ASSERT_EQ(0, trackId);
879da853ecaSopenharmony_ci
880da853ecaSopenharmony_ci    ret = Destroy(muxerDemo, handle);
881da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
882da853ecaSopenharmony_ci
883da853ecaSopenharmony_ci    delete muxerDemo;
884da853ecaSopenharmony_ci}
885da853ecaSopenharmony_ci
886da853ecaSopenharmony_ci
887da853ecaSopenharmony_ci/**
888da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_030
889da853ecaSopenharmony_ci * @tc.name      : Create -> AddTrack -> Start -> Destroy
890da853ecaSopenharmony_ci * @tc.desc      : interface depend check
891da853ecaSopenharmony_ci */
892da853ecaSopenharmony_ciHWTEST_F(NativeAVMuxerInterfaceDependCheckTest, SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_030, TestSize.Level2)
893da853ecaSopenharmony_ci{
894da853ecaSopenharmony_ci    AVMuxerDemo* muxerDemo = new AVMuxerDemo();
895da853ecaSopenharmony_ci    OH_AVMuxer* handle = Create(muxerDemo);
896da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
897da853ecaSopenharmony_ci
898da853ecaSopenharmony_ci    OH_AVErrCode ret;
899da853ecaSopenharmony_ci    int32_t trackId = -1;
900da853ecaSopenharmony_ci
901da853ecaSopenharmony_ci    ret = AddTrack(muxerDemo, &trackId, handle);
902da853ecaSopenharmony_ci    ASSERT_EQ(0, trackId);
903da853ecaSopenharmony_ci
904da853ecaSopenharmony_ci    ret = Start(muxerDemo, handle);
905da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
906da853ecaSopenharmony_ci
907da853ecaSopenharmony_ci    ret = Destroy(muxerDemo, handle);
908da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
909da853ecaSopenharmony_ci
910da853ecaSopenharmony_ci    delete muxerDemo;
911da853ecaSopenharmony_ci}
912da853ecaSopenharmony_ci
913da853ecaSopenharmony_ci
914da853ecaSopenharmony_ci/**
915da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_031
916da853ecaSopenharmony_ci * @tc.name      : Create -> AddTrack -> Start -> WriteSampleBuffer -> Destroy
917da853ecaSopenharmony_ci * @tc.desc      : interface depend check
918da853ecaSopenharmony_ci */
919da853ecaSopenharmony_ciHWTEST_F(NativeAVMuxerInterfaceDependCheckTest, SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_031, TestSize.Level2)
920da853ecaSopenharmony_ci{
921da853ecaSopenharmony_ci    AVMuxerDemo* muxerDemo = new AVMuxerDemo();
922da853ecaSopenharmony_ci    OH_AVMuxer* handle = Create(muxerDemo);
923da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
924da853ecaSopenharmony_ci
925da853ecaSopenharmony_ci    OH_AVErrCode ret;
926da853ecaSopenharmony_ci    int32_t trackId = -1;
927da853ecaSopenharmony_ci
928da853ecaSopenharmony_ci    ret = AddTrack(muxerDemo, &trackId, handle);
929da853ecaSopenharmony_ci    ASSERT_EQ(0, trackId);
930da853ecaSopenharmony_ci
931da853ecaSopenharmony_ci    ret = Start(muxerDemo, handle);
932da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
933da853ecaSopenharmony_ci
934da853ecaSopenharmony_ci    ret = WriteSampleBuffer(muxerDemo, handle, trackId);
935da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
936da853ecaSopenharmony_ci
937da853ecaSopenharmony_ci    ret = Destroy(muxerDemo, handle);
938da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
939da853ecaSopenharmony_ci
940da853ecaSopenharmony_ci    delete muxerDemo;
941da853ecaSopenharmony_ci}
942da853ecaSopenharmony_ci
943da853ecaSopenharmony_ci
944da853ecaSopenharmony_ci/**
945da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_032
946da853ecaSopenharmony_ci * @tc.name      : Create -> AddTrack -> Start -> WriteSampleBuffer -> Stop -> Destroy
947da853ecaSopenharmony_ci * @tc.desc      : interface depend check
948da853ecaSopenharmony_ci */
949da853ecaSopenharmony_ciHWTEST_F(NativeAVMuxerInterfaceDependCheckTest, SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_032, TestSize.Level2)
950da853ecaSopenharmony_ci{
951da853ecaSopenharmony_ci    AVMuxerDemo* muxerDemo = new AVMuxerDemo();
952da853ecaSopenharmony_ci    OH_AVMuxer* handle = Create(muxerDemo);
953da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
954da853ecaSopenharmony_ci
955da853ecaSopenharmony_ci    OH_AVErrCode ret;
956da853ecaSopenharmony_ci    int32_t trackId = -1;
957da853ecaSopenharmony_ci
958da853ecaSopenharmony_ci    ret = AddTrack(muxerDemo, &trackId, handle);
959da853ecaSopenharmony_ci    ASSERT_EQ(0, trackId);
960da853ecaSopenharmony_ci
961da853ecaSopenharmony_ci    ret = Start(muxerDemo, handle);
962da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
963da853ecaSopenharmony_ci
964da853ecaSopenharmony_ci    ret = WriteSampleBuffer(muxerDemo, handle, trackId);
965da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
966da853ecaSopenharmony_ci
967da853ecaSopenharmony_ci    ret = Stop(muxerDemo, handle);
968da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
969da853ecaSopenharmony_ci
970da853ecaSopenharmony_ci    ret = Destroy(muxerDemo, handle);
971da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
972da853ecaSopenharmony_ci
973da853ecaSopenharmony_ci    delete muxerDemo;
974da853ecaSopenharmony_ci}
975da853ecaSopenharmony_ci
976da853ecaSopenharmony_ci
977da853ecaSopenharmony_ci/**
978da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_033
979da853ecaSopenharmony_ci * @tc.name      : Create -> SetRotation -> AddTrack -> Start -> WriteSampleBuffer -> Stop -> Destroy
980da853ecaSopenharmony_ci * @tc.desc      : interface depend check
981da853ecaSopenharmony_ci */
982da853ecaSopenharmony_ciHWTEST_F(NativeAVMuxerInterfaceDependCheckTest, SUB_MULTIMEDIA_MEDIA_MUXER_INTERFACE_DEPEND_CHECK_033, TestSize.Level2)
983da853ecaSopenharmony_ci{
984da853ecaSopenharmony_ci    AVMuxerDemo* muxerDemo = new AVMuxerDemo();
985da853ecaSopenharmony_ci    OH_AVMuxer* handle = Create(muxerDemo);
986da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
987da853ecaSopenharmony_ci
988da853ecaSopenharmony_ci    OH_AVErrCode ret;
989da853ecaSopenharmony_ci
990da853ecaSopenharmony_ci    ret = SetRotation(muxerDemo, handle);
991da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
992da853ecaSopenharmony_ci
993da853ecaSopenharmony_ci    int32_t trackId = -1;
994da853ecaSopenharmony_ci    ret = AddTrack(muxerDemo, &trackId, handle);
995da853ecaSopenharmony_ci    ASSERT_EQ(0, trackId);
996da853ecaSopenharmony_ci
997da853ecaSopenharmony_ci    ret = Start(muxerDemo, handle);
998da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
999da853ecaSopenharmony_ci
1000da853ecaSopenharmony_ci    ret = WriteSampleBuffer(muxerDemo, handle, trackId);
1001da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1002da853ecaSopenharmony_ci
1003da853ecaSopenharmony_ci    ret = Stop(muxerDemo, handle);
1004da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1005da853ecaSopenharmony_ci
1006da853ecaSopenharmony_ci    ret = Destroy(muxerDemo, handle);
1007da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1008da853ecaSopenharmony_ci
1009da853ecaSopenharmony_ci    delete muxerDemo;
1010da853ecaSopenharmony_ci}