video_common
Vitis Drivers API Documentation
Overview

Data Structures

struct  XVidC_VideoTiming
 Video timing structure. More...
 
struct  XVidC_3DSamplingInfo
 3D Sampling info structure. More...
 
struct  XVidC_3DInfo
 3D info structure. More...
 
struct  XVidC_VideoStream
 Video stream structure. More...
 
struct  XVidC_VideoWindow
 Video window structure. More...
 
struct  XVidC_VideoTimingMode
 Video timing mode from the video timing table. More...
 

Macros

#define XVidC_IsStream3D(VidStreamPtr)   ((VidStreamPtr)->Is3D)
 This macro check if video stream is 3D or 2D. More...
 

Typedefs

typedef void(* XVidC_DelayHandler )(void *TimerPtr, u32 Delay)
 Callback type which represents a custom timer wait handler. More...
 

Enumerations

enum  XVidC_VideoMode
 This typedef enumerates the list of available standard display monitor timings as specified in the xvidc_timings_table.c file. More...
 
enum  XVidC_VideoFormat
 Progressive/interlaced video format. More...
 
enum  XVidC_FrameRate
 Frame rate. More...
 
enum  XVidC_ColorDepth
 Color depth - bits per color component. More...
 
enum  XVidC_PixelsPerClock
 Pixels per clock. More...
 
enum  XVidC_ColorFormat
 Color space format. More...
 
enum  XVidC_AspectRatio
 Image Aspect Ratio. More...
 
enum  XVidC_ColorStd
 Color space conversion standard. More...
 
enum  XVidC_ColorRange
 Color conversion output range. More...
 
enum  XVidC_3DFormat {
  XVIDC_3D_FRAME_PACKING = 0, XVIDC_3D_FIELD_ALTERNATIVE, XVIDC_3D_LINE_ALTERNATIVE, XVIDC_3D_SIDE_BY_SIDE_FULL,
  XVIDC_3D_TOP_AND_BOTTOM_HALF, XVIDC_3D_SIDE_BY_SIDE_HALF
}
 3D formats. More...
 
enum  XVidC_3DSamplingMethod { XVIDC_3D_SAMPLING_HORIZONTAL = 0, XVIDC_3D_SAMPLING_QUINCUNX }
 3D Sub-sampling methods. More...
 
enum  XVidC_3DSamplingPosition { XVIDC_3D_SAMPPOS_OLOR = 0, XVIDC_3D_SAMPPOS_OLER, XVIDC_3D_SAMPPOS_ELOR, XVIDC_3D_SAMPPOS_ELER }
 3D Sub-sampling positions. More...
 
enum  XVidC_Eotf
 Electro Optical Transfer Function. More...
 

Functions

u32 XVidC_RegisterCustomTimingModes (const XVidC_VideoTimingMode *CustomTable, u16 NumElems)
 This function registers a user-defined custom video mode timing table with video_common. More...
 
void XVidC_UnregisterCustomTimingModes (void)
 This function unregisters the user-defined custom video mode timing table previously registered by XVidC_RegisterCustomTimingModes(). More...
 
u64 XVidC_GetPixelClockHzByHVFr (u32 HTotal, u32 VTotal, u8 FrameRate)
 This function calculates pixel clock based on the inputs. More...
 
u64 XVidC_GetPixelClockHzByVmId (XVidC_VideoMode VmId)
 This function calculates pixel clock from video mode. More...
 
XVidC_VideoFormat XVidC_GetVideoFormat (XVidC_VideoMode VmId)
 This function checks if the input video mode is interlaced/progressive based on its ID from the video timings table. More...
 
u8 XVidC_IsInterlaced (XVidC_VideoMode VmId)
 This function checks if the input video mode is interlaced based on its ID from the video timings table. More...
 
XVidC_VideoMode XVidC_GetVideoModeIdWBlanking (const XVidC_VideoTiming *Timing, u32 FrameRate, u8 IsInterlaced)
 This function returns the Video Mode ID that matches the detected input timing, frame rate and I/P flag. More...
 
XVidC_VideoMode XVidC_GetVideoModeId (u32 Width, u32 Height, u32 FrameRate, u8 IsInterlaced)
 This function returns the Video Mode ID that matches the detected input width, height, frame rate and I/P flag. More...
 
XVidC_VideoMode XVidC_GetVideoModeIdExtensive (XVidC_VideoTiming *Timing, u32 FrameRate, u8 IsInterlaced, u8 IsExtensive)
 This function returns the Video Mode ID that matches the detected input timing, frame rate and I/P flag. More...
 
XVidC_VideoMode XVidC_GetVideoModeIdRb (u32 Width, u32 Height, u32 FrameRate, u8 IsInterlaced, u8 RbN)
 This function returns the video mode ID that matches the detected input width, height, frame rate, interlaced or progressive, and reduced blanking. More...
 
const XVidC_VideoTimingModeXVidC_GetVideoModeData (XVidC_VideoMode VmId)
 This function returns the pointer to video mode data at index provided. More...
 
const char * XVidC_GetVideoModeStr (XVidC_VideoMode VmId)
 This function returns the resolution name for index specified. More...
 
const char * XVidC_GetFrameRateStr (XVidC_VideoMode VmId)
 This function returns the frame rate name for index specified. More...
 
const char * XVidC_Get3DFormatStr (XVidC_3DFormat Format)
 This function returns a string representation of the enumerated type, XVidC_3DFormat. More...
 
const char * XVidC_GetColorFormatStr (XVidC_ColorFormat ColorFormatId)
 This function returns the color format name for index specified. More...
 
XVidC_FrameRate XVidC_GetFrameRate (XVidC_VideoMode VmId)
 This function returns the frame rate for index specified. More...
 
const XVidC_VideoTimingXVidC_GetTimingInfo (XVidC_VideoMode VmId)
 This function returns the timing parameters for specified resolution. More...
 
u32 XVidC_SetVideoStream (XVidC_VideoStream *VidStrmPtr, XVidC_VideoMode VmId, XVidC_ColorFormat ColorFormat, XVidC_ColorDepth Bpc, XVidC_PixelsPerClock Ppc)
 This function sets the VideoStream structure for the specified video format. More...
 
