vprocss
Vitis Drivers API Documentation
xvprocss.h File Reference

Data Structures

struct  XVprocSs_ContextData
 Video Processing Subsystem context scratch pad memory. More...
 
struct  XSubCore
 Sub-Core Configuration Table. More...
 
struct  XVprocSs_Config
 Video Processing Subsystem configuration structure. More...
 
struct  XVprocSs
 The XVprocSs driver instance data. More...
 

Macros

#define XVPROCSS_H
 < prevent circular inclusions by using protection macros More...
 
#define XVprocSs_GetSubsystemTopology(XVprocSsPtr)   ((XVprocSsPtr)->Config.Topology)
 This macro returns the subsystem topology. More...
 
#define XVprocSs_GetColorDepth(XVprocSsPtr)   ((XVprocSsPtr)->Config.ColorDepth)
 This macro returns the subsystem Color Depth. More...
 
#define XVprocSs_IsConfigModeMax(XVprocSsPtr)   ((XVprocSsPtr)->Config.Topology == XVPROCSS_TOPOLOGY_FULL_FLEDGED)
 This macro checks if subsystem is in Maximum (Full_Fledged) configuration. More...
 
#define XVprocSs_IsConfigModeSscalerOnly(XVprocSsPtr)   ((XVprocSsPtr)->Config.Topology == XVPROCSS_TOPOLOGY_SCALER_ONLY)
 This macro checks if subsystem configuration is in Scaler Only Mode. More...
 
#define XVprocSs_IsConfigModeDeinterlaceOnly(XVprocSsPtr)   ((XVprocSsPtr)->Config.Topology == XVPROCSS_TOPOLOGY_DEINTERLACE_ONLY)
 This macro checks if subsystem configuration is in Deinterlace Only Mode. More...
 
#define XVprocSs_IsConfigModeCscOnly(XVprocSsPtr)   ((XVprocSsPtr)->Config.Topology == XVPROCSS_TOPOLOGY_CSC_ONLY)
 This macro checks if subsystem configuration is in CSC Only Mode. More...
 
#define XVprocSs_IsConfigModeVCResampleOnly(XVprocSsPtr)   ((XVprocSsPtr)->Config.Topology == XVPROCSS_TOPOLOGY_VCRESAMPLE_ONLY)
 This macro checks if subsystem configuration is in V Chroma ResampleMode. More...
 
#define XVprocSs_IsConfigModeHCResampleOnly(XVprocSsPtr)   ((XVprocSsPtr)->Config.Topology == XVPROCSS_TOPOLOGY_HCRESAMPLE_ONLY)
 This macro checks if subsystem configuration is in H Chroma Resample Mode. More...
 
#define XVprocSs_IsPipModeOn(XVprocSsPtr)   ((XVprocSsPtr)->CtxtData.PipEn)
 This macro returns the current state of PIP Mode stored in subsystem internal scratch pad memory. More...
 
#define XVprocSs_IsZoomModeOn(XVprocSsPtr)   ((XVprocSsPtr)->CtxtData.ZoomEn)
 This macro returns the current state of Zoom Mode stored in subsystem internal scratch pad memory. More...
 
#define XVprocSs_GetPipZoomWinHStepSize(XVprocSsPtr)   ((XVprocSsPtr)->CtxtData.PixelHStepSize)
 This macro returns the Pip/Zoom window horizontal increment size. More...
 
#define XVprocSs_ResetPipModeFlag(XVprocSsPtr)   ((XVprocSsPtr)->CtxtData.PipEn = FALSE)
 This macro clears the PIP mode flag stored in subsystem internal scratch pad memory. More...
 
#define XVprocSs_ResetZoomModeFlag(XVprocSsPtr)   ((XVprocSsPtr)->CtxtData.ZoomEn = FALSE)
 This macro clears the ZOOM mode flag stored in subsystem internal scratch pad memory. More...
 
#define XVprocSs_SetStreamColorFormat(Stream, ColorFormat)   ((Stream)->ColorFormatId = ColorFormat)
 This macro sets the specified stream's color format. More...
 
#define XVprocSs_SetStreamColorDepth(Stream, ColorDepth)   ((Stream)->ColorDepth = ColorDepth)
 This macro sets the specified stream's color depth. More...
 

Enumerations

enum  XVPROCSS_SUBCORE_ID
 Subsystem sub-core layer 2 header files Layer 2 includes Layer-1. More...
 
enum  XVPROCSS_CONFIG_TOPOLOGY
 This typedef enumerates supported subsystem configuration topology. More...
 
enum  XVprocSs_Win
 This typedef enumerates types of Windows (Sub-frames) available in the Subsystem. More...
 
enum  XVprocSs_ScaleMode
 This typedef enumerates supported scaling modes. More...
 
enum  XVprocSs_ColorChannel
 This typedef enumerates supported Color Channels. More...
 

Functions

int XVprocSs_CfgInitialize (XVprocSs *InstancePtr, XVprocSs_Config *CfgPtr, UINTPTR EffectiveAddr)
 This function initializes the video subsystem and included sub-cores. More...
 
int XVprocSs_SetSubsystemConfig (XVprocSs *InstancePtr)
 This function is the entry point into the video processing subsystem driver processing path. More...
 
XVprocSs_ConfigXVprocSs_LookupConfig (u32 DeviceId)
 This function looks for the device configuration based on the unique device ID. More...
 
