MI HDMI API

Version 2.07


1. SUMMARY


1.1. Module Description

HDMI (High-Definition Multimedia Interface) is a proprietary audio/video interface for transmitting uncompressed video data and compressed or uncompressed digital audio data from an HDMI-compliant source device.

HDMI can be divided into TX and Rx Device. TX is the source device used to transmit data to RX (sink device). At present, this module only supports HDMITX based on HDMI ver1.4.


1.2. Stream Flow


1.3. Platform Support

Platform Features Taiyaki
1920x1080\@24 Y
1920x1080\@25 Y
1920x1080\@30 Y
1920x1080\@50 Y
1920x1080\@60 Y
1280x720\@60 Y
1280x720\@50 Y
720x576\@50 Y
720x480\@60 Y
1280x1024\@60 Y
1024x768\@60 Y
1440x900\@60 Y
1600x1200\@60 Y
1280x800\@60 Y
1366x768\@60 Y
1680x1050\@60 Y
3840x2160\@30 Y
2560x1440\@30 Y
Audio_32K Y
Audio_48K Y

1.4. Keywords

  • EDID: Extended display identification data,

    which is a metadata format for display devices to describe their capabilities to a video source.

  • InfoFrame:

    Infoframe is a subject of HDMI, used to show information of transmit data.

  • DeepColor:

    A color mode to show mode colorful video.

  • SinkInfo:

    The info from sink device, such as supported timing.


2. API LIST

The MI HDMI module provides the following APIs:

Name of API Function
MI_HDMI_Init Initialize HDMI
MI_HDMI_DeInit Deinitialize HDMI
MI_HDMI_Open Open HDMI
MI_HDMI_Close Close HDMI
MI_HDMI_SetAttr Set HDMI attribute
MI_HDMI_GetAttr Get HDMI attribute
MI_HDMI_Start Start HDMI
MI_HDMI_Stop Stop HDMI
MI_HDMI_GetSinkInfo Get HDMI Sink side capability information
MI_HDMI_SetAvMute Set HDMI audio/video mute function
MI_HDMI_ForceGetEdid Get HDMI EDID information
MI_HDMI_SetDeepColor Set HDMI Deep Color mode
MI_HDMI_GetDeepColor Get HDMI Deep Color mode
MI_HDMI_SetInfoFrame Set HDMI Info Frame
MI_HDMI_GetInfoFrame Get current HDMI Info Frame
MI_HDMI_SetAnalogDrvCurrent Set HDMI Channel Driving Current
MI_HDMI_InitDev Initialize HDMI Device
MI_HDMI_DeInitDev De-initialize HDMI Device

2.1. MI_HDMI_Init

  • Function

    Initialize HDMI module

  • Syntax

    MI_S32 MI_HDMI_Init(MI_HDMI_InitParam_t *pstHdmiPara);
    
  • Parameter

    Parameter Name Description Input/Output
    pstHdmiParam Pointer to initialization parameter structure Input
  • Return Value

    • Zero: Successful

    • Non-zero: Failed, see error code for details

  • Requirement

    • Header: mi_hdmi.h, mi _hdmi_datatype.h

    • Library: libmi_hdmi.a

  • Note

    • After HDMI calls back the registered event, system will inform AP in the form of callback that a suspected hot-plugging event had happened. If user considers it not necessary to make any special response against the corresponding event, the function pointer in the initialization parameter structure can be set to NULL.

    • The following diagram shows the implementation of hotplug:

  • Example

    1.  MI_HDMI_InitPara_t stHdmiPara;
    
    2.  MI_HDMI_Attr_t stAttr;
    
    3.  MI_HDMI_TimingType_e eTimingType;
    
    4.  /* enable DISP */
    
    5.  eTimingType = E_MI_HDMI_TIMING_1080_60P;
    
    6.  /* enable HDMI */
    
    7.  stHdmiPara.pCallBackArgs = NULL;
    
    8.  stHdmiPara.pfnHdmiEventCallback = NULL;
    
    9.  MI_HDMI_Init(&stHdmiPara);
    
    10. MI_HDMI_Open(0);
    
    11. /* get support timming of sink device*/
    
    12. MI_HDMI_ForceGetEdid(0, &stEdid);
    
    13. ...
    
    14. /* set the source output timming according to sink edid */
    
    15. MI_MPI_HDMI_GetAttr(0, &stAttr);
    
    16. stAttr.bEnableHdmi = MI_TRUE;
    
    17. stAttr.bEnableVideo = MI_TRUE;
    
    18. stAttr.eVideoFmt = enVideoFmt;
    
    19. stAttr.eVidOutMode= E_MI_HDMI_VIDEO_MODE_YCBCR444;
    
    20. stAttr.eDeepColorMode = E_MI_HDMI_DEEP_COLOR_24BIT;
    
    21. stAttr.bEnableAudio = MI_FALSE;
    
    22. stAttr.bIsMultiChannel = MI_FALSE;
    
    23. stAttr.eBitDepth = E_MI_HDMI_BIT_DEPTH_16;
    
    24. MI_HDMI_SetAttr(0, &stAttr);
    
    25. MI_HDMI_Start(0);
    
    26. /* stop HDMI */
    
    27. MI_HDMI_Stop(0);
    
    28. MI_HDMI_Close(0);
    
    29. MI_HDMI_DeInit();
    
  • Related API

    MI_HDMI_DeInit


2.2. MI_HDMI_DeInit

  • Function

    Deinitialize HDMI

  • Syntax

    MI_S32 MI_HDMI_DeInit();
    
  • Return Value

    • Zero: Successful

    • Non-zero: Failed, see error code for details

  • Requirement

    • Header: mi_hdmi.h, mi_ hdmi_datatype.h

    • Library: libmi_hdmi.a

  • Example

    See the example given in MI_HDMI_Init.

  • Related API

    MI_HDMI_Init


2.3. MI_HDMI_Open

  • Function

    Open HDMI

  • Syntax

    MI_S32 MI_HDMI_Open(MI_HDMI_DeviceId_e eHdmi);
    
  • Parameter

    Parameter Name Description Input/Output
    eHdmi HDMI interface number
    Parameter range: 0
    Input
  • Return Value

    • Zero: Successful

    • Non-zero: Failed, see error code for details

  • Requirement

    • Header: mi_hdmi.h, mi_ hdmi_datatype.h

    • Library: libmi _hdmi.a

  • Note

    You should call MI_HDMI_Init before opening HDMI.

    Repeated opening of HDMI will return a successful message.

  • Example

    See the example given in MI_HDMI_Init.

  • Related API

    MI_HDMI_Close


