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