void XVprocSs_Start (XVprocSs *InstancePtr)
 This function starts the video subsystem including all sub-cores that are included in the processing pipeline for a given use-case. More...
 
void XVprocSs_Stop (XVprocSs *InstancePtr)
 This function stops the video subsystem including all sub-cores Stop the video pipe starting from front to back. More...
 
void XVprocSs_Reset (XVprocSs *InstancePtr)
 This function resets the video subsystem sub-cores. More...
 
int XVprocSs_SetVidStreamIn (XVprocSs *InstancePtr, const XVidC_VideoStream *StrmIn)
 This function configures the video subsystem input interface. More...
 
int XVprocSs_SetVidStreamOut (XVprocSs *InstancePtr, const XVidC_VideoStream *StrmOut)
 This function configures the video subsystem output interface. More...
 
int XVprocSs_SetStreamResolution (XVidC_VideoStream *StreamPtr, const XVidC_VideoMode VmId, XVidC_VideoTiming const *Timing)
 This function sets the required subsystem video stream to the user provided stream and timing parameters. More...
 
void XVprocSs_SetFrameBufBaseaddr (XVprocSs *InstancePtr, UINTPTR addr)
 This function sets the base address of the video frame buffers used by the subsystem instance. More...
 
void XVprocSs_SetUserTimerHandler (XVprocSs *InstancePtr, XVidC_DelayHandler CallbackFunc, void *CallbackRef)
 This function registers the user defined delay/sleep function with subsystem. More...
 
void XVprocSs_SetZoomMode (XVprocSs *InstancePtr, u8 OnOff)
 This function configures the video subsystem to enable/disable ZOOM feature If ZOOM mode is set to ON but user has not set window coordinates then quarter of input stream resolution at coordinates 0,0 is set as the default zoom window. More...
 
void XVprocSs_SetPipMode (XVprocSs *InstancePtr, u8 OnOff)
 This function configures the video subsystem to enable/disable PIP feature If PIP mode is set to ON but user has not set window coordinates then half of input stream resolution at coordinates 0,0 is set as the default zoom window. More...
 
void XVprocSs_SetZoomPipWindow (XVprocSs *InstancePtr, XVprocSs_Win mode, XVidC_VideoWindow *win)
 This function allows user to set the Zoom or PIP window. More...
 
void XVprocSs_GetZoomPipWindow (XVprocSs *InstancePtr, XVprocSs_Win mode, XVidC_VideoWindow *win)
 This function reads the user defined Zoom/Pip window from scratch pad memory. More...
 
void XVprocSs_UpdateZoomPipWindow (XVprocSs *InstancePtr)
 This function updates the Pip/Zoom window currently on screen in-place. More...
 
s32 XVprocSs_GetPictureBrightness (XVprocSs *InstancePtr)
 This function returns picture brighntess setting. More...
 
void XVprocSs_SetPictureBrightness (XVprocSs *InstancePtr, s32 NewValue)
 This function updates picture brighntess setting with specified value. More...
 
s32 XVprocSs_GetPictureContrast (XVprocSs *InstancePtr)
 This function returns picture contrast setting. More...
 
void XVprocSs_SetPictureContrast (XVprocSs *InstancePtr, s32 NewValue)
 This function updates picture contrast setting with specified value. More...
 
s32 XVprocSs_GetPictureSaturation (XVprocSs *InstancePtr)
 This function returns picture saturation setting. More...
 
void XVprocSs_SetPictureSaturation (XVprocSs *InstancePtr, s32 NewValue)
 This function updates picture saturation setting with specified value. More...
 
s32 XVprocSs_GetPictureGain (XVprocSs *InstancePtr, XVprocSs_ColorChannel ChId)
 This function returns picture gain setting for the specified color channel. More...
 
void XVprocSs_SetPictureGain (XVprocSs *InstancePtr, XVprocSs_ColorChannel ChId, s32 NewValue)
 This function updates picture gain setting with specified value. More...
 
XVidC_ColorStd XVprocSs_GetPictureColorStdIn (XVprocSs *InstancePtr)
 This function returns picture color standard setting for input. More...
 
void XVprocSs_SetPictureColorStdIn (XVprocSs *InstancePtr, XVidC_ColorStd NewVal)
 This function sets picture color standard setting for input. More...
 
XVidC_ColorStd XVprocSs_GetPictureColorStdOut (XVprocSs *InstancePtr)
 This function returns picture color standard setting for output. More...
 
void XVprocSs_SetPictureColorStdOut (XVprocSs *InstancePtr, XVidC_ColorStd NewVal)
 This function sets picture color standard setting for output. More...
 
XVidC_ColorRange XVprocSs_GetPictureColorRange (XVprocSs *InstancePtr)
 This function returns picture color range for output. More...
 
void XVprocSs_SetPictureColorRange (XVprocSs *InstancePtr, XVidC_ColorRange NewVal)
 This function sets picture color range for output. More...
 
int XVprocSs_SetPictureDemoWindow (XVprocSs *InstancePtr, XVidC_VideoWindow *Win)
 This function sets picture Demo Window. More...
 
void XVprocSs_SetPIPBackgroundColor (XVprocSs *InstancePtr, XLboxColorId ColorId)
 This function sets PIP background color. More...
 