2.4. MI_HDMI_Close

  • Function

    Close HDMI

  • Syntax

    MI_S32 MI_HDMI_Close(MI_HDMI_DeviceId_e eHdmi);
    
  • Parameter

    Parameter Name Description Input/Output
    eHdmi HDMI interface number Input
    Parameter range: 0
  • Return Value

    • Zero: Successful

    • Non-zero: Failed, see error code for details

  • Requirement

    • Header: mi_hdmi.h, mi_ hdmi_datatype.h

    • Library: libmi_hdmi.a

  • Note

    Repeated closing of HDMI will return a successful message.

  • Example

    See the example given in MI_HDMI_Init.

  • Related API

    MI_HDMI_Open


2.5. MI_HDMI_SetAttr

  • Function

    Set HDMI attribute

  • Syntax

    MI_S32 MI_HDMI_SetAttr(MI_HDMI_DeviceId_e eHdmi, MI_HDMI_Attr_t *pstAttr);
    
  • Parameter

    Parameter Name Description Input/Output
    eHdmi HDMI interface number Input
    Parameter range: 0
    pstAttr Pointer to HDMI attribute structure Input
  • Return Value

    • Zero: Successful

    • Non-zero: Failed, see error code for details

  • Requirement

    • Header: mi_hdmi.h, mi_ hdmi_datatype.h

    • Library: libmi_hdmi.a

  • Note

    • You should open HDMI before setting HDMI attribute.

    • It is suggested that you set HDMI attribute before calling MI_HDMI_Start.

    • If HDMI attribute is to be set after calling MI_HDMI_Start, you should call MI_HDMI_Stop to disable AV mute and set the new HDMI attribute.

    • If the option of audio transfer is enabled, the transfer of video must be enabled too.

  • Example

    1.  MI_HDMI_InitPara_t stHdmiPara;
    
    2.  MI_HDMI_Attr_t  stAttr;
    
    3.  MI_HDMI_TimingType_e enVideoFmt;
    
    4.  /* Enable DISP */
    
    5.  /* Set Hdmi attritube */
    
    6.  MI_HDMI_Stop(0, MI_TRUE);
    
    7.  MI_HDMI_GetAttr(0, &stAttr);
    
    8.  /* Change attritube,such as timing */
    
    9.  stAttr.eVideoFmt = E_MI_HDMI_VIDEO_FMT_720P_60;
    
    10. MI_HDMI_SetAttr(0, &stAttr);
    
    11. MI_HDMI_Start(0, MI_FALSE);
    
  • Related API

    MI_HDMI_GetAttr


2.6. MI_HDMI_GetAttr

  • Function

    Get HDMI attribute

  • Syntax

    MI_S32 MI_HDMI_GetAttr(MI_HDMI_DeviceId_e eHdmi, MI_HDMI_Attr_t *pstAttr);
    
  • Syntax

    Parameter Name Description Input/Output
    eHdmi HDMI interface number
    Parameter range: 0
    Input
    pstAttr Pointer to HDMI attribute structure Output
  • Return Value

    • Zero: Successful

    • Non-zero: Failed, see error code for details

  • Requirement

    • Header: mi_hdmi.h, mi_ hdmi_datatype.h

    • Library: libmi_hdmi.a

  • Example

    See the example given in MI_HDMI_Init.

  • Related API

    MI_HDMI_SetAttr


2.7. MI_HDMI_Start

  • Function

    Start HDMI

  • Syntax

    MI_S32 MI_HDMI_Start(MI_HDMI_DeviceId_e eHdmi);
    
  • Parameter

    Parameter Name Description Input/Output
    eHdmi HDMI interface number
    Parameter range: 0
    Input
  • Return Value

    • Zero: Successful

    • Non-zero: Failed, see error code for details

  • Requirement

    • Header: mi_hdmi.h, mi_ hdmi_datatype.h

    • Library: libmi_hdmi.a

  • Note

    Before starting HDMI, call MI_HDMI_Open first.

  • Example

    See the example given in MI_HDMI_Init.

  • Related API

    MI_HDMI_Stop


2.8. MI_HDMI_Stop

  • Function

    Stop HDMI

  • Syntax

    MI_S32 MI_HDMI_Stop(MI_HDMI_DeviceId_e eHdmi);
    
  • Parameter

    Parameter Name Description Input/Output
    eHdmi HDMI interface number
    Parameter range: 0
    Input
  • Return Value

    • Zero: Successful

    • Non-zero: Failed, see error code for details

  • Requirement

    • Header: mi_hdmi.h, mi_ hdmi_datatype.h

    • Library: libmi_hdmi.a

  • Related API

    MI_HDMI_Start


2.9. MI_HDMI_GetSinkInfo

  • Function

    Get HDMI Sink side capability information

  • Syntax

    MI_S32 MI_HDMI_GetSinkInfo(MI_HDMI_DeviceId_e eHdmi,
    
    MI_HDMI_SinkInfo_t *pstSinkInfo);
    
  • Parameter

    Parameter Name Description Input/Output
    eHdmi HDMI interface number
    Parameter range: 0
    Input
    pstSinkCap Pointer to HDMI Sink side capability structure Output
  • Return Value

    • Zero: Successful

    • Non-zero: Failed, see error code for details

  • Requirement

    • Header: mi_hdmi.h, mi_ hdmi_datatype.h

    • Library: libmi_hdmi.a

  • Note

    • Before calling this function, open HDMI first. To ensure HDMI has been opened successfully, we suggest waiting for 500ms or so after you have called MI_HDMI_Open interface.

    • Call this function after HDMI is started and the cable plugged in.

    • This function is normally used when inserting an event handling function or after getting EDID by force.

  • Example

    1.  MI_HDMI_Init_Para_t stHdmiPara;
    
    2.  MI_HDMI_Attr_t  stAttr;
    
    3.  MI_HDMI_TimingType_e enVideoFmt;
    
    4.  MI_HDMI_SinkInfo_t stSinkInfo;
    
    5.  /* Enable DISP */
    
    6.  /* Enable HDMI */
    
    7.  /* Get HDMI Sink Info */
    
    8.  MI_HDMI_GetSinkInfo(0, &stSinkInfo);
    

