/* * Copyright 2021 Rockchip Electronics Co. LTD * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ #ifndef __LOAD_BMP_H__ #define __LOAD_BMP_H__ #include "rk_type.h" #ifdef __cplusplus #if __cplusplus extern "C" { #endif #endif /* End of #ifdef __cplusplus */ /* the color format OSD supported */ typedef enum rkOSD_COLOR_FMT_E { OSD_COLOR_FMT_RGB444 = 0, OSD_COLOR_FMT_RGB4444 = 1, OSD_COLOR_FMT_RGB555 = 2, OSD_COLOR_FMT_RGB565 = 3, OSD_COLOR_FMT_ARGB1555 = 4, OSD_COLOR_FMT_BGRA5551 = 5, OSD_COLOR_FMT_RGB888 = 6, OSD_COLOR_FMT_BGR888 = 7, OSD_COLOR_FMT_ARGB8888 = 8, OSD_COLOR_FMT_BGRA8888 = 9, OSD_COLOR_FMT_BUTT } OSD_COLOR_FMT_E; typedef struct rkOSD_RGB_S { RK_U8 u8B; RK_U8 u8G; RK_U8 u8R; RK_U8 u8Reserved; } OSD_RGB_S; typedef struct rkOSD_SURFACE_S { OSD_COLOR_FMT_E enColorFmt; /* color format */ RK_U8 *pu8PhyAddr; /* physical address */ RK_U16 u16Height; /* operation height */ RK_U16 u16Width; /* operation width */ RK_U16 u16Stride; /* surface stride */ RK_U16 u16Reserved; } OSD_SURFACE_S; typedef struct tag_OSD_Logo { RK_U32 width; /* out */ RK_U32 height; /* out */ RK_U32 stride; /* in */ RK_U8 * pRGBBuffer; /* in/out */ } OSD_LOGO_T; typedef struct tag_OSD_BITMAPINFOHEADER { RK_U16 biSize; RK_U32 biWidth; RK_S32 biHeight; RK_U16 biPlanes; RK_U16 biBitCount; RK_U32 biCompression; RK_U32 biSizeImage; RK_U32 biXPelsPerMeter; RK_U32 biYPelsPerMeter; RK_U32 biClrUsed; RK_U32 biClrImportant; } OSD_BITMAPINFOHEADER; typedef struct tag_OSD_BITMAPFILEHEADER { RK_U32 bfSize; RK_U16 bfReserved1; RK_U16 bfReserved2; RK_U32 bfOffBits; } OSD_BITMAPFILEHEADER; typedef struct tag_OSD_RGBQUAD { RK_U8 rgbBlue; RK_U8 rgbGreen; RK_U8 rgbRed; RK_U8 rgbReserved; } OSD_RGBQUAD; typedef struct tag_OSD_BITMAPINFO { OSD_BITMAPINFOHEADER bmiHeader; OSD_RGBQUAD bmiColors[1]; } OSD_BITMAPINFO; typedef struct rkOSD_COMPONENT_INFO_S { RK_S32 alen; RK_S32 rlen; RK_S32 glen; RK_S32 blen; } OSD_COMP_INFO; RK_S32 load_image(const char *filename, OSD_LOGO_T *pVideoLogo); RK_S32 load_bitmap_2_surface(const char *pstFileName, const OSD_SURFACE_S *pstSurface, RK_U8 *pu8Virt); RK_S32 create_surface_by_bitmap(const char *pstFileName, OSD_SURFACE_S *pstSurface, RK_U8 *pu8Virt); RK_S32 get_bmp_info(const char *filename, OSD_BITMAPFILEHEADER *pBmpFileHeader, OSD_BITMAPINFO *pBmpInfo); #ifdef __cplusplus #if __cplusplus } #endif #endif /* End of #ifdef __cplusplus */ #endif /* End of #ifndef __LOAD_BMP_H__*/