void XVprocSs_LoadScalerCoeff (XVprocSs *InstancePtr, u32 CoreId, u16 num_phases, u16 num_taps, const short *Coeff)
 This function enables user to load external filter coefficients for Scaler cores, independently for H & V. More...
 
void XVprocSs_LoadChromaResamplerCoeff (XVprocSs *InstancePtr, u32 CoreId, u16 num_taps, const short *Coeff)
 This function enables user to load external filter coefficients for Chroma Resampler cores, independently for H & V. More...
 
void XVprocSs_ReportSubsystemConfig (XVprocSs *InstancePtr)
 This function reports the subsystem HW and input/output stream configuration. More...
 
void XVprocSs_ReportSubsystemCoreInfo (XVprocSs *InstancePtr)
 This function reports Video Processing Subsystem HW configuration. More...
 
void XVprocSs_ReportSubcoreStatus (XVprocSs *InstancePtr, u32 SubcoreId)
 This function reports the status of specified sub-core. More...
 
void XVprocSs_LogReset (XVprocSs *InstancePtr)
 This function will reset the driver's logging mechanism. More...
 
u16 XVprocSs_LogRead (XVprocSs *InstancePtr)
 This function will read the last event from the log. More...
 
void XVprocSs_LogDisplay (XVprocSs *InstancePtr)
 This function will read and print the entire event log. More...
 
void XVprocSs_LogWrite (XVprocSs *InstancePtr, XVprocSs_LogEvent Evt, u8 Data)
 This function will insert an event in the driver's logging mechanism. More...
 

Macro Definition Documentation

#define XVprocSs_GetColorDepth (   XVprocSsPtr)    ((XVprocSsPtr)->Config.ColorDepth)

This macro returns the subsystem Color Depth.

Parameters
XVprocSsPtris a pointer to the Video Processing subsystem instance
Returns
Color Depth

Referenced by XVprocSs_SetupRouterDataFlow().

#define XVprocSs_GetPipZoomWinHStepSize (   XVprocSsPtr)    ((XVprocSsPtr)->CtxtData.PixelHStepSize)

This macro returns the Pip/Zoom window horizontal increment size.

Parameters
XVprocSsPtris a pointer to the Video Processing subsystem instance
Returns
Pixel H Step size

Referenced by XVprocSs_ReportSubsystemConfig().

#define XVprocSs_GetSubsystemTopology (   XVprocSsPtr)    ((XVprocSsPtr)->Config.Topology)

This macro returns the subsystem topology.

Parameters
XVprocSsPtris a pointer to the Video Processing subsystem instance
Returns
XVPROCSS_TOPOLOGY_FULL_FLEDGED or XVPROCSS_TOPOLOGY_SCALER_ONLY

Referenced by XVprocSs_CfgInitialize(), XVprocSs_ReportSubsystemCoreInfo(), and XVprocSs_SetSubsystemConfig().

#define XVPROCSS_H

< prevent circular inclusions by using protection macros

#define XVprocSs_IsConfigModeCscOnly (   XVprocSsPtr)    ((XVprocSsPtr)->Config.Topology == XVPROCSS_TOPOLOGY_CSC_ONLY)

This macro checks if subsystem configuration is in CSC Only Mode.

Parameters
XVprocSsPtris pointer to the Video Processing subsystem instance
Returns
Returns 1 if condition is TRUE or 0 if FALSE
#define XVprocSs_IsConfigModeDeinterlaceOnly (   XVprocSsPtr)    ((XVprocSsPtr)->Config.Topology == XVPROCSS_TOPOLOGY_DEINTERLACE_ONLY)

This macro checks if subsystem configuration is in Deinterlace Only Mode.

Parameters
XVprocSsPtris pointer to the Video Processing subsystem instance
Returns
Returns 1 if condition is TRUE or 0 if FALSE
#define XVprocSs_IsConfigModeHCResampleOnly (   XVprocSsPtr)    ((XVprocSsPtr)->Config.Topology == XVPROCSS_TOPOLOGY_HCRESAMPLE_ONLY)

This macro checks if subsystem configuration is in H Chroma Resample Mode.

Parameters
XVprocSsPtris pointer to the Video Processing subsystem instance
Returns
Returns 1 if condition is TRUE or 0 if FALSE
#define XVprocSs_IsConfigModeMax (   XVprocSsPtr)    ((XVprocSsPtr)->Config.Topology == XVPROCSS_TOPOLOGY_FULL_FLEDGED)

This macro checks if subsystem is in Maximum (Full_Fledged) configuration.

Parameters
XVprocSsPtris a pointer to the Video Processing subsystem instance
Returns
Return 1 if condition is TRUE or 0 if FALSE

Referenced by XVprocSs_GetZoomPipWindow(), XVprocSs_ReportSubsystemConfig(), XVprocSs_SetPipMode(), XVprocSs_SetZoomMode(), XVprocSs_SetZoomPipWindow(), and XVprocSs_UpdateZoomPipWindow().

#define XVprocSs_IsConfigModeSscalerOnly (   XVprocSsPtr)    ((XVprocSsPtr)->Config.Topology == XVPROCSS_TOPOLOGY_SCALER_ONLY)

This macro checks if subsystem configuration is in Scaler Only Mode.

Parameters
XVprocSsPtris pointer to the Video Processing subsystem instance
Returns
Returns 1 if condition is TRUE or 0 if FALSE
#define XVprocSs_IsConfigModeVCResampleOnly (   XVprocSsPtr)    ((XVprocSsPtr)->Config.Topology == XVPROCSS_TOPOLOGY_VCRESAMPLE_ONLY)

