• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2025 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 #include "codec_param_checker_test.h"
16 #include <gtest/gtest.h>
17 #include "avcodec_info.h"
18 #include "avcodec_list.h"
19 #include "avcodec_video_encoder.h"
20 #include "format.h"
21 #include "media_description.h"
22 #include "avcodec_errors.h"
23 #include "av_common.h"
24 using namespace OHOS::MediaAVCodec;
25 using namespace testing::ext;
26 namespace {
27 uint32_t DEFAULT_QUALITY = 30; // 30 默认值
28 uint32_t DEFAULT_BITRATE = 10000000; // 10000000 默认值
29 uint32_t DEFAULT_MAX_BITRATE = 20000000; // 20000000 默认值
30 uint32_t DEFAULT_SQR_FACTOR = 30; // 30 默认值
31 
SetFormatBasicParam(Format & format)32 void SetFormatBasicParam(Format &format)
33 {
34     format = Format();
35     format.PutIntValue(MediaDescriptionKey::MD_KEY_WIDTH, 1280); // 1280 w默认值
36     format.PutIntValue(MediaDescriptionKey::MD_KEY_HEIGHT, 720); // 720 h默认值
37     format.PutIntValue(MediaDescriptionKey::MD_KEY_PIXEL_FORMAT,
38         static_cast<int32_t>(VideoPixelFormat::SURFACE_FORMAT));
39 }
40 
IsEncoderBitrateModeSupported(CapabilityData * capData,VideoEncodeBitrateMode bitrateMode)41 bool IsEncoderBitrateModeSupported(CapabilityData *capData, VideoEncodeBitrateMode bitrateMode)
42 {
43     if (!AVCodecInfo::isEncoder(capData->codecType)) {
44         return false;
45     }
46     std::shared_ptr<VideoCaps> codecInfo = std::make_shared<VideoCaps>(capData);
47     const auto &bitrateModeVec = codecInfo->GetSupportedBitrateMode();
48     return find(bitrateModeVec.begin(), bitrateModeVec.end(), bitrateMode) != bitrateModeVec.end();
49 }
50 
51 /**
52  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1519
53  * @tc.desc: codec video configure sqr_factor and quality exist value
54  * @tc.type: FUNC
55  */
56 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1519, TestSize.Level3)
57 {
58     SetFormatBasicParam(formatInner_);
59     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_SQR_FACTOR, DEFAULT_SQR_FACTOR);
60     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_QUALITY, DEFAULT_QUALITY);
61     ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
62 }
63 
64 /**
65   * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1520
66   * @tc.desc: codec video configure max_bitrate and quality exist value
67   * @tc.type: FUNC
68   */
69 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1520, TestSize.Level3)
70 {
71     SetFormatBasicParam(formatInner_);
72     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_MAX_BITRATE, DEFAULT_MAX_BITRATE);
73     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_QUALITY, DEFAULT_QUALITY);
74     ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
75 }
76 
77 /**
78  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1521
79  * @tc.desc: codec video configure bitrate and max_bitrate exist value
80  * @tc.type: FUNC
81  */
82 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1521, TestSize.Level3)
83 {
84     SetFormatBasicParam(formatInner_);
85     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_BITRATE, DEFAULT_BITRATE);
86     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_MAX_BITRATE, DEFAULT_MAX_BITRATE);
87     ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
88 }
89 
90 /**
91  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1522
92  * @tc.desc: codec video configure bitrate and sqr_factor exist value
93  * @tc.type: FUNC
94  */
95 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1522, TestSize.Level3)
96 {
97     SetFormatBasicParam(formatInner_);
98     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_BITRATE, DEFAULT_BITRATE);
99     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_SQR_FACTOR, DEFAULT_SQR_FACTOR);
100     ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
101 }
102 
103 /**
104  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1523
105  * @tc.desc: codec video configure bitrate and sqr_factor and max_bitrate exist value
106  * @tc.type: FUNC
107  */
108 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1523, TestSize.Level3)
109 {
110     SetFormatBasicParam(formatInner_);
111     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_BITRATE, DEFAULT_BITRATE);
112     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_SQR_FACTOR, DEFAULT_SQR_FACTOR);
113     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_MAX_BITRATE, DEFAULT_MAX_BITRATE);
114     ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
115 }
116 
117 /**
118  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1524
119  * @tc.desc: codec video configure bitrate, sqr_factor, max_bitrate and quality exist value
120  * @tc.type: FUNC
121  */
122 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1524, TestSize.Level3)
123 {
124     SetFormatBasicParam(formatInner_);
125     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_BITRATE, DEFAULT_BITRATE);
126     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_SQR_FACTOR, DEFAULT_SQR_FACTOR);
127     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_MAX_BITRATE, DEFAULT_MAX_BITRATE);
128     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_QUALITY, DEFAULT_QUALITY);
129     ASSERT_EQ(AVCS_ERR_CODEC_PARAM_INCORRECT, videoEncHevcInner_->Configure(formatInner_));
130 }
131 
132 /**
133  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1525
134  * @tc.desc: codec video configure sqr_factor and quality exist value
135  * @tc.type: FUNC
136  */
137 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1525, TestSize.Level3)
138 {
139     SetFormatBasicParam(formatInner_);
140     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_SQR_FACTOR, DEFAULT_SQR_FACTOR);
141     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_QUALITY, DEFAULT_QUALITY);
142     ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
143 }
144 
145 /**
146   * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1526
147   * @tc.desc: codec video configure max_bitrate and quality exist value
148   * @tc.type: FUNC
149   */
150 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1526, TestSize.Level3)
151 {
152     SetFormatBasicParam(formatInner_);
153     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_MAX_BITRATE, DEFAULT_MAX_BITRATE);
154     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_QUALITY, DEFAULT_QUALITY);
155     ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
156 }
157 
158 /**
159  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1527
160  * @tc.desc: codec video configure bitrate and max_bitrate exist value
161  * @tc.type: FUNC
162  */
163 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1527, TestSize.Level3)
164 {
165     SetFormatBasicParam(formatInner_);
166     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_BITRATE, DEFAULT_BITRATE);
167     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_MAX_BITRATE, DEFAULT_MAX_BITRATE);
168     ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
169 }
170 
171 /**
172  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1528
173  * @tc.desc: codec video configure bitrate and sqr_factor exist value
174  * @tc.type: FUNC
175  */
176 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1528, TestSize.Level3)
177 {
178     SetFormatBasicParam(formatInner_);
179     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_BITRATE, DEFAULT_BITRATE);
180     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_SQR_FACTOR, DEFAULT_SQR_FACTOR);
181     ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
182 }
183 
184 /**
185  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1529
186  * @tc.desc: codec video configure bitrate and sqr_factor and max_bitrate exist value
187  * @tc.type: FUNC
188  */
189 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1529, TestSize.Level3)
190 {
191     SetFormatBasicParam(formatInner_);
192     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_BITRATE, DEFAULT_BITRATE);
193     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_SQR_FACTOR, DEFAULT_SQR_FACTOR);
194     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_MAX_BITRATE, DEFAULT_MAX_BITRATE);
195     ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
196 }
197 
198 /**
199  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1530
200  * @tc.desc: codec video configure bitrate, sqr_factor, max_bitrate and quality exist value
201  * @tc.type: FUNC
202  */
203 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1530, TestSize.Level3)
204 {
205     SetFormatBasicParam(formatInner_);
206     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_BITRATE, DEFAULT_BITRATE);
207     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_SQR_FACTOR, DEFAULT_SQR_FACTOR);
208     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_MAX_BITRATE, DEFAULT_MAX_BITRATE);
209     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_QUALITY, DEFAULT_QUALITY);
210     ASSERT_EQ(AVCS_ERR_CODEC_PARAM_INCORRECT, videoEncHevcInner_->Configure(formatInner_));
211 }
212 
213 /**
214  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1531
215  * @tc.desc: codec video configure max_bitrate invalid value
216  * @tc.type: FUNC
217  */
218 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1531, TestSize.Level3)
219 {
220     SetFormatBasicParam(formatInner_);
221     std::shared_ptr<VideoCaps> codecInfo = std::make_shared<VideoCaps>(capabilityDataHevc_);
222     const auto &maxBitrateRange = codecInfo->GetSupportedMaxBitrate();
223     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_MAX_BITRATE, maxBitrateRange.maxVal + 1);
224     ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
225 }
226 
227 /**
228  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1532
229  * @tc.desc: codec video configure max_bitrate invalid value
230  * @tc.type: FUNC
231  */
232 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1532, TestSize.Level3)
233 {
234     SetFormatBasicParam(formatInner_);
235     std::shared_ptr<VideoCaps> codecInfo = std::make_shared<VideoCaps>(capabilityDataHevc_);
236     const auto &maxBitrateRange = codecInfo->GetSupportedMaxBitrate();
237     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_MAX_BITRATE, maxBitrateRange.minVal - 1);
238     ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
239 }
240 
241 /**
242  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1533
243  * @tc.desc: codec video configure sqr_factor out of range
244  * @tc.type: FUNC
245  */
246 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1533, TestSize.Level3)
247 {
248     SetFormatBasicParam(formatInner_);
249     std::shared_ptr<VideoCaps> codecInfo = std::make_shared<VideoCaps>(capabilityDataHevc_);
250     const auto &sqrFactorRange = codecInfo->GetSupportedSqrFactor();
251     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_SQR_FACTOR, sqrFactorRange.minVal - 1);
252     ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
253 }
254 
255 /**
256  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1534
257  * @tc.desc: codec video configure sqr_factor out of range
258  * @tc.type: FUNC
259  */
260 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1534, TestSize.Level3)
261 {
262     SetFormatBasicParam(formatInner_);
263     std::shared_ptr<VideoCaps> codecInfo = std::make_shared<VideoCaps>(capabilityDataHevc_);
264     const auto &sqrFactorRange = codecInfo->GetSupportedSqrFactor();
265     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_SQR_FACTOR, sqrFactorRange.maxVal + 1);
266     ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
267 }
268 
269 /**
270  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1535
271  * @tc.desc: codec video configure sqr_factor and quality exist value
272  * @tc.type: FUNC
273  */
274 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1535, TestSize.Level3)
275 {
276     SetFormatBasicParam(formatInner_);
277     std::shared_ptr<VideoCaps> codecInfo = std::make_shared<VideoCaps>(capabilityDataHevc_);
278     const auto &sqrFactorRange = codecInfo->GetSupportedSqrFactor();
279     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_SQR_FACTOR, sqrFactorRange.minVal - 1);
280     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_QUALITY, DEFAULT_QUALITY);
281     ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
282 }
283 
284 /**
285  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1536
286  * @tc.desc: codec video configure sqr_factor and quality exist value
287  * @tc.type: FUNC
288  */
289 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1536, TestSize.Level3)
290 {
291     SetFormatBasicParam(formatInner_);
292     std::shared_ptr<VideoCaps> codecInfo = std::make_shared<VideoCaps>(capabilityDataHevc_);
293     const auto &sqrFactorRange = codecInfo->GetSupportedSqrFactor();
294     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_SQR_FACTOR, sqrFactorRange.maxVal + 1);
295     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_QUALITY, DEFAULT_QUALITY);
296     ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
297 }
298 
299 /**
300  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1537
301  * @tc.desc: codec video configure max_bitrate invalid value
302  * @tc.type: FUNC
303  */
304 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1537, TestSize.Level3)
305 {
306     SetFormatBasicParam(formatInner_);
307     std::shared_ptr<VideoCaps> codecInfo = std::make_shared<VideoCaps>(capabilityDataHevc_);
308     const auto &maxBitrateRange = codecInfo->GetSupportedMaxBitrate();
309     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_MAX_BITRATE, maxBitrateRange.minVal - 1);
310     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_QUALITY, DEFAULT_QUALITY);
311     ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
312 }
313 
314 /**
315  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1538
316  * @tc.desc: codec video configure max_bitrate invalid value
317  * @tc.type: FUNC
318  */
319 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1538, TestSize.Level3)
320 {
321     SetFormatBasicParam(formatInner_);
322     std::shared_ptr<VideoCaps> codecInfo = std::make_shared<VideoCaps>(capabilityDataHevc_);
323     const auto &maxBitrateRange = codecInfo->GetSupportedMaxBitrate();
324     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_MAX_BITRATE, maxBitrateRange.maxVal + 1);
325     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_QUALITY, DEFAULT_QUALITY);
326     ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
327 }
328 
329 /**
330  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1539
331  * @tc.desc: codec video configure sqr_factor and quality exist value
332  * @tc.type: FUNC
333  */
334 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1539, TestSize.Level3)
335 {
336     SetFormatBasicParam(formatInner_);
337     std::shared_ptr<VideoCaps> codecInfo = std::make_shared<VideoCaps>(capabilityDataHevc_);
338     const auto &sqrFactorRange = codecInfo->GetSupportedSqrFactor();
339     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_SQR_FACTOR, sqrFactorRange.minVal - 1);
340     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_BITRATE, DEFAULT_BITRATE);
341     ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
342 }
343 
344 /**
345  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1540
346  * @tc.desc: codec video configure sqr_factor and quality exist value
347  * @tc.type: FUNC
348  */
349 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1540, TestSize.Level3)
350 {
351     SetFormatBasicParam(formatInner_);
352     std::shared_ptr<VideoCaps> codecInfo = std::make_shared<VideoCaps>(capabilityDataHevc_);
353     const auto &sqrFactorRange = codecInfo->GetSupportedSqrFactor();
354     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_SQR_FACTOR, sqrFactorRange.maxVal + 1);
355     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_BITRATE, DEFAULT_BITRATE);
356     ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
357 }
358 
359 /**
360  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1541
361  * @tc.desc: codec video configure max_bitrate invalid value
362  * @tc.type: FUNC
363  */
364 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1541, TestSize.Level3)
365 {
366     SetFormatBasicParam(formatInner_);
367     std::shared_ptr<VideoCaps> codecInfo = std::make_shared<VideoCaps>(capabilityDataHevc_);
368     const auto &maxBitrateRange = codecInfo->GetSupportedMaxBitrate();
369     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_MAX_BITRATE, maxBitrateRange.minVal - 1);
370     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_BITRATE, DEFAULT_BITRATE);
371     ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
372 }
373 
374 /**
375  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1542
376  * @tc.desc: codec video configure max_bitrate invalid value
377  * @tc.type: FUNC
378  */
379 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1542, TestSize.Level3)
380 {
381     SetFormatBasicParam(formatInner_);
382     std::shared_ptr<VideoCaps> codecInfo = std::make_shared<VideoCaps>(capabilityDataHevc_);
383     const auto &maxBitrateRange = codecInfo->GetSupportedMaxBitrate();
384     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_MAX_BITRATE, maxBitrateRange.maxVal + 1);
385     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_BITRATE, DEFAULT_BITRATE);
386     ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
387 }
388 
389 /**
390  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1543
391  * @tc.desc: codec video configure max_bitrate and sqr_factor invalid value
392  * @tc.type: FUNC
393  */
394 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1543, TestSize.Level3)
395 {
396     SetFormatBasicParam(formatInner_);
397     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_BITRATE, DEFAULT_BITRATE);
398     std::shared_ptr<VideoCaps> codecInfo = std::make_shared<VideoCaps>(capabilityDataHevc_);
399     const auto &maxBitrateRange = codecInfo->GetSupportedMaxBitrate();
400     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_MAX_BITRATE, maxBitrateRange.maxVal + 1);
401     const auto &sqrFactorRange = codecInfo->GetSupportedSqrFactor();
402     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_SQR_FACTOR, sqrFactorRange.maxVal + 1);
403     ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
404 }
405 
406 /**
407  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1544
408  * @tc.desc: codec video configure max_bitrate and sqr_factor invalid value
409  * @tc.type: FUNC
410  */
411 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1544, TestSize.Level3)
412 {
413     SetFormatBasicParam(formatInner_);
414     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_QUALITY, DEFAULT_QUALITY);
415     std::shared_ptr<VideoCaps> codecInfo = std::make_shared<VideoCaps>(capabilityDataHevc_);
416     const auto &maxBitrateRange = codecInfo->GetSupportedMaxBitrate();
417     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_MAX_BITRATE, maxBitrateRange.minVal - 1);
418     const auto &sqrFactorRange = codecInfo->GetSupportedSqrFactor();
419     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_SQR_FACTOR, sqrFactorRange.maxVal + 1);
420     ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
421 }
422 
423 /**
424  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1545
425  * @tc.desc: codec video configure quality invalid value
426  * @tc.type: FUNC
427  */
428 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1545, TestSize.Level3)
429 {
430     SetFormatBasicParam(formatInner_);
431     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_SQR_FACTOR, DEFAULT_SQR_FACTOR);
432     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_MAX_BITRATE, DEFAULT_MAX_BITRATE);
433     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_BITRATE, INT64_MAX);
434     ASSERT_EQ(AVCS_ERR_CODEC_PARAM_INCORRECT, videoEncHevcInner_->Configure(formatInner_));
435 }
436 
437 /**
438  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1546
439  * @tc.desc: codec video configure quality invalid value
440  * @tc.type: FUNC
441  */
442 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1546, TestSize.Level3)
443 {
444     SetFormatBasicParam(formatInner_);
445     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_SQR_FACTOR, DEFAULT_SQR_FACTOR);
446     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_MAX_BITRATE, DEFAULT_MAX_BITRATE);
447     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_QUALITY, INT32_MAX);
448     ASSERT_EQ(AVCS_ERR_CODEC_PARAM_INCORRECT, videoEncHevcInner_->Configure(formatInner_));
449 }
450 
451 /**
452  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1547
453  * @tc.desc: codec video configure max_bitrate in range and bitrate mode is CQ
454  * @tc.type: FUNC
455  */
456 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1547, TestSize.Level3)
457 {
458     SetFormatBasicParam(formatInner_);
459     std::shared_ptr<VideoCaps> codecInfo = std::make_shared<VideoCaps>(capabilityDataHevc_);
460     const auto &maxBitrateRange = codecInfo->GetSupportedMaxBitrate();
461     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_MAX_BITRATE, maxBitrateRange.minVal - 1);
462     if (IsEncoderBitrateModeSupported(capabilityDataHevc_, CQ)) {
463         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODE_BITRATE_MODE, CQ);
464         ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
465     }
466 }
467 
468 /**
469  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1548
470  * @tc.desc: codec video configure sqr_factor in range and bitrate mode is VBR
471  * @tc.type: FUNC
472  */
473 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1548, TestSize.Level3)
474 {
475     SetFormatBasicParam(formatInner_);
476     std::shared_ptr<VideoCaps> codecInfo = std::make_shared<VideoCaps>(capabilityDataHevc_);
477     const auto &sqrFactorRange = codecInfo->GetSupportedSqrFactor();
478     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_SQR_FACTOR, sqrFactorRange.maxVal + 1);
479 
480     if (IsEncoderBitrateModeSupported(capabilityDataHevc_, VBR)) {
481         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODE_BITRATE_MODE, VBR);
482         ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
483     }
484 }
485 
486 /**
487  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1549
488  * @tc.desc: codec video configure sqr_factor in range and bitrate mode is CBR
489  * @tc.type: FUNC
490  */
491 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1549, TestSize.Level3)
492 {
493     SetFormatBasicParam(formatInner_);
494     std::shared_ptr<VideoCaps> codecInfo = std::make_shared<VideoCaps>(capabilityDataHevc_);
495     const auto &sqrFactorRange = codecInfo->GetSupportedSqrFactor();
496     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_SQR_FACTOR, sqrFactorRange.maxVal + 1);
497 
498     if (IsEncoderBitrateModeSupported(capabilityDataHevc_, CBR)) {
499         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODE_BITRATE_MODE, CBR);
500         ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
501     }
502 }
503 
504 /**
505  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1550
506  * @tc.desc: codec video configure sqr_factor in range and bitrate mode is CQ
507  * @tc.type: FUNC
508  */
509 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1550, TestSize.Level3)
510 {
511     SetFormatBasicParam(formatInner_);
512     std::shared_ptr<VideoCaps> codecInfo = std::make_shared<VideoCaps>(capabilityDataHevc_);
513     const auto &sqrFactorRange = codecInfo->GetSupportedSqrFactor();
514     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_SQR_FACTOR, sqrFactorRange.maxVal + 1);
515 
516     if (IsEncoderBitrateModeSupported(capabilityDataHevc_, CQ)) {
517         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODE_BITRATE_MODE, CQ);
518         ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
519     }
520 }
521 
522 /**
523  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1551
524  * @tc.desc: codec video configure sqr_factor in range and bitrate mode is CBR
525  * @tc.type: FUNC
526  */
527 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1551, TestSize.Level3)
528 {
529     SetFormatBasicParam(formatInner_);
530     std::shared_ptr<VideoCaps> codecInfo = std::make_shared<VideoCaps>(capabilityDataHevc_);
531     const auto &maxBitrateRange = codecInfo->GetSupportedMaxBitrate();
532     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_MAX_BITRATE, maxBitrateRange.minVal - 1);
533 
534     if (IsEncoderBitrateModeSupported(capabilityDataHevc_, CBR)) {
535         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODE_BITRATE_MODE, CBR);
536         ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
537     }
538 }
539 
540 /**
541  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1552
542  * @tc.desc: codec video configure sqr_factor in range and bitrate mode is CBR
543  * @tc.type: FUNC
544  */
545 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1552, TestSize.Level3)
546 {
547     SetFormatBasicParam(formatInner_);
548     std::shared_ptr<VideoCaps> codecInfo = std::make_shared<VideoCaps>(capabilityDataHevc_);
549     const auto &maxBitrateRange = codecInfo->GetSupportedMaxBitrate();
550     formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_MAX_BITRATE, maxBitrateRange.minVal - 1);
551 
552     if (IsEncoderBitrateModeSupported(capabilityDataHevc_, VBR)) {
553         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODE_BITRATE_MODE, VBR);
554         ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
555     }
556 }
557 
558 /**
559  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1553
560  * @tc.desc: SQR is supported
561  * @tc.type: FUNC
562  */
563 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1553, TestSize.Level3)
564 {
565     SetFormatBasicParam(formatInner_);
566     if (IsEncoderBitrateModeSupported(capabilityDataHevc_, SQR)) {
567         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODE_BITRATE_MODE, SQR);
568         ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
569     }
570 }
571 
572 /**
573 * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1554
574 * @tc.desc: codec video configure quality in range and bitrate mode is SQR
575 * @tc.type: FUNC
576 */
577 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1554, TestSize.Level3)
578 {
579     SetFormatBasicParam(formatInner_);
580     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_QUALITY, DEFAULT_QUALITY);
581     if (IsEncoderBitrateModeSupported(capabilityDataHevc_, SQR)) {
582         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODE_BITRATE_MODE, SQR);
583         ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
584     }
585 }
586 
587 /**
588 * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1555
589 * @tc.desc: codec video configure quality which is not in range and bitrate mode is SQR
590 * @tc.type: FUNC
591 */
592 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1555, TestSize.Level3)
593 {
594     SetFormatBasicParam(formatInner_);
595     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_QUALITY, INT32_MAX);
596     if (IsEncoderBitrateModeSupported(capabilityDataHevc_, SQR)) {
597         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODE_BITRATE_MODE, SQR);
598         ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
599     }
600 }
601 
602 /**
603  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1556
604  * @tc.desc: codec video configure sqr_factor in range and bitrate mode is SQR
605  * @tc.type: FUNC
606  */
607 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1556, TestSize.Level3)
608 {
609     SetFormatBasicParam(formatInner_);
610     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_QUALITY, DEFAULT_QUALITY);
611     if (IsEncoderBitrateModeSupported(capabilityDataHevc_, SQR)) {
612         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_SQR_FACTOR, DEFAULT_SQR_FACTOR);
613         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODE_BITRATE_MODE, SQR);
614         ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
615     }
616 }
617 
618 /**
619  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1557
620  * @tc.desc: codec video configure bitrate exist value and mode is SQR
621  * @tc.type: FUNC
622  */
623 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1557, TestSize.Level3)
624 {
625     SetFormatBasicParam(formatInner_);
626     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_QUALITY, DEFAULT_QUALITY);
627     if (IsEncoderBitrateModeSupported(capabilityDataHevc_, SQR)) {
628         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODE_BITRATE_MODE, SQR);
629         formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_BITRATE, DEFAULT_BITRATE);
630         ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
631     }
632 }
633 
634 /**
635  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1558
636  * @tc.desc: codec video configure max_bitrate exist value and mode is SQR
637  * @tc.type: FUNC
638  */
639 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1558, TestSize.Level3)
640 {
641     SetFormatBasicParam(formatInner_);
642     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_QUALITY, DEFAULT_QUALITY);
643     if (IsEncoderBitrateModeSupported(capabilityDataHevc_, SQR)) {
644         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODE_BITRATE_MODE, SQR);
645         formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_MAX_BITRATE, DEFAULT_MAX_BITRATE);
646         ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
647     }
648 }
649 
650 /**
651  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1559
652  * @tc.desc: codec video configure bitrate and max_bitrate exist value and mode is SQR
653  * @tc.type: FUNC
654  */
655 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1559, TestSize.Level3)
656 {
657     SetFormatBasicParam(formatInner_);
658     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_QUALITY, DEFAULT_QUALITY);
659     if (IsEncoderBitrateModeSupported(capabilityDataHevc_, SQR)) {
660         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODE_BITRATE_MODE, SQR);
661         formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_BITRATE, DEFAULT_BITRATE);
662         formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_MAX_BITRATE, DEFAULT_MAX_BITRATE);
663         ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
664     }
665 }
666 
667 /**
668  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1560
669  * @tc.desc: codec video configure bitrate、max_bitrate and sqr_factor exist value and mode is SQR
670  * @tc.type: FUNC
671  */
672 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1560, TestSize.Level3)
673 {
674     SetFormatBasicParam(formatInner_);
675     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_QUALITY, DEFAULT_QUALITY);
676     if (IsEncoderBitrateModeSupported(capabilityDataHevc_, SQR)) {
677         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODE_BITRATE_MODE, SQR);
678         formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_BITRATE, DEFAULT_BITRATE);
679         formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_MAX_BITRATE, DEFAULT_MAX_BITRATE);
680         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_SQR_FACTOR, DEFAULT_SQR_FACTOR);
681         ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
682     }
683 }
684 
685 /**
686  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1561
687  * @tc.desc: codec video configure sqr_factor in range, max_bitrate and bitrate not in range, bitrate mode is SQR
688  * @tc.type: FUNC
689  */
690 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1561, TestSize.Level3)
691 {
692     SetFormatBasicParam(formatInner_);
693     if (IsEncoderBitrateModeSupported(capabilityDataHevc_, SQR)) {
694         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODE_BITRATE_MODE, SQR);
695         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_SQR_FACTOR, DEFAULT_SQR_FACTOR);
696         formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_BITRATE, INT64_MAX);
697         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_QUALITY, INT32_MAX);
698         std::shared_ptr<VideoCaps> codecInfo = std::make_shared<VideoCaps>(capabilityDataHevc_);
699         const auto &maxBitrateRange = codecInfo->GetSupportedMaxBitrate();
700         formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_MAX_BITRATE, maxBitrateRange.minVal - 1);
701         ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
702     }
703 }
704 
705 /**
706  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1562
707  * @tc.desc: codec video configure sqr_factor not in range and bitrate mode is SQR
708  * @tc.type: FUNC
709  */
710 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1562, TestSize.Level3)
711 {
712     SetFormatBasicParam(formatInner_);
713     std::shared_ptr<VideoCaps> codecInfo = std::make_shared<VideoCaps>(capabilityDataHevc_);
714     const auto &sqrFactorRange = codecInfo->GetSupportedSqrFactor();
715     formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_SQR_FACTOR, sqrFactorRange.maxVal + 1);
716     if (IsEncoderBitrateModeSupported(capabilityDataHevc_, SQR)) {
717         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODE_BITRATE_MODE, SQR);
718         ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
719     }
720 }
721 
722 /**
723  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1563
724  * @tc.desc: codec video configure sqr_factor not in range and bitrate mode is SQR
725  * @tc.type: FUNC
726  */
727 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1563, TestSize.Level3)
728 {
729     SetFormatBasicParam(formatInner_);
730     if (IsEncoderBitrateModeSupported(capabilityDataHevc_, SQR)) {
731         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODE_BITRATE_MODE, SQR);
732         std::shared_ptr<VideoCaps> codecInfo = std::make_shared<VideoCaps>(capabilityDataHevc_);
733         const auto &sqrFactorRange = codecInfo->GetSupportedSqrFactor();
734         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_SQR_FACTOR, sqrFactorRange.maxVal + 1);
735         formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_BITRATE, DEFAULT_BITRATE);
736         ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
737     }
738 }
739 
740 /**
741  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1564
742  * @tc.desc: codec video configure sqr_factor not in range and bitrate mode is SQR
743  * @tc.type: FUNC
744  */
745 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1564, TestSize.Level3)
746 {
747     SetFormatBasicParam(formatInner_);
748     if (IsEncoderBitrateModeSupported(capabilityDataHevc_, SQR)) {
749         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODE_BITRATE_MODE, SQR);
750         std::shared_ptr<VideoCaps> codecInfo = std::make_shared<VideoCaps>(capabilityDataHevc_);
751         const auto &sqrFactorRange = codecInfo->GetSupportedSqrFactor();
752         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_SQR_FACTOR, sqrFactorRange.maxVal + 1);
753         formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_MAX_BITRATE, DEFAULT_MAX_BITRATE);
754         ASSERT_EQ(AVCS_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
755     }
756 }
757 
758 /**
759  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1565
760  * @tc.desc: bitrate mode SQR is not supported
761  * @tc.type: FUNC
762  */
763 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1565, TestSize.Level3)
764 {
765     SetFormatBasicParam(formatInner_);
766     if (!IsEncoderBitrateModeSupported(capabilityDataHevc_, SQR)) {
767         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODE_BITRATE_MODE, SQR);
768         ASSERT_EQ(AV_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
769     }
770 }
771 
772 /**
773  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1566
774  * @tc.desc: itrate mode SQR is not supported
775  * @tc.type: FUNC
776  */
777 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1566, TestSize.Level3)
778 {
779     SetFormatBasicParam(formatInner_);
780     if (!IsEncoderBitrateModeSupported(capabilityDataHevc_, SQR)) {
781         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODE_BITRATE_MODE, SQR);
782         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_SQR_FACTOR, DEFAULT_SQR_FACTOR);
783         ASSERT_EQ(AV_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
784     }
785 }
786 
787 /**
788  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1567
789  * @tc.desc: itrate mode SQR is not supported
790  * @tc.type: FUNC
791  */
792 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1567, TestSize.Level3)
793 {
794     SetFormatBasicParam(formatInner_);
795     if (!IsEncoderBitrateModeSupported(capabilityDataHevc_, SQR)) {
796         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODE_BITRATE_MODE, SQR);
797         formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_MAX_BITRATE, DEFAULT_MAX_BITRATE);
798         ASSERT_EQ(AV_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
799     }
800 }
801 
802 /**
803  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1568
804  * @tc.desc: itrate mode SQR is not supported
805  * @tc.type: FUNC
806  */
807 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1568, TestSize.Level3)
808 {
809     SetFormatBasicParam(formatInner_);
810     if (!IsEncoderBitrateModeSupported(capabilityDataHevc_, SQR)) {
811         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODE_BITRATE_MODE, SQR);
812         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_SQR_FACTOR, INT32_MAX);
813         ASSERT_EQ(AV_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
814     }
815 }
816 
817 /**
818  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1569
819  * @tc.desc: itrate mode SQR is not supported
820  * @tc.type: FUNC
821  */
822 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1569, TestSize.Level3)
823 {
824     SetFormatBasicParam(formatInner_);
825     if (!IsEncoderBitrateModeSupported(capabilityDataHevc_, SQR)) {
826         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODE_BITRATE_MODE, SQR);
827         formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_MAX_BITRATE, INT64_MAX);
828         ASSERT_EQ(AV_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
829     }
830 }
831 
832 /**
833  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1570
834  * @tc.desc: itrate mode SQR is not supported
835  * @tc.type: FUNC
836  */
837 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1570, TestSize.Level3)
838 {
839     SetFormatBasicParam(formatInner_);
840     if (!IsEncoderBitrateModeSupported(capabilityDataHevc_, SQR)) {
841         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODE_BITRATE_MODE, SQR);
842         formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_BITRATE, DEFAULT_BITRATE);
843         ASSERT_EQ(AV_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
844     }
845 }
846 
847 /**
848  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1571
849  * @tc.desc: itrate mode SQR is not supported
850  * @tc.type: FUNC
851  */
852 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1571, TestSize.Level3)
853 {
854     SetFormatBasicParam(formatInner_);
855     if (!IsEncoderBitrateModeSupported(capabilityDataHevc_, SQR)) {
856         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODE_BITRATE_MODE, SQR);
857         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_QUALITY, DEFAULT_QUALITY);
858         ASSERT_EQ(AVCS_ERR_CODEC_PARAM_INCORRECT, videoEncHevcInner_->Configure(formatInner_));
859     }
860 }
861 
862 /**
863 * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1572
864 * @tc.desc: itrate mode SQR is not supported
865 * @tc.type: FUNC
866 */
867 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1572, TestSize.Level3)
868 {
869     SetFormatBasicParam(formatInner_);
870     if (!IsEncoderBitrateModeSupported(capabilityDataHevc_, SQR)) {
871         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODE_BITRATE_MODE, SQR);
872         formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_BITRATE, INT64_MAX);
873         ASSERT_EQ(AVCS_ERR_CODEC_PARAM_INCORRECT, videoEncHevcInner_->Configure(formatInner_));
874     }
875 }
876 
877 /**
878  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1573
879  * @tc.desc: itrate mode SQR is not supported
880  * @tc.type: FUNC
881  */
882 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1573, TestSize.Level3)
883 {
884     SetFormatBasicParam(formatInner_);
885     if (!IsEncoderBitrateModeSupported(capabilityDataHevc_, SQR)) {
886         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODE_BITRATE_MODE, SQR);
887         formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_BITRATE, DEFAULT_BITRATE);
888         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_SQR_FACTOR, INT32_MAX);
889         formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_MAX_BITRATE, INT64_MAX);
890         ASSERT_EQ(AV_ERR_OK, videoEncHevcInner_->Configure(formatInner_));
891     }
892 }
893 
894 /**
895  * @tc.name: ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1574
896  * @tc.desc: codec video configure sqr_factor not in range and bitrate mode is SQR
897  * @tc.type: FUNC
898  */
899 HWTEST_F(AVCodecParamCheckerTest, ENCODE_KEY_BITRATE_QUALLITY_INVALID_TEST_1574, TestSize.Level3)
900 {
901     SetFormatBasicParam(formatInner_);
902     if (IsEncoderBitrateModeSupported(capabilityDataHevc_, SQR)) {
903         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODE_BITRATE_MODE, SQR);
904         std::shared_ptr<VideoCaps> codecInfo = std::make_shared<VideoCaps>(capabilityDataHevc_);
905         const auto &sqrFactorRange = codecInfo->GetSupportedSqrFactor();
906         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_VIDEO_ENCODER_SQR_FACTOR, sqrFactorRange.maxVal + 1);
907         formatInner_.PutIntValue(MediaDescriptionKey::MD_KEY_QUALITY, DEFAULT_QUALITY);
908         formatInner_.PutLongValue(MediaDescriptionKey::MD_KEY_BITRATE, DEFAULT_BITRATE);
909         ASSERT_EQ(AVCS_ERR_CODEC_PARAM_INCORRECT, videoEncHevcInner_->Configure(formatInner_));
910     }
911 }
912 }