u32 XVidC_Set3DVideoStream (XVidC_VideoStream *VidStrmPtr, XVidC_VideoMode VmId, XVidC_ColorFormat ColorFormat, XVidC_ColorDepth Bpc, XVidC_PixelsPerClock Ppc, XVidC_3DInfo *Info3DPtr)
 This function sets the VideoStream structure for the specified 3D video format. More...
 
void XVidC_ReportStreamInfo (const XVidC_VideoStream *Stream)
 This function prints the stream information on STDIO/UART console. More...
 
void XVidC_ReportTiming (const XVidC_VideoTiming *Timing, u8 IsInterlaced)
 This function prints timing information on STDIO/Uart console. More...
 
void XVidC_EdidGetManName (const u8 *EdidRaw, char ManName[4])
 Get the manufacturer name as specified in the vendor and product ID field of the supplied base Extended Display Identification Data (EDID). More...
 
XVidC_ColorDepth XVidC_EdidGetColorDepth (const u8 *EdidRaw)
 Get the color bit depth (bits per primary color) as specified in the basic display parameters and features, video input definition field of the supplied base Extended Display Identification Data (EDID). More...
 
int XVidC_EdidGetCcRedX (const u8 *EdidRaw)
 Calculates the x chromaticity coordinate for red by converting a 10 bit binary fraction representation from the supplied base Extended Display Identification Data (EDID) to a integer in Q0.10 Format. More...
 
int XVidC_EdidGetCcRedY (const u8 *EdidRaw)
 Calculates the y chromaticity coordinate for red by converting a 10 bit binary fraction representation from the supplied base Extended Display Identification Data (EDID) to a integer in Q0.10 Format. More...
 
int XVidC_EdidGetCcGreenX (const u8 *EdidRaw)
 Calculates the x chromaticity coordinate for green by converting a 10 bit binary fraction representation from the supplied base Extended Display Identification Data (EDID) to a integer in Q0.10 Format. More...
 
int XVidC_EdidGetCcGreenY (const u8 *EdidRaw)
 Calculates the y chromaticity coordinate for green by converting a 10 bit binary fraction representation from the supplied base Extended Display Identification Data (EDID) to a integer in Q0.10 Format. More...
 
int XVidC_EdidGetCcBlueX (const u8 *EdidRaw)
 Calculates the x chromaticity coordinate for blue by converting a 10 bit binary fraction representation from the supplied base Extended Display Identification Data (EDID) to a integer in Q0.10 Format. More...
 
int XVidC_EdidGetCcBlueY (const u8 *EdidRaw)
 Calculates the y chromaticity coordinate for blue by converting a 10 bit binary fraction representation from the supplied base Extended Display Identification Data (EDID) to a integer in Q0.10 Format. More...
 
int XVidC_EdidGetCcWhiteX (const u8 *EdidRaw)
 Calculates the x chromaticity coordinate for white by converting a 10 bit binary fraction representation from the supplied base Extended Display Identification Data (EDID) to a integer in Q0.10 Format. More...
 
int XVidC_EdidGetCcWhiteY (const u8 *EdidRaw)
 Calculates the y chromaticity coordinate for white by converting a 10 bit binary fraction representation from the supplied base Extended Display Identification Data (EDID) to an integer in Q0.10 Format. More...
 
u16 XVidC_EdidGetStdTimingsV (const u8 *EdidRaw, u8 StdTimingsNum)
 Retrieves the active vertical resolution from the standard timings field of the supplied base Extended Display Identification Data (EDID). More...
 
u32 XVidC_EdidIsVideoTimingSupported (const u8 *EdidRaw, const XVidC_VideoTimingMode *VtMode)
 Checks whether or not a specified video timing mode is supported as specified in the supplied base Extended Display Identification Data (EDID). More...
 

Variables

const XVidC_VideoTimingMode XVidC_VideoTimingModes [XVIDC_VM_NUM_SUPPORTED]
 This table contains the main stream attributes for various standard resolutions. More...
 
const XVidC_VideoTimingMode XVidC_VideoTimingModes [XVIDC_VM_NUM_SUPPORTED]
 This table contains the main stream attributes for various standard resolutions. More...
 

Address mapping for the base EDID block.

#define XVIDC_EDID_HEADER   0x00
 
#define XVIDC_EDID_VPI_ID_MAN_NAME0   0x08
 
#define XVIDC_EDID_VPI_ID_MAN_NAME1   0x09
 
#define XVIDC_EDID_VPI_ID_PROD_CODE_LSB   0x0A
 
#define XVIDC_EDID_VPI_ID_PROD_CODE_MSB   0x0B
 
#define XVIDC_EDID_VPI_ID_SN0   0x0C
 
#define XVIDC_EDID_VPI_ID_SN1   0x0D
 
#define XVIDC_EDID_VPI_ID_SN2   0x0E
 
#define XVIDC_EDID_VPI_ID_SN3   0x0F
 
#define XVIDC_EDID_VPI_WEEK_MAN   0x10
 
#define XVIDC_EDID_VPI_YEAR   0x11
 
#define XVIDC_EDID_STRUCT_VER   0x12
 
#define XVIDC_EDID_STRUCT_REV   0x13
 
#define XVIDC_EDID_BDISP_VID   0x14
 
#define XVIDC_EDID_BDISP_H_SSAR   0x15
 
#define XVIDC_EDID_BDISP_V_SSAR   0x16
 
#define XVIDC_EDID_BDISP_GAMMA   0x17
 
#define XVIDC_EDID_BDISP_FEATURE   0x18
 
#define XVIDC_EDID_CC_RG_LOW   0x19
 
#define XVIDC_EDID_CC_BW_LOW   0x1A
 
#define XVIDC_EDID_CC_REDX_HIGH   0x1B
 
#define XVIDC_EDID_CC_REDY_HIGH   0x1C
 
#define XVIDC_EDID_CC_GREENX_HIGH   0x1D
 
#define XVIDC_EDID_EST_TIMINGS_I   0x23
 
#define XVIDC_EDID_EST_TIMINGS_II   0x24
 
#define XVIDC_EDID_EST_TIMINGS_MAN   0x25
 
#define XVIDC_EDID_STD_TIMINGS_H(N)   (0x26 + 2 * (N - 1))
 
