2 $Id: BlueDriver_p.h,v 1.24.2.4 2009/08/29 04:31:59 tim Exp $
\r
5 #define _BLUEDRIVER_P_H__
\r
6 #define BLUE_UINT32 unsigned int
\r
7 #define BLUE_INT32 int
\r
8 #define BLUE_UINT8 unsigned char
\r
9 #define BLUE_INT8 char
\r
10 #define BLUE_UINT16 unsigned short
\r
11 #define BLUE_INT16 short
\r
13 #ifdef BLUE_LINUX_CODE
\r
14 #define BLUE_UINT64 unsigned long long
\r
15 //#include <asm/types.h>
\r
17 #define BLUE_UINT64 unsigned __int64
\r
22 * This contains the enumerators that can be used to set the cards \n
\r
23 * video output and also to determine the video mode of the incoming \n
\r
26 typedef enum _EVideoMode
\r
30 VID_FMT_576I_5000=0, /**< 720 x 576 50 Interlaced */
\r
31 VID_FMT_486I_5994=1, /**< 720 x 486 60/1.001 Interlaced */
\r
32 VID_FMT_720P_5994, /**< 1280 x 720 60/1.001 Progressive */
\r
33 VID_FMT_720P_6000, /**< 1280 x 720 60 Progressive */
\r
34 VID_FMT_1080PSF_2397, /**< 1920 x 1080 24/1.001 Segment Frame */
\r
35 VID_FMT_1080PSF_2400, /**< 1920 x 1080 24 Segment Frame */
\r
36 VID_FMT_1080P_2397, /**< 1920 x 1080 24/1.001 Progressive */
\r
37 VID_FMT_1080P_2400, /**< 1920 x 1080 24 Progressive */
\r
38 VID_FMT_1080I_5000, /**< 1920 x 1080 50 Interlaced */
\r
39 VID_FMT_1080I_5994, /**< 1920 x 1080 60/1.001 Interlaced */
\r
40 VID_FMT_1080I_6000, /**< 1920 x 1080 60 Interlaced */
\r
41 VID_FMT_1080P_2500, /**< 1920 x 1080 25 Progressive */
\r
42 VID_FMT_1080P_2997, /**< 1920 x 1080 30/1.001 Progressive */
\r
43 VID_FMT_1080P_3000, /**< 1920 x 1080 30 Progressive */
\r
44 VID_FMT_HSDL_1498, /**< 2048 x 1556 15/1.0 Segment Frame */
\r
45 VID_FMT_HSDL_1500, /**< 2048 x 1556 15 Segment Frame */
\r
49 VID_FMT_2048_1080PSF_2397=19,
\r
50 VID_FMT_2048_1080PSF_2400=20,
\r
51 VID_FMT_2048_1080P_2397=21,
\r
52 VID_FMT_2048_1080P_2400=22,
\r
53 VID_FMT_1080PSF_2500=23,
\r
54 VID_FMT_1080PSF_2997=24,
\r
55 VID_FMT_1080PSF_3000=25,
\r
56 VID_FMT_1080P_5000=26,
\r
57 VID_FMT_1080P_5994=27,
\r
58 VID_FMT_1080P_6000=28,
\r
59 VID_FMT_720P_2500=29,
\r
60 VID_FMT_720P_2997=30,
\r
61 VID_FMT_720P_3000=31,
\r
65 typedef enum _EMemoryFormat
\r
70 MEM_FMT_YUVS=MEM_FMT_BV8,
\r
71 MEM_FMT_V210=3, // Iridium HD (BAG1)
\r
73 MEM_FMT_CINEON_LITTLE_ENDIAN=5,
\r
75 MEM_FMT_BGRA=MEM_FMT_ARGB_PC,
\r
82 typedef enum _EUpdateMethod
\r
86 UPD_FMT_FRAME_DISPLAY_FIELD1,
\r
87 UPD_FMT_FRAME_DISPLAY_FIELD2,
\r
91 typedef enum _EResoFormat
\r
98 typedef enum _ECardType
\r
100 CRD_BLUEDEEP_LT=0, // D64 Lite
\r
101 CRD_BLUEDEEP_SD, // Iridium SD
\r
102 CRD_BLUEDEEP_AV, // Iridium AV
\r
103 CRD_BLUEDEEP_IO, // D64 Full
\r
104 CRD_BLUEWILD_AV, // D64 AV
\r
105 CRD_IRIDIUM_HD, // * Iridium HD
\r
106 CRD_BLUEWILD_RT, // D64 RT
\r
107 CRD_BLUEWILD_HD, // * BadAss G2
\r
108 CRD_REDDEVIL, // Iridium Full
\r
109 CRD_BLUEDEEP_HD, // * BadAss G2 variant, proposed, reserved
\r
110 CRD_BLUE_EPOCH_2K = CRD_BLUEDEEP_HD,
\r
111 CRD_BLUE_EPOCH_2K_HORIZON=CRD_BLUE_EPOCH_2K,
\r
112 CRD_BLUEDEEP_HDS, // * BadAss G2 variant, proposed, reserved
\r
113 CRD_BLUE_ENVY, // Mini Din
\r
114 CRD_BLUE_PRIDE, //Mini Din Output
\r
117 CRD_BLUE_SD_DUALLINK,
\r
119 CRD_BLUE_SD_DUALLINK_PRO,
\r
120 CRD_BLUE_SD_INGEST_PRO,
\r
121 CRD_BLUE_SD_DEEPBLUE_LITE_PRO,
\r
122 CRD_BLUE_SD_SINGLELINK_PRO,
\r
123 CRD_BLUE_SD_IRIDIUM_AV_PRO,
\r
124 CRD_BLUE_SD_FIDELITY,
\r
127 CRD_BLUE_EPOCH_2K_CORE,
\r
128 CRD_BLUE_EPOCH_2K_ULTRA,
\r
129 CRD_BLUE_EPOCH_HORIZON,
\r
130 CRD_BLUE_EPOCH_CORE,
\r
131 CRD_BLUE_EPOCH_ULTRA,
\r
132 CRD_BLUE_CREATE_HD,
\r
133 CRD_BLUE_CREATE_2K,
\r
134 CRD_BLUE_CREATE_2K_ULTRA,
\r
139 typedef enum _EHDCardSubType
\r
143 CRD_HD_IRIDIUM_XP=3,
\r
144 CRD_HD_IRIDIUM = 4,
\r
149 /* To be used by the new audio interface only */
\r
150 typedef enum _BlueAudioChannelDesc
\r
152 MONO_FLAG = 0xC0000000,
\r
153 MONO_CHANNEL_1 = 0x00000001,
\r
154 MONO_CHANNEL_2 = 0x00000002,
\r
155 MONO_CHANNEL_3 = 0x00000004,
\r
156 MONO_CHANNEL_4 = 0x00000008,
\r
157 MONO_CHANNEL_5 = 0x00000010,
\r
158 MONO_CHANNEL_6 = 0x00000020,
\r
159 MONO_CHANNEL_7 = 0x00000040,
\r
160 MONO_CHANNEL_8 = 0x00000080,
\r
161 MONO_CHANNEL_9 = 0x00000100,// to be used by analog audio output channels
\r
162 MONO_CHANNEL_10 = 0x00000200,// to be used by analog audio output channels
\r
163 MONO_CHANNEL_11 = 0x00000400,//actual channel 9
\r
164 MONO_CHANNEL_12 = 0x00000800,//actual channel 10
\r
165 MONO_CHANNEL_13 = 0x00001000,//actual channel 11
\r
166 MONO_CHANNEL_14 = 0x00002000,//actual channel 12
\r
167 MONO_CHANNEL_15 = 0x00004000,//actual channel 13
\r
168 MONO_CHANNEL_16 = 0x00008000,//actual channel 14
\r
169 MONO_CHANNEL_17 = 0x00010000,//actual channel 15
\r
170 MONO_CHANNEL_18 = 0x00020000 //actual channel 16
\r
171 }BlueAudioChannelDesc;
\r
174 //----------------------------------------------------------------------------
\r
177 AUDIO_CHANNEL_LOOPING_OFF = 0x00000000,
\r
178 AUDIO_CHANNEL_LOOPING = 0x00000001,
\r
179 AUDIO_CHANNEL_LITTLEENDIAN = 0x00000000,
\r
180 AUDIO_CHANNEL_BIGENDIAN = 0x00000002,
\r
181 AUDIO_CHANNEL_OFFSET_IN_BYTES = 0x00000004,
\r
182 AUDIO_CHANNEL_16BIT = 0x00000008,
\r
183 AUDIO_CHANNEL_BLIP_PENDING = 0x00000010,
\r
184 AUDIO_CHANNEL_BLIP_COMPLETE = 0x00000020,
\r
185 AUDIO_CHANNEL_SELECT_CHANNEL = 0x00000040,
\r
186 AUDIO_CHANNEL_24BIT = 0x00000080
\r
190 @desc Used to select Audio input source on new generation SD cards
\r
192 This enumerator works only when used with ReadAudioSample function.
\r
196 BLUE_AUDIO_AES=0, /**< Used to select All 8 channels of Digital Audio using AES/AES3id connector*/
\r
197 BLUE_AUDIO_ANALOG=1,/**< Used to select Analog audio*/
\r
198 BLUE_AUDIO_SDIA=2, /**< Used to select Emb audio from SDI A */
\r
199 BLUE_AUDIO_EMBEDDED=BLUE_AUDIO_SDIA,
\r
200 BLUE_AUDIO_SDIB=3, /**< Used to select Emb audio from SDI B */
\r
201 BLUE_AUDIO_AES_PAIR0=4,
\r
202 BLUE_AUDIO_AES_PAIR1=5,
\r
203 BLUE_AUDIO_AES_PAIR2=6,
\r
204 BLUE_AUDIO_AES_PAIR3=7,
\r
205 BLUE_AUDIO_INVALID=8
\r
206 } Blue_Audio_Connector_Type;
\r
208 typedef enum _EAudioRate
\r
210 AUDIO_SAMPLE_RATE_48K=48000,
\r
211 AUDIO_SAMPLE_RATE_96K=96000,
\r
212 AUDIO_SAMPLE_RATE_UNKNOWN=-1
\r
215 typedef enum _EConnectorSignalColorSpace
\r
217 RGB_ON_CONNECTOR=0x00400000,
\r
219 }EConnectorSignalColorSpace;
\r
221 typedef enum _EDualLinkSignalFormatType
\r
223 Signal_FormatType_4224=0,
\r
224 Signal_FormatType_4444=1,
\r
225 Signal_FormatType_Independent_422=10,
\r
226 Signal_FormatType_Dependent_422=11,
\r
227 Signal_FormatType_Key_Key=0x8000
\r
228 }EDualLinkSignalFormatType;
\r
230 typedef enum _EPreDefinedColorSpaceMatrix
\r
234 MATRIX_RGB_TO_YUV_709_CGR=MATRIX_709_CGR,
\r
236 MATRIX_RGB_TO_YUV_709=MATRIX_709,
\r
237 RGB_FULL_RGB_SMPTE=3,
\r
239 MATRIX_RGB_TO_YUV_601_CGR=MATRIX_601_CGR,
\r
241 MATRIX_RGB_TO_YUV_601=MATRIX_601,
\r
242 MATRIX_SMPTE_274_CGR=6,
\r
243 MATRIX_SMPTE_274=7,
\r
245 UNITY_MATRIX_INPUT=9,
\r
246 MATRIX_YUV_TO_RGB_709_CGR=10,
\r
247 MATRIX_YUV_TO_RGB_709=11,
\r
248 RGB_SMPTE_RGB_FULL=12,
\r
249 MATRIX_YUV_TO_RGB_601_CGR=13,
\r
250 MATRIX_YUV_TO_RGB_601=14,
\r
251 MATRIX_USER_DEFINED=15,
\r
252 }EPreDefinedColorSpaceMatrix;
\r
254 #ifndef BLUE_LINUX_CODE
\r
257 BLUE_FIFO_CLOSED=0,
\r
258 BLUE_FIFO_STARTING=1,
\r
259 BLUE_FIFO_RUNNING=2,
\r
260 BLUE_FIFO_STOPPING=3,
\r
261 BLUE_FIFO_PASSIVE=5,
\r
262 }BlueVideoFifoStatus;
\r
264 typedef enum _ERGBDataRange
\r
266 CGR_RANGE=0, //0-255
\r
267 SMPTE_RANGE=1 //16-235
\r
270 typedef enum _EHD_XCONNECTOR_MODE
\r
274 }EHD_XCONNECTOR_MODE;
\r
276 typedef enum _EImageOrientation
\r
278 ImageOrientation_Normal=0,
\r
279 ImageOrientation_VerticalFlip=1,
\r
280 ImageOrientation_Invalid=2,
\r
281 }EImageOrientation;
\r
283 typedef enum _EBlueGenlockSource
\r
286 BlueSDIBNC=0x10000,
\r
287 BlueSDI_B_BNC=BlueSDIBNC,
\r
288 BlueSDI_A_BNC=0x20000,
\r
289 BlueAnalog_BNC=0x40000,
\r
290 BlueSoftware=0x80000,
\r
291 }EBlueGenlockSource;
\r
293 typedef enum _EBlueVideoChannel
\r
295 BLUE_VIDEOCHANNEL_A=0,
\r
296 BLUE_VIDEO_OUTPUT_CHANNEL_A=BLUE_VIDEOCHANNEL_A,
\r
298 BLUE_VIDEOCHANNEL_B=1,
\r
299 BLUE_VIDEO_OUTPUT_CHANNEL_B=BLUE_VIDEOCHANNEL_B,
\r
301 BLUE_VIDEOCHANNEL_C=2,
\r
302 BLUE_VIDEO_INPUT_CHANNEL_A=BLUE_VIDEOCHANNEL_C,
\r
304 BLUE_VIDEOCHANNEL_D=3,
\r
305 BLUE_VIDEO_INPUT_CHANNEL_B=BLUE_VIDEOCHANNEL_D,
\r
307 BLUE_OUTPUT_MEM_MODULE_A=BLUE_VIDEO_OUTPUT_CHANNEL_A,
\r
308 BLUE_OUTPUT_MEM_MODULE_B=BLUE_VIDEO_OUTPUT_CHANNEL_B,
\r
309 BLUE_INPUT_MEM_MODULE_A=BLUE_VIDEO_INPUT_CHANNEL_A,
\r
310 BLUE_INPUT_MEM_MODULE_B=BLUE_VIDEO_INPUT_CHANNEL_B,
\r
311 BLUE_JETSTREAM_SCALER_MODULE_0=0x10,
\r
312 BLUE_JETSTREAM_SCALER_MODULE_1=0x11,
\r
313 BLUE_JETSTREAM_SCALER_MODULE_2=0x12,
\r
314 BLUE_JETSTREAM_SCALER_MODULE_3=0x13,
\r
316 BLUE_VIDEOCHANNEL_INVALID=30
\r
317 }EBlueVideoChannel;
\r
319 typedef enum _EBlueVideoRouting
\r
321 BLUE_VIDEO_LINK_INVALID=0,
\r
322 BLUE_SDI_A_LINK1=4,
\r
323 BLUE_SDI_A_LINK2=5,
\r
324 BLUE_SDI_B_LINK1=6,
\r
325 BLUE_SDI_B_LINK2=7,
\r
326 BLUE_ANALOG_LINK1=8,
\r
327 BLUE_ANALOG_LINK2=9,
\r
328 BLUE_SDI_A_SINGLE_LINK=BLUE_SDI_A_LINK1,
\r
329 BLUE_SDI_B_SINGLE_LINK=BLUE_SDI_B_LINK1,
\r
330 BLUE_ANALOG_SINGLE_LINK=BLUE_ANALOG_LINK1
\r
332 }EBlueVideoRouting;
\r
336 BLUE_FIFO_NULL_ATTRIBUTE=0x0,
\r
337 BLUE_FIFO_ECHOPORT_ENABLED=0x1,
\r
338 BLUE_FIFO_STEPMODE = 0x2,
\r
339 BLUE_FIFO_LOOPMODE = 0x4
\r
340 }BlueVideoFifo_Attributes;
\r
342 typedef enum _BlueAudioOutputDest
\r
344 Blue_AnalogAudio_Output=0x0,
\r
345 Blue_AES_Output=0x80000000,
\r
346 Blue_Emb_Output=0x40000000,
\r
347 }BlueAudioOutputDest;
\r
350 typedef enum _BlueAudioInputSource
\r
353 Blue_AnalogAudio=0x20,
\r
354 Blue_SDIA_Embed=0x40,
\r
355 Blue_SDIB_Embed=0x80,
\r
356 }BlueAudioInputSource;
\r
358 typedef enum _EBlueConnectorIdentifier
\r
360 BLUE_CONNECTOR_INVALID = -1,
\r
362 // BNC connectors in order from top to bottom of shield
\r
363 BLUE_CONNECTOR_BNC_A = 0, // BNC closest to top of shield
\r
364 BLUE_CONNECTOR_BNC_B,
\r
365 BLUE_CONNECTOR_BNC_C,
\r
366 BLUE_CONNECTOR_BNC_D,
\r
367 BLUE_CONNECTOR_BNC_E,
\r
368 BLUE_CONNECTOR_BNC_F,
\r
369 BLUE_CONNECTOR_GENLOCK,
\r
371 BLUE_CONNECTOR_ANALOG_VIDEO_1 = 100,
\r
372 BLUE_CONNECTOR_ANALOG_VIDEO_2,
\r
373 BLUE_CONNECTOR_ANALOG_VIDEO_3,
\r
374 BLUE_CONNECTOR_ANALOG_VIDEO_4,
\r
375 BLUE_CONNECTOR_ANALOG_VIDEO_5,
\r
376 BLUE_CONNECTOR_ANALOG_VIDEO_6,
\r
378 BLUE_CONNECTOR_DVID_1 = 200,
\r
379 BLUE_CONNECTOR_SDI_OUTPUT_A= BLUE_CONNECTOR_DVID_1,
\r
380 BLUE_CONNECTOR_DVID_2,
\r
381 BLUE_CONNECTOR_SDI_OUTPUT_B= BLUE_CONNECTOR_DVID_2,
\r
382 BLUE_CONNECTOR_DVID_3,
\r
383 BLUE_CONNECTOR_SDI_INPUT_A= BLUE_CONNECTOR_DVID_3,
\r
384 BLUE_CONNECTOR_DVID_4,
\r
385 BLUE_CONNECTOR_SDI_INPUT_B= BLUE_CONNECTOR_DVID_4,
\r
386 BLUE_CONNECTOR_DVID_5,
\r
388 BLUE_CONNECTOR_AES = 300,
\r
389 BLUE_CONNECTOR_ANALOG_AUDIO_1,
\r
390 BLUE_CONNECTOR_ANALOG_AUDIO_2,
\r
392 BLUE_CONNECTOR_RESOURCE_BLOCK=0x400,
\r
393 BLUE_CONNECTOR_JETSTREAM_SCALER_0=(BLUE_CONNECTOR_RESOURCE_BLOCK|BLUE_JETSTREAM_SCALER_MODULE_0),
\r
394 BLUE_CONNECTOR_JETSTREAM_SCALER_1=(BLUE_CONNECTOR_RESOURCE_BLOCK|BLUE_JETSTREAM_SCALER_MODULE_1),
\r
395 BLUE_CONNECTOR_JETSTREAM_SCALER_2=(BLUE_CONNECTOR_RESOURCE_BLOCK|BLUE_JETSTREAM_SCALER_MODULE_2),
\r
396 BLUE_CONNECTOR_JETSTREAM_SCALER_3=(BLUE_CONNECTOR_RESOURCE_BLOCK|BLUE_JETSTREAM_SCALER_MODULE_3),
\r
398 BLUE_CONNECTOR_OUTPUT_MEM_MODULE_A=(BLUE_CONNECTOR_RESOURCE_BLOCK|BLUE_OUTPUT_MEM_MODULE_A),
\r
399 BLUE_CONNECTOR_OUTPUT_MEM_MODULE_B=(BLUE_CONNECTOR_RESOURCE_BLOCK|BLUE_OUTPUT_MEM_MODULE_B),
\r
400 BLUE_CONNECTOR_INPUT_MEM_MODULE_A=(BLUE_CONNECTOR_RESOURCE_BLOCK|BLUE_INPUT_MEM_MODULE_A),
\r
401 BLUE_CONNECTOR_INPUT_MEM_MODULE_B=(BLUE_CONNECTOR_RESOURCE_BLOCK|BLUE_INPUT_MEM_MODULE_B),
\r
403 }EBlueConnectorIdentifier;
\r
405 typedef enum _EBlueConnectorSignalDirection
\r
407 BLUE_CONNECTOR_SIGNAL_INVALID=-1,
\r
408 BLUE_CONNECTOR_SIGNAL_INPUT=0,
\r
409 BLUE_CONNECTOR_SIGNAL_OUTPUT=1,
\r
410 }EBlueConnectorSignalDirection;
\r
412 typedef enum _EBlueConnectorProperty
\r
414 BLUE_INVALID_CONNECTOR_PROPERTY = -1,
\r
417 BLUE_CONNECTOR_PROP_INPUT_SIGNAL=0,
\r
418 BLUE_CONNECTOR_PROP_OUTPUT_SIGNAL=1,
\r
421 BLUE_CONNECTOR_PROP_SDI = 0,
\r
422 BLUE_CONNECTOR_PROP_YUV_Y,
\r
423 BLUE_CONNECTOR_PROP_YUV_U,
\r
424 BLUE_CONNECTOR_PROP_YUV_V,
\r
425 BLUE_CONNECTOR_PROP_RGB_R,
\r
426 BLUE_CONNECTOR_PROP_RGB_G,
\r
427 BLUE_CONNECTOR_PROP_RGB_B,
\r
428 BLUE_CONNECTOR_PROP_CVBS,
\r
429 BLUE_CONNECTOR_PROP_SVIDEO_Y,
\r
430 BLUE_CONNECTOR_PROP_SVIDEO_C,
\r
433 BLUE_CONNECTOR_PROP_AUDIO_AES = 0x2000,
\r
434 BLUE_CONNECTOR_PROP_AUDIO_EMBEDDED,
\r
435 BLUE_CONNECTOR_PROP_AUDIO_ANALOG,
\r
438 BLUE_CONNECTOR_PROP_SINGLE_LINK=0x3000,
\r
439 BLUE_CONNECTOR_PROP_DUALLINK_LINK_1,
\r
440 BLUE_CONNECTOR_PROP_DUALLINK_LINK_2,
\r
441 BLUE_CONNECTOR_PROP_DUALLINK_LINK,
\r
442 }EBlueConnectorProperty;
\r
445 typedef enum _BLUE_AUDIOINPUT_SOURCE
\r
447 BLUE_AES_AUDIO_INPUT=0x10000,
\r
448 BLUE_ANALOG_AUDIO_INPUT=0x20000,
\r
449 BLUE_SDIA_AUDIO_INPUT=0x30000,
\r
450 BLUE_SDIB_AUDIO_INPUT=0x40000
\r
451 }BLUE_AUDIOINPUT_SOURCE;
\r
454 typedef enum _EBlueCardProperty
\r
456 VIDEO_DUAL_LINK_OUTPUT=0,
\r
457 VIDEO_DUAL_LINK_INPUT=1,
\r
458 VIDEO_DUAL_LINK_OUTPUT_SIGNAL_FORMAT_TYPE=2, //EDualLinkSignalFormatType
\r
459 VIDEO_DUAL_LINK_INPUT_SIGNAL_FORMAT_TYPE=3, //EDualLinkSignalFormatType
\r
460 VIDEO_OUTPUT_SIGNAL_COLOR_SPACE=4, //EConnectorSignalColorSpace
\r
461 VIDEO_INPUT_SIGNAL_COLOR_SPACE=5, //EConnectorSignalColorSpace
\r
462 VIDEO_MEMORY_FORMAT=6, //EMemoryFormat
\r
463 VIDEO_MODE=7, //EVideoMode
\r
464 VIDEO_UPDATE_TYPE=8, //EUpdateMethod
\r
466 VIDEO_IMAGE_ORIENTATION=10,
\r
467 VIDEO_USER_DEFINED_COLOR_MATRIX=11,
\r
468 VIDEO_PREDEFINED_COLOR_MATRIX=12, //EPreDefinedColorSpaceMatrix
\r
469 VIDEO_RGB_DATA_RANGE=13, //ERGBDataRange
\r
470 VIDEO_KEY_OVER_BLACK=14,
\r
471 VIDEO_KEY_OVER_INPUT_SIGNAL=15,
\r
472 VIDEO_SET_DOWN_CONVERTER_VIDEO_MODE=16, //EHD_XCONNECTOR_MODE
\r
473 VIDEO_LETTER_BOX=17,
\r
474 VIDEO_PILLOR_BOX_LEFT=18,
\r
475 VIDEO_PILLOR_BOX_RIGHT=19,
\r
476 VIDEO_PILLOR_BOX_TOP=20,
\r
477 VIDEO_PILLOR_BOX_BOTTOM=21,
\r
478 VIDEO_SAFE_PICTURE=22,
\r
479 VIDEO_SAFE_TITLE=23,
\r
480 VIDEO_INPUT_SIGNAL_VIDEO_MODE=24,
\r
481 VIDEO_COLOR_MATRIX_MODE=25,
\r
482 VIDEO_OUTPUT_MAIN_LUT=26,
\r
483 VIDEO_OUTPUT_AUX_LUT=27,
\r
486 VIDEO_PLAYBACK_FIFO_STATUS=30,
\r
487 RS422_RX_BUFFER_LENGTH=31,
\r
488 RS422_RX_BUFFER_FLUSH=32,
\r
489 VIDEO_INPUT_UPDATE_TYPE=33,
\r
490 VIDEO_INPUT_MEMORY_FORMAT=34,
\r
491 VIDEO_GENLOCK_SIGNAL=35,
\r
492 AUDIO_OUTPUT_PROP=36,
\r
493 AUDIO_CHANNEL_ROUTING=AUDIO_OUTPUT_PROP,
\r
494 AUDIO_INPUT_PROP=37,
\r
495 VIDEO_ENABLE_LETTERBOX=38,
\r
496 VIDEO_DUALLINK_OUTPUT_INVERT_KEY_COLOR=39,
\r
497 VIDEO_DUALLINK_OUTPUT_DEFAULT_KEY_COLOR=40,
\r
498 VIDEO_BLACKGENERATOR=41,
\r
499 VIDEO_INPUTFRAMESTORE_IMAGE_ORIENTATION=42,
\r
500 VIDEO_INPUT_SOURCE_SELECTION=43,
\r
501 DEFAULT_VIDEO_OUTPUT_CHANNEL=44,
\r
502 DEFAULT_VIDEO_INPUT_CHANNEL=45,
\r
503 VIDEO_REFERENCE_SIGNAL_TIMING=46,
\r
504 EMBEDEDDED_AUDIO_OUTPUT=47,
\r
505 EMBEDDED_AUDIO_OUTPUT=EMBEDEDDED_AUDIO_OUTPUT,
\r
506 VIDEO_PLAYBACK_FIFO_FREE_STATUS=48,
\r
507 VIDEO_IMAGE_WIDTH=49,
\r
508 VIDEO_IMAGE_HEIGHT=50,
\r
509 VIDEO_SCALER_MODE=51,
\r
510 AVAIL_AUDIO_INPUT_SAMPLE_COUNT=52,
\r
511 VIDEO_PLAYBACK_FIFO_ENGINE_STATUS=53,
\r
512 VIDEO_CAPTURE_FIFO_ENGINE_STATUS=54,
\r
513 VIDEO_2K_1556_PANSCAN=55,
\r
514 VIDEO_OUTPUT_ENGINE=56,
\r
515 VIDEO_INPUT_ENGINE=57,
\r
516 BYPASS_RELAY_A_ENABLE=58,
\r
517 BYPASS_RELAY_B_ENABLE=59,
\r
518 VIDEO_PREMULTIPLIER=60,
\r
519 VIDEO_PLAYBACK_START_TRIGGER_POINT=61,
\r
521 VIDEO_IMAGE_PITCH=63,
\r
522 VIDEO_IMAGE_OFFSET=64,
\r
523 VIDEO_INPUT_IMAGE_WIDTH=65,
\r
524 VIDEO_INPUT_IMAGE_HEIGHT=66,
\r
525 VIDEO_INPUT_IMAGE_PITCH=67,
\r
526 VIDEO_INPUT_IMAGE_OFFSET=68,
\r
528 BOARD_TEMPERATURE=70,
\r
530 SAVEAS_POWERUP_SETTINGS=72,
\r
531 VIDEO_CARDPROPERTY_INVALID=100
\r
532 }EBlueCardProperty;
\r
535 typedef enum _EAnalogConnectorSignalType
\r
537 ANALOG_OUTPUTSIGNAL_CVBS_Y_C=1,
\r
538 ANALOG_OUTPUTSIGNAL_COMPONENT=2,
\r
539 ANALOG_OUTPUTSIGNAL_RGB=4
\r
540 }EAnalogConnectorSignalType;
\r
543 typedef enum _EAnalogInputConnectorType
\r
545 /* Composite input */
\r
546 ANALOG_VIDEO_INPUT_CVBS_AIN1=0x00, //only available on Mini COAX
\r
547 ANALOG_VIDEO_INPUT_CVBS_AIN2=0x01, //available on both Mini COAX and Mini DIN
\r
548 ANALOG_VIDEO_INPUT_CVBS_AIN3=0x02, //available on both Mini COAX and Mini DIN
\r
549 ANALOG_VIDEO_INPUT_CVBS_AIN4=0x03, //only available on Mini COAX
\r
550 ANALOG_VIDEO_INPUT_CVBS_AIN5=0x04, //only available on Mini COAX
\r
551 ANALOG_VIDEO_INPUT_CVBS_AIN6=0x05, //available on both Mini COAX and Mini DIN
\r
554 //Y_C is a synonym for svideo
\r
555 ANALOG_VIDEO_INPUT_Y_C_AIN1_AIN4=0x06, //only available on Mini COAX
\r
556 ANALOG_VIDEO_INPUT_Y_C_AIN2_AIN5=0x07, //only available on Mini COAX
\r
557 ANALOG_VIDEO_INPUT_Y_C_AIN3_AIN6=0x08, //available on both Mini COAX and Mini DIN
\r
560 ANALOG_VIDEO_INPUT_YUV_AIN1_AIN4_AIN5=0x09, //only available on Mini COAX
\r
561 ANALOG_VIDEO_INPUT_YUV_AIN2_AIN3_AIN6=0x0a, //available on both Mini COAX and Mini DIN
\r
562 ANALOG_VIDEO_INPUT_USE_SDI_A=0x6F,
\r
563 ANALOG_VIDEO_INPUT_USE_SDI=0x7F,
\r
564 GENERIC_ANALOG_VIDEO_SOURCE=0x8F,
\r
565 ANALOG_VIDEO_INPUT_USE_SDI_B=ANALOG_VIDEO_INPUT_USE_SDI
\r
566 }EAnalogInputConnectorType;
\r
570 ANALOG_VIDEO_INPUT_CONNECTOR,//EAnalogInputConnectorType
\r
571 ANALOG_VIDEO_INPUT_PED,
\r
572 ANALOG_VIDEO_INPUT_BRIGHTNESS,
\r
573 ANALOG_VIDEO_INPUT_HUE,
\r
574 ANALOG_VIDEO_INPUT_LUMA_GAIN,
\r
575 ANALOG_VIDEO_INPUT_CHROMA_GAIN,
\r
576 ANALOG_VIDEO_INPUT_AUTO_GAIN,
\r
577 ANALOG_VIDEO_INPUT_LOAD_DEFAULT_SETTING,
\r
578 ANALOG_VIDEO_OUTPUT_PED,
\r
579 ANALOG_VIDEO_OUTPUT_BRIGHTNESS,
\r
580 ANALOG_VIDEO_OUTPUT_HUE,
\r
581 ANALOG_VIDEO_OUTPUT_LUMA_GAIN,
\r
582 ANALOG_VIDEO_OUTPUT_CHROMA_GAIN,
\r
583 ANALOG_VIDEO_OUTPUT_SHARPNESS,
\r
584 ANALOG_VIDEO_OUTPUT_AUTO_GAIN,
\r
585 ANALOG_VIDEO_OUTPUT_LOAD_DEFAULT_SETTING,
\r
586 ANALOG_VIDEO_OUTPUT_SIGNAL_TYPE,//_EAnalogConnectorSignalType
\r
587 ANALOG_LOAD_BLUEFISH_DEFAULT_SETTING,
\r
588 ANALOG_SET_AS_POWERUP_SETTINGS,
\r
589 ANALOG_LOAD_POWERUP_SETTINGS,
\r
590 ANALOG_CONNECTOR_STATUS
\r
591 } AnalogCard_Property;
\r
594 BLUE_INT32 inputConnector; //ANALOG_VIDEO_INPUT_CONNECTOR, EAnalogInputConnectorType
\r
595 BLUE_INT32 inputPed; //ANALOG_VIDEO_INPUT_PED,
\r
596 BLUE_INT32 inputBrightness; //ANALOG_VIDEO_INPUT_BRIGHTNESS,
\r
597 BLUE_INT32 inputHue; //ANALOG_VIDEO_INPUT_HUE,
\r
598 BLUE_INT32 inputLumaGain; //ANALOG_VIDEO_INPUT_LUMA_GAIN,
\r
599 BLUE_INT32 inputChromaGain; //ANALOG_VIDEO_INPUT_CHROMA_GAIN,
\r
600 BLUE_INT32 inputAutoGain; //ANALOG_VIDEO_INPUT_AUTO_GAIN,
\r
601 BLUE_INT32 outputPed; //ANALOG_VIDEO_OUTPUT_PED,
\r
602 BLUE_INT32 outputBrightness; //ANALOG_VIDEO_OUTPUT_BRIGHTNESS,
\r
603 BLUE_INT32 outputHue; //ANALOG_VIDEO_OUTPUT_HUE,
\r
604 BLUE_INT32 outputYGain; //ANALOG_VIDEO_OUTPUT_Y_GAIN,
\r
605 BLUE_INT32 outputUGain; //ANALOG_VIDEO_OUTPUT_U_GAIN,
\r
606 BLUE_INT32 outputVGain; //ANALOG_VIDEO_OUTPUT_V_GAIN,
\r
607 BLUE_INT32 outputSharpness; //ANALOG_VIDEO_OUTPUT_SHARPNESS,
\r
608 BLUE_INT32 outputAutoGain; //ANALOG_VIDEO_OUTPUT_AUTO_GAIN,
\r
609 BLUE_INT32 outputSignalTypes; //EAnalogConnectorSignalType
\r
612 //----------------------------------------------------------------------------------------------------
\r
613 // Used to determine how video interrupts are handled, used in IOCTL_REDDEVIL_VIDEO_ENGINE
\r
614 typedef enum _EEngineMode
\r
616 VIDEO_ENGINE_FRAMESTORE=0, // framestore engine
\r
617 VIDEO_ENGINE_PLAYBACK=1, // Playback engine
\r
618 VIDEO_ENGINE_CAPTURE=2, // Capture engine
\r
619 VIDEO_ENGINE_PAGEFLIP=3, // page flipper a mod of CHU viewport
\r
620 VIDEO_ENGINE_DUPLEX=4, // Full Duplex video
\r
621 VIDEO_ENGINE_INVALID
\r
625 typedef enum _EBlueEmbAudioOutput
\r
627 blue_emb_audio_enable=0x1, // Switches off/on the whole HANC output from connecotrs associated with the channel
\r
628 blue_auto_aes_to_emb_audio_encoder=0x2, //control whether the auto aes to emb thread should be running or not.
\r
629 blue_emb_audio_group1_enable=0x4,
\r
630 blue_emb_audio_group2_enable=0x8,
\r
631 blue_emb_audio_group3_enable=0x10,
\r
632 blue_emb_audio_group4_enable=0x20,
\r
633 blue_enable_hanc_timestamp_pkt = 0x40
\r
634 }EBlueEmbAudioOutput;
\r
637 // Buffer Target enumerations
\r
638 typedef enum _EBufferTarget
\r
640 BUFFER_TARGET_VIDEO=0, // Generic R/W DMA
\r
641 BUFFER_TARGET_AUDIO, // Special processing required for audio
\r
642 BUFFER_TARGET_VIDEO_8BIT, // Special R/W DMA utilising 8 bit aperture
\r
643 BUFFER_TARGET_VIDEO_HALF, // Special R/W DMA every second line (currently unused)
\r
644 BUFFER_TARGET_VIDEO_OUT, // Updates video out register on DMA completion for write
\r
645 BUFFER_TARGET_INVALID
\r
648 #define BUFFER_TYPE_VIDEO (0)
\r
649 #define BUFFER_TYPE_AUDIO (1)
\r
650 #define BUFFER_TYPE_VIDEO_8BIT (2) // use this when assigning a buffer to indicate DMA from aperture!
\r
651 #define BUFFER_TYPE_VIDEO_OUT (3) // On DMA start set video output address to DMA target
\r
652 #define BUFFER_TYPE_VIDEO_HALF (4) // DMA every second line...
\r
654 // Buffer identifiers
\r
655 #define BUFFER_ID_AUDIO_IN (0)
\r
656 #define BUFFER_ID_AUDIO_OUT (1)
\r
657 #define BUFFER_ID_VIDEO0 (2)
\r
658 #define BUFFER_ID_VIDEO1 (3)
\r
659 #define BUFFER_ID_VIDEO2 (4)
\r
660 #define BUFFER_ID_VIDEO3 (5)
\r
662 //#define BUFFER_ID_USER_BASE (6)
\r
666 #define VIDEO_BORDER_TOP (0x10000000)
\r
667 #define VIDEO_BORDER_BOTTOM (0x20000000)
\r
668 #define VIDEO_BORDER_LEFT (0x40000000)
\r
669 #define VIDEO_BORDER_RIGHT (0x80000000)
\r
671 typedef struct _AnalogCardPropStruct
\r
673 BLUE_UINT32 VideoChannel;
\r
676 BLUE_INT32 minValue;
\r
677 BLUE_INT32 maxValue;
\r
678 BLUE_INT32 bReadFlag;
\r
679 }AnalogCardPropStruct;
\r
681 typedef enum _EConnectorSignalFormatType
\r
683 Signal_Type_4444 =1,
\r
684 Signal_Type_4224 =0,
\r
686 }EConnectorSignalFormatType;
\r
688 typedef enum _EDMADirection
\r
696 typedef enum _MatrixColType
\r
704 struct VideoFeature_struct
\r
706 BLUE_UINT32 Type; // Bluefish card type
\r
707 BLUE_UINT32 CardSubType;
\r
708 BLUE_UINT32 Bus; // Which PIC bus (bridge) it is on
\r
709 BLUE_UINT32 Slot; // Which slot card is plugged into
\r
710 BLUE_UINT32 Feature; // Look at the _EBlueFishCardFeatures definition to know what each bit mean
\r
713 // Bits defining supported features that can be used with VideoFeature_struct
\r
714 #define VIDEO_CAPS_INPUT_SDI (0x00000001) // Capable of input of SDI Video
\r
715 #define VIDEO_CAPS_OUTPUT_SDI (0x00000002) // Capable of output of SDI Video
\r
716 #define VIDEO_CAPS_INPUT_COMP (0x00000004) // Capable of capturing Composite Video input
\r
717 #define VIDEO_CAPS_OUTPUT_COMP (0x00000008) // Capable of capturing Composite Video output
\r
719 #define VIDEO_CAPS_INPUT_YUV (0x00000010) // Capable of capturing Component Video input
\r
720 #define VIDEO_CAPS_OUTPUT_YUV (0x00000020) // Capable of capturing Component Video output
\r
721 #define VIDEO_CAPS_INPUT_SVIDEO (0x00000040) // Capable of capturing SVideo input
\r
722 #define VIDEO_CAPS_OUTPUT_SVIDEO (0x00000080) // Capable of capturing SVideo output
\r
724 #define VIDEO_CAPS_GENLOCK (0x00000100) // Able to adjust Vert & Horiz timing
\r
725 #define VIDEO_CAPS_VERTICAL_FLIP (0x00000200) // Able to flip rasterisation
\r
726 #define VIDEO_CAPS_KEY_OUTPUT (0x00000400) // Video keying output capable
\r
727 #define VIDEO_CAPS_4444_OUTPUT (0x00000800) // Capable of outputting 4444 (dual link)
\r
729 #define VIDEO_CAPS_DUALLINK_INPUT (0x00001000) // Dual Link input
\r
730 #define VIDEO_CAPS_INTERNAL_KEYER (0x00002000) // Has got an internal Keyer
\r
731 #define VIDEO_CAPS_RGB_COLORSPACE_SDI_CONN (0x00004000) // Support RGB colorspace in on an SDI connector
\r
732 #define VIDEO_CAPS_HAS_PILLOR_BOX (0x00008000) // Has got support for pillor box
\r
734 #define VIDEO_CAPS_OUTPUT_RGB (0x00010000) // Has Analog RGB output connector
\r
735 #define VIDEO_CAPS_SCALED_RGB (0x00020000) // Can scale RGB colour space
\r
736 #define AUDIO_CAPS_PLAYBACK (0x00040000) // Has got audio output
\r
737 #define AUDIO_CAPS_CAPTURE (0x00080000)
\r
739 #define VIDEO_CAPS_DOWNCONVERTER (0x00100000)
\r
740 #define VIDEO_CAPS_DUALOUTPUT_422_IND_STREAM (0x00200000) // Specifies whether the card supports Dual Indepenedent 422 output streams
\r
741 #define VIDEO_CAPS_DUALINPUT_422_IND_STREAM (0x00400000) // Specifies whether the card supports Dual Indepenedent 422 input streams
\r
743 #define VIDEO_CAPS_VBI_OUTPUT (0x00800000)
\r
744 #define VIDEO_CAPS_VBI_INPUT (0x01000000)
\r
746 #define VIDEO_CAPS_HANC_OUTPUT (0x02000000)
\r
747 #define VIDEO_CAPS_HANC_INPUT (0x04000000)
\r
749 #define VIDEO_CAPS_DUALOUTPUT_422_IND_STREAM (0x00100000) // Specifies whether the card supports Dual Indepenedent 422 output streams
\r
750 #define VIDEO_CAPS_DUALINPUT_422_IND_STREAM (0x00200000) // Specifies whether the card supports Dual Indepenedent 422 input streams
\r
752 #define VIDEO_CAPS_VBI_OUTPUT (0x00400000)
\r
753 #define VIDEO_CAPS_VBI_INPUT (0x00800000)
\r
755 #define VIDEO_CAPS_HANC_OUTPUT (0x01000000)
\r
756 #define VIDEO_CAPS_HANC_INPUT (0x02000000)
\r
759 #define BLUE_CARD_BUFFER_TYPE_OFFSET (12)
\r
760 #define BLUE_DMA_DATA_TYPE_OFFSET (16)
\r
761 #define BLUE_DMA_FLAGS_OFFSET (20)
\r
762 #define GetDMACardBufferId(value) (value & 0xFFF)
\r
763 #define GetCardBufferType(value) ((value & 0xF000) >> BLUE_CARD_BUFFER_TYPE_OFFSET)
\r
764 #define GetDMADataType(value) ((value & 0xF0000) >> BLUE_DMA_DATA_TYPE_OFFSET)
\r
765 #define GetDMAFlags(value) ((value & 0xF00000) >> (BLUE_DMA_FLAGS_OFFSET))
\r
767 #define BlueImage_VBI_DMABuffer(BufferId,DataType) ( (((ULONG)DataType&0xF)<<(ULONG)BLUE_DMA_DATA_TYPE_OFFSET)| \
\r
768 ( BLUE_CARDBUFFER_IMAGE_VBI<<(ULONG)BLUE_CARD_BUFFER_TYPE_OFFSET) | \
\r
769 ( ((ULONG)BufferId&0xFFF)) |0)
\r
771 #define BlueImage_DMABuffer(BufferId,DataType) ( (((ULONG)DataType&0xF)<<(ULONG)BLUE_DMA_DATA_TYPE_OFFSET)| \
\r
772 ( BLUE_CARDBUFFER_IMAGE<<(ULONG)BLUE_CARD_BUFFER_TYPE_OFFSET) | \
\r
773 ( ((ULONG)BufferId&0xFFF)) |0)
\r
775 #define BlueImage_VBI_HANC_DMABuffer(BufferId,DataType) ( (((ULONG)DataType&0xF)<<(ULONG)BLUE_DMA_DATA_TYPE_OFFSET)| \
\r
776 ( BLUE_CARDBUFFER_IMAGE_VBI_HANC<<(ULONG)BLUE_CARD_BUFFER_TYPE_OFFSET) | \
\r
777 ( ((ULONG)BufferId&0xFFF)) |0)
\r
779 #define BlueImage_HANC_DMABuffer(BufferId,DataType) ( (((ULONG)DataType&0xF)<<(ULONG)BLUE_DMA_DATA_TYPE_OFFSET)| \
\r
780 ( BLUE_CARDBUFFER_IMAGE_HANC<<(ULONG)BLUE_CARD_BUFFER_TYPE_OFFSET) | \
\r
781 ( ((ULONG)BufferId&0xFFF)) |0)
\r
784 #define BlueBuffer_Image_VBI(BufferId) (((BLUE_CARDBUFFER_IMAGE_VBI)<<BLUE_CARD_BUFFER_TYPE_OFFSET)|((BufferId&0xFFF))|0)
\r
785 #define BlueBuffer_Image(BufferId) (((BLUE_CARDBUFFER_IMAGE)<<BLUE_CARD_BUFFER_TYPE_OFFSET)|((BufferId&0xFFF))|0)
\r
786 #define BlueBuffer_Image_VBI_HANC(BufferId) (((BLUE_CARDBUFFER_IMAGE_VBI_HANC)<<BLUE_CARD_BUFFER_TYPE_OFFSET)|((BufferId&0xFFF))|0)
\r
787 #define BlueBuffer_Image_HANC(BufferId) (((BLUE_CARDBUFFER_IMAGE_HANC)<<BLUE_CARD_BUFFER_TYPE_OFFSET)|((BufferId&0xFFF))|0)
\r
788 #define BlueBuffer_HANC(BufferId) (((BLUE_CARDBUFFER_HANC)<<BLUE_CARD_BUFFER_TYPE_OFFSET)|((BufferId&0xFFF))|0)
\r
790 #define BYPASS_RELAY_A (0x00000001) // enable bypass relay channel a when loading driver , only used in linux
\r
791 #define BYPASS_RELAY_B (0x00000002) // enable bypass relay channel a when loading driver , only used in linux
\r
792 typedef enum _EDMACardBufferType
\r
794 BLUE_CARDBUFFER_IMAGE=0,
\r
795 BLUE_CARDBUFFER_IMAGE_VBI_HANC=1,
\r
796 BLUE_CARDBUFFER_IMAGE_VBI=2,
\r
797 BLUE_CARDBUFFER_AUDIO_OUT=3,
\r
798 BLUE_CARDBUFFER_AUDIO_IN=4,
\r
799 BLUE_CARDBUFFER_HANC=5,
\r
800 BLUE_CARDBUFFER_IMAGE_HANC=6,
\r
801 BLUE_CARDBUFFER_INVALID=6
\r
802 }EDMACardBufferType;
\r
804 typedef enum _EDMADataType
\r
808 BLUE_DATA_FIELD1=1,
\r
809 BLUE_DATA_FIELD2=2,
\r
812 BLUE_DATA_AUDIO_IN=5,
\r
813 BLUE_DATA_AUDIO_OUT=6,
\r
814 BLUE_DATA_FRAME_RDOM=7,
\r
815 BLUE_DMADATA_INVALID=8
\r
818 typedef struct _AUXILLARY_VIDEO_INFO
\r
820 BLUE_UINT32 video_channel_id;
\r
821 BLUE_UINT32 lUniqueId;
\r
822 BLUE_UINT32 lInfoType;
\r
823 BLUE_UINT32 lMemFmt;
\r
826 }Auxillary_Video_Info;
\r
829 typedef enum _EBlueVideoAuxInfoType
\r
831 BLUE_VIDEO_AUX_MEMFMT_CHANGE=1,
\r
832 BLUE_VIDEO_AUX_UPDATE_LTC=2,
\r
833 BLUE_VIDEO_AUX_UPDATE_GPIO=4,
\r
834 }EBlueVideoAuxInfoType;
\r
837 #define GET_ANALOG_AUDIO_LEFT_ROUTINGCHANNEL(value) (value&0xFF)
\r
838 #define GET_ANALOG_AUDIO_RIGHT_ROUTINGCHANNEL(value) ((value&0xFF00)>>8)
\r
839 #define SET_ANALOG_AUDIO_ROUTINGCHANNEL(left,right) (((right & 0xFF)<<8)|(left & 0xFF))
\r
840 #define SET_AUDIO_OUTPUT_ROUTINGCHANNEL(output_type,src_channel_id,_output_channel_id) ((1<<31)|((output_type&3)<<29)|((src_channel_id & 0x7F)<<16)|((_output_channel_id &0x3f)<<23))
\r
841 #define GET_AUDIO_OUTPUT_SRC_CHANNEL_ROUTING(value) ((value>>16) & 0x7F)
\r
842 #define GET_AUDIO_OUTPUT_CHANNEL_ROUTING(value) ((value>>23) & 0x3F)
\r
843 #define GET_AUDIO_OUTPUT_TYPE_ROUTING(value) ((value & 0x60000000)>>29)
\r
845 #define AUDIO_INPUT_SOURCE_SELECT_FLAG (1<<16)
\r
846 #define AUDIO_INPUT_SOURCE_SELECT(SynchCount,AudioInputSource) (AUDIO_INPUT_SOURCE_SELECT_FLAG|(SynchCount)|(AudioInputSource<<17))
\r
848 struct blue_video_connection_routing_struct
\r
850 BLUE_UINT32 video_channel;
\r
851 BLUE_UINT32 duallink_flag;
\r
852 BLUE_UINT32 link1_connector;
\r
853 BLUE_UINT32 link2_connector;
\r
856 #pragma pack(push, video_sync_struct, 1)
\r
857 typedef struct _blue_video_sync_struct
\r
859 BLUE_UINT32 sync_wait_type;// field or frame
\r
860 BLUE_UINT32 video_channel; // which video channel interrupt should the interrupt wait for
\r
861 BLUE_UINT32 timeout_video_msc; //if the current video msc is equal to this one insert it into the queue.
\r
862 BLUE_UINT32 video_msc; //current video msc
\r
863 BLUE_UINT8 pad[32];
\r
864 }blue_video_sync_struct;
\r
865 #pragma pack(pop,video_sync_struct)
\r
868 typedef enum _EBlueLUTType
\r
870 BLUE_MAIN_LUT_B_Pb=0,
\r
871 BLUE_MAIN_LUT_G_Y=1,
\r
872 BLUE_MAIN_LUT_R_Pr=2,
\r
873 BLUE_AUX_LUT_B_Pb=3,
\r
874 BLUE_AUX_LUT_G_Y=4,
\r
875 BLUE_AUX_LUT_R_Pr=5,
\r
878 #pragma pack(push, video_frame, 1)
\r
879 struct blue_videoframe_info
\r
881 BLUE_UINT64 ltcTimeCode;
\r
882 unsigned long videochannel;
\r
883 unsigned long BufferId;
\r
884 unsigned long Count;
\r
885 unsigned long DroppedFrameCount;
\r
888 struct blue_videoframe_info_ex
\r
890 BLUE_UINT64 ltcTimeCode;
\r
891 unsigned long videochannel;
\r
893 unsigned long Count;
\r
894 unsigned long DroppedFrameCount;
\r
895 unsigned long nFrameTimeStamp;
\r
896 unsigned long nVideoSignalType;
\r
897 unsigned char pad[32];
\r
900 struct blue_1d_lookup_table_struct
\r
902 BLUE_UINT32 nVideoChannel;
\r
903 BLUE_UINT32 nLUTId;
\r
904 BLUE_UINT16 * pLUTData;
\r
905 BLUE_UINT32 nLUTElementCount;
\r
906 BLUE_UINT8 pad[256];
\r
908 #pragma pack(pop, video_frame)
\r
910 #pragma pack(push, blue_dma_request, 1)
\r
911 struct blue_dma_request_struct
\r
913 unsigned char * pBuffer;
\r
914 BLUE_UINT32 video_channel;
\r
915 BLUE_UINT32 BufferId;
\r
916 unsigned int BufferDataType;
\r
917 unsigned int FrameType;
\r
918 unsigned int BufferSize;
\r
919 unsigned int Offset;
\r
920 unsigned long BytesTransferred;
\r
921 unsigned char pad[64];
\r
923 typedef struct _SerialPort_struct
\r
925 unsigned char Buffer[64];
\r
926 unsigned int nBufLength;
\r
927 unsigned int nSerialPortId;
\r
928 unsigned int bFlag; // SerialPort_struct_flags
\r
929 unsigned short sTimeOut;
\r
930 }SerialPort_struct;
\r
932 #pragma pack(pop, blue_dma_request)
\r
934 typedef enum _blue_output_hanc_ioctl_enum
\r
936 blue_get_output_hanc_buffer=0,
\r
937 blue_put_output_hanc_buffer=1,
\r
938 blue_get_valid_silent_hanc_data_status=3,
\r
939 blue_set_valid_silent_hanc_data_status=4,
\r
940 blue_start_output_fifo=5,
\r
941 blue_stop_output_fifo=6,
\r
942 blue_init_output_fifo=7,
\r
943 blue_get_queues_info=8,
\r
944 blue_get_output_fifo_info=blue_get_queues_info,
\r
945 blue_get_output_fifo_status=9,
\r
947 }blue_output_hanc_ioctl_enum;
\r
949 typedef enum _blue_input_hanc_ioctl_enum
\r
951 blue_get_input_hanc_buffer=0,
\r
952 blue_start_input_fifo=3,
\r
953 blue_stop_input_fifo=4,
\r
954 blue_init_input_fifo=5,
\r
955 blue_playthru_input_fifo=6,
\r
956 blue_release_input_hanc_buffer=7,
\r
957 blue_map_input_hanc_buffer=8,
\r
958 blue_unmap_input_hanc_buffer=9,
\r
959 blue_get_info_input_hanc_fifo=10,
\r
960 blue_get_input_rp188=11,
\r
961 blue_get_input_fifo_status=12,
\r
962 }blue_input_hanc_ioctl_enum;
\r
965 #define HANC_PLAYBACK_INIT (0x00000001)
\r
966 #define HANC_PLAYBACK_START (0x00000002)
\r
967 #define HANC_PLAYBACK_STOP (0x00000004)
\r
969 #define HANC_CAPTURE_INIT (0x00000010)
\r
970 #define HANC_CAPTURE_START (0x00000020)
\r
971 #define HANC_CAPTURE_STOP (0x00000040)
\r
972 #define HANC_CAPTURE_PLAYTHRU (0x00000080)
\r
975 typedef enum _EOracFPGAConfigCMD
\r
977 ORAC_FPGA_CONFIG_CMD_ERASE_SECTOR=0,
\r
978 ORAC_FPGA_CONFIG_CMD_UNLOCK_SECTOR=1,
\r
979 ORAC_FPGA_CONFIG_CMD_WRITE_DATA=2,
\r
980 ORAC_FPGA_CONFIG_CMD_STATUS=3,
\r
981 ORAC_FPGA_CONFIG_CMD_READMODE=4,
\r
982 ORAC_FPGA_CONFIG_RAW_WRITE=5,
\r
983 ORAC_FPGA_CONFIG_RAW_READ=6,
\r
984 ORAC_FPGA_CONFIG_CMD_READ_DATA=7
\r
985 }EOracFPGAConfigCMD;
\r
988 #define ANALOG_CHANNEL_0 MONO_CHANNEL_9
\r
989 #define ANALOG_CHANNEL_1 MONO_CHANNEL_10
\r
991 /*Assumes that the data is in stereo pairs not individual samples*/
\r
992 #define STEREO_PAIR_1 (MONO_CHANNEL_1|MONO_CHANNEL_2) /* Mono Channel 1 & Mono channel 2* together*/
\r
993 #define STEREO_PAIR_2 (MONO_CHANNEL_3|MONO_CHANNEL_4) /* Mono Channel 3 & Mono Channel 4* together*/
\r
994 #define STEREO_PAIR_3 (MONO_CHANNEL_5|MONO_CHANNEL_6) /* Mono Channel 5 & Mono Channel 6* together*/
\r
995 #define STEREO_PAIR_4 (MONO_CHANNEL_7|MONO_CHANNEL_8) /* Mono Channel 7 & Mono Channel 8* together*/
\r
997 #define ANALOG_AUDIO_PAIR (ANALOG_CHANNEL_0|ANALOG_CHANNEL_1)
\r
999 #define BLUE_LITTLE_ENDIAN 0
\r
1000 #define BLUE_BIG_ENDIAN 1
\r
1002 #define GREED_SILENT_HANC_BUFFER1 250
\r
1003 #define GREED_SILENT_HANC_BUFFER2 251
\r
1007 typedef enum _EEpochRoutingElements
\r
1009 EPOCH_SRC_DEST_SCALER_0=0x1,
\r
1010 EPOCH_SRC_DEST_SCALER_1,
\r
1011 EPOCH_SRC_DEST_SCALER_2,
\r
1012 EPOCH_SRC_DEST_SCALER_3,
\r
1014 EPOCH_SRC_SDI_INPUT_A,
\r
1015 EPOCH_SRC_SDI_INPUT_B,
\r
1016 EPOCH_SRC_SDI_INPUT_C,
\r
1017 EPOCH_SRC_SDI_INPUT_D,
\r
1019 EPOCH_DEST_SDI_OUTPUT_A,
\r
1020 EPOCH_DEST_SDI_OUTPUT_B,
\r
1021 EPOCH_DEST_SDI_OUTPUT_C,
\r
1022 EPOCH_DEST_SDI_OUTPUT_D,
\r
1024 EPOCH_SRC_OUTPUT_MEM_INTERFACE_CHA,
\r
1025 EPOCH_SRC_OUTPUT_MEM_INTERFACE_CHB,
\r
1027 EPOCH_DEST_INPUT_MEM_INTERFACE_CHA,
\r
1028 EPOCH_DEST_INPUT_MEM_INTERFACE_CHB,
\r
1030 }EEpochRoutingElements;
\r
1034 #define VPEnableFieldCountTrigger ((BLUE_UINT64)1<<63)
\r
1035 #define VPTriggerGetFieldCount(value) ((BLUE_UINT64)value & 0xFFFFFFFF)
\r
1037 typedef enum _EBlueScalerFilterType
\r
1039 BlueScalerHorizontalYFilter=1,
\r
1040 BlueScalerHorizontalCFilter=2,
\r
1041 BlueScalerVerticalYFilter=3,
\r
1042 BlueScalerVerticalCFilter=4,
\r
1043 }EBlueScalerFilterType;
\r
1047 #define SET_EPOCH_SCALER_MODE(scaler_id,video_mode) ((scaler_id <<16)|video_mode)
\r
1048 #define GET_EPOCH_SCALER_MODE(value) (value&0xFFFF)
\r
1049 #define GET_EPOCH_SCALER_ID(value) ((value&0xFFFF0000)>>16)
\r
1051 // use these macros for retreiving the temp and fan speed.
\r
1052 // on epoch range of cards.
\r
1053 #define EPOCH_CORE_TEMP(value) (value & 0xFFFF)
\r
1054 #define EPOCH_BOARD_TEMP(value) ((value>>16) & 0xFF)
\r
1055 #define EPOCH_FAN_SPEED(value) ((value>>24) & 0xFF)
\r
1057 // use these macro for doing the MR2 routing
\r
1058 // on epoch range of cards.
\r
1059 #define EPOCH_SET_ROUTING(routing_src,routing_dest,data_link_type) ((routing_src & 0xFF) | ((routing_dest & 0xFF)<<8) | ((data_link_type&0xFF)<<16))
\r
1060 #define EPOCH_ROUTING_GET_SRC_DATA(value) (value & 0xFF)
\r
1061 #define EPOCH_ROUTING_GET_DEST_DATA(value) ((value>>8) & 0xFF)
\r
1062 #define EPOCH_ROUTING_GET_LINK_TYPE_DATA(value) ((value>>16) & 0xFF)