This macro checks if subsystem configuration is in V Chroma ResampleMode.

Parameters
XVprocSsPtris pointer to the Video Processing subsystem instance
Returns
Returns 1 if condition is TRUE or 0 if FALSE
#define XVprocSs_IsPipModeOn (   XVprocSsPtr)    ((XVprocSsPtr)->CtxtData.PipEn)

This macro returns the current state of PIP Mode stored in subsystem internal scratch pad memory.

Parameters
XVprocSsPtris a pointer to the Video Processing subsystem instance
Returns
Returns 1 if PIP mode is ON or 0 if OFF

Referenced by XVprocSs_ReportSubsystemConfig(), XVprocSs_SetupRouterDataFlow(), XVprocSs_UpdateZoomPipWindow(), and XVprocSs_VdmaSetWinToDnScaleMode().

#define XVprocSs_IsZoomModeOn (   XVprocSsPtr)    ((XVprocSsPtr)->CtxtData.ZoomEn)

This macro returns the current state of Zoom Mode stored in subsystem internal scratch pad memory.

Parameters
XVprocSsPtris a pointer to the Video Processing subsystem instance
Returns
Returns 1 if ZOOM mode is ON or 0 if OFF

Referenced by XVprocSs_ReportSubsystemConfig(), XVprocSs_SetupRouterDataFlow(), and XVprocSs_VdmaSetWinToUpScaleMode().

#define XVprocSs_ResetPipModeFlag (   XVprocSsPtr)    ((XVprocSsPtr)->CtxtData.PipEn = FALSE)

This macro clears the PIP mode flag stored in subsystem internal scratch pad memory.

This call has no side-effect

Parameters
XVprocSsPtris a pointer to the Video Processing subsystem instance
Returns
None
#define XVprocSs_ResetZoomModeFlag (   XVprocSsPtr)    ((XVprocSsPtr)->CtxtData.ZoomEn = FALSE)

This macro clears the ZOOM mode flag stored in subsystem internal scratch pad memory.

This call has no side-effect

Parameters
XVprocSsPtris pointer to the Video Processing subsystem instance
Returns
None
#define XVprocSs_SetStreamColorDepth (   Stream,
  ColorDepth 
)    ((Stream)->ColorDepth = ColorDepth)

This macro sets the specified stream's color depth.

It can be used to update input or output stream. This call has no side-effect in isolation For change to take effect user must trigger processing path reconfiguration by calling XVprocSs_ConfigureSubsystem()

Parameters
Streamis a pointer to the Subsystem Input or Output Stream
ColorDepthis the requested color depth
Returns
None
#define XVprocSs_SetStreamColorFormat (   Stream,
  ColorFormat 
)    ((Stream)->ColorFormatId = ColorFormat)

This macro sets the specified stream's color format.

It can be used to update input or output stream. This call has no side-effect in isolation. For change to take effect user must trigger processing path reconfiguration by calling XVprocSs_ConfigureSubsystem()

Parameters
Streamis a pointer to the Subsystem Input or Output Stream
ColorFormatis the requested color format
Returns
None

Enumeration Type Documentation

This typedef enumerates supported Color Channels.

This typedef enumerates supported subsystem configuration topology.

This typedef enumerates supported scaling modes.

Subsystem sub-core layer 2 header files Layer 2 includes Layer-1.

This typedef enumerates the AXIS Switch Port for Sub-Core connection

This typedef enumerates types of Windows (Sub-frames) available in the Subsystem.

Function Documentation

int XVprocSs_CfgInitialize ( XVprocSs InstancePtr,
XVprocSs_Config CfgPtr,
UINTPTR  EffectiveAddr 
)

This function initializes the video subsystem and included sub-cores.

This function must be called prior to using the subsystem. Initialization includes setting up the instance data for top level as well as all included sub-core therein, and ensuring the hardware is in a known stable state.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
CfgPtrpoints to the configuration structure associated with the subsystem instance.
EffectiveAddris the base address of the device. If address translation is being used, then this parameter must reflect the virtual base address. Otherwise, the physical address should be used.
Returns
XST_SUCCESS if initialization is successful else XST_FAILURE

References XVprocSs_Config::BaseAddress, XVprocSs_Config::ColorDepth, XVprocSs::Config, XVprocSs::CscPtr, XVprocSs::CtxtData, XVprocSs_ContextData::DeintBufAddr, XVprocSs::DeintPtr, XVprocSs::FrameBufBaseaddr, XVprocSs_Config::HasMADI, XVprocSs::HcrsmplrPtr, XVprocSs::HscalerPtr, XVprocSs::IsReady, XVprocSs::LboxPtr, XVprocSs_Config::MaxHeight, XVprocSs_Config::MaxWidth, XVprocSs_Config::NumVidComponents, XVprocSs::RouterPtr, XVprocSs::RstAximmPtr, XVprocSs::RstAxisPtr, XVprocSs::VcrsmplrInPtr, XVprocSs::VcrsmplrOutPtr, XVprocSs::VdmaPtr, XVprocSs::VscalerPtr, XVPROCSS_EVT_CHK_BASEADDR, XVPROCSS_EVT_CHK_TOPO, XVPROCSS_EVT_INIT, XVprocSs_GetSubsystemTopology, XVprocSs_LogWrite(), XVprocSs_Reset(), XVprocSs_SubcoreInitCsc(), XVprocSs_SubcoreInitDeinterlacer(), XVprocSs_SubcoreInitHCrsmplr(), XVprocSs_SubcoreInitHScaler(), XVprocSs_SubcoreInitLetterbox(), XVprocSs_SubcoreInitResetAximm(), XVprocSs_SubcoreInitResetAxis(), XVprocSs_SubcoreInitRouter(), XVprocSs_SubcoreInitVCrsmpleIn(), XVprocSs_SubcoreInitVCrsmpleOut(), XVprocSs_SubcoreInitVdma(), and XVprocSs_SubcoreInitVScaler().

