TianoCore EDK2 master
Loading...
Searching...
No Matches
HiiImageDecoder.h File Reference

Go to the source code of this file.

Data Structures

struct  _EFI_HII_IMAGE_DECODER_IMAGE_INFO_HEADER
 
struct  _EFI_HII_IMAGE_DECODER_JPEG_INFO
 
struct  _EFI_HII_IMAGE_DECODER_PNG_INFO
 
struct  _EFI_HII_IMAGE_DECODER_OTHER_INFO
 
struct  _EFI_HII_IMAGE_DECODER_PROTOCOL
 

Macros

#define EFI_HII_IMAGE_DECODER_PROTOCOL_GUID    {0x9e66f251, 0x727c, 0x418c, { 0xbf, 0xd6, 0xc2, 0xb4, 0x25, 0x28, 0x18, 0xea }}
 
#define EFI_HII_IMAGE_DECODER_NAME_JPEG_GUID    {0xefefd093, 0xd9b, 0x46eb, { 0xa8, 0x56, 0x48, 0x35, 0x7, 0x0, 0xc9, 0x8 }}
 
#define EFI_HII_IMAGE_DECODER_NAME_PNG_GUID    {0xaf060190, 0x5e3a, 0x4025, { 0xaf, 0xbd, 0xe1, 0xf9, 0x5, 0xbf, 0xaa, 0x4c }}
 
#define EFI_IMAGE_JPEG_SCANTYPE_PROGREESSIVE   0x01
 
#define EFI_IMAGE_JPEG_SCANTYPE_INTERLACED   0x02
 

Typedefs

typedef struct _EFI_HII_IMAGE_DECODER_PROTOCOL EFI_HII_IMAGE_DECODER_PROTOCOL
 
typedef struct _EFI_HII_IMAGE_DECODER_IMAGE_INFO_HEADER EFI_HII_IMAGE_DECODER_IMAGE_INFO_HEADER
 
typedef struct _EFI_HII_IMAGE_DECODER_JPEG_INFO EFI_HII_IMAGE_DECODER_JPEG_INFO
 
typedef struct _EFI_HII_IMAGE_DECODER_PNG_INFO EFI_HII_IMAGE_DECODER_PNG_INFO
 
typedef struct _EFI_HII_IMAGE_DECODER_OTHER_INFO EFI_HII_IMAGE_DECODER_OTHER_INFO
 
typedef EFI_STATUS(EFIAPI * EFI_HII_IMAGE_DECODER_GET_NAME) (IN EFI_HII_IMAGE_DECODER_PROTOCOL *This, IN OUT EFI_GUID **DecoderName, IN OUT UINT16 *NumberOfDecoderName)
 
typedef EFI_STATUS(EFIAPI * EFI_HII_IMAGE_DECODER_GET_IMAGE_INFO) (IN EFI_HII_IMAGE_DECODER_PROTOCOL *This, IN VOID *Image, IN UINTN SizeOfImage, IN OUT EFI_HII_IMAGE_DECODER_IMAGE_INFO_HEADER **ImageInfo)
 
typedef EFI_STATUS(EFIAPI * EFI_HII_IMAGE_DECODER_DECODE) (IN EFI_HII_IMAGE_DECODER_PROTOCOL *This, IN VOID *Image, IN UINTN ImageRawDataSize, IN OUT EFI_IMAGE_OUTPUT **Bitmap, IN BOOLEAN Transparent)
 

Enumerations

enum  EFI_HII_IMAGE_DECODER_COLOR_TYPE { EFI_HII_IMAGE_DECODER_COLOR_TYPE_RGB = 0x0 , EFI_HII_IMAGE_DECODER_COLOR_TYPE_RGBA = 0x1 , EFI_HII_IMAGE_DECODER_COLOR_TYPE_CMYK = 0x2 , EFI_HII_IMAGE_DECODER_COLOR_TYPE_UNKNOWN = 0xFF }
 

Variables

EFI_GUID gEfiHiiImageDecoderProtocolGuid
 
EFI_GUID gEfiHiiImageDecoderNameJpegGuid
 
EFI_GUID gEfiHiiImageDecoderNamePngGuid
 

Detailed Description

This protocol provides generic image decoder interfaces to various image formats.

(C) Copyright 2016 Hewlett Packard Enterprise Development LP
Copyright (c) 2016-2018, Intel Corporation. All rights reserved.

SPDX-License-Identifier: BSD-2-Clause-Patent

Revision Reference:
This Protocol was introduced in UEFI Specification 2.6.

Definition in file HiiImageDecoder.h.

Macro Definition Documentation

◆ EFI_HII_IMAGE_DECODER_NAME_JPEG_GUID

#define EFI_HII_IMAGE_DECODER_NAME_JPEG_GUID    {0xefefd093, 0xd9b, 0x46eb, { 0xa8, 0x56, 0x48, 0x35, 0x7, 0x0, 0xc9, 0x8 }}

Definition at line 22 of file HiiImageDecoder.h.

◆ EFI_HII_IMAGE_DECODER_NAME_PNG_GUID

#define EFI_HII_IMAGE_DECODER_NAME_PNG_GUID    {0xaf060190, 0x5e3a, 0x4025, { 0xaf, 0xbd, 0xe1, 0xf9, 0x5, 0xbf, 0xaa, 0x4c }}

Definition at line 25 of file HiiImageDecoder.h.

◆ EFI_HII_IMAGE_DECODER_PROTOCOL_GUID

