Files
gk-sdk/sample/common/loadbmp.h
T

111 lines
2.8 KiB
C
Executable File

/*
Copyright (c), 2001-2021, Shenshu Tech. Co., Ltd.
*/
#ifndef __LOAD_BMP_H__
#define __LOAD_BMP_H__
#include "xmedia_type.h"
/* the color format OSD supported */
typedef enum {
OSD_COLOR_FORMAT_RGB444 = 0,
OSD_COLOR_FORMAT_RGB4444 = 1,
OSD_COLOR_FORMAT_RGB555 = 2,
OSD_COLOR_FORMAT_RGB565 = 3,
OSD_COLOR_FORMAT_RGB1555 = 4,
OSD_COLOR_FORMAT_RGB888 = 6,
OSD_COLOR_FORMAT_RGB8888 = 7,
OSD_COLOR_FORMAT_CLUT2 = 8,
OSD_COLOR_FORMAT_CLUT4 = 9,
OSD_COLOR_FORMAT_BUTT
} osd_color_format;
typedef struct {
xmedia_u8 r;
xmedia_u8 g;
xmedia_u8 b;
xmedia_u8 reserved;
} osd_rgb;
typedef struct {
osd_color_format color_format; /* color format */
xmedia_u16 height; /* operation height */
xmedia_u16 width; /* operation width */
xmedia_u16 stride; /* surface stride */
xmedia_u16 reserved;
xmedia_u8 *virt_addr; /* virtual address */
} osd_surface;
typedef struct {
xmedia_u32 width; /* out */
xmedia_u32 height; /* out */
xmedia_u32 stride; /* in */
xmedia_u8 *rgb_buf; /* in/out */
} osd_logo;
typedef struct {
xmedia_u16 bi_size;
xmedia_u32 bi_width;
xmedia_s32 bi_height;
xmedia_u16 bi_planes;
xmedia_u16 bi_bit_count;
xmedia_u32 bi_compression;
xmedia_u32 bi_size_image;
xmedia_u32 bi_x_pels_per_meter;
xmedia_u32 bi_y_pels_per_meter;
xmedia_u32 bi_clr_used;
xmedia_u32 bi_clr_important;
} osd_bit_map_info_header;
typedef struct {
xmedia_u32 bf_size;
xmedia_u16 bf_reserved1;
xmedia_u16 bf_reserved2;
xmedia_u32 bf_off_bits;
} osd_bit_map_file_header;
typedef struct {
xmedia_u8 blue;
xmedia_u8 green;
xmedia_u8 red;
xmedia_u8 reserved;
} osd_rgb_quad;
typedef struct {
osd_bit_map_info_header bmp_header;
osd_rgb_quad bmp_colors[1];
} osd_bit_map_info;
typedef struct {
xmedia_u8 a_len;
xmedia_u8 r_len;
xmedia_u8 g_len;
xmedia_u8 b_len;
} osd_component_info;
typedef struct {
xmedia_u32 width;
xmedia_u32 height;
xmedia_u32 stride;
} canvas_size_info;
typedef canvas_size_info bmp_data_size_info;
#ifdef __cplusplus
extern "C" {
#endif
xmedia_s32 load_image(const xmedia_char *filename, osd_logo *video_logo);
xmedia_s32 load_bit_map_to_surface(const xmedia_char *file_name, const osd_surface *surface, xmedia_u8 *virt);
xmedia_s32 create_surface_by_bit_map(const xmedia_char *file_name, osd_surface *surface, xmedia_u8 *virt);
xmedia_s32 create_surface_by_canvas(const xmedia_char *file_name, osd_surface *surface, xmedia_u8 *virt,
const canvas_size_info *canvas_size);
xmedia_s32 get_bmp_info(const xmedia_char *filename, osd_bit_map_file_header *bmp_file_header, osd_bit_map_info *bmp_info);
#ifdef __cplusplus
}
#endif
#endif /* End of #ifndef __LOAD_BMP_H__ */