source: svn/trunk/newcon3bcm2_21bu/nexus/modules/display/7552/include/nexus_vbi.h

Last change on this file was 2, checked in by phkim, 11 years ago

1.phkim

  1. revision copy newcon3sk r27
  • Property svn:executable set to *
File size: 7.9 KB
Line 
1/***************************************************************************
2 *     (c)2008-2011 Broadcom Corporation
3 *
4 *  This program is the proprietary software of Broadcom Corporation and/or its licensors,
5 *  and may only be used, duplicated, modified or distributed pursuant to the terms and
6 *  conditions of a separate, written license agreement executed between you and Broadcom
7 *  (an "Authorized License").  Except as set forth in an Authorized License, Broadcom grants
8 *  no license (express or implied), right to use, or waiver of any kind with respect to the
9 *  Software, and Broadcom expressly reserves all rights in and to the Software and all
10 *  intellectual property rights therein.  IF YOU HAVE NO AUTHORIZED LICENSE, THEN YOU
11 *  HAVE NO RIGHT TO USE THIS SOFTWARE IN ANY WAY, AND SHOULD IMMEDIATELY
12 *  NOTIFY BROADCOM AND DISCONTINUE ALL USE OF THE SOFTWARE.
13 *
14 *  Except as expressly set forth in the Authorized License,
15 *
16 *  1.     This program, including its structure, sequence and organization, constitutes the valuable trade
17 *  secrets of Broadcom, and you shall use all reasonable efforts to protect the confidentiality thereof,
18 *  and to use this information only in connection with your use of Broadcom integrated circuit products.
19 *
20 *  2.     TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS"
21 *  AND WITH ALL FAULTS AND BROADCOM MAKES NO PROMISES, REPRESENTATIONS OR
22 *  WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH RESPECT TO
23 *  THE SOFTWARE.  BROADCOM SPECIFICALLY DISCLAIMS ANY AND ALL IMPLIED WARRANTIES
24 *  OF TITLE, MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR A PARTICULAR PURPOSE,
25 *  LACK OF VIRUSES, ACCURACY OR COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION
26 *  OR CORRESPONDENCE TO DESCRIPTION. YOU ASSUME THE ENTIRE RISK ARISING OUT OF
27 *  USE OR PERFORMANCE OF THE SOFTWARE.
28 *
29 *  3.     TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL BROADCOM OR ITS
30 *  LICENSORS BE LIABLE FOR (i) CONSEQUENTIAL, INCIDENTAL, SPECIAL, INDIRECT, OR
31 *  EXEMPLARY DAMAGES WHATSOEVER ARISING OUT OF OR IN ANY WAY RELATING TO YOUR
32 *  USE OF OR INABILITY TO USE THE SOFTWARE EVEN IF BROADCOM HAS BEEN ADVISED OF
33 *  THE POSSIBILITY OF SUCH DAMAGES; OR (ii) ANY AMOUNT IN EXCESS OF THE AMOUNT
34 *  ACTUALLY PAID FOR THE SOFTWARE ITSELF OR U.S. $1, WHICHEVER IS GREATER. THESE
35 *  LIMITATIONS SHALL APPLY NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF
36 *  ANY LIMITED REMEDY.
37 *
38 * $brcm_Workfile: nexus_vbi.h $
39 * $brcm_Revision: 10 $
40 * $brcm_Date: 2/25/11 4:37p $
41 *
42 * Module Description:
43 *
44 * Revision History:
45 *
46 * $brcm_Log: /nexus/modules/display/7400/include/nexus_vbi.h $
47 *
48 * 10   2/25/11 4:37p erickson
49 * SW7422-255: add AMOL support
50 *
51 * 9   3/5/10 12:33p erickson
52 * SW3556-1043: add usage comments for NEXUS_TeletextLine.lineNumber
53 *
54 * 8   3/10/09 10:58a erickson
55 * PR51253: added NEXUS_TeletextLine.topField
56 *
57 * 7   10/16/08 12:26p erickson
58 * PR47070: rework NEXUS_GemStarData structure
59 *
60 * 6   10/1/08 3:43p erickson
61 * PR47070: extended NEXUS_GemStarData to include baseLineNumber, lineMask
62 *  and errorMask
63 *
64 * 5   9/18/08 12:52p erickson
65 * PR47070: update comments
66 *
67 * 4   6/16/08 1:56p erickson
68 * PR43504: added GemStar
69 *
70 * 3   4/28/08 4:10p erickson
71 * PR41533: unify EIA-608 and EIA-708 closed caption data capture in
72 *  NEXUS_VideoInput_ReadClosedCaption
73 *
74 * 2   1/23/08 2:39p erickson
75 * PR35457: update docs
76 *
77 * 1   1/18/08 2:20p jgarrett
78 * PR 38808: Merging to main branch
79 *
80 * Nexus_Devel/1   1/11/08 1:51p erickson
81 * PR38679: add vbi read/write api's
82 *
83 **************************************************************************/
84#ifndef NEXUS_VBI_H__
85#define NEXUS_VBI_H__
86
87#include "nexus_types.h"
88
89#ifdef __cplusplus
90extern "C" {
91#endif
92
93/*=****************************************
94This file contains common data structures for VBI input and output.
95
96The VBI data types that are currently supported in Nexus are:
97- Closed Captioning
98- Teletext
99- WSS (Widescreen Signalling)
100- CGMS (Copy generation management system - analog)
101- VPS (Video Program System)
102- GemStar
103
104Other types will be added as needed.
105
106VBI data can be read from VideoInput or written to a Display for output on a VEC.
107See nexus_video_input_vbi.h and nexus_display_vbi.h.
108
109See nexus_types.h for NEXUS_ClosedCaptionData.
110
111******************************************/
112
113/**
114Summary:
115Line size used in NEXUS_TeletextLine
116**/
117#define NEXUS_TELETEXT_LINESIZE 42
118
119/**
120Summary:
121One line of teletext data
122
123Description:
124See NEXUS_VideoInput_ReadTeletext and NEXUS_Display_WriteTeletext
125**/
126typedef struct NEXUS_TeletextLine
127{
128    bool topField;          /* If true, top field. Otherwise, bottom field. */
129    unsigned lineNumber;    /* lineNumber is only used to specify field breaks. It is not used for exact VBI line placement.
130                               If you send an array of 10 NEXUS_TeletextLine entries with lineNumbers of 0,1,2,3,4,0,1,2,3,4, then
131                               the first 0..4 series will be sent on one field, the second 0..4 series will be sent on the next.
132                               This allows applications to send large blocks of TT data in one call. It also allows Nexus to remap
133                               line numbers to avoid unencodable VBI lines or VBI line conflicts with other standards like VPS, WSS or CC. */
134    uint8_t framingCode;
135    uint8_t data[NEXUS_TELETEXT_LINESIZE];
136} NEXUS_TeletextLine;
137
138/**
139Summary:
140One field of VPS data
141
142Description:
143See NEXUS_VideoInput_ReadVps and NEXUS_Display_WriteVps
144**/
145typedef struct NEXUS_VpsData
146{
147    uint8_t byte05;
148    uint8_t byte11;
149    uint8_t byte12;
150    uint8_t byte13;
151    uint8_t byte14;
152    uint8_t byte15;
153} NEXUS_VpsData;
154
155/**
156Summary:
157Array size used in NEXUS_GemStarData
158**/
159#define NEXUS_GEMSTAR_MAX_LINES 5
160
161/**
162Summary:
163One entry of GemStar data
164
165Description:
166See NEXUS_VideoInput_ReadGemStar and NEXUS_Display_WriteGemStar.
167See NEXUS_VideoInputVbiSettings.gemStar for decoding options for gemstar data.
168See NEXUS_DisplayVbiSettings.gemStar for encoding options for gemstar data.
169**/
170typedef struct NEXUS_GemStarData
171{
172    bool topField;     /* If true, top field. Otherwise, bottom field. */
173
174    uint32_t lineMask; /* A bitmask indicating the significance of the data[] array.
175                          If the ith bit in ulDataLines is one, then video line i of the field will be encoded with gemstar data.
176                          The gemstar data comes from data[] where data[0] is the first piece of data to be encoded, data[1] is the second piece of data to be encoded, etc.
177                          Example: If lineMask is 1000000001010b, then data[0] going out on line 1, data[1] on line 3 and data[2] on line 12. */
178
179    uint32_t data[NEXUS_GEMSTAR_MAX_LINES]; /* a packed array where each member corresponds to lineMask */
180
181    uint32_t errorMask; /* Parity errors in the captured data[] lines. The Nth bit in errorMask corresponds to the Nth entry in data[].
182                           There is no relationship between lineMask and errorMask.
183                           Example If errorMask is 01010b, then data[1] has an error and data[3] has an error.
184                           errorMask can never be greater than NEXUS_GEMSTAR_MAX_LINES.*/
185 } NEXUS_GemStarData;
186
187/**
188Summary:
189Automated Measurement of Lineup (AMOL) for Nielsen Media Research
190**/
191typedef enum NEXUS_AmolType
192{
193    NEXUS_AmolType_eI,           /* AMOL I             */
194    NEXUS_AmolType_eII_Lowrate,  /* AMOL II, 1 Mbit/s. */
195    NEXUS_AmolType_eII_Highrate, /* AMOL II, 2 Mbit/s. */
196    NEXUS_AmolType_eMax
197} NEXUS_AmolType;
198
199/**
200Summary:
201AMOL data for one video field
202**/
203typedef struct NEXUS_AmolData
204{
205    bool topField;     /* If true, top field. Otherwise, bottom field. */
206#define NEXUS_MAX_AMOL_DATA 24
207    uint8_t data[NEXUS_MAX_AMOL_DATA]; /* typically 6 bytes for type I, 12 bytes for II_Lowrate and 24 bytes for II_Highrate */
208    unsigned length; /* number of bytes in data[] */
209} NEXUS_AmolData;
210
211#ifdef __cplusplus
212}
213#endif
214
215#endif /* NEXUS_VBI_H__ */
Note: See TracBrowser for help on using the repository browser.