1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * Copyright 2021 Rockchip Electronics Co. LTD 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * Licensed under the Apache License, Version 2.0 (the "License"); 5*4882a593Smuzhiyun * you may not use this file except in compliance with the License. 6*4882a593Smuzhiyun * You may obtain a copy of the License at 7*4882a593Smuzhiyun * 8*4882a593Smuzhiyun * http://www.apache.org/licenses/LICENSE-2.0 9*4882a593Smuzhiyun * 10*4882a593Smuzhiyun * Unless required by applicable law or agreed to in writing, software 11*4882a593Smuzhiyun * distributed under the License is distributed on an "AS IS" BASIS, 12*4882a593Smuzhiyun * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*4882a593Smuzhiyun * See the License for the specific language governing permissions and 14*4882a593Smuzhiyun * limitations under the License. 15*4882a593Smuzhiyun * 16*4882a593Smuzhiyun */ 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun #ifndef SRC_TESTS_RT_MPI_COMMON_TEST_COMM_BMP_H_ 19*4882a593Smuzhiyun #define SRC_TESTS_RT_MPI_COMMON_TEST_COMM_BMP_H_ 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun #include "rk_type.h" 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun #ifdef __cplusplus 24*4882a593Smuzhiyun #if __cplusplus 25*4882a593Smuzhiyun extern "C" { 26*4882a593Smuzhiyun #endif 27*4882a593Smuzhiyun #endif /* End of #ifdef __cplusplus */ 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun /* the color format OSD supported */ 31*4882a593Smuzhiyun typedef enum rkOSD_COLOR_FMT_E { 32*4882a593Smuzhiyun OSD_COLOR_FMT_RGB444 = 0, 33*4882a593Smuzhiyun OSD_COLOR_FMT_ARGB4444 = 1, 34*4882a593Smuzhiyun OSD_COLOR_FMT_BGRA4444 = 2, 35*4882a593Smuzhiyun OSD_COLOR_FMT_RGB555 = 3, 36*4882a593Smuzhiyun OSD_COLOR_FMT_RGB565 = 4, 37*4882a593Smuzhiyun OSD_COLOR_FMT_ARGB1555 = 5, 38*4882a593Smuzhiyun OSD_COLOR_FMT_BGRA5551 = 6, 39*4882a593Smuzhiyun OSD_COLOR_FMT_RGB888 = 7, 40*4882a593Smuzhiyun OSD_COLOR_FMT_BGR888 = 8, 41*4882a593Smuzhiyun OSD_COLOR_FMT_ARGB8888 = 9, 42*4882a593Smuzhiyun OSD_COLOR_FMT_BGRA8888 = 10, 43*4882a593Smuzhiyun OSD_COLOR_FMT_BUTT 44*4882a593Smuzhiyun } OSD_COLOR_FMT_E; 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun typedef struct rkOSD_RGB_S { 47*4882a593Smuzhiyun RK_U8 u8B; 48*4882a593Smuzhiyun RK_U8 u8G; 49*4882a593Smuzhiyun RK_U8 u8R; 50*4882a593Smuzhiyun RK_U8 u8Reserved; 51*4882a593Smuzhiyun } OSD_RGB_S; 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun typedef struct rkOSD_SURFACE_S { 54*4882a593Smuzhiyun OSD_COLOR_FMT_E enColorFmt; /* color format */ 55*4882a593Smuzhiyun RK_U8 *pu8PhyAddr; /* physical address */ 56*4882a593Smuzhiyun RK_U16 u16Height; /* operation height */ 57*4882a593Smuzhiyun RK_U16 u16Width; /* operation width */ 58*4882a593Smuzhiyun RK_U16 u16Stride; /* surface stride */ 59*4882a593Smuzhiyun RK_U16 u16Reserved; 60*4882a593Smuzhiyun } OSD_SURFACE_S; 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun typedef struct tag_OSD_Logo { 63*4882a593Smuzhiyun RK_U32 width; /* out */ 64*4882a593Smuzhiyun RK_U32 height; /* out */ 65*4882a593Smuzhiyun RK_U32 stride; /* in */ 66*4882a593Smuzhiyun RK_U8 * pRGBBuffer; /* in/out */ 67*4882a593Smuzhiyun } OSD_LOGO_T; 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun typedef struct tag_OSD_BITMAPINFOHEADER { 70*4882a593Smuzhiyun RK_U16 biSize; 71*4882a593Smuzhiyun RK_U32 biWidth; 72*4882a593Smuzhiyun RK_S32 biHeight; 73*4882a593Smuzhiyun RK_U16 biPlanes; 74*4882a593Smuzhiyun RK_U16 biBitCount; 75*4882a593Smuzhiyun RK_U32 biCompression; 76*4882a593Smuzhiyun RK_U32 biSizeImage; 77*4882a593Smuzhiyun RK_U32 biXPelsPerMeter; 78*4882a593Smuzhiyun RK_U32 biYPelsPerMeter; 79*4882a593Smuzhiyun RK_U32 biClrUsed; 80*4882a593Smuzhiyun RK_U32 biClrImportant; 81*4882a593Smuzhiyun } OSD_BITMAPINFOHEADER; 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun typedef struct tag_OSD_BITMAPFILEHEADER { 84*4882a593Smuzhiyun RK_U32 bfSize; 85*4882a593Smuzhiyun RK_U16 bfReserved1; 86*4882a593Smuzhiyun RK_U16 bfReserved2; 87*4882a593Smuzhiyun RK_U32 bfOffBits; 88*4882a593Smuzhiyun } OSD_BITMAPFILEHEADER; 89*4882a593Smuzhiyun 90*4882a593Smuzhiyun typedef struct tag_OSD_RGBQUAD { 91*4882a593Smuzhiyun RK_U8 rgbBlue; 92*4882a593Smuzhiyun RK_U8 rgbGreen; 93*4882a593Smuzhiyun RK_U8 rgbRed; 94*4882a593Smuzhiyun RK_U8 rgbReserved; 95*4882a593Smuzhiyun } OSD_RGBQUAD; 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun typedef struct tag_OSD_BITMAPINFO { 98*4882a593Smuzhiyun OSD_BITMAPINFOHEADER bmiHeader; 99*4882a593Smuzhiyun OSD_RGBQUAD bmiColors[1]; 100*4882a593Smuzhiyun } OSD_BITMAPINFO; 101*4882a593Smuzhiyun 102*4882a593Smuzhiyun typedef struct rkOSD_COMPONENT_INFO_S { 103*4882a593Smuzhiyun RK_S32 alen; 104*4882a593Smuzhiyun RK_S32 rlen; 105*4882a593Smuzhiyun RK_S32 glen; 106*4882a593Smuzhiyun RK_S32 blen; 107*4882a593Smuzhiyun } OSD_COMP_INFO; 108*4882a593Smuzhiyun 109*4882a593Smuzhiyun RK_S32 TEST_COMM_LoadImage(const char *filename, OSD_LOGO_T *pVideoLogo); 110*4882a593Smuzhiyun RK_S32 TEST_COMM_LoadBitmap2Surface(const char *pstFileName, const OSD_SURFACE_S *pstSurface, RK_U8 *pu8Virt); 111*4882a593Smuzhiyun RK_S32 TEST_COMM_CreateSurfaceByBitmap(const char *pstFileName, OSD_SURFACE_S *pstSurface, RK_U8 *pu8Virt); 112*4882a593Smuzhiyun RK_S32 TEST_COMM_GetBmpInfo(const char *filename, OSD_BITMAPFILEHEADER *pBmpFileHeader, OSD_BITMAPINFO *pBmpInfo); 113*4882a593Smuzhiyun 114*4882a593Smuzhiyun #ifdef __cplusplus 115*4882a593Smuzhiyun #if __cplusplus 116*4882a593Smuzhiyun } 117*4882a593Smuzhiyun #endif 118*4882a593Smuzhiyun #endif /* End of #ifdef __cplusplus */ 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun #endif // SRC_TESTS_RT_MPI_COMMON_TEST_COMM_BMP_H_ 121