2.10. MI_HDMI_SetAvMute

  • Function

    Set HDMI AV mute function

  • Syntax

    MI_S32 MI_HDMI_SetAvMute(MI_HDMI_DeviceId_e eHdmi, MI_BOOL bAvMute);
    
  • Parameter

    Parameter Name Description Input/Output
    eHdmi HDMI interface number
    Parameter range: 0
    Input
    bAvMute HDMI AV mute function
    MI_TRUE: Enable AV mute
    MI_FALSE: Disable AV mute
    Input
  • Return Value

    • Zero: Successful

    • Non-zero: Failed, see error code for details

  • Requirement

    • Header: mi_hdmi.h, mi_ hdmi_datatype.h

    • Library: libmi _hdmi.a

  • Note

    Need to call MI_HDMI_Start before calling this Mute feature.

  • Example

    1.  MI_HDMI_Start(0);
    
    2.  MI_HDMI_SetMute(0, MI_TRUE);
    

2.11. MI_HDMI_ForceGetEdid

  • Function

    Get HDMI EDID information

  • Syntax

    MI_S32 MI_HDMI_ForceGetEdid(MI_HDMI_DeviceId_e eHdmi,
    
    MI_HDMI_Edid_t *pstEdidData);
    
  • Parameter

    Parameter Name Description Input/Output
    eHdmi HDMI interface number
    Parameter range: 0
    Input
    pstEdidData HDMI EDID information Output
  • Return Value

    • Zero: Successful

    • Non-zero: Failed, see error code for details

  • Requirement

    • Header: mi_hdmi.h, mi_ hdmi_datatype.h

    • Library: libmi _hdmi.a

  • Note

    Before calling this function, open HDMI first.

  • Example

    1.  MI_HDMI_InitPara_t stHdmiPara;
    
    2.  MI_HDMI_Attr_t stAttr;
    
    3.  MI_HDMI_Edid_t stEdidData;
    
    4.  /* Enable DISP */
    
    5.  /* Enable HDMI */
    
    6.  /* Get HDMI EDID */
    
    7.  MI_HDMI_ForceGetEdid(0, &stEdidData);
    

2.12. MI_HDMI_SetDeepColor

  • Function

    Set Deep Color mode

  • Function

    MI_S32 MI_HDMI_SetDeepColor(MI_HDMI_DeviceId_e eHdmi,
    
    MI_HDMI_DeepColor_e eDeepColor);
    
  • Parameter

    Parameter Name Description Input/Output
    eHdmi HDMI interface number
    Parameter range: 0
    Input
    eDeepColor HDMI Deep Color mode Input
  • Return Value

    • Zero: Successful

    • Non-zero: Failed, see error code for details

  • Requirement

    • Header: mi_hdmi.h, mi_ hdmi_datatype.h

    • Library: libmi_hdmi.a

  • Note

    • This function is a high-level interface, normally not in use

    • Before calling this function, open HDMI first

    • This interface can be used to set the Deep Color mode

    • This API is currently not supported.

  • Example

    1.  MI_HDMI_InitPara_t stHdmiPara;
    
    2.  MI_HDMI_Attr_t  stAttr;
    
    3.  /* Enable DISP*/
    
    4.  /* Enable HDMI */
    
    5.  /* Set Deep color mode */
    
    6.  MI_HDMI_SetDeepColor (0, E_MI_HDMI_DEEP_COLOR_24BIT);
    

2.13. MI_HDMI_GetDeepColor

  • Function

    Get Deep Color mode

  • Syntax

    MI_S32 MI_HDMI_GetDeepColor(MI_HDMI_DeviceId_e eHdmi,
    
    MI_HDMI_DeepColor_e *peDeepColor);
    
  • Parameter

    Parameter Name Description Input/Output
    eHdmi HDMI interface number
    Parameter range: 0
    Input
    peDeepColor Pointer to HDMI Deep Color mode Input
  • Return Value

    • Zero: Successful

    • Non-zero: Failed, see error code for details

  • Requirement

    • Header: mi_hdmi.h, mi_ hdmi_datatype.h

    • Library: libmi_hdmi.a

  • Note

    • This function is a high-level interface, normally not in use.

    • Before calling this function, open HDMI first.

    • This API is currently not supported.

  • Related API

    MI_HDMI_SetDeepColor


2.14. MI_HDMI_SetInfoFrame

  • Function

    Set HDMI InfoFrame

  • Syntax

    MI_S32 MI_HDMI_SetInfoFrame(MI_HDMI_DeviceId_e eHdmi,
    
    MI_HDMI_InfoFrame_t *pstInfoFrame);
    
  • Parameter

    Parameter Name Description Input/Output
    eHdmi HDMI interface number
    Parameter range: 0
    Input
    pstInfoFrame Pointer to image InfoFrame structure Input
  • Return Value

    • Zero: Successful

    • Non-zero: Failed, see error code for details

  • Requirement

    • Header: mi_hdmi.h, mi_ hdmi_datatype.h

    • Library: libmi_hdmi.a

  • Note

    • This interface is normally used in user state callback function for setting InfoFrame attribute. For other cases, this interface is basically not required.

    • Before calling this function, open HDMI first

    • This interface supports setting of AVI, SPD and AUDIO InfoFrame only. Setting other than these types of InfoFrame would be invalid.

    • Use before setting is recommended

  • Example

    1.  MI_HDMI_DeviceId_e eHdmi = E_MI_HDMI_ID_0;
    
    2.  MI_HDMI_InfoFrame_t stAviInfoFrame = {E_MI_HDMI_INFOFRAME_TYPE_AVI};
    
    3.  MI_HDMI_InfoFrame_t stAudInfoFrame = {E_MI_HDMI_INFOFRAME_TYPE_AUDIO};
    
    4.  MI_HDMI_InfoFrame_t stSpdInfoFrame = {E_MI_HDMI_INFOFRAME_TYPE_SPD};
    
    5.  /* AviInfoFrame */
    
    6.  stAviInfoFrame.unInforUnit.stAviInfoFrame.bEnableAfdOverWrite = 0;
    
    7.  ...
    
    8.  /* AudioInfoFrame */
    
    9.  stAudInfoFrame.unInforUnit.stAudInfoFrame.u32ChannelCount = 2;
    
    10. ...
    
    11. /* SpdInfoFrame */
    
    12. stSpdInfoFrame.unInforUnit.stSpdInfoFrame.au8VendorName[0] = 0;
    
    13. ...
    
    14. MI_HDMI_SetInfoFrame(eHdmi, &stAviInfoFrame);
    
  • Related API

    MI_HDMI_GetInfoFrame