Referenced by XSys_Init().

s32 XVprocSs_GetPictureBrightness ( XVprocSs InstancePtr)

This function returns picture brighntess setting.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
Returns
current value (0-100), if csc subcore is included

References XVprocSs::CscPtr.

XVidC_ColorRange XVprocSs_GetPictureColorRange ( XVprocSs InstancePtr)

This function returns picture color range for output.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
Returns
Current set output range, if csc core is included
  • XVIDC_CR_16_235
  • XVIDC_CR_16_240
  • XVIDC_CR_0_255 Else XVIDC_CR_UNKNOWN_RANGE

References XVprocSs::CscPtr.

XVidC_ColorStd XVprocSs_GetPictureColorStdIn ( XVprocSs InstancePtr)

This function returns picture color standard setting for input.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
Returns
Current set color standard, if csc core is included
  • XVIDC_BT_2020
  • XVIDC_BT_709
  • XVIDC_BT_601 Else XVIDC_BT_UNKNOWN

References XVprocSs::CscPtr.

XVidC_ColorStd XVprocSs_GetPictureColorStdOut ( XVprocSs InstancePtr)

This function returns picture color standard setting for output.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
Returns
Current set color standard, if csc core is included
  • XVIDC_BT_2020
  • XVIDC_BT_709
  • XVIDC_BT_601 Else XVIDC_BT_UNKNOWN

References XVprocSs::CscPtr.

s32 XVprocSs_GetPictureContrast ( XVprocSs InstancePtr)

This function returns picture contrast setting.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
Returns
current value (0-100), if csc subcore is included

References XVprocSs::CscPtr.

s32 XVprocSs_GetPictureGain ( XVprocSs InstancePtr,
XVprocSs_ColorChannel  ChId 
)

This function returns picture gain setting for the specified color channel.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
ChIdis the color channel id for which gain is requested
Returns
current value (0-100), if csc subcore is included

References XVprocSs::CscPtr.

s32 XVprocSs_GetPictureSaturation ( XVprocSs InstancePtr)

This function returns picture saturation setting.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
Returns
current value (0-100), if csc subcore is included

References XVprocSs::CscPtr.

void XVprocSs_GetZoomPipWindow ( XVprocSs InstancePtr,
XVprocSs_Win  mode,
XVidC_VideoWindow *  win 
)

This function reads the user defined Zoom/Pip window from scratch pad memory.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
modeis feature (PIP or ZOOM) whose window coordinates are to be retrieved
winis structure that will contain read window coordinates and size
Note
For Zoom mode RD client window is read from scratch pad memory For Pip mode WR client window is read from scratch pad memory This function is not applicable in Subsystem Stream Mode Configuration

References XVprocSs::CtxtData, XVprocSs_ContextData::RdWindow, XVprocSs_ContextData::WrWindow, XVPROCSS_EDAT_SUCCESS, XVPROCSS_EVT_GET_ZPWIN, XVprocSs_IsConfigModeMax, and XVprocSs_LogWrite().

Referenced by XVprocSs_ReportSubsystemConfig(), XVprocSs_VdmaSetWinToDnScaleMode(), and XVprocSs_VdmaSetWinToUpScaleMode().

void XVprocSs_LoadChromaResamplerCoeff ( XVprocSs InstancePtr,
u32  CoreId,
u16  num_taps,
const short *  Coeff 
)

This function enables user to load external filter coefficients for Chroma Resampler cores, independently for H & V.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
CoreIdis the resampler core to be worked on
  • XVPROCSS_SUBCORE_CR_H
  • XVPROCSS_SUBCORE_CR_V_IN
  • XVPROCSS_SUBCORE_CR_V_OUT
num_tapsis the taps of the resampler hw instance
Coeffis the pointer to the filter table to be loaded
Returns
None
Note
Applicable only if Resampler cores are included in the subsystem

References XVprocSs::HcrsmplrPtr, XVprocSs::VcrsmplrInPtr, XVprocSs::VcrsmplrOutPtr, XVPROCSS_EVT_CFG_HCR, XVPROCSS_EVT_CFG_VCRI, XVPROCSS_EVT_CFG_VCRO, and XVprocSs_LogWrite().

void XVprocSs_LoadScalerCoeff ( XVprocSs InstancePtr,
u32  CoreId,
u16  num_phases,
u16  num_taps,
const short *  Coeff 
)

This function enables user to load external filter coefficients for Scaler cores, independently for H & V.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
CoreIdis the Scaler core to be worked on
  • XVPROCSS_SUBCORE_SCALER_V
  • XVPROCSS_SUBCORE_SCALER_H
