source: svn/newcon3bcm2_21bu/magnum/commonutils/vdb/3548/A0/bvdb.h

Last change on this file was 76, checked in by megakiss, 10 years ago

1W 대기전력을 만족시키기 위하여 POWEROFF시 튜너를 Standby 상태로 함

  • Property svn:executable set to *
File size: 26.3 KB
Line 
1/***************************************************************************
2 *     Copyright (c) 2003-2008, Broadcom Corporation
3 *     All Rights Reserved
4 *     Confidential Property of Broadcom Corporation
5 *
6 *  THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED SOFTWARE LICENSE
7 *  AGREEMENT  BETWEEN THE USER AND BROADCOM.  YOU HAVE NO RIGHT TO USE OR
8 *  EXPLOIT THIS MATERIAL EXCEPT SUBJECT TO THE TERMS OF SUCH AN AGREEMENT.
9 *
10 * $brcm_Workfile: bvdb.h $
11 * $brcm_Revision: Hydra_Software_Devel/9 $
12 * $brcm_Date: 11/19/08 6:05p $
13 *
14 * Module Description:
15 *   The VDB (Video Usage Modes Database) is a database of all possible video
16 *   usage modes for a given chipset. This was created to support VDC's
17 *   new source pending feature that allows applications to configure the
18 *   BVN according to their requirements.
19 *
20 *   Sample use:
21 *
22 *   BVDB_Handle *hVdb;
23 *   uint32_t ulEntries;
24 *   BVDB_UsageMode stUsageMode;
25 *   const BVDB_RtsTable *pstRtsTbl = NULL;
26 *
27     // Create VDB
28 *   BVDB_CreateVdb(&hVdb, &ulEntries);
29 *
30 *   // Get a usage mode given the following parameters
31 *      strcpy(stUsageMode.acId, "1"); configuration 1
32 *      stUsageMode.eSrcFmtSet = BVDB_SrcFmtSet_eNTSC;
33 *      stUsageMode.eDisplay = BVDB_Display_ePrimary60;
34 *      stUsageMode.eWindow = BVDB_Window_eMain;
35 *      stUsageMode.eIput = BVDB_Input_eComponent;
36 *      stUsageMode.eOsd = BVDB_Osd_e1080p_32bpp
37 *      stUsageMode.stDisplayMode = 0x3f; "all_FULL_modes"
38 *
39 *      err = BVDB_GetVdbEntry(hVdb, &stUsageMode);
40 *      if (err != BERR_SUCCESS)
41 *      {
42 *              BDBG_ERR(("Usage mode with given paramters not found"));
43 *      }
44 *     
45 *      // Get the RTS table associated with the obtained usage mode
46 *      pstRtsTbl = BVDB_GetRtsTable(hVdb, stUsageMode.eRtsSet);
47 *
48 *     
49 *      // Destroy VDB
50 *      BVDB_DestroyVdb(hVdb);
51 *
52 *
53 *
54 * Revision History:
55 *
56 * $brcm_Log: /magnum/commonutils/vdb/3548/A0/bvdb.h $
57 *
58 * Hydra_Software_Devel/9   11/19/08 6:05p jessem
59 * PR49427, PR49428, PR49429, PR49431, PR49432, PR49433, PR49434, PR49435,
60 * PR49436, PR49437, PR49438, PR49440: Fixed strcpy and strcat Coverity
61 * issues.
62 *
63 * Hydra_Software_Devel/8   9/24/08 1:57p jessem
64 * PR 47302: Removed PIG modes 3, 4, 5, and 6.
65 *
66 * Hydra_Software_Devel/7   9/3/08 5:48p jessem
67 * PR 45196, PR 43098, PR 43946:
68 * 1. Added XGA support.
69 * 2. Reorganized 1400x1050@75 and 1600x1200@60 groups to 1024_768_PC,
70 * 1280_768_PC, 1400_1050_PC, and 1600_1200_PC format groups to meet new
71 * tolerance/bias requirements.
72 * 3. Added 1024x76 OSD.
73 * 4. Updated ANR blockout values in RTS tables.
74 * 5. Updated RTS for SD source displayed as PIG for config 1.
75 *
76 * Hydra_Software_Devel/6   8/19/08 11:12a jessem
77 * PR 43098: Added new PC formats to comply with new tolerance and bias
78 * requirements fro config 4.
79 *
80 * Hydra_Software_Devel/5   8/4/08 11:46a jessem
81 * PR 45385: Increased RTS table size to 100. Added RTS 0 (baseline RTS
82 * settings).
83 *
84 * Hydra_Software_Devel/4   8/1/08 9:55a jessem
85 * PR 43946, PR 44528, PR 44303:
86 * 1. Modified existing RTS tables and renamed using numbers instead of
87 * letters.
88 * 2. Added 3 RTS tables - 16, 17, 18
89 * 3. Modified configs 1 and 4 to reflect new RTS tables and naming
90 * convention.
91 *
92 * Hydra_Software_Devel/3   7/18/08 4:56p jessem
93 * PR 44254:1. Added VGA inputs to  NTSC,  PAL,  480p, 576p, 720p @ 50,
94 * and 720p @ 60.
95 * 2. Added PIP_0 video display mode.
96 *
97 * Hydra_Software_Devel/2   7/14/08 3:22p jessem
98 * PR 43759: Updated API and implementation
99 *
100 * Hydra_Software_Devel/2   6/18/08 3:46p jessem
101 * PR 39237: Added example to BVDB_GetVdbEntry and BVDB_AddVdbEntry.
102 *
103 * Hydra_Software_Devel/1   6/18/08 12:36p jessem
104 * PR 43759: Initial version.
105 *
106 ***************************************************************************/
107
108 
109#ifndef __BVDB_H__
110#define __BVDB_H__
111
112#include "bstd.h"
113#include "berr.h"
114#include "bvdb_viddispmode_priv.h"
115
116#include "blst_circleq.h"
117
118#ifdef __cplusplus
119extern "C" {
120#endif
121
122/************************* Module Overview ********************************
123The Video Usage Modes Database (VDB) intends to capture all the BVN and RTS
124information found in the usage modes spreadsheet and put these in a form
125that can be used readily by an application.
126***************************************************************************/
127
128#define BVDB_DISP_MODE_IS_PIG(pMode)            ((*((uint32_t*)(void*)(pMode))) & BVDB_P_DISPLAY_MODE_ALL_PIG_MODES_MASK)
129#define BVDB_DISP_MODE_IS_FULL(pMode)           ((*((uint32_t*)(void*)(pMode))) & BVDB_P_DISPLAY_MODE_ALL_FULL_MODES_MASK)
130#define BVDB_DISP_MODE_IS_PIP(pMode)            ((*((uint32_t*)(void*)(pMode))) & BVDB_P_DISPLAY_MODE_ALL_PIP_MODES_MASK)
131#define BVDB_DISP_MODE_IS_VCR(pMode)            ((*((uint32_t*)(void*)(pMode))) & BVDB_P_DISPLAY_MODE_ALL_VCR_MODES_MASK)
132
133#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)
134#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)
135#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)
136#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)
137
138#define BVDB_DISP_MODE_IS_PIP_1(pMode)          ((*((uint32_t*)(void*)(pMode))) & BVDB_P_DISPLAY_MODE_PIP_1_MASK)
139#define BVDB_DISP_MODE_IS_PIP_2(pMode)          ((*((uint32_t*)(void*)(pMode))) & BVDB_P_DISPLAY_MODE_PIP_2_MASK)
140#define BVDB_DISP_MODE_IS_PIP_3(pMode)          ((*((uint32_t*)(void*)(pMode))) & BVDB_P_DISPLAY_MODE_PIP_3_MASK)
141#define BVDB_DISP_MODE_IS_VCR_1(pMode)          ((*((uint32_t*)(void*)(pMode))) & BVDB_P_DISPLAY_MODE_VCR_1_MASK)
142
143#define BVDB_RTS_TABLE_SIZE                     100
144
145#define BVDB_SCL_CAP_TOLERANCE_FACTOR           10000
146
147#define BVDB_MAX_STRLEN                         40
148
149/***************************************************************************
150Summary:
151        This enumeration represents the state of a particular BVN component.
152
153Description:
154        BVDB_State_eNo            - the BVN component is disabled.
155        BVDB_State_eYes           - the BVN component is enabled.
156        BVDB_State_eNotApplicable - the BVN component is not applicable for the
157                                    usage mode it is used with.
158
159See Also:
160        BVDB_Anr, BVBD_CaptureFeeder, BVDB_Mad
161****************************************************************************/
162typedef enum
163{
164        BVDB_State_eNo = 0,
165        BVDB_State_eYes,
166        BVDB_State_eNotApplicable
167} BVDB_State;
168
169/***************************************************************************
170Summary:
171        This enumerates the supported source format sets. Each entry represents
172        several actual formats. Each usage mode entry must have this.
173
174Description:
175
176See Also:
177        BVDB_UsageMode
178****************************************************************************/
179typedef enum
180{
181        BVDB_SrcFmtSet_eNtsc = 1,
182        BVDB_SrcFmtSet_ePal,
183        BVDB_SrcFmtSet_e480p,
184        BVDB_SrcFmtSet_e576p,
185        BVDB_SrcFmtSet_e720p_50,
186        BVDB_SrcFmtSet_e720p_60,
187        BVDB_SrcFmtSet_e1080i_50,
188        BVDB_SrcFmtSet_e1080i_60,
189        BVDB_SrcFmtSet_e1080p_24,
190        BVDB_SrcFmtSet_e1080p_25,
191        BVDB_SrcFmtSet_e1080p_30,
192        BVDB_SrcFmtSet_e1080p_50,
193        BVDB_SrcFmtSet_e1080p_60,
194        BVDB_SrcFmtSet_ePal_60,
195        BVDB_SrcFmtSet_e720p_24,
196        BVDB_SrcFmtSet_e720p_25,
197        BVDB_SrcFmtSet_e720p_30,
198        BVDB_SrcFmtSet_e544_576i_50 = 20,
199        BVDB_SrcFmtSet_e1440_1080i_50,
200        BVDB_SrcFmtSet_e1440_1080p_25,
201        BVDB_SrcFmtSet_e544_480i_60,
202        BVDB_SrcFmtSet_e1440_1080i_60,
203        BVDB_SrcFmtSet_e1440_1080p_30,
204        BVDB_SrcFmtSet_e1440_1080p_24, 
205        BVDB_SrcFmtSet_e1024_768_PC = 30,
206        BVDB_SrcFmtSet_e1280_768_PC,
207        BVDB_SrcFmtSet_e1400_1050_PC,
208        BVDB_SrcFmtSet_e1600_1200_PC,
209        BVDB_SrcFmtSet_eAdcCalibration = 40,
210        BVDB_SrcFmtSet_eJpeg,
211        BVDB_SrcFmtSet_eInvalid
212} BVDB_SourceFormatSet;
213
214/***************************************************************************
215Summary:
216        This enumerates the supported display types. Each usage mode entry must
217        have this.
218
219Description:
220
221See Also:
222        BVDB_UsageMode
223****************************************************************************/
224typedef enum
225{
226        BVDB_Display_ePrimary48 = 0,
227        BVDB_Display_ePrimary50,
228        BVDB_Display_ePrimary60,
229        BVDB_Display_eSecondary50,
230        BVDB_Display_eSecondary60,
231        BVDB_Display_eInvalid
232} BVDB_Display;
233
234/***************************************************************************
235Summary:
236        This enumerates the supported windows. Each usage mode entry must
237        have this.
238
239Description:
240
241See Also:
242        BVDB_UsageMode
243****************************************************************************/
244typedef enum
245{
246        BVDB_Window_eMain = 0,
247        BVDB_Window_ePip,
248        BVDB_Window_eVcr,
249        BVDB_Window_eInvalid
250} BVDB_Window;
251
252/***************************************************************************
253Summary:
254        This enumerates the supported intputs. Each usage mode entry must
255        have this.
256
257Description:
258
259See Also:
260        BVDB_UsageMode
261****************************************************************************/
262typedef enum
263{
264        BVDB_Input_eCvbsSvidIfd = 0,
265        BVDB_Input_eComponent,
266        BVDB_Input_eHdDvi,
267        BVDB_Input_eMfd,
268        BVDB_Input_eVga,
269        BVDB_Input_e656,
270        BVDB_Input_eInvalid
271} BVDB_Input;
272
273/***************************************************************************
274Summary:
275        This enumerates the supported deinterlacer field store count. This is
276        used with BVDB_Mad only.
277
278Description:
279
280See Also:
281        BVDB_Mad, BVDB_UsageMode
282****************************************************************************/
283typedef enum
284{
285        BVDB_FieldStore_e5Fields,
286        BVDB_FieldStore_e4Fields,
287        BVDB_FieldStore_e3Fields,
288        BVDB_FieldStore_eNotApplicable
289} BVDB_DeinterlacerFieldStore;
290
291
292/***************************************************************************
293Summary:
294        This enumerates the SCL-CAP bias used for orienting the Scaler relative
295        to the Capture block
296
297Description:
298
299        BVDB_SclCapBias_eAuto   - indicates the VDC will determine the orientation
300                                                        automatically given certain parameters
301        BVDB_SclCapBias_eSclCap - indicates a SCL-CAP orientation bias
302        BVDB_SclCapBias_eCapScl - indicates a CAP-SCL orientation bias
303See Also:
304        BVDB_UsageMode
305****************************************************************************/
306typedef enum
307{
308        BVDB_SclCapBias_eAuto = 0,
309        BVDB_SclCapBias_eSclCap,
310        BVDB_SclCapBias_eCapScl,
311        BVDB_SclCapBias_eInvalid
312} BVDB_ScalerCaptureBias;
313
314
315/***************************************************************************
316Summary:
317        This indicates the supported video display modes for the specified usage
318        mode.
319
320Description:
321    Each bitfield represents a video display usage mode. If set, this
322    indicates that this video display mode is allowed in the associated
323    usage mode.
324
325    Example:
326
327    pstUsageMode->stDisplayMode = 0x3f; This means that all FULL modes are
328    allowed in the associated usage mode.
329
330See Also:
331        BVDB_UsageMode
332****************************************************************************/
333typedef struct
334{
335        uint32_t ulFull1    : 1;
336        uint32_t ulFull2    : 1;
337        uint32_t ulFull3    : 1;
338        uint32_t ulFull4    : 1;
339        uint32_t ulFull5    : 1;
340        uint32_t ulFull6    : 1;
341        uint32_t ulPig1     : 1;
342        uint32_t ulPig2     : 1;
343        uint32_t ulPip1     : 1;
344        uint32_t ulPip2     : 1;
345        uint32_t ulPip3     : 1;
346        uint32_t ulVcr1     : 1;
347        uint32_t ulVcr2     : 1;
348        uint32_t ulUnknown  : 1; 
349} BVDB_VideoDisplayMode;
350
351/***************************************************************************
352Summary:
353        This enumerates the maximum size of OSD that can be used for the
354        specified usage mode.
355
356Description:
357        The difference between BVDB_Osd_eNone and BVDB_Osd_eInvalid is that
358        BVDB_Osd_None means OSD is possible with the usage mode but is disabled.
359
360See Also:
361        BVDB_UsageMode
362****************************************************************************/
363typedef enum
364{
365        BVDB_Osd_e1080p_32bpp = 0,
366        BVDB_Osd_e1366_768p_32bpp,
367        BVDB_Osd_e1024_768p_32bpp,
368        BVDB_Osd_e480i_8bpp,
369        BVDB_Osd_e576i_8bpp,
370        BVDB_Osd_eNone,
371        BVDB_Osd_eInvalid
372} BVDB_Osd;
373
374/***************************************************************************
375Summary:
376        This enumerates the pixel formats supported. Applies to BVBD_Mad,
377        BVBD_CaptureFeeder, and BVDB_Anr.
378
379Description:
380
381See Also:
382        BVDB_Mad, BVBD_CaptureFeeder, BVDB_Anr
383****************************************************************************/
384typedef enum
385{
386        BVDB_PixelFmt_e8Bit422 = 0,
387        BVDB_PixelFmt_e10Bit422,
388        BVDB_PixelFmt_e10Bit444,
389        BVDB_PixelFmt_eInvalid
390} BVDB_PixelFormat;
391
392/***************************************************************************
393Summary:
394        This enumerates the RTS tables supported.
395
396Description:
397
398See Also:
399        BVDB_UsageMode
400****************************************************************************/
401typedef enum
402{
403        BVDB_RtsSet_e0 = 0,
404        BVDB_RtsSet_e1,
405        BVDB_RtsSet_e2,
406        BVDB_RtsSet_e3,
407        BVDB_RtsSet_e4,
408        BVDB_RtsSet_e5,
409        BVDB_RtsSet_e6,
410        BVDB_RtsSet_e7,
411        BVDB_RtsSet_e8,
412        BVDB_RtsSet_e9,
413        BVDB_RtsSet_e10,
414        BVDB_RtsSet_e11,
415        BVDB_RtsSet_e12,
416        BVDB_RtsSet_e13,
417        BVDB_RtsSet_e14,
418        BVDB_RtsSet_e15,
419        BVDB_RtsSet_e16,
420        BVDB_RtsSet_e17,
421        BVDB_RtsSet_e18,
422        BVDB_RtsSet_e19,
423        BVDB_RtsSet_e20,
424        BVDB_RtsSet_e21,
425        BVDB_RtsSet_e22,
426        BVDB_RtsSet_e23,
427        BVDB_RtsSet_e24,
428        BVDB_RtsSet_e25,
429        BVDB_RtsSet_eNotApplicable,
430        BVDB_RtsSet_eTBD
431} BVDB_RtsSet;
432
433/***************************************************************************
434Summary:
435        This describes the ANR configuration for the specified usage mode.
436
437Description:
438
439See Also:
440        BVDB_UsageMode, BVDB_PixelFormat, BVDB_State
441****************************************************************************/
442typedef struct
443{
444        BVDB_State          eState;
445        BVDB_PixelFormat    ePixelFormat;
446} BVDB_Anr;
447
448/***************************************************************************
449Summary:
450        This describes the CAP/VFD configuration for the specified usage mode.
451
452Description:
453
454See Also:
455        BVDB_UsageMode, BVDB_PixelFormat, BVDB_State
456****************************************************************************/
457typedef struct
458{
459        BVDB_State          eState;
460        BVDB_PixelFormat    ePixelFormat;       
461} BVDB_CaptureFeeder;
462
463/***************************************************************************
464Summary:
465        This describes the MAD configuration for the specified usage mode.
466
467Description:
468
469See Also:
470        BVDB_UsageMode, BVDB_PixelFormat, BVDB_State, BVDB_DeinterlacerFieldStore
471****************************************************************************/
472typedef struct
473{
474        BVDB_State                      eState;
475        BVDB_DeinterlacerFieldStore     eFieldStore;
476        BVDB_PixelFormat                ePixelFormat;
477} BVDB_Mad;
478
479/***************************************************************************
480Summary:
481        This contains the ID and the RTS register value for a given SCB client.
482
483Description:
484        ulId          - the client ID
485        ulRegValue    - the value to be written to the client's SCB register
486
487See Also:
488        BVDB_RtsTable
489****************************************************************************/
490typedef struct
491{
492        uint32_t            ulId;
493        uint32_t            ulRegValue;
494} BVDB_Rts;
495
496/***************************************************************************
497Summary:
498        This contains the table of SCB client's RTS values. A usage mode has this.
499        Certain usage modes do not have this and are marked as n/a since the
500        clients for that particular usage modes do not requirea new RTS setting.
501
502Description:
503        ulValidTableEntries  - the number of valid entries in the table.
504        astRts               - the table of SCB client's RTS values
505       
506See Also:
507        BVDB_Rts, BVDB_RTS_TABLE_SIZE
508****************************************************************************/
509typedef struct
510{
511        uint32_t            ulValidTableEntries;
512        BVDB_Rts            astRts[BVDB_RTS_TABLE_SIZE];
513} BVDB_RtsTable;
514
515typedef struct
516{
517        uint32_t            ulWidth;
518        uint32_t            ulHeight;
519        uint32_t            ulHorLineSize;
520        uint32_t            ulPixelClock;
521        bool                bInterlaced;
522        uint32_t            ulVertFreq;
523} BVDB_FmtInfo;
524
525/***************************************************************************
526Summary:
527        Usage Mode database record.
528
529Description:
530        This is the structure used for database entries (record).
531
532See Also:
533       
534***************************************************************************/
535typedef struct BVDB_UsageMode
536{
537        /* Node info: linked-list bookeeping */
538        BLST_CQ_ENTRY(BVDB_UsageMode)  link;                 /* doubly-linked list support */
539
540        char                           acId[20];
541        BVDB_SourceFormatSet           eSrcFmtSet;
542        BVDB_Display                   eDisplay;
543        BVDB_Window                        eWindow;
544        BVDB_Input                     eInput;
545        BVDB_VideoDisplayMode          stDisplayMode;
546        BVDB_Osd                       eOsd;
547        BVDB_State                     e3dComb;
548        BVDB_State                     eOversample;
549        BVDB_State                     eMnrBnr;
550        BVDB_State                     eDcr;
551        BVDB_Anr                       stAnr;
552        BVDB_CaptureFeeder             stCapVfd;
553        BVDB_Mad                       stMad;
554        BVDB_RtsSet                    eRtsSet;
555        uint32_t                       ulSclCapTolerance;
556        BVDB_ScalerCaptureBias         eSclCapBias;
557}BVDB_UsageMode;
558
559
560/***************************************************************************
561Summary:
562        Video Usage Modes Database (VDB) context handle.
563
564Description:
565        This is a handle that the application created with BVDB_CreateVdb.
566        BVDB_Handle holds the context of the VDB.  There should only one
567        BVDB_Handle at any given instant.  The main VDB handle is use to add,
568        delete, and query databse entries.
569       
570See Also:
571        BVDB_CreateVdb, BVDB_DestroyVdb.
572***************************************************************************/
573typedef struct BVDB_P_Context  *BVDB_Handle;
574
575
576/***************************************************************************
577Summary:
578        Creates the database. The database is created using a generated C file
579        that contains all the usage modes an their information.
580
581Input:
582
583Output:
584        phVdb                  - the VDB handle
585        pulEntries             - the numberof databse entries(or records)
586       
587Returns:
588        BERR_INVALID_PARAMETER - Invalid function parameters.
589        BERR_SUCCESS           - Function succeed
590
591See Also:
592        BVDB_WriteVdbFile
593**************************************************************************/
594BERR_Code BVDB_CreateVdb
595        ( BVDB_Handle            *phVdb,
596          uint32_t               *pulEntries);
597
598
599/***************************************************************************
600Summary:
601        Destroys the database.
602
603Input:
604        hVDb                   - the VDB handle
605       
606Returns:
607        BERR_INVALID_PARAMETER - Invalid function parameters.
608        BERR_SUCCESS           - Function succeed
609
610See Also:
611        BVDB_CreateVdb
612**************************************************************************/
613BERR_Code BVDB_DestroyVdb
614        ( BVDB_Handle             hVdb  );
615
616
617/***************************************************************************
618Summary:
619        Adds an entry to  the database. The user specifies the usage mode and
620        passes this to the function. It will then get validated and if it
621        passes, it will be added to the VDB.
622
623Input:
624        hVDb                   - the VDB handle
625        pstUsageMode           - the user specified usage mode to add. This must
626                                 contain the configuration number using the
627                                 acId field.
628Description:
629        Example:
630
631        strcpy(stUsageMode.acId, "1"); "config #"
632        stUsageMode.eSrcFmtSet = BVDB_SrcFmtSet_eNTSC;
633        stUsageMode.eDisplay = BVDB_Display_ePrimary60;
634        stUsageMode.eWindow = BVDB_Window_eMain;
635        stUsageMode.eIput = BVDB_Input_eComponent;
636        stUsageMode.eOsd = BVDB_Osd_e1080p_32bpp
637        stUsageMode.stDisplayMode = 0x3f; "all_FULL_modes"
638        tUsageMode.e3dComb = BVDB_State_eNotApplicable;
639        tUsageMode.eOversample = BVDB_State_eYes;
640        tUsageMode.eMnrBnr = BVDB_State_eNo;
641        stUsageMode.eDcr = BVDB_State_eYes;
642        stUsageMode.stAnr.eState = BVDB_State_eYes;
643        stUsageMode.stAnr.ePixelFormat = BVDB_PixelFmt_e10Bit422;
644        stUsageMode.stCapVfd.eState = BVDB_State_eYes;
645        stUsageMode.stCapVfd.ePixelFormat = BVDB_PixelFmt_e10Bit422;
646        stUsageMode.stMad.eState = BVDB_State_eYes;
647        stUsageMode.stMad.ePixelFormat = BVDB_PixelFmt_e10Bit422;
648        stUsageMode.stMad.eFieldStore = BVDB_FieldStore_e5Fields;
649        stUsageMode.eRtsSet = BVDB_RtsSet_eD;
650        stUsageMode.ulSclCapTolerance = 0;
651        stUsageMode.eSclCapBias = BVDB_SclCapBias_eAuto;
652
653        err = BVDB_AddVdbEntry(hVdb, &stUsageMode);
654       
655Returns:
656        BERR_INVALID_PARAMETER - Invalid function parameters.
657        BERR_SUCCESS           - Function succeed
658
659See Also:
660       
661**************************************************************************/
662BERR_Code BVDB_AddVdbEntry
663        ( BVDB_Handle             hVdb,
664          const BVDB_UsageMode   *pstUsageMode );
665
666
667/***************************************************************************
668Summary:
669        Removes an entry to  the database. The user specifies the usage mode and
670        passes this to the function. If the usage mode is found via its ID, it
671        wil then be removed from the VDB.
672
673Input:
674        hVDb                   - the VDB handle
675        pstUsageMode           - the user specified usage mode to remove
676       
677Returns:
678        BERR_INVALID_PARAMETER - Invalid function parameters.
679        BERR_SUCCESS           - Function succeed
680
681See Also:
682       
683**************************************************************************/
684BERR_Code BVDB_RemoveVdbEntry
685        ( BVDB_Handle             hVdb,
686          const BVDB_UsageMode   *pstUsageMode );
687
688
689/***************************************************************************
690Summary:
691        Gets a VDB entry based on the Config #, Source Format Set, Display,
692        Window, Input, OSD, and Video Display usage mode. This function takes
693        in a BVDB_Usage mode structure partially filled with the required info.
694        It will then be completely      filled if the usage mode requested is found.
695        Otherwise an error will be returned.
696
697Description:
698        Example on filling the required fields:
699
700        strcpy(pstUsageMode->acId, "1"); configuration 1
701        pstUsageMode->eSrcFmtSet = BVDB_SrcFmtSet_eNTSC;
702        pstUsageMode->eDisplay = BVDB_Display_ePrimary60;
703        pstUsageMode->eWindow = BVDB_Window_eMain;
704        pstUsageMode->eIput = BVDB_Input_eComponent;
705        pstUsageMode->eOsd = BVDB_Osd_e1080p_32bpp
706        pstUsageMode->stDisplayMode = 0x3f; "all_FULL_modes"
707
708        err = BVDB_GetVdbEntry(hVdb, pstUsageMode);
709
710Input:
711        hVdb                   - the VDB handle
712        pstUsageMode           - the usage mode with the required info
713
714Output:
715        pstUsageMode           - the usage mode with the required info plus
716                                 the remaining info, if found
717Returns:
718        BERR_INVALID_PARAMETER - Invalid function parameters.
719        BERR_SUCCESS           - Function succeed
720
721See Also:
722       
723**************************************************************************/
724BERR_Code BVDB_GetVdbEntry
725        ( BVDB_Handle                       hVdb,
726          BVDB_UsageMode                   *pstUsageMode );
727
728
729/***************************************************************************
730Summary:
731        Gets a VDB entry based on the usage mode ID. This function takes in a
732        BVDB_Usage mode structure partially filled with the ID. It will then be
733        completely filled if the usage mode requested is found. Otherwise an
734        error will be returned.
735       
736Input:
737        pstUsageMode           - the user specified usage mode
738       
739Output:
740        pstUsageMode           - the usage mode with the ID plus
741                                 the remaining info, if found   
742
743Description:
744        Example:
745       
746        strcpy(pstUsageMode.acId, "1.0.0.1.2.2")
747        err = BVDB_GetVdbEntry(hVdb, pstUsageMode);
748       
749Returns:
750        BERR_INVALID_PARAMETER - Invalid function parameters.
751        BERR_SUCCESS           - Function succeed
752
753See Also:
754       
755**************************************************************************/
756BERR_Code BVDB_GetVdbEntryById
757        ( BVDB_Handle                       hVdb,
758          BVDB_UsageMode                   *pstUsageMode );
759
760
761/***************************************************************************
762Summary:
763        Prints the usage mode on the console.
764
765Input:
766        pstUsageMode           - the user specified usage mode
767       
768Returns:
769        BERR_INVALID_PARAMETER - Invalid function parameters.
770        BERR_SUCCESS           - Function succeed
771
772See Also:
773       
774**************************************************************************/
775BERR_Code BVDB_PrintUsageMode
776        ( const BVDB_UsageMode        *pstUsageMode );
777
778
779/***************************************************************************
780Summary:
781        Prints the entire VDB on the console.
782
783Input:
784        hVdb                   - VDB handle
785       
786Returns:
787        BERR_INVALID_PARAMETER - Invalid function parameters.
788        BERR_SUCCESS           - Function succeed
789
790See Also:
791       
792**************************************************************************/
793BERR_Code BVDB_PrintVdb
794        ( BVDB_Handle             hVdb );
795
796
797/***************************************************************************
798Summary:
799        This validates the amount of source clipping for a given usage mode.
800
801Input:
802        hVdb                   - the handle to VDB
803        pstUsageMode           - the usage mode
804        ulSrcHeight            - the height of the source
805        ulSrcWidth             - the width of the source
806        ulHeightClipAmount     - the total amount to clip from the height
807        ulWidthClipAmount      - the total amount to clip from the width
808       
809Returns:
810        BERR_INVALID_PARAMETER - Invalid function parameters.
811        BERR_SUCCESS           - Function succeed
812
813See Also:
814       
815**************************************************************************/
816BERR_Code BVDB_ValidateSourceClipAmount
817        ( BVDB_Handle                  hVdb, 
818          const BVDB_UsageMode        *pstUsageMode,
819          const uint32_t               ulSrcHeight,
820          const uint32_t               ulSrcWidth,
821          const uint32_t               ulHeightClipAmount,
822          const uint32_t               ulWidthClipAmount );
823
824
825/***************************************************************************
826Summary:
827        Gets the RTS table to use with the given the RTS set
828
829Input:
830        hVdb                   - the handle to VDB
831        eRtsSet                - the RTS set
832       
833Returns:
834        BVDB_RtsTable *        - if found, returns the table else NULL
835
836See Also:
837       
838**************************************************************************/
839const BVDB_RtsTable* BVDB_GetRtsTable
840        ( BVDB_Handle                  hVdb, 
841          const BVDB_RtsSet            eRtsSet );
842
843
844/***************************************************************************
845Summary:
846        Gets the client name of the given SCB client ID
847
848Input:
849        hVdb                   - the handle to VDB
850        ulId                   - the SCB client's ID
851
852Output:
853        acClientName           - the client name
854       
855Returns:
856        BERR_INVALID_PARAMETER - Invalid function parameters.
857        BERR_SUCCESS           - Function succeed
858
859See Also:
860       
861**************************************************************************/
862BERR_Code BVDB_GetRtsClientName
863        ( BVDB_Handle             hVdb,
864          const uint32_t          ulId,
865          char                    acClientName[20] );
866
867#ifdef __cplusplus
868}
869#endif
870
871#endif /* __BVDB_H__ */
Note: See TracBrowser for help on using the repository browser.