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