num_phasesis the number of phases supported by Scaler
num_tapsis the effective taps to be used by Scaler
Coeffis the pointer to the filter table to be loaded
Returns
None
Note
Applicable only if Scaler cores are included in the subsystem

References XVprocSs::HscalerPtr, XVprocSs::VscalerPtr, XVPROCSS_EVT_CFG_HSCALER, XVPROCSS_EVT_CFG_VSCALER, and XVprocSs_LogWrite().

u16 XVprocSs_LogRead ( XVprocSs InstancePtr)

This function will read the last event from the log.

Parameters
InstancePtris a pointer to the XVprocSs core instance.
Returns
The log data.
Note
The read is "destructive" in the sense an event may only be read once, the read pointer then advancing to the next entry. After reading all the events (see routine XVprocSs_LogDisplay), the log will be empty.

References XVprocSs::Log, XVPROCSS_EVT_BUFFSIZE, and XVPROCSS_EVT_NONE.

Referenced by XVprocSs_LogDisplay().

void XVprocSs_LogReset ( XVprocSs InstancePtr)

This function will reset the driver's logging mechanism.

Parameters
InstancePtris a pointer to the XVprocSs core instance.
Returns
None.
Note
HeadIndex == TailIndex means that the log is empty.

References XVprocSs::Log.

Referenced by XSys_Init().

void XVprocSs_ReportSubcoreStatus ( XVprocSs InstancePtr,
u32  SubcoreId 
)

This function reports the status of specified sub-core.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
SubcoreIdis the subcore index from the below list
  • XVPROCSS_SUBCORE_SCALER_V
  • XVPROCSS_SUBCORE_SCALER_H
  • XVPROCSS_SUBCORE_VDMA
  • XVPROCSS_SUBCORE_LBOX
  • XVPROCSS_SUBCORE_CR_H
  • XVPROCSS_SUBCORE_CR_V_IN
  • XVPROCSS_SUBCORE_CR_V_OUT
  • XVPROCSS_SUBCORE_CSC
  • XVPROCSS_SUBCORE_DEINT
Returns
None

References XVprocSs::CscPtr, XVprocSs::CtxtData, XVprocSs::DeintPtr, XVprocSs::HcrsmplrPtr, XVprocSs::HscalerPtr, XVprocSs::LboxPtr, XVprocSs_ContextData::PixelWidthInBits, XVprocSs::VcrsmplrInPtr, XVprocSs::VcrsmplrOutPtr, XVprocSs::VscalerPtr, and XVprocSs_VdmaDbgReportStatus().

void XVprocSs_ReportSubsystemConfig ( XVprocSs InstancePtr)

This function reports the subsystem HW and input/output stream configuration.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
Returns
None

References XVprocSs::CtxtData, XVprocSs_ContextData::RtngTable, XVprocSs::VidIn, XVprocSs::VidOut, XVprocSs_GetPipZoomWinHStepSize, XVprocSs_GetZoomPipWindow(), XVprocSs_IsConfigModeMax, XVprocSs_IsPipModeOn, and XVprocSs_IsZoomModeOn.

void XVprocSs_Reset ( XVprocSs InstancePtr)

This function resets the video subsystem sub-cores.

There are 2 reset networks within the subsystem

  • For cores that are on AXIS interface
  • For cores that are on AXI-MM interface
Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
Returns
None

XVprocSs_Reset,_Start controls vpss resets as shown axis_int -—_______________________-----------------------------— axis_ext -—________________________________________________----— aximm --------—_______--------------------------------------— | 100us| 100us| 1000us | 1000us | | _Reset...............................| | Program VSPP IP| _Start

References XVprocSs::CtxtData, XVprocSs::RstAximmPtr, XVprocSs::RstAxisPtr, XVprocSs_ContextData::StartCore, XVPROCSS_EDAT_SUCCESS, XVPROCSS_EVT_RESET_VPSS, XVprocSs_LogWrite(), XVPROCSS_RSTMASK_IP_AXIMM, XVPROCSS_RSTMASK_IP_AXIS, and XVprocSs_VdmaReset().

Referenced by XVprocSs_CfgInitialize().

void XVprocSs_SetFrameBufBaseaddr ( XVprocSs InstancePtr,
UINTPTR  addr 
)

This function sets the base address of the video frame buffers used by the subsystem instance.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
addris the base address of the video frame buffers
Returns
None

References XVprocSs::FrameBufBaseaddr.

Referenced by XSys_Init().

void XVprocSs_SetPictureBrightness ( XVprocSs InstancePtr,
s32  NewValue 
)

This function updates picture brighntess setting with specified value.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
NewValueis the new value to be written
  • Range: 0-100
Returns
None
Note
Applicable only if CSC core is included in the subsystem

References XVprocSs::CscPtr.

void XVprocSs_SetPictureColorRange ( XVprocSs InstancePtr,
XVidC_ColorRange  NewVal 
)

This function sets picture color range for output.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
NewValis the required color range
  • XVIDC_CR_16_235
  • XVIDC_CR_16_240
  • XVIDC_CR_0_255
Returns
None
Note
Applicable only if CSC core is included in the subsystem

References XVprocSs::CscPtr.

void XVprocSs_SetPictureColorStdIn ( XVprocSs InstancePtr,
XVidC_ColorStd  NewVal 
)

This function sets picture color standard setting for input.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
NewValis the required color standard
  • XVIDC_BT_2020
  • XVIDC_BT_709
  • XVIDC_BT_601
