2 #define _BLUEDRIVER_P_H__
3 #define BLUE_UINT32 unsigned int
5 #define BLUE_UINT8 unsigned char
7 #define BLUE_UINT16 unsigned short
8 #define BLUE_INT16 short
13 #define BLUE_UINT64 unsigned long long
14 #define ULONG unsigned long
15 #elif defined (__APPLE__)
16 #define BLUE_UINT64 unsigned long long
17 #define UINT32 BLUE_UINT32
18 #define INT32 BLUE_INT32
19 #define ULONG unsigned long
21 #elif defined (_WIN32)
22 #define BLUE_UINT64 unsigned __int64
27 * This contains the enumerators that can be used to set the cards \n
28 * video output and also to determine the video mode of the incoming \n
31 typedef enum _EVideoMode
35 VID_FMT_576I_5000=0, /**< 720 x 576 50 Interlaced */
36 VID_FMT_486I_5994=1, /**< 720 x 486 60/1.001 Interlaced */
37 VID_FMT_720P_5994, /**< 1280 x 720 60/1.001 Progressive */
38 VID_FMT_720P_6000, /**< 1280 x 720 60 Progressive */
39 VID_FMT_1080PSF_2397, /**< 1920 x 1080 24/1.001 Segment Frame */
40 VID_FMT_1080PSF_2400, /**< 1920 x 1080 24 Segment Frame */
41 VID_FMT_1080P_2397, /**< 1920 x 1080 24/1.001 Progressive */
42 VID_FMT_1080P_2400, /**< 1920 x 1080 24 Progressive */
43 VID_FMT_1080I_5000, /**< 1920 x 1080 50 Interlaced */
44 VID_FMT_1080I_5994, /**< 1920 x 1080 60/1.001 Interlaced */
45 VID_FMT_1080I_6000, /**< 1920 x 1080 60 Interlaced */
46 VID_FMT_1080P_2500, /**< 1920 x 1080 25 Progressive */
47 VID_FMT_1080P_2997, /**< 1920 x 1080 30/1.001 Progressive */
48 VID_FMT_1080P_3000, /**< 1920 x 1080 30 Progressive */
49 VID_FMT_HSDL_1498, /**< 2048 x 1556 15/1.0 Segment Frame */
50 VID_FMT_HSDL_1500, /**< 2048 x 1556 15 Segment Frame */
51 VID_FMT_720P_5000, /**< 1280 x 720 50 Progressive */
52 VID_FMT_720P_2398, /**< 1280 x 720 24/1.001 Progressive */
53 VID_FMT_720P_2400, /**< 1280 x 720 24 Progressive */
54 VID_FMT_2048_1080PSF_2397=19, /**< 2048 x 1080 24/1.001 Segment Frame */
55 VID_FMT_2048_1080PSF_2400=20, /**< 2048 x 1080 24 Segment Frame */
56 VID_FMT_2048_1080P_2397=21, /**< 2048 x 1080 24/1.001 progressive */
57 VID_FMT_2048_1080P_2400=22, /**< 2048 x 1080 24 progressive */
58 VID_FMT_1080PSF_2500=23,
59 VID_FMT_1080PSF_2997=24,
60 VID_FMT_1080PSF_3000=25,
61 VID_FMT_1080P_5000=26,
62 VID_FMT_1080P_5994=27,
63 VID_FMT_1080P_6000=28,
68 VID_FMT_2048_1080PSF_2500=33,
69 VID_FMT_2048_1080PSF_2997=34,
70 VID_FMT_2048_1080PSF_3000=35,
71 VID_FMT_2048_1080P_2500=36,
72 VID_FMT_2048_1080P_2997=37,
73 VID_FMT_2048_1080P_3000=38,
74 VID_FMT_2048_1080P_5000=39,
75 VID_FMT_2048_1080P_5994=40,
76 VID_FMT_2048_1080P_6000=41,
77 VID_FMT_1080P_4800=42,
78 VID_FMT_2048_1080P_4800=43,
84 @brief Use these enumerators to set the pixel format
85 that should be used by the video input and output
88 typedef enum _EMemoryFormat
90 MEM_FMT_ARGB=0, /**< ARGB 4:4:4:4 */
93 MEM_FMT_YUVS=MEM_FMT_BV8,
94 MEM_FMT_V210=3, // Iridium HD (BAG1)
96 MEM_FMT_CINEON_LITTLE_ENDIAN=5,
98 MEM_FMT_BGRA=MEM_FMT_ARGB_PC,
102 MEM_FMT_BGR_16_16_16=10,
103 MEM_FMT_BGR_48 = MEM_FMT_BGR_16_16_16,
104 MEM_FMT_BGRA_16_16_16_16=11,
105 MEM_FMT_BGRA_64 = MEM_FMT_BGRA_16_16_16_16,
106 MEM_FMT_VUYA_4444=12,
111 MEM_FMT_YUV_ALPHA=17,
112 MEM_FMT_RGB_16_16_16=18,
113 MEM_FMT_RGB_48 = MEM_FMT_RGB_16_16_16,
114 MEM_FMT_RGBA_16_16_16_16=19,
115 MEM_FMT_RGBA_64 = MEM_FMT_RGBA_16_16_16_16,
118 MEM_FMT_YUV_ALPHA_10 = 22,
128 @brief Used to control the video update type,
129 whether the card should capture/playback a
130 video frame or field.
132 typedef enum _EUpdateMethod
136 UPD_FMT_FRAME_DISPLAY_FIELD1,
137 UPD_FMT_FRAME_DISPLAY_FIELD2,
139 UPD_FMT_FLAG_RETURN_CURRENT_UNIQUEID=0x80000000,/**< if this flag is used on epoch cards, function would
140 return the unique id of the current frame as the return value.*/
143 typedef enum _EResoFormat
150 typedef enum _ECardType
152 CRD_BLUEDEEP_LT=0, // D64 Lite
153 CRD_BLUEDEEP_SD, // Iridium SD
154 CRD_BLUEDEEP_AV, // Iridium AV
155 CRD_BLUEDEEP_IO, // D64 Full
156 CRD_BLUEWILD_AV, // D64 AV
157 CRD_IRIDIUM_HD, // * Iridium HD
158 CRD_BLUEWILD_RT, // D64 RT
159 CRD_BLUEWILD_HD, // * BadAss G2
160 CRD_REDDEVIL, // Iridium Full
161 CRD_BLUEDEEP_HD, // * BadAss G2 variant, proposed, reserved
162 CRD_BLUE_EPOCH_2K = CRD_BLUEDEEP_HD,
163 CRD_BLUE_EPOCH_2K_HORIZON=CRD_BLUE_EPOCH_2K,
164 CRD_BLUEDEEP_HDS, // * BadAss G2 variant, proposed, reserved
165 CRD_BLUE_ENVY, // Mini Din
166 CRD_BLUE_PRIDE, //Mini Din Output
169 CRD_BLUE_SD_DUALLINK,
171 CRD_BLUE_SD_DUALLINK_PRO,
172 CRD_BLUE_SD_INGEST_PRO,
173 CRD_BLUE_SD_DEEPBLUE_LITE_PRO,
174 CRD_BLUE_SD_SINGLELINK_PRO,
175 CRD_BLUE_SD_IRIDIUM_AV_PRO,
176 CRD_BLUE_SD_FIDELITY,
179 CRD_BLUE_EPOCH_2K_CORE,
180 CRD_BLUE_EPOCH_2K_ULTRA,
181 CRD_BLUE_EPOCH_HORIZON,
183 CRD_BLUE_EPOCH_ULTRA,
186 CRD_BLUE_CREATE_2K_ULTRA,
187 CRD_BLUE_CREATE_3D = CRD_BLUE_CREATE_2K,
188 CRD_BLUE_CREATE_3D_ULTRA = CRD_BLUE_CREATE_2K_ULTRA,
190 CRD_BLUE_SUPER_NOVA_S_PLUS,
191 CRD_BLUE_SUPER_NOVA_MICRO,
192 CRD_BLUE_NEUTRON = CRD_BLUE_SUPER_NOVA_MICRO,
198 typedef enum _EHDCardSubType
208 enum EEpochFirmwareProductID
210 ORAC_FILMPOST_FIRMWARE_PRODUCTID = (0x01), //Epoch (2K) Horizon/Core/Ultra, Create/Create3D/Create3D Ultra
211 ORAC_BROADCAST_FIRMWARE_PRODUCTID = (0x02), //Epoch (2K) Horizon/Core/Ultra, Create/Create3D/Create3D Ultra
212 ORAC_ASI_FIRMWARE_PRODUCTID = (0x03), //Epoch (2K) Horizon/Core/Ultra
213 ORAC_4SDIINPUT_FIRMWARE_PRODUCTID = (0x04), //Epoch Supernova/Supernova S+
214 ORAC_4SDIOUTPUT_FIRMWARE_PRODUCTID = (0x05), //Epoch Supernova/Supernova S+
215 ORAC_2SDIINPUT_2SDIOUTPUT_FIRMWARE_PRODUCTID = (0x06), //Epoch Supernova/Supernova S+
216 ORAC_1SDIINPUT_3SDIOUTPUT_FIRMWARE_PRODUCTID = (0x08), //Epoch Supernova/Supernova S+, deprecated
217 ORAC_INPUT_1SDI_1CHANNEL_OUTPUT_4SDI_3CHANNEL_FIRMWARE_PRODUCTID = (0x09), //Epoch Supernova/Supernova S+
218 ORAC_INPUT_2SDI_2CHANNEL_OUTPUT_3SDI_2CHANNEL_FIRMWARE_PRODUCTID = (0x0A), //Epoch Supernova/Supernova S+, deprecated
219 ORAC_INPUT_3SDI_3CHANNEL_OUTPUT_1SDI_1CHANNEL_FIRMWARE_PRODUCTID = (0x0B), //Epoch Supernova/Supernova S+
220 ORAC_BNC_ASI_FIRMWARE_PRODUCTID = (0x0C), //Epoch Supernova/Supernova S+
221 ORAC_NEUTRON_2_IN_0_OUT_FIRMWARE_PRODUCTID = (0x0D), //Epoch Neutron
222 ORAC_NEUTRON_0_IN_2_OUT_FIRMWARE_PRODUCTID = (0x0E), //Epoch Neutron
223 ORAC_NEUTRON_1_IN_1_OUT_FIRMWARE_PRODUCTID = (0x0F), //Epoch Neutron
224 ORAC_NEUTRON_2_IN_0_OUT_SCALER_FIRMWARE_PRODUCTID = (0x10), //Epoch Neutron
225 ORAC_NEUTRON_0_IN_2_OUT_SCALER_FIRMWARE_PRODUCTID = (0x11), //Epoch Neutron
226 ORAC_NEUTRON_1_IN_1_OUT_SCALER_FIRMWARE_PRODUCTID = (0x12), //Epoch Neutron
227 ORAC_NEUTRON_ASI_FIRMWARE_PRODUCTID = (0x13), //Epoch Neutron
228 ORAC_INPUT_1SDI_1CHANNEL_OUTPUT_3SDI_3CHANNEL_FIRMWARE_PRODUCTID = (0x14), //Epoch Supernova/Supernova S+
229 ORAC_NEUTRON_1_IN_2_OUT_FIRMWARE_PRODUCTID = (0x15), //Epoch Neutron
230 ORAC_NEUTRON_3_IN_0_OUT_FIRMWARE_PRODUCTID = (0x16), //Epoch Neutron
231 ORAC_NEUTRON_0_IN_3_OUT_FIRMWARE_PRODUCTID = (0x17), //Epoch Neutron
232 ORAC_INPUT_1SDI_1CHANNEL_OUTPUT_3SDI_2CHANNEL_FIRMWARE_PRODUCTID = (0x18), //Epoch Supernova/Supernova S+
235 /**< @brief Use this enumerator to select the audio channels that should be captured or played back.
237 typedef enum _BlueAudioChannelDesc
239 MONO_FLAG = 0xC0000000,
240 MONO_CHANNEL_1 = 0x00000001,
241 MONO_CHANNEL_2 = 0x00000002,
242 MONO_CHANNEL_3 = 0x00000004,
243 MONO_CHANNEL_4 = 0x00000008,
244 MONO_CHANNEL_5 = 0x00000010,
245 MONO_CHANNEL_6 = 0x00000020,
246 MONO_CHANNEL_7 = 0x00000040,
247 MONO_CHANNEL_8 = 0x00000080,
248 MONO_CHANNEL_9 = 0x00000100,// to be used by analog audio output channels
249 MONO_CHANNEL_10 = 0x00000200,// to be used by analog audio output channels
250 MONO_CHANNEL_11 = 0x00000400,//actual channel 9
251 MONO_CHANNEL_12 = 0x00000800,//actual channel 10
252 MONO_CHANNEL_13 = 0x00001000,//actual channel 11
253 MONO_CHANNEL_14 = 0x00002000,//actual channel 12
254 MONO_CHANNEL_15 = 0x00004000,//actual channel 13
255 MONO_CHANNEL_16 = 0x00008000,//actual channel 14
256 MONO_CHANNEL_17 = 0x00010000,//actual channel 15
257 MONO_CHANNEL_18 = 0x00020000 //actual channel 16
258 }BlueAudioChannelDesc;
261 //----------------------------------------------------------------------------
263 Use this enumeraotor to set the type of pcm audio data.
267 AUDIO_CHANNEL_LOOPING_OFF = 0x00000000, /**< deprecated not used any more */
268 AUDIO_CHANNEL_LOOPING = 0x00000001,/**< deprecated not used any more */
269 AUDIO_CHANNEL_LITTLEENDIAN = 0x00000000, /**< if the audio data is little endian this flag must be set*/
270 AUDIO_CHANNEL_BIGENDIAN = 0x00000002,/**< if the audio data is big endian this flag must be set*/
271 AUDIO_CHANNEL_OFFSET_IN_BYTES = 0x00000004,/**< deprecated not used any more */
272 AUDIO_CHANNEL_16BIT = 0x00000008, /**< if the audio channel bit depth is 16 bits this flag must be set*/
273 AUDIO_CHANNEL_BLIP_PENDING = 0x00000010,/**< deprecated not used any more */
274 AUDIO_CHANNEL_BLIP_COMPLETE = 0x00000020,/**< deprecated not used any more */
275 AUDIO_CHANNEL_SELECT_CHANNEL = 0x00000040,/**< deprecated not used any more */
276 AUDIO_CHANNEL_24BIT = 0x00000080/**< if the audio channel bit depth is 24 bits this flag must be set*/
280 @desc Used to select Audio input source on new generation SD cards
282 This enumerator works only when used with ReadAudioSample function.
286 BLUE_AUDIO_AES = 0, /** 8 channels of AES */
287 BLUE_AUDIO_ANALOG = 1, /** 2 channels of analog audio */
288 BLUE_AUDIO_SDIA = 2, /** deprecated, do not use */
289 BLUE_AUDIO_EMBEDDED = BLUE_AUDIO_SDIA, /** use BLUE_AUDIO_EMBEDDED for any embedded audio stream; the stream is associated with the SDK object (BlueVelvet4/BlueVelvetC) */
290 BLUE_AUDIO_SDIB = 3, /** deprecated, do not use */
291 BLUE_AUDIO_AES_PAIR0 = 4, /** deprecated, do not use */
292 BLUE_AUDIO_AES_PAIR1 = 5, /** deprecated, do not use */
293 BLUE_AUDIO_AES_PAIR2 = 6, /** deprecated, do not use */
294 BLUE_AUDIO_AES_PAIR3 = 7, /** deprecated, do not use */
295 BLUE_AUDIO_SDIC = 8, /** deprecated, do not use */
296 BLUE_AUDIO_SDID = 9, /** deprecated, do not use */
297 BLUE_AUDIO_INVALID = 10
298 } Blue_Audio_Connector_Type;
300 typedef enum _EAudioRate
302 AUDIO_SAMPLE_RATE_48K=48000,
303 AUDIO_SAMPLE_RATE_96K=96000,
304 AUDIO_SAMPLE_RATE_UNKNOWN=-1
308 @brief use this enumerator to define the color space of the video signal on the SDI cable
310 typedef enum _EConnectorSignalColorSpace
312 RGB_ON_CONNECTOR=0x00400000, /**< Use this enumerator if the colorspace of video data on the SDI cable is RGB <br/>
313 When using dual link capture/playback , user can choose the
314 color space of the data. <br>
315 In single link SDI the color space of the signal is always YUB*/
316 YUV_ON_CONNECTOR=0 /**<Use this enumerator if color space of video data on the SDI cable is RGB.*/
317 }EConnectorSignalColorSpace;
321 @brief use this enumerator for controlling the dual link functionality.
323 typedef enum _EDualLinkSignalFormatType
325 Signal_FormatType_4224 = 0, /**< sets the card to work in 4:2:2:4 mode*/
326 Signal_FormatType_4444 = 1, /**< sets the card to work in 4:4:4 10 bit dual link mode*/
327 Signal_FormatType_444_10BitSDI = Signal_FormatType_4444,
328 Signal_FormatType_444_12BitSDI = 0x4, /**< sets the card to work in 4:4:4 12 bit dual link mode*/
329 Signal_FormatType_Independent_422 = 0x2,
330 Signal_FormatType_Key_Key = 0x8000 /**< not used currently on epoch cards */
332 }EDualLinkSignalFormatType;
334 enum ECardOperatingMode
336 CardOperatingMode_SingleLink = 0x0,
337 CardOperatingMode_Independent_422 = CardOperatingMode_SingleLink,
338 CardOperatingMode_DualLink = 0x1,
339 CardOperatingMode_StereoScopic_422 = 0x3,
340 CardOperatingMode_Dependent_422 = CardOperatingMode_StereoScopic_422, /**< not used currently on epoch cards */
341 CardOperatingMode_DualLink_Dual3G = 0x4,
344 typedef enum _EPreDefinedColorSpaceMatrix
348 MATRIX_RGB_TO_YUV_709_CGR=MATRIX_709_CGR,
350 MATRIX_RGB_TO_YUV_709=MATRIX_709,
351 RGB_FULL_RGB_SMPTE=3,
353 MATRIX_RGB_TO_YUV_601_CGR=MATRIX_601_CGR,
355 MATRIX_RGB_TO_YUV_601=MATRIX_601,
356 MATRIX_SMPTE_274_CGR=6,
359 UNITY_MATRIX_INPUT=9,
360 MATRIX_YUV_TO_RGB_709_CGR=10,
361 MATRIX_YUV_TO_RGB_709=11,
362 RGB_SMPTE_RGB_FULL=12,
363 MATRIX_YUV_TO_RGB_601_CGR=13,
364 MATRIX_YUV_TO_RGB_601=14,
365 MATRIX_USER_DEFINED=15,
366 }EPreDefinedColorSpaceMatrix;
369 @brief this enumerator contains the status of the driver video/hanc fifo
373 BLUE_FIFO_CLOSED=0, /**< Fifo has not been initialized*/
374 BLUE_FIFO_STARTING=1,/**< Fifo is starting */
375 BLUE_FIFO_RUNNING=2,/**< Fifo is running */
376 BLUE_FIFO_STOPPING=3,/**< Fifo is in the process of stopping */
377 BLUE_FIFO_PASSIVE=5,/**< Fifo is currently stopped or not active*/
378 BLUE_FIFO_STATUS_INVALID=10
379 }BlueVideoFifoStatus;
382 @brief use this enumerator to define the data range of the RGB video frame data.
384 typedef enum _ERGBDataRange
386 CGR_RANGE=0, /**< In this mode RGB data expected by the user (capture) or provided by the user(playback) is
387 in the range of 0-255(8 bit) or 0-1023(10 bit0).<br/>
388 driver uses this information to choose the appropriate YUV conversion matrices.*/
389 SMPTE_RANGE=1 /**< In this mode RGB data expected by the user (capture) or provided by the user(playback) is
390 in the range of 16-235(8 bit) or 64-940(10 bit0).<br/>
391 driver uses this information to choose the appropriate YUV conversion matrices.*/
394 typedef enum _EHD_XCONNECTOR_MODE
398 }EHD_XCONNECTOR_MODE;
400 /**< @brief this enumerator can be used to set the image orienatation of the frame.
402 typedef enum _EImageOrientation
404 ImageOrientation_Normal=0, /**< in this configuration , frame is top to bottom and left to right */
405 ImageOrientation_VerticalFlip=1, /**< in this configuration frame is bottom to top and left to right*/
406 ImageOrientation_Invalid=2,
409 /**< @brief this enumerator defines the reference signal source that can be used with bluefish cards
411 typedef enum _EBlueGenlockSource
413 BlueGenlockBNC = 0, /** Genlock is used as reference signal source */
414 BlueSDIBNC = 0x10000, /** SDI input B is used as reference signal source */
415 BlueSDI_B_BNC = BlueSDIBNC,
416 BlueSDI_A_BNC = 0x20000, /** SDI input A is used as reference signal source */
417 BlueAnalog_BNC = 0x40000, /** Analog input is used as reference signal source */
418 BlueSoftware = 0x80000,
419 BlueFreeRunning = BlueSoftware,
420 BlueGenlockAux = 0x100000, /** auxiliary genlock connector on Epoch Neutron cards */
421 BlueInterlock = 0x200000, /** interlock connector on Epoch Neutron cards */
425 typedef enum _EBlueVideoChannel
427 BLUE_VIDEOCHANNEL_A=0,
428 BLUE_VIDEO_OUTPUT_CHANNEL_A=BLUE_VIDEOCHANNEL_A,
430 BLUE_VIDEOCHANNEL_B=1,
431 BLUE_VIDEO_OUTPUT_CHANNEL_B=BLUE_VIDEOCHANNEL_B,
433 BLUE_VIDEOCHANNEL_C=2,
434 BLUE_VIDEO_INPUT_CHANNEL_A=BLUE_VIDEOCHANNEL_C,
436 BLUE_VIDEOCHANNEL_D=3,
437 BLUE_VIDEO_INPUT_CHANNEL_B=BLUE_VIDEOCHANNEL_D,
439 BLUE_VIDEOCHANNEL_E=4,
440 BLUE_VIDEO_INPUT_CHANNEL_C=BLUE_VIDEOCHANNEL_E,
442 BLUE_VIDEOCHANNEL_F=5,
443 BLUE_VIDEO_INPUT_CHANNEL_D=BLUE_VIDEOCHANNEL_F,
445 BLUE_VIDEOCHANNEL_G=6,
446 BLUE_VIDEO_OUTPUT_CHANNEL_C=BLUE_VIDEOCHANNEL_G,
448 BLUE_VIDEOCHANNEL_H=7,
449 BLUE_VIDEO_OUTPUT_CHANNEL_D=BLUE_VIDEOCHANNEL_H,
451 BLUE_OUTPUT_MEM_MODULE_A=BLUE_VIDEO_OUTPUT_CHANNEL_A,
452 BLUE_OUTPUT_MEM_MODULE_B=BLUE_VIDEO_OUTPUT_CHANNEL_B,
453 BLUE_INPUT_MEM_MODULE_A=BLUE_VIDEO_INPUT_CHANNEL_A,
454 BLUE_INPUT_MEM_MODULE_B=BLUE_VIDEO_INPUT_CHANNEL_B,
455 //BLUE_JETSTREAM_SCALER_MODULE_0=0x10,
456 //BLUE_JETSTREAM_SCALER_MODULE_1=0x11,
457 //BLUE_JETSTREAM_SCALER_MODULE_2=0x12,
458 //BLUE_JETSTREAM_SCALER_MODULE_3=0x13,
460 BLUE_VIDEOCHANNEL_INVALID=30
463 typedef enum _EBlueVideoRouting
465 BLUE_VIDEO_LINK_INVALID=0,
472 BLUE_SDI_A_SINGLE_LINK=BLUE_SDI_A_LINK1,
473 BLUE_SDI_B_SINGLE_LINK=BLUE_SDI_B_LINK1,
474 BLUE_ANALOG_SINGLE_LINK=BLUE_ANALOG_LINK1
480 BLUE_FIFO_NULL_ATTRIBUTE=0x0,
481 BLUE_FIFO_ECHOPORT_ENABLED=0x1,
482 BLUE_FIFO_STEPMODE = 0x2,
483 BLUE_FIFO_LOOPMODE = 0x4
484 }BlueVideoFifo_Attributes;
486 typedef enum _BlueAudioOutputDest
488 Blue_AnalogAudio_Output=0x0,
489 Blue_AES_Output=0x80000000,
490 Blue_Emb_Output=0x40000000,
491 }BlueAudioOutputDest;
494 /**<@brief this enumerator is not used need to be removed*/
495 typedef enum _BlueAudioInputSource
498 Blue_AnalogAudio=0x20,
499 Blue_SDIA_Embed=0x40,
500 Blue_SDIB_Embed=0x80,
501 }BlueAudioInputSource;
503 typedef enum _EBlueConnectorIdentifier
505 BLUE_CONNECTOR_INVALID = -1,
507 // BNC connectors in order from top to bottom of shield
508 BLUE_CONNECTOR_BNC_A = 0, // BNC closest to top of shield
509 BLUE_CONNECTOR_BNC_B,
510 BLUE_CONNECTOR_BNC_C,
511 BLUE_CONNECTOR_BNC_D,
512 BLUE_CONNECTOR_BNC_E,
513 BLUE_CONNECTOR_BNC_F,
514 BLUE_CONNECTOR_GENLOCK,
516 BLUE_CONNECTOR_ANALOG_VIDEO_1 = 100,
517 BLUE_CONNECTOR_ANALOG_VIDEO_2,
518 BLUE_CONNECTOR_ANALOG_VIDEO_3,
519 BLUE_CONNECTOR_ANALOG_VIDEO_4,
520 BLUE_CONNECTOR_ANALOG_VIDEO_5,
521 BLUE_CONNECTOR_ANALOG_VIDEO_6,
523 BLUE_CONNECTOR_DVID_1 = 200,
524 BLUE_CONNECTOR_SDI_OUTPUT_A= BLUE_CONNECTOR_DVID_1,
525 BLUE_CONNECTOR_DVID_2,
526 BLUE_CONNECTOR_SDI_OUTPUT_B= BLUE_CONNECTOR_DVID_2,
527 BLUE_CONNECTOR_DVID_3,
528 BLUE_CONNECTOR_SDI_INPUT_A= BLUE_CONNECTOR_DVID_3,
529 BLUE_CONNECTOR_DVID_4,
530 BLUE_CONNECTOR_SDI_INPUT_B= BLUE_CONNECTOR_DVID_4,
531 BLUE_CONNECTOR_DVID_5,
532 BLUE_CONNECTOR_SDI_OUTPUT_C,
533 BLUE_CONNECTOR_SDI_OUTPUT_D,
535 BLUE_CONNECTOR_AES = 300,
536 BLUE_CONNECTOR_ANALOG_AUDIO_1,
537 BLUE_CONNECTOR_ANALOG_AUDIO_2,
539 BLUE_CONNECTOR_DVID_6,
540 BLUE_CONNECTOR_SDI_INPUT_C= BLUE_CONNECTOR_DVID_6,
541 BLUE_CONNECTOR_DVID_7,
542 BLUE_CONNECTOR_SDI_INPUT_D= BLUE_CONNECTOR_DVID_7,
544 //BLUE_CONNECTOR_RESOURCE_BLOCK=0x400,
545 //BLUE_CONNECTOR_JETSTREAM_SCALER_0=(BLUE_CONNECTOR_RESOURCE_BLOCK|BLUE_JETSTREAM_SCALER_MODULE_0),
546 //BLUE_CONNECTOR_JETSTREAM_SCALER_1=(BLUE_CONNECTOR_RESOURCE_BLOCK|BLUE_JETSTREAM_SCALER_MODULE_1),
547 //BLUE_CONNECTOR_JETSTREAM_SCALER_2=(BLUE_CONNECTOR_RESOURCE_BLOCK|BLUE_JETSTREAM_SCALER_MODULE_2),
548 //BLUE_CONNECTOR_JETSTREAM_SCALER_3=(BLUE_CONNECTOR_RESOURCE_BLOCK|BLUE_JETSTREAM_SCALER_MODULE_3),
550 //BLUE_CONNECTOR_OUTPUT_MEM_MODULE_A=(BLUE_CONNECTOR_RESOURCE_BLOCK|BLUE_OUTPUT_MEM_MODULE_A),
551 //BLUE_CONNECTOR_OUTPUT_MEM_MODULE_B=(BLUE_CONNECTOR_RESOURCE_BLOCK|BLUE_OUTPUT_MEM_MODULE_B),
552 //BLUE_CONNECTOR_INPUT_MEM_MODULE_A=(BLUE_CONNECTOR_RESOURCE_BLOCK|BLUE_INPUT_MEM_MODULE_A),
553 //BLUE_CONNECTOR_INPUT_MEM_MODULE_B=(BLUE_CONNECTOR_RESOURCE_BLOCK|BLUE_INPUT_MEM_MODULE_B),
555 }EBlueConnectorIdentifier;
557 typedef enum _EBlueConnectorSignalDirection
559 BLUE_CONNECTOR_SIGNAL_INVALID=-1,
560 BLUE_CONNECTOR_SIGNAL_INPUT=0,
561 BLUE_CONNECTOR_SIGNAL_OUTPUT=1,
562 }EBlueConnectorSignalDirection;
564 typedef enum _EBlueDynamicConnectorType
566 BLUE_DYNAMIC_CONNECTOR_TYPE_INVALID = 0,
567 BLUE_DYNAMIC_CONNECTOR_TYPE_OUTPUT = 1,
568 BLUE_DYNAMIC_CONNECTOR_TYPE_INPUT = 2,
569 BLUE_DYNAMIC_CONNECTOR_TYPE_GENLOCK = 3,
570 }EBlueDynamicConnectorType;
572 typedef enum _EBlueConnectorProperty
574 BLUE_INVALID_CONNECTOR_PROPERTY = -1,
577 BLUE_CONNECTOR_PROP_INPUT_SIGNAL=0,
578 BLUE_CONNECTOR_PROP_OUTPUT_SIGNAL=1,
581 BLUE_CONNECTOR_PROP_SDI = 0,
582 BLUE_CONNECTOR_PROP_YUV_Y,
583 BLUE_CONNECTOR_PROP_YUV_U,
584 BLUE_CONNECTOR_PROP_YUV_V,
585 BLUE_CONNECTOR_PROP_RGB_R,
586 BLUE_CONNECTOR_PROP_RGB_G,
587 BLUE_CONNECTOR_PROP_RGB_B,
588 BLUE_CONNECTOR_PROP_CVBS,
589 BLUE_CONNECTOR_PROP_SVIDEO_Y,
590 BLUE_CONNECTOR_PROP_SVIDEO_C,
593 BLUE_CONNECTOR_PROP_AUDIO_AES = 0x2000,
594 BLUE_CONNECTOR_PROP_AUDIO_EMBEDDED,
595 BLUE_CONNECTOR_PROP_AUDIO_ANALOG,
598 BLUE_CONNECTOR_PROP_SINGLE_LINK=0x3000,
599 BLUE_CONNECTOR_PROP_DUALLINK_LINK_1,
600 BLUE_CONNECTOR_PROP_DUALLINK_LINK_2,
601 BLUE_CONNECTOR_PROP_DUALLINK_LINK,
603 BLUE_CONNECTOR_PROP_STEREO_MODE_SIDE_BY_SIDE,
604 BLUE_CONNECTOR_PROP_STEREO_MODE_TOP_DOWN,
605 BLUE_CONNECTOR_PROP_STEREO_MODE_LINE_BY_LINE,
607 }EBlueConnectorProperty;
610 typedef enum _BLUE_AUDIOINPUT_SOURCE
612 BLUE_AES_AUDIO_INPUT=0x10000,
613 BLUE_ANALOG_AUDIO_INPUT=0x20000,
614 BLUE_SDIA_AUDIO_INPUT=0x30000,
615 BLUE_SDIB_AUDIO_INPUT=0x40000
616 }BLUE_AUDIOINPUT_SOURCE;
619 @desc use the values in this enumerator for controlling card property
621 typedef enum _EBlueCardProperty
623 VIDEO_DUAL_LINK_OUTPUT=0,/**< Use this property to enable/diable cards dual link output property*/
624 VIDEO_DUAL_LINK_INPUT=1,/**< Use this property to enable/diable cards dual link input property*/
625 VIDEO_DUAL_LINK_OUTPUT_SIGNAL_FORMAT_TYPE=2, /**<Use this property to select signal format type that should be used
626 when dual link output is enabled. Possible values this property can
627 accept is defined in the enumerator EDualLinkSignalFormatType
629 VIDEO_DUAL_LINK_INPUT_SIGNAL_FORMAT_TYPE=3,/**< Use this property to select signal format type that should be used
630 when dual link input is enabled. Possible values this property can
631 accept is defined in the enumerator EDualLinkSignalFormatType
633 VIDEO_OUTPUT_SIGNAL_COLOR_SPACE=4,/**< Use this property to select color space of the signal when dual link output is set to
634 use 4:4:4/4:4:4:4 signal format type. Possible values this property can
635 accept is defined in the enumerator EConnectorSignalColorSpace
637 VIDEO_INPUT_SIGNAL_COLOR_SPACE=5,/**< Use this property to select color space of the signal when dual link input is set to
638 use 4:4:4/4:4:4:4 signal format type. Possible values this property can
639 accept is defined in the enumerator EConnectorSignalColorSpace
641 VIDEO_MEMORY_FORMAT=6, /**<Use this property to ser the pixel format that should be used by
642 video output channels. Possible values this property can
643 accept is defined in the enumerator EMemoryFormat
645 VIDEO_MODE=7,/**<Use this property to set the video mode that should be used by
646 video output channels. Possible values this property can
647 accept is defined in the enumerator EVideoMode
649 VIDEO_UPDATE_TYPE=8,/**<Use this property to set the framestore update type that should be used by
650 video output channels. Card can update video framestore at field/frame rate.
651 Possible values this property can accept is defined in the enumerator EUpdateMethod
654 VIDEO_IMAGE_ORIENTATION=10,/**< Use this property to set the image orientation of the video output framestore.
655 This property must be set before frame is transferred to on card memory using
656 DMA transfer functions(system_buffer_write_async). It is recommended to use
657 vertical flipped image orientation only on RGB pixel formats.
658 Possible values this property can accept is defined in the enumerator EImageOrientation
660 VIDEO_USER_DEFINED_COLOR_MATRIX=11,
661 VIDEO_PREDEFINED_COLOR_MATRIX=12,//EPreDefinedColorSpaceMatrix
662 VIDEO_RGB_DATA_RANGE=13, /**< Use this property to set the data range of RGB pixel format, user can specify
663 whether the RGB data is in either SMPTE or CGR range. Based on this information
664 driver is decide which color matrix should be used.
665 Possible values this property can accept is defined in the enumerator ERGBDataRange
666 For SD cards this property will set the input and the output to the specified value.
667 For Epoch/Create/SuperNova cards this property will only set the output to the specified value.
668 For setting the input on Epoch/Create/SuperNova cards see EPOCH_VIDEO_INPUT_RGB_DATA_RANGE*/
669 VIDEO_KEY_OVER_BLACK=14, /**< this property is deprecated and no longer supported on epoch/create range of cards.*/
670 VIDEO_KEY_OVER_INPUT_SIGNAL=15, /**< this property is deprecated and no longer supported on epoch/create range of cards.*/
671 VIDEO_SET_DOWN_CONVERTER_VIDEO_MODE=16,/**< this property is deprecated and no longer supported on epoch/create range of cards.
675 VIDEO_PILLOR_BOX_LEFT=18,
676 VIDEO_PILLOR_BOX_RIGHT=19,
677 VIDEO_PILLOR_BOX_TOP=20,
678 VIDEO_PILLOR_BOX_BOTTOM=21,
679 VIDEO_SAFE_PICTURE=22,
681 VIDEO_INPUT_SIGNAL_VIDEO_MODE=24, /**< Use this property to retreive the video input signal information on the
682 default video input channel used by that SDK object.
683 When calling SetCardProperty with a valid video mode on this property, the SDK
684 will will use this video mode "Hint" if the card buffers are set up despite there being a valid
685 input signal; the card buffers will be set up when calling one of these card properties:
686 VIDEO_INPUT_MEMORY_FORMAT
687 VIDEO_INPUT_UPDATE_TYPE
689 Note: QueryCardProperty(VIDEO_INPUT_SIGNAL_VIDEO_MODE) will still return the actual video input signal
691 VIDEO_COLOR_MATRIX_MODE=25,
692 VIDEO_OUTPUT_MAIN_LUT=26,/**< this property is deprecated and no longer supported on epoch/create range of cards.*/
693 VIDEO_OUTPUT_AUX_LUT=27,/**< this property is deprecated and no longer supported on epoch/create range of cards.*/
694 VIDEO_LTC=28, /**< this property is deprecated and no longer supported on epoch/create range of cards. To retreive/ outputting
695 LTC information you can use the HANC decoding and encoding functions.*/
697 VIDEO_PLAYBACK_FIFO_STATUS=30, /**< This property can be used to retreive how many frames are bufferd in the video playback fifo.*/
698 RS422_RX_BUFFER_LENGTH=31,
699 RS422_RX_BUFFER_FLUSH=32,
700 VIDEO_INPUT_UPDATE_TYPE=33,/**< Use this property to set the framestore update type that should be used by
701 video input channels. Card can update video framestore at field/frame rate.
702 Possible values this property can accept is defined in the enumerator EUpdateMethod
704 VIDEO_INPUT_MEMORY_FORMAT=34,/**<Use this property to set the pixel format that should be used by
705 video input channels when it is capturing a frame from video input source.
706 Possible values this property can accept is defined in the enumerator EMemoryFormat
708 VIDEO_GENLOCK_SIGNAL=35, /**< Use this property to retrieve video signal of the reference source that is used by the card.
709 This can also be used to select the reference signal source that should be used.
710 See application note AN004_Genlock.pdf for more information */
711 AUDIO_OUTPUT_PROP=36, /**< this can be used to route PCM audio data onto respective audio output connectors. */
712 AUDIO_CHANNEL_ROUTING=AUDIO_OUTPUT_PROP,
713 AUDIO_INPUT_PROP=37, /**< Use this property to select audio input source that should be used when doing an audio capture.
714 Possible values this property can accept is defined in the enumerator Blue_Audio_Connector_Type. */
715 VIDEO_ENABLE_LETTERBOX=38,
716 VIDEO_DUALLINK_OUTPUT_INVERT_KEY_COLOR=39,/**< this property is deprecated and no longer supported on epoch/create range of cards.*/
717 VIDEO_DUALLINK_OUTPUT_DEFAULT_KEY_COLOR=40,/**< this property is deprecated and no longer supported on epoch/create range of cards.*/
718 VIDEO_BLACKGENERATOR=41, /**< Use this property to control the black generator on the video output channel.
720 VIDEO_INPUTFRAMESTORE_IMAGE_ORIENTATION=42,
721 VIDEO_INPUT_SOURCE_SELECTION=43, /**< The video input source that should be used by the SDK default video input channel
722 can be configured using this property.
723 Possible values this property can accept is defined in the enumerator EBlueConnectorIdentifier.
725 DEFAULT_VIDEO_OUTPUT_CHANNEL=44,
726 DEFAULT_VIDEO_INPUT_CHANNEL=45,
727 VIDEO_REFERENCE_SIGNAL_TIMING=46,
728 EMBEDEDDED_AUDIO_OUTPUT=47, /**< the embedded audio output property can be configured using this property.
729 Possible values this property can accept is defined in the enumerator EBlueEmbAudioOutput.
731 EMBEDDED_AUDIO_OUTPUT=EMBEDEDDED_AUDIO_OUTPUT,
732 VIDEO_PLAYBACK_FIFO_FREE_STATUS=48, /**< this will return the number of free buffer in the fifo.
733 If the video engine is framestore this will give you the number of buffers that the framestore mode
734 can you use with that video output channel.*/
735 VIDEO_IMAGE_WIDTH=49, /**< selective output DMA: see application note AN008_SelectiveDMA.pdf for more details */
736 VIDEO_IMAGE_HEIGHT=50, /**< selective output DMA: see application note AN008_SelectiveDMA.pdf for more details */
737 VIDEO_SELECTIVE_OUTPUT_DMA_DST_PITCH = VIDEO_IMAGE_WIDTH, //pitch (bytes per line) of destination buffer (card memory)
738 VIDEO_SELECTIVE_OUTPUT_DMA_SRC_LINES = VIDEO_IMAGE_HEIGHT, //number of video lines to extract from source image (system memory)
739 VIDEO_SCALER_MODE=51,
740 AVAIL_AUDIO_INPUT_SAMPLE_COUNT=52,
741 VIDEO_PLAYBACK_FIFO_ENGINE_STATUS=53, /**< this will return the playback fifo status. The values returned by this property
742 are defined in the enumerator BlueVideoFifoStatus.
744 VIDEO_CAPTURE_FIFO_ENGINE_STATUS=54, /**< this will return the capture fifo status.
745 The values returned by this property are defined in the enumerator BlueVideoFifoStatus.
747 VIDEO_2K_1556_PANSCAN=55,/**< this property is deprecated and no longer supported on epoch/create range of cards.*/
748 VIDEO_OUTPUT_ENGINE=56, /**< Use this property to set the video engine of the video output channels.
749 Possible values this property can accept is defined in the enumerator EEngineMode
751 VIDEO_INPUT_ENGINE=57, /**< Use this property to set the video engine of the video input channels.
752 Possible values this property can accept is defined in the enumerator EEngineMode
754 BYPASS_RELAY_A_ENABLE=58, /**< use this property to control the bypass relay on SDI A output.*/
755 BYPASS_RELAY_B_ENABLE=59, /**< use this property to control the bypass relay on SDI B output.*/
756 VIDEO_PREMULTIPLIER=60,
757 VIDEO_PLAYBACK_START_TRIGGER_POINT=61, /**< Using this property you can instruct the driver to start the
758 video playback fifo on a particular video output field count.
759 Normally video playback fifo is started on the next video interrupt after
760 the video_playback_start call.*/
762 VIDEO_IMAGE_PITCH=63, /**< selective output DMA: see application note AN008_SelectiveDMA.pdf for more details */
763 VIDEO_IMAGE_OFFSET=64, /**< currently not used; selective output DMA: see application note AN008_SelectiveDMA.pdf for more details */
764 VIDEO_SELECTIVE_OUTPUT_DMA_SRC_PITCH = VIDEO_IMAGE_PITCH, //pitch (bytes per line) of source buffer (system memory)
765 VIDEO_INPUT_IMAGE_WIDTH=65, /**< selective input DMA: see application note AN008_SelectiveDMA.pdf for more details */
766 VIDEO_INPUT_IMAGE_HEIGHT=66, /**< selective input DMA: see application note AN008_SelectiveDMA.pdf for more details */
767 VIDEO_INPUT_IMAGE_PITCH=67, /**< selective input DMA: see application note AN008_SelectiveDMA.pdf for more details */
768 VIDEO_INPUT_IMAGE_OFFSET=68, /**< currently not used; selective input DMA: see application note AN008_SelectiveDMA.pdf for more details */
769 VIDEO_SELECTIVE_INPUT_DMA_SRC_PITCH = VIDEO_INPUT_IMAGE_WIDTH, //pitch (bytes per line) of source buffer (card memory)
770 VIDEO_SELECTIVE_INPUT_DMA_SRC_LINES = VIDEO_INPUT_IMAGE_HEIGHT, //number of video lines to extract from source image (card memory)
771 VIDEO_SELECTIVE_INPUT_DMA_DST_PITCH = VIDEO_INPUT_IMAGE_PITCH, //pitch (bytes per line) of destination buffer (system memory)
772 TIMECODE_RP188=69, /**< this property is deprecated and no longer supported on epoch/create range of cards.*/
773 BOARD_TEMPERATURE=70,/**<This property can be used to retreive the Board temperature, core temperature and
774 RPM of the Fan on epoch/create range of cards.<br/>
775 Use the macro's EPOCH_CORE_TEMP ,EPOCH_BOARD_TEMP and EPOCH_FAN_SPEED
776 to retireive the respective values from the property.<br/>
778 MR2_ROUTING=71, /**< Use this property to control the MR2 functionlity on epoch range of cards.
779 Use the following macro with this property.<br/>
780 1) EPOCH_SET_ROUTING --> for setting the source, destination and link type of the routing connection,<br/>
781 2) EPOCH_ROUTING_GET_SRC_DATA --> for getting the routing source.<br/>
782 The possible source and destination elements supported by the routing matrix are defined in the
783 enumerator EEpochRoutingElements.<br/>
785 SAVEAS_POWERUP_SETTINGS=72,
786 VIDEO_CAPTURE_AVAIL_BUFFER_COUNT=73, /**< This property will return the number of captured frame avail in the fifo at present.
787 If the video engine is framestore this will give you the number of buffers that the framestore mode
788 can you use with that video input channel */
789 EPOCH_APP_WATCHDOG_TIMER=74,/**< Use this property to control the application watchdog timer functionality.
790 Possible values this property can accept is defined in the enumerator enum_blue_app_watchdog_timer_prop.
792 EPOCH_RESET_VIDEO_INPUT_FIELDCOUNT=75, /**< Use this property to reset the field count on both the
793 video channels of the card. You can pass the value that
794 should be used as starting fieldcount after the reset.
795 This property can be used to keep track sync between left and right signal
796 when you are capturing in stereoscopic mode.
798 EPOCH_RS422_PORT_FLAGS=76,/**< Use this property to set the master/slave property of the RS422 ports.
799 Possible values this property can accept is defined in the enumerator enum_blue_rs422_port_flags.
801 EPOCH_DVB_ASI_INPUT_TIMEOUT=77, /**< Current DVB ASI input firmware does not support this property in hardware,
802 this is a future addition.
803 Use this property to set the timeout of the DVB ASI input stream.
804 timeout is specified in milliseconds.If hardware did not get the required no of
805 packets( specified using EPOCH_DVB_ASI_INPUT_LATENCY_PACKET_COUNT)
806 within the period specified in the timeout, hardware would generate a video input interrupt
807 and it would be safe to read the dvb asi packet from the card.
809 EPOCH_DVB_ASI_INPUT_PACKING_FORMAT=78, /**< Use this property to specify the packing method that should be used
810 when capturing DVB ASI packets.
811 The possible packing methods are defined in the enumerator enum_blue_dvb_asi_packing_format.*/
812 EPOCH_DVB_ASI_INPUT_LATENCY_PACKET_COUNT=79, /**< Use this property to set how many asi packets should be captured by the card , before it
813 notifies the driver of available data using video input interrupt.<br/>
815 VIDEO_PLAYBACK_FIFO_CURRENT_FRAME_UNIQUEID=80, /**< This property can be used to query the current unique id of
816 the frame that is being displayed currently by the video output channel. This
817 property is only usefull in the context of video fifo.<br/>
818 You get a uniqueid when you present a frame using video_playback_present function.
819 Alternative ways to get this information are <br/>
820 1) using blue_wait_video_sync_async , the member current_display_frame_uniqueid contains the same information<br/>
821 2) using wait_video_output_sync function on epoch cards, if
822 the flag UPD_FMT_FLAG_RETURN_CURRENT_UNIQUEID is appended with
823 either UPD_FMT_FRAME or UPD_FMT_FIELD , the return value of
824 the function wait_video_output_sync woukd contain the current display
825 frames uniqueid.<br/>*/
827 EPOCH_DVB_ASI_INPUT_GET_PACKET_SIZE = 81,/**< use this property to get the size of each asi transport stream packet
828 (whether it is 188 or 204.*/
829 EPOCH_DVB_ASI_INPUT_PACKET_COUNT = 82,/**< this property would give you the number of packets captured during the last
830 interrupt time frame. For ASI interrupt is generated if
831 hardware captured the requested number of packets or it hit the
834 EPOCH_DVB_ASI_INPUT_LIVE_PACKET_COUNT = 83,/**< this property would give you the number of packets that
835 is being captured during the current interrupt time frame.
836 For ASI interrupt is generated when has hardware captured the
837 requested number of packets specified using
838 EPOCH_DVB_ASI_INPUT_LATENCY_PACKET_COUNT property.
840 EPOCH_DVB_ASI_INPUT_AVAIL_PACKETS_IN_FIFO = 84,/**< This property would return the number of ASI packets
841 that has been captured into card memory , that
843 This property is only valid when the video input
844 channel is being used in FIFO modes.
846 EPOCH_ROUTING_SOURCE_VIDEO_MODE=VIDEO_SCALER_MODE,/**< Use this property to change the video mode that scaler should be set to.
847 USe the macro SET_EPOCH_SCALER_MODE when using this property, as this macro
848 would allow you to select which one of the scaler blocks video mode should be updated.
850 EPOCH_AVAIL_VIDEO_SCALER_COUNT=85,/**< This property would return available scaler processing block available on the card.*/
851 EPOCH_ENUM_AVAIL_VIDEO_SCALERS_ID=86,/**< You can enumerate the available scaler processing block available on the card using this property.
852 You pass in the index value as input parameter to get the scaler id that should be used.
853 Applications are recommended to use this property to query the available scaler id's
854 rather than hardcoding a scaler id. As the scaler id's that you can use would vary based on
855 whether you have VPS0 or VPS1 boards loaded on the base board.
857 EPOCH_ALLOCATE_VIDEO_SCALER=87, /**< This is just a helper property for applications who need to use more than one scaler
858 and just wants to query the next available scaler from the driver pool, rather than hardcoding
859 each thread to use a particular scaler.
860 Allocate a free scaler from the available scaler pool.
861 User has got the option to specify whether they want to use the scaler for
862 use with a single link or dual link stream */
863 EPOCH_RELEASE_VIDEO_SCALER=88, /**< Release the previously allocated scaler processing block back to the free pool.
864 If the user passes in a value of 0, all the allocated scaler blocks in the driver are released.
867 EPOCH_DMA_CARDMEMORY_PITCH=89,
868 EPOCH_OUTPUT_CHANNEL_AV_OFFSET=90,
869 EPOCH_SCALER_CHANNEL_MUX_MODE=91,
870 EPOCH_INPUT_CHANNEL_AV_OFFSET=92,
871 EPOCH_AUDIOOUTPUT_MANUAL_UCZV_GENERATION=93, /* ASI firmware only */
872 EPOCH_SAMPLE_RATE_CONVERTER_BYPASS=94, /** bypasses the sample rate converter for AES audio; only turn on for Dolby-E support
873 * pass in a flag to signal which audio stereo pair should be bypassed:
874 * bit 0: AES channels 0 and 1
875 * bit 1: AES channels 2 and 3
876 * bit 2: AES channels 4 and 5
877 * bit 3: AES channels 6 and 7
878 * For example: bypass the sample rate converter for channels 0 to 3: flag = 0x3; */
879 EPOCH_GET_PRODUCT_ID=95, /* returns the enum for the firmware type EEpochFirmwareProductID */
880 EPOCH_GENLOCK_IS_LOCKED=96,
881 EPOCH_DVB_ASI_OUTPUT_PACKET_COUNT=97, /* ASI firmware only */
882 EPOCH_DVB_ASI_OUTPUT_BIT_RATE=98, /* ASI firmware only */
883 EPOCH_DVB_ASI_DUPLICATE_OUTPUT_A=99, /* ASI firmware only */
884 EPOCH_DVB_ASI_DUPLICATE_OUTPUT_B=100, /* ASI firmware only */
885 EPOCH_SCALER_HORIZONTAL_FLIP=101, /* see SideBySide_3D sample application */
886 EPOCH_CONNECTOR_DIRECTION=102, /* see application notes */
887 EPOCH_AUDIOOUTPUT_VALIDITY_BITS=103, /* ASI firmware only */
888 EPOCH_SIZEOF_DRIVER_ALLOCATED_MEMORY=104, /* video buffer allocated in Kernel space; accessible in userland via system_buffer_map() */
889 INVALID_VIDEO_MODE_FLAG=105, /* returns the enum for VID_FMT_INVALID that this SDK/Driver was compiled with;
890 it changed between 5.9.x.x and 5.10.x.x driver branch and has to be handled differently for
891 each driver if the application wants to use the VID_FMT_INVALID flag and support both driver branches */
892 EPOCH_VIDEO_INPUT_VPID=106, /* returns the VPID for the current video input signal. Input value is of type EBlueConnectorIdentifier */
893 EPOCH_LOW_LATENCY_DMA=107, /* deprecated; use new feature EPOCH_SUBFIELD_INPUT_INTERRUPTS instead */
894 EPOCH_VIDEO_INPUT_RGB_DATA_RANGE=108,
895 EPOCH_DVB_ASI_OUTPUT_PACKET_SIZE=109, /* firmware supports either 188 or 204 bytes per ASI packet; set to either
896 enum_blue_dvb_asi_packet_size_188_bytes or
897 enum_blue_dvb_asi_packet_size_204_bytes */
898 EPOCH_SUBFIELD_INPUT_INTERRUPTS=110, /* similar to the EPOCH_LOW_LATENCY_DMA card feature, but this doesn't influence the DMA;
899 it simply adds interrupts between the frame/field interrupts that trigger when a corresponding
900 video chunk has been captured
901 required minimum driver: 5.10.1.8*/
902 EPOCH_AUDIOOUTPUT_METADATA_SETTINGS = 111, /* Use the EAudioMetaDataSettings enumerator to change the audio output metadata settings */
903 EPOCH_HD_SDI_TRANSPORT = 112, /* output only: available modes are defined in the enum EHdSdiTransport; for inputs see EPOCH_HD_SDI_TRANSPORT_INPUT */
904 CARD_FEATURE_STREAM_INFO = 113, /* only supported from driver 5.10.2.x; info on how many in/out SDI/ASI streams are supported */
905 CARD_FEATURE_CONNECTOR_INFO = 114, /* only supported from driver 5.10.2.x; info on which connectors are supported: SDI in/out, AES, RS422, LTC, GPIO */
906 EPOCH_HANC_INPUT_FLAGS = 115, /* this property can be queried to test flags being set in the HANC space (e.g. HANC_FLAGS_IS_ARRI_RECORD_FLAG_SET) */
907 EPOCH_INPUT_VITC = 116, /* this property retrieves the current input VITC timecode; set .vt = VT_UI8 as this is a 64bit value;
908 only supported by SuperNova 2i/2o firmware version 75 and above */
909 EPOCH_RAW_VIDEO_INPUT_TYPE = 117, /* specifies if the raw/bayer input is ARRI 10/12 bit or Weisscam; set to 0 to revert back to normal SDI mode */
910 EPOCH_PCIE_CONFIG_INFO = 118, /* only supported from driver 5.10.2.x; provides info on PCIE maximum payload size and maximum read request siize */
911 EPOCH_4K_QUADLINK_CHANNEL = 119, /* use this property to set the 4K quadrant number for the current channel in 4K output mode; quadrant numbers are 1 - 4 */
912 EXTERNAL_LTC_SOURCE_SELECTION = 120, /* use the enum EBlueExternalLtcSource to set the input source for the external LTC */
913 EPOCH_HD_SDI_TRANSPORT_INPUT = 121, /* can only be queried; return values are defined in the enum EHdSdiTransport. Input value is of type EBlueConnectorIdentifier */
914 CARD_CONNECTED_VIA_TB = 122, /* MAC only: use this to check if the Card is connected via ThunderBolt */
915 INTERLOCK_REFERENCE = 123, /* this feature is only supported on Epoch Neutron cards; check application note AN004_Genlock.pdf for more information */
916 VIDEO_ONBOARD_KEYER = 124, /* this property is currently only supported by Epoch Neutron cards; use the VIDEO_ONBOARD_KEYER_GET_STATUS macros for this property*/
917 EPOCH_OUTPUT_VITC_MANUAL_CONTROL = 125, /* Epoch Neutron only: this property enables the feature to allow output of a custom VITC timecode on a field by field basis (low frame rates only); for high frame rates the conventional way (using the HANC buffer) must be used */
918 EPOCH_OUTPUT_VITC = 126, /* Epoch Neutron only: this property sets the custom VITC timecode (64 bit value) on a field by field basis (for low frame rates only); set .vt = VT_UI8 as this is a 64bit value; */
919 EPOCH_INPUT_VITC_SOURCE = 127, /* this property selects the source for the card property EPOCH_INPUT_VITC for SD video modes; in SD video modes the VITC source can be either
920 from VBI space or from RP188 packets; the default (value = 0) is set to RP188; setting this to 1 will select VBI space as the source for EPOCH_INPUT_VITC; set .vt = VT_UI4 */
921 TWO_SAMPLE_INTERLEAVE_OUTPUT = 128, /* enables two sample interleave mode for 4K video modes using two output channels; options are: 0 = turn feature off, 1 = turn feature on */
922 TWO_SAMPLE_INTERLEAVE_INPUT = 129, /* enables two sample interleave mode for 4K video modes using two input channels; options are: 0 = turn feature off, 1 = turn feature on */
923 BTC_TIMER = 130, /* BTC: Coordinated Bluefish Time; this timer has microsecond granularity and is started/reset when the driver starts; set .vt = VT_UI8 as this is a 64bit value; */
924 BFLOCK_SIGNAL_ENABLE = 131, /* S+ cards can generate a proprietary lock signal on the S+ connector (connector 0); options are 0 = turn off signal (connector 0 will be copy of SDI A output); 1 = turn on lock signal output; set .vt = VT_UI4 */
925 AES_OUTPUT_ROUTING = 132, /* set the stream source and source channels for the AES output; .vt = VT_UI4 */
926 MUTE_AES_OUTPUT_CHANNEL = 133, /* mute any of the AES output channels (0..7); to enable/disable mute use the SET_MUTE_AES_OUTPUT_CHANNEL macro; to query an AES output channels mute status
927 set VT.ulVal to the AES output channel number (0..7) then call QueryCardProperty(); the return value will be 1 = muted or 0 = enabled; set .vt to VT_UI4 */
928 FORCE_SD_VBI_OUTPUT_BUFFER_TO_V210 = 134, /* this card property forces the VBI buffer to V210 memory format in SD video modes (default for HD video modes) so that it can handle 10 bit VANC packets.
929 set 1 = force to V210 or 0 = follow video memory fomat (default); set .vt to VT_UI4; when changing this property the video output mode and video output engine need to be set again manually! */
930 EMBEDDED_AUDIO_INPUT_INFO = 135, /* this card property returns info on how which embedded audio input channels are available (channel mask for channels 1 - 16 in lower 16 bits).
931 it also returns the data payload for each channel (1 - 16) in the upper 16 bits (0 = embedded audio, 1 = other (e.g. Dolby Digital)) */
933 VIDEO_CARDPROPERTY_INVALID = 1000
936 typedef enum _EHdSdiTransport
938 HD_SDI_TRANSPORT_1_5G = 0x1, /* HD as 1.5G */
939 HD_SDI_TRANSPORT_3G_LEVEL_A = 0x2, /* 3G Level A */
940 HD_SDI_TRANSPORT_3G_LEVEL_B = 0x3, /* 3G Level B */
943 typedef enum _EAudioMetaDataSettings
945 AUDIO_METADATA_KEEP_ALIVE = 0x1 /* When setting this bit for the EPOCH_AUDIOOUTPUT_METADATA_SETTINGS card property the audio meta data (like RP188 timecode
946 will still be played out even after stopping audio playback; this is a static settings and only needs to be set once;
947 it is channel based and can be changed for all output channels independently */
948 }EAudioMetaDataSettings;
950 typedef enum _EAnalogConnectorSignalType
952 ANALOG_OUTPUTSIGNAL_CVBS_Y_C=1,
953 ANALOG_OUTPUTSIGNAL_COMPONENT=2,
954 ANALOG_OUTPUTSIGNAL_RGB=4
955 }EAnalogConnectorSignalType;
958 @brief Use this enumerator to set the analog video signal types and connectors.
960 typedef enum _EAnalogInputConnectorType
962 /* Composite input */
963 ANALOG_VIDEO_INPUT_CVBS_AIN1=0x00, /**<only available on Mini COAX */
964 ANALOG_VIDEO_INPUT_CVBS_AIN2=0x01, /**<available on both Mini COAX and Mini DIN*/
965 ANALOG_VIDEO_INPUT_CVBS_AIN3=0x02, /**<available on both Mini COAX and Mini DIN*/
966 ANALOG_VIDEO_INPUT_CVBS_AIN4=0x03, /**<only available on Mini COAX */
967 ANALOG_VIDEO_INPUT_CVBS_AIN5=0x04, /**<only available on Mini COAX */
968 ANALOG_VIDEO_INPUT_CVBS_AIN6=0x05, /**<available on both Mini COAX and Mini DIN */
971 //Y_C is a synonym for svideo
972 ANALOG_VIDEO_INPUT_Y_C_AIN1_AIN4=0x06, /**<only available on Mini COAX*/
973 ANALOG_VIDEO_INPUT_Y_C_AIN2_AIN5=0x07, /**<only available on Mini COAX*/
974 ANALOG_VIDEO_INPUT_Y_C_AIN3_AIN6=0x08, /**<available on both Mini COAX and Mini DIN*/
977 ANALOG_VIDEO_INPUT_YUV_AIN1_AIN4_AIN5=0x09, /**<only available on Mini COAX*/
978 ANALOG_VIDEO_INPUT_YUV_AIN2_AIN3_AIN6=0x0a, /**<available on both Mini COAX and Mini DIN*/
979 ANALOG_VIDEO_INPUT_USE_SDI_A=0x6F,
980 ANALOG_VIDEO_INPUT_USE_SDI=0x7F,
981 GENERIC_ANALOG_VIDEO_SOURCE=0x8F,
982 ANALOG_VIDEO_INPUT_USE_SDI_B=ANALOG_VIDEO_INPUT_USE_SDI
983 }EAnalogInputConnectorType;
987 ANALOG_VIDEO_INPUT_CONNECTOR,//EAnalogInputConnectorType
988 ANALOG_VIDEO_INPUT_PED,
989 ANALOG_VIDEO_INPUT_BRIGHTNESS,
990 ANALOG_VIDEO_INPUT_HUE,
991 ANALOG_VIDEO_INPUT_LUMA_GAIN,
992 ANALOG_VIDEO_INPUT_CHROMA_GAIN,
993 ANALOG_VIDEO_INPUT_AUTO_GAIN,
994 ANALOG_VIDEO_INPUT_LOAD_DEFAULT_SETTING,
995 ANALOG_VIDEO_OUTPUT_PED,
996 ANALOG_VIDEO_OUTPUT_BRIGHTNESS,
997 ANALOG_VIDEO_OUTPUT_HUE,
998 ANALOG_VIDEO_OUTPUT_LUMA_GAIN,
999 ANALOG_VIDEO_OUTPUT_CHROMA_GAIN,
1000 ANALOG_VIDEO_OUTPUT_SHARPNESS,
1001 ANALOG_VIDEO_OUTPUT_AUTO_GAIN,
1002 ANALOG_VIDEO_OUTPUT_LOAD_DEFAULT_SETTING,
1003 ANALOG_VIDEO_OUTPUT_SIGNAL_TYPE,//_EAnalogConnectorSignalType
1004 ANALOG_LOAD_BLUEFISH_DEFAULT_SETTING,
1005 ANALOG_SET_AS_POWERUP_SETTINGS,
1006 ANALOG_LOAD_POWERUP_SETTINGS,
1007 ANALOG_CONNECTOR_STATUS
1008 } AnalogCard_Property;
1011 BLUE_INT32 inputConnector; //ANALOG_VIDEO_INPUT_CONNECTOR, EAnalogInputConnectorType
1012 BLUE_INT32 inputPed; //ANALOG_VIDEO_INPUT_PED,
1013 BLUE_INT32 inputBrightness; //ANALOG_VIDEO_INPUT_BRIGHTNESS,
1014 BLUE_INT32 inputHue; //ANALOG_VIDEO_INPUT_HUE,
1015 BLUE_INT32 inputLumaGain; //ANALOG_VIDEO_INPUT_LUMA_GAIN,
1016 BLUE_INT32 inputChromaGain; //ANALOG_VIDEO_INPUT_CHROMA_GAIN,
1017 BLUE_INT32 inputAutoGain; //ANALOG_VIDEO_INPUT_AUTO_GAIN,
1018 BLUE_INT32 outputPed; //ANALOG_VIDEO_OUTPUT_PED,
1019 BLUE_INT32 outputBrightness; //ANALOG_VIDEO_OUTPUT_BRIGHTNESS,
1020 BLUE_INT32 outputHue; //ANALOG_VIDEO_OUTPUT_HUE,
1021 BLUE_INT32 outputYGain; //ANALOG_VIDEO_OUTPUT_Y_GAIN,
1022 BLUE_INT32 outputUGain; //ANALOG_VIDEO_OUTPUT_U_GAIN,
1023 BLUE_INT32 outputVGain; //ANALOG_VIDEO_OUTPUT_V_GAIN,
1024 BLUE_INT32 outputSharpness; //ANALOG_VIDEO_OUTPUT_SHARPNESS,
1025 BLUE_INT32 outputAutoGain; //ANALOG_VIDEO_OUTPUT_AUTO_GAIN,
1026 BLUE_INT32 outputSignalTypes; //EAnalogConnectorSignalType
1029 //----------------------------------------------------------------------------------------------------
1030 /**< brief Used to determine how video interrupts are handled*/
1031 typedef enum _EEngineMode
1033 VIDEO_ENGINE_FRAMESTORE=0, /**< framestore engine. In this mode user is responsible for
1034 schduling a capture or playback after waiting for the
1035 respective video sync;s*/
1036 VIDEO_ENGINE_PLAYBACK=1, /**< Playback engine. In this mode there is a driver FIFO, which
1037 is reponisble for scheudling a frame for playback.
1038 User just adds video frames into the fifo.*/
1039 VIDEO_ENGINE_CAPTURE=2, /**< Capture engine In this mode there is a driver FIFO, which
1040 is reponisble for scheudling a frame for capture.
1041 User just retreives video frames from the FIFO.*/
1042 VIDEO_ENGINE_PAGEFLIP=3, /**< not supported any more */
1043 VIDEO_ENGINE_DUPLEX=4, /**< Full Duplex video. This is a FIFO mode. Use this mode if you want
1044 to capture and playback at the same time.*/
1045 VIDEO_ENGINE_INVALID
1048 /**< use this enumerator for controlling emb audio output properties using the
1049 property EMBEDDED_AUDIO_OUTPUT.
1051 typedef enum _EBlueEmbAudioOutput
1053 blue_emb_audio_enable=0x1, // Switches off/on the whole HANC output from connecotrs associated with the channel
1054 blue_auto_aes_to_emb_audio_encoder=0x2, //control whether the auto aes to emb thread should be running or not.
1055 blue_emb_audio_group1_enable=0x4, /**< enables group1(ch 0- 3) emb audio */
1056 blue_emb_audio_group2_enable=0x8, /**< enables group2(ch 4- 7) emb audio */
1057 blue_emb_audio_group3_enable=0x10, /**< enables group3(ch 8- 11) emb audio */
1058 blue_emb_audio_group4_enable=0x20, /**< enables group4(ch 12- 16) emb audio */
1059 blue_enable_hanc_timestamp_pkt = 0x40
1060 }EBlueEmbAudioOutput;
1063 /**< Not used any more */
1064 typedef enum _EBufferTarget
1066 BUFFER_TARGET_VIDEO=0, // Generic R/W DMA
1067 BUFFER_TARGET_AUDIO, // Special processing required for audio
1068 BUFFER_TARGET_VIDEO_8BIT, // Special R/W DMA utilising 8 bit aperture
1069 BUFFER_TARGET_VIDEO_HALF, // Special R/W DMA every second line (currently unused)
1070 BUFFER_TARGET_VIDEO_OUT, // Updates video out register on DMA completion for write
1071 BUFFER_TARGET_INVALID
1074 #define BUFFER_TYPE_VIDEO (0)
1075 #define BUFFER_TYPE_AUDIO (1)
1076 #define BUFFER_TYPE_VIDEO_8BIT (2) // use this when assigning a buffer to indicate DMA from aperture!
1077 #define BUFFER_TYPE_VIDEO_OUT (3) // On DMA start set video output address to DMA target
1078 #define BUFFER_TYPE_VIDEO_HALF (4) // DMA every second line...
1080 // Buffer identifiers
1081 #define BUFFER_ID_AUDIO_IN (0)
1082 #define BUFFER_ID_AUDIO_OUT (1)
1083 #define BUFFER_ID_VIDEO0 (2)
1084 #define BUFFER_ID_VIDEO1 (3)
1085 #define BUFFER_ID_VIDEO2 (4)
1086 #define BUFFER_ID_VIDEO3 (5)
1088 //#define BUFFER_ID_USER_BASE (6)
1092 #define VIDEO_BORDER_TOP (0x10000000)
1093 #define VIDEO_BORDER_BOTTOM (0x20000000)
1094 #define VIDEO_BORDER_LEFT (0x40000000)
1095 #define VIDEO_BORDER_RIGHT (0x80000000)
1097 typedef struct _AnalogCardPropStruct
1099 BLUE_UINT32 VideoChannel;
1102 BLUE_INT32 minValue;
1103 BLUE_INT32 maxValue;
1104 BLUE_INT32 bReadFlag;
1105 }AnalogCardPropStruct;
1107 typedef enum _EConnectorSignalFormatType
1109 Signal_Type_4444 =1,
1110 Signal_Type_4224 =0,
1112 }EConnectorSignalFormatType;
1114 typedef enum _EDMADirection
1122 typedef enum _MatrixColType
1133 /**< Bits defining supported features that can be used with VideoFeature_struct*/
1134 #define VIDEO_CAPS_INPUT_SDI (0x00000001) /**< Capable of input of SDI Video */
1135 #define VIDEO_CAPS_OUTPUT_SDI (0x00000002) /**< Capable of output of SDI Video */
1136 #define VIDEO_CAPS_INPUT_COMP (0x00000004) /**< Capable of capturing Composite Video input */
1137 #define VIDEO_CAPS_OUTPUT_COMP (0x00000008) /**< Capable of capturing Composite Video output */
1139 #define VIDEO_CAPS_INPUT_YUV (0x00000010) /**< Capable of capturing Component Video input */
1140 #define VIDEO_CAPS_OUTPUT_YUV (0x00000020) /**< Capable of capturing Component Video output */
1141 #define VIDEO_CAPS_INPUT_SVIDEO (0x00000040) /**< Capable of capturing SVideo input */
1142 #define VIDEO_CAPS_OUTPUT_SVIDEO (0x00000080) /**< Capable of capturing SVideo output */
1144 #define VIDEO_CAPS_GENLOCK (0x00000100) /**< Able to adjust Vert & Horiz timing */
1145 #define VIDEO_CAPS_VERTICAL_FLIP (0x00000200) /**< Able to flip rasterisation */
1146 #define VIDEO_CAPS_KEY_OUTPUT (0x00000400) /**< Video keying output capable */
1147 #define VIDEO_CAPS_4444_OUTPUT (0x00000800) /**< Capable of outputting 4444 (dual link) */
1149 #define VIDEO_CAPS_DUALLINK_INPUT (0x00001000) /**< Dual Link input */
1150 #define VIDEO_CAPS_INTERNAL_KEYER (0x00002000) /**< Has got an internal Keyer */
1151 #define VIDEO_CAPS_RGB_COLORSPACE_SDI_CONN (0x00004000) /**< Support RGB colorspace in on an SDI connector */
1152 #define VIDEO_CAPS_HAS_PILLOR_BOX (0x00008000) /**< Has got support for pillor box */
1154 #define VIDEO_CAPS_OUTPUT_RGB (0x00010000) /**< Has Analog RGB output connector */
1155 #define VIDEO_CAPS_SCALED_RGB (0x00020000) /**< Can scale RGB colour space */
1156 #define AUDIO_CAPS_PLAYBACK (0x00040000) /**< Has got audio output */
1157 #define AUDIO_CAPS_CAPTURE (0x00080000)
1159 #define VIDEO_CAPS_DOWNCONVERTER (0x00100000)
1160 #define VIDEO_CAPS_DUALOUTPUT_422_IND_STREAM (0x00200000) /**< Specifies whether the card supports Dual Indepenedent 422 output streams */
1161 #define VIDEO_CAPS_DUALINPUT_422_IND_STREAM (0x00400000) /**< Specifies whether the card supports Dual Indepenedent 422 input streams */
1163 #define VIDEO_CAPS_VBI_OUTPUT (0x00800000) /**< Specifies whether the card supports VBI output */
1164 #define VIDEO_CAPS_VBI_INPUT (0x04000000) /**< Specifies whether the card supports VBI input */
1166 #define VIDEO_CAPS_HANC_OUTPUT (0x02000000)
1167 #define VIDEO_CAPS_HANC_INPUT (0x04000000)
1169 #define VIDEO_CAPS_FOUND_VPS0 VIDEO_CAPS_DOWNCONVERTER /**< specifies whether the VPS0 scaler board was found on the card */
1170 #define VIDEO_CAPS_FOUND_VPS1 (0x10000000) /**< specifies whether the VPS1 scaler board was found on the card */
1171 #define VIDEO_CAPS_FOUND_VPIO (0x20000000) /**< specifies whether the VPIO(DVI daughter board)board was found on the card */
1174 #define VIDEO_CAPS_DUALOUTPUT_422_IND_STREAM (0x00100000) // Specifies whether the card supports Dual Indepenedent 422 output streams
1175 #define VIDEO_CAPS_DUALINPUT_422_IND_STREAM (0x00200000) // Specifies whether the card supports Dual Indepenedent 422 input streams
1177 #define VIDEO_CAPS_VBI_OUTPUT (0x00400000)
1178 #define VIDEO_CAPS_VBI_INPUT (0x00800000)
1180 #define VIDEO_CAPS_HANC_OUTPUT (0x01000000)
1181 #define VIDEO_CAPS_HANC_INPUT (0x02000000)
1184 #define BLUE_CARD_BUFFER_TYPE_OFFSET (12)
1185 #define BLUE_DMA_DATA_TYPE_OFFSET (16)
1186 #define BLUE_DMA_FLAGS_OFFSET (20)
1187 #define GetDMACardBufferId(value) (value & 0xFFF)
1188 #define GetCardBufferType(value) ((value & 0xF000) >> BLUE_CARD_BUFFER_TYPE_OFFSET)
1189 #define GetDMADataType(value) ((value & 0xF0000) >> BLUE_DMA_DATA_TYPE_OFFSET)
1190 #define GetDMAFlags(value) ((value & 0xF00000) >> (BLUE_DMA_FLAGS_OFFSET))
1191 #define GetEpochDMAFlags(value) ((value & 0xFF00000) >> (BLUE_DMA_FLAGS_OFFSET))
1194 #define Blue_DMABuffer(CardBufferType,BufferId,DataType) ( (((ULONG)DataType&0xF)<<(ULONG)BLUE_DMA_DATA_TYPE_OFFSET)| \
1195 ( CardBufferType<<(ULONG)BLUE_CARD_BUFFER_TYPE_OFFSET) | \
1196 ( ((ULONG)BufferId&0xFFF)) |0)
1198 #define BlueImage_VBI_DMABuffer(BufferId,DataType) ( (((ULONG)DataType&0xF)<<(ULONG)BLUE_DMA_DATA_TYPE_OFFSET)| \
1199 ( BLUE_CARDBUFFER_IMAGE_VBI<<(ULONG)BLUE_CARD_BUFFER_TYPE_OFFSET) | \
1200 ( ((ULONG)BufferId&0xFFF)) |0)
1202 #define BlueImage_DMABuffer(BufferId,DataType) ( (((ULONG)DataType&0xF)<<(ULONG)BLUE_DMA_DATA_TYPE_OFFSET)| \
1203 ( BLUE_CARDBUFFER_IMAGE<<(ULONG)BLUE_CARD_BUFFER_TYPE_OFFSET) | \
1204 ( ((ULONG)BufferId&0xFFF)) |0)
1206 #define BlueImage_VBI_HANC_DMABuffer(BufferId,DataType) ( (((ULONG)DataType&0xF)<<(ULONG)BLUE_DMA_DATA_TYPE_OFFSET)| \
1207 ( BLUE_CARDBUFFER_IMAGE_VBI_HANC<<(ULONG)BLUE_CARD_BUFFER_TYPE_OFFSET) | \
1208 ( ((ULONG)BufferId&0xFFF)) |0)
1210 #define BlueImage_HANC_DMABuffer(BufferId,DataType) ( (((ULONG)DataType&0xF)<<(ULONG)BLUE_DMA_DATA_TYPE_OFFSET)| \
1211 ( BLUE_CARDBUFFER_IMAGE_HANC<<(ULONG)BLUE_CARD_BUFFER_TYPE_OFFSET) | \
1212 ( ((ULONG)BufferId&0xFFF)) |0)
1215 #define BlueBuffer(CardBufferType,BufferId) (((CardBufferType)<<BLUE_CARD_BUFFER_TYPE_OFFSET)|((BufferId&0xFFF))|0)
1216 #define BlueBuffer_Image_VBI(BufferId) (((BLUE_CARDBUFFER_IMAGE_VBI)<<BLUE_CARD_BUFFER_TYPE_OFFSET)|((BufferId&0xFFF))|0)
1217 #define BlueBuffer_Image(BufferId) (((BLUE_CARDBUFFER_IMAGE)<<BLUE_CARD_BUFFER_TYPE_OFFSET)|((BufferId&0xFFF))|0)
1218 #define BlueBuffer_Image_VBI_HANC(BufferId) (((BLUE_CARDBUFFER_IMAGE_VBI_HANC)<<BLUE_CARD_BUFFER_TYPE_OFFSET)|((BufferId&0xFFF))|0)
1219 #define BlueBuffer_Image_HANC(BufferId) (((BLUE_CARDBUFFER_IMAGE_HANC)<<BLUE_CARD_BUFFER_TYPE_OFFSET)|((BufferId&0xFFF))|0)
1220 #define BlueBuffer_HANC(BufferId) (((BLUE_CARDBUFFER_HANC)<<BLUE_CARD_BUFFER_TYPE_OFFSET)|((BufferId&0xFFF))|0)
1222 #define BYPASS_RELAY_A (0x00000001) // enable bypass relay channel a when loading driver , only used in linux
1223 #define BYPASS_RELAY_B (0x00000002) // enable bypass relay channel a when loading driver , only used in linux
1224 typedef enum _EDMACardBufferType
1226 BLUE_CARDBUFFER_IMAGE=0,
1227 BLUE_CARDBUFFER_IMAGE_VBI_HANC=1,
1228 BLUE_CARDBUFFER_IMAGE_VBI=2,
1229 BLUE_CARDBUFFER_AUDIO_OUT=3,
1230 BLUE_CARDBUFFER_AUDIO_IN=4,
1231 BLUE_CARDBUFFER_HANC=5,
1232 BLUE_CARDBUFFER_IMAGE_HANC=6,
1233 BLUE_CARDBUFFER_INVALID=6
1234 }EDMACardBufferType;
1236 typedef enum _EDMADataType
1244 BLUE_DATA_AUDIO_IN=5,
1245 BLUE_DATA_AUDIO_OUT=6,
1246 BLUE_DATA_FRAME_RDOM=7,
1247 BLUE_DATA_FRAME_STEREO_LEFT=BLUE_DATA_FRAME,
1248 BLUE_DATA_FRAME_STEREO_RIGHT=8,
1249 BLUE_DMADATA_INVALID=9
1252 typedef struct _AUXILLARY_VIDEO_INFO
1254 BLUE_UINT32 video_channel_id;
1255 BLUE_UINT32 lVideoMode;
1256 BLUE_UINT32 lUniqueId;
1257 BLUE_UINT32 lInfoType;
1258 BLUE_UINT32 lMemFmt;
1261 }Auxillary_Video_Info;
1264 typedef enum _EBlueVideoAuxInfoType
1266 BLUE_VIDEO_AUX_MEMFMT_CHANGE=1,
1267 BLUE_VIDEO_AUX_UPDATE_LTC=2,
1268 BLUE_VIDEO_AUX_UPDATE_GPIO=4,
1269 BLUE_VIDEO_AUX_VIDFMT_CHANGE=8,
1271 }EBlueVideoAuxInfoType;
1274 //AUDIO_OUTPUT_PROP/AUDIO_CHANNEL_ROUTING
1275 #define GET_ANALOG_AUDIO_LEFT_ROUTINGCHANNEL(value) (value&0xFF)
1276 #define GET_ANALOG_AUDIO_RIGHT_ROUTINGCHANNEL(value) ((value&0xFF00)>>8)
1277 #define SET_ANALOG_AUDIO_ROUTINGCHANNEL(left,right) (((right & 0xFF)<<8)|(left & 0xFF))
1278 #define SET_AUDIO_OUTPUT_ROUTINGCHANNEL(output_type,src_channel_id,_output_channel_id) ((1<<31)|((output_type&3)<<29)|((_output_channel_id &0x3F)<<23)|((src_channel_id & 0x3F)<<16))
1279 #define GET_AUDIO_OUTPUT_SRC_CHANNEL_ROUTING(value) ((value>>16) & 0x3F)
1280 #define GET_AUDIO_OUTPUT_CHANNEL_ROUTING(value) ((value>>23) & 0x3F)
1281 #define GET_AUDIO_OUTPUT_TYPE_ROUTING(value) ((value & 0x60000000)>>29)
1283 //AES_OUTPUT_ROUTING
1284 #define SET_AES_OUTPUT_ROUTING(OutputVideoChannel, AudioSrcChannel, AudioDstChannel) (((OutputVideoChannel & 0xFF) << 16) | ((AudioDstChannel & 0xFF) << 8) | (AudioSrcChannel & 0xFF))
1285 #define GET_AES_OUTPUT_ROUTING_STREAM(value) ((value >> 16) & 0xFF)
1286 #define GET_AES_OUTPUT_ROUTING_DST_CHANNEL(value) ((value >> 8) & 0xFF)
1287 #define GET_AES_OUTPUT_ROUTING_SRC_CHANNEL(value) (value & 0xFF)
1289 //MUTE_AES_OUTPUT_CHANNEL
1290 #define SET_MUTE_AES_OUTPUT_CHANNEL(AudioDstChannel, Mute) (((Mute & 0x1) << 31) | AudioDstChannel & 0xFF)
1292 #define AUDIO_INPUT_SOURCE_SELECT_FLAG (1<<16)
1293 #define AUDIO_INPUT_SOURCE_SELECT(SynchCount,AudioInputSource) (AUDIO_INPUT_SOURCE_SELECT_FLAG|(SynchCount)|(AudioInputSource<<17))
1295 struct blue_video_connection_routing_struct
1297 BLUE_UINT32 video_channel;
1298 BLUE_UINT32 duallink_flag;
1299 BLUE_UINT32 link1_connector;
1300 BLUE_UINT32 link2_connector;
1303 #pragma pack(push, video_sync_struct, 1)
1304 typedef struct _blue_video_sync_struct
1306 BLUE_UINT32 sync_wait_type; // field or frame (UPD_FMT_FIELD or UPD_FMT_FRAME)
1307 BLUE_UINT32 video_channel; // which video channel interrupt should the interrupt wait for, e.g. BLUE_VIDEO_INPUT_CHANNEL_A, BLUE_VIDEO_OUTPUT_CHANNEL_A, etc.
1308 BLUE_UINT32 timeout_video_msc; // field count when to return or IGNORE_SYNC_WAIT_TIMEOUT_VALUE to return at next field/frame sync
1309 BLUE_UINT32 video_msc; // current video msc (field count)
1310 BLUE_UINT32 current_display_frame_id; // current buffer id which is being displayed
1311 BLUE_UINT32 current_display_frame_uniqueid; // unique id associated with current buffer id which is being displayed
1312 // this is only valid when using fifo modes.
1313 BLUE_UINT16 subfield_interrupt; // subfield interrupt number; 0 == main frame sync
1314 BLUE_UINT16 subfield_lines; // number of lines of video captured at this subfield interrupt
1315 BLUE_UINT64 btcTimeStamp; // Coordinated Bluefish Time timestamp of field/frame which is currently being displayed
1317 }blue_video_sync_struct;
1319 struct blue_external_ltc_input_sync_struct
1321 BLUE_UINT64 TimeCodeValue;
1322 BLUE_UINT32 TimeCodeIsValid;
1325 #pragma pack(pop,video_sync_struct)
1328 typedef enum _EBlueLUTType
1330 BLUE_MAIN_LUT_B_Pb=0,
1331 BLUE_MAIN_LUT_G_Y=1,
1332 BLUE_MAIN_LUT_R_Pr=2,
1333 BLUE_AUX_LUT_B_Pb=3,
1335 BLUE_AUX_LUT_R_Pr=5,
1338 #pragma pack(push, video_frame, 1)
1339 struct VideoFeature_struct
1341 BLUE_UINT32 Type; // Bluefish card type
1342 BLUE_UINT32 CardSubType;
1343 BLUE_UINT32 Bus; // Which PIC bus (bridge) it is on
1344 BLUE_UINT32 Slot; // Which slot card is plugged into
1345 BLUE_UINT32 Feature; // Look at the _EBlueFishCardFeatures definition to know what each bit mean
1346 BLUE_UINT32 FirmwareVersion;
1349 struct blue_videoframe_info
1351 BLUE_UINT64 ltcTimeCode;
1352 unsigned long videochannel;
1353 unsigned long BufferId;
1354 unsigned long Count;
1355 unsigned long DroppedFrameCount;
1358 struct blue_videoframe_info_ex
1360 BLUE_UINT64 ltcTimeCode; //LTC timecode, not used
1361 unsigned long videochannel; //the channel this frame was captured from
1362 long BufferId; //this buffer contains the captured frame
1363 unsigned long Count; //total captured frames
1364 unsigned long DroppedFrameCount; //dropped frame count
1365 unsigned long nFrameTimeStamp; //field count the frame was captured at
1366 unsigned long nVideoSignalType; //video mode of this frame
1367 unsigned int nASIPktCount; //only for DVB-ASI; how many ASI packets are in this frame
1368 unsigned int nASIPktSize; //only for DVB-ASI; how many bytes per packet
1369 unsigned int nAudioValidityBits; //part of the channels status block for audio
1370 BLUE_UINT64 btcTimeStamp; //Coordinated Bluefish Time timestamp
1371 unsigned char ucVideoModeLinkA; //only used in 1.5G dual link mode
1372 unsigned char ucVideoModeLinkB; //only used in 1.5G dual link mode
1373 unsigned char pad[10]; //not used
1376 struct blue_1d_lookup_table_struct
1378 BLUE_UINT32 nVideoChannel;
1380 BLUE_UINT16 * pLUTData;
1381 BLUE_UINT32 nLUTElementCount;
1382 BLUE_UINT8 pad[256];
1384 #pragma pack(pop, video_frame)
1386 #pragma pack(push, blue_dma_request, 1)
1387 struct blue_dma_request_struct
1389 unsigned char * pBuffer;
1390 BLUE_UINT32 video_channel;
1391 BLUE_UINT32 BufferId;
1392 unsigned int BufferDataType;
1393 unsigned int FrameType;
1394 unsigned int BufferSize;
1395 unsigned int Offset;
1396 unsigned long BytesTransferred;
1397 unsigned char pad[64];
1400 enum SerialPort_struct_flags
1404 SerialPort_TX_Queue_Status=4,
1405 SerialPort_RX_Queue_Status=8,
1406 SerialPort_RX_FlushBuffer=16,
1407 SerialPort_RX_IntWait_Return_On_Data=32,
1411 struct SerialPort_struct
1413 unsigned char Buffer[64];
1414 unsigned int nBufLength;
1415 unsigned int nSerialPortId;
1416 unsigned int bFlag; // SerialPort_struct_flags
1417 unsigned short sTimeOut;
1421 struct blue_video_scaler_ceofficent
1423 BLUE_UINT32 ioctl_read_only_flag;
1424 BLUE_UINT32 nScalerId;
1425 BLUE_UINT32 nScalerFilterType;
1426 BLUE_UINT32 nScalerCoefficentWeight[15];
1429 enum blue_video_scaler_param_flags
1431 scaler_flags_set_destrect_as_framesize = 0x1,
1434 struct blue_video_scaler_param_struct
1436 BLUE_UINT32 ioctl_read_only_flag;
1437 BLUE_UINT32 nScalerId;
1438 BLUE_UINT32 nSrcVideoHeight;
1439 BLUE_UINT32 nSrcVideoWidth;
1440 BLUE_UINT32 nSrcVideoYPos;
1441 BLUE_UINT32 nSrcVideoXPos;
1442 BLUE_UINT32 nDestVideoHeight;
1443 BLUE_UINT32 nDestVideoWidth;
1444 BLUE_UINT32 nDestVideoYPos;
1445 BLUE_UINT32 nDestVideoXPos;
1446 BLUE_UINT32 nHScaleFactor;
1447 BLUE_UINT32 nVScaleFactor;
1448 BLUE_UINT32 nScalerOutputVideoMode;
1449 BLUE_UINT32 nScalerParamFlags;
1450 BLUE_UINT32 nScalerOutputRasterVideoMode;
1451 BLUE_UINT32 nScalerOutputRasterHeight;
1452 BLUE_UINT32 nScalerOutputRasterWidth;
1453 BLUE_UINT32 pad[125];
1455 #ifndef EXCLUDE_USERLAND_STRUCT
1456 struct blue_color_matrix_struct{
1457 BLUE_UINT32 VideoChannel;
1458 BLUE_UINT32 MatrixColumn; //MatrixColType enumerator defines this
1466 #pragma pack(pop, blue_dma_request)
1468 typedef enum _blue_output_hanc_ioctl_enum
1470 blue_get_output_hanc_buffer = 0,
1471 blue_put_output_hanc_buffer = 1,
1472 blue_get_valid_silent_hanc_data_status = 3,
1473 blue_set_valid_silent_hanc_data_status = 4,
1474 blue_start_output_fifo = 5,
1475 blue_stop_output_fifo = 6,
1476 blue_init_output_fifo = 7,
1477 blue_get_queues_info = 8,
1478 blue_get_output_fifo_info=blue_get_queues_info,
1479 blue_get_output_fifo_status = 9,
1480 blue_start_output_fifo_no_auto_turn_off = 10 // this is used when we don't really use the FIFO, but handle audio playback ourselves in DirectShow;
1481 // need to make sure that our HANC output FIFO doesn't turn off audio as there are never any HANC frames to be played
1482 }blue_output_hanc_ioctl_enum;
1484 typedef enum _blue_input_hanc_ioctl_enum
1486 blue_get_input_hanc_buffer=0,
1487 blue_start_input_fifo=3,
1488 blue_stop_input_fifo=4,
1489 blue_init_input_fifo=5,
1490 blue_playthru_input_fifo=6,
1491 blue_release_input_hanc_buffer=7,
1492 blue_map_input_hanc_buffer=8,
1493 blue_unmap_input_hanc_buffer=9,
1494 blue_get_info_input_hanc_fifo=10,
1495 blue_get_input_rp188=11,
1496 blue_get_input_fifo_status=12,
1497 }blue_input_hanc_ioctl_enum;
1500 #define HANC_PLAYBACK_INIT (0x00000001)
1501 #define HANC_PLAYBACK_START (0x00000002)
1502 #define HANC_PLAYBACK_STOP (0x00000004)
1504 #define HANC_CAPTURE_INIT (0x00000010)
1505 #define HANC_CAPTURE_START (0x00000020)
1506 #define HANC_CAPTURE_STOP (0x00000040)
1507 #define HANC_CAPTURE_PLAYTHRU (0x00000080)
1510 typedef enum _EOracFPGAConfigCMD
1512 ORAC_FPGA_CONFIG_CMD_ERASE_SECTOR=0,
1513 ORAC_FPGA_CONFIG_CMD_UNLOCK_SECTOR=1,
1514 ORAC_FPGA_CONFIG_CMD_WRITE_DATA=2,
1515 ORAC_FPGA_CONFIG_CMD_STATUS=3,
1516 ORAC_FPGA_CONFIG_CMD_READMODE=4,
1517 ORAC_FPGA_CONFIG_RAW_WRITE=5,
1518 ORAC_FPGA_CONFIG_RAW_READ=6,
1519 ORAC_FPGA_CONFIG_CMD_READ_DATA=7,
1520 ORAC_FPGA_CONFIG_INIT=8,
1521 ORAC_FPGA_CONFIG_EXIT=9
1522 }EOracFPGAConfigCMD;
1525 #define ANALOG_CHANNEL_0 MONO_CHANNEL_9
1526 #define ANALOG_CHANNEL_1 MONO_CHANNEL_10
1528 /*Assumes that the data is in stereo pairs not individual samples*/
1529 #define STEREO_PAIR_1 (MONO_CHANNEL_1|MONO_CHANNEL_2) /* Mono Channel 1 & Mono channel 2* together*/
1530 #define STEREO_PAIR_2 (MONO_CHANNEL_3|MONO_CHANNEL_4) /* Mono Channel 3 & Mono Channel 4* together*/
1531 #define STEREO_PAIR_3 (MONO_CHANNEL_5|MONO_CHANNEL_6) /* Mono Channel 5 & Mono Channel 6* together*/
1532 #define STEREO_PAIR_4 (MONO_CHANNEL_7|MONO_CHANNEL_8) /* Mono Channel 7 & Mono Channel 8* together*/
1534 #define ANALOG_AUDIO_PAIR (ANALOG_CHANNEL_0|ANALOG_CHANNEL_1)
1536 #define BLUE_LITTLE_ENDIAN 0
1537 #define BLUE_BIG_ENDIAN 1
1539 #define GREED_SILENT_HANC_BUFFER1 250
1540 #define GREED_SILENT_HANC_BUFFER2 251
1542 #define AES_SRC_BYPASS_CHANNEL_1_2 0x1
1543 #define AES_SRC_BYPASS_CHANNEL_3_4 0x2
1544 #define AES_SRC_BYPASS_CHANNEL_5_6 0x4
1545 #define AES_SRC_BYPASS_CHANNEL_7_8 0x8
1547 typedef enum _EEpochRoutingElements
1549 EPOCH_SRC_DEST_SCALER_0=0x1,
1550 EPOCH_SRC_DEST_SCALER_1,
1551 EPOCH_SRC_DEST_SCALER_2,
1552 EPOCH_SRC_DEST_SCALER_3,
1554 EPOCH_SRC_SDI_INPUT_A,
1555 EPOCH_SRC_SDI_INPUT_B,
1556 EPOCH_SRC_SDI_INPUT_C,
1557 EPOCH_SRC_SDI_INPUT_D,
1559 EPOCH_SRC_SDI_INPUT_A_3GB_LINK_A = EPOCH_SRC_SDI_INPUT_A,
1560 EPOCH_SRC_SDI_INPUT_B_3GB_LINK_A = EPOCH_SRC_SDI_INPUT_B,
1561 EPOCH_SRC_SDI_INPUT_C_3GB_LINK_A = EPOCH_SRC_SDI_INPUT_C,
1562 EPOCH_SRC_SDI_INPUT_D_3GB_LINK_A = EPOCH_SRC_SDI_INPUT_D,
1564 EPOCH_DEST_SDI_OUTPUT_A,
1565 EPOCH_DEST_SDI_OUTPUT_B,
1566 EPOCH_DEST_SDI_OUTPUT_C,
1567 EPOCH_DEST_SDI_OUTPUT_D,
1569 EPOCH_DEST_SDI_OUTPUT_A_3GB_LINK_A = EPOCH_DEST_SDI_OUTPUT_A,
1570 EPOCH_DEST_SDI_OUTPUT_B_3GB_LINK_A = EPOCH_DEST_SDI_OUTPUT_B,
1571 EPOCH_DEST_SDI_OUTPUT_C_3GB_LINK_A = EPOCH_DEST_SDI_OUTPUT_C,
1572 EPOCH_DEST_SDI_OUTPUT_D_3GB_LINK_A = EPOCH_DEST_SDI_OUTPUT_D,
1574 EPOCH_SRC_OUTPUT_MEM_INTERFACE_CHA,
1575 EPOCH_SRC_OUTPUT_MEM_INTERFACE_CHB,
1577 EPOCH_DEST_INPUT_MEM_INTERFACE_CHA,
1578 EPOCH_DEST_INPUT_MEM_INTERFACE_CHB,
1580 EPOCH_DEST_AES_ANALOG_AUDIO_OUTPUT,
1582 EPOCH_SRC_AV_SIGNAL_GEN,
1583 EPOCH_SRC_DEST_VPIO_SCALER_0,
1584 EPOCH_SRC_DEST_VPIO_SCALER_1,
1586 EPOCH_DEST_VARIVUE_HDMI,
1588 EPOCH_DEST_INPUT_MEM_INTERFACE_CHC,
1589 EPOCH_DEST_INPUT_MEM_INTERFACE_CHD,
1591 EPOCH_SRC_OUTPUT_MEM_INTERFACE_CHC,
1592 EPOCH_SRC_OUTPUT_MEM_INTERFACE_CHD,
1594 EPOCH_SRC_SDI_INPUT_A_3GB_LINK_B,
1595 EPOCH_SRC_SDI_INPUT_B_3GB_LINK_B,
1596 EPOCH_SRC_SDI_INPUT_C_3GB_LINK_B,
1597 EPOCH_SRC_SDI_INPUT_D_3GB_LINK_B,
1599 EPOCH_DEST_SDI_OUTPUT_A_3GB_LINK_B,
1600 EPOCH_DEST_SDI_OUTPUT_B_3GB_LINK_B,
1601 EPOCH_DEST_SDI_OUTPUT_C_3GB_LINK_B,
1602 EPOCH_DEST_SDI_OUTPUT_D_3GB_LINK_B,
1604 EPOCH_DEST_HDMI_OUTPUT,
1605 EPOCH_DEST_HDMI_OUTPUT_LINK_A = EPOCH_DEST_HDMI_OUTPUT,
1606 EPOCH_DEST_HDMI_OUTPUT_LINK_B,
1608 }EEpochRoutingElements;
1612 #define VPEnableFieldCountTrigger ((BLUE_UINT64)1<<63)
1613 #define VPTriggerGetFieldCount(value) ((BLUE_UINT64)value & 0xFFFFFFFF)
1615 typedef enum _EBlueScalerFilterType
1617 BlueScalerHorizontalYFilter=1,
1618 BlueScalerHorizontalCFilter=2,
1619 BlueScalerVerticalYFilter=3,
1620 BlueScalerVerticalCFilter=4,
1621 }EBlueScalerFilterType;
1624 typedef enum _EBFLockSignalType
1626 BFLOCK_SIGNAL_UNKNOWN = 0x1000,
1627 BFLOCK_SIGNAL_2398 = 0x1001,
1628 BFLOCK_SIGNAL_2400 = 0x1002,
1629 BFLOCK_SIGNAL_2500 = 0x1003,
1630 BFLOCK_SIGNAL_2997 = 0x1004,
1631 BFLOCK_SIGNAL_3000 = 0x1005,
1632 BFLOCK_SIGNAL_4795 = 0x1006,
1633 BFLOCK_SIGNAL_4800 = 0x1007,
1634 BFLOCK_SIGNAL_5000 = 0x1008,
1635 BFLOCK_SIGNAL_5994 = 0x1009,
1636 BFLOCK_SIGNAL_6000 = 0x100A,
1639 #define SET_EPOCH_SCALER_MODE(scaler_id,video_mode) ((scaler_id <<16)|video_mode)
1640 #define GET_EPOCH_SCALER_MODE(value) (value&0xFFFF)
1641 #define GET_EPOCH_SCALER_ID(value) ((value&0xFFFF0000)>>16)
1644 // use these macros for retreiving the temp and fan speed.
1645 // on epoch range of cards.
1646 #define EPOCH_CORE_TEMP(value) (value & 0xFF)
1647 #define EPOCH_BOARD_TEMP(value) ((value>>16) & 0xFF)
1648 #define EPOCH_FAN_SPEED(value) ((value>>24) & 0xFF)
1651 @desc use these macro for doing the MR2 routing on epoch range of cards.
1652 MR2 routing can be controlled using the property MR_ROUTING.
1654 #define EPOCH_SET_ROUTING(routing_src,routing_dest,data_link_type) ((routing_src & 0xFF) | ((routing_dest & 0xFF)<<8) | ((data_link_type&0xFFFF)<<16))
1655 #define EPOCH_ROUTING_GET_SRC_DATA(value) (value & 0xFF)
1656 #define EPOCH_ROUTING_GET_DEST_DATA(value) ((value>>8) & 0xFF)
1657 #define EPOCH_ROUTING_GET_LINK_TYPE_DATA(value) ((value>>16) & 0xFFFF)
1659 #define GPIO_TX_PORT_A (1)
1660 #define GPIO_TX_PORT_B (2)
1662 #define EPOCH_GPIO_TX(port,value) (port<<16|value) // if want to set each of the GPO
1663 // ports individually you should use this macro.
1664 // without the macro it would set both the GPO
1665 // ports on the card
1668 @desc use these macros for controlling epoch application watch dog settings.
1669 The card property EPOCH_APP_WATCHDOG_TIMER can be used to control
1670 the watchdog timer functionality.
1672 enum enum_blue_app_watchdog_timer_prop
1674 enum_blue_app_watchdog_timer_start_stop=(1<<31), // can be used to enable/disable timer
1675 enum_blue_app_watchdog_timer_keepalive=(1<<30), // can be used to reset the timer value
1676 enum_blue_app_watchdog_timer_get_present_time=(1<<29), // can query to get the value of the timer
1677 enum_blue_app_watchdog_get_timer_activated_status=(1<<28), // can query to get whether the timer has been activated
1678 enum_blue_app_watchdog_get_timer_start_stop_status=(1<<27), // can query whether the timer has been set.
1679 enum_blue_app_watchdog_enable_gpo_on_active=(1<<26), // using this enumerator you can tell the system that when
1680 // application watchdog timer has expired whether a GPO output should be triggered or not.
1681 // you can use also use this enumerator to select
1682 // which GPO output should be triggered with this. to use GPO port A pass a value of
1683 // GPIO_TX_PORT_A when this enumerator is used.
1684 enum_blue_hardware_watchdog_enable_gpo=(1<<25) // can be used to enable/disable GPO trigger when hardware watchdog timer has been
1688 #define EPOCH_WATCHDOG_TIMER_SET_MACRO(prop,value) (prop|(value &0xFFFF))
1689 #define EPOCH_WATCHDOG_TIMER_QUERY_MACRO(prop) (prop)
1690 #define EPOCH_WATCHDOG_TIMER_GET_VALUE_MACRO(value) (value&0xFFFF)
1692 enum enum_blue_rs422_port_flags
1694 enum_blue_rs422_port_set_as_slave =(1<<0) // If this flag is set the RS422 port would be set to slave mode.
1695 // by default port is setup to work in master mode , where it would be acting
1696 // as master in the transactions.
1698 #define EPOCH_RS422_PORT_FLAG_SET_MACRO(portid,value) ((portid&0x3)|(value<<3))
1699 #define EPOCH_RS422_PORT_FLAG_GET_FLAG_MACRO(value) ((value>>3)&0xFFFF)
1700 #define EPOCH_RS422_PORT_FLAG_GET_PORTID_MACRO(value) (value&0x3)
1703 enum enum_blue_dvb_asi_packing_format
1705 enum_blue_dvb_asi_packed_format=1,/**< In this packing method the asi packets are stored as 188 or 204 bytes*/
1706 enum_blue_dvb_asi_packed_format_with_timestamp=2,/**< In this packing method the asi packets are stored as (8+188) or (8+204) bytes
1707 The timestamp is stored at the begininig of the packet , using 8 bytes*/
1708 enum_blue_dvb_asi_256byte_container_format=3,
1709 enum_blue_dvb_asi_256byte_container_format_with_timestamp=4
1712 enum enum_blue_dvb_asi_packet_size
1714 enum_blue_dvb_asi_packet_size_188_bytes = 1,
1715 enum_blue_dvb_asi_packet_size_204_bytes = 2
1719 #define RS422_SERIALPORT_FLAG(timeout,port,RxFlushBuffer) (((unsigned long)(timeout)<<16)|(port & 0x3) | (RxFlushBuffer<<15))
1720 // use this macro with Wait_For_SerialPort_InputData,
1721 // if you you want the function to return
1722 // immediatelty when it gets byte in the serial RX port.
1723 #define RS422_SERIALPORT_FLAG2(timeout,port,RxFlushBuffer,RXIntWaitReturnOnAvailData) (((unsigned long)(timeout)<<16)|(port & 0x3) | (RxFlushBuffer<<15)|(RXIntWaitReturnOnAvailData<<14))
1725 typedef enum _blue_blackgenerator_status
1727 ENUM_BLACKGENERATOR_OFF = 0, //producing normal video output
1728 ENUM_BLACKGENERATOR_ON = 1, //producing black video output
1729 ENUM_BLACKGENERATOR_SDI_SYNC_OFF = 2 //no valid SDI signal is coming out of our SDI output connector; only available in Epoch ASI firmware
1730 }blue_blackgenerator_status;
1732 typedef enum _EBlueExternalLtcSource
1734 EXT_LTC_SRC_BREAKOUT_HEADER = 0, //default; header on the PCB board/Shield
1735 EXT_LTC_SRC_GENLOCK_BNC = 1 //Genlock BNC connector
1736 }EBlueExternalLtcSource;
1738 ////the following macros are used with card property INTERLOCK_REFERENCE
1739 #define INTERLOCK_REFERENCE_GET_OUTPUT_ENABLED(value) ((value) & 0x01)
1740 #define INTERLOCK_REFERENCE_GET_INPUT_DETECTED(value) ((value >> 1) & 0x01)
1741 #define INTERLOCK_REFERENCE_GET_SLAVE_POSITION(value) ((value >> 2) & 0x1F)
1743 //the following macros are used with card property CARD_FEATURE_STREAM_INFO
1744 #define CARD_FEATURE_GET_SDI_OUTPUT_STREAM_COUNT(value) ((value) & 0xF)
1745 #define CARD_FEATURE_GET_SDI_INPUT_STREAM_COUNT(value) ((value >> 4) & 0xF)
1746 #define CARD_FEATURE_GET_ASI_OUTPUT_STREAM_COUNT(value) ((value >> 8) & 0xF)
1747 #define CARD_FEATURE_GET_ASI_INPUT_STREAM_COUNT(value) ((value >> 12) & 0xF)
1748 #define CARD_FEATURE_GET_3G_SUPPORT(value) ((value >> 13) & 0xF)
1750 //the following macros are used with card property CARD_FEATURE_CONNECTOR_INFO
1751 #define CARD_FEATURE_GET_SDI_OUTPUT_CONNECTOR_COUNT(value) ((value) & 0xF)
1752 #define CARD_FEATURE_GET_SDI_INPUT_CONNECTOR_COUNT(value) ((value >> 4) & 0xF)
1753 #define CARD_FEATURE_GET_AES_CONNECTOR_SUPPORT(value) ((value >> 8) & 0x1)
1754 #define CARD_FEATURE_GET_RS422_CONNECTOR_SUPPORT(value) ((value >> 9) & 0x1)
1755 #define CARD_FEATURE_GET_LTC_CONNECTOR_SUPPORT(value) ((value >> 10) & 0x1)
1756 #define CARD_FEATURE_GET_GPIO_CONNECTOR_SUPPORT(value) ((value >> 11) & 0x1)
1757 #define CARD_FEATURE_GET_HDMI_CONNECTOR_SUPPORT(value) ((value >> 12) & 0x1)
1759 //the following macros are used with card property VIDEO_ONBOARD_KEYER
1760 #define VIDEO_ONBOARD_KEYER_GET_STATUS_ENABLED(value) ((value) & 0x1)
1761 #define VIDEO_ONBOARD_KEYER_GET_STATUS_OVER_BLACK(value) ((value) & 0x2)
1762 #define VIDEO_ONBOARD_KEYER_GET_STATUS_USE_INPUT_ANCILLARY(value) ((value) & 0x4)
1763 #define VIDEO_ONBOARD_KEYER_GET_STATUS_DATA_IS_PREMULTIPLIED(value) ((value) & 0x8)
1764 #define VIDEO_ONBOARD_KEYER_SET_STATUS_ENABLED(value) (value |= 0x1)
1765 #define VIDEO_ONBOARD_KEYER_SET_STATUS_DISABLED(value) (value &= ~(0x1))
1766 #define VIDEO_ONBOARD_KEYER_SET_STATUS_ENABLE_OVER_BLACK(value) (value |= 0x2)
1767 #define VIDEO_ONBOARD_KEYER_SET_STATUS_DISABLE_OVER_BLACK(value) (value &= ~(0x2))
1768 #define VIDEO_ONBOARD_KEYER_SET_STATUS_USE_INPUT_ANCILLARY(value) (value |= 0x4) //only use this setting when keying over valid input (input must also match output video mode), includes HANC and VANC
1769 #define VIDEO_ONBOARD_KEYER_SET_STATUS_USE_OUTPUT_ANCILLARY(value) (value &= ~(0x4))
1770 #define VIDEO_ONBOARD_KEYER_SET_STATUS_DATA_IS_PREMULTIPLIED(value) (value |= 0x8)
1771 #define VIDEO_ONBOARD_KEYER_SET_STATUS_DATA_IS_NOT_PREMULTIPLIED(value) (value &= ~(0x8))
1773 //the following macros are used with card property EPOCH_HANC_INPUT_FLAGS
1774 #define HANC_FLAGS_IS_ARRI_RECORD_FLAG_SET(value) ((value) & 0x1)
1776 //the following macros are used with card property EPOCH_RAW_VIDEO_INPUT_TYPE
1777 #define RAW_VIDEO_INPUT_TYPE_IS_10BIT (0x01)
1778 #define RAW_VIDEO_INPUT_TYPE_IS_12BIT (0x02)
1779 #define RAW_VIDEO_INPUT_TYPE_IS_WEISSCAM (0x10)
1780 #define RAW_VIDEO_INPUT_TYPE_IS_ARRI (0x20)
1782 //the following macros are used with card property EPOCH_PCIE_CONFIG_INFO
1783 #define PCIE_CONFIG_INFO_GET_MAX_PAYLOAD_SIZE(value) ((value) & 0xFFFF)
1784 #define PCIE_CONFIG_INFO_GET_MAX_READREQUEST_SIZE(value) ((value >> 16) & 0xFFFF)