1da853ecaSopenharmony_ci/*
2da853ecaSopenharmony_ci * Copyright (C) 2021 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#include "avcodec_info.h"
20da853ecaSopenharmony_ci#include "avcodec_errors.h"
21da853ecaSopenharmony_ci#include "media_description.h"
22da853ecaSopenharmony_ci#include "av_common.h"
23da853ecaSopenharmony_ci#include "meta/format.h"
24da853ecaSopenharmony_ci#include "avcodec_audio_common.h"
25da853ecaSopenharmony_ci
26da853ecaSopenharmony_ciusing namespace std;
27da853ecaSopenharmony_ciusing namespace testing::ext;
28da853ecaSopenharmony_ciusing namespace OHOS;
29da853ecaSopenharmony_ciusing namespace OHOS::MediaAVCodec;
30da853ecaSopenharmony_ciconstexpr uint32_t SIZE_NUM = 100;
31da853ecaSopenharmony_ciconstexpr uint32_t SAMPLE_RATE_44100 = 44100;
32da853ecaSopenharmony_ciconstexpr uint32_t SAMPLE_RATE_112000 = 112000;
33da853ecaSopenharmony_ci
34da853ecaSopenharmony_cinamespace {
35da853ecaSopenharmony_ciclass InnerInterfaceDependCheckTest : public testing::Test {
36da853ecaSopenharmony_cipublic:
37da853ecaSopenharmony_ci    static void SetUpTestCase();
38da853ecaSopenharmony_ci    static void TearDownTestCase();
39da853ecaSopenharmony_ci    void SetUp() override;
40da853ecaSopenharmony_ci    void TearDown() override;
41da853ecaSopenharmony_ci};
42da853ecaSopenharmony_ci
43da853ecaSopenharmony_civoid InnerInterfaceDependCheckTest::SetUpTestCase() {}
44da853ecaSopenharmony_civoid InnerInterfaceDependCheckTest::TearDownTestCase() {}
45da853ecaSopenharmony_civoid InnerInterfaceDependCheckTest::SetUp() {}
46da853ecaSopenharmony_civoid InnerInterfaceDependCheckTest::TearDown() {}
47da853ecaSopenharmony_ci
48da853ecaSopenharmony_ciint32_t Create(AudioEncoderDemo *encoderDemo)
49da853ecaSopenharmony_ci{
50da853ecaSopenharmony_ci    return encoderDemo->InnerCreateByName("OH.Media.Codec.Encoder.Audio.AAC");
51da853ecaSopenharmony_ci}
52da853ecaSopenharmony_ci
53da853ecaSopenharmony_ciint32_t SetCallback(AudioEncoderDemo *encoderDemo, const std::shared_ptr<AVCodecCallback> &cb_)
54da853ecaSopenharmony_ci{
55da853ecaSopenharmony_ci    return encoderDemo->InnerSetCallback(cb_);
56da853ecaSopenharmony_ci}
57da853ecaSopenharmony_ciint32_t Configure(AudioEncoderDemo *encoderDemo)
58da853ecaSopenharmony_ci{
59da853ecaSopenharmony_ci    Format format;
60da853ecaSopenharmony_ci
61da853ecaSopenharmony_ci    format.PutIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, 1);
62da853ecaSopenharmony_ci    format.PutIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, SAMPLE_RATE_44100);
63da853ecaSopenharmony_ci    format.PutLongValue(MediaDescriptionKey::MD_KEY_BITRATE, SAMPLE_RATE_112000);
64da853ecaSopenharmony_ci    format.PutIntValue(MediaDescriptionKey::MD_KEY_BITS_PER_CODED_SAMPLE, AudioSampleFormat::SAMPLE_F32LE);
65da853ecaSopenharmony_ci    format.PutIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, AudioSampleFormat::SAMPLE_F32LE);
66da853ecaSopenharmony_ci    format.PutLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, MONO);
67da853ecaSopenharmony_ci    return encoderDemo->InnerConfigure(format);
68da853ecaSopenharmony_ci}
69da853ecaSopenharmony_ci
70da853ecaSopenharmony_ciint32_t Prepare(AudioEncoderDemo *encoderDemo)
71da853ecaSopenharmony_ci{
72da853ecaSopenharmony_ci    return encoderDemo->InnerPrepare();
73da853ecaSopenharmony_ci}
74da853ecaSopenharmony_ci
75da853ecaSopenharmony_ciint32_t Start(AudioEncoderDemo *encoderDemo)
76da853ecaSopenharmony_ci{
77da853ecaSopenharmony_ci    int32_t ret = encoderDemo->InnerStartWithThread();
78da853ecaSopenharmony_ci    sleep(1);
79da853ecaSopenharmony_ci    return ret;
80da853ecaSopenharmony_ci}
81da853ecaSopenharmony_ci
82da853ecaSopenharmony_ciint32_t Flush(AudioEncoderDemo *encoderDemo)
83da853ecaSopenharmony_ci{
84da853ecaSopenharmony_ci    return encoderDemo->InnerFlush();
85da853ecaSopenharmony_ci}
86da853ecaSopenharmony_ci
87da853ecaSopenharmony_ciint32_t Reset(AudioEncoderDemo *encoderDemo)
88da853ecaSopenharmony_ci{
89da853ecaSopenharmony_ci    return encoderDemo->InnerReset();
90da853ecaSopenharmony_ci}
91da853ecaSopenharmony_ci
92da853ecaSopenharmony_ciint32_t QueueInputBuffer(AudioEncoderDemo *encoderDemo, uint32_t index)
93da853ecaSopenharmony_ci{
94da853ecaSopenharmony_ci    AVCodecBufferInfo info;
95da853ecaSopenharmony_ci    AVCodecBufferFlag flag;
96da853ecaSopenharmony_ci    info.presentationTimeUs = 0;
97da853ecaSopenharmony_ci    info.size = SIZE_NUM;
98da853ecaSopenharmony_ci    info.offset = 0;
99da853ecaSopenharmony_ci    flag = AVCODEC_BUFFER_FLAG_PARTIAL_FRAME;
100da853ecaSopenharmony_ci    return encoderDemo->InnerQueueInputBuffer(index, info, flag);
101da853ecaSopenharmony_ci}
102da853ecaSopenharmony_ci
103da853ecaSopenharmony_ciint32_t Stop(AudioEncoderDemo *encoderDemo)
104da853ecaSopenharmony_ci{
105da853ecaSopenharmony_ci    return encoderDemo->InnerStop();
106da853ecaSopenharmony_ci}
107da853ecaSopenharmony_ci
108da853ecaSopenharmony_ciint32_t Destroy(AudioEncoderDemo *encoderDemo)
109da853ecaSopenharmony_ci{
110da853ecaSopenharmony_ci    return encoderDemo->InnerDestroy();
111da853ecaSopenharmony_ci}
112da853ecaSopenharmony_ci} // namespace
113da853ecaSopenharmony_ci
114da853ecaSopenharmony_ci/**
115da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_001
116da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure
117da853ecaSopenharmony_ci * @tc.desc      : interface depend check
118da853ecaSopenharmony_ci */
119da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_001, TestSize.Level2)
120da853ecaSopenharmony_ci{
121da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
122da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
123da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
124da853ecaSopenharmony_ci
125da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
126da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
127da853ecaSopenharmony_ci
128da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
129da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
130da853ecaSopenharmony_ci
131da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
132da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
133da853ecaSopenharmony_ci
134da853ecaSopenharmony_ci    Destroy(encoderDemo);
135da853ecaSopenharmony_ci    delete encoderDemo;
136da853ecaSopenharmony_ci}
137da853ecaSopenharmony_ci
138da853ecaSopenharmony_ci/**
139da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_002
140da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Configure
141da853ecaSopenharmony_ci * @tc.desc      : interface depend check
142da853ecaSopenharmony_ci */
143da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_002, TestSize.Level2)
144da853ecaSopenharmony_ci{
145da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
146da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
147da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
148da853ecaSopenharmony_ci
149da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
150da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
151da853ecaSopenharmony_ci
152da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
153da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
154da853ecaSopenharmony_ci
155da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
156da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
157da853ecaSopenharmony_ci
158da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
159da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_INVALID_STATE, ret);
160da853ecaSopenharmony_ci
161da853ecaSopenharmony_ci    Destroy(encoderDemo);
162da853ecaSopenharmony_ci    delete encoderDemo;
163da853ecaSopenharmony_ci}
164da853ecaSopenharmony_ci
165da853ecaSopenharmony_ci/**
166da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_003
167da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Configure
168da853ecaSopenharmony_ci * @tc.desc      : interface depend check
169da853ecaSopenharmony_ci */
170da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_003, TestSize.Level2)
171da853ecaSopenharmony_ci{
172da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
173da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
174da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
175da853ecaSopenharmony_ci
176da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
177da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
178da853ecaSopenharmony_ci
179da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
180da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
181da853ecaSopenharmony_ci
182da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
183da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
184da853ecaSopenharmony_ci
185da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
186da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
187da853ecaSopenharmony_ci
188da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
189da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_INVALID_STATE, ret);
190da853ecaSopenharmony_ci
191da853ecaSopenharmony_ci    Destroy(encoderDemo);
192da853ecaSopenharmony_ci    delete encoderDemo;
193da853ecaSopenharmony_ci}
194da853ecaSopenharmony_ci
195da853ecaSopenharmony_ci/**
196da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_004
197da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Configure
198da853ecaSopenharmony_ci * @tc.desc      : interface depend check
199da853ecaSopenharmony_ci */
200da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_004, TestSize.Level2)
201da853ecaSopenharmony_ci{
202da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
203da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
204da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
205da853ecaSopenharmony_ci
206da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
207da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
208da853ecaSopenharmony_ci
209da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
210da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
211da853ecaSopenharmony_ci
212da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
213da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
214da853ecaSopenharmony_ci
215da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
216da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
217da853ecaSopenharmony_ci
218da853ecaSopenharmony_ci    ret = Start(encoderDemo);
219da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
220da853ecaSopenharmony_ci
221da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
222da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_INVALID_STATE, ret);
223da853ecaSopenharmony_ci
224da853ecaSopenharmony_ci    Destroy(encoderDemo);
225da853ecaSopenharmony_ci    delete encoderDemo;
226da853ecaSopenharmony_ci}
227da853ecaSopenharmony_ci
228da853ecaSopenharmony_ci/**
229da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_005
230da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> QueueInputBuffer -> Configure
231da853ecaSopenharmony_ci * @tc.desc      : interface depend check
232da853ecaSopenharmony_ci */
233da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_005, TestSize.Level2)
234da853ecaSopenharmony_ci{
235da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
236da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
237da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
238da853ecaSopenharmony_ci
239da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
240da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
241da853ecaSopenharmony_ci
242da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
243da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
244da853ecaSopenharmony_ci
245da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
246da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
247da853ecaSopenharmony_ci
248da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
249da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
250da853ecaSopenharmony_ci
251da853ecaSopenharmony_ci    ret = Start(encoderDemo);
252da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
253da853ecaSopenharmony_ci
254da853ecaSopenharmony_ci    uint32_t index = encoderDemo->InnerGetInputIndex();
255da853ecaSopenharmony_ci
256da853ecaSopenharmony_ci    ret = QueueInputBuffer(encoderDemo, index);
257da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
258da853ecaSopenharmony_ci
259da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
260da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_INVALID_STATE, ret);
261da853ecaSopenharmony_ci
262da853ecaSopenharmony_ci    Destroy(encoderDemo);
263da853ecaSopenharmony_ci    delete encoderDemo;
264da853ecaSopenharmony_ci}
265da853ecaSopenharmony_ci
266da853ecaSopenharmony_ci/**
267da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_006
268da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Flush -> Configure
269da853ecaSopenharmony_ci * @tc.desc      : interface depend check
270da853ecaSopenharmony_ci */
271da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_006, TestSize.Level2)
272da853ecaSopenharmony_ci{
273da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
274da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
275da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
276da853ecaSopenharmony_ci
277da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
278da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
279da853ecaSopenharmony_ci
280da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
281da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
282da853ecaSopenharmony_ci
283da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
284da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
285da853ecaSopenharmony_ci
286da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
287da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
288da853ecaSopenharmony_ci
289da853ecaSopenharmony_ci    ret = Start(encoderDemo);
290da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
291da853ecaSopenharmony_ci
292da853ecaSopenharmony_ci    ret = Flush(encoderDemo);
293da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
294da853ecaSopenharmony_ci
295da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
296da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_INVALID_STATE, ret);
297da853ecaSopenharmony_ci
298da853ecaSopenharmony_ci    Destroy(encoderDemo);
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 -> Stop -> Configure
305da853ecaSopenharmony_ci * @tc.desc      : interface depend check
306da853ecaSopenharmony_ci */
307da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_007, TestSize.Level2)
308da853ecaSopenharmony_ci{
309da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
310da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
311da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
312da853ecaSopenharmony_ci
313da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
314da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
315da853ecaSopenharmony_ci
316da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
317da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
318da853ecaSopenharmony_ci
319da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
320da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
321da853ecaSopenharmony_ci
322da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
323da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
324da853ecaSopenharmony_ci
325da853ecaSopenharmony_ci    ret = Start(encoderDemo);
326da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
327da853ecaSopenharmony_ci
328da853ecaSopenharmony_ci    ret = Stop(encoderDemo);
329da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
330da853ecaSopenharmony_ci
331da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
332da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_INVALID_STATE, ret);
333da853ecaSopenharmony_ci
334da853ecaSopenharmony_ci    Destroy(encoderDemo);
335da853ecaSopenharmony_ci    delete encoderDemo;
336da853ecaSopenharmony_ci}
337da853ecaSopenharmony_ci
338da853ecaSopenharmony_ci/**
339da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_008
340da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Reset -> Configure
341da853ecaSopenharmony_ci * @tc.desc      : interface depend check
342da853ecaSopenharmony_ci */
343da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_008, TestSize.Level2)
344da853ecaSopenharmony_ci{
345da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
346da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
347da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
348da853ecaSopenharmony_ci
349da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
350da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
351da853ecaSopenharmony_ci
352da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
353da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
354da853ecaSopenharmony_ci
355da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
356da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
357da853ecaSopenharmony_ci
358da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
359da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
360da853ecaSopenharmony_ci
361da853ecaSopenharmony_ci    ret = Start(encoderDemo);
362da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
363da853ecaSopenharmony_ci
364da853ecaSopenharmony_ci    ret = Stop(encoderDemo);
365da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
366da853ecaSopenharmony_ci
367da853ecaSopenharmony_ci    ret = Reset(encoderDemo);
368da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
369da853ecaSopenharmony_ci
370da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
371da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
372da853ecaSopenharmony_ci
373da853ecaSopenharmony_ci    Destroy(encoderDemo);
374da853ecaSopenharmony_ci    delete encoderDemo;
375da853ecaSopenharmony_ci}
376da853ecaSopenharmony_ci
377da853ecaSopenharmony_ci/**
378da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_009
379da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Start
380da853ecaSopenharmony_ci * @tc.desc      : interface depend check
381da853ecaSopenharmony_ci */
382da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_009, TestSize.Level2)
383da853ecaSopenharmony_ci{
384da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
385da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
386da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
387da853ecaSopenharmony_ci
388da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
389da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
390da853ecaSopenharmony_ci
391da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
392da853ecaSopenharmony_ci
393da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
394da853ecaSopenharmony_ci
395da853ecaSopenharmony_ci    ret = Start(encoderDemo);
396da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_INVALID_STATE, ret);
397da853ecaSopenharmony_ci
398da853ecaSopenharmony_ci    Destroy(encoderDemo);
399da853ecaSopenharmony_ci    delete encoderDemo;
400da853ecaSopenharmony_ci}
401da853ecaSopenharmony_ci
402da853ecaSopenharmony_ci/**
403da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_010
404da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start
405da853ecaSopenharmony_ci * @tc.desc      : interface depend check
406da853ecaSopenharmony_ci */
407da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_010, TestSize.Level2)
408da853ecaSopenharmony_ci{
409da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
410da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
411da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
412da853ecaSopenharmony_ci
413da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
414da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
415da853ecaSopenharmony_ci
416da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
417da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
418da853ecaSopenharmony_ci
419da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
420da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
421da853ecaSopenharmony_ci
422da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
423da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
424da853ecaSopenharmony_ci
425da853ecaSopenharmony_ci    ret = Start(encoderDemo);
426da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
427da853ecaSopenharmony_ci
428da853ecaSopenharmony_ci    Destroy(encoderDemo);
429da853ecaSopenharmony_ci    delete encoderDemo;
430da853ecaSopenharmony_ci}
431da853ecaSopenharmony_ci
432da853ecaSopenharmony_ci/**
433da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_011
434da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Start
435da853ecaSopenharmony_ci * @tc.desc      : interface depend check
436da853ecaSopenharmony_ci */
437da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_011, TestSize.Level2)
438da853ecaSopenharmony_ci{
439da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
440da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
441da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
442da853ecaSopenharmony_ci
443da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
444da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
445da853ecaSopenharmony_ci
446da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
447da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
448da853ecaSopenharmony_ci
449da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
450da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
451da853ecaSopenharmony_ci
452da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
453da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
454da853ecaSopenharmony_ci
455da853ecaSopenharmony_ci    ret = Start(encoderDemo);
456da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
457da853ecaSopenharmony_ci
458da853ecaSopenharmony_ci    ret = Start(encoderDemo);
459da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_INVALID_STATE, ret);
460da853ecaSopenharmony_ci
461da853ecaSopenharmony_ci    Destroy(encoderDemo);
462da853ecaSopenharmony_ci    delete encoderDemo;
463da853ecaSopenharmony_ci}
464da853ecaSopenharmony_ci
465da853ecaSopenharmony_ci/**
466da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_012
467da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start-> QueueInputBuffer -> Start
468da853ecaSopenharmony_ci * @tc.desc      : interface depend check
469da853ecaSopenharmony_ci */
470da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_012, TestSize.Level2)
471da853ecaSopenharmony_ci{
472da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
473da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
474da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
475da853ecaSopenharmony_ci
476da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
477da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
478da853ecaSopenharmony_ci
479da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
480da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
481da853ecaSopenharmony_ci
482da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
483da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
484da853ecaSopenharmony_ci
485da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
486da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
487da853ecaSopenharmony_ci
488da853ecaSopenharmony_ci    ret = Start(encoderDemo);
489da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
490da853ecaSopenharmony_ci
491da853ecaSopenharmony_ci    uint32_t index = 0;
492da853ecaSopenharmony_ci    index = encoderDemo->InnerGetInputIndex();
493da853ecaSopenharmony_ci    ret = QueueInputBuffer(encoderDemo, index);
494da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
495da853ecaSopenharmony_ci
496da853ecaSopenharmony_ci    ret = Start(encoderDemo);
497da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_INVALID_STATE, ret);
498da853ecaSopenharmony_ci
499da853ecaSopenharmony_ci    Destroy(encoderDemo);
500da853ecaSopenharmony_ci    delete encoderDemo;
501da853ecaSopenharmony_ci}
502da853ecaSopenharmony_ci
503da853ecaSopenharmony_ci/**
504da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_013
505da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Flush -> Start
506da853ecaSopenharmony_ci * @tc.desc      : interface depend check
507da853ecaSopenharmony_ci */
508da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_013, TestSize.Level2)
509da853ecaSopenharmony_ci{
510da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
511da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
512da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
513da853ecaSopenharmony_ci
514da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
515da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
516da853ecaSopenharmony_ci
517da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
518da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
519da853ecaSopenharmony_ci
520da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
521da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
522da853ecaSopenharmony_ci
523da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
524da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
525da853ecaSopenharmony_ci
526da853ecaSopenharmony_ci    ret = Start(encoderDemo);
527da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
528da853ecaSopenharmony_ci
529da853ecaSopenharmony_ci    ret = Flush(encoderDemo);
530da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
531da853ecaSopenharmony_ci
532da853ecaSopenharmony_ci    ret = Start(encoderDemo);
533da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
534da853ecaSopenharmony_ci
535da853ecaSopenharmony_ci    Destroy(encoderDemo);
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-> Stop -> Start
542da853ecaSopenharmony_ci * @tc.desc      : interface depend check
543da853ecaSopenharmony_ci */
544da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_014, TestSize.Level2)
545da853ecaSopenharmony_ci{
546da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
547da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
548da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
549da853ecaSopenharmony_ci
550da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
551da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
552da853ecaSopenharmony_ci
553da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
554da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
555da853ecaSopenharmony_ci
556da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
557da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
558da853ecaSopenharmony_ci
559da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
560da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
561da853ecaSopenharmony_ci
562da853ecaSopenharmony_ci    ret = Start(encoderDemo);
563da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
564da853ecaSopenharmony_ci
565da853ecaSopenharmony_ci    ret = Stop(encoderDemo);
566da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
567da853ecaSopenharmony_ci
568da853ecaSopenharmony_ci    ret = Start(encoderDemo);
569da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
570da853ecaSopenharmony_ci
571da853ecaSopenharmony_ci    Destroy(encoderDemo);
572da853ecaSopenharmony_ci    delete encoderDemo;
573da853ecaSopenharmony_ci}
574da853ecaSopenharmony_ci
575da853ecaSopenharmony_ci/**
576da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_015
577da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Reset -> Start
578da853ecaSopenharmony_ci * @tc.desc      : interface depend check
579da853ecaSopenharmony_ci */
580da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_015, TestSize.Level2)
581da853ecaSopenharmony_ci{
582da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
583da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
584da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
585da853ecaSopenharmony_ci
586da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
587da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
588da853ecaSopenharmony_ci
589da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
590da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
591da853ecaSopenharmony_ci
592da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
593da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
594da853ecaSopenharmony_ci
595da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
596da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
597da853ecaSopenharmony_ci
598da853ecaSopenharmony_ci    ret = Start(encoderDemo);
599da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
600da853ecaSopenharmony_ci
601da853ecaSopenharmony_ci    ret = Stop(encoderDemo);
602da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
603da853ecaSopenharmony_ci
604da853ecaSopenharmony_ci    ret = Reset(encoderDemo);
605da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
606da853ecaSopenharmony_ci
607da853ecaSopenharmony_ci    ret = Start(encoderDemo);
608da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_INVALID_STATE, ret);
609da853ecaSopenharmony_ci
610da853ecaSopenharmony_ci    Destroy(encoderDemo);
611da853ecaSopenharmony_ci    delete encoderDemo;
612da853ecaSopenharmony_ci}
613da853ecaSopenharmony_ci
614da853ecaSopenharmony_ci/**
615da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_016
616da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Flush
617da853ecaSopenharmony_ci * @tc.desc      : interface depend check
618da853ecaSopenharmony_ci */
619da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_016, TestSize.Level2)
620da853ecaSopenharmony_ci{
621da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
622da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
623da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
624da853ecaSopenharmony_ci
625da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
626da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
627da853ecaSopenharmony_ci
628da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
629da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
630da853ecaSopenharmony_ci
631da853ecaSopenharmony_ci    ret = Flush(encoderDemo);
632da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_INVALID_STATE, ret);
633da853ecaSopenharmony_ci
634da853ecaSopenharmony_ci    Destroy(encoderDemo);
635da853ecaSopenharmony_ci    delete encoderDemo;
636da853ecaSopenharmony_ci}
637da853ecaSopenharmony_ci
638da853ecaSopenharmony_ci/**
639da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_017
640da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Flush
641da853ecaSopenharmony_ci * @tc.desc      : interface depend check
642da853ecaSopenharmony_ci */
643da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_017, TestSize.Level2)
644da853ecaSopenharmony_ci{
645da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
646da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
647da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
648da853ecaSopenharmony_ci
649da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
650da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
651da853ecaSopenharmony_ci
652da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
653da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
654da853ecaSopenharmony_ci
655da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
656da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
657da853ecaSopenharmony_ci
658da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
659da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
660da853ecaSopenharmony_ci
661da853ecaSopenharmony_ci    ret = Flush(encoderDemo);
662da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_INVALID_STATE, ret);
663da853ecaSopenharmony_ci
664da853ecaSopenharmony_ci    Destroy(encoderDemo);
665da853ecaSopenharmony_ci    delete encoderDemo;
666da853ecaSopenharmony_ci}
667da853ecaSopenharmony_ci
668da853ecaSopenharmony_ci/**
669da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_018
670da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> QueueInputBuffer -> Flush
671da853ecaSopenharmony_ci * @tc.desc      : interface depend check
672da853ecaSopenharmony_ci */
673da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_018, TestSize.Level2)
674da853ecaSopenharmony_ci{
675da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
676da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
677da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
678da853ecaSopenharmony_ci
679da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
680da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
681da853ecaSopenharmony_ci
682da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
683da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
684da853ecaSopenharmony_ci
685da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
686da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
687da853ecaSopenharmony_ci
688da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
689da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
690da853ecaSopenharmony_ci
691da853ecaSopenharmony_ci    ret = Start(encoderDemo);
692da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
693da853ecaSopenharmony_ci
694da853ecaSopenharmony_ci    int32_t index = encoderDemo->InnerGetInputIndex();
695da853ecaSopenharmony_ci
696da853ecaSopenharmony_ci    ret = QueueInputBuffer(encoderDemo, index);
697da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
698da853ecaSopenharmony_ci
699da853ecaSopenharmony_ci    ret = Flush(encoderDemo);
700da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
701da853ecaSopenharmony_ci
702da853ecaSopenharmony_ci    Destroy(encoderDemo);
703da853ecaSopenharmony_ci    delete encoderDemo;
704da853ecaSopenharmony_ci}
705da853ecaSopenharmony_ci
706da853ecaSopenharmony_ci/**
707da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_019
708da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Flush -> Flush
709da853ecaSopenharmony_ci * @tc.desc      : interface depend check
710da853ecaSopenharmony_ci */
711da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_019, TestSize.Level2)
712da853ecaSopenharmony_ci{
713da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
714da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
715da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
716da853ecaSopenharmony_ci
717da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
718da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
719da853ecaSopenharmony_ci
720da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
721da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
722da853ecaSopenharmony_ci
723da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
724da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
725da853ecaSopenharmony_ci
726da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
727da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
728da853ecaSopenharmony_ci
729da853ecaSopenharmony_ci    ret = Start(encoderDemo);
730da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
731da853ecaSopenharmony_ci
732da853ecaSopenharmony_ci    ret = Flush(encoderDemo);
733da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
734da853ecaSopenharmony_ci
735da853ecaSopenharmony_ci    ret = Flush(encoderDemo);
736da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_INVALID_STATE, ret);
737da853ecaSopenharmony_ci
738da853ecaSopenharmony_ci    Destroy(encoderDemo);
739da853ecaSopenharmony_ci    delete encoderDemo;
740da853ecaSopenharmony_ci}
741da853ecaSopenharmony_ci
742da853ecaSopenharmony_ci/**
743da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_020
744da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Stop -> Flush
745da853ecaSopenharmony_ci * @tc.desc      : interface depend check
746da853ecaSopenharmony_ci */
747da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_020, TestSize.Level2)
748da853ecaSopenharmony_ci{
749da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
750da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
751da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
752da853ecaSopenharmony_ci
753da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
754da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
755da853ecaSopenharmony_ci
756da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
757da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
758da853ecaSopenharmony_ci
759da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
760da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
761da853ecaSopenharmony_ci
762da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
763da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
764da853ecaSopenharmony_ci
765da853ecaSopenharmony_ci    ret = Start(encoderDemo);
766da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
767da853ecaSopenharmony_ci
768da853ecaSopenharmony_ci    ret = Stop(encoderDemo);
769da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
770da853ecaSopenharmony_ci
771da853ecaSopenharmony_ci    ret = Flush(encoderDemo);
772da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_INVALID_STATE, ret);
773da853ecaSopenharmony_ci
774da853ecaSopenharmony_ci    Destroy(encoderDemo);
775da853ecaSopenharmony_ci    delete encoderDemo;
776da853ecaSopenharmony_ci}
777da853ecaSopenharmony_ci
778da853ecaSopenharmony_ci/**
779da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_021
780da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Reset -> Flush
781da853ecaSopenharmony_ci * @tc.desc      : interface depend check
782da853ecaSopenharmony_ci */
783da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_021, TestSize.Level2)
784da853ecaSopenharmony_ci{
785da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
786da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
787da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
788da853ecaSopenharmony_ci
789da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
790da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
791da853ecaSopenharmony_ci
792da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
793da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
794da853ecaSopenharmony_ci
795da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
796da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
797da853ecaSopenharmony_ci
798da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
799da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
800da853ecaSopenharmony_ci
801da853ecaSopenharmony_ci    ret = Start(encoderDemo);
802da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
803da853ecaSopenharmony_ci
804da853ecaSopenharmony_ci    ret = Stop(encoderDemo);
805da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
806da853ecaSopenharmony_ci
807da853ecaSopenharmony_ci    ret = Reset(encoderDemo);
808da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
809da853ecaSopenharmony_ci
810da853ecaSopenharmony_ci    ret = Flush(encoderDemo);
811da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_INVALID_STATE, ret);
812da853ecaSopenharmony_ci
813da853ecaSopenharmony_ci    Destroy(encoderDemo);
814da853ecaSopenharmony_ci    delete encoderDemo;
815da853ecaSopenharmony_ci}
816da853ecaSopenharmony_ci
817da853ecaSopenharmony_ci/**
818da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_022
819da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> stop
820da853ecaSopenharmony_ci * @tc.desc      : interface depend check
821da853ecaSopenharmony_ci */
822da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_022, TestSize.Level2)
823da853ecaSopenharmony_ci{
824da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
825da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
826da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
827da853ecaSopenharmony_ci
828da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
829da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
830da853ecaSopenharmony_ci
831da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
832da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
833da853ecaSopenharmony_ci
834da853ecaSopenharmony_ci    ret = Stop(encoderDemo);
835da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_INVALID_STATE, ret);
836da853ecaSopenharmony_ci
837da853ecaSopenharmony_ci    Destroy(encoderDemo);
838da853ecaSopenharmony_ci    delete encoderDemo;
839da853ecaSopenharmony_ci}
840da853ecaSopenharmony_ci
841da853ecaSopenharmony_ci/**
842da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_023
843da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Stop
844da853ecaSopenharmony_ci * @tc.desc      : interface depend check
845da853ecaSopenharmony_ci */
846da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_023, TestSize.Level2)
847da853ecaSopenharmony_ci{
848da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
849da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
850da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
851da853ecaSopenharmony_ci
852da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
853da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
854da853ecaSopenharmony_ci
855da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
856da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
857da853ecaSopenharmony_ci
858da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
859da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
860da853ecaSopenharmony_ci
861da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
862da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
863da853ecaSopenharmony_ci
864da853ecaSopenharmony_ci    ret = Stop(encoderDemo);
865da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_INVALID_STATE, ret);
866da853ecaSopenharmony_ci
867da853ecaSopenharmony_ci    Destroy(encoderDemo);
868da853ecaSopenharmony_ci    delete encoderDemo;
869da853ecaSopenharmony_ci}
870da853ecaSopenharmony_ci
871da853ecaSopenharmony_ci/**
872da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_024
873da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> QueueInputBuffer -> Stop
874da853ecaSopenharmony_ci * @tc.desc      : interface depend check
875da853ecaSopenharmony_ci */
876da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_024, TestSize.Level2)
877da853ecaSopenharmony_ci{
878da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
879da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
880da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
881da853ecaSopenharmony_ci
882da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
883da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
884da853ecaSopenharmony_ci
885da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
886da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
887da853ecaSopenharmony_ci
888da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
889da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
890da853ecaSopenharmony_ci
891da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
892da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
893da853ecaSopenharmony_ci
894da853ecaSopenharmony_ci    ret = Start(encoderDemo);
895da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
896da853ecaSopenharmony_ci
897da853ecaSopenharmony_ci    uint32_t index = encoderDemo->InnerGetInputIndex();
898da853ecaSopenharmony_ci
899da853ecaSopenharmony_ci    ret = QueueInputBuffer(encoderDemo, index);
900da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
901da853ecaSopenharmony_ci
902da853ecaSopenharmony_ci    ret = Stop(encoderDemo);
903da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
904da853ecaSopenharmony_ci
905da853ecaSopenharmony_ci    Destroy(encoderDemo);
906da853ecaSopenharmony_ci    delete encoderDemo;
907da853ecaSopenharmony_ci}
908da853ecaSopenharmony_ci
909da853ecaSopenharmony_ci/**
910da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_025
911da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Flush -> Stop
912da853ecaSopenharmony_ci * @tc.desc      : interface depend check
913da853ecaSopenharmony_ci */
914da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_025, TestSize.Level2)
915da853ecaSopenharmony_ci{
916da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
917da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
918da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
919da853ecaSopenharmony_ci
920da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
921da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
922da853ecaSopenharmony_ci
923da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
924da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
925da853ecaSopenharmony_ci
926da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
927da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
928da853ecaSopenharmony_ci
929da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
930da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
931da853ecaSopenharmony_ci
932da853ecaSopenharmony_ci    ret = Start(encoderDemo);
933da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
934da853ecaSopenharmony_ci
935da853ecaSopenharmony_ci    ret = Flush(encoderDemo);
936da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
937da853ecaSopenharmony_ci
938da853ecaSopenharmony_ci    ret = Stop(encoderDemo);
939da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
940da853ecaSopenharmony_ci
941da853ecaSopenharmony_ci    Destroy(encoderDemo);
942da853ecaSopenharmony_ci    delete encoderDemo;
943da853ecaSopenharmony_ci}
944da853ecaSopenharmony_ci
945da853ecaSopenharmony_ci/**
946da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_026
947da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Stop -> Stop
948da853ecaSopenharmony_ci * @tc.desc      : interface depend check
949da853ecaSopenharmony_ci */
950da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_026, TestSize.Level2)
951da853ecaSopenharmony_ci{
952da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
953da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
954da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
955da853ecaSopenharmony_ci
956da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
957da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
958da853ecaSopenharmony_ci
959da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
960da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
961da853ecaSopenharmony_ci
962da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
963da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
964da853ecaSopenharmony_ci
965da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
966da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
967da853ecaSopenharmony_ci
968da853ecaSopenharmony_ci    ret = Start(encoderDemo);
969da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
970da853ecaSopenharmony_ci
971da853ecaSopenharmony_ci    ret = Stop(encoderDemo);
972da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
973da853ecaSopenharmony_ci
974da853ecaSopenharmony_ci    ret = Stop(encoderDemo);
975da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_INVALID_STATE, ret);
976da853ecaSopenharmony_ci
977da853ecaSopenharmony_ci    Destroy(encoderDemo);
978da853ecaSopenharmony_ci    delete encoderDemo;
979da853ecaSopenharmony_ci}
980da853ecaSopenharmony_ci
981da853ecaSopenharmony_ci/**
982da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_027
983da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Stop -> Reset -> Stop
984da853ecaSopenharmony_ci * @tc.desc      : interface depend check
985da853ecaSopenharmony_ci */
986da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_027, TestSize.Level2)
987da853ecaSopenharmony_ci{
988da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
989da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
990da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
991da853ecaSopenharmony_ci
992da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
993da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
994da853ecaSopenharmony_ci
995da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
996da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
997da853ecaSopenharmony_ci
998da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
999da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1000da853ecaSopenharmony_ci
1001da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
1002da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1003da853ecaSopenharmony_ci
1004da853ecaSopenharmony_ci    ret = Start(encoderDemo);
1005da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1006da853ecaSopenharmony_ci
1007da853ecaSopenharmony_ci    ret = Stop(encoderDemo);
1008da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1009da853ecaSopenharmony_ci
1010da853ecaSopenharmony_ci    ret = Reset(encoderDemo);
1011da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1012da853ecaSopenharmony_ci
1013da853ecaSopenharmony_ci    ret = Stop(encoderDemo);
1014da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_INVALID_STATE, ret);
1015da853ecaSopenharmony_ci
1016da853ecaSopenharmony_ci    Destroy(encoderDemo);
1017da853ecaSopenharmony_ci    delete encoderDemo;
1018da853ecaSopenharmony_ci}
1019da853ecaSopenharmony_ci
1020da853ecaSopenharmony_ci/**
1021da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_028
1022da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Reset
1023da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1024da853ecaSopenharmony_ci */
1025da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_028, TestSize.Level2)
1026da853ecaSopenharmony_ci{
1027da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1028da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
1029da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1030da853ecaSopenharmony_ci
1031da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
1032da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
1033da853ecaSopenharmony_ci
1034da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
1035da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1036da853ecaSopenharmony_ci
1037da853ecaSopenharmony_ci    ret = Reset(encoderDemo);
1038da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1039da853ecaSopenharmony_ci
1040da853ecaSopenharmony_ci    Destroy(encoderDemo);
1041da853ecaSopenharmony_ci    delete encoderDemo;
1042da853ecaSopenharmony_ci}
1043da853ecaSopenharmony_ci
1044da853ecaSopenharmony_ci/**
1045da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_029
1046da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Reset
1047da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1048da853ecaSopenharmony_ci */
1049da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_029, TestSize.Level2)
1050da853ecaSopenharmony_ci{
1051da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1052da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
1053da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1054da853ecaSopenharmony_ci
1055da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
1056da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
1057da853ecaSopenharmony_ci
1058da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
1059da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1060da853ecaSopenharmony_ci
1061da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
1062da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1063da853ecaSopenharmony_ci
1064da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
1065da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1066da853ecaSopenharmony_ci
1067da853ecaSopenharmony_ci    ret = Reset(encoderDemo);
1068da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1069da853ecaSopenharmony_ci
1070da853ecaSopenharmony_ci    Destroy(encoderDemo);
1071da853ecaSopenharmony_ci    delete encoderDemo;
1072da853ecaSopenharmony_ci}
1073da853ecaSopenharmony_ci
1074da853ecaSopenharmony_ci/**
1075da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_030
1076da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Reset
1077da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1078da853ecaSopenharmony_ci */
1079da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_030, TestSize.Level2)
1080da853ecaSopenharmony_ci{
1081da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1082da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
1083da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1084da853ecaSopenharmony_ci
1085da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
1086da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
1087da853ecaSopenharmony_ci
1088da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
1089da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1090da853ecaSopenharmony_ci
1091da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
1092da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1093da853ecaSopenharmony_ci
1094da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
1095da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1096da853ecaSopenharmony_ci
1097da853ecaSopenharmony_ci    ret = Start(encoderDemo);
1098da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1099da853ecaSopenharmony_ci
1100da853ecaSopenharmony_ci    ret = Reset(encoderDemo);
1101da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1102da853ecaSopenharmony_ci
1103da853ecaSopenharmony_ci    Destroy(encoderDemo);
1104da853ecaSopenharmony_ci    delete encoderDemo;
1105da853ecaSopenharmony_ci}
1106da853ecaSopenharmony_ci
1107da853ecaSopenharmony_ci/**
1108da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_031
1109da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Stop -> Reset
1110da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1111da853ecaSopenharmony_ci */
1112da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_031, TestSize.Level2)
1113da853ecaSopenharmony_ci{
1114da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1115da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
1116da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1117da853ecaSopenharmony_ci
1118da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
1119da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
1120da853ecaSopenharmony_ci
1121da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
1122da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1123da853ecaSopenharmony_ci
1124da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
1125da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1126da853ecaSopenharmony_ci
1127da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
1128da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1129da853ecaSopenharmony_ci
1130da853ecaSopenharmony_ci    ret = Start(encoderDemo);
1131da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1132da853ecaSopenharmony_ci
1133da853ecaSopenharmony_ci    ret = Stop(encoderDemo);
1134da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1135da853ecaSopenharmony_ci
1136da853ecaSopenharmony_ci    ret = Reset(encoderDemo);
1137da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1138da853ecaSopenharmony_ci
1139da853ecaSopenharmony_ci    Destroy(encoderDemo);
1140da853ecaSopenharmony_ci    delete encoderDemo;
1141da853ecaSopenharmony_ci}
1142da853ecaSopenharmony_ci
1143da853ecaSopenharmony_ci/**
1144da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_032
1145da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> QueueInputBuffer -> Reset
1146da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1147da853ecaSopenharmony_ci */
1148da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_032, TestSize.Level2)
1149da853ecaSopenharmony_ci{
1150da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1151da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
1152da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1153da853ecaSopenharmony_ci
1154da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
1155da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
1156da853ecaSopenharmony_ci
1157da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
1158da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1159da853ecaSopenharmony_ci
1160da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
1161da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1162da853ecaSopenharmony_ci
1163da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
1164da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1165da853ecaSopenharmony_ci
1166da853ecaSopenharmony_ci    ret = Start(encoderDemo);
1167da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1168da853ecaSopenharmony_ci
1169da853ecaSopenharmony_ci    uint32_t index = encoderDemo->InnerGetInputIndex();
1170da853ecaSopenharmony_ci
1171da853ecaSopenharmony_ci    ret = QueueInputBuffer(encoderDemo, index);
1172da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1173da853ecaSopenharmony_ci
1174da853ecaSopenharmony_ci    ret = Reset(encoderDemo);
1175da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1176da853ecaSopenharmony_ci
1177da853ecaSopenharmony_ci    Destroy(encoderDemo);
1178da853ecaSopenharmony_ci    delete encoderDemo;
1179da853ecaSopenharmony_ci}
1180da853ecaSopenharmony_ci
1181da853ecaSopenharmony_ci/**
1182da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_033
1183da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Flush -> Reset
1184da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1185da853ecaSopenharmony_ci */
1186da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_033, TestSize.Level2)
1187da853ecaSopenharmony_ci{
1188da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1189da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
1190da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1191da853ecaSopenharmony_ci
1192da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
1193da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
1194da853ecaSopenharmony_ci
1195da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
1196da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1197da853ecaSopenharmony_ci
1198da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
1199da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1200da853ecaSopenharmony_ci
1201da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
1202da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1203da853ecaSopenharmony_ci
1204da853ecaSopenharmony_ci    ret = Start(encoderDemo);
1205da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1206da853ecaSopenharmony_ci
1207da853ecaSopenharmony_ci    ret = Flush(encoderDemo);
1208da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1209da853ecaSopenharmony_ci
1210da853ecaSopenharmony_ci    ret = Reset(encoderDemo);
1211da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1212da853ecaSopenharmony_ci
1213da853ecaSopenharmony_ci    Destroy(encoderDemo);
1214da853ecaSopenharmony_ci    delete encoderDemo;
1215da853ecaSopenharmony_ci}
1216da853ecaSopenharmony_ci
1217da853ecaSopenharmony_ci/**
1218da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_034
1219da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Stop -> Reset -> Reset
1220da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1221da853ecaSopenharmony_ci */
1222da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_034, TestSize.Level2)
1223da853ecaSopenharmony_ci{
1224da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1225da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
1226da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1227da853ecaSopenharmony_ci
1228da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
1229da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
1230da853ecaSopenharmony_ci
1231da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
1232da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1233da853ecaSopenharmony_ci
1234da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
1235da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1236da853ecaSopenharmony_ci
1237da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
1238da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1239da853ecaSopenharmony_ci
1240da853ecaSopenharmony_ci    ret = Start(encoderDemo);
1241da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1242da853ecaSopenharmony_ci
1243da853ecaSopenharmony_ci    ret = Stop(encoderDemo);
1244da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1245da853ecaSopenharmony_ci
1246da853ecaSopenharmony_ci    ret = Reset(encoderDemo);
1247da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1248da853ecaSopenharmony_ci
1249da853ecaSopenharmony_ci    ret = Reset(encoderDemo);
1250da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1251da853ecaSopenharmony_ci
1252da853ecaSopenharmony_ci    Destroy(encoderDemo);
1253da853ecaSopenharmony_ci    delete encoderDemo;
1254da853ecaSopenharmony_ci}
1255da853ecaSopenharmony_ci
1256da853ecaSopenharmony_ci/**
1257da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_035
1258da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Destroy
1259da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1260da853ecaSopenharmony_ci */
1261da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_035, TestSize.Level2)
1262da853ecaSopenharmony_ci{
1263da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1264da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
1265da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1266da853ecaSopenharmony_ci
1267da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
1268da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
1269da853ecaSopenharmony_ci
1270da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
1271da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1272da853ecaSopenharmony_ci
1273da853ecaSopenharmony_ci    ret = Destroy(encoderDemo);
1274da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1275da853ecaSopenharmony_ci
1276da853ecaSopenharmony_ci    delete encoderDemo;
1277da853ecaSopenharmony_ci}
1278da853ecaSopenharmony_ci
1279da853ecaSopenharmony_ci/**
1280da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_036
1281da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Destroy
1282da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1283da853ecaSopenharmony_ci */
1284da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_036, TestSize.Level2)
1285da853ecaSopenharmony_ci{
1286da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1287da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
1288da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1289da853ecaSopenharmony_ci
1290da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
1291da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
1292da853ecaSopenharmony_ci
1293da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
1294da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1295da853ecaSopenharmony_ci
1296da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
1297da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1298da853ecaSopenharmony_ci
1299da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
1300da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1301da853ecaSopenharmony_ci
1302da853ecaSopenharmony_ci    ret = Destroy(encoderDemo);
1303da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1304da853ecaSopenharmony_ci
1305da853ecaSopenharmony_ci    delete encoderDemo;
1306da853ecaSopenharmony_ci}
1307da853ecaSopenharmony_ci
1308da853ecaSopenharmony_ci/**
1309da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_037
1310da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Destroy
1311da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1312da853ecaSopenharmony_ci */
1313da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_037, TestSize.Level2)
1314da853ecaSopenharmony_ci{
1315da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1316da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
1317da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1318da853ecaSopenharmony_ci
1319da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
1320da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
1321da853ecaSopenharmony_ci
1322da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
1323da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1324da853ecaSopenharmony_ci
1325da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
1326da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1327da853ecaSopenharmony_ci
1328da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
1329da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1330da853ecaSopenharmony_ci
1331da853ecaSopenharmony_ci    ret = Start(encoderDemo);
1332da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1333da853ecaSopenharmony_ci
1334da853ecaSopenharmony_ci    ret = Destroy(encoderDemo);
1335da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1336da853ecaSopenharmony_ci    delete encoderDemo;
1337da853ecaSopenharmony_ci}
1338da853ecaSopenharmony_ci
1339da853ecaSopenharmony_ci/**
1340da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_038
1341da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> QueueInputBuffer -> Destroy
1342da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1343da853ecaSopenharmony_ci */
1344da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_038, TestSize.Level2)
1345da853ecaSopenharmony_ci{
1346da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1347da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
1348da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1349da853ecaSopenharmony_ci
1350da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
1351da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
1352da853ecaSopenharmony_ci
1353da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
1354da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1355da853ecaSopenharmony_ci
1356da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
1357da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1358da853ecaSopenharmony_ci
1359da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
1360da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1361da853ecaSopenharmony_ci
1362da853ecaSopenharmony_ci    ret = Start(encoderDemo);
1363da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1364da853ecaSopenharmony_ci
1365da853ecaSopenharmony_ci    uint32_t index = encoderDemo->InnerGetInputIndex();
1366da853ecaSopenharmony_ci
1367da853ecaSopenharmony_ci    ret = QueueInputBuffer(encoderDemo, index);
1368da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1369da853ecaSopenharmony_ci
1370da853ecaSopenharmony_ci    ret = Destroy(encoderDemo);
1371da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1372da853ecaSopenharmony_ci    delete encoderDemo;
1373da853ecaSopenharmony_ci}
1374da853ecaSopenharmony_ci
1375da853ecaSopenharmony_ci/**
1376da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_039
1377da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Flush -> Destroy
1378da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1379da853ecaSopenharmony_ci */
1380da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_039, TestSize.Level2)
1381da853ecaSopenharmony_ci{
1382da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1383da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
1384da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1385da853ecaSopenharmony_ci
1386da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
1387da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
1388da853ecaSopenharmony_ci
1389da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
1390da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1391da853ecaSopenharmony_ci
1392da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
1393da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1394da853ecaSopenharmony_ci
1395da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
1396da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1397da853ecaSopenharmony_ci
1398da853ecaSopenharmony_ci    ret = Start(encoderDemo);
1399da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1400da853ecaSopenharmony_ci
1401da853ecaSopenharmony_ci    ret = Flush(encoderDemo);
1402da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1403da853ecaSopenharmony_ci
1404da853ecaSopenharmony_ci    ret = Destroy(encoderDemo);
1405da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1406da853ecaSopenharmony_ci    delete encoderDemo;
1407da853ecaSopenharmony_ci}
1408da853ecaSopenharmony_ci
1409da853ecaSopenharmony_ci/**
1410da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_040
1411da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Stop -> Destroy
1412da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1413da853ecaSopenharmony_ci */
1414da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_040, TestSize.Level2)
1415da853ecaSopenharmony_ci{
1416da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1417da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
1418da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1419da853ecaSopenharmony_ci
1420da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
1421da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
1422da853ecaSopenharmony_ci
1423da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
1424da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1425da853ecaSopenharmony_ci
1426da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
1427da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1428da853ecaSopenharmony_ci
1429da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
1430da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1431da853ecaSopenharmony_ci
1432da853ecaSopenharmony_ci    ret = Start(encoderDemo);
1433da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1434da853ecaSopenharmony_ci
1435da853ecaSopenharmony_ci    ret = Stop(encoderDemo);
1436da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1437da853ecaSopenharmony_ci
1438da853ecaSopenharmony_ci    ret = Destroy(encoderDemo);
1439da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1440da853ecaSopenharmony_ci    delete encoderDemo;
1441da853ecaSopenharmony_ci}
1442da853ecaSopenharmony_ci
1443da853ecaSopenharmony_ci/**
1444da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_041
1445da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Stop -> Reset -> Destroy
1446da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1447da853ecaSopenharmony_ci */
1448da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_041, TestSize.Level2)
1449da853ecaSopenharmony_ci{
1450da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1451da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
1452da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1453da853ecaSopenharmony_ci
1454da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
1455da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
1456da853ecaSopenharmony_ci
1457da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
1458da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1459da853ecaSopenharmony_ci
1460da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
1461da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1462da853ecaSopenharmony_ci
1463da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
1464da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1465da853ecaSopenharmony_ci
1466da853ecaSopenharmony_ci    ret = Start(encoderDemo);
1467da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1468da853ecaSopenharmony_ci
1469da853ecaSopenharmony_ci    ret = Stop(encoderDemo);
1470da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1471da853ecaSopenharmony_ci
1472da853ecaSopenharmony_ci    ret = Reset(encoderDemo);
1473da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1474da853ecaSopenharmony_ci
1475da853ecaSopenharmony_ci    ret = Destroy(encoderDemo);
1476da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1477da853ecaSopenharmony_ci    delete encoderDemo;
1478da853ecaSopenharmony_ci}
1479da853ecaSopenharmony_ci
1480da853ecaSopenharmony_ci/**
1481da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_042
1482da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> QueueInputBuffer
1483da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1484da853ecaSopenharmony_ci */
1485da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_042, TestSize.Level2)
1486da853ecaSopenharmony_ci{
1487da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1488da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
1489da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1490da853ecaSopenharmony_ci
1491da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
1492da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
1493da853ecaSopenharmony_ci
1494da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
1495da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1496da853ecaSopenharmony_ci
1497da853ecaSopenharmony_ci    uint32_t index = 0;
1498da853ecaSopenharmony_ci    ret = QueueInputBuffer(encoderDemo, index);
1499da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_INVALID_STATE, ret);
1500da853ecaSopenharmony_ci
1501da853ecaSopenharmony_ci    Destroy(encoderDemo);
1502da853ecaSopenharmony_ci    delete encoderDemo;
1503da853ecaSopenharmony_ci}
1504da853ecaSopenharmony_ci
1505da853ecaSopenharmony_ci/**
1506da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_043
1507da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> QueueInputBuffer
1508da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1509da853ecaSopenharmony_ci */
1510da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_043, TestSize.Level2)
1511da853ecaSopenharmony_ci{
1512da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1513da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
1514da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1515da853ecaSopenharmony_ci
1516da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
1517da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
1518da853ecaSopenharmony_ci
1519da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
1520da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1521da853ecaSopenharmony_ci
1522da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
1523da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1524da853ecaSopenharmony_ci
1525da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
1526da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1527da853ecaSopenharmony_ci
1528da853ecaSopenharmony_ci    uint32_t index = 0;
1529da853ecaSopenharmony_ci    ret = QueueInputBuffer(encoderDemo, index);
1530da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_INVALID_STATE, ret);
1531da853ecaSopenharmony_ci
1532da853ecaSopenharmony_ci    Destroy(encoderDemo);
1533da853ecaSopenharmony_ci    delete encoderDemo;
1534da853ecaSopenharmony_ci}
1535da853ecaSopenharmony_ci
1536da853ecaSopenharmony_ci/**
1537da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_044
1538da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> QueueInputBuffer
1539da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1540da853ecaSopenharmony_ci */
1541da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_044, TestSize.Level2)
1542da853ecaSopenharmony_ci{
1543da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1544da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
1545da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1546da853ecaSopenharmony_ci
1547da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
1548da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
1549da853ecaSopenharmony_ci
1550da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
1551da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1552da853ecaSopenharmony_ci
1553da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
1554da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1555da853ecaSopenharmony_ci
1556da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
1557da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1558da853ecaSopenharmony_ci
1559da853ecaSopenharmony_ci    ret = Start(encoderDemo);
1560da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1561da853ecaSopenharmony_ci
1562da853ecaSopenharmony_ci    uint32_t index = encoderDemo->InnerGetInputIndex();
1563da853ecaSopenharmony_ci    ret = QueueInputBuffer(encoderDemo, index);
1564da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1565da853ecaSopenharmony_ci
1566da853ecaSopenharmony_ci    Destroy(encoderDemo);
1567da853ecaSopenharmony_ci    delete encoderDemo;
1568da853ecaSopenharmony_ci}
1569da853ecaSopenharmony_ci
1570da853ecaSopenharmony_ci/**
1571da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_045
1572da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> QueueInputBuffer -> QueueInputBuffer
1573da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1574da853ecaSopenharmony_ci */
1575da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_045, TestSize.Level2)
1576da853ecaSopenharmony_ci{
1577da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1578da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
1579da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1580da853ecaSopenharmony_ci
1581da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
1582da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
1583da853ecaSopenharmony_ci
1584da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
1585da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1586da853ecaSopenharmony_ci
1587da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
1588da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1589da853ecaSopenharmony_ci
1590da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
1591da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1592da853ecaSopenharmony_ci
1593da853ecaSopenharmony_ci    ret = Start(encoderDemo);
1594da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1595da853ecaSopenharmony_ci
1596da853ecaSopenharmony_ci    uint32_t index = encoderDemo->InnerGetInputIndex();
1597da853ecaSopenharmony_ci    ret = QueueInputBuffer(encoderDemo, index);
1598da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1599da853ecaSopenharmony_ci
1600da853ecaSopenharmony_ci    index = encoderDemo->InnerGetInputIndex();
1601da853ecaSopenharmony_ci    ret = QueueInputBuffer(encoderDemo, index);
1602da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1603da853ecaSopenharmony_ci
1604da853ecaSopenharmony_ci    Destroy(encoderDemo);
1605da853ecaSopenharmony_ci    delete encoderDemo;
1606da853ecaSopenharmony_ci}
1607da853ecaSopenharmony_ci
1608da853ecaSopenharmony_ci/**
1609da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_046
1610da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Flush -> QueueInputBuffer
1611da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1612da853ecaSopenharmony_ci */
1613da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_046, TestSize.Level2)
1614da853ecaSopenharmony_ci{
1615da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1616da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
1617da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1618da853ecaSopenharmony_ci
1619da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
1620da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
1621da853ecaSopenharmony_ci
1622da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
1623da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1624da853ecaSopenharmony_ci
1625da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
1626da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1627da853ecaSopenharmony_ci
1628da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
1629da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1630da853ecaSopenharmony_ci
1631da853ecaSopenharmony_ci    ret = Start(encoderDemo);
1632da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1633da853ecaSopenharmony_ci
1634da853ecaSopenharmony_ci    ret = Flush(encoderDemo);
1635da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1636da853ecaSopenharmony_ci
1637da853ecaSopenharmony_ci    uint32_t index = 0;
1638da853ecaSopenharmony_ci    ret = QueueInputBuffer(encoderDemo, index);
1639da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_INVALID_STATE, ret);
1640da853ecaSopenharmony_ci
1641da853ecaSopenharmony_ci    Destroy(encoderDemo);
1642da853ecaSopenharmony_ci    delete encoderDemo;
1643da853ecaSopenharmony_ci}
1644da853ecaSopenharmony_ci
1645da853ecaSopenharmony_ci/**
1646da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_047
1647da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Flush -> Start -> QueueInputBuffer
1648da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1649da853ecaSopenharmony_ci */
1650da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_047, TestSize.Level2)
1651da853ecaSopenharmony_ci{
1652da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1653da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
1654da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1655da853ecaSopenharmony_ci
1656da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
1657da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
1658da853ecaSopenharmony_ci
1659da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
1660da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1661da853ecaSopenharmony_ci
1662da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
1663da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1664da853ecaSopenharmony_ci
1665da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
1666da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1667da853ecaSopenharmony_ci
1668da853ecaSopenharmony_ci    ret = Start(encoderDemo);
1669da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1670da853ecaSopenharmony_ci
1671da853ecaSopenharmony_ci    ret = Flush(encoderDemo);
1672da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1673da853ecaSopenharmony_ci
1674da853ecaSopenharmony_ci    ret = Start(encoderDemo);
1675da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1676da853ecaSopenharmony_ci
1677da853ecaSopenharmony_ci    uint32_t index = encoderDemo->InnerGetInputIndex();
1678da853ecaSopenharmony_ci    ret = QueueInputBuffer(encoderDemo, index);
1679da853ecaSopenharmony_ci    ASSERT_EQ(0, ret);
1680da853ecaSopenharmony_ci
1681da853ecaSopenharmony_ci    Destroy(encoderDemo);
1682da853ecaSopenharmony_ci    delete encoderDemo;
1683da853ecaSopenharmony_ci}
1684da853ecaSopenharmony_ci
1685da853ecaSopenharmony_ci/**
1686da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_048
1687da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Stop -> QueueInputBuffer
1688da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1689da853ecaSopenharmony_ci */
1690da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_048, TestSize.Level2)
1691da853ecaSopenharmony_ci{
1692da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1693da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
1694da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1695da853ecaSopenharmony_ci
1696da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
1697da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
1698da853ecaSopenharmony_ci
1699da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
1700da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1701da853ecaSopenharmony_ci
1702da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
1703da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1704da853ecaSopenharmony_ci
1705da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
1706da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1707da853ecaSopenharmony_ci
1708da853ecaSopenharmony_ci    ret = Start(encoderDemo);
1709da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1710da853ecaSopenharmony_ci
1711da853ecaSopenharmony_ci    ret = Stop(encoderDemo);
1712da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1713da853ecaSopenharmony_ci
1714da853ecaSopenharmony_ci    uint32_t index = 0;
1715da853ecaSopenharmony_ci    ret = QueueInputBuffer(encoderDemo, index);
1716da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_INVALID_STATE, ret);
1717da853ecaSopenharmony_ci
1718da853ecaSopenharmony_ci    Destroy(encoderDemo);
1719da853ecaSopenharmony_ci    delete encoderDemo;
1720da853ecaSopenharmony_ci}
1721da853ecaSopenharmony_ci
1722da853ecaSopenharmony_ci/**
1723da853ecaSopenharmony_ci * @tc.number    : SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_049
1724da853ecaSopenharmony_ci * @tc.name      : Create -> SetCallback -> Configure -> Prepare -> Start -> Stop -> Reset -> QueueInputBuffer
1725da853ecaSopenharmony_ci * @tc.desc      : interface depend check
1726da853ecaSopenharmony_ci */
1727da853ecaSopenharmony_ciHWTEST_F(InnerInterfaceDependCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_INTERFACE_DEPEND_CHECK_049, TestSize.Level2)
1728da853ecaSopenharmony_ci{
1729da853ecaSopenharmony_ci    AudioEncoderDemo *encoderDemo = new AudioEncoderDemo();
1730da853ecaSopenharmony_ci    int32_t ret = Create(encoderDemo);
1731da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1732da853ecaSopenharmony_ci
1733da853ecaSopenharmony_ci    std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal();
1734da853ecaSopenharmony_ci    std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_);
1735da853ecaSopenharmony_ci
1736da853ecaSopenharmony_ci    ret = SetCallback(encoderDemo, cb_);
1737da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1738da853ecaSopenharmony_ci
1739da853ecaSopenharmony_ci    ret = Configure(encoderDemo);
1740da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1741da853ecaSopenharmony_ci
1742da853ecaSopenharmony_ci    ret = Prepare(encoderDemo);
1743da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1744da853ecaSopenharmony_ci
1745da853ecaSopenharmony_ci    ret = Start(encoderDemo);
1746da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1747da853ecaSopenharmony_ci
1748da853ecaSopenharmony_ci    ret = Stop(encoderDemo);
1749da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1750da853ecaSopenharmony_ci
1751da853ecaSopenharmony_ci    ret = Reset(encoderDemo);
1752da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_OK, ret);
1753da853ecaSopenharmony_ci
1754da853ecaSopenharmony_ci    uint32_t index = 0;
1755da853ecaSopenharmony_ci    ret = QueueInputBuffer(encoderDemo, index);
1756da853ecaSopenharmony_ci    ASSERT_EQ(AVCS_ERR_INVALID_STATE, ret);
1757da853ecaSopenharmony_ci
1758da853ecaSopenharmony_ci    Destroy(encoderDemo);
1759da853ecaSopenharmony_ci    delete encoderDemo;
1760da853ecaSopenharmony_ci}
1761