Returns
None
Note
Applicable only if CSC core is included in the subsystem

References XVprocSs::CscPtr.

void XVprocSs_SetPictureColorStdOut ( XVprocSs InstancePtr,
XVidC_ColorStd  NewVal 
)

This function sets picture color standard setting for output.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
NewValis the required color standard
  • XVIDC_BT_2020
  • XVIDC_BT_709
  • XVIDC_BT_601
Returns
None
Note
Applicable only if CSC core is included in the subsystem

References XVprocSs::CscPtr.

void XVprocSs_SetPictureContrast ( XVprocSs InstancePtr,
s32  NewValue 
)

This function updates picture contrast setting with specified value.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
NewValueis the new value to be written
  • Range: 0-100
Returns
None
Note
Applicable only if CSC core is included in the subsystem

References XVprocSs::CscPtr.

int XVprocSs_SetPictureDemoWindow ( XVprocSs InstancePtr,
XVidC_VideoWindow *  Win 
)

This function sets picture Demo Window.

Post this function call all further picture settings will apply only within the defined window. Demo window gets reset every time subsystem configuration changes

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
Winis the pointer to window coordinates within which picture settings should be applied
Returns
XST_SUCCESS if window is valid else XST_FAILURE
Note
Applicable only if CSC core is included in the subsystem and the Demo Window is enabled

References XVprocSs::CscPtr, XVPROCSS_EVT_CFG_CSC, and XVprocSs_LogWrite().

void XVprocSs_SetPictureGain ( XVprocSs InstancePtr,
XVprocSs_ColorChannel  ChId,
s32  NewValue 
)

This function updates picture gain setting with specified value.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
ChIdis the color channel id for which gain is to be updated
NewValueis the new value to be written
  • Range: 0-100
Returns
none
Note
Applicable only if CSC core is included in the subsystem

References XVprocSs::CscPtr.

void XVprocSs_SetPictureSaturation ( XVprocSs InstancePtr,
s32  NewValue 
)

This function updates picture saturation setting with specified value.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
NewValueis the new value to be written
  • Range: 0-100
Returns
None
Note
Applicable only if CSC core is included in the subsystem

References XVprocSs::CscPtr.

void XVprocSs_SetPIPBackgroundColor ( XVprocSs InstancePtr,
XLboxColorId  ColorId 
)

This function sets PIP background color.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
ColorIdis the requested background color
  • XLBOX_BKGND_BLACK
  • XLBOX_BKGND_WHITE
  • XLBOX_BKGND_RED
  • XLBOX_BKGND_GREEN
  • XLBOX_BKGND_BLUE
Returns
None
Note
Applicable only if Letterbox core is included in the subsystem

References XVprocSs::CtxtData, XVprocSs_ContextData::LboxBkgndColor, XVprocSs::LboxPtr, XVprocSs_ContextData::StrmCformat, XVprocSs::VidIn, XVPROCSS_EVT_SET_PIPMODE, and XVprocSs_LogWrite().

void XVprocSs_SetPipMode ( XVprocSs InstancePtr,
u8  OnOff 
)

This function configures the video subsystem to enable/disable PIP feature If PIP mode is set to ON but user has not set window coordinates then half of input stream resolution at coordinates 0,0 is set as the default zoom window.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
OnOffis the action required
Returns
None
Note
User must call XVprocSs_ConfigureSubsystem() for change to take effect This call has not been added here such that it provides an opportunity to make the change during vertical blanking at system level. This behavior will change once shadow register support is available in sub-core IP's This function is not applicable in Subsystem Stream Mode Configuration

References XVprocSs::CtxtData, XVprocSs_ContextData::PipEn, XVPROCSS_EVT_SET_PIPMODE, XVprocSs_IsConfigModeMax, XVprocSs_LogWrite(), and XVprocSs_ContextData::ZoomEn.

int XVprocSs_SetStreamResolution ( XVidC_VideoStream *  StreamPtr,
const XVidC_VideoMode  VmId,
XVidC_VideoTiming const *  Timing 
)

This function sets the required subsystem video stream to the user provided stream and timing parameters.

Parameters
StreamPtris a pointer to the subsystem video stream to be configured
VmIdis the Video Mode ID of the new resolution to be set
Timingis the timing parameters of the new resolution to be set
Returns
XST_SUCCESS if successful else XST_FAILURE
int XVprocSs_SetSubsystemConfig ( XVprocSs InstancePtr)

This function is the entry point into the video processing subsystem driver processing path.

It will examine the instantiated subsystem configuration mode and the input and output stream configuration. Based on the available information control flow is determined and requisite sub-cores are configured to implement the supported use case

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
Returns
XST_SUCCESS if successful else XST_FAILURE

References XVPROCSS_EVT_CHK_TOPO, XVprocSs_GetSubsystemTopology, and XVprocSs_LogWrite().

void XVprocSs_SetUserTimerHandler ( XVprocSs InstancePtr,
XVidC_DelayHandler  CallbackFunc,
void *  CallbackRef 
)

This function registers the user defined delay/sleep function with subsystem.

Parameters
InstancePtris a pointer to the Subsystem instance
CallbackFuncis the function pointer to the user defined delay function
CallbackRefis the pointer to timer instance used by the delay function
Returns
None

References XVprocSs::UsrDelayUs, and XVprocSs::UsrTmrPtr.

