/*************************************************************************** * Copyright (c) 2003-2008, Broadcom Corporation * All Rights Reserved * Confidential Property of Broadcom Corporation * * THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED SOFTWARE LICENSE * AGREEMENT BETWEEN THE USER AND BROADCOM. YOU HAVE NO RIGHT TO USE OR * EXPLOIT THIS MATERIAL EXCEPT SUBJECT TO THE TERMS OF SUCH AN AGREEMENT. * * $brcm_Workfile: bvdb.h $ * $brcm_Revision: Hydra_Software_Devel/9 $ * $brcm_Date: 11/19/08 6:05p $ * * Module Description: * The VDB (Video Usage Modes Database) is a database of all possible video * usage modes for a given chipset. This was created to support VDC's * new source pending feature that allows applications to configure the * BVN according to their requirements. * * Sample use: * * BVDB_Handle *hVdb; * uint32_t ulEntries; * BVDB_UsageMode stUsageMode; * const BVDB_RtsTable *pstRtsTbl = NULL; * // Create VDB * BVDB_CreateVdb(&hVdb, &ulEntries); * * // Get a usage mode given the following parameters * strcpy(stUsageMode.acId, "1"); configuration 1 * stUsageMode.eSrcFmtSet = BVDB_SrcFmtSet_eNTSC; * stUsageMode.eDisplay = BVDB_Display_ePrimary60; * stUsageMode.eWindow = BVDB_Window_eMain; * stUsageMode.eIput = BVDB_Input_eComponent; * stUsageMode.eOsd = BVDB_Osd_e1080p_32bpp * stUsageMode.stDisplayMode = 0x3f; "all_FULL_modes" * * err = BVDB_GetVdbEntry(hVdb, &stUsageMode); * if (err != BERR_SUCCESS) * { * BDBG_ERR(("Usage mode with given paramters not found")); * } * * // Get the RTS table associated with the obtained usage mode * pstRtsTbl = BVDB_GetRtsTable(hVdb, stUsageMode.eRtsSet); * * * // Destroy VDB * BVDB_DestroyVdb(hVdb); * * * * Revision History: * * $brcm_Log: /magnum/commonutils/vdb/3548/A0/bvdb.h $ * * Hydra_Software_Devel/9 11/19/08 6:05p jessem * PR49427, PR49428, PR49429, PR49431, PR49432, PR49433, PR49434, PR49435, * PR49436, PR49437, PR49438, PR49440: Fixed strcpy and strcat Coverity * issues. * * Hydra_Software_Devel/8 9/24/08 1:57p jessem * PR 47302: Removed PIG modes 3, 4, 5, and 6. * * Hydra_Software_Devel/7 9/3/08 5:48p jessem * PR 45196, PR 43098, PR 43946: * 1. Added XGA support. * 2. Reorganized 1400x1050@75 and 1600x1200@60 groups to 1024_768_PC, * 1280_768_PC, 1400_1050_PC, and 1600_1200_PC format groups to meet new * tolerance/bias requirements. * 3. Added 1024x76 OSD. * 4. Updated ANR blockout values in RTS tables. * 5. Updated RTS for SD source displayed as PIG for config 1. * * Hydra_Software_Devel/6 8/19/08 11:12a jessem * PR 43098: Added new PC formats to comply with new tolerance and bias * requirements fro config 4. * * Hydra_Software_Devel/5 8/4/08 11:46a jessem * PR 45385: Increased RTS table size to 100. Added RTS 0 (baseline RTS * settings). * * Hydra_Software_Devel/4 8/1/08 9:55a jessem * PR 43946, PR 44528, PR 44303: * 1. Modified existing RTS tables and renamed using numbers instead of * letters. * 2. Added 3 RTS tables - 16, 17, 18 * 3. Modified configs 1 and 4 to reflect new RTS tables and naming * convention. * * Hydra_Software_Devel/3 7/18/08 4:56p jessem * PR 44254:1. Added VGA inputs to NTSC, PAL, 480p, 576p, 720p @ 50, * and 720p @ 60. * 2. Added PIP_0 video display mode. * * Hydra_Software_Devel/2 7/14/08 3:22p jessem * PR 43759: Updated API and implementation * * Hydra_Software_Devel/2 6/18/08 3:46p jessem * PR 39237: Added example to BVDB_GetVdbEntry and BVDB_AddVdbEntry. * * Hydra_Software_Devel/1 6/18/08 12:36p jessem * PR 43759: Initial version. * ***************************************************************************/ #ifndef __BVDB_H__ #define __BVDB_H__ #include "bstd.h" #include "berr.h" #include "bvdb_viddispmode_priv.h" #include "blst_circleq.h" #ifdef __cplusplus extern "C" { #endif /************************* Module Overview ******************************** The Video Usage Modes Database (VDB) intends to capture all the BVN and RTS information found in the usage modes spreadsheet and put these in a form that can be used readily by an application. ***************************************************************************/ #define BVDB_DISP_MODE_IS_PIG(pMode) ((*((uint32_t*)(void*)(pMode))) & BVDB_P_DISPLAY_MODE_ALL_PIG_MODES_MASK) #define BVDB_DISP_MODE_IS_FULL(pMode) ((*((uint32_t*)(void*)(pMode))) & BVDB_P_DISPLAY_MODE_ALL_FULL_MODES_MASK) #define BVDB_DISP_MODE_IS_PIP(pMode) ((*((uint32_t*)(void*)(pMode))) & BVDB_P_DISPLAY_MODE_ALL_PIP_MODES_MASK) #define BVDB_DISP_MODE_IS_VCR(pMode) ((*((uint32_t*)(void*)(pMode))) & BVDB_P_DISPLAY_MODE_ALL_VCR_MODES_MASK) #define BVDB_DISP_MODE_IS_ALL_PIG(pMode) (((*((uint32_t*)(void*)(pMode))) & BVDB_P_DISPLAY_MODE_ALL_PIG_MODES_MASK) == BVDB_P_DISPLAY_MODE_ALL_PIG_MODES_MASK) #define BVDB_DISP_MODE_IS_ALL_FULL(pMode) (((*((uint32_t*)(void*)(pMode))) & BVDB_P_DISPLAY_MODE_ALL_FULL_MODES_MASK) == BVDB_P_DISPLAY_MODE_ALL_FULL_MODES_MASK) #define BVDB_DISP_MODE_IS_ALL_PIP(pMode) (((*((uint32_t*)(void*)(pMode))) & BVDB_P_DISPLAY_MODE_ALL_PIP_MODES_MASK) == BVDB_P_DISPLAY_MODE_ALL_PIP_MODES_MASK) #define BVDB_DISP_MODE_IS_ALL_VCR(pMode) (((*((uint32_t*)(void*)(pMode))) & BVDB_P_DISPLAY_MODE_ALL_VCR_MODES_MASK) == BVDB_P_DISPLAY_MODE_ALL_VCR_MODES_MASK) #define BVDB_DISP_MODE_IS_PIP_1(pMode) ((*((uint32_t*)(void*)(pMode))) & BVDB_P_DISPLAY_MODE_PIP_1_MASK) #define BVDB_DISP_MODE_IS_PIP_2(pMode) ((*((uint32_t*)(void*)(pMode))) & BVDB_P_DISPLAY_MODE_PIP_2_MASK) #define BVDB_DISP_MODE_IS_PIP_3(pMode) ((*((uint32_t*)(void*)(pMode))) & BVDB_P_DISPLAY_MODE_PIP_3_MASK) #define BVDB_DISP_MODE_IS_VCR_1(pMode) ((*((uint32_t*)(void*)(pMode))) & BVDB_P_DISPLAY_MODE_VCR_1_MASK) #define BVDB_RTS_TABLE_SIZE 100 #define BVDB_SCL_CAP_TOLERANCE_FACTOR 10000 #define BVDB_MAX_STRLEN 40 /*************************************************************************** Summary: This enumeration represents the state of a particular BVN component. Description: BVDB_State_eNo - the BVN component is disabled. BVDB_State_eYes - the BVN component is enabled. BVDB_State_eNotApplicable - the BVN component is not applicable for the usage mode it is used with. See Also: BVDB_Anr, BVBD_CaptureFeeder, BVDB_Mad ****************************************************************************/ typedef enum { BVDB_State_eNo = 0, BVDB_State_eYes, BVDB_State_eNotApplicable } BVDB_State; /*************************************************************************** Summary: This enumerates the supported source format sets. Each entry represents several actual formats. Each usage mode entry must have this. Description: See Also: BVDB_UsageMode ****************************************************************************/ typedef enum { BVDB_SrcFmtSet_eNtsc = 1, BVDB_SrcFmtSet_ePal, BVDB_SrcFmtSet_e480p, BVDB_SrcFmtSet_e576p, BVDB_SrcFmtSet_e720p_50, BVDB_SrcFmtSet_e720p_60, BVDB_SrcFmtSet_e1080i_50, BVDB_SrcFmtSet_e1080i_60, BVDB_SrcFmtSet_e1080p_24, BVDB_SrcFmtSet_e1080p_25, BVDB_SrcFmtSet_e1080p_30, BVDB_SrcFmtSet_e1080p_50, BVDB_SrcFmtSet_e1080p_60, BVDB_SrcFmtSet_ePal_60, BVDB_SrcFmtSet_e720p_24, BVDB_SrcFmtSet_e720p_25, BVDB_SrcFmtSet_e720p_30, BVDB_SrcFmtSet_e544_576i_50 = 20, BVDB_SrcFmtSet_e1440_1080i_50, BVDB_SrcFmtSet_e1440_1080p_25, BVDB_SrcFmtSet_e544_480i_60, BVDB_SrcFmtSet_e1440_1080i_60, BVDB_SrcFmtSet_e1440_1080p_30, BVDB_SrcFmtSet_e1440_1080p_24, BVDB_SrcFmtSet_e1024_768_PC = 30, BVDB_SrcFmtSet_e1280_768_PC, BVDB_SrcFmtSet_e1400_1050_PC, BVDB_SrcFmtSet_e1600_1200_PC, BVDB_SrcFmtSet_eAdcCalibration = 40, BVDB_SrcFmtSet_eJpeg, BVDB_SrcFmtSet_eInvalid } BVDB_SourceFormatSet; /*************************************************************************** Summary: This enumerates the supported display types. Each usage mode entry must have this. Description: See Also: BVDB_UsageMode ****************************************************************************/ typedef enum { BVDB_Display_ePrimary48 = 0, BVDB_Display_ePrimary50, BVDB_Display_ePrimary60, BVDB_Display_eSecondary50, BVDB_Display_eSecondary60, BVDB_Display_eInvalid } BVDB_Display; /*************************************************************************** Summary: This enumerates the supported windows. Each usage mode entry must have this. Description: See Also: BVDB_UsageMode ****************************************************************************/ typedef enum { BVDB_Window_eMain = 0, BVDB_Window_ePip, BVDB_Window_eVcr, BVDB_Window_eInvalid } BVDB_Window; /*************************************************************************** Summary: This enumerates the supported intputs. Each usage mode entry must have this. Description: See Also: BVDB_UsageMode ****************************************************************************/ typedef enum { BVDB_Input_eCvbsSvidIfd = 0, BVDB_Input_eComponent, BVDB_Input_eHdDvi, BVDB_Input_eMfd, BVDB_Input_eVga, BVDB_Input_e656, BVDB_Input_eInvalid } BVDB_Input; /*************************************************************************** Summary: This enumerates the supported deinterlacer field store count. This is used with BVDB_Mad only. Description: See Also: BVDB_Mad, BVDB_UsageMode ****************************************************************************/ typedef enum { BVDB_FieldStore_e5Fields, BVDB_FieldStore_e4Fields, BVDB_FieldStore_e3Fields, BVDB_FieldStore_eNotApplicable } BVDB_DeinterlacerFieldStore; /*************************************************************************** Summary: This enumerates the SCL-CAP bias used for orienting the Scaler relative to the Capture block Description: BVDB_SclCapBias_eAuto - indicates the VDC will determine the orientation automatically given certain parameters BVDB_SclCapBias_eSclCap - indicates a SCL-CAP orientation bias BVDB_SclCapBias_eCapScl - indicates a CAP-SCL orientation bias See Also: BVDB_UsageMode ****************************************************************************/ typedef enum { BVDB_SclCapBias_eAuto = 0, BVDB_SclCapBias_eSclCap, BVDB_SclCapBias_eCapScl, BVDB_SclCapBias_eInvalid } BVDB_ScalerCaptureBias; /*************************************************************************** Summary: This indicates the supported video display modes for the specified usage mode. Description: Each bitfield represents a video display usage mode. If set, this indicates that this video display mode is allowed in the associated usage mode. Example: pstUsageMode->stDisplayMode = 0x3f; This means that all FULL modes are allowed in the associated usage mode. See Also: BVDB_UsageMode ****************************************************************************/ typedef struct { uint32_t ulFull1 : 1; uint32_t ulFull2 : 1; uint32_t ulFull3 : 1; uint32_t ulFull4 : 1; uint32_t ulFull5 : 1; uint32_t ulFull6 : 1; uint32_t ulPig1 : 1; uint32_t ulPig2 : 1; uint32_t ulPip1 : 1; uint32_t ulPip2 : 1; uint32_t ulPip3 : 1; uint32_t ulVcr1 : 1; uint32_t ulVcr2 : 1; uint32_t ulUnknown : 1; } BVDB_VideoDisplayMode; /*************************************************************************** Summary: This enumerates the maximum size of OSD that can be used for the specified usage mode. Description: The difference between BVDB_Osd_eNone and BVDB_Osd_eInvalid is that BVDB_Osd_None means OSD is possible with the usage mode but is disabled. See Also: BVDB_UsageMode ****************************************************************************/ typedef enum { BVDB_Osd_e1080p_32bpp = 0, BVDB_Osd_e1366_768p_32bpp, BVDB_Osd_e1024_768p_32bpp, BVDB_Osd_e480i_8bpp, BVDB_Osd_e576i_8bpp, BVDB_Osd_eNone, BVDB_Osd_eInvalid } BVDB_Osd; /*************************************************************************** Summary: This enumerates the pixel formats supported. Applies to BVBD_Mad, BVBD_CaptureFeeder, and BVDB_Anr. Description: See Also: BVDB_Mad, BVBD_CaptureFeeder, BVDB_Anr ****************************************************************************/ typedef enum { BVDB_PixelFmt_e8Bit422 = 0, BVDB_PixelFmt_e10Bit422, BVDB_PixelFmt_e10Bit444, BVDB_PixelFmt_eInvalid } BVDB_PixelFormat; /*************************************************************************** Summary: This enumerates the RTS tables supported. Description: See Also: BVDB_UsageMode ****************************************************************************/ typedef enum { BVDB_RtsSet_e0 = 0, BVDB_RtsSet_e1, BVDB_RtsSet_e2, BVDB_RtsSet_e3, BVDB_RtsSet_e4, BVDB_RtsSet_e5, BVDB_RtsSet_e6, BVDB_RtsSet_e7, BVDB_RtsSet_e8, BVDB_RtsSet_e9, BVDB_RtsSet_e10, BVDB_RtsSet_e11, BVDB_RtsSet_e12, BVDB_RtsSet_e13, BVDB_RtsSet_e14, BVDB_RtsSet_e15, BVDB_RtsSet_e16, BVDB_RtsSet_e17, BVDB_RtsSet_e18, BVDB_RtsSet_e19, BVDB_RtsSet_e20, BVDB_RtsSet_e21, BVDB_RtsSet_e22, BVDB_RtsSet_e23, BVDB_RtsSet_e24, BVDB_RtsSet_e25, BVDB_RtsSet_eNotApplicable, BVDB_RtsSet_eTBD } BVDB_RtsSet; /*************************************************************************** Summary: This describes the ANR configuration for the specified usage mode. Description: See Also: BVDB_UsageMode, BVDB_PixelFormat, BVDB_State ****************************************************************************/ typedef struct { BVDB_State eState; BVDB_PixelFormat ePixelFormat; } BVDB_Anr; /*************************************************************************** Summary: This describes the CAP/VFD configuration for the specified usage mode. Description: See Also: BVDB_UsageMode, BVDB_PixelFormat, BVDB_State ****************************************************************************/ typedef struct { BVDB_State eState; BVDB_PixelFormat ePixelFormat; } BVDB_CaptureFeeder; /*************************************************************************** Summary: This describes the MAD configuration for the specified usage mode. Description: See Also: BVDB_UsageMode, BVDB_PixelFormat, BVDB_State, BVDB_DeinterlacerFieldStore ****************************************************************************/ typedef struct { BVDB_State eState; BVDB_DeinterlacerFieldStore eFieldStore; BVDB_PixelFormat ePixelFormat; } BVDB_Mad; /*************************************************************************** Summary: This contains the ID and the RTS register value for a given SCB client. Description: ulId - the client ID ulRegValue - the value to be written to the client's SCB register See Also: BVDB_RtsTable ****************************************************************************/ typedef struct { uint32_t ulId; uint32_t ulRegValue; } BVDB_Rts; /*************************************************************************** Summary: This contains the table of SCB client's RTS values. A usage mode has this. Certain usage modes do not have this and are marked as n/a since the clients for that particular usage modes do not requirea new RTS setting. Description: ulValidTableEntries - the number of valid entries in the table. astRts - the table of SCB client's RTS values See Also: BVDB_Rts, BVDB_RTS_TABLE_SIZE ****************************************************************************/ typedef struct { uint32_t ulValidTableEntries; BVDB_Rts astRts[BVDB_RTS_TABLE_SIZE]; } BVDB_RtsTable; typedef struct { uint32_t ulWidth; uint32_t ulHeight; uint32_t ulHorLineSize; uint32_t ulPixelClock; bool bInterlaced; uint32_t ulVertFreq; } BVDB_FmtInfo; /*************************************************************************** Summary: Usage Mode database record. Description: This is the structure used for database entries (record). See Also: ***************************************************************************/ typedef struct BVDB_UsageMode { /* Node info: linked-list bookeeping */ BLST_CQ_ENTRY(BVDB_UsageMode) link; /* doubly-linked list support */ char acId[20]; BVDB_SourceFormatSet eSrcFmtSet; BVDB_Display eDisplay; BVDB_Window eWindow; BVDB_Input eInput; BVDB_VideoDisplayMode stDisplayMode; BVDB_Osd eOsd; BVDB_State e3dComb; BVDB_State eOversample; BVDB_State eMnrBnr; BVDB_State eDcr; BVDB_Anr stAnr; BVDB_CaptureFeeder stCapVfd; BVDB_Mad stMad; BVDB_RtsSet eRtsSet; uint32_t ulSclCapTolerance; BVDB_ScalerCaptureBias eSclCapBias; }BVDB_UsageMode; /*************************************************************************** Summary: Video Usage Modes Database (VDB) context handle. Description: This is a handle that the application created with BVDB_CreateVdb. BVDB_Handle holds the context of the VDB. There should only one BVDB_Handle at any given instant. The main VDB handle is use to add, delete, and query databse entries. See Also: BVDB_CreateVdb, BVDB_DestroyVdb. ***************************************************************************/ typedef struct BVDB_P_Context *BVDB_Handle; /*************************************************************************** Summary: Creates the database. The database is created using a generated C file that contains all the usage modes an their information. Input: Output: phVdb - the VDB handle pulEntries - the numberof databse entries(or records) Returns: BERR_INVALID_PARAMETER - Invalid function parameters. BERR_SUCCESS - Function succeed See Also: BVDB_WriteVdbFile **************************************************************************/ BERR_Code BVDB_CreateVdb ( BVDB_Handle *phVdb, uint32_t *pulEntries); /*************************************************************************** Summary: Destroys the database. Input: hVDb - the VDB handle Returns: BERR_INVALID_PARAMETER - Invalid function parameters. BERR_SUCCESS - Function succeed See Also: BVDB_CreateVdb **************************************************************************/ BERR_Code BVDB_DestroyVdb ( BVDB_Handle hVdb ); /*************************************************************************** Summary: Adds an entry to the database. The user specifies the usage mode and passes this to the function. It will then get validated and if it passes, it will be added to the VDB. Input: hVDb - the VDB handle pstUsageMode - the user specified usage mode to add. This must contain the configuration number using the acId field. Description: Example: strcpy(stUsageMode.acId, "1"); "config #" stUsageMode.eSrcFmtSet = BVDB_SrcFmtSet_eNTSC; stUsageMode.eDisplay = BVDB_Display_ePrimary60; stUsageMode.eWindow = BVDB_Window_eMain; stUsageMode.eIput = BVDB_Input_eComponent; stUsageMode.eOsd = BVDB_Osd_e1080p_32bpp stUsageMode.stDisplayMode = 0x3f; "all_FULL_modes" tUsageMode.e3dComb = BVDB_State_eNotApplicable; tUsageMode.eOversample = BVDB_State_eYes; tUsageMode.eMnrBnr = BVDB_State_eNo; stUsageMode.eDcr = BVDB_State_eYes; stUsageMode.stAnr.eState = BVDB_State_eYes; stUsageMode.stAnr.ePixelFormat = BVDB_PixelFmt_e10Bit422; stUsageMode.stCapVfd.eState = BVDB_State_eYes; stUsageMode.stCapVfd.ePixelFormat = BVDB_PixelFmt_e10Bit422; stUsageMode.stMad.eState = BVDB_State_eYes; stUsageMode.stMad.ePixelFormat = BVDB_PixelFmt_e10Bit422; stUsageMode.stMad.eFieldStore = BVDB_FieldStore_e5Fields; stUsageMode.eRtsSet = BVDB_RtsSet_eD; stUsageMode.ulSclCapTolerance = 0; stUsageMode.eSclCapBias = BVDB_SclCapBias_eAuto; err = BVDB_AddVdbEntry(hVdb, &stUsageMode); Returns: BERR_INVALID_PARAMETER - Invalid function parameters. BERR_SUCCESS - Function succeed See Also: **************************************************************************/ BERR_Code BVDB_AddVdbEntry ( BVDB_Handle hVdb, const BVDB_UsageMode *pstUsageMode ); /*************************************************************************** Summary: Removes an entry to the database. The user specifies the usage mode and passes this to the function. If the usage mode is found via its ID, it wil then be removed from the VDB. Input: hVDb - the VDB handle pstUsageMode - the user specified usage mode to remove Returns: BERR_INVALID_PARAMETER - Invalid function parameters. BERR_SUCCESS - Function succeed See Also: **************************************************************************/ BERR_Code BVDB_RemoveVdbEntry ( BVDB_Handle hVdb, const BVDB_UsageMode *pstUsageMode ); /*************************************************************************** Summary: Gets a VDB entry based on the Config #, Source Format Set, Display, Window, Input, OSD, and Video Display usage mode. This function takes in a BVDB_Usage mode structure partially filled with the required info. It will then be completely filled if the usage mode requested is found. Otherwise an error will be returned. Description: Example on filling the required fields: strcpy(pstUsageMode->acId, "1"); configuration 1 pstUsageMode->eSrcFmtSet = BVDB_SrcFmtSet_eNTSC; pstUsageMode->eDisplay = BVDB_Display_ePrimary60; pstUsageMode->eWindow = BVDB_Window_eMain; pstUsageMode->eIput = BVDB_Input_eComponent; pstUsageMode->eOsd = BVDB_Osd_e1080p_32bpp pstUsageMode->stDisplayMode = 0x3f; "all_FULL_modes" err = BVDB_GetVdbEntry(hVdb, pstUsageMode); Input: hVdb - the VDB handle pstUsageMode - the usage mode with the required info Output: pstUsageMode - the usage mode with the required info plus the remaining info, if found Returns: BERR_INVALID_PARAMETER - Invalid function parameters. BERR_SUCCESS - Function succeed See Also: **************************************************************************/ BERR_Code BVDB_GetVdbEntry ( BVDB_Handle hVdb, BVDB_UsageMode *pstUsageMode ); /*************************************************************************** Summary: Gets a VDB entry based on the usage mode ID. This function takes in a BVDB_Usage mode structure partially filled with the ID. It will then be completely filled if the usage mode requested is found. Otherwise an error will be returned. Input: pstUsageMode - the user specified usage mode Output: pstUsageMode - the usage mode with the ID plus the remaining info, if found Description: Example: strcpy(pstUsageMode.acId, "1.0.0.1.2.2") err = BVDB_GetVdbEntry(hVdb, pstUsageMode); Returns: BERR_INVALID_PARAMETER - Invalid function parameters. BERR_SUCCESS - Function succeed See Also: **************************************************************************/ BERR_Code BVDB_GetVdbEntryById ( BVDB_Handle hVdb, BVDB_UsageMode *pstUsageMode ); /*************************************************************************** Summary: Prints the usage mode on the console. Input: pstUsageMode - the user specified usage mode Returns: BERR_INVALID_PARAMETER - Invalid function parameters. BERR_SUCCESS - Function succeed See Also: **************************************************************************/ BERR_Code BVDB_PrintUsageMode ( const BVDB_UsageMode *pstUsageMode ); /*************************************************************************** Summary: Prints the entire VDB on the console. Input: hVdb - VDB handle Returns: BERR_INVALID_PARAMETER - Invalid function parameters. BERR_SUCCESS - Function succeed See Also: **************************************************************************/ BERR_Code BVDB_PrintVdb ( BVDB_Handle hVdb ); /*************************************************************************** Summary: This validates the amount of source clipping for a given usage mode. Input: hVdb - the handle to VDB pstUsageMode - the usage mode ulSrcHeight - the height of the source ulSrcWidth - the width of the source ulHeightClipAmount - the total amount to clip from the height ulWidthClipAmount - the total amount to clip from the width Returns: BERR_INVALID_PARAMETER - Invalid function parameters. BERR_SUCCESS - Function succeed See Also: **************************************************************************/ BERR_Code BVDB_ValidateSourceClipAmount ( BVDB_Handle hVdb, const BVDB_UsageMode *pstUsageMode, const uint32_t ulSrcHeight, const uint32_t ulSrcWidth, const uint32_t ulHeightClipAmount, const uint32_t ulWidthClipAmount ); /*************************************************************************** Summary: Gets the RTS table to use with the given the RTS set Input: hVdb - the handle to VDB eRtsSet - the RTS set Returns: BVDB_RtsTable * - if found, returns the table else NULL See Also: **************************************************************************/ const BVDB_RtsTable* BVDB_GetRtsTable ( BVDB_Handle hVdb, const BVDB_RtsSet eRtsSet ); /*************************************************************************** Summary: Gets the client name of the given SCB client ID Input: hVdb - the handle to VDB ulId - the SCB client's ID Output: acClientName - the client name Returns: BERR_INVALID_PARAMETER - Invalid function parameters. BERR_SUCCESS - Function succeed See Also: **************************************************************************/ BERR_Code BVDB_GetRtsClientName ( BVDB_Handle hVdb, const uint32_t ulId, char acClientName[20] ); #ifdef __cplusplus } #endif #endif /* __BVDB_H__ */