2.15. MI_HDMI_GetInfoFrame

  • Function

    Get HDMI InfoFrame

  • Syntax

    MI_RESULT MI_HDMI_GetInfoFrame(MI_HDMI_DeviceId_e eHdmi,
    
    MI_HDMI_InfoFrameType_e eInfoFrameType,
    
    MI_HDMI_InfoFrame_t *pstInfoFrame);
    
  • Parameter

    Parameter Name Description Input/Output
    eHdmi HDMI interface number Input
    Parameter range: 0
    eInfoFrameType InfoFrame type Input
    pstInfoFrame Pointer to image InfoFrame structure Input
  • Return Value

    • Zero: Successful

    • Non-zero: Failed, see error code for details

  • Requirement

    • Header: mi_hdmi.h, mi_ hdmi_datatype.h

    • Library: libmi_hdmi.a

  • Note

    • This interface is normally used in user state callback function for setting InfoFrame attribute. For other cases, this interface is basically not required.

    • Before calling this function, open HDMI first

    • Use before setting is recommended


2.16. MI_HDMI_SetAnalogDrvCurrent

  • Function

    Set HDMI Channel Driving Current

  • Syntax

    MI_RESULT MI_HDMI_SetAnalogDrvCurrent(MI_HDMI_DeviceId_e eHdmi,
    
    MI_HDMI_AnalogDrvCurrent_t *pstAnalogDrvCurrent);
    
  • Parameter

    Parameter Name Description Input/Output
    eHdmi HDMI interface number
    Parameter range: 0
    Input
    pstAnalogDrvCurrent Structure of HDMI Channel Current Input
  • Return Value

    • Zero: Successful

    • Non-zero: Failed, see error code for details

  • Requirement

    • Header: mi_hdmi.h, mi_ hdmi_datatype.h

    • Library: libmi_hdmi.a

  • Note

    • This interface is a high-level interface which allows users to adjust channel current.

    • Before calling this function, open HDMI first.

    • Use before setting is recommended.

  • Example

    1.  MI_HDMI_AnalogDrvCurrent_t CurInfo = {};
    
    2.  memset(&CurInfo, 0xFF, sizeof(CurInfo));
    
    3.  MI_HDMI_SetAnalogDrvCurrent(g_HdmiAttr.eHdmi, &CurInfo);
    

2.17. MI_HDMI_InitDev

  • Function

    Initialize HDMI Device.

  • Syntax

    MI_S32 MI_HDMI_InitDev(MI_HDMI_InitParam_t *pstInitParam);
    
  • Parameter

    Parameter Name Description Input/Output
    pstInitParam HDMI Init Param Input
  • Return Value

    • Zero: Successful

    • Non-zero: Failed, see error code for details

  • Requirement

    • Header: mi_hdmi.h, mi_ hdmi_datatype.h

    • Library: libmi_hdmi.a

  • Note

    For Version 2.06 and above, we recommend using this interface to replace the original MI_HDMI_Init interface.


2.18. MI_HDMI_DeInitDev

  • Function

    De-initialize HDMI Device.

  • Syntax

    MI_S32 MI_HDMI_DeInitDev(void);
    
  • Return Value

    • Zero: Successful

    • Non-zero: Failed, see error code for details

  • Requirement

    • Header: mi_hdmi.h, mi_ hdmi_datatype.h

    • Library: libmi_hdmi.a

  • Note

    For Version 2.06 and above, we recommend using this interface to replace the original MI_HDMI_DeInit interface.


3. HDMI DATA TYPE

The HDMI related data types are listed in the table below:

Data type Description
MI_HDMI_DeviceId_e Define HDMI interface number
MI_HDMI_InitParam_t Define HDMI initialization attribute structure
MI_HDMI_EventCallBack Define HDMI callback function
MI_HDMI_EventType_e Define HDMI event notification enumeration
MI_HDMI_Attr_t Define HDMI attribute structure
MI_HDMI_TimingType_e Define HDMI video format enumeration
MI_HDMI_OutputMode_e Define HDMI color space type enumeration
MI_HDMI_ColorType_e Define HDMI color type enumeration
MI_HDMI_DeepColor_e Define HDMI deep color mode enumeration
MI_HDMI_SampleRate_e Define HDMI audio output sampling rate enumeration
MI_HDMI_BitDepth_e Define HDMI audio output sampling bit width enumeration
MI_HDMI_SinkInfo_t Define HDMI Sink side capability level structure
MI_HDMI_Edid_t Define HDMI EDID information structure
MI_HDMI_InfoFrameType_e Define HDMI InfoFrame type enumeration
MI_HDMI_AviInfoFrameVer_t Define AVI InfoFrame structure
MI_HDMI_AudInfoFrameVer_t Define AUDIO InfoFrame structure
MI_HDMI_SpdInfoFrame_t Define SPD InfoFrame structure
MI_HDMI_InfoFrame_Unit_u Define HDMI InfoFrame complex
MI_HDMI_AnalogDrvCurrent_t Define HDMI Channel Current structure

NOTE: This section includes most of the key data types. For data types not listed here, please refer to mi_ hdmi_datatype.h.


3.1. MI_HDMI_DeviceId_e

  • Description

    Define HDMI interface number

  • Definition

    typedef enum
    
    {
    
        E_MI_HDMI_ID_0 = 0,
    
        E_MI_HDMI_ID_BUTT
    
    } MI_HDMI_DeviceId_e;
    
  • Member

    Member Description
    E_MI_HDMI_ID_0 HDMI interface 0

3.2. MI_HDMI_InitParam_t

  • Description

    Define HDMI initialization attribute structure

  • Definition

    typedef struct MI_HDMI_InitParam_s
    
    {
    
        MI_HDMI_EventCallBack pfnHdmiEventCallback;
    
        void *pCallBackArgs;
    
    }MI_HDMI_InitParam_t;
    
  • Member

    Member Description
    pfnHdmiEventCallback Event callback function
    pCallBackArgs Callback function parameter private data
  • Note

    After HDMI initialization, the corresponding hot-plugging event will be returned as long as the callback of Init is not null. If the reporting of such event is not required, you can set the function pointer in the initialization parameter structure to NULL.

  • Related Data Type and Interface

    MI_HDMI_Init