#define XVIDC_EDID_STD_TIMINGS_AR_FRR(N)   (0x27 + 2 * (N - 1))
 
#define XVIDC_EDID_18BYTE_DESCRIPTOR(N)   (0x36 + 18 * (N - 1))
 
#define XVIDC_EDID_PTM   (XVIDC_EDID_18BYTE_DESCRIPTOR(1))
 
#define XVIDC_EDID_DTD_PTM_PIXEL_CLK_KHZ_LSB   0x00
 
#define XVIDC_EDID_DTD_PTM_PIXEL_CLK_KHZ_MSB   0x01
 
#define XVIDC_EDID_DTD_PTM_HRES_LSB   0x02
 
#define XVIDC_EDID_DTD_PTM_HBLANK_LSB   0x03
 
#define XVIDC_EDID_DTD_PTM_HRES_HBLANK_U4   0x04
 
#define XVIDC_EDID_DTD_PTM_VRES_LSB   0x05
 
#define XVIDC_EDID_DTD_PTM_VBLANK_LSB   0x06
 
#define XVIDC_EDID_DTD_PTM_VRES_VBLANK_U4   0x07
 
#define XVIDC_EDID_DTD_PTM_HFPORCH_LSB   0x08
 
#define XVIDC_EDID_DTD_PTM_HSPW_LSB   0x09
 
#define XVIDC_EDID_DTD_PTM_VFPORCH_VSPW_L4   0x0A
 
#define XVIDC_EDID_DTD_PTM_XFPORCH_XSPW_U2   0x0B
 
#define XVIDC_EDID_DTD_PTM_HIMGSIZE_MM_LSB   0x0C
 
#define XVIDC_EDID_DTD_PTM_VIMGSIZE_MM_LSB   0x0D
 
#define XVIDC_EDID_DTD_PTM_XIMGSIZE_MM_U4   0x0E
 
#define XVIDC_EDID_DTD_PTM_HBORDER   0x0F
 
#define XVIDC_EDID_DTD_PTM_VBORDER   0x10
 
#define XVIDC_EDID_DTD_PTM_SIGNAL   0x11
 
#define XVIDC_EDID_EXT_BLK_COUNT   0x7E
 
#define XVIDC_EDID_CHECKSUM   0x7F
 

Extended Display Identification Data: Masks, shifts, and values.

#define XVIDC_EDID_CC_GREENY_HIGH   0x1E
 
#define XVIDC_EDID_CC_GREENY_HIGH   0x1E
 
#define XVIDC_EDID_CC_BLUEX_HIGH   0x1F
 
#define XVIDC_EDID_CC_BLUEX_HIGH   0x1F
 
#define XVIDC_EDID_CC_BLUEY_HIGH   0x20
 
#define XVIDC_EDID_CC_BLUEY_HIGH   0x20
 
#define XVIDC_EDID_CC_WHITEX_HIGH   0x21
 
#define XVIDC_EDID_CC_WHITEX_HIGH   0x21
 
#define XVIDC_EDID_CC_WHITEY_HIGH   0x22
 
#define XVIDC_EDID_CC_WHITEY_HIGH   0x22
 
#define XVIDC_EDID_VPI_ID_MAN_NAME0_CHAR0_SHIFT   2
 
#define XVIDC_EDID_VPI_ID_MAN_NAME0_CHAR0_MASK   (0x1F << 2)
 
#define XVIDC_EDID_VPI_ID_MAN_NAME0_CHAR1_MASK   0x03
 
#define XVIDC_EDID_VPI_ID_MAN_NAME0_CHAR1_POS   3
 
#define XVIDC_EDID_VPI_ID_MAN_NAME1_CHAR1_SHIFT   5
 
#define XVIDC_EDID_VPI_ID_MAN_NAME1_CHAR2_MASK   0x1F
 
#define XVIDC_EDID_BDISP_VID_VSI_SHIFT   7
 
#define XVIDC_EDID_BDISP_VID_VSI_MASK   (0x01 << 7)
 
#define XVIDC_EDID_BDISP_VID_ANA_SLS_SHIFT   5
 
#define XVIDC_EDID_BDISP_VID_ANA_SLS_MASK   (0x03 << 5)
 
#define XVIDC_EDID_BDISP_VID_ANA_SLS_0700_0300_1000   0x0
 
#define XVIDC_EDID_BDISP_VID_ANA_SLS_0714_0286_1000   0x1
 
#define XVIDC_EDID_BDISP_VID_ANA_SLS_1000_0400_1400   0x2
 
#define XVIDC_EDID_BDISP_VID_ANA_SLS_0700_0000_0700   0x3
 
#define XVIDC_EDID_BDISP_VID_ANA_VID_SETUP_MASK   (0x01 << 4)
 
#define XVIDC_EDID_BDISP_VID_ANA_SEP_SYNC_HV_MASK   (0x01 << 3)
 
#define XVIDC_EDID_BDISP_VID_ANA_COMP_SYNC_H_MASK   (0x01 << 2)
 
#define XVIDC_EDID_BDISP_VID_ANA_COMP_SYNC_G_MASK   (0x01 << 1)
 
#define XVIDC_EDID_BDISP_VID_ANA_SERR_V_SYNC_MASK   (0x01)
 
#define XVIDC_EDID_BDISP_VID_DIG_BPC_SHIFT   4
 
#define XVIDC_EDID_BDISP_VID_DIG_BPC_MASK   (0x7 << 4)
 
#define XVIDC_EDID_BDISP_VID_DIG_BPC_UNDEF   0x0
 
#define XVIDC_EDID_BDISP_VID_DIG_BPC_6   0x1
 
#define XVIDC_EDID_BDISP_VID_DIG_BPC_8   0x2
 
#define XVIDC_EDID_BDISP_VID_DIG_BPC_10   0x3
 
#define XVIDC_EDID_BDISP_VID_DIG_BPC_12   0x4
 
#define XVIDC_EDID_BDISP_VID_DIG_BPC_14   0x5
 
#define XVIDC_EDID_BDISP_VID_DIG_BPC_16   0x6
 
#define XVIDC_EDID_BDISP_VID_DIG_VIS_MASK   0xF
 