int XVprocSs_SetVidStreamIn ( XVprocSs InstancePtr,
const XVidC_VideoStream *  StrmIn 
)

This function configures the video subsystem input interface.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
StrmInis the pointer to input stream configuration
Returns
XST_SUCCESS

References XVprocSs::VidIn.

Referenced by XSys_SetStreamParam().

int XVprocSs_SetVidStreamOut ( XVprocSs InstancePtr,
const XVidC_VideoStream *  StrmOut 
)

This function configures the video subsystem output interface.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
StrmOutis the pointer to input stream configuration
Returns
XST_SUCCESS

References XVprocSs::VidOut.

Referenced by XSys_SetStreamParam().

void XVprocSs_SetZoomMode ( XVprocSs InstancePtr,
u8  OnOff 
)

This function configures the video subsystem to enable/disable ZOOM feature If ZOOM mode is set to ON but user has not set window coordinates then quarter of input stream resolution at coordinates 0,0 is set as the default zoom window.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
OnOffis the action required
Returns
None
Note
User must call XVprocSs_ConfigureSubsystem() for change to take effect This call has not been added here such that it provides an opportunity to make the change during vertical blanking at system level. This behavior will change once shadow register support is available in sub-core IP's This function is not applicable in Subsystem Stream Mode Configuration

References XVprocSs::CtxtData, XVprocSs_ContextData::PipEn, XVPROCSS_EVT_SET_ZOOMMODE, XVprocSs_IsConfigModeMax, XVprocSs_LogWrite(), and XVprocSs_ContextData::ZoomEn.

void XVprocSs_SetZoomPipWindow ( XVprocSs InstancePtr,
XVprocSs_Win  mode,
XVidC_VideoWindow *  win 
)

This function allows user to set the Zoom or PIP window.

Scratch pad memory is updated with the new window information

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
modeis feature to be updated PIP or ZOOM
winis structure that contains window coordinates and size
Returns
None
Note
For Zoom mode RD client window is written in scratch pad memory For Pip mode WR client window is written in scratch pad memory This function is not applicable in Subsystem Stream Mode Configuration

References XVprocSs::Config, XVprocSs::CtxtData, XVprocSs_ContextData::PixelHStepSize, XVprocSs_Config::PixPerClock, XVprocSs_ContextData::RdWindow, XVprocSs::VdmaPtr, XVprocSs_ContextData::WrWindow, XVPROCSS_EDAT_SUCCESS, XVPROCSS_EVT_SET_PIPWIN, XVPROCSS_EVT_SET_ZOOMWIN, XVprocSs_IsConfigModeMax, and XVprocSs_LogWrite().

void XVprocSs_Start ( XVprocSs InstancePtr)

This function starts the video subsystem including all sub-cores that are included in the processing pipeline for a given use-case.

Video pipe is started from back to front

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
Returns
None
Note
Cores are started only if the corresponding start flag in the scratch pad memory is set. This allows to selectively start only those cores included in the processing chain

References XVprocSs::CscPtr, XVprocSs::CtxtData, XVprocSs::DeintPtr, XVprocSs::HcrsmplrPtr, XVprocSs::HscalerPtr, XVprocSs::LboxPtr, XVprocSs::RstAxisPtr, XVprocSs_ContextData::StartCore, XVprocSs::VcrsmplrInPtr, XVprocSs::VcrsmplrOutPtr, XVprocSs::VscalerPtr, XVPROCSS_EDAT_SUCCESS, XVPROCSS_EVT_START_VPSS, XVprocSs_LogWrite(), XVPROCSS_RSTMASK_VIDEO_IN, and XVprocSs_VdmaStartTransfer().

Referenced by XVprocSs_SetupRouterDataFlow().

void XVprocSs_Stop ( XVprocSs InstancePtr)

This function stops the video subsystem including all sub-cores Stop the video pipe starting from front to back.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
Returns
None

References XVprocSs::CscPtr, XVprocSs::DeintPtr, XVprocSs::HcrsmplrPtr, XVprocSs::HscalerPtr, XVprocSs::LboxPtr, XVprocSs::VcrsmplrInPtr, XVprocSs::VcrsmplrOutPtr, XVprocSs::VdmaPtr, XVprocSs::VscalerPtr, XVPROCSS_EDAT_SUCCESS, XVPROCSS_EVT_STOP_VPSS, XVprocSs_LogWrite(), and XVprocSs_VdmaStop().

void XVprocSs_UpdateZoomPipWindow ( XVprocSs InstancePtr)

This function updates the Pip/Zoom window currently on screen in-place.

This implies the video is not blanked and the new coordinates will update instantly as the function executes

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
Returns
None
Note
This function must be called only after the respective mode (PIP/Zoom) has been enabled and user wants to move window to a new location This function is not applicable in Subsystem Stream Mode Configuration

References XVprocSs::CtxtData, XVprocSs::LboxPtr, XVprocSs::VidOut, XVprocSs_ContextData::WrWindow, XVPROCSS_EDAT_SUCCESS, XVPROCSS_EVT_UPDATE_ZPWIN, XVprocSs_IsConfigModeMax, XVprocSs_IsPipModeOn, XVprocSs_LogWrite(), XVprocSs_VdmaSetWinToDnScaleMode(), XVprocSs_VdmaSetWinToUpScaleMode(), and XVprocSs_VdmaStartTransfer().