3.3. MI_HDMI_EventCallBack

  • Description

    Define HDMI callback function

  • Definition

    typedef MI_RESULT (*MI_HDMI_EventCallBack)
    
    (MI_HDMI_DeviceId_e eHdmi, MI_HDMI_EventType_e event, void entParam,
    void *pUsrParam);
    
  • Member

    Member Description
    MI_HDMI_EvenType_e HDMI event type
    pEventParam pUsrParam Event private data

3.4. MI_HDMI_EventType_e

  • Description

    Define HDMI event notification enumeration

  • Definition

    typedef enum
    
    {
    
        E_MI_HDMI_EVENT_HOTPLUG = 0,
    
        E_MI_HDMI_EVENT_NO_PLUG,
    
        E_MI_HDMI_EVENT_MAX
    
    } MI_HDMI_EventType_e;
    
  • Member

    Member Description
    E_MI_HDMI_EVENT_HOTPLUG HDMI hot-plugging event
    E_MI_HDMI_EVENT_NO_PLUG HDMI Cable no connection event
  • Related Data Type and Interface

    MI_HDMI_Init


3.5. MI_HDMI_Attr_t

  • Description

    Define HDMI attribute structure

  • Definition

    typedef struct MI_HDMI_Attr_s
    {
        MI_HDMI_VideoAttr_t stVideoAttr;
        MI_HDMI_AudioAttr_t stAudioAttr;
        MI_HDMI_EnInfoFrame_t stEnInfoFrame;
    } MI_HDMI_Attr_t;
    
    typedef struct MI_HDMI_VideoAttr_s
    {
        MI_BOOL bEnableVideo;
        MI_HDMI_TimingType_e eTimingType;
        MI_HDMI_OutputMode_e eOutputMode;
        MI_HDMI_ColorType_e eColorType;
        MI_HDMI_DeepColor_e eDeepColorMode;
    } MI_HDMI_VideoAttr_t;
    
    typedef struct MI_HDMI_AudioAttr_s
    {
        MI_BOOL bEnableAudio;
        MI_BOOL bIsMultiChannel;
        MI_HDMI_SampleRate_e    eSampleRate;
        MI_HDMI_BitDepth_e  eBitDepth;
    } MI_HDMI_VideoAttr_t;
    
    typedef struct MI_HDMI_EnInfoFrame_s
    {
        MI_BOOL bEnableAviInfoFrame;
        MI_BOOL bEnableAudInfoFrame;
        MI_BOOL bEnableSpdInfoFrame;
        MI_BOOL bEnableMpegInfoFrame;
    } MI_HDMI_EnInfoFrame_t;
    
  • Member

    Member Description
    bEnableVideo Video enable
    eTimingType Video format. This parameter must be consistent with the video output configuration format.
    eOutputMode HDMI video output mode
    eDeepColorMode DeepColor output mode MI_HDMI_DEEP_COLOR_24BIT is by default not supported. Supports only MI_HDMI_DEEP_COLOR_30BIT, MI_HDMI_DEEP_COLOR_36BIT, and MI_HDMI_DEEP_COLOR_48BIT.
    bEnableAudio Audio enable
    bIsMultiChannel Multi-channel selection 0: 2-channel 1: 8-channel
    enSampleRate Audio sampling rate. This parameter must be consistent with the AO configuration.
    enBitDepth Audio bit width, default is 16. This parameter must be consistent with the AO configuration.
    bEnableAviInfoFrame AVI InfoFrame enable Enable is suggested.
    bEnableAudInfoFrame Audio InfoFrame enable Enable is suggested
    bEnableSpdInfoFrame SPD InfoFrame enable
  • Note

    You may set the HDMI attribute based on the suggested values.

  • Related Data Type and Interface

    MI_HDMI_SetAttr


3.6. MI_HDMI_TimingType_e

  • Description

    Define HDMI video format enumeration

  • Definition

    typedef enum
    
    {
    
        E_MI_HDMI_TIMING_480_60I = 0,
    
        E_MI_HDMI_TIMING_480_60P = 1,
    
        E_MI_HDMI_TIMING_576_50I = 2,
    
        E_MI_HDMI_TIMING_576_50P = 3,
    
        E_MI_HDMI_TIMING_720_50P = 4,
    
        E_MI_HDMI_TIMING_720_60P = 5,
    
        E_MI_HDMI_TIMING_1080_50I = 6,
    
        E_MI_HDMI_TIMING_1080_50P = 7,
    
        E_MI_HDMI_TIMING_1080_60I = 8,
    
        E_MI_HDMI_TIMING_1080_60P = 9,
    
        E_MI_HDMI_TIMING_1080_30P = 10,
    
        E_MI_HDMI_TIMING_1080_25P = 11,
    
        E_MI_HDMI_TIMING_1080_24P = 12,
    
        E_MI_HDMI_TIMING_4K2K_30P = 13,
    
        E_MI_HDMI_TIMING_1440_50P = 14,
    
        E_MI_HDMI_TIMING_1440_60P = 15,
    
        E_MI_HDMI_TIMING_1440_24P = 16,
    
        E_MI_HDMI_TIMING_1440_30P = 17,
    
        E_MI_HDMI_TIMING_1470_50P = 18,
    
        E_MI_HDMI_TIMING_1470_60P = 19,
    
        E_MI_HDMI_TIMING_1470_24P = 20,
    
        E_MI_HDMI_TIMING_1470_30P = 21,
    
        E_MI_HDMI_TIMING_1920x2205_24P = 22,
    
        E_MI_HDMI_TIMING_1920x2205_30P = 23,
    
        E_MI_HDMI_TIMING_4K2K_25P = 24,
    
        E_MI_HDMI_TIMING_4K1K_60P = 25,
    
        E_MI_HDMI_TIMING_4K2K_60P = 26,
    
        E_MI_HDMI_TIMING_4K2K_24P = 27,
    
        E_MI_HDMI_TIMING_4K2K_50P = 28,
    
        E_MI_HDMI_TIMING_2205_24P = 29,
    
        E_MI_HDMI_TIMING_4K1K_120P = 30,
    
        E_MI_HDMI_TIMING_4096x2160_24P = 31,
    
        E_MI_HDMI_TIMING_4096x2160_25P = 32,
    
        E_MI_HDMI_TIMING_4096x2160_30P = 33,
    
        E_MI_HDMI_TIMING_4096x2160_50P = 34,
    
        E_MI_HDMI_TIMING_4096x2160_60P = 35,
    
        E_MI_HDMI_TIMING_1024x768_60P = 36,
    
        E_MI_HDMI_TIMING_1280x1024_60P = 37,
    
        E_MI_HDMI_TIMING_1440x900_60P = 38,
    
        E_MI_HDMI_TIMING_1600x1200_60P = 39,
    
        E_MI_HDMI_TIMING_1280x800_60P = 40,
    
        E_MI_HDMI_TIMING_1366x768_60P = 41,
    
        E_MI_HDMI_TIMING_1680x1050_60P = 42,
    
        E_MI_HDMI_TIMING_MAX,
    
    } MI_HDMI_TimingType_e;
    
  • Note

    • It is essential that you set the corresponding HDMI format based on the video output format.

    • The timing set by AP must match with the DISP module timing. That is, the HDMI timing must be consistent with DISP module timing.

  • Related Data Type and Interface

    MI_HDMI_SetAttr