#define EFI_HII_IMAGE_DECODER_PROTOCOL_GUID    {0x9e66f251, 0x727c, 0x418c, { 0xbf, 0xd6, 0xc2, 0xb4, 0x25, 0x28, 0x18, 0xea }}

Definition at line 19 of file HiiImageDecoder.h.

◆ EFI_IMAGE_JPEG_SCANTYPE_INTERLACED

#define EFI_IMAGE_JPEG_SCANTYPE_INTERLACED   0x02

Definition at line 57 of file HiiImageDecoder.h.

◆ EFI_IMAGE_JPEG_SCANTYPE_PROGREESSIVE

#define EFI_IMAGE_JPEG_SCANTYPE_PROGREESSIVE   0x01

Definition at line 56 of file HiiImageDecoder.h.

Typedef Documentation

◆ EFI_HII_IMAGE_DECODER_DECODE

typedef EFI_STATUS(EFIAPI * EFI_HII_IMAGE_DECODER_DECODE) (IN EFI_HII_IMAGE_DECODER_PROTOCOL *This, IN VOID *Image, IN UINTN ImageRawDataSize, IN OUT EFI_IMAGE_OUTPUT **Bitmap, IN BOOLEAN Transparent)

This function decodes the image which the image type of this image is supported by this EFI_HII_IMAGE_DECODER_PROTOCOL. If **Bitmap is not NULL, the caller intends to put the image in the given image buffer. That allows the caller to put an image overlap on the original image. The transparency is handled by the image decoder because the transparency capability depends on the image format. Callers can set Transparent to FALSE to force disabling the transparency process on the image. Forcing Transparent to FALSE may also improve the performance of the image decoding because the image decoder can skip the transparency processing. If **Bitmap is NULL, the image decoder allocates the memory buffer for the EFI_IMAGE_OUTPUT and decodes the image to the image buffer. It is the caller?s responsibility to free the memory for EFI_IMAGE_OUTPUT. Image decoder doesn?t have to handle the transparency in this case because there is no background image given by the caller. The background color in this case is all black (#00000000).

Parameters
ThisEFI_HII_IMAGE_DECODER_PROTOCOL instance.
ImagePointer to the image raw data.
ImageRawDataSizeSize of the entire image raw data.
BltEFI_IMAGE_OUTPUT to receive the image or overlap the image on the original buffer.
TransparentBOOLEAN value indicates whether the image decoder has to handle the transparent image or not.
Return values
EFI_SUCCESSImage decode success.
EFI_UNSUPPORTEDUnsupported format of image.
EFI_INVALID_PARAMETERIncorrect parameter.
EFI_BAD_BUFFER_SIZENot enough memory.

Definition at line 181 of file HiiImageDecoder.h.

◆ EFI_HII_IMAGE_DECODER_GET_IMAGE_INFO

typedef EFI_STATUS(EFIAPI * EFI_HII_IMAGE_DECODER_GET_IMAGE_INFO) (IN EFI_HII_IMAGE_DECODER_PROTOCOL *This, IN VOID *Image, IN UINTN SizeOfImage, IN OUT EFI_HII_IMAGE_DECODER_IMAGE_INFO_HEADER **ImageInfo)

This function returns the image information of the given image raw data. This function first checks whether the image raw data is supported by this decoder or not. This function may go through the first few bytes in the image raw data for the specific data structure or the image signature. If the image is not supported by this image decoder, this function returns EFI_UNSUPPORTED to the caller. Otherwise, this function returns the proper image information to the caller. It is the caller?s responsibility to free the ImageInfo.

Parameters
ThisEFI_HII_IMAGE_DECODER_PROTOCOL instance.
ImagePointer to the image raw data.
SizeOfImageSize of the entire image raw data.
ImageInfoPointer to receive EFI_HII_IMAGE_DECODER_IMAGE_INFO_HEADER.
Return values
EFI_SUCCESSGet image info success.
EFI_UNSUPPORTEDUnsupported format of image.
EFI_INVALID_PARAMETERIncorrect parameter.
EFI_BAD_BUFFER_SIZENot enough memory.

Definition at line 142 of file HiiImageDecoder.h.

◆ EFI_HII_IMAGE_DECODER_GET_NAME

typedef EFI_STATUS(EFIAPI * EFI_HII_IMAGE_DECODER_GET_NAME) (IN EFI_HII_IMAGE_DECODER_PROTOCOL *This, IN OUT EFI_GUID **DecoderName, IN OUT UINT16 *NumberOfDecoderName)

There could be more than one EFI_HII_IMAGE_DECODER_PROTOCOL instances installed in the system for different image formats. This function returns the decoder name which callers can use to find the proper image decoder for the image. It is possible to support multiple image formats in one EFI_HII_IMAGE_DECODER_PROTOCOL. The capability of the supported image formats is returned in DecoderName and NumberOfDecoderName.

Parameters
ThisEFI_HII_IMAGE_DECODER_PROTOCOL instance.
DecoderNamePointer to a dimension to retrieve the decoder names in EFI_GUID format. The number of the decoder names is returned in NumberOfDecoderName.
NumberofDecoderNamePointer to retrieve the number of decoders which supported by this decoder driver.
Return values
EFI_SUCCESSGet decoder name success.
EFI_UNSUPPORTEDGet decoder name fail.

Definition at line 114 of file HiiImageDecoder.h.

◆ EFI_HII_IMAGE_DECODER_PROTOCOL

Enumeration Type Documentation

◆ EFI_HII_IMAGE_DECODER_COLOR_TYPE

enum EFI_HII_IMAGE_DECODER_COLOR_TYPE

Definition at line 30 of file HiiImageDecoder.h.