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