3.7. MI_HDMI_OutputMode_e

  • Description

    Define HDMI output mode type enumeration

  • Definition

    typedef enum
    
    {
    
        E_MI_HDMI_OUTPUT_MODE_HDMI = 0,
    
        E_MI_HDMI_OUTPUT_MODE_HDMI_HDCP,
    
        E_MI_HDMI_OUTPUT_MODE_DVI,
    
        E_MI_HDMI_OUTPUT_MODE_DVI_HDCP,
    
        E_MI_HDMI_OUTPUT_MODE_MAX,
    
    } MI_HDMI_OutputMode_e;
    
  • Member

    Member Description
    E_MI_HDMI_OUTPUT_MODE_HDMI HDMI Output Mode
    E_MI_HDMI_OUTPUT_MODE_HDMI_HDCP HDMI with HDCP Output Mode
    E_MI_HDMI_OUTPUT_MODE_DVI DVI Output Mode
    E_MI_HDMI_OUTPUT_MODE_DVI_HDCP DVI with HDCP Output Mode
  • Related Data Type and Interface

    MI_HDMI_SetAttr


3.8. MI_HDMI_ColorType_e

  • Description

    Define HDMI color space type enumeration

  • Definition

    typedef enum
    
    {
    
        E_MI_HDMI_COLOR_TYPE_RGB444 = 0,
    
        E_MI_HDMI_COLOR_TYPE_YCBCR422,
    
        E_MI_HDMI_COLOR_TYPE_YCBCR444,
    
        E_MI_HDMI_COLOR_TYPE_YCBCR420,
    
        E_MI_HDMI_COLOR_TYPE_MAX
    
    } MI_HDMI_ColorType_e;
    
  • Member

    Member Description
    E_MI_HDMI_COLOR_TYPE_RGB444 RGB444 Output Mode
    E_MI_HDMI_COLOR_TYPE_YCBCR422 YCBCR422 Output Mode
    E_MI_HDMI_COLOR_TYPE_YCBCR444 YCBCR444 Output Mode
    E_MI_HDMI_COLOR_TYPE_YCBCR420 YCBCR420 Output Mode
  • Related Data Type and Interface

    MI_HDMI_SetAttr


3.9. MI_HDMI_DeepColor_e

  • Description

    Define HDMI deep color mode enumeration

  • Definition

    typedef enum
    
    {
    
        E_MI_HDMI_DEEP_COLOR_24BIT = 0x00,
    
        E_MI_HDMI_DEEP_COLOR_30BIT,
    
        E_MI_HDMI_DEEP_COLOR_36BIT,
    
        E_MI_HDMI_DEEP_COLOR_48BIT,
    
        E_MI_HDMI_DEEP_COLOR_MAX,
    
    } MI_HDMI_DeepColor_e;
    
  • Member

    Member Description
    E_MI_HDMI_DEEP_COLOR_24BIT HDMI Deep Color 24-bit Mode
    E_MI_HDMI_DEEP_COLOR_30BIT HDMI Deep Color 30-bit Mode
    E_MI_HDMI_DEEP_COLOR_36BIT HDMI Deep Color 36-bit Mode
    E_MI_HDMI_DEEP_COLOR_48BIT HDMI Deep Color 48-bit Mode
  • Related Data Type and Interface

    MI_HDMI_SetAttr


3.10. MI_HDMI_SampleRate_e

  • Description

    Define HDMI audio output sampling rate enumeration

  • Definition

    typedef enum
    
    {
    
        E_MI_HDMI_AUDIO_SAMPLERATE_UNKNOWN = 0,
    
        E_MI_HDMI_AUDIO_SAMPLERATE_32K = 1,
    
        E_MI_HDMI_AUDIO_SAMPLERATE_44K = 2,
    
        E_MI_HDMI_AUDIO_SAMPLERATE_48K = 3,
    
        E_MI_HDMI_AUDIO_SAMPLERATE_88K = 4,
    
        E_MI_HDMI_AUDIO_SAMPLERATE_96K = 5,
    
        E_MI_HDMI_AUDIO_SAMPLERATE_176K = 6,
    
        E_MI_HDMI_AUDIO_SAMPLERATE_192K = 7,
    
        E_MI_HDMI_AUDIO_SAMPLERATE_MAX,
    
    } MI_HDMI_SampleRate_e;
    
  • Related Data Type and Interface

    MI_HDMI_SetAttr


3.11. MI_HDMI_BitDepth_e

  • Description

    Define HDMI audio output sampling bit width enumeration

  • Definition

    typedef enum
    
    {
    
        E_MI_HDMI_BIT_DEPTH_UNKNOWN =0,
    
        E_MI_HDMI_BIT_DEPTH_8 = 8,
    
        E_MI_HDMI_BIT_DEPTH_16 = 16,
    
        E_MI_HDMI_BIT_DEPTH_18 = 18,
    
        E_MI_HDMI_BIT_DEPTH_20 = 20,
    
        E_MI_HDMI_BIT_DEPTH_24 = 24,
    
        E_MI_HDMI_BIT_DEPTH_32 = 32,
    
        E_MI_HDMI_BIT_DEPTH_BUTT
    
    }MI_HDMI_BitDepth_e;
    
  • Related Data Type and Interface

    MI_HDMI_SetAttr


