Use the following code example for Dynamic Range and Mastering (HDR) InfoFrames:
typedef struct XHdmiC_DRM_InfoFrame {
XHdmiC_DRM_EOTF EOTF;
XHdmiC_DRM_Static_Metadata_Descp_Id Static_Metadata_Descriptor_ID;
struct {
u16 x,y;
} disp_primaries[3];
struct {
u16 x,y;
} white_point;
u16 Max_Disp_Mastering_Luminance;
u16 Min_Disp_Mastering_Luminance;
u16 Max_Content_Light_Level;
u16 Max_Frame_Average_Light_Level;
} XHdmiC_DRMInfoFrame;
- To generate Dynamic Mastering info
frame:
void XV_HdmiC_DRMIF_GeneratePacket(XHdmiC_DRMInfoFrame *DRMInfoFrame, XHdmiC_Aux *aux);
- To insert Dynamic Mastering info frame into the TX
stream:
u32 XV_HdmiTxSs1_SendGenericAuxInfoframe(XV_HdmiTxSs1 *InstancePtr, void *AuxPtr);
Note: Dynamic Mastering info frame should be interested into TX stream at least once in every two frames. The API should be called accordingly in user application.