#define XVIDC_EDID_BDISP_VID_DIG_VIS_UNDEF   0x0
 
#define XVIDC_EDID_BDISP_VID_DIG_VIS_DVI   0x1
 
#define XVIDC_EDID_BDISP_VID_DIG_VIS_HDMIA   0x2
 
#define XVIDC_EDID_BDISP_VID_DIG_VIS_HDMIB   0x3
 
#define XVIDC_EDID_BDISP_VID_DIG_VIS_MDDI   0x4
 
#define XVIDC_EDID_BDISP_VID_DIG_VIS_DP   0x5
 
#define XVIDC_EDID_BDISP_FEATURE_PM_STANDBY_MASK   (0x1 << 7)
 
#define XVIDC_EDID_BDISP_FEATURE_PM_SUSPEND_MASK   (0x1 << 6)
 
#define XVIDC_EDID_BDISP_FEATURE_PM_OFF_VLP_MASK   (0x1 << 5)
 
#define XVIDC_EDID_BDISP_FEATURE_ANA_COLORTYPE_SHIFT   3
 
#define XVIDC_EDID_BDISP_FEATURE_ANA_COLORTYPE_MASK   (0x3 << 3)
 
#define XVIDC_EDID_BDISP_FEATURE_ANA_COLORTYPE_MCG   0x0
 
#define XVIDC_EDID_BDISP_FEATURE_ANA_COLORTYPE_RGB   0x1
 
#define XVIDC_EDID_BDISP_FEATURE_ANA_COLORTYPE_NRGB   0x2
 
#define XVIDC_EDID_BDISP_FEATURE_ANA_COLORTYPE_UNDEF   0x3
 
#define XVIDC_EDID_BDISP_FEATURE_DIG_COLORENC_YCRCB444_MASK   (0x1 << 3)
 
#define XVIDC_EDID_BDISP_FEATURE_DIG_COLORENC_YCRCB422_MASK   (0x1 << 4)
 
#define XVIDC_EDID_BDISP_FEATURE_SRGB_DEF_MASK   (0x1 << 2)
 
#define XVIDC_EDID_BDISP_FEATURE_PTM_INC_MASK   (0x1 << 1)
 
#define XVIDC_EDID_BDISP_FEATURE_CONTFREQ_MASK   (0x1)
 
#define XVIDC_EDID_CC_HIGH_SHIFT   2
 
#define XVIDC_EDID_CC_RBX_LOW_SHIFT   6
 
#define XVIDC_EDID_CC_RBY_LOW_SHIFT   4
 
#define XVIDC_EDID_CC_RBY_LOW_MASK   (0x3 << 4)
 
#define XVIDC_EDID_CC_GWX_LOW_SHIFT   2
 
#define XVIDC_EDID_CC_GWX_LOW_MASK   (0x3 << 2)
 
#define XVIDC_EDID_CC_GWY_LOW_MASK   (0x3)
 
#define XVIDC_EDID_EST_TIMINGS_I_720x400_70_MASK   (0x1 << 7)
 
#define XVIDC_EDID_EST_TIMINGS_I_720x400_88_MASK   (0x1 << 6)
 
#define XVIDC_EDID_EST_TIMINGS_I_640x480_60_MASK   (0x1 << 5)
 
#define XVIDC_EDID_EST_TIMINGS_I_640x480_67_MASK   (0x1 << 4)
 
#define XVIDC_EDID_EST_TIMINGS_I_640x480_72_MASK   (0x1 << 3)
 
#define XVIDC_EDID_EST_TIMINGS_I_640x480_75_MASK   (0x1 << 2)
 
#define XVIDC_EDID_EST_TIMINGS_I_800x600_56_MASK   (0x1 << 1)
 
#define XVIDC_EDID_EST_TIMINGS_I_800x600_60_MASK   (0x1)
 
#define XVIDC_EDID_EST_TIMINGS_II_800x600_72_MASK   (0x1 << 7)
 
#define XVIDC_EDID_EST_TIMINGS_II_800x600_75_MASK   (0x1 << 6)
 
#define XVIDC_EDID_EST_TIMINGS_II_832x624_75_MASK   (0x1 << 5)
 
#define XVIDC_EDID_EST_TIMINGS_II_1024x768_87_MASK   (0x1 << 4)
 
#define XVIDC_EDID_EST_TIMINGS_II_1024x768_60_MASK   (0x1 << 3)
 
#define XVIDC_EDID_EST_TIMINGS_II_1024x768_70_MASK   (0x1 << 2)
 
#define XVIDC_EDID_EST_TIMINGS_II_1024x768_75_MASK   (0x1 << 1)
 
#define XVIDC_EDID_EST_TIMINGS_II_1280x1024_75_MASK   (0x1)
 
#define XVIDC_EDID_EST_TIMINGS_MAN_1152x870_75_MASK   (0x1 << 7)
 
#define XVIDC_EDID_EST_TIMINGS_MAN_MASK   (0x7F)
 
#define XVIDC_EDID_STD_TIMINGS_AR_SHIFT   6
 
#define XVIDC_EDID_STD_TIMINGS_AR_16_10   0x0
 
#define XVIDC_EDID_STD_TIMINGS_AR_4_3   0x1
 
#define XVIDC_EDID_STD_TIMINGS_AR_5_4   0x2
 
#define XVIDC_EDID_STD_TIMINGS_AR_16_9   0x3
 
#define XVIDC_EDID_STD_TIMINGS_FRR_MASK   (0x3F)
 
#define XVIDC_EDID_DTD_PTM_XRES_XBLANK_U4_XBLANK_MASK   0x0F
 
#define XVIDC_EDID_DTD_PTM_XRES_XBLANK_U4_XRES_MASK   0xF0
 
#define XVIDC_EDID_DTD_PTM_XRES_XBLANK_U4_XRES_SHIFT   4
 
#define XVIDC_EDID_DTD_PTM_VFPORCH_VSPW_L4_VSPW_MASK   0x0F
 
#define XVIDC_EDID_DTD_PTM_VFPORCH_VSPW_L4_VFPORCH_MASK   0xF0
 
#define XVIDC_EDID_DTD_PTM_VFPORCH_VSPW_L4_VFPORCH_SHIFT   4
 
