/* * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ #include #include "hal/color_hal.h" #include "hal/assert.h" uint32_t color_hal_pixel_format_get_bit_depth(color_space_pixel_format_t format) { switch (format.color_type_id) { case COLOR_TYPE_ID(COLOR_SPACE_GRAY, COLOR_PIXEL_GRAY4): case COLOR_TYPE_ID(COLOR_SPACE_ALPHA, COLOR_PIXEL_A4): case COLOR_TYPE_ID(COLOR_SPACE_CLUT, COLOR_PIXEL_L4): return 4; case COLOR_TYPE_ID(COLOR_SPACE_RAW, COLOR_PIXEL_RAW8): case COLOR_TYPE_ID(COLOR_SPACE_GRAY, COLOR_PIXEL_GRAY8): case COLOR_TYPE_ID(COLOR_SPACE_ALPHA, COLOR_PIXEL_A8): case COLOR_TYPE_ID(COLOR_SPACE_CLUT, COLOR_PIXEL_L8): return 8; case COLOR_TYPE_ID(COLOR_SPACE_RAW, COLOR_PIXEL_RAW10): return 10; case COLOR_TYPE_ID(COLOR_SPACE_RAW, COLOR_PIXEL_RAW12): case COLOR_TYPE_ID(COLOR_SPACE_YUV, COLOR_PIXEL_YUV420): case COLOR_TYPE_ID(COLOR_SPACE_YUV, COLOR_PIXEL_YUV411): return 12; case COLOR_TYPE_ID(COLOR_SPACE_RGB, COLOR_PIXEL_RGB565): case COLOR_TYPE_ID(COLOR_SPACE_YUV, COLOR_PIXEL_YUV422): return 16; case COLOR_TYPE_ID(COLOR_SPACE_RGB, COLOR_PIXEL_RGB666): return 18; case COLOR_TYPE_ID(COLOR_SPACE_RGB, COLOR_PIXEL_RGB888): case COLOR_TYPE_ID(COLOR_SPACE_YUV, COLOR_PIXEL_YUV444): return 24; case COLOR_TYPE_ID(COLOR_SPACE_ARGB, COLOR_PIXEL_ARGB8888): return 32; default: // Unknown color space pixel format, unknown bit depth HAL_ASSERT(false); return 0; } } uint32_t color_hal_pixel_format_fourcc_get_bit_depth(esp_color_fourcc_t four_character_code) { switch (four_character_code) { case ESP_COLOR_FOURCC_ALPHA4: return 4; case ESP_COLOR_FOURCC_ALPHA8: case ESP_COLOR_FOURCC_GREY: case ESP_COLOR_FOURCC_RAW8: return 8; case ESP_COLOR_FOURCC_RAW10: return 10; case ESP_COLOR_FOURCC_RAW12: case ESP_COLOR_FOURCC_OUYY_EVYY: return 12; case ESP_COLOR_FOURCC_YUYV: case ESP_COLOR_FOURCC_UYVY: case ESP_COLOR_FOURCC_YVYU: case ESP_COLOR_FOURCC_VYUY: case ESP_COLOR_FOURCC_RGB16: return 16; case ESP_COLOR_FOURCC_BGR24: case ESP_COLOR_FOURCC_YUV: return 24; case ESP_COLOR_FOURCC_BGRA32: return 32; default: // Unknown color space pixel format, unknown bit depth HAL_ASSERT(false); return 0; } }