1094332d3Sopenharmony_ci/* 2094332d3Sopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd. 3094332d3Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4094332d3Sopenharmony_ci * you may not use this file except in compliance with the License. 5094332d3Sopenharmony_ci * You may obtain a copy of the License at 6094332d3Sopenharmony_ci * 7094332d3Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8094332d3Sopenharmony_ci * 9094332d3Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10094332d3Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11094332d3Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12094332d3Sopenharmony_ci * See the License for the specific language governing permissions and 13094332d3Sopenharmony_ci * limitations under the License. 14094332d3Sopenharmony_ci */ 15094332d3Sopenharmony_ci 16094332d3Sopenharmony_ci#ifndef DISPLAY_COMMON_FUZZER_H 17094332d3Sopenharmony_ci#define DISPLAY_COMMON_FUZZER_H 18094332d3Sopenharmony_ci 19094332d3Sopenharmony_ci#include "v1_1/include/idisplay_buffer.h" 20094332d3Sopenharmony_ci#include "v1_0/display_composer_type.h" 21094332d3Sopenharmony_ci#include "v1_0/display_buffer_type.h" 22094332d3Sopenharmony_ci#include "buffer_handle.h" 23094332d3Sopenharmony_ci#include "hdf_log.h" 24094332d3Sopenharmony_ci 25094332d3Sopenharmony_cinamespace OHOS { 26094332d3Sopenharmony_ciusing namespace OHOS::HDI::Display::Buffer::V1_0; 27094332d3Sopenharmony_ciusing namespace OHOS::HDI::Display::Composer::V1_0; 28094332d3Sopenharmony_ciconst size_t THRESHOLD = 10; 29094332d3Sopenharmony_ciconst int32_t ALPHA_VALUE_RANGE = 256; // ranging from 0 to 255 30094332d3Sopenharmony_ciconst uint32_t WIDTH = 128; 31094332d3Sopenharmony_ciconst uint32_t HEIGHT = 128; 32094332d3Sopenharmony_ci 33094332d3Sopenharmony_ciconst PixelFormat CONVERT_TABLE_FORMAT[] = { 34094332d3Sopenharmony_ci PIXEL_FMT_CLUT8, PIXEL_FMT_CLUT1, 35094332d3Sopenharmony_ci PIXEL_FMT_CLUT4, PIXEL_FMT_RGB_565, 36094332d3Sopenharmony_ci PIXEL_FMT_RGBA_5658, PIXEL_FMT_RGBX_4444, 37094332d3Sopenharmony_ci PIXEL_FMT_RGBA_4444, PIXEL_FMT_RGB_444, 38094332d3Sopenharmony_ci PIXEL_FMT_RGBX_5551, PIXEL_FMT_RGBA_5551, 39094332d3Sopenharmony_ci PIXEL_FMT_RGB_555, PIXEL_FMT_RGBX_8888, 40094332d3Sopenharmony_ci PIXEL_FMT_RGBA_8888, PIXEL_FMT_RGB_888, 41094332d3Sopenharmony_ci PIXEL_FMT_BGR_565, PIXEL_FMT_BGRX_4444, 42094332d3Sopenharmony_ci PIXEL_FMT_BGRA_4444, PIXEL_FMT_BGRX_5551, 43094332d3Sopenharmony_ci PIXEL_FMT_BGRA_5551, PIXEL_FMT_BGRX_8888, 44094332d3Sopenharmony_ci PIXEL_FMT_BGRA_8888, PIXEL_FMT_YUV_422_I, 45094332d3Sopenharmony_ci PIXEL_FMT_YCBCR_422_SP, PIXEL_FMT_YCRCB_422_SP, 46094332d3Sopenharmony_ci PIXEL_FMT_YCBCR_420_SP, PIXEL_FMT_YCRCB_420_SP, 47094332d3Sopenharmony_ci PIXEL_FMT_YCBCR_422_P, PIXEL_FMT_YCRCB_422_P, 48094332d3Sopenharmony_ci PIXEL_FMT_YCBCR_420_P, PIXEL_FMT_YCRCB_420_P, 49094332d3Sopenharmony_ci PIXEL_FMT_YUYV_422_PKG, PIXEL_FMT_UYVY_422_PKG, 50094332d3Sopenharmony_ci PIXEL_FMT_YVYU_422_PKG, PIXEL_FMT_VYUY_422_PKG, 51094332d3Sopenharmony_ci PIXEL_FMT_VENDER_MASK, PIXEL_FMT_BUTT, 52094332d3Sopenharmony_ci}; 53094332d3Sopenharmony_ci 54094332d3Sopenharmony_ciconst BufferUsage CONVERT_TABLE_USAGE[] = { 55094332d3Sopenharmony_ci HBM_USE_CPU_READ, HBM_USE_CPU_WRITE, 56094332d3Sopenharmony_ci HBM_USE_MEM_MMZ, HBM_USE_MEM_DMA, 57094332d3Sopenharmony_ci HBM_USE_MEM_SHARE, HBM_USE_MEM_MMZ_CACHE, 58094332d3Sopenharmony_ci HBM_USE_MEM_FB, HBM_USE_ASSIGN_SIZE, 59094332d3Sopenharmony_ci HBM_USE_HW_RENDER, HBM_USE_HW_TEXTURE, 60094332d3Sopenharmony_ci HBM_USE_HW_COMPOSER, HBM_USE_PROTECTED, 61094332d3Sopenharmony_ci HBM_USE_CAMERA_READ, HBM_USE_CAMERA_WRITE, 62094332d3Sopenharmony_ci HBM_USE_VIDEO_ENCODER, HBM_USE_VIDEO_DECODER, 63094332d3Sopenharmony_ci HBM_USE_VENDOR_PRI0, HBM_USE_VENDOR_PRI1, 64094332d3Sopenharmony_ci HBM_USE_VENDOR_PRI2, HBM_USE_VENDOR_PRI3, 65094332d3Sopenharmony_ci HBM_USE_VENDOR_PRI4, HBM_USE_VENDOR_PRI5, 66094332d3Sopenharmony_ci HBM_USE_VENDOR_PRI6, HBM_USE_VENDOR_PRI7, 67094332d3Sopenharmony_ci HBM_USE_VENDOR_PRI8, HBM_USE_VENDOR_PRI9, 68094332d3Sopenharmony_ci HBM_USE_VENDOR_PRI10, HBM_USE_VENDOR_PRI11, 69094332d3Sopenharmony_ci HBM_USE_VENDOR_PRI12, HBM_USE_VENDOR_PRI13, 70094332d3Sopenharmony_ci HBM_USE_VENDOR_PRI14, HBM_USE_VENDOR_PRI15, 71094332d3Sopenharmony_ci HBM_USE_VENDOR_PRI16, HBM_USE_VENDOR_PRI17, 72094332d3Sopenharmony_ci HBM_USE_VENDOR_PRI18, HBM_USE_VENDOR_PRI19, 73094332d3Sopenharmony_ci}; 74094332d3Sopenharmony_ci 75094332d3Sopenharmony_citemplate<class T> 76094332d3Sopenharmony_ciuint32_t GetArrLength(T& arr) 77094332d3Sopenharmony_ci{ 78094332d3Sopenharmony_ci if (arr == nullptr) { 79094332d3Sopenharmony_ci HDF_LOGE("%{public}s: The array length is equal to 0", __func__); 80094332d3Sopenharmony_ci return 0; 81094332d3Sopenharmony_ci } 82094332d3Sopenharmony_ci return sizeof(arr) / sizeof(arr[0]); 83094332d3Sopenharmony_ci} 84094332d3Sopenharmony_ci 85094332d3Sopenharmony_ci} // OHOS 86094332d3Sopenharmony_ci#endif // DISPLAY_COMMON_FUZZER_H 87