#define XVIDC_EDID_DTD_PTM_XFPORCH_XSPW_U2_HFPORCH_MASK   0xC0
 
#define XVIDC_EDID_DTD_PTM_XFPORCH_XSPW_U2_HSPW_MASK   0x30
 
#define XVIDC_EDID_DTD_PTM_XFPORCH_XSPW_U2_VFPORCH_MASK   0x0C
 
#define XVIDC_EDID_DTD_PTM_XFPORCH_XSPW_U2_VSPW_MASK   0x03
 
#define XVIDC_EDID_DTD_PTM_XFPORCH_XSPW_U2_HFPORCH_SHIFT   6
 
#define XVIDC_EDID_DTD_PTM_XFPORCH_XSPW_U2_HSPW_SHIFT   4
 
#define XVIDC_EDID_DTD_PTM_XFPORCH_XSPW_U2_VFPORCH_SHIFT   2
 
#define XVIDC_EDID_DTD_PTM_XIMGSIZE_MM_U4_VIMGSIZE_MM_MASK   0x0F
 
#define XVIDC_EDID_DTD_PTM_XIMGSIZE_MM_U4_HIMGSIZE_MM_MASK   0xF0
 
#define XVIDC_EDID_DTD_PTM_XIMGSIZE_MM_U4_HIMGSIZE_MM_SHIFT   4
 
#define XVIDC_EDID_DTD_PTM_SIGNAL_INTERLACED_MASK   0x80
 
#define XVIDC_EDID_DTD_PTM_SIGNAL_INTERLACED_SHIFT   7
 
#define XVIDC_EDID_DTD_PTM_SIGNAL_HPOLARITY_MASK   0x02
 
#define XVIDC_EDID_DTD_PTM_SIGNAL_VPOLARITY_MASK   0x04
 
#define XVIDC_EDID_DTD_PTM_SIGNAL_HPOLARITY_SHIFT   1
 
#define XVIDC_EDID_DTD_PTM_SIGNAL_VPOLARITY_SHIFT   2
 

Macro Definition Documentation

#define XVidC_IsStream3D (   VidStreamPtr)    ((VidStreamPtr)->Is3D)

This macro check if video stream is 3D or 2D.

Parameters
VidStreamPtris a pointer to the XVidC_VideoStream structure.
Returns
3D(1)/2D(0)
Note
C-style signature: u8 XDp_IsStream3D(XVidC_VideoStream *VidStreamPtr)

Typedef Documentation

typedef void(* XVidC_DelayHandler)(void *TimerPtr, u32 Delay)

Callback type which represents a custom timer wait handler.

This is only used for Microblaze since it doesn't have a native sleep function. To avoid dependency on a hardware timer, the default wait functionality is implemented using loop iterations; this isn't too accurate. Therefore a custom timer handler is used, the user may implement their own wait implementation.

Parameters
TimerPtris a pointer to the timer instance.
Delayis the duration (msec/usec) to be passed to the timer function.

Enumeration Type Documentation

3D formats.

Enumerator
XVIDC_3D_FRAME_PACKING 

Frame packing.

XVIDC_3D_FIELD_ALTERNATIVE 

Field alternative.

XVIDC_3D_LINE_ALTERNATIVE 

Line alternative.

XVIDC_3D_SIDE_BY_SIDE_FULL 

Side-by-side (full).

XVIDC_3D_TOP_AND_BOTTOM_HALF 

Top-and-bottom (half).

XVIDC_3D_SIDE_BY_SIDE_HALF 

Side-by-side (half).

3D Sub-sampling methods.

Enumerator
XVIDC_3D_SAMPLING_HORIZONTAL 

Horizontal sub-sampling.

XVIDC_3D_SAMPLING_QUINCUNX 

Quincunx matrix.

3D Sub-sampling positions.

Enumerator
XVIDC_3D_SAMPPOS_OLOR 

Odd/Left, Odd/Right.

XVIDC_3D_SAMPPOS_OLER 

Odd/Left, Even/Right.

XVIDC_3D_SAMPPOS_ELOR 

Even/Left, Odd/Right.

XVIDC_3D_SAMPPOS_ELER 

Even/Left, Even/Right.

Image Aspect Ratio.

Color depth - bits per color component.

Color space format.

Color conversion output range.

Color space conversion standard.

enum XVidC_Eotf

Electro Optical Transfer Function.

Based on CTA861-G

Frame rate.

Pixels per clock.

Progressive/interlaced video format.

This typedef enumerates the list of available standard display monitor timings as specified in the xvidc_timings_table.c file.

The naming format is:

XVIDC_VM_<RESOLUTION>_<REFRESH RATE (HZ)>_<P|I>(_RB)

Where RB stands for reduced blanking.

Function Documentation

int XVidC_EdidGetCcBlueX ( const u8 *  EdidRaw)

Calculates the x chromaticity coordinate for blue by converting a 10 bit binary fraction representation from the supplied base Extended Display Identification Data (EDID) to a integer in Q0.10 Format.

To convert back to float divide the fixed point value by 2^10.

Parameters
EdidRawis the supplied base EDID to retrieve chromaticity information from.
Returns
The x chromatacity coordinate for blue.
Note
All values will be accurate to +/-0.0005.
int XVidC_EdidGetCcBlueY ( const u8 *  EdidRaw)

Calculates the y chromaticity coordinate for blue by converting a 10 bit binary fraction representation from the supplied base Extended Display Identification Data (EDID) to a integer in Q0.10 Format.

To convert back to float divide the fixed point value by 2^10.

Parameters
EdidRawis the supplied base EDID to retrieve chromaticity information from.
Returns
The y chromatacity coordinate for blue.
Note
All values will be accurate to +/-0.0005.
int XVidC_EdidGetCcGreenX ( const u8 *  EdidRaw)

Calculates the x chromaticity coordinate for green by converting a 10 bit binary fraction representation from the supplied base Extended Display Identification Data (EDID) to a integer in Q0.10 Format.

To convert back to float divide the fixed point value by 2^10.

Parameters
EdidRawis the supplied base EDID to retrieve chromaticity information from.
Returns
The x chromatacity coordinate for green.
Note
All values will be accurate to +/-0.0005.
int XVidC_EdidGetCcGreenY ( const u8 *  EdidRaw)

