source: svn/branches/kctv/newcon3bcm2_21bu/magnum/commonutils/avc/7552/bavc_hdmi.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: 57.2 KB
Line 
1/***************************************************************************
2 *     Copyright (c) 2003-2012, 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: bavc_hdmi.h $
11 * $brcm_Revision: Hydra_Software_Devel/61 $
12 * $brcm_Date: 1/12/12 3:29p $
13 *
14 * Module Description:
15 *
16 * Revision History:
17 *
18 * $brcm_Log: Q:/projects/7425/latest/magnum/commonutils/avc/7425/bavc_hdmi.h $
19 *
20 * Hydra_Software_Devel/61   1/12/12 3:29p rgreen
21 * SW7429-43: add HBR audio packet support
22 *
23 * Hydra_Software_Devel/60   1/4/12 3:30p rgreen
24 * SW7405-5004: Use BAVC_HDMI_IEEE_REGID_LEN macro instead of constant
25 * when specifying length
26 *
27 * Hydra_Software_Devel/59   11/30/11 11:15a rgreen
28 * SW7405-5004: Replace BKNI_Memcmp for structure with field by field
29 * comparison
30 *
31 * Hydra_Software_Devel/58   11/1/11 2:11p rgreen
32 * SW7435-20: Add HDR support for 7435
33 *
34 * Hydra_Software_Devel/57   10/10/11 1:20p rgreen
35 * SW7429-21: Add 7429 Support
36 *
37 * Hydra_Software_Devel/56   6/23/11 2:50p rgreen
38 * SWDTV-6771: Incorporate review comments for  ISRC packets
39 *
40 * Hydra_Software_Devel/55   5/12/11 2:31p rgreen
41 * SWDTV-6771: Add magnum support for ISRCx packet parsing
42 *
43 * Hydra_Software_Devel/54   4/18/11 11:51a rgreen
44 * SW7422-186: Merge HDMI HDCP Repeater Support
45 *
46 * Hydra_Software_Devel/SW7422-186/1   3/31/11 11:17a rgreen
47 * SW7422-186: Add HDCP Repeater support
48 *
49 * Hydra_Software_Devel/53   3/30/11 4:47p rbshah
50 * SWDTV-6184: 35233: Get HDR PI to build for the 35233 DTV chip.
51 *
52 * Hydra_Software_Devel/52   2/11/11 2:42p rgreen
53 * SW35230-3014: Add support for YCC Qunatization and IT Content Type
54 * fields in AVI InfoFrame
55 *
56 * Hydra_Software_Devel/51   1/31/11 6:29p rgreen
57 * SW7422-129: Add HDMI Rx Key Loading support
58 *
59 * Hydra_Software_Devel/50   1/27/11 2:34p vle
60 * SW7420-1289: Add NEXUS APIs to get/set HDMI AVI InfoFrame, HDMI Audio
61 * Infoframe
62 *
63 * Hydra_Software_Devel/49   1/25/11 4:59p rgreen
64 * SWBLURAY-23819: Add support for 7640
65 *
66 * Hydra_Software_Devel/48   12/2/10 2:43p rgreen
67 * SW35230-2374: add support to verify HDCP keys stored in OTP
68 *
69 * Hydra_Software_Devel/47   11/22/10 8:16p jhaberf
70 * SW7344-11: Fixed build error
71 *
72 * Hydra_Software_Devel/46   11/22/10 4:11p vle
73 * SW7344-11: Add support for 7344/7346
74 *
75 * Hydra_Software_Devel/45   11/9/10 10:51a rgreen
76 * SW35125-12: Add support for 35125
77 *
78 * Hydra_Software_Devel/44   10/18/10 3:27p rgreen
79 * SW35230-1723:  Use enumeration types vs uint32_t types for HDMI color
80 * depth and Pixel Packing
81 *
82 * Hydra_Software_Devel/43   10/13/10 4:26p rgreen
83 * SW35230-1723:  Change General Control Packet field declarations from
84 * uint8_t to uint32_t
85 *
86 * Hydra_Software_Devel/42   9/28/10 7:18p vle
87 * SW7422-23: Refactor HDMI code to isolate platform dependent code
88 * furthermore. Add support for 7422 and other 40nm platforms.
89 *
90 * Hydra_Software_Devel/41   8/30/10 3:03p rgreen
91 * SW7425-21: Add support for 7422/7425
92 *
93 * Hydra_Software_Devel/40   4/14/10 7:19p rgreen
94 * SW7405-3997: Fix creation of IEEE RegID for VSI transmission: SW7405-
95 * 3997:
96 *
97 * Hydra_Software_Devel/39   3/15/10 5:13p rgreen
98 * SW3548-2820: Add support for  VS Infoframe 3D Structure and Ext Data
99 * fields
100 *
101 * Hydra_Software_Devel/38   1/13/10 4:51p rgreen
102 * SW3548-2708,SW7401-4355:
103 * Add enumerations for Vendor Specific InfoFrame
104 * Add enumeration to string functions for Vendor Specific InfoFrame
105 *
106 * Hydra_Software_Devel/37   11/24/09 5:48p rgreen
107 * SW35230-15: Add 35230 Support
108 *
109 * Hydra_Software_Devel/36   10/13/09 1:07p rgreen
110 * SW3548-2013: Add support for SPD InfoFrame debugging
111 *
112 * Hydra_Software_Devel/35   10/5/09 10:31a rgreen
113 * SW3548-2013: change packet type debug messages from numbers to text
114 *
115 * Hydra_Software_Devel/34   6/22/09 3:12p rgreen
116 * PR56132: Add support for HDMI Vendor Specific Info Frame
117 *
118 * Hydra_Software_Devel/33   5/15/09 11:48a rgreen
119 * PR54000: Add conversion debug functions for Video Id Code (VIC) to
120 * string
121 *
122 * Hydra_Software_Devel/32   5/12/09 8:49p rgreen
123 * PR54000: Use debug enum to string conversion functions
124 *
125 * Hydra_Software_Devel/31   5/6/09 7:08p vle
126 * PR53373, PR52978: Add HDMI 1.3 support for 7420 and 7635
127 *
128 * Hydra_Software_Devel/bdvd_v3.0/2   5/1/09 9:29a rbshah
129 * PR_14471[DVD]:[ see HiDef-DVD bug tracking system for more info ].
130 * Bring HDMI to life. Audio is muted unconditionally all the time to
131 * avoid noisy output (given the chip bug).
132 *
133 * Qucik verification of HDCP and all supported video resolutions.
134 *
135 * Reviewer: Narasimha.
136 *
137 * Hydra_Software_Devel/bdvd_v3.0/1   4/24/09 1:49p jquinlan
138 * PR 14269
139 *
140 * Hydra_Software_Devel/30   3/26/09 10:55a rgreen
141 * PR52524: set index to indicate what CSC table to load based on
142 * AviInfoframe
143 *
144 * Hydra_Software_Devel/29   1/12/09 7:22p vle
145 * PR49277: Merge to main branch
146 * Add pixel repetition support
147 *
148 * Hydra_Software_Devel/PR49277/2   1/12/09 7:19p vle
149 * PR49277: Update field name.
150 *
151 * Hydra_Software_Devel/PR49277/1   1/8/09 4:30p vle
152 * PR49277: Add pixel repetition support for 480p
153 *
154 * Hydra_Software_Devel/28   1/8/09 3:26p vle
155 * PR50081: Merge to main branch.
156 * Add support for deep color
157 *
158 * Hydra_Software_Devel/27   12/17/08 12:23p vle
159 * PR48925: Merge to main branch.
160 *
161 * Hydra_Software_Devel/HDMI_TX_Plugfest11_200811/1   11/12/08 3:46p vle
162 * PR48925: Add logical address 10 as one of the possible logical address
163 * for STB devices.
164 *
165 * Hydra_Software_Devel/PR50081/1   12/9/08 12:11p vle
166 * PR50081: Add support for deep color
167 *
168 * Hydra_Software_Devel/26   10/30/08 5:51p vle
169 * PR47447: Merge to main branch.
170 * Add new GetReceivedMessage API. Use same CEC configuration for
171 * transmitter and receiver.
172 *
173 * Hydra_Software_Devel/25   10/3/08 6:10p rgreen
174 * PR45761:Fix debug reporting for GC packets containing no AvMute status
175 *
176 * Hydra_Software_Devel/PR47447/1   9/30/08 7:03p vle
177 * PR47447: Add new GetReceivedMessage API. Use same CEC configuration for
178 * transmitter and receiver.
179 *
180 * Hydra_Software_Devel/24   9/25/08 2:28a vle
181 * PR44535: Add support for HDMI 1.3 for 7601
182 *
183 * Hydra_Software_Devel/23   9/17/08 3:47p rgreen
184 * PR45761: provide GCP and audio clock regeneration packet to the high
185 * level application
186 *
187 * Hydra_Software_Devel/PR45761/1   9/17/08 5:16p honglang
188 * PR45761: provide GCP and audio clock regeneration packet to the high
189 * level application
190 *
191 * Hydra_Software_Devel/22   7/21/08 2:35p rgreen
192 * PR44781: Fix 3563 compilation
193 *
194 * Hydra_Software_Devel/21   7/10/08 11:47a rgreen
195 * PR44523: Add support for Vendor Specific Infoframe
196 *
197 * Hydra_Software_Devel/PR44523/1   7/8/08 4:34p rgreen
198 * PR44523: Add support for Vendor Specific Infoframe
199 *
200 * Hydra_Software_Devel/20   5/16/08 4:34p rgreen
201 * PR38947,PR39463: Add raw packet data to appropriate BAVC_HDMI_xxxx
202 * packet types
203 *
204 * Hydra_Software_Devel/19   3/4/08 5:36p rgreen
205 * PR38946,PR38947,PR39463,PR39503: Add support for HDM/HDR PIs for 3548
206 * and 3556
207 *
208 * Hydra_Software_Devel/18   2/26/08 5:43p jgarrett
209 * PR 39991: Merging new HDCPlib changes to main branch
210 *
211 * Hydra_Software_Devel/Syslib_Initiative/1   9/14/07 6:19p vle
212 * PR 32936: Syslib Initiative
213 *
214 * Hydra_Software_Devel/17   5/17/07 4:28p rgreen
215 * PR29789: Fix default mode for Deep Color Detection
216 * Add Install/Uninstall callback functions for Gamut Boundary Description
217 * change notification
218 * Cleanup variable names/enumeration
219 *
220 * Hydra_Software_Devel/16   5/14/07 2:13p rgreen
221 * PR29789: Add HDMI 1.3 xvYCC support
222 *
223 * Hydra_Software_Devel/15   5/9/07 7:45p rgreen
224 * PR29789: Add HDMI 1.3 enumerations
225 *
226 * Hydra_Software_Devel/14   5/8/07 7:13p rgreen
227 * PR29789: Add GCP Packet Structure and BAVC_HDMI_AviInfoFrame_Colorspace
228 * enumeration for extended Colorspace
229 *
230 * Hydra_Software_Devel/13   1/22/07 5:17p jerryy
231 * PR27179: Add HDR PI function BHDR_GetDetectedVideoFormatInfo to return
232 * HDMI Rx detected format information
233 *
234 * Hydra_Software_Devel/11   9/7/06 1:30p rgreen
235 * PR23267: Add support for 3563; Use macro to indicate HDMI Receiver
236 * instead of CHIP ID
237 *
238 * Hydra_Software_Devel/10   8/16/06 6:18p rgreen
239 * PR23267: Fix for merge back to Hydra branch.  Use same definitions for
240 * both HDR and HDM PIs
241 *
242 * Hydra_Software_Devel/9   8/16/06 2:21p rgreen
243 * PR23267: Restore removed code as a result of the merge;  Use same
244 * enumeration in HDR and HDM PIs
245 *
246 * Hydra_Software_Devel/8   8/15/06 2:27p rgreen
247 * PR23267:Merge back to Hydra_Software_Devel
248 *
249 * Hydra_Software_Devel/Refsw_Devel_3560/5   8/3/06 4:33p ditian
250 * PR23077: modified BAVC_HDMI_Packet  to get the correct raw/unparsed
251 * data . exchanged the sequence of Version and Length.
252 *
253 * Hydra_Software_Devel/Refsw_Devel_3560/4   7/31/06 3:54p ditian
254 * PR23077: Add more functions to parse HDMI packets and deliver the
255 * raw/unparsed data and parsed data to settop api level. such as
256 * AviInfo, AudioInfo, SPDInfo, AudioContentProtection and so on. And get
257 * the HDMI model status (HDMI or DVI)
258 *
259 * Hydra_Software_Devel/Refsw_Devel_3560/3   3/21/06 4:52p zhangyi
260 * PR18995:Merge to Refsw_Devel_3560
261 *
262 * Hydra_Software_Devel/7   7/19/06 2:50p rgreen
263 * PR22786: Add BHDM_Get/Set_AudioInfoFrame functions to support Audio
264 * Infoframe modification
265 *
266 * Hydra_Software_Devel/6   2/1/06 6:56p rgreen
267 * PR14359,PR19283: HDMI CEC Support
268 * Move BHDM_CEC_xxx definitions to bavc_hdmi.h (BAVC_HDMI_CEC_xxx for
269 * shared use with both Rx and Tx devices
270 * Update CEC code for getting CEC logical/physical addresses
271 *
272 * Hydra_Software_Devel/5   12/2/05 2:10p rgreen
273 * PR18188: Add support to override Picture Aspect Ratio in Tx AVI
274 * Infoframe Packet
275 *
276 * Hydra_Software_Devel/4   11/22/05 11:35a rgreen
277 * PR18188: Add support to override Video ID Code HDMI  Tx Avi Info Frame.
278 *
279 * Hydra_Software_Devel/3   11/8/05 10:20a rgreen
280 * PR17781:
281 * Add HDMI Packet structure
282 *
283 * Hydra_Software_Devel/2   10/14/05 10:30a rgreen
284 * PR17542: Include bavc.h for needed for BCM3560 declarations
285 *
286 * Hydra_Software_Devel/1   10/11/05 5:47p rgreen
287 * PR17542: Share HDMI declarations between HDM and HDR portinginterfaces
288 *
289 ***************************************************************************/
290 
291#ifndef BAVC_HDMI_H__
292#define BAVC_HDMI_H__
293
294#include "bstd.h"
295
296/* HDMI Rx Chips */
297#if (BCHP_CHIP == 3560) || (BCHP_CHIP == 3563)  \
298 || (BCHP_CHIP == 3548) || (BCHP_CHIP == 3556) \
299 || (BCHP_CHIP == 35230)|| (BCHP_CHIP == 35125) \
300 || (BCHP_CHIP == 35233)|| (BCHP_CHIP == 35130) \
301 || (BCHP_CHIP == 7422) || (BCHP_CHIP == 7425) \
302 || (BCHP_CHIP == 7640) || (BCHP_CHIP == 7429) \
303 || (BCHP_CHIP == 7435)
304#define BAVC_HDMI_RECEIVER 1
305#endif
306
307/* HDMI 1.3 Support */
308       /* RX CHIPS */
309#if ((BCHP_CHIP==3563) && (BCHP_VER >= BCHP_VER_C0))  \
310  || (BCHP_CHIP == 3548) || (BCHP_CHIP == 3556)  \
311  || (BCHP_CHIP == 35230) || (BCHP_CHIP == 35125) || (BCHP_CHIP == 35233)\
312       /* TX CHIPS */                                                 \
313  || (BCHP_CHIP == 7601) || (BCHP_CHIP == 7635) || (BCHP_CHIP == 7630) \
314  || (BCHP_CHIP == 7420) || (BCHP_CHIP == 7125) || (BCHP_CHIP == 7340) \
315  || (BCHP_CHIP == 7342) || (BCHP_CHIP == 7550) || (BCHP_CHIP == 7408) \
316  || (BCHP_CHIP == 7468) || (BCHP_CHIP == 7208) \
317                /* 40nm TX CHIPS */                                   \
318  || (BCHP_CHIP == 7358) || (BCHP_CHIP == 7344) || (BCHP_CHIP == 7346) \
319  || (BCHP_CHIP == 7231) || (BCHP_CHIP == 7552) \
320       /* COMBO RX/TX CHIPS */                                \
321  || (BCHP_CHIP == 7422) || (BCHP_CHIP == 7425) || (BCHP_CHIP == 7640) \
322  || (BCHP_CHIP == 7429) || (BCHP_CHIP == 7435)
323#define BAVC_HDMI_1_3_SUPPORT 1
324#endif
325
326#define BAVC_HDMI_HDCP_N_PRIVATE_KEYS 40
327#define BAVC_HDMI_HDCP_KSV_LENGTH 5
328#define BAVC_HDMI_HDCP_AN_LENGTH 8
329
330
331/******************************************************************************
332Summary:
333I2C Rx HDCP Registers
334*******************************************************************************/
335/* Rx Bksv value (Read Only) */
336#define BAVC_HDMI_HDCP_RX_BKSV0                 0x00
337#define BAVC_HDMI_HDCP_RX_BKSV1                 0x01
338#define BAVC_HDMI_HDCP_RX_BKSV2                 0x02
339#define BAVC_HDMI_HDCP_RX_BKSV3                 0x03
340#define BAVC_HDMI_HDCP_RX_BKSV4                 0x04
341
342/* Rx Link verification value (Read Only) */
343#define BAVC_HDMI_HDCP_RX_RI0               0x08
344#define BAVC_HDMI_HDCP_RX_RI1               0x09
345
346/*  Rx Enhanced Link Verification Response (Read Only) */
347#define BAVC_HDMI_HDCP_RX_PJ             0x0A
348
349
350/* Tx Aksv value (Write Only) */
351#define BAVC_HDMI_HDCP_RX_AKSV0                 0x10
352#define BAVC_HDMI_HDCP_RX_AKSV1                 0x11
353#define BAVC_HDMI_HDCP_RX_AKSV2                 0x12
354#define BAVC_HDMI_HDCP_RX_AKSV3                 0x13
355#define BAVC_HDMI_HDCP_RX_AKSV4                 0x14
356
357/*  Rx HDCP Enable HDCP 1.1 features (Write Only) */
358#define BAVC_HDMI_HDCP_RX_AINFO             0x15
359#define BAVC_HDMI_HDCP_RX_ENABLE_1_1_FEATURES 0x02
360
361/* Session Random Number (An) value generated by the Tx (Write Only) */
362#define BAVC_HDMI_HDCP_RX_AN0                   0x18
363#define BAVC_HDMI_HDCP_RX_AN1                   0x19
364#define BAVC_HDMI_HDCP_RX_AN2                   0x1a
365#define BAVC_HDMI_HDCP_RX_AN3                   0x1b
366#define BAVC_HDMI_HDCP_RX_AN4                   0x1c
367#define BAVC_HDMI_HDCP_RX_AN5                   0x1d
368#define BAVC_HDMI_HDCP_RX_AN6                   0x1e
369#define BAVC_HDMI_HDCP_RX_AN7                   0x1f
370
371/* HDCP Repeater SHA-1 Hash value V' */
372#define BAVC_HDMI_HDCP_REPEATER_SHA1_V_H0 0x20
373#define BAVC_HDMI_HDCP_REPEATER_SHA1_V_H1 0x24
374#define BAVC_HDMI_HDCP_REPEATER_SHA1_V_H2 0x28
375#define BAVC_HDMI_HDCP_REPEATER_SHA1_V_H3 0x2c
376#define BAVC_HDMI_HDCP_REPEATER_SHA1_V_H4 0x30
377
378/* Rx Capabilities Register (Read Only) */
379#define BAVC_HDMI_HDCP_RX_BCAPS          0x40
380#define BAVC_HDMI_HDCP_RX_BCAPS_KSV_FIFO_RDY 0x20         
381
382/* Rx Status Registers (Read Only) */
383#define BAVC_HDMI_HDCP_RX_BSTATUS        0x41 /* 2 Bytes */
384#define BAVC_HDMI_HDCP_RX_BSTATUS_DEPTH        0x0700
385#define BAVC_HDMI_HDCP_RX_BSTATUS_DEVICE_COUNT 0x007F
386
387#define BAVC_HDMI_HDCP_REPEATER_KSV_FIFO 0x43 /* 2 Bytes */
388
389/* HDCP Repeater Registers */
390#define BAVC_HDMI_HDCP_REPEATER_MAX_DEVICE_COUNT 127
391#define BAVC_HDMI_HDCP_REPEATER_MAX_DEPTH 7
392                                                                                                                                                 
393
394
395/******************************************************************************
396Summary:
397Enumerated Type specifying the current status iof the attached receiver.
398
399Description:
400The enumeration types listed can be compared with the value of the returned
401BStatus register from the Receiver
402
403See Also:
404        BAVC_HDMI_HDCP_GetRxStatus
405
406*******************************************************************************/
407typedef enum BAVC_HDMI_HDCP_RxStatus
408{
409   BAVC_HDMI_HDCP_RxStatus_eHdmiMode             = 0x1000, /* Rx in HDMI mode        */
410   BAVC_HDMI_HDCP_RxStatus_eMaxRepeatersExceeded = 0x0800, /* Rx has too many repeaters */
411   BAVC_HDMI_HDCP_RxStatus_eMaxDevicesExceeded   = 0x0080  /* Rx has too many devices */
412} BAVC_HDMI_HDCP_RxStatus ;
413
414
415
416 /******************************************************************************
417Summary:
418Constants used in association with the Infofromes
419
420Description:
421None
422
423See Also:
424        o BAVC_HDMI_AviInfoFrame
425        o BAVC_HDMI_AudioInfoFrame
426        o BAVC_HDMI_SPDInfoFrame
427        o BAVC_HDMI_ACP
428
429*******************************************************************************/
430#define BAVC_HDMI_PACKET_DATA_LENGTH 28
431/* Packet Byte (PB) Length */
432#define BAVC_HDMI_PB_LENGTH 28
433#define BAVC_HDMI_MAX_VIDEO_ID_CODES 35
434
435
436
437
438typedef uint8_t BAVC_HDMI_HDCP_KSV[BAVC_HDMI_HDCP_KSV_LENGTH] ;
439
440
441/******************************************************************************
442Summary:
443Enumerated Type of the status of a particular packet
444
445Description:
446The different status of packets at the HDMI Rx
447
448
449See Also:
450
451*******************************************************************************/
452typedef enum
453{
454        BAVC_HDMI_PacketStatus_eNotReceived = 0, /* initial state */
455        BAVC_HDMI_PacketStatus_eStopped,
456        BAVC_HDMI_PacketStatus_eUpdated
457} BAVC_HDMI_PacketStatus ;
458
459
460/***************************************************************************
461Summary:
462Structure containing the HDMI Packet data: Type, Version, Length and Packet Data bytes
463
464****************************************************************************/
465typedef struct 
466{
467        uint8_t Type ;
468        uint8_t Version ;
469        uint8_t Length ;       
470        uint8_t DataBytes[BAVC_HDMI_PB_LENGTH] ;
471} BAVC_HDMI_Packet ;
472
473
474/******************************************************************************
475Summary:
476Enumerated Type of the number of bits per pixel
477
478Description:
479The enumeration can be used to set/read the number of bits per pixel in the HDMI General
480Control Packets
481
482*******************************************************************************/
483typedef enum
484{
485        BAVC_HDMI_BitsPerPixel_e24bit = 0,
486        BAVC_HDMI_BitsPerPixel_e30bit,
487        BAVC_HDMI_BitsPerPixel_e36bit,
488        BAVC_HDMI_BitsPerPixel_e48bit
489} BAVC_HDMI_BitsPerPixel;
490
491
492/******************************************************************************
493Summary:
494Enumerated Type of pixel repetition setting.
495
496Description:
497The enumeration can be used to set/read the number of pixel repetition in the AVI Infoframe
498Packets
499
500*******************************************************************************/
501typedef enum
502{
503        BAVC_HDMI_PixelRepetition_eNone = 0,
504        BAVC_HDMI_PixelRepetition_e2x,
505        BAVC_HDMI_PixelRepetition_e3x,
506        BAVC_HDMI_PixelRepetition_e4x,
507        BAVC_HDMI_PixelRepetition_e5x,
508        BAVC_HDMI_PixelRepetition_e6x,
509        BAVC_HDMI_PixelRepetition_e7x,   
510        BAVC_HDMI_PixelRepetition_e8x,   
511        BAVC_HDMI_PixelRepetition_e9x,
512        BAVC_HDMI_PixelRepetition_e10x
513} BAVC_HDMI_PixelRepetition ;
514
515
516
517
518 /******************************************************************************
519Summary:
520Enumerated Type of the type of Colorspace (Pixel Encoding)  in HDMI AVI Infoframe Packets
521
522Description:
523The enumeration can be used to set/read the Pixel Encoding Colorspace in the HDMI AVI
524Infoframe Packets.
525
526See Also:
527        o BAVC_HDMI_AviInfoFrame
528
529*******************************************************************************/
530typedef enum
531{
532        BAVC_HDMI_AviInfoFrame_Colorspace_eRGB = 0,
533        BAVC_HDMI_AviInfoFrame_Colorspace_eYCbCr422,
534        BAVC_HDMI_AviInfoFrame_Colorspace_eYCbCr444,
535        BAVC_HDMI_AviInfoFrame_Colorspace_eFuture
536} BAVC_HDMI_AviInfoFrame_Colorspace ;
537
538
539 /******************************************************************************
540Summary:
541Enumerated Type of the Active Info bit (valid or invalid) transmited to an HDMI
542Receiver indicating if the Active Info fields contain valid data.
543
544Description:
545The enumeration can be used to set the Colorspace transmitted in the HDMI AVI
546Packets.
547
548See Also:
549        o BAVC_HDMI_AviInfoFrame
550
551*******************************************************************************/
552typedef enum
553{
554        BAVC_HDMI_AviInfoFrame_ActiveInfo_eInvalid = 0,
555        BAVC_HDMI_AviInfoFrame_ActiveInfo_eValid
556} BAVC_HDMI_AviInfoFrame_ActiveInfo ;
557
558
559/******************************************************************************
560Summary:
561Enumerated Type for information on Horizonatal and Vertical Bar
562
563Description:
564The enumeration can be used to configure the HDMI AVI packet for sending to the
565HDMI Rx
566
567See Also:
568        o BAVC_HDMI_AviInfoFrame
569        o BAVC_HDMI_AviInfoFrame_Colorspace
570        o BAVC_HDMI_AviInfoFrame_ScanInfo
571*******************************************************************************/
572typedef enum
573{
574        BAVC_HDMI_AviInfoFrame_BarInfo_eInvalid,
575        BAVC_HDMI_AviInfoFrame_BarInfo_eVerticalValid,
576        BAVC_HDMI_AviInfoFrame_BarInfo_eHorizValid,
577        BAVC_HDMI_AviInfoFrame_BarInfo_eVertHorizValid
578} BAVC_HDMI_AviInfoFrame_BarInfo ;
579
580
581/******************************************************************************
582Summary:
583Enumerated Type for information on Scan Information
584
585Description:
586The enumeration can be used to configure the HDMI AVI packet for sending to the
587HDMI Rx
588
589See Also:
590        o BAVC_HDMI_AviInfoFrame
591        o BAVC_HDMI_AviInfoFrame_Colorspace
592        o BAVC_HDMI_AviInfoFrame_BarInfo
593*******************************************************************************/
594typedef enum
595{
596        BAVC_HDMI_AviInfoFrame_ScanInfo_eNoData,
597        BAVC_HDMI_AviInfoFrame_ScanInfo_eOverScanned,
598        BAVC_HDMI_AviInfoFrame_ScanInfo_eUnderScanned
599} BAVC_HDMI_AviInfoFrame_ScanInfo ;
600
601
602/******************************************************************************
603Summary:
604Enumerated Type of the Colorimetry stored in the AVI Info Frame
605
606Description:
607The enumeration can be used to parse/configure the HDMI AVI packet
608received/sent
609
610See Also:
611        o BAVC_HDMI_AviInfoFrame
612        o BAVC_HDMI_AviInfoFrame_Colorspace
613*******************************************************************************/
614typedef enum
615{
616        BAVC_HDMI_AviInfoFrame_Colorimetry_eNoData =  0,
617        BAVC_HDMI_AviInfoFrame_Colorimetry_eSmpte170,
618        BAVC_HDMI_AviInfoFrame_Colorimetry_eItu709,
619        BAVC_HDMI_AviInfoFrame_Colorimetry_eFuture,
620        BAVC_HDMI_AviInfoFrame_Colorimetry_eExtended = BAVC_HDMI_AviInfoFrame_Colorimetry_eFuture
621       
622} BAVC_HDMI_AviInfoFrame_Colorimetry ;
623
624
625
626/******************************************************************************
627Summary:
628Enumerated Type of the Picture Aspect Ratio stored in the AVI Info Frame
629
630Description:
631The enumeration can be used to parse/configure the HDMI AVI packet
632received/sent
633
634See Also:
635        o BAVC_HDMI_AviInfoFrame
636        o BAVC_HDMI_AviInfoFrame_ActiveFormatAspectRatio
637*******************************************************************************/
638typedef enum
639{
640        BAVC_HDMI_AviInfoFrame_PictureAspectRatio_eNoData = 0,
641        BAVC_HDMI_AviInfoFrame_PictureAspectRatio_e4_3,
642        BAVC_HDMI_AviInfoFrame_PictureAspectRatio_e16_9,
643        BAVC_HDMI_AviInfoFrame_PictureAspectRatio_eFuture
644} BAVC_HDMI_AviInfoFrame_PictureAspectRatio ;
645
646
647/******************************************************************************
648Summary:
649Enumerated Type of the Active Format Aspect Ratio stored in the AVI Info Frame
650
651Description:
652The enumeration can be used to parse/configure the HDMI AVI packet
653received/sent
654
655See Also:
656        o BAVC_HDMI_AviInfoFrame
657        o BAVC_HDMI_AviInfoFrame_PictureAspectRatio
658*******************************************************************************/
659typedef enum
660{
661        BAVC_HDMI_AviInfoFrame_ActiveFormatAspectRatio_ePicture    =  8,
662        BAVC_HDMI_AviInfoFrame_ActiveFormatAspectRatio_e4_3Center  =  9,
663        BAVC_HDMI_AviInfoFrame_ActiveFormatAspectRatio_e16_9Center = 10,
664        BAVC_HDMI_AviInfoFrame_ActiveFormatAspectRatio_e14_9Center = 11,
665        BAVC_HDMI_AviInfoFrame_ActiveFormatAspectRatio_eOther      =  0  /* HDMI_TODO */
666} BAVC_HDMI_AviInfoFrame_ActiveFormatAspectRatio ;        /* add support for DVB AFD */
667                                                   /* see CEA 861 Spec */
668
669
670/******************************************************************************
671Summary:
672Enumerated Type of the Picture Scaling used to parse/configure the HDMI AVI
673packet received/sent
674
675Description:
676The enumeration can be used to configure the HDMI AVI packet for sending to the
677HDMI Rx
678
679See Also:
680        o BAVC_HDMI_AviInfoFrame
681*******************************************************************************/
682typedef enum
683{
684        BAVC_HDMI_AviInfoFrame_Scaling_eNoScaling = 0,
685        BAVC_HDMI_AviInfoFrame_Scaling_eHScaling,
686        BAVC_HDMI_AviInfoFrame_Scaling_eVScaling,
687        BAVC_HDMI_AviInfoFrame_Scaling_eHVScaling
688} BAVC_HDMI_AviInfoFrame_Scaling ;
689
690
691
692/******************************************************************************
693Summary:
694Enumerated Type for Extended Colorimetry (IED 61966-2-4) See CEA-861-D Table 11
695used to parse/configure the HDMI AVI packet received/sent
696
697Description:
698The enumeration can be used to configure/parse the HDMI AVI packet for sending/receiving 
699
700See Also:
701        o BAVC_HDMI_AviInfoFrame
702*******************************************************************************/
703typedef enum
704{
705        BAVC_HDMI_AviInfoFrame_ExtendedColorimetry_exvYCC601 = 0,
706        BAVC_HDMI_AviInfoFrame_ExtendedColorimetry_exvYCC709 ,
707        BAVC_HDMI_AviInfoFrame_ExtendedColorimetry_exvReserved
708} BAVC_HDMI_AviInfoFrame_ExtendedColorimetry ;
709
710
711/******************************************************************************
712Summary:
713Enumerated Type for Quantization Range See CEA-861-D Table 11
714used to parse/configure the HDMI AVI packet received/sent
715
716Description:
717The enumeration can be used to configure/parse the HDMI AVI packet for sending/receiving 
718
719See Also:
720        o BAVC_HDMI_AviInfoFrame
721*******************************************************************************/
722typedef enum
723{
724        BAVC_HDMI_AviInfoFrame_RGBQuantizationRange_eDefault    =  0,
725        BAVC_HDMI_AviInfoFrame_RGBQuantizationRange_eLimitedRange  =  1,
726        BAVC_HDMI_AviInfoFrame_RGBQuantizationRange_eFullRange = 2,
727        BAVC_HDMI_AviInfoFrame_RGBQuantizationRange_eReserved = 3
728} BAVC_HDMI_AviInfoFrame_RGBQuantizationRange ;       
729                                                   /* see CEA 861-D Spec */
730
731/******************************************************************************
732Summary:
733Enumerated Type for IT Content See CEA-861-D Table 11
734used to parse/configure the HDMI AVI packet received/sent
735
736Description:
737The enumeration can be used to configure/parse the HDMI AVI packet for sending/receiving 
738
739See Also:
740        o BAVC_HDMI_AviInfoFrame
741*******************************************************************************/
742typedef enum
743{
744        BAVC_HDMI_AviInfoFrame_ITContent_eNoData    =  0,
745        BAVC_HDMI_AviInfoFrame_ITContent_eITContent  =  1
746} BAVC_HDMI_AviInfoFrame_ITContent ;       
747                                                   /* see CEA 861-D Spec */
748
749typedef enum
750{
751        BAVC_HDMI_AviInfoFrame_VideoFormat_eIT = 0,
752        BAVC_HDMI_AviInfoFrame_VideoFormat_eSD,
753        BAVC_HDMI_AviInfoFrame_VideoFormat_eHD
754} BAVC_HDMI_AviInfoFrame_VideoFormat ;
755
756
757 /******************************************************************************
758Summary:
759Enumerated Type of the type of IT Content Type (CN1 CN0)in HDMI AVI Infoframe Packets
760
761Description:
762The enumeration can be used to set/read the Content Type in the HDMI AVI  Infoframe Packets.
763See CEA-861-E
764
765See Also:
766        o BAVC_HDMI_AviInfoFrame
767
768*******************************************************************************/
769typedef enum
770{
771        BAVC_HDMI_AviInfoFrame_ContentType_eGraphics = 0,
772        BAVC_HDMI_AviInfoFrame_ContentType_ePhoto,
773        BAVC_HDMI_AviInfoFrame_ContentType_eCinema,
774        BAVC_HDMI_AviInfoFrame_ContentType_eGame
775} BAVC_HDMI_AviInfoFrame_ContentType ;
776
777                                                                                                   
778
779 /******************************************************************************
780Summary:
781Enumerated Type of the type of YCC Quantization Range in HDMI AVI Infoframe Packets
782
783Description:
784The enumeration can be used to set/read the YCC Quantization Range (YQ1 YQ0) in the HDMI AVI  Infoframe Packets.
785See CEA-861-E
786
787See Also:
788        o BAVC_HDMI_AviInfoFrame
789
790*******************************************************************************/
791typedef enum
792{
793        BAVC_HDMI_AviInfoFrame_YccQuantizationRange_eLimited = 0,
794        BAVC_HDMI_AviInfoFrame_YccQuantizationRange_eFull,
795        BAVC_HDMI_AviInfoFrame_YccQuantizationRange_eReserved
796} BAVC_HDMI_AviInfoFrame_YccQuantizationRange ;
797
798
799
800/***************************************************************************
801Summary:
802Structure containing the contents of the HDMI AVI Info Frame
803
804Note:
805For HDMI Rx (i.e. BCM3560), all AVI field values are parsed from the received
806AVI frame.
807
808For HDMI Tx (i,e, BCM7038), some AVI field values are populated based on
809other magnum settings i.e BFMT_VideoFmt etc.
810
811****************************************************************************/
812typedef struct _HDMI_AVI_INFOFRAME_
813{
814        /*
815        --NOTE: modifications to this HDMI_AVI_INFOFRAME  structure must be
816        -- accounted for in the BHDM_P_HdmiSettingsChange function
817        */
818       
819        /* Generate internally for HDMI Tx platforms */
820        BAVC_HDMI_AviInfoFrame_Colorspace ePixelEncoding ;      /* Y1Y0 - Rx Only*/
821       
822        bool bOverrideDefaults ;
823
824        /* Pixel Encoding (RGB44 or YCbCr444) based on Colorimetry  */
825        BAVC_HDMI_AviInfoFrame_ActiveInfo eActiveInfo ; /* A0 */
826        BAVC_HDMI_AviInfoFrame_BarInfo    eBarInfo ;    /* B1B0 */
827        BAVC_HDMI_AviInfoFrame_ScanInfo   eScanInfo ;   /* S1S0 */
828
829        /* Generate internally from BAVC_MatrixCoefficients for HDMI Tx platforms */
830        BAVC_HDMI_AviInfoFrame_Colorimetry eColorimetry ;  /* C1C0 - Rx Only*/
831
832        /* for Colorimetry (C1C0) requires conversion to BCM magnum values */
833
834        /* By default, Picture AR (M1M0) is generated from BFMT_AspectRatio which
835           requires conversion to HDMI AVI values.
836           Otherwise Picture AR can be overridden if bOverrideDefaults is set */
837        BAVC_HDMI_AviInfoFrame_PictureAspectRatio ePictureAspectRatio ; /* M1M0 */
838
839        BAVC_HDMI_AviInfoFrame_ActiveFormatAspectRatio eActiveFormatAspectRatio ; /* R3R0 */
840
841        BAVC_HDMI_AviInfoFrame_Scaling eScaling ; /* SC1SC0 */
842
843        uint8_t VideoIdCode ; /* VICn */
844
845        /* Generate internally from eVideoFmt for HDMI Tx platforms */
846        uint8_t PixelRepeat ;
847
848
849#if BAVC_HDMI_1_3_SUPPORT
850        BAVC_HDMI_AviInfoFrame_ITContent eITContent ; /*ITC */
851
852        BAVC_HDMI_AviInfoFrame_ExtendedColorimetry eExtendedColorimetry ; /* EC2EC1EC0 */
853
854        BAVC_HDMI_AviInfoFrame_RGBQuantizationRange eRGBQuantizationRange ; /* Q1Q0 */
855
856        BAVC_HDMI_AviInfoFrame_YccQuantizationRange eYccQuantizationRange ; /* YQ1YQ0 */
857 
858        BAVC_HDMI_AviInfoFrame_ContentType eContentType ;  /* CN1CN0 */
859#endif
860
861
862        /* bar info */
863        uint16_t TopBarEndLineNumber ;
864        uint16_t BottomBarStartLineNumber ;
865
866        uint16_t LeftBarEndPixelNumber ;
867        uint16_t RightBarEndPixelNumber ;
868
869#if BAVC_HDMI_RECEIVER
870        BAVC_HDMI_PacketStatus ePacketStatus ;
871        BAVC_HDMI_Packet stPacket ;
872#endif 
873       
874} BAVC_HDMI_AviInfoFrame ;
875
876
877
878
879/*******************************************************************************
880Summary:
881Enumerated Type for Coding Type. See CEA-861-D
882********************************************************************************/
883typedef enum
884{
885        BAVC_HDMI_AudioInfoFrame_CodingType_eReferToStream,
886        BAVC_HDMI_AudioInfoFrame_CodingType_ePCM,
887        BAVC_HDMI_AudioInfoFrame_CodingType_eAC3,
888        BAVC_HDMI_AudioInfoFrame_CodingType_eMPEG1,
889        BAVC_HDMI_AudioInfoFrame_CodingType_eMP3,
890        BAVC_HDMI_AudioInfoFrame_CodingType_eMPEG2,
891        BAVC_HDMI_AudioInfoFrame_CodingType_eAACLC,
892        BAVC_HDMI_AudioInfoFrame_CodingType_eDTS,
893        BAVC_HDMI_AudioInfoFrame_CodingType_eATRAC,
894        BAVC_HDMI_AudioInfoFrame_CodingType_eDSD,
895        BAVC_HDMI_AudioInfoFrame_CodingType_eEAC3,
896        BAVC_HDMI_AudioInfoFrame_CodingType_eDTSHD,
897        BAVC_HDMI_AudioInfoFrame_CodingType_eMLP,
898        BAVC_HDMI_AudioInfoFrame_CodingType_eDST,
899        BAVC_HDMI_AudioInfoFrame_CodingType_eWMAPro,
900        BAVC_HDMI_AudioInfoFrame_CodingType_eUnknown
901} BAVC_HDMI_AudioInfoFrame_CodingType ;
902
903
904/******************************************************************************
905Summary:
906Enumerated Type for Channel Count. See CEA-861-D
907*******************************************************************************/
908typedef enum
909{
910        BAVC_HDMI_AudioInfoFrame_ChannelCount_eReferToStreamHeader,
911        BAVC_HDMI_AudioInfoFrame_ChannelCount_e2Channels,
912        BAVC_HDMI_AudioInfoFrame_ChannelCount_e3Channels,
913        BAVC_HDMI_AudioInfoFrame_ChannelCount_e4Channels,
914        BAVC_HDMI_AudioInfoFrame_ChannelCount_e5Channels,
915        BAVC_HDMI_AudioInfoFrame_ChannelCount_e6Channels,
916        BAVC_HDMI_AudioInfoFrame_ChannelCount_e7Channels,
917        BAVC_HDMI_AudioInfoFrame_ChannelCount_e8Channels
918} BAVC_HDMI_AudioInfoFrame_ChannelCount ;
919
920
921/*******************************************************************************
922Summary:
923Enumerated Type for Sampling Frequency. See CEA-861-D
924*******************************************************************************/
925typedef enum
926{
927        BAVC_HDMI_AudioInfoFrame_SampleFrequency_eReferToStreamHeader,
928        BAVC_HDMI_AudioInfoFrame_SampleFrequency_e32,
929        BAVC_HDMI_AudioInfoFrame_SampleFrequency_e44_1,
930        BAVC_HDMI_AudioInfoFrame_SampleFrequency_e48,
931        BAVC_HDMI_AudioInfoFrame_SampleFrequency_e88_2,
932        BAVC_HDMI_AudioInfoFrame_SampleFrequency_e96,                                                                                             
933        BAVC_HDMI_AudioInfoFrame_SampleFrequency_e176_4,
934        BAVC_HDMI_AudioInfoFrame_SampleFrequency_e192
935} BAVC_HDMI_AudioInfoFrame_SampleFrequency ;
936
937
938/******************************************************************************
939Summary:
940Enumerated Type for Sample Size. See CEA-861-D
941*******************************************************************************/
942typedef enum
943{
944        BAVC_HDMI_AudioInfoFrame_SampleSize_eReferToStreamHeader,
945        BAVC_HDMI_AudioInfoFrame_SampleSize_e16,
946        BAVC_HDMI_AudioInfoFrame_SampleSize_e20,
947        BAVC_HDMI_AudioInfoFrame_SampleSize_e24
948} BAVC_HDMI_AudioInfoFrame_SampleSize ;
949
950
951/******************************************************************************
952Summary:
953Enumerated Type for Level Shift Value. See CEA-861-D
954*******************************************************************************/
955typedef enum
956{
957        BAVC_HDMI_AudioInfoFrame_LevelShift_e0db,
958        BAVC_HDMI_AudioInfoFrame_LevelShift_e1db,
959        BAVC_HDMI_AudioInfoFrame_LevelShift_e2db,
960        BAVC_HDMI_AudioInfoFrame_LevelShift_e3db,
961        BAVC_HDMI_AudioInfoFrame_LevelShift_e4db,
962        BAVC_HDMI_AudioInfoFrame_LevelShift_e5db,
963        BAVC_HDMI_AudioInfoFrame_LevelShift_e6db,
964        BAVC_HDMI_AudioInfoFrame_LevelShift_e7db,
965        BAVC_HDMI_AudioInfoFrame_LevelShift_e8db,
966        BAVC_HDMI_AudioInfoFrame_LevelShift_e9db,
967        BAVC_HDMI_AudioInfoFrame_LevelShift_e10db,
968        BAVC_HDMI_AudioInfoFrame_LevelShift_e11db,
969        BAVC_HDMI_AudioInfoFrame_LevelShift_e12db,
970        BAVC_HDMI_AudioInfoFrame_LevelShift_e13db,
971        BAVC_HDMI_AudioInfoFrame_LevelShift_e14db,
972        BAVC_HDMI_AudioInfoFrame_LevelShift_e15db
973} BAVC_HDMI_AudioInfoFrame_LevelShift ;
974
975
976/******************************************************************************
977Summary:
978Enumerated Type for Down Mix. See CEA-861-D
979******************************************************************************/
980typedef enum
981{
982        BAVC_HDMI_AudioInfoFrame_DownMixInhibit_ePermitted,
983        BAVC_HDMI_AudioInfoFrame_DownMixInhibit_eProhibited
984} BAVC_HDMI_AudioInfoFrame_DownMixInhibit ;
985
986
987typedef enum
988{
989        BAVC_HDMI_AudioInfoFrame_SourceType_eUnknown,
990        BAVC_HDMI_AudioInfoFrame_SourceType_eDigitalSTB,
991        BAVC_HDMI_AudioInfoFrame_SourceType_eDVDPlayer,
992        BAVC_HDMI_AudioInfoFrame_SourceType_eDVHS,
993        BAVC_HDMI_AudioInfoFrame_SourceType_eHDDVideoRecorder,
994        BAVC_HDMI_AudioInfoFrame_SourceType_eDVC,
995        BAVC_HDMI_AudioInfoFrame_SourceType_eDSC,
996        BAVC_HDMI_AudioInfoFrame_SourceType_eVideoCD,
997        BAVC_HDMI_AudioInfoFrame_SourceType_eGame,
998        BAVC_HDMI_AudioInfoFrame_SourceType_ePCGeneral,
999        BAVC_HDMI_AudioInfoFrame_SourceType_eBluRayDisc,
1000        BAVC_HDMI_AudioInfoFrame_SourceType_eSuperAudioCD,
1001        BAVC_HDMI_AudioInfoFrame_SourceType_eHD_DVD,
1002        BAVC_HDMI_AudioInfoFrame_SourceType_ePMP       
1003} BAVC_HDMI_SpdInfoFrame_SourceType ;
1004
1005       
1006/******************************************************************************
1007Summary:
1008Enumerated Type for Vendor-Specific Infoframe HDMI Video Format
1009******************************************************************************/
1010typedef enum
1011{
1012        BAVC_HDMI_VSInfoFrame_HDMIVideoFormat_eNone,
1013        BAVC_HDMI_VSInfoFrame_HDMIVideoFormat_eExtendedResolution,
1014        BAVC_HDMI_VSInfoFrame_HDMIVideoFormat_e3DFormat,
1015        BAVC_HDMI_VSInfoFrame_HDMIVideoFormat_eMax
1016} BAVC_HDMI_VSInfoFrame_HDMIVideoFormat ;
1017
1018
1019/******************************************************************************
1020Summary:
1021Enumerated Type for Vendor-Specific Infoframe HDMI VIC
1022******************************************************************************/
1023typedef enum
1024{
1025        BAVC_HDMI_VSInfoFrame_HDMIVIC_eReserved,
1026        BAVC_HDMI_VSInfoFrame_HDMIVIC_e4Kx2K_2997_30Hz,
1027        BAVC_HDMI_VSInfoFrame_HDMIVIC_e4Kx2K_25Hz,
1028        BAVC_HDMI_VSInfoFrame_HDMIVIC_e4Kx2K_2398_24Hz,
1029        BAVC_HDMI_VSInfoFrame_HDMIVIC_e4Kx2K_SMPTE_24Hz,
1030        BAVC_HDMI_VSInfoFrame_HDMIVIC_eMax
1031} BAVC_HDMI_VSInfoFrame_HDMIVIC ;
1032
1033                                                                                                   
1034/******************************************************************************
1035Summary:
1036Enumerated Type for Vendor-Specific Infoframe 3D Structure
1037******************************************************************************/
1038typedef enum
1039{
1040        BAVC_HDMI_VSInfoFrame_3DStructure_eFramePacking,
1041        BAVC_HDMI_VSInfoFrame_3DStructure_eFieldAlternative,
1042        BAVC_HDMI_VSInfoFrame_3DStructure_eLineAlternative,
1043        BAVC_HDMI_VSInfoFrame_3DStructure_eSidexSideFull,
1044        BAVC_HDMI_VSInfoFrame_3DStructure_eLDepth,
1045        BAVC_HDMI_VSInfoFrame_3DStructure_eLDepthGraphics,
1046        BAVC_HDMI_VSInfoFrame_3DStructure_eTopAndBottom,
1047        BAVC_HDMI_VSInfoFrame_3DStructure_eReserved,
1048        BAVC_HDMI_VSInfoFrame_3DStructure_eSidexSideHalf, /* 0x8 1000 */
1049        BAVC_HDMI_VSInfoFrame_3DStructure_eMax
1050} BAVC_HDMI_VSInfoFrame_3DStructure ;
1051                                                                                                   
1052
1053/******************************************************************************
1054Summary:
1055Enumerated Type for Vendor-Specific Infoframe 3D Ext Data
1056******************************************************************************/
1057typedef enum
1058{
1059        BAVC_HDMI_VSInfoFrame_3DExtData_eNone,
1060        BAVC_HDMI_VSInfoFrame_3DExtData_eHorzOLOR = 0 ,
1061        BAVC_HDMI_VSInfoFrame_3DExtData_eHorzOLER,
1062        BAVC_HDMI_VSInfoFrame_3DExtData_eHorzELOR,
1063        BAVC_HDMI_VSInfoFrame_3DExtData_eHorzELER,
1064        BAVC_HDMI_VSInfoFrame_3DExtData_eQuinOLOR,
1065        BAVC_HDMI_VSInfoFrame_3DExtData_eQuinOLER,
1066        BAVC_HDMI_VSInfoFrame_3DExtData_eQuinELOR,
1067        BAVC_HDMI_VSInfoFrame_3DExtData_eQuinELER,
1068        BAVC_HDMI_VSInfoFrame_3DExtData_eMax
1069} BAVC_HDMI_VSInfoFrame_3DExtData ;
1070                                                                                                   
1071
1072
1073#define BAVC_HDMI_INFOFRAME_PACKET_TYPE 0x80
1074
1075/******************************************************************************
1076Summary:
1077Enumerated Type of the different HDMI RAM Packets
1078
1079Description:
1080The enumeration can be used to configure the HDMI RAM packets for sending and/or
1081receiving
1082
1083
1084See Also:
1085*******************************************************************************/
1086typedef enum
1087{
1088        BAVC_HDMI_PacketType_eNull                   = 0x00,
1089        BAVC_HDMI_PacketType_eAudioClockRegeneration = 0x01,
1090        BAVC_HDMI_PacketType_eAudioSample            = 0x02,
1091        BAVC_HDMI_PacketType_eGeneralControl         = 0x03,
1092        BAVC_HDMI_PacketType_eAudioContentProtection = 0x04,
1093        BAVC_HDMI_PacketType_eISRC1                  = 0x05,
1094        BAVC_HDMI_PacketType_eISRC2                  = 0x06,
1095        BAVC_HDMI_PacketType_eDirectStream           = 0x07,
1096#if 0   
1097        BAVC_HDMI_PacketType_eDstAudioPacket       = 0x08,
1098#endif
1099        BAVC_HDMI_PacketType_eHbrAudioPacket      = 0x09,
1100
1101#if BAVC_HDMI_1_3_SUPPORT
1102        BAVC_HDMI_PacketType_eGamutMetadataPacket   = 0xA,
1103#endif 
1104
1105        BAVC_HDMI_PacketType_eVendorSpecificInfoframe         = 0x81,
1106        /* backwards compatibility */
1107        BAVC_HDMI_PacketType_eVendorSpecific = BAVC_HDMI_PacketType_eVendorSpecificInfoframe,
1108        BAVC_HDMI_PacketType_eAviInfoFrame           = 0x82,
1109        BAVC_HDMI_PacketType_eSpdInfoFrame           = 0x83,
1110        BAVC_HDMI_PacketType_eAudioInfoFrame         = 0x84,
1111        BAVC_HDMI_PacketType_eMpegInfoFrame          = 0x85,
1112
1113        BAVC_HDMI_PacketType_eUnused                 = 0xA0
1114} BAVC_HDMI_PacketType ;
1115
1116
1117typedef enum
1118{
1119        BAVC_HDMI_GamutFormat_eVerticesFacets,
1120        BAVC_HDMI_GamutFormat_eRange
1121} BAVC_HDMI_GamutFormat ;
1122
1123
1124typedef enum
1125{
1126        BAVC_HDMI_GamutColorPrecision_e8Bit,
1127        BAVC_HDMI_GamutColorPrecision_e10Bit,
1128        BAVC_HDMI_GamutColorPrecision_e12Bit,
1129        BAVC_HDMI_GamutColorPrecision_eUnknown 
1130} BAVC_HDMI_GamutColorPrecision ;
1131
1132
1133typedef enum
1134{
1135        BAVC_HDMI_GamutColorspace_eItu709RGB,
1136        BAVC_HDMI_GamutColorspace_exvYCC601SD,
1137        BAVC_HDMI_GamutColorspace_exvYCC709HD,
1138        BAVC_HDMI_GamutColorspace_eXZY /* not supported */
1139} BAVC_HDMI_GamutColorspace ;
1140
1141
1142/***************************************************************************
1143Summary:
1144Structure containing the contents of the HDMI Audio Info Frame
1145
1146****************************************************************************/
1147typedef struct BAVC_HDMI_AudioInfoFrame
1148{
1149        /*
1150        --NOTE: modifications to this HDMI_AUDIO_INFOFRAME  structure must be
1151        -- accounted for in the BHDM_P_HdmiSettingsChange function
1152        */
1153       
1154        bool bOverrideDefaults;
1155        BAVC_HDMI_AudioInfoFrame_ChannelCount ChannelCount;
1156
1157        BAVC_HDMI_AudioInfoFrame_CodingType CodingType ; 
1158        BAVC_HDMI_AudioInfoFrame_SampleSize SampleSize ;
1159        BAVC_HDMI_AudioInfoFrame_SampleFrequency SampleFrequency ;
1160
1161        uint8_t SpeakerAllocation;
1162        BAVC_HDMI_AudioInfoFrame_DownMixInhibit DownMixInhibit;
1163        BAVC_HDMI_AudioInfoFrame_LevelShift LevelShift;
1164       
1165#if BAVC_HDMI_RECEIVER
1166        BAVC_HDMI_PacketStatus ePacketStatus ;
1167        BAVC_HDMI_Packet stPacket ;
1168#endif 
1169} BAVC_HDMI_AudioInfoFrame ;
1170
1171/***************************************************************************
1172Summary:
1173Structure containing the contents of the Vendor Specific Info Frame
1174
1175****************************************************************************/
1176
1177#define BAVC_HDMI_VS_IEEE_REGID_OFFSET 1
1178#define BAVC_HDMI_IEEE_REGID_LEN 3
1179#define BAVC_HDMI_VS_PAYLOAD_OFFSET 4
1180
1181typedef struct _HDMI_VENDOR_SPECIFIC_INFOFRAME_
1182{
1183        /*
1184        --NOTE: modifications to this HDMI_VENDOR_SPECIFIC_INFOFRAME  structure must be
1185        -- accounted for in the BHDM_P_HdmiSettingsChange function
1186        */
1187       
1188
1189        uint8_t uIEEE_RegId[BAVC_HDMI_IEEE_REGID_LEN] ; 
1190
1191        BAVC_HDMI_VSInfoFrame_HDMIVideoFormat  eHdmiVideoFormat ;
1192       
1193        BAVC_HDMI_VSInfoFrame_HDMIVIC eHdmiVic ;
1194        /* or */
1195        BAVC_HDMI_VSInfoFrame_3DStructure e3DStructure ;
1196       
1197        BAVC_HDMI_VSInfoFrame_3DExtData e3DExtData ;
1198       
1199
1200#if BAVC_HDMI_RECEIVER
1201        BAVC_HDMI_PacketStatus ePacketStatus ;
1202        BAVC_HDMI_Packet stPacket ;
1203#endif
1204} BAVC_HDMI_VendorSpecificInfoFrame ;
1205
1206
1207/******************************************************************************
1208Summary
1209Structure containing the contents of the Audio Clock Regeneration Frame
1210*******************************************************************************/
1211typedef struct  _HDMI_AudioClockRegeneration_PACKET_
1212{
1213        uint32_t CTS;
1214        uint32_t N;
1215#if BAVC_HDMI_RECEIVER
1216        BAVC_HDMI_PacketStatus ePacketStatus ;
1217        BAVC_HDMI_Packet stPacket ;
1218#endif         
1219}BAVC_HDMI_AudioClockRegenerationPacket; 
1220
1221
1222/******************************************************************************
1223Summary
1224Enumeration type describing HDMI Color Depth
1225*******************************************************************************/
1226typedef enum _BAVC_HDMI_GCP_ColorDepth_
1227{
1228        BAVC_HDMI_GCP_ColorDepth_eDepthNotIndicated,
1229        BAVC_HDMI_GCP_ColorDepth_e24bpp = 4,
1230        BAVC_HDMI_GCP_ColorDepth_e30bpp = 5,
1231        BAVC_HDMI_GCP_ColorDepth_e36bpp = 6,
1232        BAVC_HDMI_GCP_ColorDepth_e48bpp = 7
1233} BAVC_HDMI_GCP_ColorDepth ;
1234
1235
1236/******************************************************************************
1237Summary
1238Enumeration type describing HDMI Pixel Packing
1239*******************************************************************************/
1240typedef enum _BAVC_HDMI_GCP_PixelPacking_
1241{
1242        BAVC_HDMI_GCP_PixelPacking_ePhase4_10P4,
1243        BAVC_HDMI_GCP_PixelPacking_ePhase1_10P1_12P1_16P1,
1244        BAVC_HDMI_GCP_PixelPacking_ePhase2_10P2_12P2,
1245        BAVC_HDMI_GCP_PixelPacking_ePhase3_10P3
1246} BAVC_HDMI_GCP_PixelPacking ;
1247
1248
1249/***************************************************************************
1250Summary:
1251Structure containing the contents of the HDMI General Control Packet (GCP) Data
1252
1253****************************************************************************/
1254typedef struct _HDMI_GCP_DATA_
1255{
1256        uint32_t uiMuteStatus ;
1257        uint32_t SetAvMute ;
1258        uint32_t ClearAvMute ;
1259        BAVC_HDMI_GCP_PixelPacking ePixelPacking ;
1260        BAVC_HDMI_GCP_ColorDepth eColorDepth ;
1261        uint32_t DefaultPhase ;
1262#if BAVC_HDMI_RECEIVER
1263        BAVC_HDMI_PacketStatus ePacketStatus ;
1264        BAVC_HDMI_Packet stPacket ;
1265#endif         
1266} BAVC_HDMI_GcpData ;
1267
1268
1269/***************************************************************************
1270Summary:
1271Structure containing the contents of the HDMI Gamut Boundary Data (GDB) Packer
1272
1273****************************************************************************/
1274
1275#define BAVC_HDMI_GDB_VerticeBlack      0
1276#define BAVC_HDMI_GDB_VerticeRedIndex   1
1277#define BAVC_HDMI_GDB_VerticeGreenIndex 2
1278#define BAVC_HDMI_GDB_VerticeBlueIndex  3
1279
1280
1281
1282typedef struct _HDMI_GAMUT_PACKET_
1283{
1284        uint8_t Type ;
1285        uint8_t NextField ;
1286        uint8_t Profile ;
1287        uint8_t AffectedGamutSeqNumber ;
1288        uint8_t NoCurrentGamut ;
1289        uint8_t PacketSeq ;
1290        uint8_t CurrentGamutSeqNumber ;
1291        uint8_t DataBytes[BAVC_HDMI_PB_LENGTH] ;
1292
1293        BAVC_HDMI_GamutFormat Format ;
1294        bool bFacets ;
1295        BAVC_HDMI_GamutColorPrecision eColorPrecision;
1296        BAVC_HDMI_GamutColorspace eColorSpace  ;
1297        uint16_t uiNumberVertices ;
1298        uint16_t uiNumberFacets ;
1299
1300        /* for Gamut Vertice Data */
1301        uint16_t uiY[4] ;
1302        uint16_t uiCb[4] ;
1303        uint16_t uiCr[4] ;
1304
1305        /* for Gamut Range Data */
1306        uint16_t uiMinRedData ;
1307        uint16_t uiMaxRedData ;
1308        uint16_t uiMinGreenData ;
1309        uint16_t uiMaxGreenData ;
1310        uint16_t uiMinBlueData ;
1311        uint16_t uiMaxBlueData ;
1312
1313#if 0
1314        uint16_t uiBlackY ;
1315        uint16_t uiBlackCb ;
1316        uint16_t uiBlackCr ;
1317       
1318        uint16_t uiRedY ;
1319        uint16_t uiRedCb ;
1320        uint16_t uiRedCr ;
1321       
1322        uint16_t uiGreenY ;
1323        uint16_t uiGreenCb ;
1324        uint16_t uiGreenCr ;
1325       
1326        uint16_t uiBlueY ;
1327        uint16_t uiBlueCb ;
1328        uint16_t uiBlueCr ;
1329#endif 
1330        BAVC_HDMI_PacketStatus ePacketStatus ;
1331
1332} BAVC_HDMI_GamutPacket ;
1333
1334
1335
1336
1337
1338/***************************************************************************
1339Summary:
1340Structure containing the contents of the HDMI  SPD Info Frame
1341
1342****************************************************************************/
1343
1344#define BAVC_HDMI_IF_DATA_OFFSET                       3
1345
1346#define BAVC_HDMI_SPD_IF_VENDOR_OFFSET   1
1347#define BAVC_HDMI_SPD_IF_VENDOR_LEN         8
1348#define BAVC_HDMI_SPD_IF_DESC_OFFSET       9
1349#define BAVC_HDMI_SPD_IF_DESC_LEN            16
1350#define BAVC_HDMI_SPD_IF_DEVICE_INFO_OFFSET      25
1351
1352typedef struct _HDMI_SPD_INFOFRAME_
1353{
1354        /*
1355        --NOTE: modifications to this HDMI_SPD_INFOFRAME  structure must be
1356        -- accounted for in the BHDM_P_HdmiSettingsChange function
1357        */
1358       
1359        uint8_t VendorName[BAVC_HDMI_SPD_IF_VENDOR_LEN+1] ;  /* add space for NULL */
1360        uint8_t ProductDescription[BAVC_HDMI_SPD_IF_DESC_LEN+1] ;
1361        uint8_t SourceDeviceInfo;
1362#if BAVC_HDMI_RECEIVER
1363        BAVC_HDMI_PacketStatus ePacketStatus ;
1364        BAVC_HDMI_Packet stPacket ;
1365#endif
1366}BAVC_HDMI_SPDInfoFrame;
1367
1368
1369
1370/***************************************************************************
1371Summary:
1372Structure containing the contents of the HDMI Audio Content Protection
1373****************************************************************************/
1374typedef struct _HDMI_AUDIO_CONTENT_PROTECTION
1375{
1376        uint8_t         ACP_Type;
1377        char    ACP_Type_Dependent[BAVC_HDMI_PB_LENGTH];
1378       
1379#if BAVC_HDMI_RECEIVER
1380        BAVC_HDMI_PacketStatus ePacketStatus ;
1381        BAVC_HDMI_Packet stPacket ;
1382#endif 
1383} BAVC_HDMI_ACP ;
1384
1385
1386#define BAVC_HDMI_ISRC_PACKET_BYTES 16
1387#define BAVC_HDMI_IRSC2_PACKET_OFFSET 16
1388#define BAVC_HDMI_ISRC_LENGTH 32
1389/***************************************************************************
1390Summary:
1391Structure containing the contents of ISRC Packet.  The contents of the ISRC packet *can*
1392actually be sent over two different packets (ISRC1 and ISRC2)
1393****************************************************************************/
1394typedef struct _HDMI_ISRC
1395{
1396        bool    ISRC1_PacketReceived ;
1397       
1398        /* fields from ISRC Packet */
1399
1400        bool    ISRC_Cont ;  /* ISRC Continued in next Packet */
1401
1402        /* data located in ISRC_Status field and ISRC_UPC_EAN_ISRC_xx fields are valid */
1403        bool    ISRC_Valid ; 
1404        uint8_t         ISRC_Status ;
1405
1406        /* contains concatenated data bytes from both ISRC1 and ISRC2 */
1407        uint8_t ISRC_UPC_EAN[BAVC_HDMI_ISRC_LENGTH]; 
1408
1409
1410#if BAVC_HDMI_RECEIVER
1411        BAVC_HDMI_Packet stISRC1_Packet ;
1412        BAVC_HDMI_Packet stISRC2_Packet ;
1413       
1414        BAVC_HDMI_PacketStatus ePacketStatus ;
1415#endif 
1416} BAVC_HDMI_ISRC ;
1417
1418
1419
1420#define BAVC_HDMI_CEC_MAX_MSGLENGTH        32
1421#define BAVC_HDMI_CEC_MAX_XMIT_LENGTH      15  /* +1 for CEC Header Length */
1422
1423#define BAVC_HDMI_CEC_BROADCAST_ADDR       0x0F
1424
1425/********************************* Typedefs ***********************************/
1426/******************************************************************************
1427Summary:
1428Enumeration Type of available logical addresses for attached HDMI devices.
1429
1430Description:
1431Each Device in an HDMI chain is assigned a logical address;  This enumeration
1432table details all available logical addresses.
1433
1434See Also:
1435        o BAVC_HDMI_CEC_RecDevices
1436        o BAVC_HDMI_CEC_StbDevices
1437        o BAVC_HDMI_CEC_DvdDevices
1438
1439*******************************************************************************/
1440typedef enum BAVC_HDMI_CEC_AllDevices
1441{
1442        BAVC_HDMI_CEC_AllDevices_eTV = 0,
1443        BAVC_HDMI_CEC_AllDevices_eRecDevice1,        /* Addr for 1st Recording Device */
1444        BAVC_HDMI_CEC_AllDevices_eRecDevice2,           /* Addr for 2nd Recording Device */
1445        BAVC_HDMI_CEC_AllDevices_eSTB1,                         /* Addr for 1st SetTop Box Device */
1446        BAVC_HDMI_CEC_AllDevices_eDVD1,                         /* Addr for 1st DVD Device */
1447        BAVC_HDMI_CEC_AllDevices_eAudioSystem,          /* Addr for Audio Device */
1448        BAVC_HDMI_CEC_AllDevices_eSTB2,                         /* Addr for 2nd SetTop Box Device */
1449        BAVC_HDMI_CEC_AllDevices_eSTB3,                         /* Addr for 3rd SetTop Box Device */
1450        BAVC_HDMI_CEC_AllDevices_eDVD2,                         /* Addr for 2nd DVD Device */
1451        BAVC_HDMI_CEC_AllDevices_eRecDevice3,        /* Addr for 3rd Recording Device */
1452        BAVC_HDMI_CEC_AllDevices_eSTB4,             /* Reserved and cannot be used */
1453        BAVC_HDMI_CEC_AllDevices_eDVD3,                         /* Reserved and cannot be used */
1454        BAVC_HDMI_CEC_AllDevices_eRsvd3,                                /* Reserved and cannot be used */
1455        BAVC_HDMI_CEC_AllDevices_eRsvd4,                                /* Reserved and cannot be used */
1456        BAVC_HDMI_CEC_AllDevices_eFreeUse,                      /* Free Addr, use for any device */
1457        BAVC_HDMI_CEC_AllDevices_eUnRegistered = 15  /* UnRegistered Devices */
1458} BAVC_HDMI_CEC_AllDevices ;
1459
1460
1461/******************************************************************************
1462Summary:
1463Enumeration Type of available logical addresses for attached HDMI devices that
1464have Recording capability.
1465 
1466Description:
1467Each Device in an HDMI chain is assigned a logical address;  This enumeration
1468table details all available Recording Device logical addresses.
1469
1470
1471See Also:
1472        o BAVC_HDMI_CEC_AllDevices
1473        o BAVC_HDMI_CEC_StbDevices
1474        o BAVC_HDMI_CEC_DvdDevices
1475
1476*******************************************************************************/
1477typedef enum BAVC_HDMI_CEC_RecDevices
1478{
1479        BAVC_HDMI_CEC_RecDevices_eRecDevice1 =  1,      /* Addr for 1st Recording Device */
1480        BAVC_HDMI_CEC_RecDevices_eRecDevice2 =  2,      /* Addr for 2nd Recording Device */
1481        BAVC_HDMI_CEC_RecDevices_eRecDevice3 =  9,      /* Addr for 3rd Recording Device */
1482        BAVC_HDMI_CEC_RecDevices_eFreeUse    = 14,      /* Addr for 4th Recording Device */
1483        BAVC_HDMI_CEC_RecDevices_eUnRegistered = 15     /* Addr for 5th Recording Device */
1484} BAVC_HDMI_CEC_RecDevices ;                                           
1485
1486
1487
1488/******************************************************************************
1489Summary:
1490Enumeration Type of available logical addresses for attached HDMI devices that
1491have STB capability.
1492
1493Description:
1494Each Device in an HDMI chain is assigned a logical address;  This enumeration
1495table details all available STB logical addresses.
1496
1497
1498See Also:
1499        o BAVC_HDMI_CEC_AllDevices
1500        o BAVC_HDMI_CEC_RecDevices
1501        o BAVC_HDMI_CEC_DvdDevices
1502
1503*******************************************************************************/
1504typedef enum BAVC_HDMI_CEC_StbDevices
1505{
1506        BAVC_HDMI_CEC_StbDevices_eSTB1         =  3,  /* Addr for 1st SetTop Box Device */
1507        BAVC_HDMI_CEC_StbDevices_eSTB2         =  6,     /* Addr for 2nd SetTop Box Device */
1508        BAVC_HDMI_CEC_StbDevices_eSTB3         =  7,     /* Addr for 3rd SetTop Box Device */
1509        BAVC_HDMI_CEC_StbDevices_eSTB4         =  10,    /* Addr for 3rd SetTop Box Device */
1510        BAVC_HDMI_CEC_StbDevices_eFreeUse      = 14,     /* Addr for 4th SetTop Box Device */
1511        BAVC_HDMI_CEC_StbDevices_eUnRegistered = 15      /* Addr for 5th SetTop Box Device */
1512} BAVC_HDMI_CEC_StbDevices ;
1513
1514
1515
1516/******************************************************************************
1517Summary:
1518Enumeration Type of available logical addresses for attached HDMI devices that
1519have DVD capability.
1520
1521Description:
1522Each Device in an HDMI chain is assigned a logical address;  This enumeration
1523table details all available DVD logical addresses.
1524
1525
1526See Also:
1527        o BAVC_HDMI_CEC_AllDevices
1528        o BAVC_HDMI_CEC_RecDevices
1529        o BAVC_HDMI_CEC_StbDevices
1530
1531*******************************************************************************/
1532typedef enum BAVC_HDMI_CEC_DvdDevices
1533{
1534        BAVC_HDMI_CEC_DvdDevices_eDVD1        =  4, /* Available Logical DVD 1 */
1535        BAVC_HDMI_CEC_DvdDevices_eDVD2           =  8, /* Available Logical DVD 2 */
1536        BAVC_HDMI_CEC_DvdDevices_eDVD3           =  11, /* Available Logical DVD 2 */   
1537        BAVC_HDMI_CEC_DvdDevices_eFREE_USE       = 14, /* Use FreeUse for Logical DVD */
1538        BAVC_HDMI_CEC_DvdDevices_eUNREISTERED = 15  /* Use UnRegistered for Logical DVD */
1539} BAVC_HDMI_CEC_DvdDevices ;
1540
1541
1542/******************************************************************************
1543Summary:
1544Enumeration Type of available CEC interrupts
1545
1546Description:
1547
1548
1549See Also:
1550        o BAVC_HDMI_CEC_GetMsgType
1551        o BAVC_HDMI_CEC_RecDevices
1552        o BAVC_HDMI_CEC_StbDevices
1553
1554*******************************************************************************/
1555typedef enum BAVC_HDMI_CEC_IntMessageType
1556{
1557        BAVC_HDMI_CEC_IntMessageType_eTransmit = 0,
1558        BAVC_HDMI_CEC_IntMessageType_eReceive = 1
1559} BAVC_HDMI_CEC_IntMessageType ;
1560
1561
1562/******************************************************************************
1563Summary:
1564HDMI CEC logical address state machine
1565*******************************************************************************/
1566typedef enum BAVC_HDMI_CEC_SM
1567{
1568        BAVC_HDMI_CEC_SM_eInitAddrSearch,
1569        BAVC_HDMI_CEC_SM_eNextAddrSearch,
1570        BAVC_HDMI_CEC_SM_eReady
1571} BAVC_HDMI_CEC_SM ;
1572       
1573
1574/******************************************************************************
1575Summary:
1576Data structure containing information of a CEC message
1577*******************************************************************************/
1578typedef struct BAVC_HDMI_CEC_MessageData
1579{
1580        uint8_t initiatorAddr ;
1581        uint8_t destinationAddr ;
1582        uint8_t messageBuffer[16] ;
1583        uint8_t messageLength ;
1584       
1585} BAVC_HDMI_CEC_MessageData ;
1586
1587
1588typedef struct  _HDMI_VideoFormat{
1589        uint8_t uHsyncPolarity;/*Hsync Polarity*/
1590        uint16_t uHsyncPulsePixels;/*The number of pixels in the horizontal sync pulse*/
1591        uint16_t uHsyncBackporchPixels;/*The number of pixels in the horizontal back porch*/
1592
1593
1594        uint16_t uHorizontalActivePixels; /*The number of active pixels on a horizontal line*/
1595        uint16_t uHorizontalFrontporchPixels;/*The number of pixels in the horizontal front porch*/
1596
1597        uint8_t uDelayedFieldVersion;/*Delayed version of UUT_FIELD. Updates on the first active line following a vertical blank*/ 
1598        uint8_t uProgressive;/*This bit indicates that the format has been determined to be a progressive format*/
1599        uint8_t uInterlaced; /*This bit indicates that the format has been determined to be an interlaced format*/
1600        uint8_t uVsyncPolarity;/*The polarity of the vertical sync*/
1601        uint8_t uField;/*This denotes the currently active field, It is updated every leading edge of the vertical sync*/
1602        uint8_t uVerticalDe;/*vertical de*/
1603        uint16_t uVerticalFrontporchLinesField1;/*The integer number of lines in the vertical front porch of field 1*/ 
1604        uint16_t uVerticalSyncpulseLinesField1;/*The number of lines in the vertical sync pulse of field 1*/
1605
1606        uint16_t uVerticalBackporchLinesField1; /*The number of lines in the vertical back porch of field 1*/
1607        uint16_t uVerticalSyncPulsePixelsField1;/*The number of pixels the leading edge of the vertical sync pulse is offset from the horizontal sync pulse in field 1*/
1608
1609
1610        uint16_t uActiveLinesField2;/*The number of active lines of video in field 2*/
1611        uint16_t uVerticalFrontPorchlinesField2; /*The integer number of lines in the vertical front porch of field 2*/ 
1612
1613
1614        uint16_t uVerticalBackporchLinesField2;/*The number of lines in the vertical back porch of field 2*/
1615        uint16_t uVerticalSyncPulsePixelsField2;/*The number of pixels the leading edge of the vertical sync pulse is offset from the horizontal sync pulse in field 2*/
1616
1617        uint16_t uVdeCopy;/*Copy of UUT_VDE*/
1618        uint16_t uCurrentReveivedVideoLine;/*The current line of video being recieved, Line 1 is the first line of active video, The count continues into the blanking period*/ 
1619
1620
1621        uint16_t uActivelinesField1;/*The number of active lines of video in field 1*/
1622        uint16_t uVerticalSyncPulseLinesField2;/*The number of lines in the vertical sync pulse of field 2*/
1623
1624
1625}BAVC_HDMI_VideoFormat;
1626
1627
1628/**** AVI InfoFrame Conversions ****/
1629
1630const char * BAVC_HDMI_AviInfoFrame_ColorspaceToStr(
1631        BAVC_HDMI_AviInfoFrame_Colorspace uiY1Y0) ;
1632       
1633const char * BAVC_HDMI_AviInfoFrame_ActiveFormatToStr(
1634        BAVC_HDMI_AviInfoFrame_ActiveInfo uiA0) ;
1635       
1636const char * BAVC_HDMI_AviInfoFrame_BarInfoToStr(
1637        BAVC_HDMI_AviInfoFrame_BarInfo uiB1B0) ;
1638       
1639const char * BAVC_HDMI_AviInfoFrame_ScanInfoToStr(
1640        BAVC_HDMI_AviInfoFrame_ScanInfo uiS1S0) ;
1641       
1642const char * BAVC_HDMI_AviInfoFrame_ColorimetryToStr(
1643        BAVC_HDMI_AviInfoFrame_Colorimetry uiC1C0) ;
1644       
1645const char * BAVC_HDMI_AviInfoFrame_PictureAspectRatioToStr(
1646        BAVC_HDMI_AviInfoFrame_PictureAspectRatio uiM1M0) ;
1647       
1648const char * BAVC_HDMI_AviInfoFrame_ActiveFormatAspectRatioToStr(
1649        BAVC_HDMI_AviInfoFrame_ActiveFormatAspectRatio uiR3_R0) ;
1650       
1651const char * BAVC_HDMI_AviInfoFrame_ITContentToStr(
1652        BAVC_HDMI_AviInfoFrame_ITContent uiITC) ;
1653       
1654const char * BAVC_HDMI_AviInfoFrame_ExtendedColorimetryToStr(
1655        BAVC_HDMI_AviInfoFrame_ExtendedColorimetry uiEC2_EC0) ;
1656       
1657const char * BAVC_HDMI_AviInfoFrame_RGBQuantizationRangeToStr(
1658        BAVC_HDMI_AviInfoFrame_RGBQuantizationRange uiQ1Q0) ;
1659       
1660const char * BAVC_HDMI_AviInfoFrame_ScalingToStr(
1661        BAVC_HDMI_AviInfoFrame_Scaling uiSC1SC0) ;
1662
1663const char * BAVC_HDMI_AviInfoFrame_VideoIdCodeToStr(
1664        BAVC_HDMI_AviInfoFrame_Scaling uiVIC) ;
1665
1666const char * BAVC_HDMI_AviInfoFrame_ContentTypeToStr(
1667        BAVC_HDMI_AviInfoFrame_ContentType eContentType) ;
1668
1669const char * BAVC_HDMI_AviInfoFrame_YccQuantizationRangeToStr(
1670        BAVC_HDMI_AviInfoFrame_ContentType eYccQuantizationRange) ;
1671
1672
1673/**** Audio InfoFrame Conversions ****/
1674
1675const char * BAVC_HDMI_AudioInfoFrame_CodingTypeToStr(
1676        BAVC_HDMI_AudioInfoFrame_CodingType uiCT3_CT0) ;
1677       
1678const char * BAVC_HDMI_AudioInfoFrame_ChannelCountToStr(
1679        BAVC_HDMI_AudioInfoFrame_ChannelCount uiCC2_CC0) ;
1680       
1681const char * BAVC_HDMI_AudioInfoFrame_SampleFrequencyToStr(
1682        BAVC_HDMI_AudioInfoFrame_SampleFrequency uiSF2_SF0) ;
1683       
1684const char * BAVC_HDMI_AudioInfoFrame_SampleSizeToStr(
1685        BAVC_HDMI_AudioInfoFrame_SampleSize uiSS1SS0) ;
1686       
1687const char * BAVC_HDMI_AudioInfoFrame_LevelShiftToStr(
1688        BAVC_HDMI_AudioInfoFrame_LevelShift uiLSV3_LSV0);
1689       
1690const char * BAVC_HDMI_AudioInfoFrame_DownMixInhibitToStr(
1691        BAVC_HDMI_AudioInfoFrame_DownMixInhibit uiDM) ;
1692
1693
1694/**** Source Product Description (SPD) InfoFrame Conversions ****/
1695
1696const char * BAVC_HDMI_SpdInfoFrame_SourceTypeToStr(
1697        BAVC_HDMI_SpdInfoFrame_SourceType eSourceType) ;
1698
1699
1700/**** Vendor Specific (VS) InfoFrame Conversions ****/
1701
1702const char * BAVC_HDMI_VsInfoFrame_HdmiVicToStr(
1703        BAVC_HDMI_VSInfoFrame_HDMIVIC  eHdmiVic) ;
1704
1705
1706const char * BAVC_HDMI_VsInfoFrame_3DStructureToStr(
1707        BAVC_HDMI_VSInfoFrame_3DStructure e3DStructType) ;
1708       
1709const char * BAVC_HDMI_VsInfoFrame_3DExtDataToStr(
1710        BAVC_HDMI_VSInfoFrame_3DExtData e3DExtType) ;
1711
1712const char * BAVC_HDMI_VsInfoFrame_HdmiVideoFormatToStr(
1713        BAVC_HDMI_VSInfoFrame_HDMIVideoFormat eFormatType) ;
1714
1715
1716const char * BAVC_HDMI_PacketTypeToStr(
1717        BAVC_HDMI_PacketType ePacketType) ;
1718
1719unsigned int BAVC_HDMI_HDCP_NumberOfSetBits(const unsigned char *bytes, int nbytes) ;
1720
1721#endif
Note: See TracBrowser for help on using the repository browser.