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 "AudioEncoderDemoCommon.h"
19da853ecaSopenharmony_ci
20da853ecaSopenharmony_ciusing namespace std;
21da853ecaSopenharmony_ciusing namespace testing::ext;
22da853ecaSopenharmony_ciusing namespace OHOS;
23da853ecaSopenharmony_ciusing namespace OHOS::MediaAVCodec;
24da853ecaSopenharmony_ci
25da853ecaSopenharmony_cinamespace {
26da853ecaSopenharmony_ciclass NativeInterfaceDependCheckTest : public testing::Test {
27da853ecaSopenharmony_cipublic:
28da853ecaSopenharmony_ci    static void SetUpTestCase();
29da853ecaSopenharmony_ci    static void TearDownTestCase();
30da853ecaSopenharmony_ci    void SetUp() override;
31da853ecaSopenharmony_ci    void TearDown() override;
32da853ecaSopenharmony_ci};
33da853ecaSopenharmony_ci
34da853ecaSopenharmony_civoid NativeInterfaceDependCheckTest::SetUpTestCase() {}
35da853ecaSopenharmony_civoid NativeInterfaceDependCheckTest::TearDownTestCase() {}
36da853ecaSopenharmony_civoid NativeInterfaceDependCheckTest::SetUp() {}
37da853ecaSopenharmony_civoid NativeInterfaceDependCheckTest::TearDown() {}
38da853ecaSopenharmony_ci
39da853ecaSopenharmony_ciOH_AVCodec *Create(AudioEncoderDemo *encoderDemo)
40da853ecaSopenharmony_ci{
41da853ecaSopenharmony_ci    return encoderDemo->NativeCreateByName("OH.Media.Codec.Encoder.Audio.AAC");
42da853ecaSopenharmony_ci}
43da853ecaSopenharmony_ci
44da853ecaSopenharmony_ciOH_AVErrCode Destroy(AudioEncoderDemo *encoderDemo, OH_AVCodec *handle)
45da853ecaSopenharmony_ci{
46da853ecaSopenharmony_ci    return encoderDemo->NativeDestroy(handle);
47da853ecaSopenharmony_ci}
48da853ecaSopenharmony_ci
49da853ecaSopenharmony_ciOH_AVErrCode SetCallback(AudioEncoderDemo *encoderDemo, OH_AVCodec *handle)
50da853ecaSopenharmony_ci{
51da853ecaSopenharmony_ci    struct OH_AVCodecAsyncCallback cb = {&OnError, &OnOutputFormatChanged, &OnInputBufferAvailable,
52da853ecaSopenharmony_ci                                         &OnOutputBufferAvailable};
53da853ecaSopenharmony_ci    return encoderDemo->NativeSetCallback(handle, cb);
54da853ecaSopenharmony_ci}
55da853ecaSopenharmony_ci
56da853ecaSopenharmony_ciOH_AVErrCode Configure(AudioEncoderDemo *encoderDemo, OH_AVCodec *handle)
57da853ecaSopenharmony_ci{
58da853ecaSopenharmony_ci    constexpr uint32_t CHANNEL_COUNT = 2;
59da853ecaSopenharmony_ci    constexpr uint32_t SAMPLE_RATE = 44100;
60da853ecaSopenharmony_ci    constexpr uint32_t BITS_RATE = 169000;
61da853ecaSopenharmony_ci    OH_AVFormat *format = OH_AVFormat_Create();
62da853ecaSopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_AUD_CHANNEL_COUNT, CHANNEL_COUNT);
63da853ecaSopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_AUD_SAMPLE_RATE, SAMPLE_RATE);
64da853ecaSopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_BITS_PER_CODED_SAMPLE, OH_BitsPerSample::SAMPLE_F32LE);
65da853ecaSopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_AUDIO_SAMPLE_FORMAT, OH_BitsPerSample::SAMPLE_F32LE);
66da853ecaSopenharmony_ci    OH_AVFormat_SetLongValue(format, OH_MD_KEY_CHANNEL_LAYOUT, STEREO);
67da853ecaSopenharmony_ci    OH_AVFormat_SetIntValue(format, OH_MD_KEY_AAC_IS_ADTS, 1);
68da853ecaSopenharmony_ci    OH_AVFormat_SetLongValue(format, OH_MD_KEY_BITRATE, BITS_RATE);
69da853ecaSopenharmony_ci
70da853ecaSopenharmony_ci    OH_AVErrCode ret = encoderDemo->NativeConfigure(handle, format);
71da853ecaSopenharmony_ci
72da853ecaSopenharmony_ci    OH_AVFormat_Destroy(format);
73da853ecaSopenharmony_ci    return ret;
74da853ecaSopenharmony_ci}
75da853ecaSopenharmony_ci
76da853ecaSopenharmony_ciOH_AVErrCode Prepare(AudioEncoderDemo *encoderDemo, OH_AVCodec *handle)
77da853ecaSopenharmony_ci{
78da853ecaSopenharmony_ci    return encoderDemo->NativePrepare(handle);
79da853ecaSopenharmony_ci}
80da853ecaSopenharmony_ci
81da853ecaSopenharmony_ciOH_AVErrCode Start(AudioEncoderDemo *encoderDemo, OH_AVCodec *handle, uint32_t &index, uint8_t *data)
82da853ecaSopenharmony_ci{
83da853ecaSopenharmony_ci    OH_AVErrCode ret = encoderDemo->NativeStart(handle);
84da853ecaSopenharmony_ci    if (ret != AV_ERR_OK) {
85da853ecaSopenharmony_ci        return ret;
86da853ecaSopenharmony_ci    }
87da853ecaSopenharmony_ci
88da853ecaSopenharmony_ci    sleep(1);
89da853ecaSopenharmony_ci    index = encoderDemo->NativeGetInputIndex();
90da853ecaSopenharmony_ci    data = encoderDemo->NativeGetInputBuf();
91da853ecaSopenharmony_ci
92da853ecaSopenharmony_ci    return ret;
93da853ecaSopenharmony_ci}
94da853ecaSopenharmony_ci
95da853ecaSopenharmony_ciOH_AVErrCode Stop(AudioEncoderDemo *encoderDemo, OH_AVCodec *handle)
96da853ecaSopenharmony_ci{
97da853ecaSopenharmony_ci    return encoderDemo->NativeStop(handle);
98da853ecaSopenharmony_ci}
99da853ecaSopenharmony_ci
100da853ecaSopenharmony_ciOH_AVErrCode Flush(AudioEncoderDemo *encoderDemo, OH_AVCodec *handle)
101da853ecaSopenharmony_ci{
102da853ecaSopenharmony_ci    return encoderDemo->NativeFlush(handle);
103da853ecaSopenharmony_ci}
104da853ecaSopenharmony_ci
105da853ecaSopenharmony_ciOH_AVErrCode Reset(AudioEncoderDemo *encoderDemo, OH_AVCodec *handle)
106da853ecaSopenharmony_ci{
107da853ecaSopenharmony_ci    return encoderDemo->NativeReset(handle);
108da853ecaSopenharmony_ci}
109da853ecaSopenharmony_ci
110da853ecaSopenharmony_ciOH_AVErrCode PushInputData(AudioEncoderDemo *encoderDemo, OH_AVCodec *handle, uint32_t index)
111da853ecaSopenharmony_ci{
112da853ecaSopenharmony_ci    OH_AVCodecBufferAttr info;
113da853ecaSopenharmony_ci    constexpr uint32_t INFO_SIZE = 100;
114da853ecaSopenharmony_ci    info.size = INFO_SIZE;
115da853ecaSopenharmony_ci    info.offset = 0;
116da853ecaSopenharmony_ci    info.pts = 0;
117da853ecaSopenharmony_ci    info.flags = AVCODEC_BUFFER_FLAGS_NONE;
118da853ecaSopenharmony_ci
119da853ecaSopenharmony_ci    return encoderDemo->NativePushInputData(handle, index, info);
120da853ecaSopenharmony_ci}
121da853ecaSopenharmony_ci
122da853ecaSopenharmony_ciOH_AVErrCode PushInputDataEOS(AudioEncoderDemo *encoderDemo, OH_AVCodec *handle, uint32_t index)
123da853ecaSopenharmony_ci{
124da853ecaSopenharmony_ci    OH_AVCodecBufferAttr info;
125da853ecaSopenharmony_ci    info.size = 0;
126da853ecaSopenharmony_ci    info.offset = 0;
127da853ecaSopenharmony_ci    info.pts = 0;
128da853ecaSopenharmony_ci    info.flags = AVCODEC_BUFFER_FLAGS_EOS;
129da853ecaSopenharmony_ci
130da853ecaSopenharmony_ci    return encoderDemo->NativePushInputData(handle, index, info);
131da853ecaSopenharmony_ci}
132da853ecaSopenharmony_ci} // namespace
133da853ecaSopenharmony_ci
134da853ecaSopenharmony_ci/**
135da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_001
136da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback
137da853ecaSopenharmony_ci * @tc.desc      : interface depend check
138da853ecaSopenharmony_ci */
139da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_001, TestSize.Level2)
140da853ecaSopenharmony_ci{
141da853ecaSopenharmony_ci    OH_AVErrCode ret;
142da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
143da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
144da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
145da853ecaSopenharmony_ci
146da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
147da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
148da853ecaSopenharmony_ci
149da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
150da853ecaSopenharmony_ci    delete encoderDemo;
151da853ecaSopenharmony_ci}
152da853ecaSopenharmony_ci
153da853ecaSopenharmony_ci/**
154da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_002
155da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> SetCallback
156da853ecaSopenharmony_ci * @tc.desc      : interface depend check
157da853ecaSopenharmony_ci */
158da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_002, TestSize.Level2)
159da853ecaSopenharmony_ci{
160da853ecaSopenharmony_ci    OH_AVErrCode ret;
161da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
162da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
163da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
164da853ecaSopenharmony_ci
165da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
166da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
167da853ecaSopenharmony_ci
168da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
169da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
170da853ecaSopenharmony_ci
171da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
172da853ecaSopenharmony_ci    delete encoderDemo;
173da853ecaSopenharmony_ci}
174da853ecaSopenharmony_ci
175da853ecaSopenharmony_ci/**
176da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_003
177da853ecaSopenharmony_ci * @tc.name      : Create -> Configure -> SetCallback
178da853ecaSopenharmony_ci * @tc.desc      : interface depend check
179da853ecaSopenharmony_ci */
180da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_003, TestSize.Level2)
181da853ecaSopenharmony_ci{
182da853ecaSopenharmony_ci    OH_AVErrCode ret;
183da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
184da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
185da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
186da853ecaSopenharmony_ci
187da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
188da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
189da853ecaSopenharmony_ci
190da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
191da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
192da853ecaSopenharmony_ci
193da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
194da853ecaSopenharmony_ci    delete encoderDemo;
195da853ecaSopenharmony_ci}
196da853ecaSopenharmony_ci
197da853ecaSopenharmony_ci/**
198da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_004
199da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> SetCallback
200da853ecaSopenharmony_ci * @tc.desc      : interface depend check
201da853ecaSopenharmony_ci */
202da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_004, TestSize.Level2)
203da853ecaSopenharmony_ci{
204da853ecaSopenharmony_ci    OH_AVErrCode ret;
205da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
206da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
207da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
208da853ecaSopenharmony_ci
209da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
210da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
211da853ecaSopenharmony_ci
212da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
213da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
214da853ecaSopenharmony_ci
215da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
216da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
217da853ecaSopenharmony_ci
218da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
219da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
220da853ecaSopenharmony_ci
221da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
222da853ecaSopenharmony_ci    delete encoderDemo;
223da853ecaSopenharmony_ci}
224da853ecaSopenharmony_ci
225da853ecaSopenharmony_ci/**
226da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_005
227da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> SetCallback
228da853ecaSopenharmony_ci * @tc.desc      : interface depend check
229da853ecaSopenharmony_ci */
230da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_005, TestSize.Level2)
231da853ecaSopenharmony_ci{
232da853ecaSopenharmony_ci    OH_AVErrCode ret;
233da853ecaSopenharmony_ci    uint32_t trackId = -1;
234da853ecaSopenharmony_ci    uint8_t *data = nullptr;
235da853ecaSopenharmony_ci
236da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
237da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
238da853ecaSopenharmony_ci    cout << "handle is " << handle << endl;
239da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
240da853ecaSopenharmony_ci
241da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
242da853ecaSopenharmony_ci    cout << "SetCallback ret is " << ret << endl;
243da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
244da853ecaSopenharmony_ci
245da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
246da853ecaSopenharmony_ci    cout << "Configure ret is " << ret << endl;
247da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
248da853ecaSopenharmony_ci
249da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
250da853ecaSopenharmony_ci    cout << "Prepare ret is " << ret << endl;
251da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
252da853ecaSopenharmony_ci
253da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
254da853ecaSopenharmony_ci    cout << "Start ret is " << ret << endl;
255da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
256da853ecaSopenharmony_ci
257da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
258da853ecaSopenharmony_ci    cout << "SetCallback ret is " << ret << endl;
259da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
260da853ecaSopenharmony_ci
261da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
262da853ecaSopenharmony_ci    delete encoderDemo;
263da853ecaSopenharmony_ci}
264da853ecaSopenharmony_ci
265da853ecaSopenharmony_ci/**
266da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_006
267da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> PushInputData -> SetCallback
268da853ecaSopenharmony_ci * @tc.desc      : interface depend check
269da853ecaSopenharmony_ci */
270da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_006, TestSize.Level2)
271da853ecaSopenharmony_ci{
272da853ecaSopenharmony_ci    OH_AVErrCode ret;
273da853ecaSopenharmony_ci    uint32_t trackId = -1;
274da853ecaSopenharmony_ci    uint8_t *data = nullptr;
275da853ecaSopenharmony_ci
276da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
277da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
278da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
279da853ecaSopenharmony_ci
280da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
281da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
282da853ecaSopenharmony_ci
283da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
284da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
285da853ecaSopenharmony_ci
286da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
287da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
288da853ecaSopenharmony_ci
289da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
290da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
291da853ecaSopenharmony_ci
292da853ecaSopenharmony_ci    ret = PushInputData(encoderDemo, handle, trackId);
293da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
294da853ecaSopenharmony_ci
295da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
296da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
297da853ecaSopenharmony_ci
298da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
299da853ecaSopenharmony_ci    delete encoderDemo;
300da853ecaSopenharmony_ci}
301da853ecaSopenharmony_ci
302da853ecaSopenharmony_ci/**
303da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_007
304da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> PushInputData[EOS] -> SetCallback
305da853ecaSopenharmony_ci * @tc.desc      : interface depend check
306da853ecaSopenharmony_ci */
307da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_007, TestSize.Level2)
308da853ecaSopenharmony_ci{
309da853ecaSopenharmony_ci    OH_AVErrCode ret;
310da853ecaSopenharmony_ci    uint32_t trackId = -1;
311da853ecaSopenharmony_ci    uint8_t *data = nullptr;
312da853ecaSopenharmony_ci
313da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
314da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
315da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
316da853ecaSopenharmony_ci
317da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
318da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
319da853ecaSopenharmony_ci
320da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
321da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
322da853ecaSopenharmony_ci
323da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
324da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
325da853ecaSopenharmony_ci
326da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
327da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
328da853ecaSopenharmony_ci
329da853ecaSopenharmony_ci    ret = PushInputDataEOS(encoderDemo, handle, trackId);
330da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
331da853ecaSopenharmony_ci
332da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
333da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
334da853ecaSopenharmony_ci
335da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
336da853ecaSopenharmony_ci    delete encoderDemo;
337da853ecaSopenharmony_ci}
338da853ecaSopenharmony_ci
339da853ecaSopenharmony_ci/**
340da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_008
341da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Flush -> SetCallback
342da853ecaSopenharmony_ci * @tc.desc      : interface depend check
343da853ecaSopenharmony_ci */
344da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_008, TestSize.Level2)
345da853ecaSopenharmony_ci{
346da853ecaSopenharmony_ci    OH_AVErrCode ret;
347da853ecaSopenharmony_ci    uint32_t trackId = -1;
348da853ecaSopenharmony_ci    uint8_t *data = nullptr;
349da853ecaSopenharmony_ci
350da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
351da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
352da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
353da853ecaSopenharmony_ci
354da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
355da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
356da853ecaSopenharmony_ci
357da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
358da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
359da853ecaSopenharmony_ci
360da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
361da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
362da853ecaSopenharmony_ci
363da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
364da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
365da853ecaSopenharmony_ci
366da853ecaSopenharmony_ci    ret = Flush(encoderDemo, handle);
367da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
368da853ecaSopenharmony_ci
369da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
370da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
371da853ecaSopenharmony_ci
372da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
373da853ecaSopenharmony_ci    delete encoderDemo;
374da853ecaSopenharmony_ci}
375da853ecaSopenharmony_ci
376da853ecaSopenharmony_ci/**
377da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_009
378da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Stop -> SetCallback
379da853ecaSopenharmony_ci * @tc.desc      : interface depend check
380da853ecaSopenharmony_ci */
381da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_009, TestSize.Level2)
382da853ecaSopenharmony_ci{
383da853ecaSopenharmony_ci    OH_AVErrCode ret;
384da853ecaSopenharmony_ci    uint32_t trackId = -1;
385da853ecaSopenharmony_ci    uint8_t *data = nullptr;
386da853ecaSopenharmony_ci
387da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
388da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
389da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
390da853ecaSopenharmony_ci
391da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
392da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
393da853ecaSopenharmony_ci
394da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
395da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
396da853ecaSopenharmony_ci
397da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
398da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
399da853ecaSopenharmony_ci
400da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
401da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
402da853ecaSopenharmony_ci
403da853ecaSopenharmony_ci    ret = Stop(encoderDemo, handle);
404da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
405da853ecaSopenharmony_ci
406da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
407da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
408da853ecaSopenharmony_ci
409da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
410da853ecaSopenharmony_ci    delete encoderDemo;
411da853ecaSopenharmony_ci}
412da853ecaSopenharmony_ci
413da853ecaSopenharmony_ci/**
414da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_010
415da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Stop -> Reset -> SetCallback
416da853ecaSopenharmony_ci * @tc.desc      : interface depend check
417da853ecaSopenharmony_ci */
418da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_010, TestSize.Level2)
419da853ecaSopenharmony_ci{
420da853ecaSopenharmony_ci    OH_AVErrCode ret;
421da853ecaSopenharmony_ci    uint32_t trackId = -1;
422da853ecaSopenharmony_ci    uint8_t *data = nullptr;
423da853ecaSopenharmony_ci
424da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
425da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
426da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
427da853ecaSopenharmony_ci    cout << "handle is " << handle << endl;
428da853ecaSopenharmony_ci
429da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
430da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
431da853ecaSopenharmony_ci    cout << "SetCallback ret is " << ret << endl;
432da853ecaSopenharmony_ci
433da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
434da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
435da853ecaSopenharmony_ci    cout << "Configure ret is " << ret << endl;
436da853ecaSopenharmony_ci
437da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
438da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
439da853ecaSopenharmony_ci    cout << "Prepare ret is " << ret << endl;
440da853ecaSopenharmony_ci
441da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
442da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
443da853ecaSopenharmony_ci    cout << "Start ret is " << ret << endl;
444da853ecaSopenharmony_ci
445da853ecaSopenharmony_ci    ret = Stop(encoderDemo, handle);
446da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
447da853ecaSopenharmony_ci    cout << "Stop ret is " << ret << endl;
448da853ecaSopenharmony_ci
449da853ecaSopenharmony_ci    ret = Reset(encoderDemo, handle);
450da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
451da853ecaSopenharmony_ci    cout << "Reset ret is " << ret << endl;
452da853ecaSopenharmony_ci
453da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
454da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
455da853ecaSopenharmony_ci    cout << "SetCallback ret is " << ret << endl;
456da853ecaSopenharmony_ci
457da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
458da853ecaSopenharmony_ci    delete encoderDemo;
459da853ecaSopenharmony_ci}
460da853ecaSopenharmony_ci
461da853ecaSopenharmony_ci/**
462da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_011
463da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure
464da853ecaSopenharmony_ci * @tc.desc      : interface depend check
465da853ecaSopenharmony_ci */
466da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_011, TestSize.Level2)
467da853ecaSopenharmony_ci{
468da853ecaSopenharmony_ci    OH_AVErrCode ret;
469da853ecaSopenharmony_ci
470da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
471da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
472da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
473da853ecaSopenharmony_ci
474da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
475da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
476da853ecaSopenharmony_ci
477da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
478da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
479da853ecaSopenharmony_ci
480da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
481da853ecaSopenharmony_ci    delete encoderDemo;
482da853ecaSopenharmony_ci}
483da853ecaSopenharmony_ci
484da853ecaSopenharmony_ci/**
485da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_012
486da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Configure
487da853ecaSopenharmony_ci * @tc.desc      : interface depend check
488da853ecaSopenharmony_ci */
489da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_012, TestSize.Level2)
490da853ecaSopenharmony_ci{
491da853ecaSopenharmony_ci    OH_AVErrCode ret;
492da853ecaSopenharmony_ci
493da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
494da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
495da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
496da853ecaSopenharmony_ci
497da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
498da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
499da853ecaSopenharmony_ci
500da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
501da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
502da853ecaSopenharmony_ci
503da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
504da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_INVALID_STATE, ret);
505da853ecaSopenharmony_ci
506da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
507da853ecaSopenharmony_ci    delete encoderDemo;
508da853ecaSopenharmony_ci}
509da853ecaSopenharmony_ci
510da853ecaSopenharmony_ci/**
511da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_013
512da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Configure
513da853ecaSopenharmony_ci * @tc.desc      : interface depend check
514da853ecaSopenharmony_ci */
515da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_013, TestSize.Level2)
516da853ecaSopenharmony_ci{
517da853ecaSopenharmony_ci    OH_AVErrCode ret;
518da853ecaSopenharmony_ci
519da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
520da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
521da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
522da853ecaSopenharmony_ci
523da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
524da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
525da853ecaSopenharmony_ci
526da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
527da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
528da853ecaSopenharmony_ci
529da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
530da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
531da853ecaSopenharmony_ci
532da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
533da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_INVALID_STATE, ret);
534da853ecaSopenharmony_ci
535da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
536da853ecaSopenharmony_ci    delete encoderDemo;
537da853ecaSopenharmony_ci}
538da853ecaSopenharmony_ci
539da853ecaSopenharmony_ci/**
540da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_014
541da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Configure
542da853ecaSopenharmony_ci * @tc.desc      : interface depend check
543da853ecaSopenharmony_ci */
544da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_014, TestSize.Level2)
545da853ecaSopenharmony_ci{
546da853ecaSopenharmony_ci    OH_AVErrCode ret;
547da853ecaSopenharmony_ci    uint32_t trackId = -1;
548da853ecaSopenharmony_ci    uint8_t *data = nullptr;
549da853ecaSopenharmony_ci
550da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
551da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
552da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
553da853ecaSopenharmony_ci
554da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
555da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
556da853ecaSopenharmony_ci
557da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
558da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
559da853ecaSopenharmony_ci
560da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
561da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
562da853ecaSopenharmony_ci
563da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
564da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
565da853ecaSopenharmony_ci
566da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
567da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_INVALID_STATE, ret);
568da853ecaSopenharmony_ci
569da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
570da853ecaSopenharmony_ci    delete encoderDemo;
571da853ecaSopenharmony_ci}
572da853ecaSopenharmony_ci
573da853ecaSopenharmony_ci/**
574da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_015
575da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> PushInputData -> Configure
576da853ecaSopenharmony_ci * @tc.desc      : interface depend check
577da853ecaSopenharmony_ci */
578da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_015, TestSize.Level2)
579da853ecaSopenharmony_ci{
580da853ecaSopenharmony_ci    OH_AVErrCode ret;
581da853ecaSopenharmony_ci    uint32_t trackId = -1;
582da853ecaSopenharmony_ci    uint8_t *data = nullptr;
583da853ecaSopenharmony_ci
584da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
585da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
586da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
587da853ecaSopenharmony_ci
588da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
589da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
590da853ecaSopenharmony_ci
591da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
592da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
593da853ecaSopenharmony_ci
594da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
595da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
596da853ecaSopenharmony_ci
597da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
598da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
599da853ecaSopenharmony_ci
600da853ecaSopenharmony_ci    ret = PushInputData(encoderDemo, handle, trackId);
601da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
602da853ecaSopenharmony_ci
603da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
604da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_INVALID_STATE, ret);
605da853ecaSopenharmony_ci
606da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
607da853ecaSopenharmony_ci    delete encoderDemo;
608da853ecaSopenharmony_ci}
609da853ecaSopenharmony_ci
610da853ecaSopenharmony_ci/**
611da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_016
612da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> PushInputData[EOS] -> Configure
613da853ecaSopenharmony_ci * @tc.desc      : interface depend check
614da853ecaSopenharmony_ci */
615da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_016, TestSize.Level2)
616da853ecaSopenharmony_ci{
617da853ecaSopenharmony_ci    OH_AVErrCode ret;
618da853ecaSopenharmony_ci    uint32_t trackId = -1;
619da853ecaSopenharmony_ci    uint8_t *data = nullptr;
620da853ecaSopenharmony_ci
621da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
622da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
623da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
624da853ecaSopenharmony_ci
625da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
626da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
627da853ecaSopenharmony_ci
628da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
629da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
630da853ecaSopenharmony_ci
631da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
632da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
633da853ecaSopenharmony_ci
634da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
635da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
636da853ecaSopenharmony_ci
637da853ecaSopenharmony_ci    ret = PushInputDataEOS(encoderDemo, handle, trackId);
638da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
639da853ecaSopenharmony_ci
640da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
641da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_INVALID_STATE, ret);
642da853ecaSopenharmony_ci
643da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
644da853ecaSopenharmony_ci    delete encoderDemo;
645da853ecaSopenharmony_ci}
646da853ecaSopenharmony_ci
647da853ecaSopenharmony_ci/**
648da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_017
649da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Flush -> Configure
650da853ecaSopenharmony_ci * @tc.desc      : interface depend check
651da853ecaSopenharmony_ci */
652da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_017, TestSize.Level2)
653da853ecaSopenharmony_ci{
654da853ecaSopenharmony_ci    OH_AVErrCode ret;
655da853ecaSopenharmony_ci    uint32_t trackId = -1;
656da853ecaSopenharmony_ci    uint8_t *data = nullptr;
657da853ecaSopenharmony_ci
658da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
659da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
660da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
661da853ecaSopenharmony_ci
662da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
663da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
664da853ecaSopenharmony_ci
665da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
666da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
667da853ecaSopenharmony_ci
668da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
669da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
670da853ecaSopenharmony_ci
671da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
672da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
673da853ecaSopenharmony_ci
674da853ecaSopenharmony_ci    ret = Flush(encoderDemo, handle);
675da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
676da853ecaSopenharmony_ci
677da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
678da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_INVALID_STATE, ret);
679da853ecaSopenharmony_ci
680da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
681da853ecaSopenharmony_ci    delete encoderDemo;
682da853ecaSopenharmony_ci}
683da853ecaSopenharmony_ci
684da853ecaSopenharmony_ci/**
685da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_018
686da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Stop -> Configure
687da853ecaSopenharmony_ci * @tc.desc      : interface depend check
688da853ecaSopenharmony_ci */
689da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_018, TestSize.Level2)
690da853ecaSopenharmony_ci{
691da853ecaSopenharmony_ci    OH_AVErrCode ret;
692da853ecaSopenharmony_ci    uint32_t trackId = -1;
693da853ecaSopenharmony_ci    uint8_t *data = nullptr;
694da853ecaSopenharmony_ci
695da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
696da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
697da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
698da853ecaSopenharmony_ci
699da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
700da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
701da853ecaSopenharmony_ci
702da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
703da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
704da853ecaSopenharmony_ci
705da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
706da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
707da853ecaSopenharmony_ci
708da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
709da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
710da853ecaSopenharmony_ci
711da853ecaSopenharmony_ci    ret = Stop(encoderDemo, handle);
712da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
713da853ecaSopenharmony_ci
714da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
715da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_INVALID_STATE, ret);
716da853ecaSopenharmony_ci
717da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
718da853ecaSopenharmony_ci    delete encoderDemo;
719da853ecaSopenharmony_ci}
720da853ecaSopenharmony_ci
721da853ecaSopenharmony_ci/**
722da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_019
723da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Stop -> Reset -> Configure
724da853ecaSopenharmony_ci * @tc.desc      : interface depend check
725da853ecaSopenharmony_ci */
726da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_019, TestSize.Level2)
727da853ecaSopenharmony_ci{
728da853ecaSopenharmony_ci    OH_AVErrCode ret;
729da853ecaSopenharmony_ci    uint32_t trackId = -1;
730da853ecaSopenharmony_ci    uint8_t *data = nullptr;
731da853ecaSopenharmony_ci
732da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
733da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
734da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
735da853ecaSopenharmony_ci
736da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
737da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
738da853ecaSopenharmony_ci
739da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
740da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
741da853ecaSopenharmony_ci
742da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
743da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
744da853ecaSopenharmony_ci
745da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
746da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
747da853ecaSopenharmony_ci
748da853ecaSopenharmony_ci    ret = Stop(encoderDemo, handle);
749da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
750da853ecaSopenharmony_ci
751da853ecaSopenharmony_ci    ret = Reset(encoderDemo, handle);
752da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
753da853ecaSopenharmony_ci
754da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
755da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
756da853ecaSopenharmony_ci
757da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
758da853ecaSopenharmony_ci    delete encoderDemo;
759da853ecaSopenharmony_ci}
760da853ecaSopenharmony_ci
761da853ecaSopenharmony_ci/**
762da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_020
763da853ecaSopenharmony_ci * @tc.name      : Create -> Start
764da853ecaSopenharmony_ci * @tc.desc      : interface depend check
765da853ecaSopenharmony_ci */
766da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_020, TestSize.Level2)
767da853ecaSopenharmony_ci{
768da853ecaSopenharmony_ci    OH_AVErrCode ret;
769da853ecaSopenharmony_ci    uint32_t trackId = -1;
770da853ecaSopenharmony_ci    uint8_t *data = nullptr;
771da853ecaSopenharmony_ci
772da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
773da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
774da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
775da853ecaSopenharmony_ci
776da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
777da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_INVALID_STATE, ret);
778da853ecaSopenharmony_ci
779da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
780da853ecaSopenharmony_ci    delete encoderDemo;
781da853ecaSopenharmony_ci}
782da853ecaSopenharmony_ci
783da853ecaSopenharmony_ci/**
784da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_021
785da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start
786da853ecaSopenharmony_ci * @tc.desc      : interface depend check
787da853ecaSopenharmony_ci */
788da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_021, TestSize.Level2)
789da853ecaSopenharmony_ci{
790da853ecaSopenharmony_ci    OH_AVErrCode ret;
791da853ecaSopenharmony_ci    uint32_t trackId = -1;
792da853ecaSopenharmony_ci    uint8_t *data = nullptr;
793da853ecaSopenharmony_ci
794da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
795da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
796da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
797da853ecaSopenharmony_ci
798da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
799da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
800da853ecaSopenharmony_ci
801da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
802da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
803da853ecaSopenharmony_ci
804da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
805da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
806da853ecaSopenharmony_ci
807da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
808da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
809da853ecaSopenharmony_ci
810da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
811da853ecaSopenharmony_ci    delete encoderDemo;
812da853ecaSopenharmony_ci}
813da853ecaSopenharmony_ci
814da853ecaSopenharmony_ci/**
815da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_022
816da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Start
817da853ecaSopenharmony_ci * @tc.desc      : interface depend check
818da853ecaSopenharmony_ci */
819da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_022, TestSize.Level2)
820da853ecaSopenharmony_ci{
821da853ecaSopenharmony_ci    OH_AVErrCode ret;
822da853ecaSopenharmony_ci    uint32_t trackId = -1;
823da853ecaSopenharmony_ci    uint8_t *data = nullptr;
824da853ecaSopenharmony_ci
825da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
826da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
827da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
828da853ecaSopenharmony_ci
829da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
830da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
831da853ecaSopenharmony_ci
832da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
833da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
834da853ecaSopenharmony_ci
835da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
836da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
837da853ecaSopenharmony_ci
838da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
839da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
840da853ecaSopenharmony_ci
841da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
842da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_INVALID_STATE, ret);
843da853ecaSopenharmony_ci
844da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
845da853ecaSopenharmony_ci    delete encoderDemo;
846da853ecaSopenharmony_ci}
847da853ecaSopenharmony_ci
848da853ecaSopenharmony_ci/**
849da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_023
850da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> PushInputData -> Start
851da853ecaSopenharmony_ci * @tc.desc      : interface depend check
852da853ecaSopenharmony_ci */
853da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_023, TestSize.Level2)
854da853ecaSopenharmony_ci{
855da853ecaSopenharmony_ci    OH_AVErrCode ret;
856da853ecaSopenharmony_ci    uint32_t trackId = -1;
857da853ecaSopenharmony_ci    uint8_t *data = nullptr;
858da853ecaSopenharmony_ci
859da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
860da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
861da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
862da853ecaSopenharmony_ci
863da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
864da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
865da853ecaSopenharmony_ci
866da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
867da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
868da853ecaSopenharmony_ci
869da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
870da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
871da853ecaSopenharmony_ci
872da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
873da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
874da853ecaSopenharmony_ci
875da853ecaSopenharmony_ci    ret = PushInputData(encoderDemo, handle, trackId);
876da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
877da853ecaSopenharmony_ci
878da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
879da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_INVALID_STATE, ret);
880da853ecaSopenharmony_ci
881da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
882da853ecaSopenharmony_ci    delete encoderDemo;
883da853ecaSopenharmony_ci}
884da853ecaSopenharmony_ci
885da853ecaSopenharmony_ci/**
886da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_024
887da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> PushInputData[EOS] -> Start
888da853ecaSopenharmony_ci * @tc.desc      : interface depend check
889da853ecaSopenharmony_ci */
890da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_024, TestSize.Level2)
891da853ecaSopenharmony_ci{
892da853ecaSopenharmony_ci    OH_AVErrCode ret;
893da853ecaSopenharmony_ci    uint32_t trackId = -1;
894da853ecaSopenharmony_ci    uint8_t *data = nullptr;
895da853ecaSopenharmony_ci
896da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
897da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
898da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
899da853ecaSopenharmony_ci
900da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
901da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
902da853ecaSopenharmony_ci
903da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
904da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
905da853ecaSopenharmony_ci
906da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
907da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
908da853ecaSopenharmony_ci
909da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
910da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
911da853ecaSopenharmony_ci
912da853ecaSopenharmony_ci    ret = PushInputDataEOS(encoderDemo, handle, trackId);
913da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
914da853ecaSopenharmony_ci
915da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
916da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_INVALID_STATE, ret);
917da853ecaSopenharmony_ci
918da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
919da853ecaSopenharmony_ci    delete encoderDemo;
920da853ecaSopenharmony_ci}
921da853ecaSopenharmony_ci
922da853ecaSopenharmony_ci/**
923da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_025
924da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Flush -> Start
925da853ecaSopenharmony_ci * @tc.desc      : interface depend check
926da853ecaSopenharmony_ci */
927da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_025, TestSize.Level2)
928da853ecaSopenharmony_ci{
929da853ecaSopenharmony_ci    OH_AVErrCode ret;
930da853ecaSopenharmony_ci    uint32_t trackId = -1;
931da853ecaSopenharmony_ci    uint8_t *data = nullptr;
932da853ecaSopenharmony_ci
933da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
934da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
935da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
936da853ecaSopenharmony_ci
937da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
938da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
939da853ecaSopenharmony_ci
940da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
941da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
942da853ecaSopenharmony_ci
943da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
944da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
945da853ecaSopenharmony_ci
946da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
947da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
948da853ecaSopenharmony_ci
949da853ecaSopenharmony_ci    ret = Flush(encoderDemo, handle);
950da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
951da853ecaSopenharmony_ci
952da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
953da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
954da853ecaSopenharmony_ci
955da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
956da853ecaSopenharmony_ci    delete encoderDemo;
957da853ecaSopenharmony_ci}
958da853ecaSopenharmony_ci
959da853ecaSopenharmony_ci/**
960da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_026
961da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Stop -> Start
962da853ecaSopenharmony_ci * @tc.desc      : interface depend check
963da853ecaSopenharmony_ci */
964da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_026, TestSize.Level2)
965da853ecaSopenharmony_ci{
966da853ecaSopenharmony_ci    OH_AVErrCode ret;
967da853ecaSopenharmony_ci    uint32_t trackId = -1;
968da853ecaSopenharmony_ci    uint8_t *data = nullptr;
969da853ecaSopenharmony_ci
970da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
971da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
972da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
973da853ecaSopenharmony_ci
974da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
975da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
976da853ecaSopenharmony_ci
977da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
978da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
979da853ecaSopenharmony_ci
980da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
981da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
982da853ecaSopenharmony_ci
983da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
984da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
985da853ecaSopenharmony_ci
986da853ecaSopenharmony_ci    ret = Stop(encoderDemo, handle);
987da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
988da853ecaSopenharmony_ci
989da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
990da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
991da853ecaSopenharmony_ci
992da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
993da853ecaSopenharmony_ci    delete encoderDemo;
994da853ecaSopenharmony_ci}
995da853ecaSopenharmony_ci
996da853ecaSopenharmony_ci/**
997da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_027
998da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Stop -> Reset -> Start
999da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1000da853ecaSopenharmony_ci */
1001da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_027, TestSize.Level2)
1002da853ecaSopenharmony_ci{
1003da853ecaSopenharmony_ci    OH_AVErrCode ret;
1004da853ecaSopenharmony_ci    uint32_t trackId = -1;
1005da853ecaSopenharmony_ci    uint8_t *data = nullptr;
1006da853ecaSopenharmony_ci
1007da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1008da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
1009da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
1010da853ecaSopenharmony_ci
1011da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
1012da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1013da853ecaSopenharmony_ci
1014da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
1015da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1016da853ecaSopenharmony_ci
1017da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
1018da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1019da853ecaSopenharmony_ci
1020da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
1021da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1022da853ecaSopenharmony_ci
1023da853ecaSopenharmony_ci    ret = Stop(encoderDemo, handle);
1024da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1025da853ecaSopenharmony_ci
1026da853ecaSopenharmony_ci    ret = Reset(encoderDemo, handle);
1027da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1028da853ecaSopenharmony_ci
1029da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
1030da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_INVALID_STATE, ret);
1031da853ecaSopenharmony_ci
1032da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
1033da853ecaSopenharmony_ci    delete encoderDemo;
1034da853ecaSopenharmony_ci}
1035da853ecaSopenharmony_ci
1036da853ecaSopenharmony_ci/**
1037da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_028
1038da853ecaSopenharmony_ci * @tc.name      : Create -> PushInputData
1039da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1040da853ecaSopenharmony_ci */
1041da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_028, TestSize.Level2)
1042da853ecaSopenharmony_ci{
1043da853ecaSopenharmony_ci    OH_AVErrCode ret;
1044da853ecaSopenharmony_ci    uint32_t trackId = -1;
1045da853ecaSopenharmony_ci
1046da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1047da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
1048da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
1049da853ecaSopenharmony_ci
1050da853ecaSopenharmony_ci    ret = PushInputData(encoderDemo, handle, trackId);
1051da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_INVALID_STATE, ret);
1052da853ecaSopenharmony_ci
1053da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
1054da853ecaSopenharmony_ci    delete encoderDemo;
1055da853ecaSopenharmony_ci}
1056da853ecaSopenharmony_ci
1057da853ecaSopenharmony_ci/**
1058da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_029
1059da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> PushInputData
1060da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1061da853ecaSopenharmony_ci */
1062da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_029, TestSize.Level2)
1063da853ecaSopenharmony_ci{
1064da853ecaSopenharmony_ci    OH_AVErrCode ret;
1065da853ecaSopenharmony_ci    uint32_t trackId = -1;
1066da853ecaSopenharmony_ci
1067da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1068da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
1069da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
1070da853ecaSopenharmony_ci
1071da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
1072da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1073da853ecaSopenharmony_ci
1074da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
1075da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1076da853ecaSopenharmony_ci
1077da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
1078da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1079da853ecaSopenharmony_ci
1080da853ecaSopenharmony_ci    ret = PushInputData(encoderDemo, handle, trackId);
1081da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_INVALID_STATE, ret);
1082da853ecaSopenharmony_ci
1083da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
1084da853ecaSopenharmony_ci    delete encoderDemo;
1085da853ecaSopenharmony_ci}
1086da853ecaSopenharmony_ci
1087da853ecaSopenharmony_ci/**
1088da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_030
1089da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> PushInputData
1090da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1091da853ecaSopenharmony_ci */
1092da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_030, TestSize.Level2)
1093da853ecaSopenharmony_ci{
1094da853ecaSopenharmony_ci    OH_AVErrCode ret;
1095da853ecaSopenharmony_ci    uint32_t trackId = -1;
1096da853ecaSopenharmony_ci    uint8_t *data = nullptr;
1097da853ecaSopenharmony_ci
1098da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1099da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
1100da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
1101da853ecaSopenharmony_ci
1102da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
1103da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1104da853ecaSopenharmony_ci
1105da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
1106da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1107da853ecaSopenharmony_ci
1108da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
1109da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1110da853ecaSopenharmony_ci
1111da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
1112da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1113da853ecaSopenharmony_ci
1114da853ecaSopenharmony_ci    cout << "index is " << trackId << endl;
1115da853ecaSopenharmony_ci    printf("data is %p\n", data);
1116da853ecaSopenharmony_ci    ret = PushInputData(encoderDemo, handle, trackId);
1117da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1118da853ecaSopenharmony_ci
1119da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
1120da853ecaSopenharmony_ci    delete encoderDemo;
1121da853ecaSopenharmony_ci}
1122da853ecaSopenharmony_ci
1123da853ecaSopenharmony_ci/**
1124da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_031
1125da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> PushInputData -> PushInputData
1126da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1127da853ecaSopenharmony_ci */
1128da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_031, TestSize.Level2)
1129da853ecaSopenharmony_ci{
1130da853ecaSopenharmony_ci    OH_AVErrCode ret;
1131da853ecaSopenharmony_ci    uint32_t trackId = -1;
1132da853ecaSopenharmony_ci    uint8_t *data = nullptr;
1133da853ecaSopenharmony_ci
1134da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1135da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
1136da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
1137da853ecaSopenharmony_ci
1138da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
1139da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1140da853ecaSopenharmony_ci
1141da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
1142da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1143da853ecaSopenharmony_ci
1144da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
1145da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1146da853ecaSopenharmony_ci
1147da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
1148da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1149da853ecaSopenharmony_ci
1150da853ecaSopenharmony_ci    ret = PushInputData(encoderDemo, handle, trackId);
1151da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1152da853ecaSopenharmony_ci
1153da853ecaSopenharmony_ci    ret = PushInputData(encoderDemo, handle, trackId);
1154da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_UNKNOWN, ret);
1155da853ecaSopenharmony_ci
1156da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
1157da853ecaSopenharmony_ci    delete encoderDemo;
1158da853ecaSopenharmony_ci}
1159da853ecaSopenharmony_ci
1160da853ecaSopenharmony_ci/**
1161da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_032
1162da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> PushInputData[EOS] -> PushInputData
1163da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1164da853ecaSopenharmony_ci */
1165da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_032, TestSize.Level2)
1166da853ecaSopenharmony_ci{
1167da853ecaSopenharmony_ci    OH_AVErrCode ret;
1168da853ecaSopenharmony_ci    uint32_t trackId = -1;
1169da853ecaSopenharmony_ci    uint8_t *data = nullptr;
1170da853ecaSopenharmony_ci
1171da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1172da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
1173da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
1174da853ecaSopenharmony_ci
1175da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
1176da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1177da853ecaSopenharmony_ci
1178da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
1179da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1180da853ecaSopenharmony_ci
1181da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
1182da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1183da853ecaSopenharmony_ci
1184da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
1185da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1186da853ecaSopenharmony_ci
1187da853ecaSopenharmony_ci    ret = PushInputDataEOS(encoderDemo, handle, trackId);
1188da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1189da853ecaSopenharmony_ci
1190da853ecaSopenharmony_ci    ret = PushInputData(encoderDemo, handle, trackId);
1191da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_INVALID_STATE, ret);
1192da853ecaSopenharmony_ci
1193da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
1194da853ecaSopenharmony_ci    delete encoderDemo;
1195da853ecaSopenharmony_ci}
1196da853ecaSopenharmony_ci
1197da853ecaSopenharmony_ci/**
1198da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_033
1199da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Flush -> PushInputData
1200da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1201da853ecaSopenharmony_ci */
1202da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_033, TestSize.Level2)
1203da853ecaSopenharmony_ci{
1204da853ecaSopenharmony_ci    OH_AVErrCode ret;
1205da853ecaSopenharmony_ci    uint32_t trackId = -1;
1206da853ecaSopenharmony_ci    uint8_t *data = nullptr;
1207da853ecaSopenharmony_ci
1208da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1209da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
1210da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
1211da853ecaSopenharmony_ci
1212da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
1213da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1214da853ecaSopenharmony_ci
1215da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
1216da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1217da853ecaSopenharmony_ci
1218da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
1219da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1220da853ecaSopenharmony_ci
1221da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
1222da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1223da853ecaSopenharmony_ci
1224da853ecaSopenharmony_ci    ret = Flush(encoderDemo, handle);
1225da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1226da853ecaSopenharmony_ci
1227da853ecaSopenharmony_ci    ret = PushInputData(encoderDemo, handle, trackId);
1228da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_INVALID_STATE, ret);
1229da853ecaSopenharmony_ci
1230da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
1231da853ecaSopenharmony_ci    delete encoderDemo;
1232da853ecaSopenharmony_ci}
1233da853ecaSopenharmony_ci
1234da853ecaSopenharmony_ci/**
1235da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_034
1236da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Flush -> Start -> PushInputData
1237da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1238da853ecaSopenharmony_ci */
1239da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_034, TestSize.Level2)
1240da853ecaSopenharmony_ci{
1241da853ecaSopenharmony_ci    OH_AVErrCode ret;
1242da853ecaSopenharmony_ci    uint32_t trackId = -1;
1243da853ecaSopenharmony_ci    uint8_t *data = nullptr;
1244da853ecaSopenharmony_ci
1245da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1246da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
1247da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
1248da853ecaSopenharmony_ci
1249da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
1250da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1251da853ecaSopenharmony_ci
1252da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
1253da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1254da853ecaSopenharmony_ci
1255da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
1256da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1257da853ecaSopenharmony_ci
1258da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
1259da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1260da853ecaSopenharmony_ci
1261da853ecaSopenharmony_ci    ret = Flush(encoderDemo, handle);
1262da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1263da853ecaSopenharmony_ci
1264da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
1265da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1266da853ecaSopenharmony_ci
1267da853ecaSopenharmony_ci    ret = PushInputData(encoderDemo, handle, trackId);
1268da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1269da853ecaSopenharmony_ci
1270da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
1271da853ecaSopenharmony_ci    delete encoderDemo;
1272da853ecaSopenharmony_ci}
1273da853ecaSopenharmony_ci
1274da853ecaSopenharmony_ci/**
1275da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_035
1276da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Stop -> PushInputData
1277da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1278da853ecaSopenharmony_ci */
1279da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_035, TestSize.Level2)
1280da853ecaSopenharmony_ci{
1281da853ecaSopenharmony_ci    OH_AVErrCode ret;
1282da853ecaSopenharmony_ci    uint32_t trackId = -1;
1283da853ecaSopenharmony_ci    uint8_t *data = nullptr;
1284da853ecaSopenharmony_ci
1285da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1286da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
1287da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
1288da853ecaSopenharmony_ci
1289da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
1290da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1291da853ecaSopenharmony_ci
1292da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
1293da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1294da853ecaSopenharmony_ci
1295da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
1296da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1297da853ecaSopenharmony_ci
1298da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
1299da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1300da853ecaSopenharmony_ci
1301da853ecaSopenharmony_ci    ret = Stop(encoderDemo, handle);
1302da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1303da853ecaSopenharmony_ci
1304da853ecaSopenharmony_ci    ret = PushInputData(encoderDemo, handle, trackId);
1305da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_INVALID_STATE, ret);
1306da853ecaSopenharmony_ci
1307da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
1308da853ecaSopenharmony_ci    delete encoderDemo;
1309da853ecaSopenharmony_ci}
1310da853ecaSopenharmony_ci
1311da853ecaSopenharmony_ci/**
1312da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_036
1313da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Stop -> Reset -> PushInputData
1314da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1315da853ecaSopenharmony_ci */
1316da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_036, TestSize.Level2)
1317da853ecaSopenharmony_ci{
1318da853ecaSopenharmony_ci    OH_AVErrCode ret;
1319da853ecaSopenharmony_ci    uint32_t trackId = -1;
1320da853ecaSopenharmony_ci    uint8_t *data = nullptr;
1321da853ecaSopenharmony_ci
1322da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1323da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
1324da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
1325da853ecaSopenharmony_ci
1326da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
1327da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1328da853ecaSopenharmony_ci
1329da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
1330da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1331da853ecaSopenharmony_ci
1332da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
1333da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1334da853ecaSopenharmony_ci
1335da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
1336da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1337da853ecaSopenharmony_ci
1338da853ecaSopenharmony_ci    ret = Stop(encoderDemo, handle);
1339da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1340da853ecaSopenharmony_ci
1341da853ecaSopenharmony_ci    ret = Reset(encoderDemo, handle);
1342da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1343da853ecaSopenharmony_ci
1344da853ecaSopenharmony_ci    ret = PushInputData(encoderDemo, handle, trackId);
1345da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_INVALID_STATE, ret);
1346da853ecaSopenharmony_ci
1347da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
1348da853ecaSopenharmony_ci    delete encoderDemo;
1349da853ecaSopenharmony_ci}
1350da853ecaSopenharmony_ci
1351da853ecaSopenharmony_ci/**
1352da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_037
1353da853ecaSopenharmony_ci * @tc.name      : Create -> Flush
1354da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1355da853ecaSopenharmony_ci */
1356da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_037, TestSize.Level2)
1357da853ecaSopenharmony_ci{
1358da853ecaSopenharmony_ci    OH_AVErrCode ret;
1359da853ecaSopenharmony_ci
1360da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1361da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
1362da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
1363da853ecaSopenharmony_ci
1364da853ecaSopenharmony_ci    ret = Flush(encoderDemo, handle);
1365da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_INVALID_STATE, ret);
1366da853ecaSopenharmony_ci
1367da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
1368da853ecaSopenharmony_ci    delete encoderDemo;
1369da853ecaSopenharmony_ci}
1370da853ecaSopenharmony_ci
1371da853ecaSopenharmony_ci/**
1372da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_038
1373da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Flush
1374da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1375da853ecaSopenharmony_ci */
1376da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_038, TestSize.Level2)
1377da853ecaSopenharmony_ci{
1378da853ecaSopenharmony_ci    OH_AVErrCode ret;
1379da853ecaSopenharmony_ci
1380da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1381da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
1382da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
1383da853ecaSopenharmony_ci
1384da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
1385da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1386da853ecaSopenharmony_ci
1387da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
1388da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1389da853ecaSopenharmony_ci
1390da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
1391da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1392da853ecaSopenharmony_ci
1393da853ecaSopenharmony_ci    ret = Flush(encoderDemo, handle);
1394da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_INVALID_STATE, ret);
1395da853ecaSopenharmony_ci
1396da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
1397da853ecaSopenharmony_ci    delete encoderDemo;
1398da853ecaSopenharmony_ci}
1399da853ecaSopenharmony_ci
1400da853ecaSopenharmony_ci/**
1401da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_039
1402da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Flush
1403da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1404da853ecaSopenharmony_ci */
1405da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_039, TestSize.Level2)
1406da853ecaSopenharmony_ci{
1407da853ecaSopenharmony_ci    OH_AVErrCode ret;
1408da853ecaSopenharmony_ci    uint32_t trackId = -1;
1409da853ecaSopenharmony_ci    uint8_t *data = nullptr;
1410da853ecaSopenharmony_ci
1411da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1412da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
1413da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
1414da853ecaSopenharmony_ci
1415da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
1416da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1417da853ecaSopenharmony_ci
1418da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
1419da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1420da853ecaSopenharmony_ci
1421da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
1422da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1423da853ecaSopenharmony_ci
1424da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
1425da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1426da853ecaSopenharmony_ci
1427da853ecaSopenharmony_ci    ret = Flush(encoderDemo, handle);
1428da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1429da853ecaSopenharmony_ci
1430da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
1431da853ecaSopenharmony_ci    delete encoderDemo;
1432da853ecaSopenharmony_ci}
1433da853ecaSopenharmony_ci
1434da853ecaSopenharmony_ci/**
1435da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_040
1436da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> PushInputData -> Flush
1437da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1438da853ecaSopenharmony_ci */
1439da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_040, TestSize.Level2)
1440da853ecaSopenharmony_ci{
1441da853ecaSopenharmony_ci    OH_AVErrCode ret;
1442da853ecaSopenharmony_ci    uint32_t trackId = -1;
1443da853ecaSopenharmony_ci    uint8_t *data = nullptr;
1444da853ecaSopenharmony_ci
1445da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1446da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
1447da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
1448da853ecaSopenharmony_ci
1449da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
1450da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1451da853ecaSopenharmony_ci
1452da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
1453da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1454da853ecaSopenharmony_ci
1455da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
1456da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1457da853ecaSopenharmony_ci
1458da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
1459da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1460da853ecaSopenharmony_ci
1461da853ecaSopenharmony_ci    ret = PushInputData(encoderDemo, handle, trackId);
1462da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1463da853ecaSopenharmony_ci
1464da853ecaSopenharmony_ci    ret = Flush(encoderDemo, handle);
1465da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1466da853ecaSopenharmony_ci
1467da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
1468da853ecaSopenharmony_ci    delete encoderDemo;
1469da853ecaSopenharmony_ci}
1470da853ecaSopenharmony_ci
1471da853ecaSopenharmony_ci/**
1472da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_041
1473da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> PushInputData[EOS] -> Flush
1474da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1475da853ecaSopenharmony_ci */
1476da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_041, TestSize.Level2)
1477da853ecaSopenharmony_ci{
1478da853ecaSopenharmony_ci    OH_AVErrCode ret;
1479da853ecaSopenharmony_ci    uint32_t trackId = -1;
1480da853ecaSopenharmony_ci    uint8_t *data = nullptr;
1481da853ecaSopenharmony_ci
1482da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1483da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
1484da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
1485da853ecaSopenharmony_ci
1486da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
1487da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1488da853ecaSopenharmony_ci
1489da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
1490da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1491da853ecaSopenharmony_ci
1492da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
1493da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1494da853ecaSopenharmony_ci
1495da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
1496da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1497da853ecaSopenharmony_ci
1498da853ecaSopenharmony_ci    ret = PushInputDataEOS(encoderDemo, handle, trackId);
1499da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1500da853ecaSopenharmony_ci
1501da853ecaSopenharmony_ci    ret = Flush(encoderDemo, handle);
1502da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1503da853ecaSopenharmony_ci
1504da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
1505da853ecaSopenharmony_ci    delete encoderDemo;
1506da853ecaSopenharmony_ci}
1507da853ecaSopenharmony_ci
1508da853ecaSopenharmony_ci/**
1509da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_042
1510da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Flush -> Flush
1511da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1512da853ecaSopenharmony_ci */
1513da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_042, TestSize.Level2)
1514da853ecaSopenharmony_ci{
1515da853ecaSopenharmony_ci    OH_AVErrCode ret;
1516da853ecaSopenharmony_ci    uint32_t trackId = -1;
1517da853ecaSopenharmony_ci    uint8_t *data = nullptr;
1518da853ecaSopenharmony_ci
1519da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1520da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
1521da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
1522da853ecaSopenharmony_ci
1523da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
1524da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1525da853ecaSopenharmony_ci
1526da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
1527da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1528da853ecaSopenharmony_ci
1529da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
1530da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1531da853ecaSopenharmony_ci
1532da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
1533da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1534da853ecaSopenharmony_ci
1535da853ecaSopenharmony_ci    ret = Flush(encoderDemo, handle);
1536da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1537da853ecaSopenharmony_ci
1538da853ecaSopenharmony_ci    ret = Flush(encoderDemo, handle);
1539da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_INVALID_STATE, ret);
1540da853ecaSopenharmony_ci
1541da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
1542da853ecaSopenharmony_ci    delete encoderDemo;
1543da853ecaSopenharmony_ci}
1544da853ecaSopenharmony_ci
1545da853ecaSopenharmony_ci/**
1546da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_043
1547da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Stop -> Flush
1548da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1549da853ecaSopenharmony_ci */
1550da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_043, TestSize.Level2)
1551da853ecaSopenharmony_ci{
1552da853ecaSopenharmony_ci    OH_AVErrCode ret;
1553da853ecaSopenharmony_ci    uint32_t trackId = -1;
1554da853ecaSopenharmony_ci    uint8_t *data = nullptr;
1555da853ecaSopenharmony_ci
1556da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1557da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
1558da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
1559da853ecaSopenharmony_ci
1560da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
1561da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1562da853ecaSopenharmony_ci
1563da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
1564da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1565da853ecaSopenharmony_ci
1566da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
1567da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1568da853ecaSopenharmony_ci
1569da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
1570da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1571da853ecaSopenharmony_ci
1572da853ecaSopenharmony_ci    ret = Stop(encoderDemo, handle);
1573da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1574da853ecaSopenharmony_ci
1575da853ecaSopenharmony_ci    ret = Flush(encoderDemo, handle);
1576da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_INVALID_STATE, ret);
1577da853ecaSopenharmony_ci
1578da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
1579da853ecaSopenharmony_ci    delete encoderDemo;
1580da853ecaSopenharmony_ci}
1581da853ecaSopenharmony_ci
1582da853ecaSopenharmony_ci/**
1583da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_044
1584da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Stop -> Reset -> Flush
1585da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1586da853ecaSopenharmony_ci */
1587da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_044, TestSize.Level2)
1588da853ecaSopenharmony_ci{
1589da853ecaSopenharmony_ci    OH_AVErrCode ret;
1590da853ecaSopenharmony_ci    uint32_t trackId = -1;
1591da853ecaSopenharmony_ci    uint8_t *data = nullptr;
1592da853ecaSopenharmony_ci
1593da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1594da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
1595da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
1596da853ecaSopenharmony_ci
1597da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
1598da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1599da853ecaSopenharmony_ci
1600da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
1601da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1602da853ecaSopenharmony_ci
1603da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
1604da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1605da853ecaSopenharmony_ci
1606da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
1607da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1608da853ecaSopenharmony_ci
1609da853ecaSopenharmony_ci    ret = Stop(encoderDemo, handle);
1610da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1611da853ecaSopenharmony_ci
1612da853ecaSopenharmony_ci    ret = Reset(encoderDemo, handle);
1613da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1614da853ecaSopenharmony_ci
1615da853ecaSopenharmony_ci    ret = Flush(encoderDemo, handle);
1616da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_INVALID_STATE, ret);
1617da853ecaSopenharmony_ci
1618da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
1619da853ecaSopenharmony_ci    delete encoderDemo;
1620da853ecaSopenharmony_ci}
1621da853ecaSopenharmony_ci
1622da853ecaSopenharmony_ci/**
1623da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_045
1624da853ecaSopenharmony_ci * @tc.name      : Create -> Stop
1625da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1626da853ecaSopenharmony_ci */
1627da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_045, TestSize.Level2)
1628da853ecaSopenharmony_ci{
1629da853ecaSopenharmony_ci    OH_AVErrCode ret;
1630da853ecaSopenharmony_ci
1631da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1632da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
1633da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
1634da853ecaSopenharmony_ci
1635da853ecaSopenharmony_ci    ret = Stop(encoderDemo, handle);
1636da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_INVALID_STATE, ret);
1637da853ecaSopenharmony_ci
1638da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
1639da853ecaSopenharmony_ci    delete encoderDemo;
1640da853ecaSopenharmony_ci}
1641da853ecaSopenharmony_ci
1642da853ecaSopenharmony_ci/**
1643da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_046
1644da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Stop
1645da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1646da853ecaSopenharmony_ci */
1647da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_046, TestSize.Level2)
1648da853ecaSopenharmony_ci{
1649da853ecaSopenharmony_ci    OH_AVErrCode ret;
1650da853ecaSopenharmony_ci
1651da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1652da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
1653da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
1654da853ecaSopenharmony_ci
1655da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
1656da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1657da853ecaSopenharmony_ci
1658da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
1659da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1660da853ecaSopenharmony_ci
1661da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
1662da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1663da853ecaSopenharmony_ci
1664da853ecaSopenharmony_ci    ret = Stop(encoderDemo, handle);
1665da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_INVALID_STATE, ret);
1666da853ecaSopenharmony_ci
1667da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
1668da853ecaSopenharmony_ci    delete encoderDemo;
1669da853ecaSopenharmony_ci}
1670da853ecaSopenharmony_ci
1671da853ecaSopenharmony_ci/**
1672da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_047
1673da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Stop
1674da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1675da853ecaSopenharmony_ci */
1676da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_047, TestSize.Level2)
1677da853ecaSopenharmony_ci{
1678da853ecaSopenharmony_ci    OH_AVErrCode ret;
1679da853ecaSopenharmony_ci    uint32_t trackId = -1;
1680da853ecaSopenharmony_ci    uint8_t *data = nullptr;
1681da853ecaSopenharmony_ci
1682da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1683da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
1684da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
1685da853ecaSopenharmony_ci
1686da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
1687da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1688da853ecaSopenharmony_ci
1689da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
1690da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1691da853ecaSopenharmony_ci
1692da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
1693da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1694da853ecaSopenharmony_ci
1695da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
1696da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1697da853ecaSopenharmony_ci
1698da853ecaSopenharmony_ci    ret = Stop(encoderDemo, handle);
1699da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1700da853ecaSopenharmony_ci
1701da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
1702da853ecaSopenharmony_ci    delete encoderDemo;
1703da853ecaSopenharmony_ci}
1704da853ecaSopenharmony_ci
1705da853ecaSopenharmony_ci/**
1706da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_048
1707da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> PushInputData -> Stop
1708da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1709da853ecaSopenharmony_ci */
1710da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_048, TestSize.Level2)
1711da853ecaSopenharmony_ci{
1712da853ecaSopenharmony_ci    OH_AVErrCode ret;
1713da853ecaSopenharmony_ci    uint32_t trackId = -1;
1714da853ecaSopenharmony_ci    uint8_t *data = nullptr;
1715da853ecaSopenharmony_ci
1716da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1717da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
1718da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
1719da853ecaSopenharmony_ci
1720da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
1721da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1722da853ecaSopenharmony_ci
1723da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
1724da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1725da853ecaSopenharmony_ci
1726da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
1727da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1728da853ecaSopenharmony_ci
1729da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
1730da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1731da853ecaSopenharmony_ci
1732da853ecaSopenharmony_ci    ret = PushInputData(encoderDemo, handle, trackId);
1733da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1734da853ecaSopenharmony_ci
1735da853ecaSopenharmony_ci    ret = Stop(encoderDemo, handle);
1736da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1737da853ecaSopenharmony_ci
1738da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
1739da853ecaSopenharmony_ci    delete encoderDemo;
1740da853ecaSopenharmony_ci}
1741da853ecaSopenharmony_ci
1742da853ecaSopenharmony_ci/**
1743da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_049
1744da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> PushInputData[EOS] -> Stop
1745da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1746da853ecaSopenharmony_ci */
1747da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_049, TestSize.Level2)
1748da853ecaSopenharmony_ci{
1749da853ecaSopenharmony_ci    OH_AVErrCode ret;
1750da853ecaSopenharmony_ci    uint32_t trackId = -1;
1751da853ecaSopenharmony_ci    uint8_t *data = nullptr;
1752da853ecaSopenharmony_ci
1753da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1754da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
1755da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
1756da853ecaSopenharmony_ci
1757da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
1758da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1759da853ecaSopenharmony_ci
1760da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
1761da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1762da853ecaSopenharmony_ci
1763da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
1764da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1765da853ecaSopenharmony_ci
1766da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
1767da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1768da853ecaSopenharmony_ci
1769da853ecaSopenharmony_ci    ret = PushInputDataEOS(encoderDemo, handle, trackId);
1770da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1771da853ecaSopenharmony_ci
1772da853ecaSopenharmony_ci    ret = Stop(encoderDemo, handle);
1773da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1774da853ecaSopenharmony_ci
1775da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
1776da853ecaSopenharmony_ci    delete encoderDemo;
1777da853ecaSopenharmony_ci}
1778da853ecaSopenharmony_ci
1779da853ecaSopenharmony_ci/**
1780da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_050
1781da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Flush -> Stop
1782da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1783da853ecaSopenharmony_ci */
1784da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_050, TestSize.Level2)
1785da853ecaSopenharmony_ci{
1786da853ecaSopenharmony_ci    OH_AVErrCode ret;
1787da853ecaSopenharmony_ci    uint32_t trackId = -1;
1788da853ecaSopenharmony_ci    uint8_t *data = nullptr;
1789da853ecaSopenharmony_ci
1790da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1791da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
1792da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
1793da853ecaSopenharmony_ci
1794da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
1795da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1796da853ecaSopenharmony_ci
1797da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
1798da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1799da853ecaSopenharmony_ci
1800da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
1801da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1802da853ecaSopenharmony_ci
1803da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
1804da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1805da853ecaSopenharmony_ci
1806da853ecaSopenharmony_ci    ret = Flush(encoderDemo, handle);
1807da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1808da853ecaSopenharmony_ci
1809da853ecaSopenharmony_ci    ret = Stop(encoderDemo, handle);
1810da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1811da853ecaSopenharmony_ci
1812da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
1813da853ecaSopenharmony_ci    delete encoderDemo;
1814da853ecaSopenharmony_ci}
1815da853ecaSopenharmony_ci
1816da853ecaSopenharmony_ci/**
1817da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_051
1818da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Stop -> Stop
1819da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1820da853ecaSopenharmony_ci */
1821da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_051, TestSize.Level2)
1822da853ecaSopenharmony_ci{
1823da853ecaSopenharmony_ci    OH_AVErrCode ret;
1824da853ecaSopenharmony_ci    uint32_t trackId = -1;
1825da853ecaSopenharmony_ci    uint8_t *data = nullptr;
1826da853ecaSopenharmony_ci
1827da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1828da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
1829da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
1830da853ecaSopenharmony_ci
1831da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
1832da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1833da853ecaSopenharmony_ci
1834da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
1835da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1836da853ecaSopenharmony_ci
1837da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
1838da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1839da853ecaSopenharmony_ci
1840da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
1841da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1842da853ecaSopenharmony_ci
1843da853ecaSopenharmony_ci    ret = Stop(encoderDemo, handle);
1844da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1845da853ecaSopenharmony_ci
1846da853ecaSopenharmony_ci    ret = Stop(encoderDemo, handle);
1847da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_INVALID_STATE, ret);
1848da853ecaSopenharmony_ci
1849da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
1850da853ecaSopenharmony_ci    delete encoderDemo;
1851da853ecaSopenharmony_ci}
1852da853ecaSopenharmony_ci
1853da853ecaSopenharmony_ci/**
1854da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_052
1855da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Stop -> Reset -> Stop
1856da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1857da853ecaSopenharmony_ci */
1858da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_052, TestSize.Level2)
1859da853ecaSopenharmony_ci{
1860da853ecaSopenharmony_ci    OH_AVErrCode ret;
1861da853ecaSopenharmony_ci    uint32_t trackId = -1;
1862da853ecaSopenharmony_ci    uint8_t *data = nullptr;
1863da853ecaSopenharmony_ci
1864da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1865da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
1866da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
1867da853ecaSopenharmony_ci
1868da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
1869da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1870da853ecaSopenharmony_ci
1871da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
1872da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1873da853ecaSopenharmony_ci
1874da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
1875da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1876da853ecaSopenharmony_ci
1877da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
1878da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1879da853ecaSopenharmony_ci
1880da853ecaSopenharmony_ci    ret = Stop(encoderDemo, handle);
1881da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1882da853ecaSopenharmony_ci
1883da853ecaSopenharmony_ci    ret = Reset(encoderDemo, handle);
1884da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1885da853ecaSopenharmony_ci
1886da853ecaSopenharmony_ci    ret = Stop(encoderDemo, handle);
1887da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_INVALID_STATE, ret);
1888da853ecaSopenharmony_ci
1889da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
1890da853ecaSopenharmony_ci    delete encoderDemo;
1891da853ecaSopenharmony_ci}
1892da853ecaSopenharmony_ci
1893da853ecaSopenharmony_ci/**
1894da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_053
1895da853ecaSopenharmony_ci * @tc.name      : Creat -> Reset
1896da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1897da853ecaSopenharmony_ci */
1898da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_053, TestSize.Level2)
1899da853ecaSopenharmony_ci{
1900da853ecaSopenharmony_ci    OH_AVErrCode ret;
1901da853ecaSopenharmony_ci
1902da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1903da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
1904da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
1905da853ecaSopenharmony_ci
1906da853ecaSopenharmony_ci    ret = Reset(encoderDemo, handle);
1907da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1908da853ecaSopenharmony_ci
1909da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
1910da853ecaSopenharmony_ci    delete encoderDemo;
1911da853ecaSopenharmony_ci}
1912da853ecaSopenharmony_ci
1913da853ecaSopenharmony_ci/**
1914da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_054
1915da853ecaSopenharmony_ci * @tc.name      : Creat -> SetCallback -> Configure -> Prepare -> Reset
1916da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1917da853ecaSopenharmony_ci */
1918da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_054, TestSize.Level2)
1919da853ecaSopenharmony_ci{
1920da853ecaSopenharmony_ci    OH_AVErrCode ret;
1921da853ecaSopenharmony_ci
1922da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1923da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
1924da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
1925da853ecaSopenharmony_ci
1926da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
1927da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1928da853ecaSopenharmony_ci
1929da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
1930da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1931da853ecaSopenharmony_ci
1932da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
1933da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1934da853ecaSopenharmony_ci
1935da853ecaSopenharmony_ci    ret = Reset(encoderDemo, handle);
1936da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1937da853ecaSopenharmony_ci
1938da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
1939da853ecaSopenharmony_ci    delete encoderDemo;
1940da853ecaSopenharmony_ci}
1941da853ecaSopenharmony_ci
1942da853ecaSopenharmony_ci/**
1943da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_055
1944da853ecaSopenharmony_ci * @tc.name      : Creat -> SetCallback -> Configure -> Prepare -> Start -> Reset
1945da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1946da853ecaSopenharmony_ci */
1947da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_055, TestSize.Level2)
1948da853ecaSopenharmony_ci{
1949da853ecaSopenharmony_ci    OH_AVErrCode ret;
1950da853ecaSopenharmony_ci    uint32_t trackId = -1;
1951da853ecaSopenharmony_ci    uint8_t *data = nullptr;
1952da853ecaSopenharmony_ci
1953da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1954da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
1955da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
1956da853ecaSopenharmony_ci
1957da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
1958da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1959da853ecaSopenharmony_ci
1960da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
1961da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1962da853ecaSopenharmony_ci
1963da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
1964da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1965da853ecaSopenharmony_ci
1966da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
1967da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1968da853ecaSopenharmony_ci
1969da853ecaSopenharmony_ci    ret = Reset(encoderDemo, handle);
1970da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1971da853ecaSopenharmony_ci
1972da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
1973da853ecaSopenharmony_ci    delete encoderDemo;
1974da853ecaSopenharmony_ci}
1975da853ecaSopenharmony_ci
1976da853ecaSopenharmony_ci/**
1977da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_056
1978da853ecaSopenharmony_ci * @tc.name      : Creat -> SetCallback -> Configure -> Prepare -> Start -> PushInputData -> Reset
1979da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1980da853ecaSopenharmony_ci */
1981da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_056, TestSize.Level2)
1982da853ecaSopenharmony_ci{
1983da853ecaSopenharmony_ci    OH_AVErrCode ret;
1984da853ecaSopenharmony_ci    uint32_t trackId = -1;
1985da853ecaSopenharmony_ci    uint8_t *data = nullptr;
1986da853ecaSopenharmony_ci
1987da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1988da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
1989da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
1990da853ecaSopenharmony_ci
1991da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
1992da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1993da853ecaSopenharmony_ci
1994da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
1995da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1996da853ecaSopenharmony_ci
1997da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
1998da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
1999da853ecaSopenharmony_ci
2000da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
2001da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2002da853ecaSopenharmony_ci
2003da853ecaSopenharmony_ci    ret = PushInputData(encoderDemo, handle, trackId);
2004da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2005da853ecaSopenharmony_ci
2006da853ecaSopenharmony_ci    ret = Reset(encoderDemo, handle);
2007da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2008da853ecaSopenharmony_ci
2009da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
2010da853ecaSopenharmony_ci    delete encoderDemo;
2011da853ecaSopenharmony_ci}
2012da853ecaSopenharmony_ci
2013da853ecaSopenharmony_ci/**
2014da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_057
2015da853ecaSopenharmony_ci * @tc.name      : Creat -> SetCallback -> Configure -> Prepare -> Start -> PushInputData[EOS] -> Reset
2016da853ecaSopenharmony_ci * @tc.desc      : interface depend check
2017da853ecaSopenharmony_ci */
2018da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_057, TestSize.Level2)
2019da853ecaSopenharmony_ci{
2020da853ecaSopenharmony_ci    OH_AVErrCode ret;
2021da853ecaSopenharmony_ci    uint32_t trackId = -1;
2022da853ecaSopenharmony_ci    uint8_t *data = nullptr;
2023da853ecaSopenharmony_ci
2024da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
2025da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
2026da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
2027da853ecaSopenharmony_ci
2028da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
2029da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2030da853ecaSopenharmony_ci
2031da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
2032da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2033da853ecaSopenharmony_ci
2034da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
2035da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2036da853ecaSopenharmony_ci
2037da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
2038da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2039da853ecaSopenharmony_ci
2040da853ecaSopenharmony_ci    ret = PushInputDataEOS(encoderDemo, handle, trackId);
2041da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2042da853ecaSopenharmony_ci
2043da853ecaSopenharmony_ci    ret = Reset(encoderDemo, handle);
2044da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2045da853ecaSopenharmony_ci
2046da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
2047da853ecaSopenharmony_ci    delete encoderDemo;
2048da853ecaSopenharmony_ci}
2049da853ecaSopenharmony_ci
2050da853ecaSopenharmony_ci/**
2051da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_058
2052da853ecaSopenharmony_ci * @tc.name      : Creat -> SetCallback -> Configure -> Prepare -> Start -> Flush -> Reset
2053da853ecaSopenharmony_ci * @tc.desc      : interface depend check
2054da853ecaSopenharmony_ci */
2055da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_058, TestSize.Level2)
2056da853ecaSopenharmony_ci{
2057da853ecaSopenharmony_ci    OH_AVErrCode ret;
2058da853ecaSopenharmony_ci    uint32_t trackId = -1;
2059da853ecaSopenharmony_ci    uint8_t *data = nullptr;
2060da853ecaSopenharmony_ci
2061da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
2062da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
2063da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
2064da853ecaSopenharmony_ci
2065da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
2066da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2067da853ecaSopenharmony_ci
2068da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
2069da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2070da853ecaSopenharmony_ci
2071da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
2072da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2073da853ecaSopenharmony_ci
2074da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
2075da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2076da853ecaSopenharmony_ci
2077da853ecaSopenharmony_ci    ret = Flush(encoderDemo, handle);
2078da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2079da853ecaSopenharmony_ci
2080da853ecaSopenharmony_ci    ret = Reset(encoderDemo, handle);
2081da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2082da853ecaSopenharmony_ci
2083da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
2084da853ecaSopenharmony_ci    delete encoderDemo;
2085da853ecaSopenharmony_ci}
2086da853ecaSopenharmony_ci
2087da853ecaSopenharmony_ci/**
2088da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_059
2089da853ecaSopenharmony_ci * @tc.name      : Creat -> SetCallback -> Configure -> Prepare -> Start -> Stop -> Reset
2090da853ecaSopenharmony_ci * @tc.desc      : interface depend check
2091da853ecaSopenharmony_ci */
2092da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_059, TestSize.Level2)
2093da853ecaSopenharmony_ci{
2094da853ecaSopenharmony_ci    OH_AVErrCode ret;
2095da853ecaSopenharmony_ci    uint32_t trackId = -1;
2096da853ecaSopenharmony_ci    uint8_t *data = nullptr;
2097da853ecaSopenharmony_ci
2098da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
2099da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
2100da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
2101da853ecaSopenharmony_ci
2102da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
2103da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2104da853ecaSopenharmony_ci
2105da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
2106da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2107da853ecaSopenharmony_ci
2108da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
2109da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2110da853ecaSopenharmony_ci
2111da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
2112da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2113da853ecaSopenharmony_ci
2114da853ecaSopenharmony_ci    ret = Stop(encoderDemo, handle);
2115da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2116da853ecaSopenharmony_ci
2117da853ecaSopenharmony_ci    ret = Reset(encoderDemo, handle);
2118da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2119da853ecaSopenharmony_ci
2120da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
2121da853ecaSopenharmony_ci    delete encoderDemo;
2122da853ecaSopenharmony_ci}
2123da853ecaSopenharmony_ci
2124da853ecaSopenharmony_ci/**
2125da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_060
2126da853ecaSopenharmony_ci * @tc.name      : Creat -> SetCallback -> Configure -> Prepare -> Start -> Stop -> Reset -> Reset
2127da853ecaSopenharmony_ci * @tc.desc      : interface depend check
2128da853ecaSopenharmony_ci */
2129da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_060, TestSize.Level2)
2130da853ecaSopenharmony_ci{
2131da853ecaSopenharmony_ci    OH_AVErrCode ret;
2132da853ecaSopenharmony_ci    uint32_t trackId = -1;
2133da853ecaSopenharmony_ci    uint8_t *data = nullptr;
2134da853ecaSopenharmony_ci
2135da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
2136da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
2137da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
2138da853ecaSopenharmony_ci
2139da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
2140da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2141da853ecaSopenharmony_ci
2142da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
2143da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2144da853ecaSopenharmony_ci
2145da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
2146da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2147da853ecaSopenharmony_ci
2148da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
2149da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2150da853ecaSopenharmony_ci
2151da853ecaSopenharmony_ci    ret = Stop(encoderDemo, handle);
2152da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2153da853ecaSopenharmony_ci
2154da853ecaSopenharmony_ci    ret = Reset(encoderDemo, handle);
2155da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2156da853ecaSopenharmony_ci
2157da853ecaSopenharmony_ci    ret = Reset(encoderDemo, handle);
2158da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2159da853ecaSopenharmony_ci
2160da853ecaSopenharmony_ci    Destroy(encoderDemo, handle);
2161da853ecaSopenharmony_ci    delete encoderDemo;
2162da853ecaSopenharmony_ci}
2163da853ecaSopenharmony_ci
2164da853ecaSopenharmony_ci/**
2165da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_061
2166da853ecaSopenharmony_ci * @tc.name      : Creat -> Destory
2167da853ecaSopenharmony_ci * @tc.desc      : interface depend check
2168da853ecaSopenharmony_ci */
2169da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_061, TestSize.Level2)
2170da853ecaSopenharmony_ci{
2171da853ecaSopenharmony_ci    OH_AVErrCode ret;
2172da853ecaSopenharmony_ci
2173da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
2174da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
2175da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
2176da853ecaSopenharmony_ci
2177da853ecaSopenharmony_ci    ret = Destroy(encoderDemo, handle);
2178da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2179da853ecaSopenharmony_ci    delete encoderDemo;
2180da853ecaSopenharmony_ci}
2181da853ecaSopenharmony_ci
2182da853ecaSopenharmony_ci/**
2183da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_062
2184da853ecaSopenharmony_ci * @tc.name      : Creat -> SetCallback -> Configure -> Prepare -> Destory
2185da853ecaSopenharmony_ci * @tc.desc      : interface depend check
2186da853ecaSopenharmony_ci */
2187da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_062, TestSize.Level2)
2188da853ecaSopenharmony_ci{
2189da853ecaSopenharmony_ci    OH_AVErrCode ret;
2190da853ecaSopenharmony_ci
2191da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
2192da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
2193da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
2194da853ecaSopenharmony_ci
2195da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
2196da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2197da853ecaSopenharmony_ci
2198da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
2199da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2200da853ecaSopenharmony_ci
2201da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
2202da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2203da853ecaSopenharmony_ci
2204da853ecaSopenharmony_ci    ret = Destroy(encoderDemo, handle);
2205da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2206da853ecaSopenharmony_ci    delete encoderDemo;
2207da853ecaSopenharmony_ci}
2208da853ecaSopenharmony_ci
2209da853ecaSopenharmony_ci/**
2210da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_063
2211da853ecaSopenharmony_ci * @tc.name      : Creat -> SetCallback -> Configure -> Prepare -> Start -> Destory
2212da853ecaSopenharmony_ci * @tc.desc      : interface depend check
2213da853ecaSopenharmony_ci */
2214da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_063, TestSize.Level2)
2215da853ecaSopenharmony_ci{
2216da853ecaSopenharmony_ci    OH_AVErrCode ret;
2217da853ecaSopenharmony_ci    uint32_t trackId = -1;
2218da853ecaSopenharmony_ci    uint8_t *data = nullptr;
2219da853ecaSopenharmony_ci
2220da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
2221da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
2222da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
2223da853ecaSopenharmony_ci
2224da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
2225da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2226da853ecaSopenharmony_ci
2227da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
2228da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2229da853ecaSopenharmony_ci
2230da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
2231da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2232da853ecaSopenharmony_ci
2233da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
2234da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2235da853ecaSopenharmony_ci
2236da853ecaSopenharmony_ci    ret = Destroy(encoderDemo, handle);
2237da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2238da853ecaSopenharmony_ci    delete encoderDemo;
2239da853ecaSopenharmony_ci}
2240da853ecaSopenharmony_ci
2241da853ecaSopenharmony_ci/**
2242da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_064
2243da853ecaSopenharmony_ci * @tc.name      : Creat -> SetCallback -> Configure -> Prepare -> Start -> PushInputData -> Destory
2244da853ecaSopenharmony_ci * @tc.desc      : interface depend check
2245da853ecaSopenharmony_ci */
2246da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_064, TestSize.Level2)
2247da853ecaSopenharmony_ci{
2248da853ecaSopenharmony_ci    OH_AVErrCode ret;
2249da853ecaSopenharmony_ci    uint32_t trackId = -1;
2250da853ecaSopenharmony_ci    uint8_t *data = nullptr;
2251da853ecaSopenharmony_ci
2252da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
2253da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
2254da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
2255da853ecaSopenharmony_ci
2256da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
2257da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2258da853ecaSopenharmony_ci
2259da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
2260da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2261da853ecaSopenharmony_ci
2262da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
2263da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2264da853ecaSopenharmony_ci
2265da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
2266da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2267da853ecaSopenharmony_ci
2268da853ecaSopenharmony_ci    ret = PushInputData(encoderDemo, handle, trackId);
2269da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2270da853ecaSopenharmony_ci
2271da853ecaSopenharmony_ci    ret = Destroy(encoderDemo, handle);
2272da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2273da853ecaSopenharmony_ci    delete encoderDemo;
2274da853ecaSopenharmony_ci}
2275da853ecaSopenharmony_ci
2276da853ecaSopenharmony_ci/**
2277da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_065
2278da853ecaSopenharmony_ci * @tc.name      : Creat -> SetCallback -> Configure -> Prepare -> Start -> PushInputData[EOS] -> Destory
2279da853ecaSopenharmony_ci * @tc.desc      : interface depend check
2280da853ecaSopenharmony_ci */
2281da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_065, TestSize.Level2)
2282da853ecaSopenharmony_ci{
2283da853ecaSopenharmony_ci    OH_AVErrCode ret;
2284da853ecaSopenharmony_ci    uint32_t trackId = -1;
2285da853ecaSopenharmony_ci    uint8_t *data = nullptr;
2286da853ecaSopenharmony_ci
2287da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
2288da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
2289da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
2290da853ecaSopenharmony_ci
2291da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
2292da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2293da853ecaSopenharmony_ci
2294da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
2295da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2296da853ecaSopenharmony_ci
2297da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
2298da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2299da853ecaSopenharmony_ci
2300da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
2301da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2302da853ecaSopenharmony_ci
2303da853ecaSopenharmony_ci    ret = PushInputDataEOS(encoderDemo, handle, trackId);
2304da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2305da853ecaSopenharmony_ci
2306da853ecaSopenharmony_ci    ret = Destroy(encoderDemo, handle);
2307da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2308da853ecaSopenharmony_ci    delete encoderDemo;
2309da853ecaSopenharmony_ci}
2310da853ecaSopenharmony_ci
2311da853ecaSopenharmony_ci/**
2312da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_066
2313da853ecaSopenharmony_ci * @tc.name      : Creat -> SetCallback -> Configure -> Prepare -> Start -> Flush -> Destory
2314da853ecaSopenharmony_ci * @tc.desc      : interface depend check
2315da853ecaSopenharmony_ci */
2316da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_066, TestSize.Level2)
2317da853ecaSopenharmony_ci{
2318da853ecaSopenharmony_ci    OH_AVErrCode ret;
2319da853ecaSopenharmony_ci    uint32_t trackId = -1;
2320da853ecaSopenharmony_ci    uint8_t *data = nullptr;
2321da853ecaSopenharmony_ci
2322da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
2323da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
2324da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
2325da853ecaSopenharmony_ci
2326da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
2327da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2328da853ecaSopenharmony_ci
2329da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
2330da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2331da853ecaSopenharmony_ci
2332da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
2333da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2334da853ecaSopenharmony_ci
2335da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
2336da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2337da853ecaSopenharmony_ci
2338da853ecaSopenharmony_ci    ret = Flush(encoderDemo, handle);
2339da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2340da853ecaSopenharmony_ci
2341da853ecaSopenharmony_ci    ret = Destroy(encoderDemo, handle);
2342da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2343da853ecaSopenharmony_ci    delete encoderDemo;
2344da853ecaSopenharmony_ci}
2345da853ecaSopenharmony_ci
2346da853ecaSopenharmony_ci/**
2347da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_067
2348da853ecaSopenharmony_ci * @tc.name      : Creat -> SetCallback -> Configure -> Prepare -> Start -> Stop -> Destory
2349da853ecaSopenharmony_ci * @tc.desc      : interface depend check
2350da853ecaSopenharmony_ci */
2351da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_067, TestSize.Level2)
2352da853ecaSopenharmony_ci{
2353da853ecaSopenharmony_ci    OH_AVErrCode ret;
2354da853ecaSopenharmony_ci    uint32_t trackId = -1;
2355da853ecaSopenharmony_ci    uint8_t *data = nullptr;
2356da853ecaSopenharmony_ci
2357da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
2358da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
2359da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
2360da853ecaSopenharmony_ci
2361da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
2362da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2363da853ecaSopenharmony_ci
2364da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
2365da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2366da853ecaSopenharmony_ci
2367da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
2368da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2369da853ecaSopenharmony_ci
2370da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
2371da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2372da853ecaSopenharmony_ci
2373da853ecaSopenharmony_ci    ret = Stop(encoderDemo, handle);
2374da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2375da853ecaSopenharmony_ci
2376da853ecaSopenharmony_ci    ret = Destroy(encoderDemo, handle);
2377da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2378da853ecaSopenharmony_ci    delete encoderDemo;
2379da853ecaSopenharmony_ci}
2380da853ecaSopenharmony_ci
2381da853ecaSopenharmony_ci/**
2382da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_068
2383da853ecaSopenharmony_ci * @tc.name      : Creat -> SetCallback -> Configure -> Prepare -> Start -> Stop -> Reset -> Destory
2384da853ecaSopenharmony_ci * @tc.desc      : interface depend check
2385da853ecaSopenharmony_ci */
2386da853ecaSopenharmony_ciHWTEST_F(NativeInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_068, TestSize.Level2)
2387da853ecaSopenharmony_ci{
2388da853ecaSopenharmony_ci    OH_AVErrCode ret;
2389da853ecaSopenharmony_ci    uint32_t trackId = -1;
2390da853ecaSopenharmony_ci    uint8_t *data = nullptr;
2391da853ecaSopenharmony_ci
2392da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
2393da853ecaSopenharmony_ci    OH_AVCodec *handle = Create(encoderDemo);
2394da853ecaSopenharmony_ci    ASSERT_NE(nullptr, handle);
2395da853ecaSopenharmony_ci
2396da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, handle);
2397da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2398da853ecaSopenharmony_ci
2399da853ecaSopenharmony_ci    ret = Configure(encoderDemo, handle);
2400da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2401da853ecaSopenharmony_ci
2402da853ecaSopenharmony_ci    ret = Prepare(encoderDemo, handle);
2403da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2404da853ecaSopenharmony_ci
2405da853ecaSopenharmony_ci    ret = Start(encoderDemo, handle, trackId, data);
2406da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2407da853ecaSopenharmony_ci
2408da853ecaSopenharmony_ci    ret = Stop(encoderDemo, handle);
2409da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2410da853ecaSopenharmony_ci
2411da853ecaSopenharmony_ci    ret = Reset(encoderDemo, handle);
2412da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2413da853ecaSopenharmony_ci
2414da853ecaSopenharmony_ci    ret = Destroy(encoderDemo, handle);
2415da853ecaSopenharmony_ci    ASSERT_EQ(AV_ERR_OK, ret);
2416da853ecaSopenharmony_ci    delete encoderDemo;
2417da853ecaSopenharmony_ci}