Calculates the y chromaticity coordinate for green by converting a 10 bit binary fraction representation from the supplied base Extended Display Identification Data (EDID) to a integer in Q0.10 Format.

To convert back to float divide the fixed point value by 2^10.

Parameters
EdidRawis the supplied base EDID to retrieve chromaticity information from.
Returns
The y chromatacity coordinate for green.
Note
All values will be accurate to +/-0.0005.
int XVidC_EdidGetCcRedX ( const u8 *  EdidRaw)

Calculates the x chromaticity coordinate for red by converting a 10 bit binary fraction representation from the supplied base Extended Display Identification Data (EDID) to a integer in Q0.10 Format.

To convert back to float divide the fixed point value by 2^10.

Parameters
EdidRawis the supplied base EDID to retrieve chromaticity information from.
Returns
The x chromatacity coordinate for red.
Note
All values will be accurate to +/-0.0005.
int XVidC_EdidGetCcRedY ( const u8 *  EdidRaw)

Calculates the y chromaticity coordinate for red by converting a 10 bit binary fraction representation from the supplied base Extended Display Identification Data (EDID) to a integer in Q0.10 Format.

To convert back to float divide the fixed point value by 2^10.

Parameters
EdidRawis the supplied base EDID to retrieve chromaticity information from.
Returns
The y chromatacity coordinate for red.
Note
All values will be accurate to +/-0.0005.
int XVidC_EdidGetCcWhiteX ( const u8 *  EdidRaw)

Calculates the x chromaticity coordinate for white by converting a 10 bit binary fraction representation from the supplied base Extended Display Identification Data (EDID) to a integer in Q0.10 Format.

To convert back to float divide the fixed point value by 2^10.

Parameters
EdidRawis the supplied base EDID to retrieve chromaticity information from.
Returns
The x chromatacity coordinate for white.
Note
All values will be accurate to +/-0.0005.
int XVidC_EdidGetCcWhiteY ( const u8 *  EdidRaw)

Calculates the y chromaticity coordinate for white by converting a 10 bit binary fraction representation from the supplied base Extended Display Identification Data (EDID) to an integer in Q0.10 Format.

To convert back to float divide the fixed point value by 2^10.

Parameters
EdidRawis the supplied base EDID to retrieve chromaticity information from.
Returns
The y chromatacity coordinate for white.
Note
All values will be accurate to +/-0.0005.
XVidC_ColorDepth XVidC_EdidGetColorDepth ( const u8 *  EdidRaw)

Get the color bit depth (bits per primary color) as specified in the basic display parameters and features, video input definition field of the supplied base Extended Display Identification Data (EDID).

Parameters
EdidRawis the supplied base EDID to retrieve color depth information from.
Returns
The number of bits per primary color as specified by the supplied base EDID.
Note
None.
void XVidC_EdidGetManName ( const u8 *  EdidRaw,
char  ManName[4] 
)

Get the manufacturer name as specified in the vendor and product ID field of the supplied base Extended Display Identification Data (EDID).

Parameters
EdidRawis the supplied base EDID to retrieve the manufacturer name from.
ManNameis the string that will be modified to hold the retrieved manufacturer name.
Returns
None.
Note
The ManName argument is modified with the manufacturer name.
u16 XVidC_EdidGetStdTimingsV ( const u8 *  EdidRaw,
u8  StdTimingsNum 
)

Retrieves the active vertical resolution from the standard timings field of the supplied base Extended Display Identification Data (EDID).

Parameters
EdidRawis the supplied base EDID to check the timing against.
StdTimingsNumspecifies which one of the standard timings to retrieve from the standard timings field.
Returns
The vertical active resolution of the specified standard timing from the supplied base EDID.
Note
StdTimingsNum is an index 1-8.
u32 XVidC_EdidIsVideoTimingSupported ( const u8 *  EdidRaw,
const XVidC_VideoTimingMode VtMode 
)

Checks whether or not a specified video timing mode is supported as specified in the supplied base Extended Display Identification Data (EDID).

The preferred timing, established timings (I, II, II), and the standard timings fields are checked for support.

Parameters
EdidRawis the supplied base EDID to check the timing against.
VtModeis the video timing mode to check for support.
Returns
  • XST_SUCCESS if the video timing mode is supported as specified in the supplied base EDID.
  • XST_FAILURE otherwise.
Note
None.

Referenced by Edid_PrintSuppVmTable().

const char * XVidC_Get3DFormatStr ( XVidC_3DFormat  Format)

This function returns a string representation of the enumerated type, XVidC_3DFormat.

Parameters
Formatspecifies the value to convert.
Returns
Pointer to the converted string.
Note
None.

References XVIDC_3D_FIELD_ALTERNATIVE, XVIDC_3D_FRAME_PACKING, XVIDC_3D_LINE_ALTERNATIVE, XVIDC_3D_SIDE_BY_SIDE_FULL, XVIDC_3D_SIDE_BY_SIDE_HALF, and XVIDC_3D_TOP_AND_BOTTOM_HALF.

Referenced by XVidC_ReportStreamInfo().

const char * XVidC_GetColorFormatStr ( XVidC_ColorFormat  ColorFormatId)

This function returns the color format name for index specified.

Parameters
ColorFormatIdspecifies the index of color format space.
Returns
Pointer to a color space name string.
Note
None.

Referenced by XVidC_ReportStreamInfo().

XVidC_FrameRate XVidC_GetFrameRate ( XVidC_VideoMode  VmId)

This function returns the frame rate for index specified.

Parameters
VmIdspecifies the resolution id.
Returns
Frame rate in Hz.
Note
None.

References XVidC_GetVideoModeData().

Referenced by XVidC_SetVideoStream().

const char * XVidC_GetFrameRateStr ( XVidC_VideoMode  VmId)

This function returns the frame rate name for index specified.

Parameters
VmIdspecifies the resolution id.
Returns
Pointer to a frame rate name string.
Note
None.

References XVidC_GetVideoModeData().

Referenced by XVidC_ReportStreamInfo().

u64 XVidC_GetPixelClockHzByHVFr ( u32  HTotal,
u32  VTotal,
u8  FrameRate 
)

This function calculates pixel clock based on the inputs.