3.12. MI_HDMI_SinkInfo_t

  • Description

    Define HDMI Sink side capability structure

  • Definition

    typedef struct MI_HDMI_Sink_Info_s
    
    {
    
        MI_BOOL bConnected;
    
        MI_BOOL bSupportHdmi;
    
        MI_HDMI_TimingType_e eNativeTimingType;
    
        MI_BOOL abVideoFmtSupported[E_MI_HDMI_TIMING_MAX];
    
        MI_BOOL bSupportYCbCr444;
    
        MI_BOOL bSupportYCbCr422;
    
        MI_BOOL bSupportYCbCr;
    
        MI_BOOL bSupportxvYcc601;
    
        MI_BOOL bSupportxvYcc709;
    
        MI_U8 u8MdBit;
    
        MI_BOOL abAudioFmtSupported[MI_HDMI_MAX_ACAP_CNT];
    
        MI_U32
        au32AudioSampleRateSupported[MI_HDMI_MAX_AUDIO_SAMPLE_RATE_CNT];
    
        MI_U32 u32MaxPcmChannels;
    
        MI_U8 u8Speaker;
    
        MI_U8 au8IdManufactureName[4];
    
        MI_U32 u32IdProductCode;
    
        MI_U32 u32IdSerialNumber;
    
        MI_U32 u32WeekOfManufacture;
    
        MI_U32 u32YearOfManufacture;
    
        MI_U8 u8Version;
    
        MI_U8 u8Revision;
    
        MI_U8 u8EdidExternBlockNum;
    
        MI_U8 au8IeeRegId[3];//IEEE registeration identifier
    
        MI_U8 u8PhyAddr_A;
    
        MI_U8 u8PhyAddr_B;
    
        MI_U8 u8PhyAddr_C;
    
        MI_U8 u8PhyAddr_D;
    
        MI_BOOL bSupportDviDual;
    
        MI_BOOL bSupportDeepColorYcbcr444;
    
        MI_BOOL bSupportDeepColor30Bit;
    
        MI_BOOL bSupportDeepColor36Bit;
    
        MI_BOOL bSupportDeepColor48Bit;
    
        MI_BOOL bSupportAi;
    
        MI_U32 u8MaxTmdsClock;
    
        MI_BOOL bILatencyFieldsPresent;
    
        MI_BOOL bLatencyFieldsPresent;
    
        MI_BOOL bHdmiVideoPresent;
    
        MI_U8 u8VideoLatency;
    
        MI_U8 u8AudioLatency;
    
        MI_U8 u8InterlacedVideoLatency;
    
        MI_U8 u8InterlacedAudioLatency;
    
    } MI_HDMI_SinkInfo_t;
    
  • Member

    Member Description
    bConnected Device connected or not
    bSupportHdmi HDMI supported or not. If HDMI is not supported, the device is a DVI device.
    eNativeVideoFormat Display device physical resolution
    abVideoFmtSupported Video capability MI_TRUE: The display format is supported MI_FALSE: The display format is not supported
    bSupportYCbCr YCBCR display supported or not MI_TRUE: YCBCR display is supported MI_FALSE: Only RGB display is supported
    bSupportxvYCC601 xvYCC601 color format supported or not
    bSupportxvYCC709 xvYCC709 color format supported or not
    u8MDBit Transmit profile supported by xvYCC601
    1: P0; 2: P1; 4: P2
    bAudioFmtSupported Audio capability. Please refer to EIA-CEA-861-D Table 37 MI_TRUE: Display format supported MI_FALSE: Display format not supported
    u32AudioSampleRateSupported Audio sampling rate capability. 0 means invalid setting, and others supported audio sampling rate.
    u32MaxPcmChannels Maximum audio PCM channel number
    u8Speaker Speaker position, please refer to SpeakerDATABlock definition given in EIA-CEA-861-D.
    u8IDManufactureName Device manufacturer ID
    u32IDProductCode Device ID
    u32IDSerialNumber Device serial number
    u32WeekOfManufacture Device week of manufacture
    u32YearOfManufacture Device year of manufacture
    u8Version Device version
    u8Revision Device revision
    au8EDIDExternBlockNum EDID external block number
    au8IEERegId 24-bit IEEE Registration Identifier (0x000C03)
    u8PhyAddr_A CEC physical address A
    u8PhyAddr_B CEC physical address B
    u8PhyAddr_C CEC physical address C
    u8PhyAddr_D CEC physical address D
    bSupportDVIDual DVI dual-link operation supported or not
    bSupportDeepColorYCBCR444 YCBCR 4:4:4 Deep Color Mode supported or not
    bSupportDeepColor36Bit Deep Color 36-bit Mode supported or not
    bSupportDeepColor48Bit Deep Color 48-bit Mode supported or not
    bSupportAI AI Mode supported or not
    u8MaxTMDSClock Maximum TMDS clock
    bLatencyFieldsPresent Latency field
    bHDMIVideoPresent Video Latency and Audio Latency fields present or not
    u8VideoLatency Video latency
    u8AudioLatency Audio latency
    u8InterlacedVideoLatency Video latency under interlaced video mode
    u8InterlacedAudioLatency Audio latency under interlaced audio mode
  • Related Data Type and Interface

    MI_HDMI_GetSinkInfo


3.13. MI_HDMI_Edid_t

  • Description

    Define HDMI EDID information structure

  • Definition

    typedef struct MI_HDMI_Edid_s
    
    {
    
        MI_BOOL bEdidValid;
    
        MI_U32 u32Edidlength;
    
        MI_U8 au8Edid[512];
    
    } MI_HDMI_Edid_t;
    
  • Member

    Member Description
    bEdidValid EDID information valid or not
    u32Edidlength EDID information data length, normally 256 bytes
    au8Edid au8Edid
  • Related Data Type and Interface

    MI_HDMI_ForceGetEdid


3.14. MI_HDMI_InfoFrameType_e

  • Description

    Define HDMI InfoFrame type enumeration

  • Definition

    typedef enum
    
    {
    
        E_MI_INFOFRAME_TYPE_AVI = 0,
    
        E_MI_INFOFRAME_TYPE_SPD,
    
        E_MI_INFOFRAME_TYPE_AUDIO,
    
        E_MI_INFOFRAME_TYPE_MAX
    
    } MI_HDMI_InfoFrameType_e;
    
  • Member

    Member Description
    E_MI_INFOFRAME_TYPE_AVI AVI InfoFrame type
    E_MI_INFOFRAME_TYPE_SPD SPD InfoFrame type
    E_MI_INFOFRAME_TYPE_AUDIO AUDIO InfoFrame type
  • Related Data Type and Interface

    MI_HDMI_DeInit

    MI_HDMI_SetInfoFrame


