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 }