Parameters
HTotalspecifies horizontal total.
VTotalspecifies vertical total.
FrameRatespecifies rate at which frames are generated.
Returns
Pixel clock in Hz.
Note
None.

Referenced by XVidC_ReportStreamInfo().

u64 XVidC_GetPixelClockHzByVmId ( XVidC_VideoMode  VmId)

This function calculates pixel clock from video mode.

Parameters
VmIdspecifies the resolution id.
Returns
Pixel clock in Hz.
Note
None.

References XVidC_GetVideoModeData(), and XVidC_IsInterlaced().

Referenced by XVidC_ReportStreamInfo().

const XVidC_VideoTiming * XVidC_GetTimingInfo ( XVidC_VideoMode  VmId)

This function returns the timing parameters for specified resolution.

Parameters
VmIdspecifies the resolution id.
Returns
Pointer to a XVidC_VideoTiming structure.
Note
None.

References XVidC_GetVideoModeData().

Referenced by XVidC_GetVideoModeIdWBlanking(), and XVidC_SetVideoStream().

XVidC_VideoFormat XVidC_GetVideoFormat ( XVidC_VideoMode  VmId)

This function checks if the input video mode is interlaced/progressive based on its ID from the video timings table.

Parameters
VmIdspecifies the resolution ID from the video timings table.
Returns
Video format.
  • XVIDC_VF_PROGRESSIVE
  • XVIDC_VF_INTERLACED
Note
None.

References XVidC_GetVideoModeData().

Referenced by XVidC_IsInterlaced().

const XVidC_VideoTimingMode * XVidC_GetVideoModeData ( XVidC_VideoMode  VmId)

This function returns the pointer to video mode data at index provided.

Parameters
VmIdspecifies the resolution id.
Returns
Pointer to XVidC_VideoTimingMode structure based on the given video mode.
Note
None.

Referenced by XVidC_GetFrameRate(), XVidC_GetFrameRateStr(), XVidC_GetPixelClockHzByVmId(), XVidC_GetTimingInfo(), XVidC_GetVideoFormat(), XVidC_GetVideoModeIdRb(), XVidC_GetVideoModeStr(), and XVidC_ReportStreamInfo().

XVidC_VideoMode XVidC_GetVideoModeId ( u32  Width,
u32  Height,
u32  FrameRate,
u8  IsInterlaced 
)

This function returns the Video Mode ID that matches the detected input width, height, frame rate and I/P flag.

Parameters
Widthspecifies the number pixels per scanline.
Heightspecifies the number of scanline's.
FrameRatespecifies refresh rate in HZ
IsInterlacedis flag.
  • 0 = Progressive
  • 1 = Interlaced.
Returns
Id of a supported video mode.
Note
None.

Referenced by XVidC_GetVideoModeIdRb(), and XVidC_GetVideoModeIdWBlanking().

XVidC_VideoMode XVidC_GetVideoModeIdExtensive ( XVidC_VideoTiming Timing,
u32  FrameRate,
u8  IsInterlaced,
u8  IsExtensive 
)

This function returns the Video Mode ID that matches the detected input timing, frame rate and I/P flag.

Parameters
Timingis the pointer to timing parameters to match
FrameRatespecifies refresh rate in HZ
IsInterlacedis flag.
  • 0 = Progressive
    • 1 = Interlaced.
IsExtensiveis flag.
  • 0 = Basic matching of timing parameters
    • 1 = Extensive matching of timing parameters
Returns
Id of a supported video mode.
Note
This function attempts to search for reduced blanking entries, if any.
XVidC_VideoMode XVidC_GetVideoModeIdRb ( u32  Width,
u32  Height,
u32  FrameRate,
u8  IsInterlaced,
u8  RbN 
)

This function returns the video mode ID that matches the detected input width, height, frame rate, interlaced or progressive, and reduced blanking.

Parameters
Widthspecifies the number pixels per scanline.
Heightspecifies the number of scanline's.
FrameRatespecifies refresh rate in HZ
IsInterlacedspecifies interlaced or progressive mode:
  • 0 = Progressive
  • 1 = Interlaced.
RbNspecifies the type of reduced blanking:
  • 0 = No reduced blanking
  • 1 = RB
  • 2 = RB2
Returns
ID of a supported video mode.
Note
None.

References XVidC_GetVideoModeData(), XVidC_GetVideoModeId(), XVidC_GetVideoModeStr(), and XVidC_IsInterlaced().

XVidC_VideoMode XVidC_GetVideoModeIdWBlanking ( const XVidC_VideoTiming Timing,
u32  FrameRate,
u8  IsInterlaced 
)

This function returns the Video Mode ID that matches the detected input timing, frame rate and I/P flag.

Parameters
Timingis the pointer to timing parameters to match
FrameRatespecifies refresh rate in HZ
IsInterlacedis flag.
  • 0 = Progressive
    • 1 = Interlaced.
Returns
Id of a supported video mode.
Note
This is an extension of XVidC_GetVideoModeId API to include blanking information in match process. No attempt is made to search for reduced blanking entries, if any.

References XVidC_GetTimingInfo(), and XVidC_GetVideoModeId().

const char * XVidC_GetVideoModeStr ( XVidC_VideoMode  VmId)

This function returns the resolution name for index specified.

Parameters
VmIdspecifies the resolution id.
Returns
Pointer to a resolution name string.
Note
None.

References XVidC_GetVideoModeData().

Referenced by XVidC_GetVideoModeIdRb(), and XVidC_ReportStreamInfo().

u8 XVidC_IsInterlaced ( XVidC_VideoMode  VmId)

This function checks if the input video mode is interlaced based on its ID from the video timings table.

Parameters
VmIdspecifies the resolution ID from the video timings table.
Returns
  • 1 if the video timing with the supplied table ID is interlaced.
  • 0 if the video timing is progressive.
Note
None.

References XVidC_GetVideoFormat().

Referenced by XVidC_GetPixelClockHzByVmId(), XVidC_GetVideoModeIdRb(), and XVidC_SetVideoStream().

u32 XVidC_RegisterCustomTimingModes ( const XVidC_VideoTimingMode CustomTable,
u16  NumElems 
)

This function registers a user-defined custom video mode timing table with video_common.