3.15. MI_HDMI_AviInfoFrameVer_t

  • Description

    Define AVI InfoFrame structure

  • Definition

    typedef struct MI_HDMIAviInforFrameVer_s
    
    {
    
        MI_BOOL enableAFDoverWrite;
    
        MI_U8 A0Value;
    
        MI_HDMI_ColorType_e eColorType;
    
        MI_HDMI_Colorimetry_e eColorimetry;
    
        MI_HDMI_ExtColorimetry_e eExtColorimetry;
    
        MI_HDMI_YccQuantRange_e eYccQuantRange;
    
        MI_HDMI_TimingType_e eTimingType; //trans to MS_VIDEO_TIMING in impl
    
        MI_HDMI_VideoAfdRatio_e eAfdRatio;
    
        MI_HDMI_ScanInfo_e eScanInfo;
    
        MI_HDMI_AspectRatio_e eAspectRatio;
    
    } MI_HDMI_AviInfoFrameVer_t;
    
  • Member

    Member Description
    eColorType Color space type
    eScanInfo Scan information enumeration variable
    eColorimetry Color space matrix
    eAspectRatio Aspect ratio enumeration variable
    eExtColorimetry External color space matrix
    eTimingType Video format type
    eYccQuantRange YCC color space range
  • Note

    For the enumeration members of each member variable, see mi_ hdmi_datatype.h.

  • Related Data Type and Interface

    MI_HDMI_SetInfoFrame

    MI_HDMI_GetInfoFrame


3.16. MI_HDMI_AudInfoFrameVer_t

  • Description

    Define AUDIO InfoFrame structure

  • Definition

    typedef struct MI_HDMI_AudInfoFrameVer_s
    
    {
    
        MI_U32 u32ChannelCount;
    
        MI_HDMI_AudioCodeType_e eAudioCodeType;
    
        MI_HDMI_SampleRate_e eSampleRate;
    
    } MI_HDMI_AudInfoFrameVer_t;
    
  • Member

    Member Description
    u32ChannelCount Channel number
    eAudioCodeType Audio code type
    eSampleRate Sampling rate, suggested value is 0.
    0: Decided by stream header
    1: 32kHz
    2: 44.1 kHz
    3: 48 kHz
    4: 88.2 kHz
    5: 96 kHz
    6: 176.4 kHz
    7: 192 kHz
  • Related Data Type and Interface

    MI_HDMI_SetInfoFrame

    MI_HDMI_GetInfoFrame


3.17. MI_HDMI_SpdInfoFrame_t

  • Description

    Define SPD InfoFrame structure

  • Definition

    typedef struct MI_HDMI_SpdInfoFrame_s
    
    {
    
        MI_U8 au8VendorName[8];
    
        MI_U8 au8ProductDescription[16];
    
    } MI_HDMI_SpdInfoFrame_t;
    
  • Member

    Member Description
    au8VendorName[8] Vendor name
    au8ProductDescription[16] Product Description
  • Related Data Type and Interface

    MI_HDMI_SetInfoFrame

    MI_HDMI_GetInfoFrame


3.18. MI_HDMI_InfoFrame_Unit_u

  • Description

    Define HDMI InfoFrame complex

  • Definition

    typedef union
    
    {
    
        MI_HDMI_Avi InfoFrameVer_t  stAviInfoFrame;
    
        MI_HDMI_AudInfoFrameVer_t   stAudInfoFrame;
    
        MI_HDMI_SpdInfoFrame_t  stSpdInfoFrame;
    
    } MI_HDMI_InfoFrameUnit_u;
    
  • Member

    Member Description
    stAviInfoFrame AVI InfoFrame
    stAudInfoFrame AUD InfoFrame
    stSpdInfoFrame SPD InfoFrame
  • Related Data Type and Interface

    MI_HDMI_SetInfoFrame

    MI_HDMI_GetInfoFrame


3.19. MI_HDMI_AnalogDrvCurrent_t

  • Description

    Define HDMI Channel Driving Current Structure

  • Definition

    typedef struct MI_HDMI_AnalogDrvCurrent_s
    
    {
    
        MI_U8 u8DrvCurTap1Ch0;
    
        MI_U8 u8DrvCurTap1Ch1;
    
        MI_U8 u8DrvCurTap1Ch2;
    
        MI_U8 u8DrvCurTap1Ch3;
    
        MI_U8 u8DrvCurTap2Ch0;
    
        MI_U8 u8DrvCurTap2Ch1;
    
        MI_U8 u8DrvCurTap2Ch2;
    
        MI_U8 u8DrvCurTap2Ch3;
    
    } MI_HDMI_AnalogDrvCurrent_t;
    
  • Member

    Member Description
    u8DrvCurTap1Ch0 Tap1 Channel 0 Driving Current Setting
    u8DrvCurTap1Ch1 Tap1 Channel 1 Driving Current Setting
    u8DrvCurTap1Ch2 Tap1 Channel 2 Driving Current Setting
    u8DrvCurTap1Ch3 Tap1 Channel 3 Driving Current Setting
    u8DrvCurTap2Ch0 Tap2 Channel 0 Driving Current Setting
    u8DrvCurTap2Ch1 Tap2 Channel 1 Driving Current Setting
    u8DrvCurTap2Ch2 Tap2 Channel 2 Driving Current Setting
    u8DrvCurTap2Ch3 Tap2 Channel 3 Driving Current Setting
  • Related Data Type and Interface

    MI_HDMI_SetAnalogDrvCurrent


4. ERROR CODE

The table below lists the HDMI API error codes.

Error Code Macro Definition Description
0xA00B2011 MI_ERR_HDMI_INVALID_PARAM Invalid parameter
0xA00B2001 MI_ERR_HDMI_INVALID_DEVID Invalid device ID
0xA00B2018 MI_ERR_HDMI_DRV_FAILED HDMI drive failed
0xA00B2015 MI_ERR_HDMI_NOT_INIT HDMI not initialized
0xA00B2008 MI_ERR_HDMI_NOT_SUPPORT Operation not supported
0xA00B21E0 MI_ERR_HDMI_UNSUPPORT_TIMING Unsupported output timing
0xA00B21E1 MI_ERR_HDMI_UNSUPPORT_COLORTYPE Unsupported color type
0xA00B21E2 MI_ERR_HDMI_UNSUPPORT_ACODETYPE Unsupported audio code type
0xA00B21E3 MI_ERR_HDMI_UNSUPPORT_AFREQ Unsupported audio frequency
0xA00B21E4 MI_ERR_HDMI_EDID_HEADER_ERR EDID header decoding failed
0xA00B21E5 MI_ERR_HDMI_EDID_DATA_ERR EDID data error