1 /*
2 * Copyright (c) 2022 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
16 #define private public
17 #define protected public
18 #include <filesystem>
19 #include <fstream>
20 #include <gtest/gtest.h>
21 #include <gtest/hwext/gtest-multithread.h>
22 #include <iostream>
23 #include <unistd.h>
24
25 #include "buffer_packer_stream.h"
26 #include "hilog/log.h"
27 #include "hilog/log_cpp.h"
28 #include "image_format_convert.h"
29 #include "image_format_convert_utils.h"
30 #include "image_log.h"
31 #include "image_source.h"
32 #include "image_type.h"
33 #include "image_utils.h"
34 #include "media_errors.h"
35
36 using namespace testing::mt;
37 using namespace testing::ext;
38 namespace OHOS {
39 namespace Media {
40 constexpr int32_t TREE_ORIGINAL_WIDTH = 800;
41 constexpr int32_t TREE_ORIGINAL_HEIGHT = 500;
42 constexpr int32_t ODDTREE_ORIGINAL_WIDTH = 951;
43 constexpr int32_t ODDTREE_ORIGINAL_HEIGHT = 595;
44 constexpr int32_t P010_ORIGINAL_WIDTH = 1920;
45 constexpr int32_t P010_ORIGINAL_HEIGHT = 1080;
46 constexpr uint32_t BYTES_PER_PIXEL_RGB565 = 2;
47 constexpr uint32_t BYTES_PER_PIXEL_RGB = 3;
48 constexpr uint32_t BYTES_PER_PIXEL_RGBA = 4;
49 constexpr uint32_t BYTES_PER_PIXEL_BGRA = 4;
50 constexpr uint32_t EVEN_ODD_DIVISOR = 2;
51 constexpr uint32_t TWO_SLICES = 2;
52 constexpr int32_t NUM_2 = 2;
53 constexpr int32_t NUM_4 = 4;
54
55 struct ImageSize {
56 int32_t width = 0;
57 int32_t height = 0;
58 float dstWidth = 0;
59 float dstHeight = 0;
60 const uint32_t color = 0;
61 uint32_t dst = 0;
62 };
63
64 static const std::string IMAGE_INPUT_JPG_PATH1 = "/data/local/tmp/image/800-500.jpg";
65 static const std::string IMAGE_INPUT_JPG_PATH2 = "/data/local/tmp/image/951-595.jpg";
66 static const std::string IMAGE_OUTPUT_JPG_PATH = "/data/local/tmp/";
67 static const std::string IMAGE_INPUT_YUV_PATH3 = "/data/local/tmp/image/P010.yuv";
68 static const std::string IMAGE_INPUT_RGBA_PATH4 = "/data/local/tmp/image/RGBA1010102.rgba";
69 class ImageFormatConvertTest : public testing::Test {
70 public:
ImageFormatConvertTest()71 ImageFormatConvertTest() {}
~ImageFormatConvertTest()72 ~ImageFormatConvertTest() {}
73 static ConvertFunction TestGetConvertFuncByFormat(PixelFormat srcFormat, PixelFormat destFormat);
74 void WriteToFile(const std::string &outpath, Size &imageSize, const std::string &outname, const uint8_t *data,
75 const uint32_t size);
76 bool ReadFile(void *chOrg, std::string path, int32_t totalsize, int32_t srcNum);
77 void RgbConvertToYuv(PixelFormat &srcFormat, PixelFormat &destFormat, Size &srcSize);
78 void RgbConvertToYuvP010(PixelFormat &srcFormat, PixelFormat &destFormat, Size &srcSize);
79 void Rgba1010102ConvertToYuvP010(PixelFormat &srcFormat, PixelFormat &destFormat, Size &srcSize,
80 uint32_t destBuffersize);
81 void YuvConvertToRgb(PixelFormat &srcFormat, PixelFormat &destFormat, Size &srcSize, uint32_t destBuffersize);
82 void YuvP010ConvertToRgb(PixelFormat &srcFormat, PixelFormat &destFormat, Size &srcSize, uint32_t destBuffersize);
83 void RgbConvertToYuvByPixelMap(PixelFormat &tempFormat, PixelFormat &srcFormat,
84 PixelFormat &destFormat, Size &srcSize);
85 void RgbConvertToYuvP010ByPixelMap(PixelFormat &tempFormat, PixelFormat &srcFormat,
86 PixelFormat &destFormat, Size &srcSize);
87 void *GetOrignData(PixelFormat srcFormat, Size imageSize);
88 void PixelMapFormatConvert(PixelFormat &srcFormat, PixelFormat &destFormat, Size &srcSize,
89 uint32_t destBuffersize);
90 void PixelMap10bitConvert(PixelFormat &srcFormat, PixelFormat &destFormat, Size &srcSize,
91 uint32_t destBuffersize);
92 };
93
TestGetConvertFuncByFormat(PixelFormat srcFormat,PixelFormat destFormat)94 ConvertFunction ImageFormatConvertTest::TestGetConvertFuncByFormat(PixelFormat srcFormat, PixelFormat destFormat)
95 {
96 return ImageFormatConvert::GetConvertFuncByFormat(srcFormat, destFormat);
97 }
98
GetNamedPixelFormat(const PixelFormat pixelFormat)99 static const string GetNamedPixelFormat(const PixelFormat pixelFormat)
100 {
101 switch (pixelFormat) {
102 case PixelFormat::UNKNOWN:
103 return "UNKNOWN";
104 case PixelFormat::RGB_565:
105 return "RGB_565";
106 case PixelFormat::RGB_888:
107 return "RGB_888";
108 case PixelFormat::NV21:
109 return "NV21";
110 case PixelFormat::NV12:
111 return "NV12";
112 case PixelFormat::RGBA_8888:
113 return "RGBA_8888";
114 case PixelFormat::BGRA_8888:
115 return "BGRA_8888";
116 case PixelFormat::RGBA_F16:
117 return "RGBA_F16";
118 case PixelFormat::RGBA_1010102:
119 return "RGBA_1010102";
120 case PixelFormat::YCBCR_P010:
121 return "YCBCR_P010";
122 case PixelFormat::YCRCB_P010:
123 return "YCRCB_P010";
124 default:
125 return "UNKNOWN";
126 }
127 return "UNKNOWN";
128 }
129
WriteToFile(const std::string & outpath,Size & imageSize,const std::string & outname,const uint8_t * data,const uint32_t size)130 void ImageFormatConvertTest::WriteToFile(const std::string &outpath, Size &imageSize, const std::string &outname,
131 const uint8_t *data, const uint32_t size)
132 {
133 std::filesystem::path dir(outpath);
134 if (!std::filesystem::exists(dir)) {
135 std::filesystem::create_directory(dir);
136 }
137
138 std::string filepath =
139 outpath + "/" + std::to_string(imageSize.width) + "-" + std::to_string(imageSize.height) + "-" + outname;
140
141 std::ofstream outfile(filepath, std::ios::out | std::ios::binary);
142 if (outfile.is_open()) {
143 outfile.write(reinterpret_cast<const char *>(data), size);
144 outfile.close();
145 } else {
146 ASSERT_TRUE(false);
147 }
148 }
149
RgbConvertToYuv(PixelFormat & srcFormat,PixelFormat & destFormat,Size & srcSize)150 void ImageFormatConvertTest::RgbConvertToYuv(PixelFormat &srcFormat, PixelFormat &destFormat, Size &srcSize)
151 {
152 uint32_t errorCode = 0;
153 SourceOptions opts;
154 opts.formatHint = "image/jpeg";
155 std::string jpgPath = srcSize.width % EVEN_ODD_DIVISOR == 0 ? IMAGE_INPUT_JPG_PATH1 : IMAGE_INPUT_JPG_PATH2;
156 std::shared_ptr<ImageSource> rImageSource = ImageSource::CreateImageSource(jpgPath, opts, errorCode);
157 ASSERT_EQ(errorCode, SUCCESS);
158 ASSERT_NE(rImageSource.get(), nullptr);
159
160 DecodeOptions decodeOpts;
161 decodeOpts.desiredPixelFormat = srcFormat;
162 decodeOpts.desiredSize.width = srcSize.width;
163 decodeOpts.desiredSize.height = srcSize.height;
164 std::shared_ptr<PixelMap> srcPixelMap = rImageSource->CreatePixelMap(decodeOpts, errorCode);
165 ASSERT_EQ(errorCode, SUCCESS);
166 ASSERT_NE(srcPixelMap.get(), nullptr);
167
168 auto yuvDataInfoTemp = srcPixelMap->yuvDataInfo_;
169 auto imageInfoTemp = srcPixelMap->imageInfo_;
170 srcPixelMap->yuvDataInfo_.yWidth = 0;
171 srcPixelMap->imageInfo_.size.width = 0;
172 uint32_t ret = ImageFormatConvert::ConvertImageFormat(srcPixelMap, destFormat);
173 ASSERT_NE(ret, SUCCESS);
174
175 srcPixelMap->yuvDataInfo_.yWidth = 1;
176 srcPixelMap->yuvDataInfo_.yHeight = 0;
177 ret = ImageFormatConvert::ConvertImageFormat(srcPixelMap, destFormat);
178 ASSERT_NE(ret, SUCCESS);
179
180 srcPixelMap->yuvDataInfo_.yHeight= PIXEL_MAP_MAX_RAM_SIZE;
181 srcPixelMap->yuvDataInfo_.yWidth = 2; // 2:Special case, anomalous branching
182 ret = ImageFormatConvert::ConvertImageFormat(srcPixelMap, destFormat);
183 ASSERT_NE(ret, SUCCESS);
184
185 srcPixelMap->yuvDataInfo_ = yuvDataInfoTemp;
186 srcPixelMap->imageInfo_ = imageInfoTemp;
187 ret = ImageFormatConvert::ConvertImageFormat(srcPixelMap, destFormat);
188 ASSERT_EQ(ret, SUCCESS);
189 uint8_t *data = const_cast<uint8_t *>(srcPixelMap->GetPixels());
190 ASSERT_NE(data, nullptr);
191
192 ImageInfo destImageInfo;
193 srcPixelMap->GetImageInfo(destImageInfo);
194 uint32_t buffersize = static_cast<size_t>(destImageInfo.size.width * destImageInfo.size.height +
195 ((destImageInfo.size.width + 1) / TWO_SLICES) * ((destImageInfo.size.height + 1) / TWO_SLICES) * TWO_SLICES);
196 ASSERT_EQ(srcPixelMap->GetPixelFormat(), destFormat);
197
198 Size size = destImageInfo.size;
199 std::string formatName = GetNamedPixelFormat(srcFormat) + "To" + GetNamedPixelFormat(destFormat) + ".yuv";
200 std::string outname = size.width % EVEN_ODD_DIVISOR == 0 ? "Tree_" + formatName : "Odd_" + formatName;
201 std::string outpath = IMAGE_OUTPUT_JPG_PATH + "RGBToYUV/";
202 WriteToFile(outpath, size, outname, data, buffersize);
203 }
204
YuvConvertToRgb(PixelFormat & srcFormat,PixelFormat & destFormat,Size & srcSize,uint32_t destBuffersize)205 void ImageFormatConvertTest::YuvConvertToRgb(PixelFormat &srcFormat, PixelFormat &destFormat, Size &srcSize,
206 uint32_t destBuffersize)
207 {
208 uint32_t errorCode = 0;
209 SourceOptions opts;
210 opts.formatHint = "image/jpeg";
211 std::string jpgPath = srcSize.width % EVEN_ODD_DIVISOR == 0 ? IMAGE_INPUT_JPG_PATH1 : IMAGE_INPUT_JPG_PATH2;
212 std::shared_ptr<ImageSource> rImageSource = ImageSource::CreateImageSource(jpgPath, opts, errorCode);
213 ASSERT_EQ(errorCode, SUCCESS);
214 ASSERT_NE(rImageSource.get(), nullptr);
215
216 DecodeOptions decodeOpts;
217 decodeOpts.desiredPixelFormat = srcFormat;
218 decodeOpts.desiredSize.width = srcSize.width;
219 decodeOpts.desiredSize.height = srcSize.height;
220 std::shared_ptr<PixelMap> srcPixelMap = rImageSource->CreatePixelMap(decodeOpts, errorCode);
221 ASSERT_EQ(errorCode, SUCCESS);
222 ASSERT_NE(srcPixelMap.get(), nullptr);
223
224 uint32_t ret = ImageFormatConvert::ConvertImageFormat(srcPixelMap, destFormat);
225 ASSERT_EQ(ret, SUCCESS);
226 uint8_t *data = const_cast<uint8_t *>(srcPixelMap->GetPixels());
227 ASSERT_NE(data, nullptr);
228 ASSERT_EQ(srcPixelMap->GetPixelFormat(), destFormat);
229
230 Size size;
231 size.width = srcPixelMap->GetWidth();
232 size.height = srcPixelMap->GetHeight();
233 std::string formatName = GetNamedPixelFormat(srcFormat) + "To" + GetNamedPixelFormat(destFormat) + ".rgb";
234 std::string outname = size.width % EVEN_ODD_DIVISOR == 0 ? "Tree_" + formatName : "Odd_" + formatName;
235 std::string outpath = IMAGE_OUTPUT_JPG_PATH + "YUVToRGB/";
236 WriteToFile(outpath, size, outname, data, destBuffersize);
237 }
238
ReadFile(void * chOrg,std::string path,int32_t totalsize,int32_t srcNum)239 bool ImageFormatConvertTest::ReadFile(void *chOrg, std::string path, int32_t totalsize, int32_t srcNum)
240 {
241 FILE* const fileOrg = fopen(path.c_str(), "rb");
242 if (fileOrg == nullptr) {
243 GTEST_LOG_(INFO) << "Cannot open" << path.c_str();
244 GTEST_LOG_(INFO) << "fopen";
245 return false;
246 }
247 if (srcNum == 0) {
248 size_t bytesOrg = fread(chOrg, sizeof(uint8_t), static_cast<size_t>(totalsize), fileOrg);
249 if (bytesOrg < static_cast<size_t>(totalsize)) {
250 GTEST_LOG_(INFO) << "Read fail";
251 return false;
252 }
253 } else {
254 size_t bytesOrg = fread(chOrg, sizeof(uint16_t), static_cast<size_t>(totalsize), fileOrg);
255 if (bytesOrg < static_cast<size_t>(totalsize)) {
256 GTEST_LOG_(INFO) << "Read fail " << bytesOrg << " totalsize" << totalsize;
257 return false;
258 }
259 }
260 return true;
261 }
262
YuvP010ConvertToRgb(PixelFormat & srcFormat,PixelFormat & destFormat,Size & srcSize,uint32_t destBuffersize)263 void ImageFormatConvertTest::YuvP010ConvertToRgb(PixelFormat &srcFormat, PixelFormat &destFormat, Size &srcSize,
264 uint32_t destBuffersize)
265 {
266 ImageSize imageSize;
267 imageSize.width = srcSize.width;
268 imageSize.height = srcSize.height;
269 int32_t ySize = imageSize.width * imageSize.height;
270 int32_t uvSize = ((imageSize.width + 1) / NUM_2) * ((imageSize.height + 1) / NUM_2);
271 const size_t totalSize = (ySize + NUM_2 * uvSize);
272 uint16_t* const chOrg = new uint16_t[totalSize];
273 bool result = ReadFile(chOrg, IMAGE_INPUT_YUV_PATH3, totalSize, 1);
274 ASSERT_EQ(result, true);
275
276 const uint32_t dataLength = totalSize * NUM_2;
277 uint32_t *data = reinterpret_cast<uint32_t *>(chOrg);
278 InitializationOptions opts;
279 opts.srcPixelFormat = srcFormat;
280 opts.pixelFormat = srcFormat;
281 opts.alphaType = AlphaType::IMAGE_ALPHA_TYPE_OPAQUE;
282 opts.size.width = imageSize.width;
283 opts.size.height = imageSize.height;
284 std::unique_ptr<PixelMap> pixelMap = PixelMap::Create(data, dataLength, opts);
285 ASSERT_NE(pixelMap.get(), nullptr);
286
287 std::shared_ptr<PixelMap> srcPixelMap = std::move(pixelMap);
288 uint32_t ret = ImageFormatConvert::ConvertImageFormat(srcPixelMap, destFormat);
289 ASSERT_EQ(ret, SUCCESS);
290 ASSERT_EQ(srcPixelMap->GetPixelFormat(), destFormat);
291
292 Size size;
293 size.width = srcPixelMap->GetWidth();
294 size.height = srcPixelMap->GetHeight();
295
296 std::string formatName = GetNamedPixelFormat(srcFormat) + "To" + GetNamedPixelFormat(destFormat) + ".yuv";
297 std::string outname = size.width % EVEN_ODD_DIVISOR == 0 ? "Tree_" + formatName : "Odd_" + formatName;
298 std::string outpath = IMAGE_OUTPUT_JPG_PATH + "P010ToRgba1010102/";
299 uint8_t *data8 = const_cast<uint8_t *>(srcPixelMap->GetPixels());
300 ASSERT_NE(data8, nullptr);
301 WriteToFile(outpath, size, outname, data8, destBuffersize);
302 }
303
Rgba1010102ConvertToYuvP010(PixelFormat & srcFormat,PixelFormat & destFormat,Size & srcSize,uint32_t destBuffersize)304 void ImageFormatConvertTest::Rgba1010102ConvertToYuvP010(PixelFormat &srcFormat, PixelFormat &destFormat, Size &srcSize,
305 uint32_t destBuffersize)
306 {
307 ImageSize imageSize;
308 imageSize.width = srcSize.width;
309 imageSize.height = srcSize.height;
310 int32_t ySize = imageSize.width * imageSize.height;
311 const size_t totalSize = ySize * NUM_4;
312 uint8_t* const chOrg = new uint8_t[totalSize];
313 bool result = ReadFile(chOrg, IMAGE_INPUT_RGBA_PATH4, totalSize, 0);
314 ASSERT_EQ(result, true);
315
316 const uint32_t dataLength = totalSize;
317 uint32_t *data = reinterpret_cast<uint32_t *>(chOrg);
318 InitializationOptions opts;
319 opts.srcPixelFormat = srcFormat;
320 opts.pixelFormat = srcFormat;
321 opts.alphaType = AlphaType::IMAGE_ALPHA_TYPE_PREMUL;
322 opts.size.width = imageSize.width;
323 opts.size.height = imageSize.height;
324 std::unique_ptr<PixelMap> pixelMap = PixelMap::Create(data, dataLength, opts);
325 ASSERT_NE(pixelMap.get(), nullptr);
326 std::shared_ptr<PixelMap> srcPixelMap = std::move(pixelMap);
327
328 uint32_t ret = ImageFormatConvert::ConvertImageFormat(srcPixelMap, destFormat);
329 ASSERT_EQ(ret, SUCCESS);
330 ASSERT_EQ(srcPixelMap->GetPixelFormat(), destFormat);
331
332 Size size;
333 size.width = srcPixelMap->GetWidth();
334 size.height = srcPixelMap->GetHeight();
335
336 std::string formatName = GetNamedPixelFormat(srcFormat) + "To" + GetNamedPixelFormat(destFormat) + ".yuv";
337 std::string outname = size.width % EVEN_ODD_DIVISOR == 0 ? "Tree_" + formatName : "Odd_" + formatName;
338 std::string outpath = IMAGE_OUTPUT_JPG_PATH + "Rgba1010102ToP010/";
339 uint8_t *data8 = const_cast<uint8_t *>(srcPixelMap->GetPixels());
340 ASSERT_NE(data8, nullptr);
341 WriteToFile(outpath, size, outname, data8, destBuffersize);
342 }
343
RgbConvertToYuvByPixelMap(PixelFormat & tempFormat,PixelFormat & srcFormat,PixelFormat & destFormat,Size & srcSize)344 void ImageFormatConvertTest::RgbConvertToYuvByPixelMap(PixelFormat &tempFormat, PixelFormat &srcFormat,
345 PixelFormat &destFormat, Size &srcSize)
346 {
347 uint32_t errorCode = 0;
348 SourceOptions opts;
349 opts.formatHint = "image/jpeg";
350 std::string jpgPath = srcSize.width % EVEN_ODD_DIVISOR == 0 ? IMAGE_INPUT_JPG_PATH1 : IMAGE_INPUT_JPG_PATH2;
351 auto rImageSource = ImageSource::CreateImageSource(jpgPath, opts, errorCode);
352 ASSERT_EQ(errorCode, SUCCESS);
353 ASSERT_NE(rImageSource.get(), nullptr);
354
355 DecodeOptions decodeOpts;
356 decodeOpts.desiredPixelFormat = tempFormat;
357 decodeOpts.desiredSize.width = srcSize.width;
358 decodeOpts.desiredSize.height = srcSize.height;
359 std::shared_ptr<PixelMap> srcPixelMap = nullptr;
360 srcPixelMap = rImageSource->CreatePixelMap(decodeOpts, errorCode);
361 ASSERT_EQ(errorCode, SUCCESS);
362 ASSERT_NE(srcPixelMap.get(), nullptr);
363
364 auto yuvDataInfoTemp = srcPixelMap->yuvDataInfo_;
365 auto imageInfoTemp = srcPixelMap->imageInfo_;
366 srcPixelMap->yuvDataInfo_.yWidth = 0;
367 srcPixelMap->imageInfo_.size.width = 0;
368 uint32_t tmpRet = ImageFormatConvert::ConvertImageFormat(srcPixelMap, srcFormat);
369 ASSERT_NE(tmpRet, SUCCESS);
370
371 srcPixelMap->yuvDataInfo_.yWidth = 1;
372 srcPixelMap->yuvDataInfo_.yHeight = 0;
373 tmpRet = ImageFormatConvert::ConvertImageFormat(srcPixelMap, srcFormat);
374 ASSERT_NE(tmpRet, SUCCESS);
375
376 srcPixelMap->yuvDataInfo_.yHeight= PIXEL_MAP_MAX_RAM_SIZE;
377 srcPixelMap->yuvDataInfo_.yWidth = 2; // 2:Special case, anomalous branching
378 tmpRet = ImageFormatConvert::ConvertImageFormat(srcPixelMap, srcFormat);
379 ASSERT_NE(tmpRet, SUCCESS);
380
381 srcPixelMap->yuvDataInfo_ = yuvDataInfoTemp;
382 srcPixelMap->imageInfo_ = imageInfoTemp;
383 tmpRet = ImageFormatConvert::ConvertImageFormat(srcPixelMap, srcFormat);
384 ASSERT_EQ(tmpRet, SUCCESS);
385 ASSERT_EQ(srcPixelMap->GetPixelFormat(), srcFormat);
386
387 uint32_t ret = ImageFormatConvert::ConvertImageFormat(srcPixelMap, destFormat);
388 ASSERT_EQ(ret, SUCCESS);
389 ASSERT_EQ(srcPixelMap->GetPixelFormat(), destFormat);
390 uint8_t *data = const_cast<uint8_t *>(srcPixelMap->GetPixels());
391 ASSERT_NE(data, nullptr);
392
393 ImageInfo destImageInfo;
394 srcPixelMap->GetImageInfo(destImageInfo);
395 uint32_t buffersize = static_cast<size_t>(destImageInfo.size.width * destImageInfo.size.height +
396 ((destImageInfo.size.width + 1) / TWO_SLICES) * ((destImageInfo.size.height + 1) / TWO_SLICES) * TWO_SLICES);
397
398 Size size = destImageInfo.size;
399 std::string formatName = GetNamedPixelFormat(srcFormat) + "To" + GetNamedPixelFormat(destFormat) + ".yuv";
400 std::string outname = size.width % EVEN_ODD_DIVISOR == 0 ? "Tree_" + formatName : "Odd_" + formatName;
401 std::string outpath = IMAGE_OUTPUT_JPG_PATH + "RGBToYUV/";
402 WriteToFile(outpath, size, outname, data, buffersize);
403 }
404
RgbConvertToYuvP010ByPixelMap(PixelFormat & tempFormat,PixelFormat & srcFormat,PixelFormat & destFormat,Size & srcSize)405 void ImageFormatConvertTest::RgbConvertToYuvP010ByPixelMap(PixelFormat &tempFormat, PixelFormat &srcFormat,
406 PixelFormat &destFormat, Size &srcSize)
407 {
408 uint32_t errorCode = 0;
409 SourceOptions opts;
410 opts.formatHint = "image/jpeg";
411 std::string jpgPath = srcSize.width % EVEN_ODD_DIVISOR == 0 ? IMAGE_INPUT_JPG_PATH1 : IMAGE_INPUT_JPG_PATH2;
412 auto rImageSource = ImageSource::CreateImageSource(jpgPath, opts, errorCode);
413 ASSERT_EQ(errorCode, SUCCESS);
414 ASSERT_NE(rImageSource.get(), nullptr);
415
416 DecodeOptions decodeOpts;
417 decodeOpts.desiredPixelFormat = tempFormat;
418 decodeOpts.desiredSize.width = srcSize.width;
419 decodeOpts.desiredSize.height = srcSize.height;
420 std::shared_ptr<PixelMap> srcPixelMap = nullptr;
421 srcPixelMap = rImageSource->CreatePixelMap(decodeOpts, errorCode);
422 ASSERT_EQ(errorCode, SUCCESS);
423 ASSERT_NE(srcPixelMap.get(), nullptr);
424
425 uint32_t tmpRet = ImageFormatConvert::ConvertImageFormat(srcPixelMap, srcFormat);
426 ASSERT_EQ(tmpRet, SUCCESS);
427 ASSERT_EQ(srcPixelMap->GetPixelFormat(), srcFormat);
428
429 uint32_t ret = ImageFormatConvert::ConvertImageFormat(srcPixelMap, destFormat);
430 ASSERT_EQ(ret, SUCCESS);
431 ASSERT_EQ(srcPixelMap->GetPixelFormat(), destFormat);
432 uint8_t *data = const_cast<uint8_t *>(srcPixelMap->GetPixels());
433 ASSERT_NE(data, nullptr);
434
435 ImageInfo destImageInfo;
436 srcPixelMap->GetImageInfo(destImageInfo);
437 uint32_t buffersize = static_cast<size_t>((destImageInfo.size.width * destImageInfo.size.height +
438 ((destImageInfo.size.width + 1) / TWO_SLICES) * ((destImageInfo.size.height + 1) / TWO_SLICES)
439 * TWO_SLICES) * TWO_SLICES);
440 Size size = destImageInfo.size;
441 std::string formatName = GetNamedPixelFormat(srcFormat) + "To" + GetNamedPixelFormat(destFormat) + "P010.yuv";
442 std::string outname = size.width % EVEN_ODD_DIVISOR == 0 ? "Tree_" + formatName : "Odd_" + formatName;
443 std::string outpath = IMAGE_OUTPUT_JPG_PATH + "RGBToYUVP010/";
444 WriteToFile(outpath, size, outname, data, buffersize);
445 }
446
RgbConvertToYuvP010(PixelFormat & srcFormat,PixelFormat & destFormat,Size & srcSize)447 void ImageFormatConvertTest::RgbConvertToYuvP010(PixelFormat &srcFormat, PixelFormat &destFormat, Size &srcSize)
448 {
449 uint32_t errorCode = 0;
450 SourceOptions opts;
451 opts.formatHint = "image/jpeg";
452 std::string jpgPath = srcSize.width % EVEN_ODD_DIVISOR == 0 ? IMAGE_INPUT_JPG_PATH1 : IMAGE_INPUT_JPG_PATH2;
453 std::shared_ptr<ImageSource> rImageSource = ImageSource::CreateImageSource(jpgPath, opts, errorCode);
454 ASSERT_EQ(errorCode, SUCCESS);
455 ASSERT_NE(rImageSource.get(), nullptr);
456
457 DecodeOptions decodeOpts;
458 decodeOpts.desiredPixelFormat = srcFormat;
459 decodeOpts.desiredSize.width = srcSize.width;
460 decodeOpts.desiredSize.height = srcSize.height;
461 std::shared_ptr<PixelMap> srcPixelMap = rImageSource->CreatePixelMap(decodeOpts, errorCode);
462 ASSERT_EQ(errorCode, SUCCESS);
463 ASSERT_NE(srcPixelMap.get(), nullptr);
464
465 uint32_t ret = ImageFormatConvert::ConvertImageFormat(srcPixelMap, destFormat);
466 ASSERT_EQ(ret, SUCCESS);
467 uint8_t *data = const_cast<uint8_t *>(srcPixelMap->GetPixels());
468 ASSERT_NE(data, nullptr);
469
470 ImageInfo destImageInfo;
471 srcPixelMap->GetImageInfo(destImageInfo);
472 uint32_t buffersize = static_cast<size_t>((destImageInfo.size.width * destImageInfo.size.height +
473 ((destImageInfo.size.width + 1) / TWO_SLICES) * ((destImageInfo.size.height + 1) / TWO_SLICES)
474 * TWO_SLICES) * TWO_SLICES);
475 ASSERT_EQ(srcPixelMap->GetPixelFormat(), destFormat);
476
477 Size size = destImageInfo.size;
478 std::string formatName = GetNamedPixelFormat(srcFormat) + "To" + GetNamedPixelFormat(destFormat) + "P010.yuv";
479 std::string outname = size.width % EVEN_ODD_DIVISOR == 0 ? "Tree_" + formatName : "Odd_" + formatName;
480 std::string outpath = IMAGE_OUTPUT_JPG_PATH + "RGBToYUVP010/";
481 WriteToFile(outpath, size, outname, data, buffersize);
482 }
483
GetOrignData(PixelFormat srcFormat,Size imageSize)484 void *ImageFormatConvertTest::GetOrignData(PixelFormat srcFormat, Size imageSize)
485 {
486 if (srcFormat == PixelFormat::YCBCR_P010 ||
487 srcFormat == PixelFormat::YCRCB_P010) {
488 int32_t ySize = imageSize.width * imageSize.height;
489 int32_t uvSize = ((imageSize.width + 1) / NUM_2) * ((imageSize.height + 1) / NUM_2);
490 const size_t totalSize = (ySize + NUM_2 * uvSize);
491 uint16_t* const chOrg = new uint16_t[totalSize];
492 bool result = ReadFile(chOrg, IMAGE_INPUT_YUV_PATH3, totalSize, 1);
493 return result == true ? chOrg : nullptr;
494 } else if (srcFormat == PixelFormat::RGBA_1010102) {
495 int32_t ySize = imageSize.width * imageSize.height;
496 const size_t totalSize = ySize * NUM_4;
497 uint8_t* const chOrg = new uint8_t[totalSize];
498 bool result = ReadFile(chOrg, IMAGE_INPUT_RGBA_PATH4, totalSize, 0);
499 return result == true ? chOrg : nullptr;
500 } else {
501 return nullptr;
502 }
503 }
504
PixelMapFormatConvert(PixelFormat & srcFormat,PixelFormat & destFormat,Size & srcSize,uint32_t destBuffersize)505 void ImageFormatConvertTest::PixelMapFormatConvert(PixelFormat &srcFormat, PixelFormat &destFormat,
506 Size &srcSize, uint32_t destBuffersize)
507 {
508 uint32_t errorCode = 0;
509 SourceOptions srcopts;
510 srcopts.formatHint = "image/jpeg";
511 std::string jpgPath = srcSize.width % EVEN_ODD_DIVISOR == 0 ? IMAGE_INPUT_JPG_PATH1 : IMAGE_INPUT_JPG_PATH2;
512 std::shared_ptr<ImageSource> rImageSource = ImageSource::CreateImageSource(jpgPath, srcopts, errorCode);
513 ASSERT_EQ(errorCode, SUCCESS);
514 ASSERT_NE(rImageSource.get(), nullptr);
515
516 DecodeOptions decodeOpts;
517 decodeOpts.desiredPixelFormat = srcFormat;
518 decodeOpts.desiredSize.width = srcSize.width;
519 decodeOpts.desiredSize.height = srcSize.height;
520 std::shared_ptr<PixelMap> srcPixelMap = rImageSource->CreatePixelMap(decodeOpts, errorCode);
521 ASSERT_EQ(errorCode, SUCCESS);
522 ASSERT_NE(srcPixelMap.get(), nullptr);
523
524 uint32_t *data = (uint32_t *)srcPixelMap->GetPixels();
525 const uint32_t dataLength = srcPixelMap->GetByteCount();
526 InitializationOptions opts;
527 opts.srcPixelFormat = srcFormat;
528 opts.pixelFormat = destFormat;
529 opts.alphaType = AlphaType::IMAGE_ALPHA_TYPE_PREMUL;
530 opts.size.width = srcSize.width;
531 opts.size.height = srcSize.height;
532
533 std::unique_ptr<PixelMap> pixelMap = PixelMap::Create(data, dataLength, opts);
534 ASSERT_NE(pixelMap.get(), nullptr);
535
536 Size size;
537 size.width = pixelMap->GetWidth();
538 size.height = pixelMap->GetHeight();
539 std::string formatName = GetNamedPixelFormat(srcFormat) + "To" + GetNamedPixelFormat(destFormat) + ".yuv";
540 std::string outname = size.width % EVEN_ODD_DIVISOR == 0 ? "Tree_" + formatName : "Odd_" + formatName;
541 std::string outpath = IMAGE_OUTPUT_JPG_PATH + "PixelConvert/";
542 uint8_t *data8 = const_cast<uint8_t *>(pixelMap->GetPixels());
543 ASSERT_NE(data8, nullptr);
544 WriteToFile(outpath, size, outname, data8, destBuffersize);
545 }
546
PixelMap10bitConvert(PixelFormat & srcFormat,PixelFormat & destFormat,Size & srcSize,uint32_t destBuffersize)547 void ImageFormatConvertTest::PixelMap10bitConvert(PixelFormat &srcFormat, PixelFormat &destFormat, Size &srcSize,
548 uint32_t destBuffersize)
549 {
550 uint32_t *data = (uint32_t *)GetOrignData(srcFormat, srcSize);
551 const uint32_t dataLength = ImageFormatConvert::GetBufferSizeByFormat(srcFormat, srcSize);
552 InitializationOptions opts;
553 opts.srcPixelFormat = srcFormat;
554 opts.pixelFormat = destFormat;
555 opts.alphaType = AlphaType::IMAGE_ALPHA_TYPE_PREMUL;
556 opts.size.width = srcSize.width;
557 opts.size.height = srcSize.height;
558
559 std::unique_ptr<PixelMap> pixelMap = PixelMap::Create(data, dataLength, opts);
560 ASSERT_NE(pixelMap.get(), nullptr);
561 Size size;
562 size.width = pixelMap->GetWidth();
563 size.height = pixelMap->GetHeight();
564
565 std::string formatName = GetNamedPixelFormat(srcFormat) + "To" + GetNamedPixelFormat(destFormat) + ".yuv";
566 std::string outname = size.width % EVEN_ODD_DIVISOR == 0 ? "Tree_" + formatName : "Odd_" + formatName;
567 std::string outpath = IMAGE_OUTPUT_JPG_PATH + "PixelConvert/";
568 uint8_t *data8 = const_cast<uint8_t *>(pixelMap->GetPixels());
569 ASSERT_NE(data8, nullptr);
570 WriteToFile(outpath, size, outname, data8, destBuffersize);
571 }
572
573 HWTEST_F(ImageFormatConvertTest, RGBAF16ToNV21_001, TestSize.Level3)
574 {
575 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBAF16ToNV21_001: start";
576 PixelFormat tempFormat = PixelFormat::NV12;
577 PixelFormat srcFormat = PixelFormat::RGBA_F16;
578 PixelFormat destFormat = PixelFormat::NV21;
579 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
580 RgbConvertToYuvByPixelMap(tempFormat, srcFormat, destFormat, srcSize);
581 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBAF16ToNV21_001: end";
582 }
583
584 HWTEST_F(ImageFormatConvertTest, RGBAF16ToNV21_002, TestSize.Level3)
585 {
586 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBAF16ToNV21_002: start";
587 PixelFormat tempFormat = PixelFormat::NV12;
588 PixelFormat srcFormat = PixelFormat::RGBA_F16;
589 PixelFormat destFormat = PixelFormat::NV21;
590 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
591 RgbConvertToYuvByPixelMap(tempFormat, srcFormat, destFormat, srcSize);
592 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBAF16ToNV21_002: end";
593 }
594
595 HWTEST_F(ImageFormatConvertTest, RGBAF16ToNV12_001, TestSize.Level3)
596 {
597 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBAF16ToNV12_001: start";
598 PixelFormat tempFormat = PixelFormat::NV21;
599 PixelFormat srcFormat = PixelFormat::RGBA_F16;
600 PixelFormat destFormat = PixelFormat::NV12;
601 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
602 RgbConvertToYuvByPixelMap(tempFormat, srcFormat, destFormat, srcSize);
603 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBAF16ToNV12_001: end";
604 }
605
606 HWTEST_F(ImageFormatConvertTest, RGBAF16ToNV12_002, TestSize.Level3)
607 {
608 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBAF16ToNV12_002: start";
609 PixelFormat tempFormat = PixelFormat::NV21;
610 PixelFormat srcFormat = PixelFormat::RGBA_F16;
611 PixelFormat destFormat = PixelFormat::NV12;
612 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
613 RgbConvertToYuvByPixelMap(tempFormat, srcFormat, destFormat, srcSize);
614 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBAF16ToNV12_002: end";
615 }
616
617 HWTEST_F(ImageFormatConvertTest, RGBAToNV21_001, TestSize.Level3)
618 {
619 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBAToNV21_001: start";
620 PixelFormat tempFormat = PixelFormat::NV12;
621 PixelFormat srcFormat = PixelFormat::RGBA_8888;
622 PixelFormat destFormat = PixelFormat::NV21;
623 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
624 RgbConvertToYuvByPixelMap(tempFormat, srcFormat, destFormat, srcSize);
625 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBToNV21_001: end";
626 }
627
628 HWTEST_F(ImageFormatConvertTest, RGBAToNV21_002, TestSize.Level3)
629 {
630 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBAToNV21_002: start";
631 PixelFormat tempFormat = PixelFormat::NV12;
632 PixelFormat srcFormat = PixelFormat::RGBA_8888;
633 PixelFormat destFormat = PixelFormat::NV21;
634 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
635 RgbConvertToYuvByPixelMap(tempFormat, srcFormat, destFormat, srcSize);
636 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBToNV21_002: end";
637 }
638
639 HWTEST_F(ImageFormatConvertTest, RGBAToNV12_001, TestSize.Level3)
640 {
641 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBAToNV12_001: start";
642 PixelFormat tempFormat = PixelFormat::NV21;
643 PixelFormat srcFormat = PixelFormat::RGBA_8888;
644 PixelFormat destFormat = PixelFormat::NV12;
645 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
646 RgbConvertToYuvByPixelMap(tempFormat, srcFormat, destFormat, srcSize);
647 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBAToNV12_001: end";
648 }
649
650 HWTEST_F(ImageFormatConvertTest, RGBAToNV12_002, TestSize.Level3)
651 {
652 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBAToNV12_002: start";
653 PixelFormat tempFormat = PixelFormat::NV21;
654 PixelFormat srcFormat = PixelFormat::RGBA_8888;
655 PixelFormat destFormat = PixelFormat::NV12;
656 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
657 RgbConvertToYuvByPixelMap(tempFormat, srcFormat, destFormat, srcSize);
658 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBAToNV12_002: end";
659 }
660
661 HWTEST_F(ImageFormatConvertTest, RGBToNV21_001, TestSize.Level3)
662 {
663 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBToNV21_001: start";
664 PixelFormat tempFormat = PixelFormat::NV12;
665 PixelFormat srcFormat = PixelFormat::RGB_888;
666 PixelFormat destFormat = PixelFormat::NV21;
667 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
668 RgbConvertToYuvByPixelMap(tempFormat, srcFormat, destFormat, srcSize);
669 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBToNV21_001: end";
670 }
671
672 HWTEST_F(ImageFormatConvertTest, RGBToNV21_002, TestSize.Level1)
673 {
674 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBToNV21_002: start";
675 PixelFormat tempFormat = PixelFormat::NV12;
676 PixelFormat srcFormat = PixelFormat::RGB_888;
677 PixelFormat destFormat = PixelFormat::NV21;
678 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
679 RgbConvertToYuvByPixelMap(tempFormat, srcFormat, destFormat, srcSize);
680 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBToNV21_002: end";
681 }
682
683 HWTEST_F(ImageFormatConvertTest, RGBToNV12_001, TestSize.Level3)
684 {
685 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBToNV12_001: start";
686 PixelFormat tempFormat = PixelFormat::NV21;
687 PixelFormat srcFormat = PixelFormat::RGB_888;
688 PixelFormat destFormat = PixelFormat::NV12;
689 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
690 RgbConvertToYuvByPixelMap(tempFormat, srcFormat, destFormat, srcSize);
691 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBToNV12_001: end";
692 }
693
694 HWTEST_F(ImageFormatConvertTest, RGBToNV12_002, TestSize.Level3)
695 {
696 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBToNV12_002: start";
697 PixelFormat tempFormat = PixelFormat::NV21;
698 PixelFormat srcFormat = PixelFormat::RGB_888;
699 PixelFormat destFormat = PixelFormat::NV12;
700 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
701 RgbConvertToYuvByPixelMap(tempFormat, srcFormat, destFormat, srcSize);
702 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBToNV12_002: end";
703 }
704
705 HWTEST_F(ImageFormatConvertTest, RGB565ToNV12_001, TestSize.Level3)
706 {
707 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGB565ToNV12_001: start";
708 PixelFormat srcFormat = PixelFormat::RGB_565;
709 PixelFormat destFormat = PixelFormat::NV12;
710 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
711 RgbConvertToYuv(srcFormat, destFormat, srcSize);
712 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGB565ToNV12_001: end";
713 }
714
715 HWTEST_F(ImageFormatConvertTest, RGB565ToNV12_002, TestSize.Level3)
716 {
717 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGB565ToNV12_002: start";
718 PixelFormat srcFormat = PixelFormat::RGB_565;
719 PixelFormat destFormat = PixelFormat::NV12;
720 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
721 RgbConvertToYuv(srcFormat, destFormat, srcSize);
722 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGB565ToNV12_002: end";
723 }
724
725 HWTEST_F(ImageFormatConvertTest, RGB565ToNV21_001, TestSize.Level3)
726 {
727 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGB565ToNV21_001: start";
728 PixelFormat srcFormat = PixelFormat::RGB_565;
729 PixelFormat destFormat = PixelFormat::NV21;
730 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
731 RgbConvertToYuv(srcFormat, destFormat, srcSize);
732 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGB565ToNV21_001: end";
733 }
734
735 HWTEST_F(ImageFormatConvertTest, RGB565ToNV21_002, TestSize.Level3)
736 {
737 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGB565ToNV21_002: start";
738 PixelFormat srcFormat = PixelFormat::RGB_565;
739 PixelFormat destFormat = PixelFormat::NV21;
740 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
741 RgbConvertToYuv(srcFormat, destFormat, srcSize);
742 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGB565ToNV21_002: end";
743 }
744
745 HWTEST_F(ImageFormatConvertTest, BGRAToNV21_001, TestSize.Level3)
746 {
747 GTEST_LOG_(INFO) << "ImageFormatConvertTest.BGRAToNV21_001: start";
748 PixelFormat srcFormat = PixelFormat::BGRA_8888;
749 PixelFormat destFormat = PixelFormat::NV21;
750 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
751 RgbConvertToYuv(srcFormat, destFormat, srcSize);
752 GTEST_LOG_(INFO) << "ImageFormatConvertTest.BGRAToNV21_001: end";
753 }
754
755 HWTEST_F(ImageFormatConvertTest, BGRAToNV21_002, TestSize.Level3)
756 {
757 GTEST_LOG_(INFO) << "ImageFormatConvertTest.BGRAToNV21_002: start";
758 PixelFormat srcFormat = PixelFormat::BGRA_8888;
759 PixelFormat destFormat = PixelFormat::NV21;
760 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
761 RgbConvertToYuv(srcFormat, destFormat, srcSize);
762 GTEST_LOG_(INFO) << "ImageFormatConvertTest.BGRAToNV21_002: end";
763 }
764
765 HWTEST_F(ImageFormatConvertTest, BGRAToNV12_001, TestSize.Level3)
766 {
767 GTEST_LOG_(INFO) << "ImageFormatConvertTest.BGRAToNV12_001: start";
768 PixelFormat srcFormat = PixelFormat::BGRA_8888;
769 PixelFormat destFormat = PixelFormat::NV12;
770 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
771 RgbConvertToYuv(srcFormat, destFormat, srcSize);
772 GTEST_LOG_(INFO) << "ImageFormatConvertTest.BGRAToNV12_001: end";
773 }
774
775 HWTEST_F(ImageFormatConvertTest, BGRAToNV12_002, TestSize.Level3)
776 {
777 GTEST_LOG_(INFO) << "ImageFormatConvertTest.BGRAToNV12_002: start";
778 PixelFormat srcFormat = PixelFormat::BGRA_8888;
779 PixelFormat destFormat = PixelFormat::NV12;
780 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
781 RgbConvertToYuv(srcFormat, destFormat, srcSize);
782 GTEST_LOG_(INFO) << "ImageFormatConvertTest.BGRAToNV12_002: end";
783 }
784
785 HWTEST_F(ImageFormatConvertTest, NV21ToRGB_001, TestSize.Level3)
786 {
787 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBToNV12_001: start";
788 PixelFormat srcFormat = PixelFormat::NV21;
789 PixelFormat destFormat = PixelFormat::RGB_888;
790 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
791 uint32_t destBuffersize = TREE_ORIGINAL_WIDTH * TREE_ORIGINAL_HEIGHT * BYTES_PER_PIXEL_RGB;
792 YuvConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
793 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBToNV12_001: end";
794 }
795
796 HWTEST_F(ImageFormatConvertTest, NV21ToRGB_002, TestSize.Level3)
797 {
798 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBToNV12_002: start";
799 PixelFormat srcFormat = PixelFormat::NV21;
800 PixelFormat destFormat = PixelFormat::RGB_888;
801 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
802 uint32_t destBuffersize = ODDTREE_ORIGINAL_WIDTH * ODDTREE_ORIGINAL_HEIGHT * BYTES_PER_PIXEL_RGB;
803 YuvConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
804 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBToNV12_002: end";
805 }
806
807 HWTEST_F(ImageFormatConvertTest, NV21ToRGBA_001, TestSize.Level3)
808 {
809 GTEST_LOG_(INFO) << "ImageFormatConvertTest.NV21ToRGBA_001: start";
810 PixelFormat srcFormat = PixelFormat::NV21;
811 PixelFormat destFormat = PixelFormat::RGBA_8888;
812 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
813 uint32_t destBuffersize = TREE_ORIGINAL_WIDTH * TREE_ORIGINAL_HEIGHT * BYTES_PER_PIXEL_RGBA;
814 YuvConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
815 GTEST_LOG_(INFO) << "ImageFormatConvertTest.NV21ToRGBA_001: end";
816 }
817
818 HWTEST_F(ImageFormatConvertTest, NV21ToRGBA_002, TestSize.Level3)
819 {
820 GTEST_LOG_(INFO) << "ImageFormatConvertTest.NV21ToRGBA_002: start";
821 PixelFormat srcFormat = PixelFormat::NV21;
822 PixelFormat destFormat = PixelFormat::RGBA_8888;
823 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
824 uint32_t destBuffersize = ODDTREE_ORIGINAL_WIDTH * ODDTREE_ORIGINAL_HEIGHT * BYTES_PER_PIXEL_RGBA;
825 YuvConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
826 GTEST_LOG_(INFO) << "ImageFormatConvertTest.NV21ToRGBA_002: end";
827 }
828
829 HWTEST_F(ImageFormatConvertTest, NV21ToBGRA_001, TestSize.Level3)
830 {
831 GTEST_LOG_(INFO) << "ImageFormatConvertTest.NV21ToBGRA_001: start";
832 PixelFormat srcFormat = PixelFormat::NV21;
833 PixelFormat destFormat = PixelFormat::BGRA_8888;
834 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
835 uint32_t destBuffersize = TREE_ORIGINAL_WIDTH * TREE_ORIGINAL_HEIGHT * BYTES_PER_PIXEL_BGRA;
836 YuvConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
837 GTEST_LOG_(INFO) << "ImageFormatConvertTest.NV21ToBGRA_001: end";
838 }
839
840 HWTEST_F(ImageFormatConvertTest, NV21ToBGRA_002, TestSize.Level3)
841 {
842 GTEST_LOG_(INFO) << "ImageFormatConvertTest.NV21ToBGRA_002: start";
843 PixelFormat srcFormat = PixelFormat::NV21;
844 PixelFormat destFormat = PixelFormat::BGRA_8888;
845 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
846 uint32_t destBuffersize = ODDTREE_ORIGINAL_WIDTH * ODDTREE_ORIGINAL_HEIGHT * BYTES_PER_PIXEL_BGRA;
847 YuvConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
848 GTEST_LOG_(INFO) << "ImageFormatConvertTest.NV21ToBGRA_002: end";
849 }
850
851 HWTEST_F(ImageFormatConvertTest, NV21ToRGB565_001, TestSize.Level3)
852 {
853 GTEST_LOG_(INFO) << "ImageFormatConvertTest.NV21ToRGB565_001: start";
854 PixelFormat srcFormat = PixelFormat::NV21;
855 PixelFormat destFormat = PixelFormat::RGB_565;
856 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
857 uint32_t destBuffersize = TREE_ORIGINAL_WIDTH * TREE_ORIGINAL_HEIGHT * BYTES_PER_PIXEL_RGB565;
858 YuvConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
859 GTEST_LOG_(INFO) << "ImageFormatConvertTest.NV21ToRGB565_001: end";
860 }
861
862 HWTEST_F(ImageFormatConvertTest, NV21ToRGB565_002, TestSize.Level3)
863 {
864 GTEST_LOG_(INFO) << "ImageFormatConvertTest.NV21ToRGB565_002: start";
865 PixelFormat srcFormat = PixelFormat::NV21;
866 PixelFormat destFormat = PixelFormat::RGB_565;
867 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
868 uint32_t destBuffersize = srcSize.width * srcSize.height * BYTES_PER_PIXEL_RGB565;
869 YuvConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
870 GTEST_LOG_(INFO) << "ImageFormatConvertTest.NV21ToRGB565_002: end";
871 }
872
873 HWTEST_F(ImageFormatConvertTest, NV21ToNV12_001, TestSize.Level1)
874 {
875 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV21ToNV12_001 start";
876 PixelFormat srcFormat = PixelFormat::NV21;
877 PixelFormat destFormat = PixelFormat::NV12;
878 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
879 uint32_t destBuffersize = srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
880 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES;
881 YuvConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
882 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV21ToNV12_001 end";
883 }
884
885 HWTEST_F(ImageFormatConvertTest, NV21ToNV12_002, TestSize.Level1)
886 {
887 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV21ToNV12_002 start";
888 PixelFormat srcFormat = PixelFormat::NV21;
889 PixelFormat destFormat = PixelFormat::NV12;
890 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
891 uint32_t destBuffersize = srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
892 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES;
893 YuvConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
894 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV21ToNV12_002 end";
895 }
896
897 HWTEST_F(ImageFormatConvertTest, NV12ToNV21_001, TestSize.Level1)
898 {
899 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12ToNV21_001 start";
900 PixelFormat srcFormat = PixelFormat::NV12;
901 PixelFormat destFormat = PixelFormat::NV21;
902 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
903 uint32_t destBuffersize = srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
904 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES;
905 YuvConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
906 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12ToNV21_001 end";
907 }
908
909 HWTEST_F(ImageFormatConvertTest, NV12ToNV21_002, TestSize.Level1)
910 {
911 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12ToNV21_002 start";
912 PixelFormat srcFormat = PixelFormat::NV12;
913 PixelFormat destFormat = PixelFormat::NV21;
914 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
915 uint32_t destBuffersize = srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
916 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES;
917 YuvConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
918 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12ToNV21_002 end";
919 }
920
921 HWTEST_F(ImageFormatConvertTest, NV12ToRGB565_001, TestSize.Level1)
922 {
923 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12ToRGB565_001 start";
924 PixelFormat srcFormat = PixelFormat::NV12;
925 PixelFormat destFormat = PixelFormat::RGB_565;
926 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
927 uint32_t destBuffersize = TREE_ORIGINAL_WIDTH * TREE_ORIGINAL_HEIGHT * BYTES_PER_PIXEL_RGB565;
928 YuvConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
929 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12ToRGB565_001 end";
930 }
931
932 HWTEST_F(ImageFormatConvertTest, NV12ToRGB565_002, TestSize.Level1)
933 {
934 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12ToRGB565_002 start";
935 PixelFormat srcFormat = PixelFormat::NV12;
936 PixelFormat destFormat = PixelFormat::RGB_565;
937 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
938 uint32_t destBuffersize = ODDTREE_ORIGINAL_WIDTH * ODDTREE_ORIGINAL_HEIGHT * BYTES_PER_PIXEL_RGB565;
939 YuvConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
940 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12ToRGB565_002 end";
941 }
942
943 HWTEST_F(ImageFormatConvertTest, NV21ToRGBAF16_001, TestSize.Level1)
944 {
945 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV21ToRGBAF16_Test_001 start";
946 PixelFormat srcFormat = PixelFormat::NV21;
947 PixelFormat destFormat = PixelFormat::RGBA_F16;
948 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
949 uint32_t destBuffersize = TREE_ORIGINAL_WIDTH * TREE_ORIGINAL_HEIGHT * sizeof(uint64_t);
950 YuvConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
951 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV21ToRGBAF16_001 end";
952 }
953
954 HWTEST_F(ImageFormatConvertTest, NV21ToRGBAF16_002, TestSize.Level1)
955 {
956 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV21ToRGBAF16_002 start";
957 PixelFormat srcFormat = PixelFormat::NV21;
958 PixelFormat destFormat = PixelFormat::RGBA_F16;
959 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
960 uint32_t destBuffersize = ODDTREE_ORIGINAL_WIDTH * ODDTREE_ORIGINAL_HEIGHT * sizeof(uint64_t);
961 YuvConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
962 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV21ToRGBAF16_002 end";
963 }
964 HWTEST_F(ImageFormatConvertTest, NV12ToRGBAF16_001, TestSize.Level1)
965 {
966 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12ToRGBAF16_001 start";
967 PixelFormat srcFormat = PixelFormat::NV12;
968 PixelFormat destFormat = PixelFormat::RGBA_F16;
969 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
970 uint32_t destBuffersize = TREE_ORIGINAL_WIDTH * TREE_ORIGINAL_HEIGHT * sizeof(uint64_t);
971 YuvConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
972 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12ToRGBAF16_001 end";
973 }
974
975 HWTEST_F(ImageFormatConvertTest, NV12ToRGBAF16_002, TestSize.Level1)
976 {
977 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12ToRGBAF16_002 start";
978 PixelFormat srcFormat = PixelFormat::NV12;
979 PixelFormat destFormat = PixelFormat::RGBA_F16;
980 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
981 uint32_t destBuffersize = ODDTREE_ORIGINAL_WIDTH * ODDTREE_ORIGINAL_HEIGHT * sizeof(uint64_t);
982 YuvConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
983 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12ToRGBAF16_002 end";
984 }
985
986 HWTEST_F(ImageFormatConvertTest, NV12ToRGBA_001, TestSize.Level1)
987 {
988 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12ToRGBA_001 start";
989 PixelFormat srcFormat = PixelFormat::NV12;
990 PixelFormat destFormat = PixelFormat::RGBA_8888;
991 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
992 uint32_t destBuffersize = TREE_ORIGINAL_WIDTH * TREE_ORIGINAL_HEIGHT * BYTES_PER_PIXEL_RGBA;
993 YuvConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
994 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12ToRGBA_001 end";
995 }
996
997 HWTEST_F(ImageFormatConvertTest, NV12ToRGBA_002, TestSize.Level1)
998 {
999 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12ToRGBA_002 start";
1000 PixelFormat srcFormat = PixelFormat::NV12;
1001 PixelFormat destFormat = PixelFormat::RGBA_8888;
1002 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
1003 uint32_t destBuffersize = ODDTREE_ORIGINAL_WIDTH * ODDTREE_ORIGINAL_HEIGHT * BYTES_PER_PIXEL_RGBA;
1004 YuvConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
1005 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12ToRGBA_002 end";
1006 }
1007
1008 HWTEST_F(ImageFormatConvertTest, NV12ToBGRA_001, TestSize.Level1)
1009 {
1010 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12ToBGRA_001 start";
1011 PixelFormat srcFormat = PixelFormat::NV12;
1012 PixelFormat destFormat = PixelFormat::BGRA_8888;
1013 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
1014 uint32_t destBuffersize = TREE_ORIGINAL_WIDTH * TREE_ORIGINAL_HEIGHT * BYTES_PER_PIXEL_BGRA;
1015 YuvConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
1016 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12ToBGRA_001 end";
1017 }
1018
1019 HWTEST_F(ImageFormatConvertTest, NV12ToBGRA_002, TestSize.Level1)
1020 {
1021 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12ToBGRA_002 start";
1022 PixelFormat srcFormat = PixelFormat::NV12;
1023 PixelFormat destFormat = PixelFormat::BGRA_8888;
1024 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
1025 uint32_t destBuffersize = ODDTREE_ORIGINAL_WIDTH * ODDTREE_ORIGINAL_HEIGHT * BYTES_PER_PIXEL_BGRA;
1026 YuvConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
1027 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12ToBGRA_002 end";
1028 }
1029
1030 HWTEST_F(ImageFormatConvertTest, NV12ToRGB_001, TestSize.Level1)
1031 {
1032 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12ToRGB_001 start";
1033 PixelFormat srcFormat = PixelFormat::NV12;
1034 PixelFormat destFormat = PixelFormat::RGB_888;
1035 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
1036 uint32_t destBuffersize = TREE_ORIGINAL_WIDTH * TREE_ORIGINAL_HEIGHT * BYTES_PER_PIXEL_RGB;
1037 YuvConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
1038 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12ToRGB_001 end";
1039 }
1040
1041 HWTEST_F(ImageFormatConvertTest, NV12ToRGB_002, TestSize.Level1)
1042 {
1043 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12ToRGB_002 start";
1044 PixelFormat srcFormat = PixelFormat::NV12;
1045 PixelFormat destFormat = PixelFormat::RGB_888;
1046 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
1047 uint32_t destBuffersize = ODDTREE_ORIGINAL_WIDTH * ODDTREE_ORIGINAL_HEIGHT * BYTES_PER_PIXEL_RGB;
1048 YuvConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
1049 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12ToRGB_002 end";
1050 }
1051
1052 HWTEST_F(ImageFormatConvertTest, NV21ToNV12P010_001, TestSize.Level1)
1053 {
1054 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV21ToNV12P010_001 start";
1055 PixelFormat srcFormat = PixelFormat::NV21;
1056 PixelFormat destFormat = PixelFormat::YCBCR_P010;
1057 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
1058 uint32_t destBuffersize = (srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
1059 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES) * TWO_SLICES;
1060 YuvConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
1061 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV21ToNV12P010_001 end";
1062 }
1063
1064 HWTEST_F(ImageFormatConvertTest, NV21ToNV12P010_002, TestSize.Level1)
1065 {
1066 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV21ToNV12P010_002 start";
1067 PixelFormat srcFormat = PixelFormat::NV21;
1068 PixelFormat destFormat = PixelFormat::YCBCR_P010;
1069 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
1070 uint32_t destBuffersize = (srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
1071 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES) * TWO_SLICES;
1072 YuvConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
1073 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV21ToNV12P010_002 end";
1074 }
1075
1076 HWTEST_F(ImageFormatConvertTest, NV12P010ToNV12_003, TestSize.Level1)
1077 {
1078 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12P010ToNV12_003 start";
1079 PixelFormat srcFormat = PixelFormat::YCBCR_P010;
1080 PixelFormat destFormat = PixelFormat::NV12;
1081 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1082 uint32_t destBuffersize = srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
1083 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES;
1084 YuvP010ConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
1085 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12P010ToNV12_003 end";
1086 }
1087
1088 HWTEST_F(ImageFormatConvertTest, NV12ToNV12P010_001, TestSize.Level1)
1089 {
1090 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12ToNV12P010_001 start";
1091 PixelFormat srcFormat = PixelFormat::NV12;
1092 PixelFormat destFormat = PixelFormat::YCBCR_P010;
1093 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
1094 uint32_t destBuffersize = (srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
1095 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES) * TWO_SLICES;
1096 YuvConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
1097 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12ToNV12P010_001 end";
1098 }
1099
1100 HWTEST_F(ImageFormatConvertTest, NV12ToNV12P010_002, TestSize.Level1)
1101 {
1102 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12ToNV12P010_002 start";
1103 PixelFormat srcFormat = PixelFormat::NV12;
1104 PixelFormat destFormat = PixelFormat::YCBCR_P010;
1105 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
1106 uint32_t destBuffersize = (srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
1107 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES) * TWO_SLICES;
1108 YuvConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
1109 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12ToNV12P010_002 end";
1110 }
1111
1112 HWTEST_F(ImageFormatConvertTest, NV12P010ToNV21_003, TestSize.Level1)
1113 {
1114 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12P010ToNV21_003 start";
1115 PixelFormat srcFormat = PixelFormat::YCBCR_P010;
1116 PixelFormat destFormat = PixelFormat::NV21;
1117 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1118 uint32_t destBuffersize = srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
1119 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES;
1120 YuvP010ConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
1121 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12P010ToNV21_003 end";
1122 }
1123
1124 HWTEST_F(ImageFormatConvertTest, NV12P010ToNV21P010_003, TestSize.Level1)
1125 {
1126 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12P010ToNV21P010_003 start";
1127 PixelFormat srcFormat = PixelFormat::YCBCR_P010;
1128 PixelFormat destFormat = PixelFormat::YCRCB_P010;
1129 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1130 uint32_t destBuffersize = (srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
1131 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES) * TWO_SLICES;
1132 YuvP010ConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
1133 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12P010ToNV21P010_003 end";
1134 }
1135
1136 HWTEST_F(ImageFormatConvertTest, NV12P010ToRGB565_003, TestSize.Level3)
1137 {
1138 GTEST_LOG_(INFO) << "ImageFormatConvertTest.NV12P010ToRGB565_003: start";
1139 PixelFormat srcFormat = PixelFormat::YCBCR_P010;
1140 PixelFormat destFormat = PixelFormat::RGB_565;
1141 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1142 uint32_t destBuffersize = srcSize.width * srcSize.height * BYTES_PER_PIXEL_RGB565;
1143 YuvP010ConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
1144 GTEST_LOG_(INFO) << "ImageFormatConvertTest.NV12P010ToRGB565_003: end";
1145 }
1146
1147 HWTEST_F(ImageFormatConvertTest, NV12P010ToRGBA_003, TestSize.Level3)
1148 {
1149 GTEST_LOG_(INFO) << "ImageFormatConvertTest.NV12P010ToRGBA_003: start";
1150 PixelFormat srcFormat = PixelFormat::YCBCR_P010;
1151 PixelFormat destFormat = PixelFormat::RGBA_8888;
1152 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1153 uint32_t destBuffersize = srcSize.width * srcSize.height * BYTES_PER_PIXEL_RGBA;
1154 YuvP010ConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
1155 GTEST_LOG_(INFO) << "ImageFormatConvertTest.NV12P010ToRGBA_003: end";
1156 }
1157
1158 HWTEST_F(ImageFormatConvertTest, NV12P010ToBGRA_003, TestSize.Level3)
1159 {
1160 GTEST_LOG_(INFO) << "ImageFormatConvertTest.NV12P010ToBGRA_003: start";
1161 PixelFormat srcFormat = PixelFormat::YCBCR_P010;
1162 PixelFormat destFormat = PixelFormat::BGRA_8888;
1163 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1164 uint32_t destBuffersize = srcSize.width * srcSize.height * BYTES_PER_PIXEL_BGRA;
1165 YuvP010ConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
1166 GTEST_LOG_(INFO) << "ImageFormatConvertTest.NV12P010ToBGRA_003: end";
1167 }
1168
1169 HWTEST_F(ImageFormatConvertTest, NV12P010ToRGB_003, TestSize.Level1)
1170 {
1171 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12P010ToRGB_003 start";
1172 PixelFormat srcFormat = PixelFormat::YCBCR_P010;
1173 PixelFormat destFormat = PixelFormat::RGB_888;
1174 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1175 uint32_t destBuffersize = srcSize.width * srcSize.height * BYTES_PER_PIXEL_RGB;
1176 YuvP010ConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
1177 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12P010ToRGB_003 end";
1178 }
1179
1180 HWTEST_F(ImageFormatConvertTest, NV12P010ToRGBAF16_003, TestSize.Level1)
1181 {
1182 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12P010ToRGBAF16_003 start";
1183 PixelFormat srcFormat = PixelFormat::YCBCR_P010;
1184 PixelFormat destFormat = PixelFormat::RGBA_F16;
1185 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1186 uint32_t destBuffersize = srcSize.width * srcSize.height * sizeof(uint64_t);
1187 YuvP010ConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
1188 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12P010ToRGBAF16_003 end";
1189 }
1190
1191 HWTEST_F(ImageFormatConvertTest, NV21ToNV21P010_003, TestSize.Level1)
1192 {
1193 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV21ToNV21P010_003 start";
1194 PixelFormat srcFormat = PixelFormat::NV21;
1195 PixelFormat destFormat = PixelFormat::YCRCB_P010;
1196 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
1197 uint32_t destBuffersize = (srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
1198 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES) * TWO_SLICES;
1199 YuvConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
1200 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV21ToNV21P010_003 end";
1201 }
1202
1203 HWTEST_F(ImageFormatConvertTest, NV21P010ToNV12_003, TestSize.Level1)
1204 {
1205 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV21P010ToNV12_003 start";
1206 PixelFormat srcFormat = PixelFormat::YCRCB_P010;
1207 PixelFormat destFormat = PixelFormat::NV12;
1208 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1209 uint32_t destBuffersize = srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
1210 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES;
1211 YuvP010ConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
1212 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV21P010ToNV12_003 end";
1213 }
1214
1215 HWTEST_F(ImageFormatConvertTest, NV12ToNV21P010_003, TestSize.Level1)
1216 {
1217 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12ToNV21P010_003 start";
1218 PixelFormat srcFormat = PixelFormat::NV12;
1219 PixelFormat destFormat = PixelFormat::YCRCB_P010;
1220 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
1221 uint32_t destBuffersize = (srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
1222 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES) * TWO_SLICES;
1223 YuvConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
1224 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12ToNV21P010_003 end";
1225 }
1226
1227 HWTEST_F(ImageFormatConvertTest, NV12ToRGBA1010102_003, TestSize.Level3)
1228 {
1229 GTEST_LOG_(INFO) << "ImageFormatConvertTest.PixelMapFormatConvert_028: start";
1230 PixelFormat srcFormat = PixelFormat::NV12;
1231 PixelFormat destFormat = PixelFormat::RGBA_1010102;
1232 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
1233 uint32_t destBuffersize = srcSize.width * srcSize.height * BYTES_PER_PIXEL_RGBA;
1234 YuvConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
1235 GTEST_LOG_(INFO) << "ImageFormatConvertTest.PixelMapFormatConvert_028: end";
1236 }
1237
1238 HWTEST_F(ImageFormatConvertTest, NV21ToRGBA1010102_003, TestSize.Level3)
1239 {
1240 GTEST_LOG_(INFO) << "ImageFormatConvertTest.PixelMapFormatConvert_028: start";
1241 PixelFormat srcFormat = PixelFormat::NV21;
1242 PixelFormat destFormat = PixelFormat::RGBA_1010102;
1243 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
1244 uint32_t destBuffersize = srcSize.width * srcSize.height * BYTES_PER_PIXEL_RGBA;
1245 YuvConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
1246 GTEST_LOG_(INFO) << "ImageFormatConvertTest.PixelMapFormatConvert_028: end";
1247 }
1248
1249 HWTEST_F(ImageFormatConvertTest, NV21P010ToNV21_003, TestSize.Level1)
1250 {
1251 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV21P010ToNV21_003 start";
1252 PixelFormat srcFormat = PixelFormat::YCRCB_P010;
1253 PixelFormat destFormat = PixelFormat::NV21;
1254 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1255 uint32_t destBuffersize = srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
1256 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES;
1257 YuvP010ConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
1258 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV21P010ToNV21_003 end";
1259 }
1260
1261 HWTEST_F(ImageFormatConvertTest, NV12P010ToNV12P010_003, TestSize.Level1)
1262 {
1263 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12P010ToNV12P010_003 start";
1264 PixelFormat srcFormat = PixelFormat::YCRCB_P010;
1265 PixelFormat destFormat = PixelFormat::YCBCR_P010;
1266 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1267 uint32_t destBuffersize = (srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
1268 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES) * TWO_SLICES;
1269 YuvP010ConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
1270 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12P010ToNV12P010_003 end";
1271 }
1272
1273 HWTEST_F(ImageFormatConvertTest, NV21P010ToRGB565_003, TestSize.Level3)
1274 {
1275 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV21P010ToRGB565_003: start";
1276 PixelFormat srcFormat = PixelFormat::YCRCB_P010;
1277 PixelFormat destFormat = PixelFormat::RGB_565;
1278 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1279 uint32_t destBuffersize = srcSize.width * srcSize.height * BYTES_PER_PIXEL_RGB565;
1280 YuvP010ConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
1281 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV21P010ToRGB565_003: end";
1282 }
1283
1284 HWTEST_F(ImageFormatConvertTest, NV21P010ToRGBA_003, TestSize.Level3)
1285 {
1286 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV21P010ToRGBA_003: start";
1287 PixelFormat srcFormat = PixelFormat::YCRCB_P010;
1288 PixelFormat destFormat = PixelFormat::RGBA_8888;
1289 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1290 uint32_t destBuffersize = srcSize.width * srcSize.height * BYTES_PER_PIXEL_RGBA;
1291 YuvP010ConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
1292 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV21P010ToRGBA_003: end";
1293 }
1294
1295 HWTEST_F(ImageFormatConvertTest, NV21P010ToBGRA_003, TestSize.Level3)
1296 {
1297 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV21P010ToBGRA_003: start";
1298 PixelFormat srcFormat = PixelFormat::YCRCB_P010;
1299 PixelFormat destFormat = PixelFormat::BGRA_8888;
1300 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1301 uint32_t destBuffersize = srcSize.width * srcSize.height * BYTES_PER_PIXEL_BGRA;
1302 YuvP010ConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
1303 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV21P010ToBGRA_003: end";
1304 }
1305
1306 HWTEST_F(ImageFormatConvertTest, NV21P010ToRGB_003, TestSize.Level1)
1307 {
1308 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV21P010ToRGB_003 start";
1309 PixelFormat srcFormat = PixelFormat::YCRCB_P010;
1310 PixelFormat destFormat = PixelFormat::RGB_888;
1311 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1312 uint32_t destBuffersize = srcSize.width * srcSize.height * BYTES_PER_PIXEL_RGB;
1313 YuvP010ConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
1314 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV21P010ToRGB_003 end";
1315 }
1316
1317 HWTEST_F(ImageFormatConvertTest, NV21P010ToRGBAF16_003, TestSize.Level1)
1318 {
1319 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV21P010ToRGBAF16_003 start";
1320 PixelFormat srcFormat = PixelFormat::YCRCB_P010;
1321 PixelFormat destFormat = PixelFormat::RGBA_F16;
1322 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1323 uint32_t destBuffersize = srcSize.width * srcSize.height * sizeof(uint64_t);
1324 YuvP010ConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
1325 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV21P010ToRGBAF16_003 end";
1326 }
1327
1328 HWTEST_F(ImageFormatConvertTest, NV12P010ToRGBA_1010102_004, TestSize.Level1)
1329 {
1330 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12P010ToRGBA_1010102_004 start";
1331 PixelFormat srcFormat = PixelFormat::YCBCR_P010;
1332 PixelFormat destFormat = PixelFormat::RGBA_1010102;
1333 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1334 uint32_t destBuffersize = srcSize.width * srcSize.height * BYTES_PER_PIXEL_RGBA;
1335 YuvP010ConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
1336 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV12P010ToRGBA_1010102_004 end";
1337 }
1338
1339 HWTEST_F(ImageFormatConvertTest, NV21P010ToRGBA_1010102_004, TestSize.Level1)
1340 {
1341 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV21P010ToRGBA_1010102_004 start";
1342 PixelFormat srcFormat = PixelFormat::YCRCB_P010;
1343 PixelFormat destFormat = PixelFormat::RGBA_1010102;
1344 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1345 uint32_t destBuffersize = srcSize.width * srcSize.height * BYTES_PER_PIXEL_RGBA;
1346 YuvP010ConvertToRgb(srcFormat, destFormat, srcSize, destBuffersize);
1347 GTEST_LOG_(INFO) << "ImageFormatConvertTest: NV21P010ToRGBA_1010102_004 end";
1348 }
1349
1350 HWTEST_F(ImageFormatConvertTest, RGB565ToNV12P010_001, TestSize.Level3)
1351 {
1352 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGB565ToNV12P010_001: start";
1353 PixelFormat srcFormat = PixelFormat::RGB_565;
1354 PixelFormat destFormat = PixelFormat::YCBCR_P010;
1355 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
1356 RgbConvertToYuvP010(srcFormat, destFormat, srcSize);
1357 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGB565ToNV12P010_001: end";
1358 }
1359
1360 HWTEST_F(ImageFormatConvertTest, RGB565ToNV12P010_002, TestSize.Level3)
1361 {
1362 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGB565ToNV12P010_002: start";
1363 PixelFormat srcFormat = PixelFormat::RGB_565;
1364 PixelFormat destFormat = PixelFormat::YCBCR_P010;
1365 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
1366 RgbConvertToYuvP010(srcFormat, destFormat, srcSize);
1367 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGB565ToNV12P010_002: end";
1368 }
1369
1370 HWTEST_F(ImageFormatConvertTest, RGB565ToNV21P010_001, TestSize.Level3)
1371 {
1372 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGB565ToNV21P010_001: start";
1373 PixelFormat srcFormat = PixelFormat::RGB_565;
1374 PixelFormat destFormat = PixelFormat::YCRCB_P010;
1375 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
1376 RgbConvertToYuvP010(srcFormat, destFormat, srcSize);
1377 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGB565ToNV21P010_001: end";
1378 }
1379
1380 HWTEST_F(ImageFormatConvertTest, RGB565ToNV21P010_002, TestSize.Level3)
1381 {
1382 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGB565ToNV21P010_002: start";
1383 PixelFormat srcFormat = PixelFormat::RGB_565;
1384 PixelFormat destFormat = PixelFormat::YCRCB_P010;
1385 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
1386 RgbConvertToYuvP010(srcFormat, destFormat, srcSize);
1387 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGB565ToNV21P010_002: end";
1388 }
1389
1390 HWTEST_F(ImageFormatConvertTest, RGBAToNV12P010_001, TestSize.Level3)
1391 {
1392 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBAToNV12P010_001: start";
1393 PixelFormat tempFormat = PixelFormat::NV12;
1394 PixelFormat srcFormat = PixelFormat::RGBA_8888;
1395 PixelFormat destFormat = PixelFormat::YCBCR_P010;
1396 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
1397 RgbConvertToYuvP010ByPixelMap(tempFormat, srcFormat, destFormat, srcSize);
1398 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBAToNV12P010_001: end";
1399 }
1400
1401 HWTEST_F(ImageFormatConvertTest, RGBAToNV12P010_002, TestSize.Level3)
1402 {
1403 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBAToNV21_002: start";
1404 PixelFormat tempFormat = PixelFormat::NV12;
1405 PixelFormat srcFormat = PixelFormat::RGBA_8888;
1406 PixelFormat destFormat = PixelFormat::YCBCR_P010;
1407 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
1408 RgbConvertToYuvP010ByPixelMap(tempFormat, srcFormat, destFormat, srcSize);
1409 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBToNV21_002: end";
1410 }
1411
1412 HWTEST_F(ImageFormatConvertTest, RGBAToNV21P010_001, TestSize.Level3)
1413 {
1414 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBAToNV21P010_001: start";
1415 PixelFormat tempFormat = PixelFormat::NV21;
1416 PixelFormat srcFormat = PixelFormat::RGBA_8888;
1417 PixelFormat destFormat = PixelFormat::YCRCB_P010;
1418 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
1419 RgbConvertToYuvP010ByPixelMap(tempFormat, srcFormat, destFormat, srcSize);
1420 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBAToNV21P010_001: end";
1421 }
1422
1423 HWTEST_F(ImageFormatConvertTest, RGBAToNV21P010_002, TestSize.Level3)
1424 {
1425 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBAToNV21P010_002: start";
1426 PixelFormat tempFormat = PixelFormat::NV21;
1427 PixelFormat srcFormat = PixelFormat::RGBA_8888;
1428 PixelFormat destFormat = PixelFormat::YCRCB_P010;
1429 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
1430 RgbConvertToYuvP010ByPixelMap(tempFormat, srcFormat, destFormat, srcSize);
1431 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBAToNV21P010_002: end";
1432 }
1433
1434 HWTEST_F(ImageFormatConvertTest, BGRAToNV12P010_001, TestSize.Level3)
1435 {
1436 GTEST_LOG_(INFO) << "ImageFormatConvertTest.BGRAToNV12P010_001: start";
1437 PixelFormat srcFormat = PixelFormat::BGRA_8888;
1438 PixelFormat destFormat = PixelFormat::YCBCR_P010;
1439 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
1440 RgbConvertToYuvP010(srcFormat, destFormat, srcSize);
1441 GTEST_LOG_(INFO) << "ImageFormatConvertTest.BGRAToNV12P010_001: end";
1442 }
1443
1444 HWTEST_F(ImageFormatConvertTest, BGRAToNV12P010_002, TestSize.Level3)
1445 {
1446 GTEST_LOG_(INFO) << "ImageFormatConvertTest.BGRAToNV12P010_002: start";
1447 PixelFormat srcFormat = PixelFormat::BGRA_8888;
1448 PixelFormat destFormat = PixelFormat::YCBCR_P010;
1449 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
1450 RgbConvertToYuvP010(srcFormat, destFormat, srcSize);
1451 GTEST_LOG_(INFO) << "ImageFormatConvertTest.BGRAToNV12P010_002: end";
1452 }
1453
1454 HWTEST_F(ImageFormatConvertTest, BGRAToNV21P010_001, TestSize.Level3)
1455 {
1456 GTEST_LOG_(INFO) << "ImageFormatConvertTest.BGRAToNV21P010_001: start";
1457 PixelFormat srcFormat = PixelFormat::BGRA_8888;
1458 PixelFormat destFormat = PixelFormat::YCRCB_P010;
1459 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
1460 RgbConvertToYuvP010(srcFormat, destFormat, srcSize);
1461 GTEST_LOG_(INFO) << "ImageFormatConvertTest.BGRAToNV21P010_001: end";
1462 }
1463
1464 HWTEST_F(ImageFormatConvertTest, BGRAToNV21P010_002, TestSize.Level3)
1465 {
1466 GTEST_LOG_(INFO) << "ImageFormatConvertTest.BGRAToNV21P010_002: start";
1467 PixelFormat srcFormat = PixelFormat::BGRA_8888;
1468 PixelFormat destFormat = PixelFormat::YCRCB_P010;
1469 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
1470 RgbConvertToYuvP010(srcFormat, destFormat, srcSize);
1471 GTEST_LOG_(INFO) << "ImageFormatConvertTest.BGRAToNV21P010_002: end";
1472 }
1473
1474 HWTEST_F(ImageFormatConvertTest, RGBToNV12P010_001, TestSize.Level3)
1475 {
1476 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBToNV12P010_001: start";
1477 PixelFormat tempFormat = PixelFormat::NV12;
1478 PixelFormat srcFormat = PixelFormat::RGB_888;
1479 PixelFormat destFormat = PixelFormat::YCBCR_P010;
1480 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
1481 RgbConvertToYuvP010ByPixelMap(tempFormat, srcFormat, destFormat, srcSize);
1482 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBToNV12P010_001: end";
1483 }
1484
1485 HWTEST_F(ImageFormatConvertTest, RGBToNV12P010_002, TestSize.Level3)
1486 {
1487 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBToNV12P010_002: start";
1488 PixelFormat tempFormat = PixelFormat::NV12;
1489 PixelFormat srcFormat = PixelFormat::RGB_888;
1490 PixelFormat destFormat = PixelFormat::YCBCR_P010;
1491 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
1492 RgbConvertToYuvP010ByPixelMap(tempFormat, srcFormat, destFormat, srcSize);
1493 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBToNV12P010_002: end";
1494 }
1495
1496 HWTEST_F(ImageFormatConvertTest, RGBToNV21P010_001, TestSize.Level3)
1497 {
1498 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBToNV21P010_001: start";
1499 PixelFormat tempFormat = PixelFormat::NV21;
1500 PixelFormat srcFormat = PixelFormat::RGB_888;
1501 PixelFormat destFormat = PixelFormat::YCRCB_P010;
1502 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
1503 RgbConvertToYuvP010ByPixelMap(tempFormat, srcFormat, destFormat, srcSize);
1504 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBToNV21P010_001: end";
1505 }
1506
1507 HWTEST_F(ImageFormatConvertTest, RGBToNV21P010_002, TestSize.Level3)
1508 {
1509 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBToNV21P010_002: start";
1510 PixelFormat tempFormat = PixelFormat::NV21;
1511 PixelFormat srcFormat = PixelFormat::RGB_888;
1512 PixelFormat destFormat = PixelFormat::YCRCB_P010;
1513 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
1514 RgbConvertToYuvP010ByPixelMap(tempFormat, srcFormat, destFormat, srcSize);
1515 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBToNV21P010_002: end";
1516 }
1517
1518 HWTEST_F(ImageFormatConvertTest, RGBAF16ToNV12P010_001, TestSize.Level3)
1519 {
1520 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBAF16ToNV12P010_001: start";
1521 PixelFormat tempFormat = PixelFormat::NV12;
1522 PixelFormat srcFormat = PixelFormat::RGBA_F16;
1523 PixelFormat destFormat = PixelFormat::YCBCR_P010;
1524 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
1525 RgbConvertToYuvP010ByPixelMap(tempFormat, srcFormat, destFormat, srcSize);
1526 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBAF16ToNV12P010_001: end";
1527 }
1528
1529 HWTEST_F(ImageFormatConvertTest, RGBAF16ToNV12P010_002, TestSize.Level3)
1530 {
1531 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBAF16ToNV12P010_002: start";
1532 PixelFormat tempFormat = PixelFormat::NV12;
1533 PixelFormat srcFormat = PixelFormat::RGBA_F16;
1534 PixelFormat destFormat = PixelFormat::YCBCR_P010;
1535 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
1536 RgbConvertToYuvP010ByPixelMap(tempFormat, srcFormat, destFormat, srcSize);
1537 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBAF16ToNV12P010_002: end";
1538 }
1539
1540 HWTEST_F(ImageFormatConvertTest, RGBAF16ToNV21P010_001, TestSize.Level3)
1541 {
1542 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBAF16ToNV21P010_001: start";
1543 PixelFormat tempFormat = PixelFormat::NV21;
1544 PixelFormat srcFormat = PixelFormat::RGBA_F16;
1545 PixelFormat destFormat = PixelFormat::YCRCB_P010;
1546 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
1547 RgbConvertToYuvP010ByPixelMap(tempFormat, srcFormat, destFormat, srcSize);
1548 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBAF16ToNV21P010_001: end";
1549 }
1550
1551 HWTEST_F(ImageFormatConvertTest, RGBAF16ToNV21P010_002, TestSize.Level3)
1552 {
1553 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBAF16ToNV21P010_002: start";
1554 PixelFormat tempFormat = PixelFormat::NV21;
1555 PixelFormat srcFormat = PixelFormat::RGBA_F16;
1556 PixelFormat destFormat = PixelFormat::YCRCB_P010;
1557 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
1558 RgbConvertToYuvP010ByPixelMap(tempFormat, srcFormat, destFormat, srcSize);
1559 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBAF16ToNV21P010_002: end";
1560 }
1561
1562 HWTEST_F(ImageFormatConvertTest, RGBA_1010102ToNV12_003, TestSize.Level3)
1563 {
1564 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBA_1010102ToNV12_003: start";
1565 PixelFormat srcFormat = PixelFormat::RGBA_1010102;
1566 PixelFormat destFormat = PixelFormat::NV12;
1567 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1568 uint32_t destBuffersize = srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
1569 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES;
1570 Rgba1010102ConvertToYuvP010(srcFormat, destFormat, srcSize, destBuffersize);
1571 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBA_1010102ToNV12_003: end";
1572 }
1573
1574 HWTEST_F(ImageFormatConvertTest, RGBA_1010102ToNV21_003, TestSize.Level3)
1575 {
1576 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBA_1010102ToNV21_003: start";
1577 PixelFormat srcFormat = PixelFormat::RGBA_1010102;
1578 PixelFormat destFormat = PixelFormat::NV21;
1579 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1580 uint32_t destBuffersize = srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
1581 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES;
1582 Rgba1010102ConvertToYuvP010(srcFormat, destFormat, srcSize, destBuffersize);
1583 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBAF16ToNV21P010_003: end";
1584 }
1585
1586 HWTEST_F(ImageFormatConvertTest, RGBA_1010102ToNV12P010_003, TestSize.Level3)
1587 {
1588 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBA_1010102ToNV12P010_003: start";
1589 PixelFormat srcFormat = PixelFormat::RGBA_1010102;
1590 PixelFormat destFormat = PixelFormat::YCBCR_P010;
1591 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1592 uint32_t destBuffersize = (srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
1593 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES) * TWO_SLICES;
1594 Rgba1010102ConvertToYuvP010(srcFormat, destFormat, srcSize, destBuffersize);
1595 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBA_1010102ToNV12P010_003: end";
1596 }
1597
1598 HWTEST_F(ImageFormatConvertTest, RGBA_1010102ToNV21P010_003, TestSize.Level3)
1599 {
1600 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBA_1010102ToNV21P010_003: start";
1601 PixelFormat srcFormat = PixelFormat::RGBA_1010102;
1602 PixelFormat destFormat = PixelFormat::YCRCB_P010;
1603 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1604 uint32_t destBuffersize = (srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
1605 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES) * TWO_SLICES;
1606 Rgba1010102ConvertToYuvP010(srcFormat, destFormat, srcSize, destBuffersize);
1607 GTEST_LOG_(INFO) << "ImageFormatConvertTest.RGBA_1010102ToNV21P010_003: end";
1608 }
1609
1610 HWTEST_F(ImageFormatConvertTest, GetConvertFuncByFormat_Test_001, TestSize.Level1)
1611 {
1612 GTEST_LOG_(INFO) << "ImageFormatConvertTest: GetConvertFuncByFormat_Test_001 start";
1613 PixelFormat srcFormat = PixelFormat::RGB_888;
1614 PixelFormat destFormat = PixelFormat::NV12;
1615 ConvertFunction cvtFunc = ImageFormatConvertTest::TestGetConvertFuncByFormat(srcFormat, destFormat);
1616
1617 const_uint8_buffer_type srcBuffer = nullptr;
1618 RGBDataInfo rgbInfo = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
1619 ColorSpace colorspace = ColorSpace::UNKNOWN;
1620 DestConvertInfo destInfo = {TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT};
1621
1622 EXPECT_EQ(cvtFunc(srcBuffer, rgbInfo, destInfo, colorspace), false);
1623 GTEST_LOG_(INFO) << "ImageFormatConvertTest: GetConvertFuncByFormat_Test_001 end";
1624 }
1625
1626 HWTEST_F(ImageFormatConvertTest, GetConvertFuncByFormat_Test_002, TestSize.Level1)
1627 {
1628 GTEST_LOG_(INFO) << "ImageFormatConvertTest: GetConvertFuncByFormat_Test_004 start";
1629 PixelFormat srcFormat = PixelFormat::RGB_888;
1630 PixelFormat destFormat = PixelFormat::UNKNOWN;
1631 ConvertFunction cvtFunc = ImageFormatConvertTest::TestGetConvertFuncByFormat(srcFormat, destFormat);
1632
1633 EXPECT_EQ(cvtFunc, nullptr);
1634 GTEST_LOG_(INFO) << "ImageFormatConvertTest: GetConvertFuncByFormat_Test_004 end";
1635 }
1636
1637 HWTEST_F(ImageFormatConvertTest, ConvertImageFormat_Test_001, TestSize.Level1)
1638 {
1639 GTEST_LOG_(INFO) << "ImageFormatConvertTest: ConvertImageFormat_Test_001 start";
1640 PixelFormat destFormat = PixelFormat::NV12;
1641 std::shared_ptr<PixelMap> srcPixelMap = nullptr;
1642
1643 uint32_t ret = ImageFormatConvert::ConvertImageFormat(srcPixelMap, destFormat);
1644 EXPECT_EQ(ret, ERR_IMAGE_INVALID_PARAMETER);
1645 GTEST_LOG_(INFO) << "ImageFormatConvertTest: ConvertImageFormat_Test_001 end";
1646 }
1647
1648 HWTEST_F(ImageFormatConvertTest, ConvertImageFormat_Test_002, TestSize.Level1)
1649 {
1650 GTEST_LOG_(INFO) << "ImageFormatConvertTest: ConvertImageFormat_Test_002 start";
1651 PixelFormat destFormat = PixelFormat::UNKNOWN;
1652 std::shared_ptr<PixelMap> srcPixelMap = nullptr;
1653 uint32_t errorCode = 0;
1654 DecodeOptions decodeOpts;
1655
1656 SourceOptions opts;
1657 opts.formatHint = "image/jpeg";
1658 std::shared_ptr<ImageSource> rImageSource = ImageSource::CreateImageSource(IMAGE_INPUT_JPG_PATH1, opts, errorCode);
1659 ASSERT_EQ(errorCode, SUCCESS);
1660 ASSERT_NE(rImageSource.get(), nullptr);
1661
1662 srcPixelMap = rImageSource->CreatePixelMap(decodeOpts, errorCode);
1663 ASSERT_EQ(errorCode, SUCCESS);
1664 ASSERT_NE(srcPixelMap.get(), nullptr);
1665
1666 uint32_t ret = ImageFormatConvert::ConvertImageFormat(srcPixelMap, destFormat);
1667 EXPECT_EQ(ret, ERR_MEDIA_FORMAT_UNSUPPORT);
1668 GTEST_LOG_(INFO) << "ImageFormatConvertTest: ConvertImageFormat_Test_002 end";
1669 }
1670
1671 HWTEST_F(ImageFormatConvertTest, ConvertImageFormat_Test_003, TestSize.Level1)
1672 {
1673 GTEST_LOG_(INFO) << "ImageFormatConvertTest: ConvertImageFormat_Test_003 start";
1674 PixelFormat destFormat = PixelFormat::RGB_888;
1675 std::shared_ptr<PixelMap> srcPixelMap = nullptr;
1676 uint32_t errorCode = 0;
1677 DecodeOptions decodeOpts;
1678
1679 SourceOptions opts;
1680 opts.formatHint = "image/jpeg";
1681 std::shared_ptr<ImageSource> rImageSource = ImageSource::CreateImageSource(IMAGE_INPUT_JPG_PATH1, opts, errorCode);
1682 ASSERT_EQ(errorCode, SUCCESS);
1683 ASSERT_NE(rImageSource.get(), nullptr);
1684
1685 srcPixelMap = rImageSource->CreatePixelMap(decodeOpts, errorCode);
1686 ASSERT_EQ(errorCode, SUCCESS);
1687 ASSERT_NE(srcPixelMap.get(), nullptr);
1688
1689 uint32_t ret = ImageFormatConvert::ConvertImageFormat(srcPixelMap, destFormat);
1690 EXPECT_EQ(ret, ERR_IMAGE_INVALID_PARAMETER);
1691 GTEST_LOG_(INFO) << "ImageFormatConvertTest: ConvertImageFormat_Test_003 end";
1692 }
1693
1694 HWTEST_F(ImageFormatConvertTest, CheckConvertDataInfo_Test_001, TestSize.Level1)
1695 {
1696 GTEST_LOG_(INFO) << "ImageFormatConvertTest: CheckConvertDataInfo_Test_001 start";
1697 ConvertDataInfo convertDataInfo;
1698 convertDataInfo.buffer = nullptr;
1699 bool cvtFunc = ImageFormatConvert::CheckConvertDataInfo(convertDataInfo);
1700 EXPECT_EQ(cvtFunc, false);
1701 uint8_t data = 0;
1702 convertDataInfo.buffer = &data;
1703 EXPECT_NE(convertDataInfo.buffer, nullptr);
1704 convertDataInfo.pixelFormat = PixelFormat::UNKNOWN;
1705 cvtFunc = ImageFormatConvert::CheckConvertDataInfo(convertDataInfo);
1706 EXPECT_EQ(cvtFunc, false);
1707 convertDataInfo.pixelFormat = PixelFormat::ARGB_8888;
1708 convertDataInfo.imageSize = {0, 0};
1709 cvtFunc = ImageFormatConvert::CheckConvertDataInfo(convertDataInfo);
1710 EXPECT_EQ(cvtFunc, false);
1711 convertDataInfo.imageSize = {1, 1};
1712 EXPECT_EQ(ImageFormatConvert::GetBufferSizeByFormat(convertDataInfo.pixelFormat, convertDataInfo.imageSize), 4);
1713 convertDataInfo.bufferSize = 1;
1714 cvtFunc = ImageFormatConvert::CheckConvertDataInfo(convertDataInfo);
1715 EXPECT_EQ(cvtFunc, false);
1716 convertDataInfo.bufferSize = 4;
1717 cvtFunc = ImageFormatConvert::CheckConvertDataInfo(convertDataInfo);
1718 EXPECT_EQ(cvtFunc, true);
1719 GTEST_LOG_(INFO) << "ImageFormatConvertTest: CheckConvertDataInfo_Test_001 end";
1720 }
1721
1722 HWTEST_F(ImageFormatConvertTest, GetBufferSizeByFormat_Test_001, TestSize.Level1)
1723 {
1724 GTEST_LOG_(INFO) << "ImageFormatConvertTest: GetBufferSizeByFormat_Test_001 start";
1725 Size size = {1, 1};
1726 EXPECT_EQ(ImageFormatConvert::GetBufferSizeByFormat(PixelFormat::RGB_565, size), 2);
1727 EXPECT_EQ(ImageFormatConvert::GetBufferSizeByFormat(PixelFormat::RGB_888, size), 3);
1728 EXPECT_EQ(ImageFormatConvert::GetBufferSizeByFormat(PixelFormat::ARGB_8888, size), 4);
1729 EXPECT_EQ(ImageFormatConvert::GetBufferSizeByFormat(PixelFormat::RGBA_8888, size), 4);
1730 EXPECT_EQ(ImageFormatConvert::GetBufferSizeByFormat(PixelFormat::BGRA_8888, size), 4);
1731 EXPECT_EQ(ImageFormatConvert::GetBufferSizeByFormat(PixelFormat::RGBA_F16, size), 16);
1732 EXPECT_EQ(ImageFormatConvert::GetBufferSizeByFormat(PixelFormat::NV21, size), 3);
1733 EXPECT_EQ(ImageFormatConvert::GetBufferSizeByFormat(PixelFormat::NV12, size), 3);
1734 EXPECT_EQ(ImageFormatConvert::GetBufferSizeByFormat(PixelFormat::UNKNOWN, size), 0);
1735 GTEST_LOG_(INFO) << "ImageFormatConvertTest: GetBufferSizeByFormat_Test_001 end";
1736 }
1737
1738 HWTEST_F(ImageFormatConvertTest, YUVGetConvertFuncByFormat_Test_001, TestSize.Level1)
1739 {
1740 GTEST_LOG_(INFO) << "ImageFormatConvertTest: YUVGetConvertFuncByFormat_Test_001 start";
1741 PixelFormat srcFormat = PixelFormat::UNKNOWN;
1742 PixelFormat destFormat = PixelFormat::ARGB_8888;
1743 EXPECT_EQ(ImageFormatConvert::YUVGetConvertFuncByFormat(srcFormat, destFormat), nullptr);
1744 GTEST_LOG_(INFO) << "ImageFormatConvertTest: YUVGetConvertFuncByFormat_Test_001 end";
1745 }
1746
1747 HWTEST_F(ImageFormatConvertTest, MakeDestPixelMap_Test_001, TestSize.Level1)
1748 {
1749 GTEST_LOG_(INFO) << "ImageFormatConvertTest: MakeDestPixelMap_Test_001 start";
1750 std::shared_ptr<PixelMap> destPixelMap = nullptr;
1751 ImageInfo info;
1752 info.size = {0, 0};
1753 DestConvertInfo destInfo;
1754 EXPECT_EQ(ImageFormatConvert::MakeDestPixelMap(destPixelMap, info, destInfo, nullptr),
1755 ERR_IMAGE_INVALID_PARAMETER);
1756 GTEST_LOG_(INFO) << "ImageFormatConvertTest: MakeDestPixelMap_Test_001 end";
1757 }
1758
1759 HWTEST_F(ImageFormatConvertTest, YUVConvertImageFormatOption_Test_001, TestSize.Level1)
1760 {
1761 GTEST_LOG_(INFO) << "ImageFormatConvertTest: YUVConvertImageFormatOption_Test_001 start";
1762 std::shared_ptr<PixelMap> srcPiexlMap = std::make_shared<PixelMap>();
1763 PixelFormat srcFormat = PixelFormat::UNKNOWN;
1764 PixelFormat destFormat = PixelFormat::ARGB_8888;
1765 EXPECT_EQ(ImageFormatConvert::YUVConvertImageFormatOption(srcPiexlMap, srcFormat, destFormat),
1766 ERR_IMAGE_INVALID_PARAMETER);
1767 srcFormat = PixelFormat::NV21;
1768 destFormat = PixelFormat::RGB_888;
1769 EXPECT_EQ(ImageFormatConvert::YUVConvertImageFormatOption(srcPiexlMap, srcFormat, destFormat),
1770 ERR_IMAGE_INVALID_PARAMETER);
1771 GTEST_LOG_(INFO) << "ImageFormatConvertTest: YUVConvertImageFormatOption_Test_001 end";
1772 }
1773
1774 HWTEST_F(ImageFormatConvertTest, ConvertImageFormat_Test_004, TestSize.Level1)
1775 {
1776 GTEST_LOG_(INFO) << "ImageFormatConvertTest: ConvertImageFormat_Test_004 start";
1777 std::shared_ptr<PixelMap> srcPixelMap = std::make_shared<PixelMap>();
1778 PixelFormat destFormat = PixelFormat::RGB_888;
1779 srcPixelMap->imageInfo_.pixelFormat = PixelFormat::NV21;
1780 uint32_t ret = ImageFormatConvert::ConvertImageFormat(srcPixelMap, destFormat);
1781 EXPECT_EQ(ret, ERR_IMAGE_INVALID_PARAMETER);
1782 srcPixelMap->imageInfo_.pixelFormat = PixelFormat::RGB_565;
1783 destFormat = PixelFormat::NV21;
1784 ret = ImageFormatConvert::ConvertImageFormat(srcPixelMap, destFormat);
1785 EXPECT_EQ(ret, ERR_IMAGE_INVALID_PARAMETER);
1786 GTEST_LOG_(INFO) << "ImageFormatConvertTest: ConvertImageFormat_Test_004 end";
1787 }
1788
1789 HWTEST_F(ImageFormatConvertTest, ConvertImageFormat_Test_005, TestSize.Level1)
1790 {
1791 GTEST_LOG_(INFO) << "ImageFormatConvertTest: ConvertImageFormat_Test_005 start";
1792 ConvertDataInfo srcDataInfo;
1793 DestConvertInfo destInfo;
1794 srcDataInfo.buffer = nullptr;
1795 uint32_t ret = ImageFormatConvert::ConvertImageFormat(srcDataInfo, destInfo);
1796 EXPECT_EQ(ret, ERR_IMAGE_INVALID_PARAMETER);
1797 uint8_t data = 0;
1798 srcDataInfo.buffer = &data;
1799 srcDataInfo.pixelFormat = PixelFormat::ARGB_8888;
1800 srcDataInfo.imageSize = {1, 1};
1801 srcDataInfo.bufferSize = 4;
1802 destInfo.format = PixelFormat::UNKNOWN;
1803 destInfo.width = srcDataInfo.imageSize.width;
1804 destInfo.height = srcDataInfo.imageSize.height;
1805 ret = ImageFormatConvert::ConvertImageFormat(srcDataInfo, destInfo);
1806 EXPECT_EQ(ret, ERR_IMAGE_INVALID_PARAMETER);
1807 srcDataInfo.pixelFormat = PixelFormat::UNKNOWN;
1808 destInfo.format = PixelFormat::ARGB_8888;
1809 ret = ImageFormatConvert::ConvertImageFormat(srcDataInfo, destInfo);
1810 EXPECT_EQ(ret, ERR_IMAGE_INVALID_PARAMETER);
1811 srcDataInfo.pixelFormat = PixelFormat::RGB_565;
1812 destInfo.format = PixelFormat::NV21;
1813 srcDataInfo.bufferSize = 2;
1814 ret = ImageFormatConvert::ConvertImageFormat(srcDataInfo, destInfo);
1815 EXPECT_EQ(ret, SUCCESS);
1816 GTEST_LOG_(INFO) << "ImageFormatConvertTest: ConvertImageFormat_Test_005 end";
1817 }
1818
1819 HWTEST_F(ImageFormatConvertTest, PixelMapFormatConvert_001, TestSize.Level1)
1820 {
1821 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_001 start";
1822 PixelFormat srcFormat = PixelFormat::NV21;
1823 PixelFormat destFormat = PixelFormat::YCBCR_P010;
1824 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
1825 uint32_t destBuffersize = (srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
1826 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES) * TWO_SLICES;
1827 PixelMapFormatConvert(srcFormat, destFormat, srcSize, destBuffersize);
1828 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_001 end";
1829 }
1830
1831 HWTEST_F(ImageFormatConvertTest, PixelMapFormatConvert_002, TestSize.Level1)
1832 {
1833 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_002 start";
1834 PixelFormat srcFormat = PixelFormat::NV21;
1835 PixelFormat destFormat = PixelFormat::YCRCB_P010;
1836 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
1837 uint32_t destBuffersize = (srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
1838 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES) * TWO_SLICES;
1839 PixelMapFormatConvert(srcFormat, destFormat, srcSize, destBuffersize);
1840 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_002 end";
1841 }
1842
1843 HWTEST_F(ImageFormatConvertTest, PixelMapFormatConvert_003, TestSize.Level1)
1844 {
1845 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_003 start";
1846 PixelFormat srcFormat = PixelFormat::NV12;
1847 PixelFormat destFormat = PixelFormat::YCBCR_P010;
1848 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
1849 uint32_t destBuffersize = (srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
1850 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES) * TWO_SLICES;
1851 PixelMapFormatConvert(srcFormat, destFormat, srcSize, destBuffersize);
1852 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_003 end";
1853 }
1854
1855 HWTEST_F(ImageFormatConvertTest, PixelMapFormatConvert_004, TestSize.Level1)
1856 {
1857 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_004 start";
1858 PixelFormat srcFormat = PixelFormat::NV12;
1859 PixelFormat destFormat = PixelFormat::YCRCB_P010;
1860 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
1861 uint32_t destBuffersize = (srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
1862 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES) * TWO_SLICES;
1863 PixelMapFormatConvert(srcFormat, destFormat, srcSize, destBuffersize);
1864 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_004 end";
1865 }
1866
1867 HWTEST_F(ImageFormatConvertTest, PixelMapFormatConvert_005, TestSize.Level1)
1868 {
1869 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_005 start";
1870 PixelFormat srcFormat = PixelFormat::YCRCB_P010;
1871 PixelFormat destFormat = PixelFormat::NV12;
1872 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1873 uint32_t destBuffersize = srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
1874 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES;
1875 PixelMap10bitConvert(srcFormat, destFormat, srcSize, destBuffersize);
1876 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_005 end";
1877 }
1878
1879 HWTEST_F(ImageFormatConvertTest, PixelMapFormatConvert_006, TestSize.Level1)
1880 {
1881 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_006 start";
1882 PixelFormat srcFormat = PixelFormat::YCRCB_P010;
1883 PixelFormat destFormat = PixelFormat::NV21;
1884 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1885 uint32_t destBuffersize = srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
1886 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES;
1887 PixelMap10bitConvert(srcFormat, destFormat, srcSize, destBuffersize);
1888 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_006 end";
1889 }
1890
1891 HWTEST_F(ImageFormatConvertTest, PixelMapFormatConvert_007, TestSize.Level1)
1892 {
1893 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_007 start";
1894 PixelFormat srcFormat = PixelFormat::YCBCR_P010;
1895 PixelFormat destFormat = PixelFormat::NV12;
1896 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1897 uint32_t destBuffersize = srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
1898 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES;
1899 PixelMap10bitConvert(srcFormat, destFormat, srcSize, destBuffersize);
1900 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_007 end";
1901 }
1902
1903 HWTEST_F(ImageFormatConvertTest, PixelMapFormatConvert_008, TestSize.Level1)
1904 {
1905 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_008 start";
1906 PixelFormat srcFormat = PixelFormat::YCBCR_P010;
1907 PixelFormat destFormat = PixelFormat::NV21;
1908 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1909 uint32_t destBuffersize = srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
1910 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES;
1911 PixelMap10bitConvert(srcFormat, destFormat, srcSize, destBuffersize);
1912 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_008 end";
1913 }
1914
1915 HWTEST_F(ImageFormatConvertTest, PixelMapFormatConvert_009, TestSize.Level1)
1916 {
1917 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_009 start";
1918 PixelFormat srcFormat = PixelFormat::YCRCB_P010;
1919 PixelFormat destFormat = PixelFormat::YCBCR_P010;
1920 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1921 uint32_t destBuffersize = (srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
1922 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES) * TWO_SLICES;
1923 PixelMap10bitConvert(srcFormat, destFormat, srcSize, destBuffersize);
1924 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_009 end";
1925 }
1926
1927 HWTEST_F(ImageFormatConvertTest, PixelMapFormatConvert_010, TestSize.Level3)
1928 {
1929 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_010: start";
1930 PixelFormat srcFormat = PixelFormat::YCRCB_P010;
1931 PixelFormat destFormat = PixelFormat::RGB_565;
1932 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1933 uint32_t destBuffersize = srcSize.width * srcSize.height * BYTES_PER_PIXEL_RGB565;
1934 PixelMap10bitConvert(srcFormat, destFormat, srcSize, destBuffersize);
1935 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_010: end";
1936 }
1937
1938 HWTEST_F(ImageFormatConvertTest, PixelMapFormatConvert_011, TestSize.Level3)
1939 {
1940 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_011: start";
1941 PixelFormat srcFormat = PixelFormat::YCRCB_P010;
1942 PixelFormat destFormat = PixelFormat::RGBA_8888;
1943 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1944 uint32_t destBuffersize = srcSize.width * srcSize.height * BYTES_PER_PIXEL_RGBA;
1945 PixelMap10bitConvert(srcFormat, destFormat, srcSize, destBuffersize);
1946 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_011: end";
1947 }
1948
1949 HWTEST_F(ImageFormatConvertTest, PixelMapFormatConvert_012, TestSize.Level3)
1950 {
1951 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_012: start";
1952 PixelFormat srcFormat = PixelFormat::YCRCB_P010;
1953 PixelFormat destFormat = PixelFormat::BGRA_8888;
1954 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1955 uint32_t destBuffersize = srcSize.width * srcSize.height * BYTES_PER_PIXEL_BGRA;
1956 PixelMap10bitConvert(srcFormat, destFormat, srcSize, destBuffersize);
1957 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_012: end";
1958 }
1959
1960 HWTEST_F(ImageFormatConvertTest, PixelMapFormatConvert_013, TestSize.Level1)
1961 {
1962 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_013 start";
1963 PixelFormat srcFormat = PixelFormat::YCRCB_P010;
1964 PixelFormat destFormat = PixelFormat::RGB_888;
1965 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1966 uint32_t destBuffersize = srcSize.width * srcSize.height * BYTES_PER_PIXEL_RGB;
1967 PixelMap10bitConvert(srcFormat, destFormat, srcSize, destBuffersize);
1968 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_013 end";
1969 }
1970
1971 HWTEST_F(ImageFormatConvertTest, PixelMapFormatConvert_014, TestSize.Level1)
1972 {
1973 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_014 start";
1974 PixelFormat srcFormat = PixelFormat::YCRCB_P010;
1975 PixelFormat destFormat = PixelFormat::RGBA_F16;
1976 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1977 uint32_t destBuffersize = srcSize.width * srcSize.height * sizeof(uint64_t);
1978 PixelMap10bitConvert(srcFormat, destFormat, srcSize, destBuffersize);
1979 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_014 end";
1980 }
1981
1982 HWTEST_F(ImageFormatConvertTest, PixelMapFormatConvert_015, TestSize.Level1)
1983 {
1984 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_015 start";
1985 PixelFormat srcFormat = PixelFormat::YCRCB_P010;
1986 PixelFormat destFormat = PixelFormat::RGBA_1010102;
1987 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1988 uint32_t destBuffersize = srcSize.width * srcSize.height * BYTES_PER_PIXEL_RGBA;
1989 PixelMap10bitConvert(srcFormat, destFormat, srcSize, destBuffersize);
1990 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_015 end";
1991 }
1992
1993 HWTEST_F(ImageFormatConvertTest, PixelMapFormatConvert_016, TestSize.Level1)
1994 {
1995 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_016 start";
1996 PixelFormat srcFormat = PixelFormat::YCBCR_P010;
1997 PixelFormat destFormat = PixelFormat::YCRCB_P010;
1998 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
1999 uint32_t destBuffersize = (srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
2000 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES) * TWO_SLICES;
2001 PixelMap10bitConvert(srcFormat, destFormat, srcSize, destBuffersize);
2002 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_016 end";
2003 }
2004
2005 HWTEST_F(ImageFormatConvertTest, PixelMapFormatConvert_017, TestSize.Level3)
2006 {
2007 GTEST_LOG_(INFO) << "ImageFormatConvertTest.PixelMapFormatConvert_017: start";
2008 PixelFormat srcFormat = PixelFormat::YCBCR_P010;
2009 PixelFormat destFormat = PixelFormat::RGB_565;
2010 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
2011 uint32_t destBuffersize = srcSize.width * srcSize.height * BYTES_PER_PIXEL_RGB565;
2012 PixelMap10bitConvert(srcFormat, destFormat, srcSize, destBuffersize);
2013 GTEST_LOG_(INFO) << "ImageFormatConvertTest.PixelMapFormatConvert_017: end";
2014 }
2015
2016 HWTEST_F(ImageFormatConvertTest, PixelMapFormatConvert_018, TestSize.Level3)
2017 {
2018 GTEST_LOG_(INFO) << "ImageFormatConvertTest.PixelMapFormatConvert_018: start";
2019 PixelFormat srcFormat = PixelFormat::YCBCR_P010;
2020 PixelFormat destFormat = PixelFormat::RGBA_8888;
2021 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
2022 uint32_t destBuffersize = srcSize.width * srcSize.height * BYTES_PER_PIXEL_RGBA;
2023 PixelMap10bitConvert(srcFormat, destFormat, srcSize, destBuffersize);
2024 GTEST_LOG_(INFO) << "ImageFormatConvertTest.PixelMapFormatConvert_018: end";
2025 }
2026
2027 HWTEST_F(ImageFormatConvertTest, PixelMapFormatConvert_019, TestSize.Level3)
2028 {
2029 GTEST_LOG_(INFO) << "ImageFormatConvertTest.PixelMapFormatConvert_019: start";
2030 PixelFormat srcFormat = PixelFormat::YCBCR_P010;
2031 PixelFormat destFormat = PixelFormat::BGRA_8888;
2032 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
2033 uint32_t destBuffersize = srcSize.width * srcSize.height * BYTES_PER_PIXEL_BGRA;
2034 PixelMap10bitConvert(srcFormat, destFormat, srcSize, destBuffersize);
2035 GTEST_LOG_(INFO) << "ImageFormatConvertTest.PixelMapFormatConvert_019: end";
2036 }
2037
2038 HWTEST_F(ImageFormatConvertTest, PixelMapFormatConvert_020, TestSize.Level1)
2039 {
2040 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_020 start";
2041 PixelFormat srcFormat = PixelFormat::YCBCR_P010;
2042 PixelFormat destFormat = PixelFormat::RGB_888;
2043 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
2044 uint32_t destBuffersize = srcSize.width * srcSize.height * BYTES_PER_PIXEL_RGB;
2045 PixelMap10bitConvert(srcFormat, destFormat, srcSize, destBuffersize);
2046 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_020 end";
2047 }
2048
2049 HWTEST_F(ImageFormatConvertTest, PixelMapFormatConvert_021, TestSize.Level1)
2050 {
2051 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_021 start";
2052 PixelFormat srcFormat = PixelFormat::YCBCR_P010;
2053 PixelFormat destFormat = PixelFormat::RGBA_F16;
2054 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
2055 uint32_t destBuffersize = srcSize.width * srcSize.height * sizeof(uint64_t);
2056 PixelMap10bitConvert(srcFormat, destFormat, srcSize, destBuffersize);
2057 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_021 end";
2058 }
2059
2060 HWTEST_F(ImageFormatConvertTest, PixelMapFormatConvert_022, TestSize.Level1)
2061 {
2062 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_022 start";
2063 PixelFormat srcFormat = PixelFormat::YCBCR_P010;
2064 PixelFormat destFormat = PixelFormat::RGBA_1010102;
2065 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
2066 uint32_t destBuffersize = srcSize.width * srcSize.height * BYTES_PER_PIXEL_RGBA;
2067 PixelMap10bitConvert(srcFormat, destFormat, srcSize, destBuffersize);
2068 GTEST_LOG_(INFO) << "ImageFormatConvertTest: PixelMapFormatConvert_022 end";
2069 }
2070
2071
2072 HWTEST_F(ImageFormatConvertTest, PixelMapFormatConvert_023, TestSize.Level3)
2073 {
2074 GTEST_LOG_(INFO) << "ImageFormatConvertTest.PixelMapFormatConvert_023: start";
2075 PixelFormat srcFormat = PixelFormat::RGB_565;
2076 PixelFormat destFormat = PixelFormat::YCBCR_P010;
2077 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
2078 uint32_t destBuffersize = (srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
2079 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES) * TWO_SLICES;
2080 PixelMapFormatConvert(srcFormat, destFormat, srcSize, destBuffersize);
2081 GTEST_LOG_(INFO) << "ImageFormatConvertTest.PixelMapFormatConvert_023: end";
2082 }
2083
2084 HWTEST_F(ImageFormatConvertTest, PixelMapFormatConvert_024, TestSize.Level3)
2085 {
2086 GTEST_LOG_(INFO) << "ImageFormatConvertTest.PixelMapFormatConvert_024: start";
2087 PixelFormat srcFormat = PixelFormat::BGRA_8888;
2088 PixelFormat destFormat = PixelFormat::YCBCR_P010;
2089 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
2090 uint32_t destBuffersize = (srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
2091 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES) * TWO_SLICES;
2092 PixelMapFormatConvert(srcFormat, destFormat, srcSize, destBuffersize);
2093 GTEST_LOG_(INFO) << "ImageFormatConvertTest.PixelMapFormatConvert_024: end";
2094 }
2095
2096 HWTEST_F(ImageFormatConvertTest, PixelMapFormatConvert_025, TestSize.Level3)
2097 {
2098 GTEST_LOG_(INFO) << "ImageFormatConvertTest.PixelMapFormatConvert_025: start";
2099 PixelFormat srcFormat = PixelFormat::RGBA_1010102;
2100 PixelFormat destFormat = PixelFormat::YCBCR_P010;
2101 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
2102 uint32_t destBuffersize = (srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
2103 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES) * TWO_SLICES;
2104 PixelMap10bitConvert(srcFormat, destFormat, srcSize, destBuffersize);
2105 GTEST_LOG_(INFO) << "ImageFormatConvertTest.PixelMapFormatConvert_025: end";
2106 }
2107
2108 HWTEST_F(ImageFormatConvertTest, PixelMapFormatConvert_026, TestSize.Level3)
2109 {
2110 GTEST_LOG_(INFO) << "ImageFormatConvertTest.PixelMapFormatConvert_026: start";
2111 PixelFormat srcFormat = PixelFormat::RGB_565;
2112 PixelFormat destFormat = PixelFormat::YCRCB_P010;
2113 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
2114 uint32_t destBuffersize = (srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
2115 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES) * TWO_SLICES;
2116 PixelMapFormatConvert(srcFormat, destFormat, srcSize, destBuffersize);
2117 GTEST_LOG_(INFO) << "ImageFormatConvertTest.PixelMapFormatConvert_026: end";
2118 }
2119
2120 HWTEST_F(ImageFormatConvertTest, PixelMapFormatConvert_027, TestSize.Level3)
2121 {
2122 GTEST_LOG_(INFO) << "ImageFormatConvertTest.PixelMapFormatConvert_027: start";
2123 PixelFormat srcFormat = PixelFormat::BGRA_8888;
2124 PixelFormat destFormat = PixelFormat::YCRCB_P010;
2125 Size srcSize = { ODDTREE_ORIGINAL_WIDTH, ODDTREE_ORIGINAL_HEIGHT };
2126 uint32_t destBuffersize = (srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
2127 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES) * TWO_SLICES;
2128 PixelMapFormatConvert(srcFormat, destFormat, srcSize, destBuffersize);
2129 GTEST_LOG_(INFO) << "ImageFormatConvertTest.PixelMapFormatConvert_027: end";
2130 }
2131
2132 HWTEST_F(ImageFormatConvertTest, PixelMapFormatConvert_028, TestSize.Level3)
2133 {
2134 GTEST_LOG_(INFO) << "ImageFormatConvertTest.PixelMapFormatConvert_028: start";
2135 PixelFormat srcFormat = PixelFormat::RGBA_1010102;
2136 PixelFormat destFormat = PixelFormat::YCRCB_P010;
2137 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
2138 uint32_t destBuffersize = (srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
2139 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES) * TWO_SLICES;
2140 PixelMap10bitConvert(srcFormat, destFormat, srcSize, destBuffersize);
2141 GTEST_LOG_(INFO) << "ImageFormatConvertTest.PixelMapFormatConvert_028: end";
2142 }
2143
2144 HWTEST_F(ImageFormatConvertTest, PixelMapFormatConvert_029, TestSize.Level3)
2145 {
2146 GTEST_LOG_(INFO) << "ImageFormatConvertTest.PixelMapFormatConvert_029: start";
2147 PixelFormat srcFormat = PixelFormat::NV12;
2148 PixelFormat destFormat = PixelFormat::RGBA_1010102;
2149 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
2150 uint32_t destBuffersize = srcSize.width * srcSize.height * BYTES_PER_PIXEL_RGBA;
2151 PixelMapFormatConvert(srcFormat, destFormat, srcSize, destBuffersize);
2152 GTEST_LOG_(INFO) << "ImageFormatConvertTest.PixelMapFormatConvert_029: end";
2153 }
2154
2155 HWTEST_F(ImageFormatConvertTest, PixelMapFormatConvert_030, TestSize.Level3)
2156 {
2157 GTEST_LOG_(INFO) << "ImageFormatConvertTest.PixelMapFormatConvert_030: start";
2158 PixelFormat srcFormat = PixelFormat::NV21;
2159 PixelFormat destFormat = PixelFormat::RGBA_1010102;
2160 Size srcSize = { TREE_ORIGINAL_WIDTH, TREE_ORIGINAL_HEIGHT };
2161 uint32_t destBuffersize = srcSize.width * srcSize.height * BYTES_PER_PIXEL_RGBA;
2162 PixelMapFormatConvert(srcFormat, destFormat, srcSize, destBuffersize);
2163 GTEST_LOG_(INFO) << "ImageFormatConvertTest.PixelMapFormatConvert_030: end";
2164 }
2165
2166 HWTEST_F(ImageFormatConvertTest, PixelMapFormatConvert_031, TestSize.Level3)
2167 {
2168 GTEST_LOG_(INFO) << "ImageFormatConvertTest.PixelMapFormatConvert_031: start";
2169 PixelFormat srcFormat = PixelFormat::RGBA_1010102;
2170 PixelFormat destFormat = PixelFormat::NV12;
2171 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
2172 uint32_t destBuffersize = srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
2173 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES;
2174 PixelMap10bitConvert(srcFormat, destFormat, srcSize, destBuffersize);
2175 GTEST_LOG_(INFO) << "ImageFormatConvertTest.PixelMapFormatConvert_031: end";
2176 }
2177
2178 HWTEST_F(ImageFormatConvertTest, PixelMapFormatConvert_032, TestSize.Level3)
2179 {
2180 GTEST_LOG_(INFO) << "ImageFormatConvertTest.PixelMapFormatConvert_032: start";
2181 PixelFormat srcFormat = PixelFormat::RGBA_1010102;
2182 PixelFormat destFormat = PixelFormat::NV21;
2183 Size srcSize = { P010_ORIGINAL_WIDTH, P010_ORIGINAL_HEIGHT };
2184 uint32_t destBuffersize = srcSize.width * srcSize.height + ((srcSize.width + 1) / EVEN_ODD_DIVISOR) *
2185 ((srcSize.height + 1) / EVEN_ODD_DIVISOR) * TWO_SLICES;
2186 PixelMap10bitConvert(srcFormat, destFormat, srcSize, destBuffersize);
2187 GTEST_LOG_(INFO) << "ImageFormatConvertTest.PixelMapFormatConvert_032: end";
2188 }
2189 } // namespace Media
2190 } // namespace OHOS