Functions which search the available video modes, or take VmId as an input, will operate on or check the custom video mode timing table in addition to the pre-defined video mode timing table (XVidC_VideoTimingModes).

Parameters
CustomTableis a pointer to the user-defined custom vide mode timing table to register.
NumElemsis the number of video modes supported by CustomTable.
Returns
  • XST_SUCCESS if the custom table was successfully registered.
  • XST_FAILURE if an existing custom table is already present.
Note
IDs in the custom table may not conflict with IDs reserved by the XVidC_VideoMode enum.
void XVidC_ReportStreamInfo ( const XVidC_VideoStream Stream)

This function prints the stream information on STDIO/UART console.

Parameters
Streamis a pointer to video stream.
Returns
None.
Note
None.

References XVidC_Get3DFormatStr(), XVidC_GetColorFormatStr(), XVidC_GetFrameRateStr(), XVidC_GetPixelClockHzByHVFr(), XVidC_GetPixelClockHzByVmId(), XVidC_GetVideoModeData(), and XVidC_GetVideoModeStr().

void XVidC_ReportTiming ( const XVidC_VideoTiming Timing,
u8  IsInterlaced 
)

This function prints timing information on STDIO/Uart console.

Parameters
Timingis a pointer to Video Timing structure of the stream.
IsInterlacedis a TRUE/FALSE flag that denotes the timing parameter is for interlaced/progressive stream.
Returns
None.
Note
None.
u32 XVidC_Set3DVideoStream ( XVidC_VideoStream VidStrmPtr,
XVidC_VideoMode  VmId,
XVidC_ColorFormat  ColorFormat,
XVidC_ColorDepth  Bpc,
XVidC_PixelsPerClock  Ppc,
XVidC_3DInfo Info3DPtr 
)

This function sets the VideoStream structure for the specified 3D video format.

Parameters
VidStrmPtris a pointer to the XVidC_VideoStream structure to be set.
VmIdspecifies the resolution ID.
ColorFormatspecifies the color format type.
Bpcspecifies the color depth/bits per color component.
Ppcspecifies the pixels per clock.
Info3DPtris a pointer to a XVidC_3DInfo structure.
Returns
  • XST_SUCCESS if the timing for the supplied ID was found.
  • XST_FAILURE, otherwise.
  • XST_SUCCESS
  • XST_FAILURE
Note
None.

References XVIDC_3D_FRAME_PACKING, and XVidC_SetVideoStream().

u32 XVidC_SetVideoStream ( XVidC_VideoStream VidStrmPtr,
XVidC_VideoMode  VmId,
XVidC_ColorFormat  ColorFormat,
XVidC_ColorDepth  Bpc,
XVidC_PixelsPerClock  Ppc 
)

This function sets the VideoStream structure for the specified video format.

Parameters
VidStrmPtris a pointer to the XVidC_VideoStream structure to be set.
VmIdspecifies the resolution ID.
ColorFormatspecifies the color format type.
Bpcspecifies the color depth/bits per color component.
Ppcspecifies the pixels per clock.
Returns
  • XST_SUCCESS if the timing for the supplied ID was found.
  • XST_FAILURE, otherwise.
Note
None.

References XVidC_GetFrameRate(), XVidC_GetTimingInfo(), and XVidC_IsInterlaced().

Referenced by XVidC_Set3DVideoStream().

void XVidC_UnregisterCustomTimingModes ( void  )

This function unregisters the user-defined custom video mode timing table previously registered by XVidC_RegisterCustomTimingModes().

Returns
None.
Note
None.

Variable Documentation

const XVidC_VideoTimingMode XVidC_VideoTimingModes[XVIDC_VM_NUM_SUPPORTED]

This table contains the main stream attributes for various standard resolutions.

Each entry is of the format: 1) ID: XVIDC_VM_<HRES>x<VRES>_<FRAME RATE (HZ)>_<P|I>(RB = Reduced Blanking) 2) Resolution naming: "<HRES>x<VRES>@<FRAME RATE (HZ)>" 3) Frame rate: XVIDC_FR<FRAME RATE (HZ)> 4) Video timing structure: 1) Horizontal active resolution (pixels) 2) Horizontal front porch (pixels) 3) Horizontal sync width (pixels) 4) Horizontal back porch (pixels) 5) Horizontal total (pixels) 6) Horizontal sync polarity (0=negative|1=positive) 7) Vertical active resolution (lines) 8) Frame 0: Vertical front porch (lines) 9) Frame 0: Vertical sync width (lines) 10) Frame 0: Vertical back porch (lines) 11) Frame 0: Vertical total (lines) 12) Frame 1: Vertical front porch (lines) 13) Frame 1: Vertical sync width (lines) 14) Frame 1: Vertical back porch (lines) 15) Frame 1: Vertical total (lines) 16) Vertical sync polarity (0=negative|1=positive)

Referenced by Edid_PrintSuppVmTable().

const XVidC_VideoTimingMode XVidC_VideoTimingModes[XVIDC_VM_NUM_SUPPORTED]

This table contains the main stream attributes for various standard resolutions.

Each entry is of the format: 1) ID: XVIDC_VM_<HRES>x<VRES>_<FRAME RATE (HZ)>_<P|I>(RB = Reduced Blanking) 2) Resolution naming: "<HRES>x<VRES>@<FRAME RATE (HZ)>" 3) Frame rate: XVIDC_FR<FRAME RATE (HZ)> 4) Video timing structure: 1) Horizontal active resolution (pixels) 2) Horizontal front porch (pixels) 3) Horizontal sync width (pixels) 4) Horizontal back porch (pixels) 5) Horizontal total (pixels) 6) Horizontal sync polarity (0=negative|1=positive) 7) Vertical active resolution (lines) 8) Frame 0: Vertical front porch (lines) 9) Frame 0: Vertical sync width (lines) 10) Frame 0: Vertical back porch (lines) 11) Frame 0: Vertical total (lines) 12) Frame 1: Vertical front porch (lines) 13) Frame 1: Vertical sync width (lines) 14) Frame 1: Vertical back porch (lines) 15) Frame 1: Vertical total (lines) 16) Vertical sync polarity (0=negative|1=positive)

Referenced by Edid_PrintSuppVmTable().