1da853ecaSopenharmony_ci/* 2da853ecaSopenharmony_ci * Copyright (C) 2022 Huawei Device Co., Ltd. 3da853ecaSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4da853ecaSopenharmony_ci * you may not use this file except in compliance with the License. 5da853ecaSopenharmony_ci * You may obtain a copy of the License at 6da853ecaSopenharmony_ci * 7da853ecaSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8da853ecaSopenharmony_ci * 9da853ecaSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10da853ecaSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11da853ecaSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12da853ecaSopenharmony_ci * See the License for the specific language governing permissions and 13da853ecaSopenharmony_ci * limitations under the License. 14da853ecaSopenharmony_ci */ 15da853ecaSopenharmony_ci 16da853ecaSopenharmony_ci#include <string> 17da853ecaSopenharmony_ci#include "gtest/gtest.h" 18da853ecaSopenharmony_ci#include "AudioEncoderDemoCommon.h" 19da853ecaSopenharmony_ci#include "avcodec_info.h" 20da853ecaSopenharmony_ci#include "avcodec_errors.h" 21da853ecaSopenharmony_ci#include "media_description.h" 22da853ecaSopenharmony_ci#include "av_common.h" 23da853ecaSopenharmony_ci#include "meta/format.h" 24da853ecaSopenharmony_ci#include "avcodec_audio_common.h" 25da853ecaSopenharmony_ci 26da853ecaSopenharmony_ciusing namespace std; 27da853ecaSopenharmony_ciusing namespace testing::ext; 28da853ecaSopenharmony_ciusing namespace OHOS; 29da853ecaSopenharmony_ciusing namespace OHOS::MediaAVCodec; 30da853ecaSopenharmony_ciconstexpr uint32_t SAMPLE_RATE_44100 = 44100; 31da853ecaSopenharmony_ciconstexpr int64_t BIT_RATE_112000 = 112000; 32da853ecaSopenharmony_ci 33da853ecaSopenharmony_cinamespace { 34da853ecaSopenharmony_ciclass InnerParamCheckTest : public testing::Test { 35da853ecaSopenharmony_cipublic: 36da853ecaSopenharmony_ci static void SetUpTestCase(); 37da853ecaSopenharmony_ci static void TearDownTestCase(); 38da853ecaSopenharmony_ci void SetUp() override; 39da853ecaSopenharmony_ci void TearDown() override; 40da853ecaSopenharmony_ci}; 41da853ecaSopenharmony_ci 42da853ecaSopenharmony_civoid InnerParamCheckTest::SetUpTestCase() {} 43da853ecaSopenharmony_civoid InnerParamCheckTest::TearDownTestCase() {} 44da853ecaSopenharmony_civoid InnerParamCheckTest::SetUp() {} 45da853ecaSopenharmony_civoid InnerParamCheckTest::TearDown() {} 46da853ecaSopenharmony_ci} // namespace 47da853ecaSopenharmony_ci 48da853ecaSopenharmony_ci/** 49da853ecaSopenharmony_ci * @tc.number : SUB_MULTIMEDIA_AUDIO_ENCODER_PARAM_CHECK_001 50da853ecaSopenharmony_ci * @tc.name : InnerCreateByMime 51da853ecaSopenharmony_ci * @tc.desc : param check test 52da853ecaSopenharmony_ci */ 53da853ecaSopenharmony_ciHWTEST_F(InnerParamCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_PARAM_CHECK_001, TestSize.Level2) 54da853ecaSopenharmony_ci{ 55da853ecaSopenharmony_ci AudioEncoderDemo *encoderDemo = new AudioEncoderDemo(); 56da853ecaSopenharmony_ci 57da853ecaSopenharmony_ci int32_t ret = encoderDemo->InnerCreateByMime("audio/mp4a-latm"); 58da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 59da853ecaSopenharmony_ci encoderDemo->InnerDestroy(); 60da853ecaSopenharmony_ci 61da853ecaSopenharmony_ci ret = encoderDemo->InnerCreateByMime("audio/flac"); 62da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 63da853ecaSopenharmony_ci encoderDemo->InnerDestroy(); 64da853ecaSopenharmony_ci 65da853ecaSopenharmony_ci ret = encoderDemo->InnerCreateByMime("aaa"); 66da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_INVALID_OPERATION, ret); 67da853ecaSopenharmony_ci encoderDemo->InnerDestroy(); 68da853ecaSopenharmony_ci 69da853ecaSopenharmony_ci delete encoderDemo; 70da853ecaSopenharmony_ci} 71da853ecaSopenharmony_ci 72da853ecaSopenharmony_ci/** 73da853ecaSopenharmony_ci * @tc.number : SUB_MULTIMEDIA_AUDIO_ENCODER_PARAM_CHECK_002 74da853ecaSopenharmony_ci * @tc.name : InnerCreateByName 75da853ecaSopenharmony_ci * @tc.desc : param check test 76da853ecaSopenharmony_ci */ 77da853ecaSopenharmony_ciHWTEST_F(InnerParamCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_PARAM_CHECK_002, TestSize.Level2) 78da853ecaSopenharmony_ci{ 79da853ecaSopenharmony_ci AudioEncoderDemo *encoderDemo = new AudioEncoderDemo(); 80da853ecaSopenharmony_ci 81da853ecaSopenharmony_ci int32_t ret = encoderDemo->InnerCreateByName("OH.Media.Codec.Encoder.Audio.AAC"); 82da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 83da853ecaSopenharmony_ci encoderDemo->InnerDestroy(); 84da853ecaSopenharmony_ci 85da853ecaSopenharmony_ci ret = encoderDemo->InnerCreateByName("OH.Media.Codec.Encoder.Audio.Flac"); 86da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 87da853ecaSopenharmony_ci encoderDemo->InnerDestroy(); 88da853ecaSopenharmony_ci 89da853ecaSopenharmony_ci ret = encoderDemo->InnerCreateByName("aaa"); 90da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_INVALID_OPERATION, ret); 91da853ecaSopenharmony_ci encoderDemo->InnerDestroy(); 92da853ecaSopenharmony_ci 93da853ecaSopenharmony_ci delete encoderDemo; 94da853ecaSopenharmony_ci} 95da853ecaSopenharmony_ci 96da853ecaSopenharmony_ci/** 97da853ecaSopenharmony_ci * @tc.number : SUB_MULTIMEDIA_AUDIO_ENCODER_PARAM_CHECK_003 98da853ecaSopenharmony_ci * @tc.name : InnerConfigure - MD_KEY_BITRATE 99da853ecaSopenharmony_ci * @tc.desc : param check test 100da853ecaSopenharmony_ci */ 101da853ecaSopenharmony_ciHWTEST_F(InnerParamCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_PARAM_CHECK_003, TestSize.Level2) 102da853ecaSopenharmony_ci{ 103da853ecaSopenharmony_ci AudioEncoderDemo *encoderDemo = new AudioEncoderDemo(); 104da853ecaSopenharmony_ci 105da853ecaSopenharmony_ci int32_t ret = encoderDemo->InnerCreateByName("OH.Media.Codec.Encoder.Audio.AAC"); 106da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 107da853ecaSopenharmony_ci Format audioParams; 108da853ecaSopenharmony_ci 109da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, 1); 110da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, SAMPLE_RATE_44100); 111da853ecaSopenharmony_ci audioParams.PutLongValue(MediaDescriptionKey::MD_KEY_BITRATE, BIT_RATE_112000); 112da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_BITS_PER_CODED_SAMPLE, AudioSampleFormat::SAMPLE_F32LE); 113da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, AudioSampleFormat::SAMPLE_F32LE); 114da853ecaSopenharmony_ci audioParams.PutLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, MONO); 115da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_AAC_IS_ADTS, 1); 116da853ecaSopenharmony_ci 117da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 118da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 119da853ecaSopenharmony_ci 120da853ecaSopenharmony_ci encoderDemo->InnerReset(); 121da853ecaSopenharmony_ci audioParams.PutLongValue(MediaDescriptionKey::MD_KEY_BITRATE, -1); 122da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 123da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_UNSUPPORT_AUD_PARAMS, ret); 124da853ecaSopenharmony_ci 125da853ecaSopenharmony_ci encoderDemo->InnerReset(); 126da853ecaSopenharmony_ci audioParams.PutFloatValue(MediaDescriptionKey::MD_KEY_BITRATE, 0.1); 127da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 128da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_UNSUPPORT_AUD_PARAMS, ret); 129da853ecaSopenharmony_ci 130da853ecaSopenharmony_ci encoderDemo->InnerReset(); 131da853ecaSopenharmony_ci audioParams.PutDoubleValue(MediaDescriptionKey::MD_KEY_BITRATE, 0.1); 132da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 133da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_UNSUPPORT_AUD_PARAMS, ret); 134da853ecaSopenharmony_ci 135da853ecaSopenharmony_ci encoderDemo->InnerReset(); 136da853ecaSopenharmony_ci uint8_t b[100]; 137da853ecaSopenharmony_ci audioParams.PutBuffer(MediaDescriptionKey::MD_KEY_BITRATE, b, 100); 138da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 139da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_UNSUPPORT_AUD_PARAMS, ret); 140da853ecaSopenharmony_ci 141da853ecaSopenharmony_ci encoderDemo->InnerDestroy(); 142da853ecaSopenharmony_ci delete encoderDemo; 143da853ecaSopenharmony_ci} 144da853ecaSopenharmony_ci 145da853ecaSopenharmony_ci/** 146da853ecaSopenharmony_ci * @tc.number : SUB_MULTIMEDIA_AUDIO_ENCODER_PARAM_CHECK_004 147da853ecaSopenharmony_ci * @tc.name : InnerConfigure - MD_KEY_BITS_PER_CODED_SAMPLE 148da853ecaSopenharmony_ci * @tc.desc : param check test 149da853ecaSopenharmony_ci */ 150da853ecaSopenharmony_ciHWTEST_F(InnerParamCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_PARAM_CHECK_004, TestSize.Level2) 151da853ecaSopenharmony_ci{ 152da853ecaSopenharmony_ci AudioEncoderDemo *encoderDemo = new AudioEncoderDemo(); 153da853ecaSopenharmony_ci 154da853ecaSopenharmony_ci int32_t ret = encoderDemo->InnerCreateByName("OH.Media.Codec.Encoder.Audio.AAC"); 155da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 156da853ecaSopenharmony_ci 157da853ecaSopenharmony_ci Format audioParams; 158da853ecaSopenharmony_ci 159da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, 1); 160da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, SAMPLE_RATE_44100); 161da853ecaSopenharmony_ci audioParams.PutLongValue(MediaDescriptionKey::MD_KEY_BITRATE, BIT_RATE_112000); 162da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_BITS_PER_CODED_SAMPLE, AudioSampleFormat::SAMPLE_F32LE); 163da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, AudioSampleFormat::SAMPLE_F32LE); 164da853ecaSopenharmony_ci audioParams.PutLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, MONO); 165da853ecaSopenharmony_ci 166da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 167da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 168da853ecaSopenharmony_ci encoderDemo->InnerReset(); 169da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_BITS_PER_CODED_SAMPLE, -1); 170da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 171da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 172da853ecaSopenharmony_ci encoderDemo->InnerReset(); 173da853ecaSopenharmony_ci audioParams.PutStringValue(MediaDescriptionKey::MD_KEY_BITS_PER_CODED_SAMPLE, "aaaaaa"); 174da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 175da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 176da853ecaSopenharmony_ci encoderDemo->InnerReset(); 177da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_BITS_PER_CODED_SAMPLE, 0); 178da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 179da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 180da853ecaSopenharmony_ci encoderDemo->InnerReset(); 181da853ecaSopenharmony_ci audioParams.PutLongValue(MediaDescriptionKey::MD_KEY_BITS_PER_CODED_SAMPLE, 0); 182da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 183da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 184da853ecaSopenharmony_ci encoderDemo->InnerReset(); 185da853ecaSopenharmony_ci audioParams.PutFloatValue(MediaDescriptionKey::MD_KEY_BITS_PER_CODED_SAMPLE, 0.1); 186da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 187da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 188da853ecaSopenharmony_ci encoderDemo->InnerReset(); 189da853ecaSopenharmony_ci audioParams.PutDoubleValue(MediaDescriptionKey::MD_KEY_BITS_PER_CODED_SAMPLE, 0.1); 190da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 191da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 192da853ecaSopenharmony_ci encoderDemo->InnerReset(); 193da853ecaSopenharmony_ci uint8_t b[100]; 194da853ecaSopenharmony_ci audioParams.PutBuffer(MediaDescriptionKey::MD_KEY_BITS_PER_CODED_SAMPLE, b, 100); 195da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 196da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 197da853ecaSopenharmony_ci encoderDemo->InnerReset(); 198da853ecaSopenharmony_ci encoderDemo->InnerDestroy(); 199da853ecaSopenharmony_ci 200da853ecaSopenharmony_ci delete encoderDemo; 201da853ecaSopenharmony_ci} 202da853ecaSopenharmony_ci 203da853ecaSopenharmony_ci/** 204da853ecaSopenharmony_ci * @tc.number : SUB_MULTIMEDIA_AUDIO_ENCODER_PARAM_CHECK_005 205da853ecaSopenharmony_ci * @tc.name : InnerConfigure - MD_KEY_AUDIO_SAMPLE_FORMAT 206da853ecaSopenharmony_ci * @tc.desc : param check test 207da853ecaSopenharmony_ci */ 208da853ecaSopenharmony_ciHWTEST_F(InnerParamCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_PARAM_CHECK_005, TestSize.Level2) 209da853ecaSopenharmony_ci{ 210da853ecaSopenharmony_ci AudioEncoderDemo *encoderDemo = new AudioEncoderDemo(); 211da853ecaSopenharmony_ci 212da853ecaSopenharmony_ci int32_t ret = encoderDemo->InnerCreateByName("OH.Media.Codec.Encoder.Audio.AAC"); 213da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 214da853ecaSopenharmony_ci 215da853ecaSopenharmony_ci Format audioParams; 216da853ecaSopenharmony_ci 217da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, 1); 218da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, SAMPLE_RATE_44100); 219da853ecaSopenharmony_ci audioParams.PutLongValue(MediaDescriptionKey::MD_KEY_BITRATE, BIT_RATE_112000); 220da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_BITS_PER_CODED_SAMPLE, AudioSampleFormat::SAMPLE_F32LE); 221da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, AudioSampleFormat::SAMPLE_F32LE); 222da853ecaSopenharmony_ci audioParams.PutLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, MONO); 223da853ecaSopenharmony_ci 224da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 225da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 226da853ecaSopenharmony_ci encoderDemo->InnerReset(); 227da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, -1); 228da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 229da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_UNSUPPORT_AUD_PARAMS, ret); 230da853ecaSopenharmony_ci encoderDemo->InnerReset(); 231da853ecaSopenharmony_ci audioParams.PutStringValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, "aaaaaa"); 232da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 233da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_UNSUPPORT_AUD_PARAMS, ret); 234da853ecaSopenharmony_ci encoderDemo->InnerReset(); 235da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, 0); 236da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 237da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_UNSUPPORT_AUD_PARAMS, ret); 238da853ecaSopenharmony_ci encoderDemo->InnerReset(); 239da853ecaSopenharmony_ci audioParams.PutLongValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, 0); 240da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 241da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_UNSUPPORT_AUD_PARAMS, ret); 242da853ecaSopenharmony_ci encoderDemo->InnerReset(); 243da853ecaSopenharmony_ci audioParams.PutFloatValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, 0.1); 244da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 245da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_UNSUPPORT_AUD_PARAMS, ret); 246da853ecaSopenharmony_ci encoderDemo->InnerReset(); 247da853ecaSopenharmony_ci audioParams.PutDoubleValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, 0.1); 248da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 249da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_UNSUPPORT_AUD_PARAMS, ret); 250da853ecaSopenharmony_ci encoderDemo->InnerReset(); 251da853ecaSopenharmony_ci uint8_t b[100]; 252da853ecaSopenharmony_ci audioParams.PutBuffer(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, b, 100); 253da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 254da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_UNSUPPORT_AUD_PARAMS, ret); 255da853ecaSopenharmony_ci encoderDemo->InnerReset(); 256da853ecaSopenharmony_ci encoderDemo->InnerDestroy(); 257da853ecaSopenharmony_ci 258da853ecaSopenharmony_ci delete encoderDemo; 259da853ecaSopenharmony_ci} 260da853ecaSopenharmony_ci 261da853ecaSopenharmony_ci/** 262da853ecaSopenharmony_ci * @tc.number : SUB_MULTIMEDIA_AUDIO_ENCODER_PARAM_CHECK_006 263da853ecaSopenharmony_ci * @tc.name : InnerConfigure - MD_KEY_CHANNEL_LAYOUT check 264da853ecaSopenharmony_ci * @tc.desc : param check test 265da853ecaSopenharmony_ci */ 266da853ecaSopenharmony_ciHWTEST_F(InnerParamCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_PARAM_CHECK_006, TestSize.Level2) 267da853ecaSopenharmony_ci{ 268da853ecaSopenharmony_ci AudioEncoderDemo *encoderDemo = new AudioEncoderDemo(); 269da853ecaSopenharmony_ci int32_t ret = encoderDemo->InnerCreateByName("OH.Media.Codec.Encoder.Audio.AAC"); 270da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 271da853ecaSopenharmony_ci 272da853ecaSopenharmony_ci Format audioParams; 273da853ecaSopenharmony_ci 274da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, 1); 275da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, SAMPLE_RATE_44100); 276da853ecaSopenharmony_ci audioParams.PutLongValue(MediaDescriptionKey::MD_KEY_BITRATE, BIT_RATE_112000); 277da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_BITS_PER_CODED_SAMPLE, AudioSampleFormat::SAMPLE_F32LE); 278da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, AudioSampleFormat::SAMPLE_F32LE); 279da853ecaSopenharmony_ci audioParams.PutLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, MONO); 280da853ecaSopenharmony_ci 281da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 282da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 283da853ecaSopenharmony_ci encoderDemo->InnerReset(); 284da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, -1); 285da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 286da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 287da853ecaSopenharmony_ci encoderDemo->InnerReset(); 288da853ecaSopenharmony_ci audioParams.PutStringValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, "aaaaaa"); 289da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 290da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 291da853ecaSopenharmony_ci encoderDemo->InnerReset(); 292da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, 0); 293da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 294da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 295da853ecaSopenharmony_ci encoderDemo->InnerReset(); 296da853ecaSopenharmony_ci audioParams.PutFloatValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, 0.1); 297da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 298da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 299da853ecaSopenharmony_ci encoderDemo->InnerReset(); 300da853ecaSopenharmony_ci audioParams.PutDoubleValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, 0.1); 301da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 302da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 303da853ecaSopenharmony_ci encoderDemo->InnerReset(); 304da853ecaSopenharmony_ci uint8_t b[100]; 305da853ecaSopenharmony_ci audioParams.PutBuffer(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, b, 100); 306da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 307da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 308da853ecaSopenharmony_ci encoderDemo->InnerReset(); 309da853ecaSopenharmony_ci encoderDemo->InnerDestroy(); 310da853ecaSopenharmony_ci 311da853ecaSopenharmony_ci delete encoderDemo; 312da853ecaSopenharmony_ci} 313da853ecaSopenharmony_ci/** 314da853ecaSopenharmony_ci * @tc.number : SUB_MULTIMEDIA_AUDIO_ENCODER_PARAM_CHECK_007 315da853ecaSopenharmony_ci * @tc.name : InnerConfigure - MD_KEY_CHANNEL_COUNT check 316da853ecaSopenharmony_ci * @tc.desc : param check test 317da853ecaSopenharmony_ci */ 318da853ecaSopenharmony_ciHWTEST_F(InnerParamCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_PARAM_CHECK_007, TestSize.Level2) 319da853ecaSopenharmony_ci{ 320da853ecaSopenharmony_ci AudioEncoderDemo *encoderDemo = new AudioEncoderDemo(); 321da853ecaSopenharmony_ci int32_t ret = encoderDemo->InnerCreateByName("OH.Media.Codec.Encoder.Audio.AAC"); 322da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 323da853ecaSopenharmony_ci 324da853ecaSopenharmony_ci Format audioParams; 325da853ecaSopenharmony_ci 326da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, 1); 327da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, SAMPLE_RATE_44100); 328da853ecaSopenharmony_ci audioParams.PutLongValue(MediaDescriptionKey::MD_KEY_BITRATE, BIT_RATE_112000); 329da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_BITS_PER_CODED_SAMPLE, AudioSampleFormat::SAMPLE_F32LE); 330da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, AudioSampleFormat::SAMPLE_F32LE); 331da853ecaSopenharmony_ci audioParams.PutLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, MONO); 332da853ecaSopenharmony_ci 333da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 334da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 335da853ecaSopenharmony_ci encoderDemo->InnerReset(); 336da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, -1); 337da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 338da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_UNSUPPORT_AUD_PARAMS, ret); 339da853ecaSopenharmony_ci encoderDemo->InnerReset(); 340da853ecaSopenharmony_ci audioParams.PutStringValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, "aaaaaa"); 341da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 342da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_UNSUPPORT_AUD_PARAMS, ret); 343da853ecaSopenharmony_ci encoderDemo->InnerReset(); 344da853ecaSopenharmony_ci audioParams.PutLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, -1); 345da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 346da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_UNSUPPORT_AUD_PARAMS, ret); 347da853ecaSopenharmony_ci encoderDemo->InnerReset(); 348da853ecaSopenharmony_ci audioParams.PutFloatValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, 0.1); 349da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 350da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_UNSUPPORT_AUD_PARAMS, ret); 351da853ecaSopenharmony_ci encoderDemo->InnerReset(); 352da853ecaSopenharmony_ci audioParams.PutDoubleValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, 0.1); 353da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 354da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_UNSUPPORT_AUD_PARAMS, ret); 355da853ecaSopenharmony_ci encoderDemo->InnerReset(); 356da853ecaSopenharmony_ci uint8_t b[100]; 357da853ecaSopenharmony_ci audioParams.PutBuffer(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, b, 100); 358da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 359da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_UNSUPPORT_AUD_PARAMS, ret); 360da853ecaSopenharmony_ci encoderDemo->InnerReset(); 361da853ecaSopenharmony_ci encoderDemo->InnerDestroy(); 362da853ecaSopenharmony_ci 363da853ecaSopenharmony_ci delete encoderDemo; 364da853ecaSopenharmony_ci} 365da853ecaSopenharmony_ci 366da853ecaSopenharmony_ci/** 367da853ecaSopenharmony_ci * @tc.number : SUB_MULTIMEDIA_AUDIO_ENCODER_PARAM_CHECK_008 368da853ecaSopenharmony_ci * @tc.name : InnerConfigure - MD_KEY_SAMPLE_RATE check 369da853ecaSopenharmony_ci * @tc.desc : param check test 370da853ecaSopenharmony_ci */ 371da853ecaSopenharmony_ciHWTEST_F(InnerParamCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_PARAM_CHECK_008, TestSize.Level2) 372da853ecaSopenharmony_ci{ 373da853ecaSopenharmony_ci AudioEncoderDemo *encoderDemo = new AudioEncoderDemo(); 374da853ecaSopenharmony_ci int32_t ret = encoderDemo->InnerCreateByName("OH.Media.Codec.Encoder.Audio.AAC"); 375da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 376da853ecaSopenharmony_ci 377da853ecaSopenharmony_ci Format audioParams; 378da853ecaSopenharmony_ci 379da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, 1); 380da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, SAMPLE_RATE_44100); 381da853ecaSopenharmony_ci audioParams.PutLongValue(MediaDescriptionKey::MD_KEY_BITRATE, BIT_RATE_112000); 382da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_BITS_PER_CODED_SAMPLE, AudioSampleFormat::SAMPLE_F32LE); 383da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, AudioSampleFormat::SAMPLE_F32LE); 384da853ecaSopenharmony_ci audioParams.PutLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, MONO); 385da853ecaSopenharmony_ci 386da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 387da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 388da853ecaSopenharmony_ci encoderDemo->InnerReset(); 389da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, -1); 390da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 391da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_UNSUPPORT_AUD_PARAMS, ret); 392da853ecaSopenharmony_ci encoderDemo->InnerReset(); 393da853ecaSopenharmony_ci audioParams.PutStringValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, "aaaaaa"); 394da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 395da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_UNSUPPORT_AUD_PARAMS, ret); 396da853ecaSopenharmony_ci encoderDemo->InnerReset(); 397da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, 0); 398da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 399da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_UNSUPPORT_AUD_PARAMS, ret); 400da853ecaSopenharmony_ci encoderDemo->InnerReset(); 401da853ecaSopenharmony_ci audioParams.PutFloatValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, 0.1); 402da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 403da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_UNSUPPORT_AUD_PARAMS, ret); 404da853ecaSopenharmony_ci encoderDemo->InnerReset(); 405da853ecaSopenharmony_ci audioParams.PutDoubleValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, 0.1); 406da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 407da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_UNSUPPORT_AUD_PARAMS, ret); 408da853ecaSopenharmony_ci encoderDemo->InnerReset(); 409da853ecaSopenharmony_ci uint8_t b[100]; 410da853ecaSopenharmony_ci audioParams.PutBuffer(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, b, 100); 411da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 412da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_UNSUPPORT_AUD_PARAMS, ret); 413da853ecaSopenharmony_ci encoderDemo->InnerReset(); 414da853ecaSopenharmony_ci encoderDemo->InnerDestroy(); 415da853ecaSopenharmony_ci 416da853ecaSopenharmony_ci delete encoderDemo; 417da853ecaSopenharmony_ci} 418da853ecaSopenharmony_ci 419da853ecaSopenharmony_ci/** 420da853ecaSopenharmony_ci * @tc.number : SUB_MULTIMEDIA_AUDIO_ENCODER_PARAM_CHECK_009 421da853ecaSopenharmony_ci * @tc.name : InnerQueueInputBuffer - info.size check 422da853ecaSopenharmony_ci * @tc.desc : param check test 423da853ecaSopenharmony_ci */ 424da853ecaSopenharmony_ciHWTEST_F(InnerParamCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_PARAM_CHECK_009, TestSize.Level2) 425da853ecaSopenharmony_ci{ 426da853ecaSopenharmony_ci AudioEncoderDemo *encoderDemo = new AudioEncoderDemo(); 427da853ecaSopenharmony_ci int32_t ret = encoderDemo->InnerCreateByName("OH.Media.Codec.Encoder.Audio.AAC"); 428da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 429da853ecaSopenharmony_ci Format audioParams; 430da853ecaSopenharmony_ci 431da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, 1); 432da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, SAMPLE_RATE_44100); 433da853ecaSopenharmony_ci audioParams.PutLongValue(MediaDescriptionKey::MD_KEY_BITRATE, BIT_RATE_112000); 434da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_BITS_PER_CODED_SAMPLE, AudioSampleFormat::SAMPLE_F32LE); 435da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, AudioSampleFormat::SAMPLE_F32LE); 436da853ecaSopenharmony_ci audioParams.PutLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, MONO); 437da853ecaSopenharmony_ci std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal(); 438da853ecaSopenharmony_ci std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_); 439da853ecaSopenharmony_ci ret = encoderDemo->InnerSetCallback(cb_); 440da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 441da853ecaSopenharmony_ci 442da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 443da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 444da853ecaSopenharmony_ci 445da853ecaSopenharmony_ci encoderDemo->InnerPrepare(); 446da853ecaSopenharmony_ci encoderDemo->InnerStartWithThread(); 447da853ecaSopenharmony_ci uint32_t index = encoderDemo->InnerGetInputIndex(); 448da853ecaSopenharmony_ci AVCodecBufferInfo info; 449da853ecaSopenharmony_ci AVCodecBufferFlag flag; 450da853ecaSopenharmony_ci 451da853ecaSopenharmony_ci std::shared_ptr<AVSharedMemory> buffer = signal_->inInnerBufQueue_.front(); 452da853ecaSopenharmony_ci ASSERT_NE(nullptr, buffer); 453da853ecaSopenharmony_ci 454da853ecaSopenharmony_ci info.presentationTimeUs = 0; 455da853ecaSopenharmony_ci info.size = 100; 456da853ecaSopenharmony_ci info.offset = 0; 457da853ecaSopenharmony_ci 458da853ecaSopenharmony_ci flag = AVCODEC_BUFFER_FLAG_NONE; 459da853ecaSopenharmony_ci 460da853ecaSopenharmony_ci ret = encoderDemo->InnerQueueInputBuffer(index, info, flag); 461da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 462da853ecaSopenharmony_ci index = encoderDemo->InnerGetInputIndex(); 463da853ecaSopenharmony_ci info.size = -1; 464da853ecaSopenharmony_ci ret = encoderDemo->InnerQueueInputBuffer(index, info, flag); 465da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_INVALID_VAL, ret); 466da853ecaSopenharmony_ci 467da853ecaSopenharmony_ci encoderDemo->InnerDestroy(); 468da853ecaSopenharmony_ci delete encoderDemo; 469da853ecaSopenharmony_ci} 470da853ecaSopenharmony_ci 471da853ecaSopenharmony_ci/** 472da853ecaSopenharmony_ci * @tc.number : SUB_MULTIMEDIA_AUDIO_ENCODER_PARAM_CHECK_010 473da853ecaSopenharmony_ci * @tc.name : InnerQueueInputBuffer - info.offset check 474da853ecaSopenharmony_ci * @tc.desc : param check test 475da853ecaSopenharmony_ci */ 476da853ecaSopenharmony_ciHWTEST_F(InnerParamCheckTest, SUB_MULTIMEDIA_AUDIO_ENCODER_PARAM_CHECK_010, TestSize.Level2) 477da853ecaSopenharmony_ci{ 478da853ecaSopenharmony_ci AudioEncoderDemo *encoderDemo = new AudioEncoderDemo(); 479da853ecaSopenharmony_ci int32_t ret = encoderDemo->InnerCreateByName("OH.Media.Codec.Encoder.Audio.AAC"); 480da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 481da853ecaSopenharmony_ci Format audioParams; 482da853ecaSopenharmony_ci 483da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, 1); 484da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, SAMPLE_RATE_44100); 485da853ecaSopenharmony_ci audioParams.PutLongValue(MediaDescriptionKey::MD_KEY_BITRATE, BIT_RATE_112000); 486da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_BITS_PER_CODED_SAMPLE, AudioSampleFormat::SAMPLE_F32LE); 487da853ecaSopenharmony_ci audioParams.PutIntValue(MediaDescriptionKey::MD_KEY_AUDIO_SAMPLE_FORMAT, AudioSampleFormat::SAMPLE_F32LE); 488da853ecaSopenharmony_ci audioParams.PutLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, MONO); 489da853ecaSopenharmony_ci std::shared_ptr<AEncSignal> signal_ = encoderDemo->getSignal(); 490da853ecaSopenharmony_ci std::shared_ptr<InnerAEnDemoCallback> cb_ = make_unique<InnerAEnDemoCallback>(signal_); 491da853ecaSopenharmony_ci ret = encoderDemo->InnerSetCallback(cb_); 492da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 493da853ecaSopenharmony_ci 494da853ecaSopenharmony_ci ret = encoderDemo->InnerConfigure(audioParams); 495da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 496da853ecaSopenharmony_ci 497da853ecaSopenharmony_ci encoderDemo->InnerPrepare(); 498da853ecaSopenharmony_ci encoderDemo->InnerStartWithThread(); 499da853ecaSopenharmony_ci 500da853ecaSopenharmony_ci uint32_t index = encoderDemo->InnerGetInputIndex(); 501da853ecaSopenharmony_ci AVCodecBufferInfo info; 502da853ecaSopenharmony_ci AVCodecBufferFlag flag; 503da853ecaSopenharmony_ci 504da853ecaSopenharmony_ci std::shared_ptr<AVSharedMemory> buffer = signal_->inInnerBufQueue_.front(); 505da853ecaSopenharmony_ci ASSERT_NE(nullptr, buffer); 506da853ecaSopenharmony_ci 507da853ecaSopenharmony_ci info.presentationTimeUs = 0; 508da853ecaSopenharmony_ci info.size = 100; 509da853ecaSopenharmony_ci info.offset = 0; 510da853ecaSopenharmony_ci 511da853ecaSopenharmony_ci flag = AVCODEC_BUFFER_FLAG_NONE; 512da853ecaSopenharmony_ci 513da853ecaSopenharmony_ci ret = encoderDemo->InnerQueueInputBuffer(index, info, flag); 514da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_OK, ret); 515da853ecaSopenharmony_ci 516da853ecaSopenharmony_ci index = encoderDemo->InnerGetInputIndex(); 517da853ecaSopenharmony_ci info.offset = -1; 518da853ecaSopenharmony_ci ret = encoderDemo->InnerQueueInputBuffer(index, info, flag); 519da853ecaSopenharmony_ci ASSERT_EQ(AVCS_ERR_INVALID_VAL, ret); 520da853ecaSopenharmony_ci 521da853ecaSopenharmony_ci encoderDemo->InnerDestroy(); 522da853ecaSopenharmony_ci delete encoderDemo; 523da853ecaSopenharmony_ci}