+/*\r
+ $Id: BlueDriver_p.h,v 1.62.2.16 2011/10/26 05:33:18 tim Exp $\r
+*/\r
+#pragma once \r
+#define _BLUEDRIVER_P_H__\r
+#define BLUE_UINT32 unsigned int \r
+#define BLUE_INT32 int \r
+#define BLUE_UINT8 unsigned char\r
+#define BLUE_INT8 char\r
+#define BLUE_UINT16 unsigned short\r
+#define BLUE_INT16 short\r
+#pragma once\r
+#ifdef BLUE_LINUX_CODE\r
+#define BLUE_UINT64 unsigned long long \r
+//#include <asm/types.h>\r
+#else\r
+#define BLUE_UINT64 unsigned __int64\r
+#endif \r
+\r
+//#define ORAC_FILMPOST_FIRMWARE_PRODUCTID (0x1)\r
+//#define ORAC_BROADCAST_FIRMWARE_PRODUCTID (0x2)\r
+//#define ORAC_ASI_FIRMWARE_PRODUCTID (0x3)\r
+//#define ORAC_4SDIINPUT_FIRMWARE_PRODUCTID (0x4)\r
+//#define ORAC_4SDIOUTPUT_FIRMWARE_PRODUCTID (0x5)\r
+\r
+\r
+\r
+/**\r
+ * This contains the enumerators that can be used to set the cards \n\r
+ * video output and also to determine the video mode of the incoming \n\r
+ * video signal.\r
+ */ \r
+typedef enum _EVideoMode\r
+{\r
+ VID_FMT_PAL=0,\r
+ VID_FMT_NTSC=1,\r
+ VID_FMT_576I_5000=0, /**< 720 x 576 50 Interlaced */\r
+ VID_FMT_486I_5994=1, /**< 720 x 486 60/1.001 Interlaced */\r
+ VID_FMT_720P_5994, /**< 1280 x 720 60/1.001 Progressive */\r
+ VID_FMT_720P_6000, /**< 1280 x 720 60 Progressive */\r
+ VID_FMT_1080PSF_2397, /**< 1920 x 1080 24/1.001 Segment Frame */\r
+ VID_FMT_1080PSF_2400, /**< 1920 x 1080 24 Segment Frame */\r
+ VID_FMT_1080P_2397, /**< 1920 x 1080 24/1.001 Progressive */\r
+ VID_FMT_1080P_2400, /**< 1920 x 1080 24 Progressive */\r
+ VID_FMT_1080I_5000, /**< 1920 x 1080 50 Interlaced */\r
+ VID_FMT_1080I_5994, /**< 1920 x 1080 60/1.001 Interlaced */\r
+ VID_FMT_1080I_6000, /**< 1920 x 1080 60 Interlaced */\r
+ VID_FMT_1080P_2500, /**< 1920 x 1080 25 Progressive */\r
+ VID_FMT_1080P_2997, /**< 1920 x 1080 30/1.001 Progressive */\r
+ VID_FMT_1080P_3000, /**< 1920 x 1080 30 Progressive */\r
+ VID_FMT_HSDL_1498, /**< 2048 x 1556 15/1.0 Segment Frame */\r
+ VID_FMT_HSDL_1500, /**< 2048 x 1556 15 Segment Frame */\r
+ VID_FMT_720P_5000, /**< 1280 x 720 50 Progressive */\r
+ VID_FMT_720P_2398, /**< 1280 x 720 24/1.001 Progressive */\r
+ VID_FMT_720P_2400, /**< 1280 x 720 24 Progressive */\r
+ VID_FMT_2048_1080PSF_2397=19, /**< 2048 x 1080 24/1.001 Segment Frame */\r
+ VID_FMT_2048_1080PSF_2400=20, /**< 2048 x 1080 24 Segment Frame */\r
+ VID_FMT_2048_1080P_2397=21, /**< 2048 x 1080 24/1.001 progressive */ \r
+ VID_FMT_2048_1080P_2400=22, /**< 2048 x 1080 24 progressive */\r
+ VID_FMT_1080PSF_2500=23,\r
+ VID_FMT_1080PSF_2997=24,\r
+ VID_FMT_1080PSF_3000=25,\r
+ VID_FMT_1080P_5000=26,\r
+ VID_FMT_1080P_5994=27,\r
+ VID_FMT_1080P_6000=28,\r
+ VID_FMT_720P_2500=29,\r
+ VID_FMT_720P_2997=30,\r
+ VID_FMT_720P_3000=31,\r
+ VID_FMT_DVB_ASI=32,\r
+ VID_FMT_2048_1080PSF_2500=33,\r
+ VID_FMT_2048_1080PSF_2997=34,\r
+ VID_FMT_2048_1080PSF_3000=35,\r
+ VID_FMT_2048_1080P_2500=36,\r
+ VID_FMT_2048_1080P_2997=37,\r
+ VID_FMT_2048_1080P_3000=38,\r
+ VID_FMT_2048_1080P_5000=39,\r
+ VID_FMT_2048_1080P_5994=40,\r
+ VID_FMT_2048_1080P_6000=41,\r
+ VID_FMT_INVALID=42\r
+} EVideoMode;\r
+\r
+/**\r
+@brief Use these enumerators to set the pixel format \r
+ that should be used by the video input and output \r
+ framestores.\r
+*/\r
+typedef enum _EMemoryFormat\r
+{\r
+ MEM_FMT_ARGB=0, /**< ARGB 4:4:4:4 */\r
+ MEM_FMT_BV10=1,\r
+ MEM_FMT_BV8=2,\r
+ MEM_FMT_YUVS=MEM_FMT_BV8,\r
+ MEM_FMT_V210=3, // Iridium HD (BAG1)\r
+ MEM_FMT_RGBA=4,\r
+ MEM_FMT_CINEON_LITTLE_ENDIAN=5,\r
+ MEM_FMT_ARGB_PC=6,\r
+ MEM_FMT_BGRA=MEM_FMT_ARGB_PC,\r
+ MEM_FMT_CINEON=7,\r
+ MEM_FMT_2VUY=8,\r
+ MEM_FMT_BGR=9,\r
+ MEM_FMT_BGR_16_16_16=10,\r
+ MEM_FMT_BGRA_16_16_16_16=11,\r
+ MEM_FMT_VUYA_4444=12,\r
+ MEM_FMT_V216=13,\r
+ MEM_FMT_Y210=14,\r
+ MEM_FMT_Y216=15,\r
+ MEM_FMT_INVALID=16\r
+} EMemoryFormat;\r
+\r
+/**\r
+@brief Used to control the video update type, \r
+ whether the card should capture/playback a\r
+ video frame or field.\r
+*/\r
+typedef enum _EUpdateMethod\r
+{\r
+ UPD_FMT_FIELD=0,\r
+ UPD_FMT_FRAME,\r
+ UPD_FMT_FRAME_DISPLAY_FIELD1,\r
+ UPD_FMT_FRAME_DISPLAY_FIELD2,\r
+ UPD_FMT_INVALID,\r
+ UPD_FMT_FLAG_RETURN_CURRENT_UNIQUEID=0x80000000,/**< if this flag is used on epoch cards, function would \r
+ return the unique id of the current frame as the return value.*/\r
+} EUpdateMethod;\r
+\r
+typedef enum _EResoFormat\r
+{\r
+ RES_FMT_NORMAL=0,\r
+ RES_FMT_HALF,\r
+ RES_FMT_INVALID\r
+} EResoFormat;\r
+\r
+typedef enum _ECardType\r
+{\r
+ CRD_BLUEDEEP_LT=0, // D64 Lite\r
+ CRD_BLUEDEEP_SD, // Iridium SD\r
+ CRD_BLUEDEEP_AV, // Iridium AV\r
+ CRD_BLUEDEEP_IO, // D64 Full\r
+ CRD_BLUEWILD_AV, // D64 AV\r
+ CRD_IRIDIUM_HD, // * Iridium HD\r
+ CRD_BLUEWILD_RT, // D64 RT\r
+ CRD_BLUEWILD_HD, // * BadAss G2\r
+ CRD_REDDEVIL, // Iridium Full\r
+ CRD_BLUEDEEP_HD, // * BadAss G2 variant, proposed, reserved\r
+ CRD_BLUE_EPOCH_2K = CRD_BLUEDEEP_HD,\r
+ CRD_BLUE_EPOCH_2K_HORIZON=CRD_BLUE_EPOCH_2K,\r
+ CRD_BLUEDEEP_HDS, // * BadAss G2 variant, proposed, reserved\r
+ CRD_BLUE_ENVY, // Mini Din \r
+ CRD_BLUE_PRIDE, //Mini Din Output \r
+ CRD_BLUE_GREED,\r
+ CRD_BLUE_INGEST,\r
+ CRD_BLUE_SD_DUALLINK,\r
+ CRD_BLUE_CATALYST,\r
+ CRD_BLUE_SD_DUALLINK_PRO,\r
+ CRD_BLUE_SD_INGEST_PRO,\r
+ CRD_BLUE_SD_DEEPBLUE_LITE_PRO,\r
+ CRD_BLUE_SD_SINGLELINK_PRO,\r
+ CRD_BLUE_SD_IRIDIUM_AV_PRO,\r
+ CRD_BLUE_SD_FIDELITY,\r
+ CRD_BLUE_SD_FOCUS,\r
+ CRD_BLUE_SD_PRIME,\r
+ CRD_BLUE_EPOCH_2K_CORE,\r
+ CRD_BLUE_EPOCH_2K_ULTRA,\r
+ CRD_BLUE_EPOCH_HORIZON,\r
+ CRD_BLUE_EPOCH_CORE,\r
+ CRD_BLUE_EPOCH_ULTRA,\r
+ CRD_BLUE_CREATE_HD,\r
+ CRD_BLUE_CREATE_2K,\r
+ CRD_BLUE_CREATE_2K_ULTRA,\r
+ CRD_BLUE_CREATE_3D = CRD_BLUE_CREATE_2K,\r
+ CRD_BLUE_CREATE_3D_ULTRA = CRD_BLUE_CREATE_2K_ULTRA,\r
+ CRD_BLUE_SUPER_NOVA,\r
+ CRD_INVALID\r
+} ECardType;\r
+\r
+\r
+typedef enum _EHDCardSubType\r
+{ \r
+ CRD_HD_FURY=1,\r
+ CRD_HD_VENGENCE=2,\r
+ CRD_HD_IRIDIUM_XP=3,\r
+ CRD_HD_IRIDIUM = 4,\r
+ CRD_HD_LUST=5,\r
+ CRD_HD_INVALID\r
+}EHDCardSubType;\r
+\r
+enum EEpochFirmwareProductID\r
+{\r
+ ORAC_FILMPOST_FIRMWARE_PRODUCTID=(0x1), //Epoch/Create, standard firmware\r
+ ORAC_BROADCAST_FIRMWARE_PRODUCTID=(0x2), //Epoch\r
+ ORAC_ASI_FIRMWARE_PRODUCTID=(0x3), //Epoch\r
+ ORAC_4SDIINPUT_FIRMWARE_PRODUCTID=(0x4), //SuperNova\r
+ ORAC_4SDIOUTPUT_FIRMWARE_PRODUCTID=(0x5), //SuperNova\r
+ ORAC_2SDIINPUT_2SDIOUTPUT_FIRMWARE_PRODUCTID=(0x6), //SuperNova\r
+};\r
+\r
+/**< @brief Use this enumerator to select the audio channels that should be captured or played back.\r
+*/\r
+typedef enum _BlueAudioChannelDesc\r
+{\r
+ MONO_FLAG = 0xC0000000,\r
+ MONO_CHANNEL_1 = 0x00000001,\r
+ MONO_CHANNEL_2 = 0x00000002,\r
+ MONO_CHANNEL_3 = 0x00000004,\r
+ MONO_CHANNEL_4 = 0x00000008,\r
+ MONO_CHANNEL_5 = 0x00000010,\r
+ MONO_CHANNEL_6 = 0x00000020,\r
+ MONO_CHANNEL_7 = 0x00000040,\r
+ MONO_CHANNEL_8 = 0x00000080,\r
+ MONO_CHANNEL_9 = 0x00000100,// to be used by analog audio output channels \r
+ MONO_CHANNEL_10 = 0x00000200,// to be used by analog audio output channels \r
+ MONO_CHANNEL_11 = 0x00000400,//actual channel 9\r
+ MONO_CHANNEL_12 = 0x00000800,//actual channel 10\r
+ MONO_CHANNEL_13 = 0x00001000,//actual channel 11\r
+ MONO_CHANNEL_14 = 0x00002000,//actual channel 12\r
+ MONO_CHANNEL_15 = 0x00004000,//actual channel 13\r
+ MONO_CHANNEL_16 = 0x00008000,//actual channel 14\r
+ MONO_CHANNEL_17 = 0x00010000,//actual channel 15\r
+ MONO_CHANNEL_18 = 0x00020000 //actual channel 16\r
+}BlueAudioChannelDesc;\r
+\r
+\r
+//----------------------------------------------------------------------------\r
+/**<\r
+Use this enumeraotor to set the type of pcm audio data.\r
+*/\r
+typedef enum\r
+{\r
+ AUDIO_CHANNEL_LOOPING_OFF = 0x00000000, /**< deprecated not used any more */\r
+ AUDIO_CHANNEL_LOOPING = 0x00000001,/**< deprecated not used any more */\r
+ AUDIO_CHANNEL_LITTLEENDIAN = 0x00000000, /**< if the audio data is little endian this flag must be set*/\r
+ AUDIO_CHANNEL_BIGENDIAN = 0x00000002,/**< if the audio data is big endian this flag must be set*/\r
+ AUDIO_CHANNEL_OFFSET_IN_BYTES = 0x00000004,/**< deprecated not used any more */\r
+ AUDIO_CHANNEL_16BIT = 0x00000008, /**< if the audio channel bit depth is 16 bits this flag must be set*/\r
+ AUDIO_CHANNEL_BLIP_PENDING = 0x00000010,/**< deprecated not used any more */\r
+ AUDIO_CHANNEL_BLIP_COMPLETE = 0x00000020,/**< deprecated not used any more */\r
+ AUDIO_CHANNEL_SELECT_CHANNEL = 0x00000040,/**< deprecated not used any more */\r
+ AUDIO_CHANNEL_24BIT = 0x00000080/**< if the audio channel bit depth is 24 bits this flag must be set*/\r
+} EAudioFlags;\r
+\r
+/**\r
+@desc Used to select Audio input source on new generation SD cards \r
+@remarks\r
+This enumerator works only when used with ReadAudioSample function.\r
+*/\r
+typedef enum\r
+{\r
+ BLUE_AUDIO_AES=0, /**< Used to select All 8 channels of Digital Audio using AES/AES3id connector*/\r
+ BLUE_AUDIO_ANALOG=1,/**< Used to select Analog audio*/\r
+ BLUE_AUDIO_SDIA=2, /**< Used to select Emb audio from SDI A */\r
+ BLUE_AUDIO_EMBEDDED=BLUE_AUDIO_SDIA,\r
+ BLUE_AUDIO_SDIB=3, /**< Used to select Emb audio from SDI B */\r
+ BLUE_AUDIO_AES_PAIR0=4, /**< Used to select stereo pair 0 as audio input source. This is only supported on SD Greed Derivative cards.*/\r
+ BLUE_AUDIO_AES_PAIR1=5,/**< Used to select stereo pair 1 as audio input source. This is only supported on SD Greed Derivative cards.*/\r
+ BLUE_AUDIO_AES_PAIR2=6,/**< Used to select stereo pair 2 as audio input source. This is only supported on SD Greed Derivative cards.*/\r
+ BLUE_AUDIO_AES_PAIR3=7,/**< Used to select stereo pair 3 as audio input source. This is only supported on SD Greed Derivative cards.*/\r
+ BLUE_AUDIO_SDIC=8, /**< Used to select Emb audio from SDI C */\r
+ BLUE_AUDIO_SDID=9, /**< Used to select Emb audio from SDI D */\r
+ BLUE_AUDIO_INVALID=10\r
+} Blue_Audio_Connector_Type;\r
+\r
+typedef enum _EAudioRate\r
+{\r
+ AUDIO_SAMPLE_RATE_48K=48000,\r
+ AUDIO_SAMPLE_RATE_96K=96000,\r
+ AUDIO_SAMPLE_RATE_UNKNOWN=-1\r
+} EAudioRate;\r
+\r
+/**<\r
+@brief use this enumerator to define the color space of the video signal on the SDI cable\r
+*/\r
+typedef enum _EConnectorSignalColorSpace\r
+{\r
+ RGB_ON_CONNECTOR=0x00400000, /**< Use this enumerator if the colorspace of video data on the SDI cable is RGB <br/>\r
+ When using dual link capture/playback , user can choose the \r
+ color space of the data. <br>\r
+ In single link SDI the color space of the signal is always YUB*/\r
+ YUV_ON_CONNECTOR=0 /**<Use this enumerator if color space of video data on the SDI cable is RGB.*/\r
+}EConnectorSignalColorSpace;\r
+\r
+\r
+/**<\r
+@brief use this enumerator for controlling the dual link functionality.\r
+*/\r
+typedef enum _EDualLinkSignalFormatType\r
+{\r
+ Signal_FormatType_4224=0, /**< sets the card to work in 4:2:2:4 mode*/\r
+ Signal_FormatType_4444=1,/**< sets the card to work in 4:4:4 10 bit dual link mode*/\r
+ Signal_FormatType_444_10BitSDI=Signal_FormatType_4444,/**< sets the card to work in 10 bit 4:4:4 dual link mode*/\r
+ Signal_FormatType_444_12BitSDI=0x4,/**< sets the card to work in 4:4:4 12 bit dual link mode*/\r
+ Signal_FormatType_Independent_422 = 0x2,\r
+ Signal_FormatType_Key_Key=0x8000/**< not used currently on epoch cards */\r
+ \r
+}EDualLinkSignalFormatType;\r
+\r
+\r
+enum ECardOperatingMode\r
+{\r
+ CardOperatingMode_SingleLink=0x0,\r
+ CardOperatingMode_Independent_422=CardOperatingMode_SingleLink,\r
+ CardOperatingMode_DualLink=0x1, \r
+ CardOperatingMode_StereoScopic_422=0x3, \r
+ CardOperatingMode_Dependent_422=CardOperatingMode_StereoScopic_422,/**< not used currently on epoch cards */\r
+};\r
+\r
+\r
+typedef enum _EPreDefinedColorSpaceMatrix\r
+{\r
+ UNITY_MATRIX=0,\r
+ MATRIX_709_CGR=1,\r
+ MATRIX_RGB_TO_YUV_709_CGR=MATRIX_709_CGR,\r
+ MATRIX_709=2,\r
+ MATRIX_RGB_TO_YUV_709=MATRIX_709,\r
+ RGB_FULL_RGB_SMPTE=3,\r
+ MATRIX_601_CGR=4,\r
+ MATRIX_RGB_TO_YUV_601_CGR=MATRIX_601_CGR,\r
+ MATRIX_601=5,\r
+ MATRIX_RGB_TO_YUV_601=MATRIX_601,\r
+ MATRIX_SMPTE_274_CGR=6,\r
+ MATRIX_SMPTE_274=7,\r
+ MATRIX_VUYA=8,\r
+ UNITY_MATRIX_INPUT=9,\r
+ MATRIX_YUV_TO_RGB_709_CGR=10,\r
+ MATRIX_YUV_TO_RGB_709=11,\r
+ RGB_SMPTE_RGB_FULL=12,\r
+ MATRIX_YUV_TO_RGB_601_CGR=13,\r
+ MATRIX_YUV_TO_RGB_601=14,\r
+ MATRIX_USER_DEFINED=15,\r
+}EPreDefinedColorSpaceMatrix;\r
+\r
+#ifndef BLUE_LINUX_CODE\r
+/**< \r
+@brief this enumerator contains the status of the driver video/hanc fifo \r
+*/\r
+typedef enum\r
+{\r
+ BLUE_FIFO_CLOSED=0, /**< Fifo has not been initialized*/\r
+ BLUE_FIFO_STARTING=1,/**< Fifo is starting */\r
+ BLUE_FIFO_RUNNING=2,/**< Fifo is running */\r
+ BLUE_FIFO_STOPPING=3,/**< Fifo is in the process of stopping */\r
+ BLUE_FIFO_PASSIVE=5,/**< Fifo is currently stopped or not active*/\r
+}BlueVideoFifoStatus;\r
+#endif\r
+\r
+/**<\r
+@brief use this enumerator to define the data range of the RGB video frame data.\r
+*/\r
+typedef enum _ERGBDataRange\r
+{\r
+ CGR_RANGE=0, /**< In this mode RGB data expected by the user (capture) or provided by the user(playback) is \r
+ in the range of 0-255(8 bit) or 0-1023(10 bit0).<br/>\r
+ driver uses this information to choose the appropriate YUV conversion matrices.*/\r
+ SMPTE_RANGE=1 /**< In this mode RGB data expected by the user (capture) or provided by the user(playback) is \r
+ in the range of 16-235(8 bit) or 64-940(10 bit0).<br/>\r
+ driver uses this information to choose the appropriate YUV conversion matrices.*/\r
+}ERGBDataRange;\r
+\r
+typedef enum _EHD_XCONNECTOR_MODE\r
+{\r
+ SD_SDI=1,\r
+ HD_SDI=2\r
+}EHD_XCONNECTOR_MODE;\r
+\r
+/**< @brief this enumerator can be used to set the image orienatation of the frame. \r
+*/\r
+typedef enum _EImageOrientation\r
+{\r
+ ImageOrientation_Normal=0, /**< in this configuration , frame is top to bottom and left to right */\r
+ ImageOrientation_VerticalFlip=1, /**< in this configuration frame is bottom to top and left to right*/\r
+ ImageOrientation_Invalid=2, \r
+}EImageOrientation;\r
+\r
+/**< @brief this enumerator defines the reference signal source that can be used with bluefish cards\r
+*/\r
+typedef enum _EBlueGenlockSource\r
+{\r
+ BlueGenlockBNC=0, /**< Genlock is used as reference signal source */\r
+ BlueSDIBNC=0x10000, /**< SDI input B is used as reference signal source */\r
+ BlueSDI_B_BNC=BlueSDIBNC,\r
+ BlueSDI_A_BNC=0x20000,/**< SDI input A is used as reference signal source */\r
+ BlueAnalog_BNC=0x40000, /**< Analog input is used as reference signal source */\r
+ BlueSoftware=0x80000,\r
+}EBlueGenlockSource;\r
+\r
+\r
+typedef enum _EBlueVideoChannel\r
+{\r
+ BLUE_VIDEOCHANNEL_A=0,\r
+ BLUE_VIDEO_OUTPUT_CHANNEL_A=BLUE_VIDEOCHANNEL_A,\r
+ \r
+ BLUE_VIDEOCHANNEL_B=1,\r
+ BLUE_VIDEO_OUTPUT_CHANNEL_B=BLUE_VIDEOCHANNEL_B,\r
+ \r
+ BLUE_VIDEOCHANNEL_C=2,\r
+ BLUE_VIDEO_INPUT_CHANNEL_A=BLUE_VIDEOCHANNEL_C,\r
+\r
+ BLUE_VIDEOCHANNEL_D=3,\r
+ BLUE_VIDEO_INPUT_CHANNEL_B=BLUE_VIDEOCHANNEL_D,\r
+\r
+ BLUE_VIDEOCHANNEL_E=4,\r
+ BLUE_VIDEO_INPUT_CHANNEL_C=BLUE_VIDEOCHANNEL_E,\r
+\r
+ BLUE_VIDEOCHANNEL_F=5,\r
+ BLUE_VIDEO_INPUT_CHANNEL_D=BLUE_VIDEOCHANNEL_F,\r
+\r
+ BLUE_VIDEOCHANNEL_G=6,\r
+ BLUE_VIDEO_OUTPUT_CHANNEL_C=BLUE_VIDEOCHANNEL_G,\r
+\r
+ BLUE_VIDEOCHANNEL_H=7,\r
+ BLUE_VIDEO_OUTPUT_CHANNEL_D=BLUE_VIDEOCHANNEL_H,\r
+ \r
+ BLUE_OUTPUT_MEM_MODULE_A=BLUE_VIDEO_OUTPUT_CHANNEL_A,\r
+ BLUE_OUTPUT_MEM_MODULE_B=BLUE_VIDEO_OUTPUT_CHANNEL_B,\r
+ BLUE_INPUT_MEM_MODULE_A=BLUE_VIDEO_INPUT_CHANNEL_A,\r
+ BLUE_INPUT_MEM_MODULE_B=BLUE_VIDEO_INPUT_CHANNEL_B,\r
+ //BLUE_JETSTREAM_SCALER_MODULE_0=0x10,\r
+ //BLUE_JETSTREAM_SCALER_MODULE_1=0x11,\r
+ //BLUE_JETSTREAM_SCALER_MODULE_2=0x12,\r
+ //BLUE_JETSTREAM_SCALER_MODULE_3=0x13,\r
+\r
+ BLUE_VIDEOCHANNEL_INVALID=30\r
+}EBlueVideoChannel;\r
+\r
+typedef enum _EBlueVideoRouting\r
+{\r
+ BLUE_VIDEO_LINK_INVALID=0,\r
+ BLUE_SDI_A_LINK1=4,\r
+ BLUE_SDI_A_LINK2=5,\r
+ BLUE_SDI_B_LINK1=6,\r
+ BLUE_SDI_B_LINK2=7,\r
+ BLUE_ANALOG_LINK1=8,\r
+ BLUE_ANALOG_LINK2=9,\r
+ BLUE_SDI_A_SINGLE_LINK=BLUE_SDI_A_LINK1,\r
+ BLUE_SDI_B_SINGLE_LINK=BLUE_SDI_B_LINK1,\r
+ BLUE_ANALOG_SINGLE_LINK=BLUE_ANALOG_LINK1\r
+\r
+}EBlueVideoRouting;\r
+\r
+typedef enum\r
+{\r
+ BLUE_FIFO_NULL_ATTRIBUTE=0x0,\r
+ BLUE_FIFO_ECHOPORT_ENABLED=0x1,\r
+ BLUE_FIFO_STEPMODE = 0x2,\r
+ BLUE_FIFO_LOOPMODE = 0x4\r
+}BlueVideoFifo_Attributes;\r
+\r
+typedef enum _BlueAudioOutputDest\r
+{\r
+ Blue_AnalogAudio_Output=0x0,\r
+ Blue_AES_Output=0x80000000,\r
+ Blue_Emb_Output=0x40000000,\r
+}BlueAudioOutputDest;\r
+\r
+\r
+/**<@brief this enumerator is not used need to be removed*/\r
+typedef enum _BlueAudioInputSource\r
+{\r
+ Blue_AES=0x10,\r
+ Blue_AnalogAudio=0x20,\r
+ Blue_SDIA_Embed=0x40,\r
+ Blue_SDIB_Embed=0x80,\r
+}BlueAudioInputSource;\r
+\r
+typedef enum _EBlueConnectorIdentifier\r
+{\r
+ BLUE_CONNECTOR_INVALID = -1,\r
+ \r
+ // BNC connectors in order from top to bottom of shield\r
+ BLUE_CONNECTOR_BNC_A = 0, // BNC closest to top of shield\r
+ BLUE_CONNECTOR_BNC_B,\r
+ BLUE_CONNECTOR_BNC_C,\r
+ BLUE_CONNECTOR_BNC_D,\r
+ BLUE_CONNECTOR_BNC_E,\r
+ BLUE_CONNECTOR_BNC_F,\r
+ BLUE_CONNECTOR_GENLOCK,\r
+ \r
+ BLUE_CONNECTOR_ANALOG_VIDEO_1 = 100,\r
+ BLUE_CONNECTOR_ANALOG_VIDEO_2,\r
+ BLUE_CONNECTOR_ANALOG_VIDEO_3,\r
+ BLUE_CONNECTOR_ANALOG_VIDEO_4,\r
+ BLUE_CONNECTOR_ANALOG_VIDEO_5,\r
+ BLUE_CONNECTOR_ANALOG_VIDEO_6,\r
+\r
+ BLUE_CONNECTOR_DVID_1 = 200,\r
+ BLUE_CONNECTOR_SDI_OUTPUT_A= BLUE_CONNECTOR_DVID_1,\r
+ BLUE_CONNECTOR_DVID_2,\r
+ BLUE_CONNECTOR_SDI_OUTPUT_B= BLUE_CONNECTOR_DVID_2,\r
+ BLUE_CONNECTOR_DVID_3,\r
+ BLUE_CONNECTOR_SDI_INPUT_A= BLUE_CONNECTOR_DVID_3,\r
+ BLUE_CONNECTOR_DVID_4,\r
+ BLUE_CONNECTOR_SDI_INPUT_B= BLUE_CONNECTOR_DVID_4,\r
+ BLUE_CONNECTOR_DVID_5,\r
+ BLUE_CONNECTOR_SDI_OUTPUT_C,\r
+ BLUE_CONNECTOR_SDI_OUTPUT_D,\r
+\r
+ BLUE_CONNECTOR_AES = 300,\r
+ BLUE_CONNECTOR_ANALOG_AUDIO_1,\r
+ BLUE_CONNECTOR_ANALOG_AUDIO_2,\r
+\r
+ BLUE_CONNECTOR_DVID_6,\r
+ BLUE_CONNECTOR_SDI_INPUT_C= BLUE_CONNECTOR_DVID_6,\r
+ BLUE_CONNECTOR_DVID_7,\r
+ BLUE_CONNECTOR_SDI_INPUT_D= BLUE_CONNECTOR_DVID_7,\r
+\r
+ //BLUE_CONNECTOR_RESOURCE_BLOCK=0x400,\r
+ //BLUE_CONNECTOR_JETSTREAM_SCALER_0=(BLUE_CONNECTOR_RESOURCE_BLOCK|BLUE_JETSTREAM_SCALER_MODULE_0),\r
+ //BLUE_CONNECTOR_JETSTREAM_SCALER_1=(BLUE_CONNECTOR_RESOURCE_BLOCK|BLUE_JETSTREAM_SCALER_MODULE_1),\r
+ //BLUE_CONNECTOR_JETSTREAM_SCALER_2=(BLUE_CONNECTOR_RESOURCE_BLOCK|BLUE_JETSTREAM_SCALER_MODULE_2),\r
+ //BLUE_CONNECTOR_JETSTREAM_SCALER_3=(BLUE_CONNECTOR_RESOURCE_BLOCK|BLUE_JETSTREAM_SCALER_MODULE_3),\r
+\r
+ //BLUE_CONNECTOR_OUTPUT_MEM_MODULE_A=(BLUE_CONNECTOR_RESOURCE_BLOCK|BLUE_OUTPUT_MEM_MODULE_A),\r
+ //BLUE_CONNECTOR_OUTPUT_MEM_MODULE_B=(BLUE_CONNECTOR_RESOURCE_BLOCK|BLUE_OUTPUT_MEM_MODULE_B),\r
+ //BLUE_CONNECTOR_INPUT_MEM_MODULE_A=(BLUE_CONNECTOR_RESOURCE_BLOCK|BLUE_INPUT_MEM_MODULE_A),\r
+ //BLUE_CONNECTOR_INPUT_MEM_MODULE_B=(BLUE_CONNECTOR_RESOURCE_BLOCK|BLUE_INPUT_MEM_MODULE_B),\r
+ //\r
+}EBlueConnectorIdentifier;\r
+\r
+typedef enum _EBlueConnectorSignalDirection\r
+{\r
+ BLUE_CONNECTOR_SIGNAL_INVALID=-1,\r
+ BLUE_CONNECTOR_SIGNAL_INPUT=0,\r
+ BLUE_CONNECTOR_SIGNAL_OUTPUT=1,\r
+}EBlueConnectorSignalDirection;\r
+\r
+typedef enum _EBlueConnectorProperty\r
+{\r
+ BLUE_INVALID_CONNECTOR_PROPERTY = -1,\r
+\r
+ //signal property\r
+ BLUE_CONNECTOR_PROP_INPUT_SIGNAL=0,\r
+ BLUE_CONNECTOR_PROP_OUTPUT_SIGNAL=1,\r
+\r
+ // Video output\r
+ BLUE_CONNECTOR_PROP_SDI = 0,\r
+ BLUE_CONNECTOR_PROP_YUV_Y,\r
+ BLUE_CONNECTOR_PROP_YUV_U,\r
+ BLUE_CONNECTOR_PROP_YUV_V,\r
+ BLUE_CONNECTOR_PROP_RGB_R,\r
+ BLUE_CONNECTOR_PROP_RGB_G,\r
+ BLUE_CONNECTOR_PROP_RGB_B,\r
+ BLUE_CONNECTOR_PROP_CVBS,\r
+ BLUE_CONNECTOR_PROP_SVIDEO_Y,\r
+ BLUE_CONNECTOR_PROP_SVIDEO_C,\r
+ \r
+ // Audio output\r
+ BLUE_CONNECTOR_PROP_AUDIO_AES = 0x2000,\r
+ BLUE_CONNECTOR_PROP_AUDIO_EMBEDDED,\r
+ BLUE_CONNECTOR_PROP_AUDIO_ANALOG,\r
+\r
+ \r
+ BLUE_CONNECTOR_PROP_SINGLE_LINK=0x3000,\r
+ BLUE_CONNECTOR_PROP_DUALLINK_LINK_1,\r
+ BLUE_CONNECTOR_PROP_DUALLINK_LINK_2,\r
+ BLUE_CONNECTOR_PROP_DUALLINK_LINK,\r
+\r
+ BLUE_CONNECTOR_PROP_STEREO_MODE_SIDE_BY_SIDE,\r
+ BLUE_CONNECTOR_PROP_STEREO_MODE_TOP_DOWN,\r
+ BLUE_CONNECTOR_PROP_STEREO_MODE_LINE_BY_LINE,\r
+\r
+}EBlueConnectorProperty;\r
+\r
+/*\r
+typedef enum _BLUE_AUDIOINPUT_SOURCE\r
+{\r
+ BLUE_AES_AUDIO_INPUT=0x10000,\r
+ BLUE_ANALOG_AUDIO_INPUT=0x20000,\r
+ BLUE_SDIA_AUDIO_INPUT=0x30000,\r
+ BLUE_SDIB_AUDIO_INPUT=0x40000\r
+}BLUE_AUDIOINPUT_SOURCE;\r
+*/\r
+/**\r
+@desc use the values in this enumerator for controlling card property\r
+*/\r
+typedef enum _EBlueCardProperty\r
+{\r
+ VIDEO_DUAL_LINK_OUTPUT=0,/**< Use this property to enable/diable cards dual link output property*/\r
+ VIDEO_DUAL_LINK_INPUT=1,/**< Use this property to enable/diable cards dual link input property*/\r
+ VIDEO_DUAL_LINK_OUTPUT_SIGNAL_FORMAT_TYPE=2, /**<Use this property to select signal format type that should be used \r
+ when dual link output is enabled. Possible values this property can\r
+ accept is defined in the enumerator EDualLinkSignalFormatType\r
+ */\r
+ VIDEO_DUAL_LINK_INPUT_SIGNAL_FORMAT_TYPE=3,/**< Use this property to select signal format type that should be used \r
+ when dual link input is enabled. Possible values this property can\r
+ accept is defined in the enumerator EDualLinkSignalFormatType\r
+ */\r
+ VIDEO_OUTPUT_SIGNAL_COLOR_SPACE=4,/**< Use this property to select color space of the signal when dual link output is set to \r
+ use 4:4:4/4:4:4:4 signal format type. Possible values this property can\r
+ accept is defined in the enumerator EConnectorSignalColorSpace\r
+ */\r
+ VIDEO_INPUT_SIGNAL_COLOR_SPACE=5,/**< Use this property to select color space of the signal when dual link input is set to \r
+ use 4:4:4/4:4:4:4 signal format type. Possible values this property can\r
+ accept is defined in the enumerator EConnectorSignalColorSpace\r
+ */\r
+ VIDEO_MEMORY_FORMAT=6, /**<Use this property to ser the pixel format that should be used by \r
+ video output channels. Possible values this property can\r
+ accept is defined in the enumerator EMemoryFormat\r
+ */ \r
+ VIDEO_MODE=7,/**<Use this property to set the video mode that should be used by \r
+ video output channels. Possible values this property can\r
+ accept is defined in the enumerator EVideoMode\r
+ */ //\r
+ VIDEO_UPDATE_TYPE=8,/**<Use this property to set the framestore update type that should be used by \r
+ video output channels. Card can update video framestore at field/frame rate.\r
+ Possible values this property can accept is defined in the enumerator EUpdateMethod\r
+ */ \r
+ VIDEO_ENGINE=9,\r
+ VIDEO_IMAGE_ORIENTATION=10,/**< Use this property to set the image orientation of the video output framestore.\r
+ This property must be set before frame is transferred to on card memory using \r
+ DMA transfer functions(system_buffer_write_async). It is recommended to use \r
+ vertical flipped image orientation only on RGB pixel formats.\r
+ Possible values this property can accept is defined in the enumerator EImageOrientation\r
+ */\r
+ VIDEO_USER_DEFINED_COLOR_MATRIX=11,\r
+ VIDEO_PREDEFINED_COLOR_MATRIX=12,//EPreDefinedColorSpaceMatrix\r
+ VIDEO_RGB_DATA_RANGE=13, /**< Use this property to set the data range of RGB pixel format, user can specify \r
+ whether the RGB data is in either SMPTE or CGR range. Based on this information \r
+ driver is decide which color matrix should be used.\r
+ Possible values this property can accept is defined in the enumerator ERGBDataRange\r
+ For SD cards this property will set the input and the output to the specified value.\r
+ For Epoch/Create/SuperNova cards this property will only set the output to the specified value.\r
+ For setting the input on Epoch/Create/SuperNova cards see EPOCH_VIDEO_INPUT_RGB_DATA_RANGE*/\r
+ VIDEO_KEY_OVER_BLACK=14,/**< this property is deprecated and no longer supported on epoch/create range of cards.*/ \r
+ VIDEO_KEY_OVER_INPUT_SIGNAL=15,\r
+ VIDEO_SET_DOWN_CONVERTER_VIDEO_MODE=16,/**< this property is deprecated and no longer supported on epoch/create range of cards.\r
+ EHD_XCONNECTOR_MODE\r
+ */\r
+ VIDEO_LETTER_BOX=17,\r
+ VIDEO_PILLOR_BOX_LEFT=18,\r
+ VIDEO_PILLOR_BOX_RIGHT=19,\r
+ VIDEO_PILLOR_BOX_TOP=20,\r
+ VIDEO_PILLOR_BOX_BOTTOM=21,\r
+ VIDEO_SAFE_PICTURE=22,\r
+ VIDEO_SAFE_TITLE=23,\r
+ VIDEO_INPUT_SIGNAL_VIDEO_MODE=24,/**< Use this property to retreive the video input signal information on the \r
+ default video input channel used by that SDK object.\r
+ */\r
+ VIDEO_COLOR_MATRIX_MODE=25,\r
+ VIDEO_OUTPUT_MAIN_LUT=26,/**< this property is deprecated and no longer supported on epoch/create range of cards.*/\r
+ VIDEO_OUTPUT_AUX_LUT=27,/**< this property is deprecated and no longer supported on epoch/create range of cards.*/\r
+ VIDEO_LTC=28, /**< this property is deprecated and no longer supported on epoch/create range of cards. To retreive/ outputting \r
+ LTC information you can use the HANC decoding and encoding functions.*/\r
+ VIDEO_GPIO=29, \r
+ VIDEO_PLAYBACK_FIFO_STATUS=30, /**< This property can be used to retreive how many frames are bufferd in the video playback fifo.*/\r
+ RS422_RX_BUFFER_LENGTH=31,\r
+ RS422_RX_BUFFER_FLUSH=32,\r
+ VIDEO_INPUT_UPDATE_TYPE=33,/**< Use this property to set the framestore update type that should be used by \r
+ video input channels. Card can update video framestore at field/frame rate.\r
+ Possible values this property can accept is defined in the enumerator EUpdateMethod\r
+ */ \r
+ VIDEO_INPUT_MEMORY_FORMAT=34,/**<Use this property to set the pixel format that should be used by \r
+ video input channels when it is capturing a frame from video input source. \r
+ Possible values this property can accept is defined in the enumerator EMemoryFormat\r
+ */ \r
+ VIDEO_GENLOCK_SIGNAL=35,/**< Use this property to retrieve video signal of the reference source that is used by the card.\r
+ This can also be used to select the reference signal source that should be used. \r
+ */\r
+\r
+ AUDIO_OUTPUT_PROP=36, /**< this can be used to route PCM audio data onto respective audio output connectors. */\r
+ AUDIO_CHANNEL_ROUTING=AUDIO_OUTPUT_PROP,\r
+ AUDIO_INPUT_PROP=37,/**< Use this property to select audio input source that should be used when doing \r
+ an audio capture.\r
+ Possible values this property can accept is defined in the enumerator Blue_Audio_Connector_Type.\r
+ */\r
+ VIDEO_ENABLE_LETTERBOX=38,\r
+ VIDEO_DUALLINK_OUTPUT_INVERT_KEY_COLOR=39,/**< this property is deprecated and no longer supported on epoch/create range of cards.*/\r
+ VIDEO_DUALLINK_OUTPUT_DEFAULT_KEY_COLOR=40,/**< this property is deprecated and no longer supported on epoch/create range of cards.*/\r
+ VIDEO_BLACKGENERATOR=41, /**< Use this property to control the black generator on the video output channel.\r
+ */\r
+ VIDEO_INPUTFRAMESTORE_IMAGE_ORIENTATION=42,\r
+ VIDEO_INPUT_SOURCE_SELECTION=43, /**< The video input source that should be used by the SDK default video input channel \r
+ can be configured using this property. \r
+ Possible values this property can accept is defined in the enumerator EBlueConnectorIdentifier.\r
+ */\r
+ DEFAULT_VIDEO_OUTPUT_CHANNEL=44,\r
+ DEFAULT_VIDEO_INPUT_CHANNEL=45,\r
+ VIDEO_REFERENCE_SIGNAL_TIMING=46,\r
+ EMBEDEDDED_AUDIO_OUTPUT=47, /**< the embedded audio output property can be configured using this property.\r
+ Possible values this property can accept is defined in the enumerator EBlueEmbAudioOutput.\r
+ */\r
+ EMBEDDED_AUDIO_OUTPUT=EMBEDEDDED_AUDIO_OUTPUT,\r
+ VIDEO_PLAYBACK_FIFO_FREE_STATUS=48, /**< this will return the number of free buffer in the fifo. \r
+ If the video engine is framestore this will give you the number of buffers that the framestore mode \r
+ can you use with that video output channel.*/\r
+ VIDEO_IMAGE_WIDTH=49, /**< only for selective DMA of a smaller image onto video output raster; size in bytes (not pixels) */\r
+ VIDEO_IMAGE_HEIGHT=50, /**< only for selective DMA of a smaller image onto video output raster; number of lines */\r
+ VIDEO_SCALER_MODE=51,\r
+ AVAIL_AUDIO_INPUT_SAMPLE_COUNT=52,\r
+ VIDEO_PLAYBACK_FIFO_ENGINE_STATUS=53, /**< this will return the playback fifo status. The values returned by this property \r
+ are defined in the enumerator BlueVideoFifoStatus.\r
+ */ \r
+ VIDEO_CAPTURE_FIFO_ENGINE_STATUS=54, /**< this will return the capture fifo status. \r
+ The values returned by this property are defined in the enumerator BlueVideoFifoStatus.\r
+ */\r
+ VIDEO_2K_1556_PANSCAN=55,/**< this property is deprecated and no longer supported on epoch/create range of cards.*/\r
+ VIDEO_OUTPUT_ENGINE=56, /**< Use this property to set the video engine of the video output channels.\r
+ Possible values this property can accept is defined in the enumerator EEngineMode \r
+ */\r
+ VIDEO_INPUT_ENGINE=57, /**< Use this property to set the video engine of the video input channels.\r
+ Possible values this property can accept is defined in the enumerator EEngineMode \r
+ */\r
+ BYPASS_RELAY_A_ENABLE=58, /**< use this property to control the bypass relay on SDI A output.*/\r
+ BYPASS_RELAY_B_ENABLE=59, /**< use this property to control the bypass relay on SDI B output.*/\r
+ VIDEO_PREMULTIPLIER=60,\r
+ VIDEO_PLAYBACK_START_TRIGGER_POINT=61, /**< Using this property you can instruct the driver to start the \r
+ video playback fifo on a particular video output field count.\r
+ Normally video playback fifo is started on the next video interrupt after \r
+ the video_playback_start call.*/\r
+ GENLOCK_TIMING=62,\r
+ VIDEO_IMAGE_PITCH=63,\r
+ VIDEO_IMAGE_OFFSET=64,\r
+ VIDEO_INPUT_IMAGE_WIDTH=65,\r
+ VIDEO_INPUT_IMAGE_HEIGHT=66,\r
+ VIDEO_INPUT_IMAGE_PITCH=67,\r
+ VIDEO_INPUT_IMAGE_OFFSET=68,\r
+ TIMECODE_RP188=69, /**< this property is deprecated and no longer supported on epoch/create range of cards.*/\r
+ BOARD_TEMPERATURE=70,/**<This property can be used to retreive the Board temperature, core temperature and \r
+ RPM of the Fan on epoch/create range of cards.<br/>\r
+ Use the macro's EPOCH_CORE_TEMP ,EPOCH_BOARD_TEMP and EPOCH_FAN_SPEED\r
+ to retireive the respective values from the property.<br/> \r
+ */ \r
+ MR2_ROUTING=71, /**< Use this property to control the MR2 functionlity on epoch range of cards.\r
+ Use the following macro with this property.<br/>\r
+ 1) EPOCH_SET_ROUTING --> for setting the source, destination and link type of the routing connection,<br/>\r
+ 2) EPOCH_ROUTING_GET_SRC_DATA --> for getting the routing source.<br/>\r
+ The possible source and destination elements supported by the routing matrix are defined in the \r
+ enumerator EEpochRoutingElements.<br/>\r
+ */\r
+ SAVEAS_POWERUP_SETTINGS=72,\r
+ VIDEO_CAPTURE_AVAIL_BUFFER_COUNT=73, /**< This property will return the number of captured frame avail in the fifo at present.\r
+ If the video engine is framestore this will give you the number of buffers that the framestore mode \r
+ can you use with that video input channel */\r
+ EPOCH_APP_WATCHDOG_TIMER=74,/**< Use this property to control the application watchdog timer functionality. \r
+ Possible values this property can accept is defined in the enumerator enum_blue_app_watchdog_timer_prop.\r
+ */ \r
+ EPOCH_RESET_VIDEO_INPUT_FIELDCOUNT=75, /**< Use this property to reset the field count on both the \r
+ video channels of the card. You can pass the value that \r
+ should be used as starting fieldcount after the reset.\r
+ This property can be used to keep track sync between left and right signal \r
+ when you are capturing in stereoscopic mode.\r
+ */\r
+ EPOCH_RS422_PORT_FLAGS=76,/**< Use this property to set the master/slave property of the RS422 ports.\r
+ Possible values this property can accept is defined in the enumerator enum_blue_rs422_port_flags.\r
+ */\r
+ EPOCH_DVB_ASI_INPUT_TIMEOUT=77, /**< Current DVB ASI input firmware does not support this property in hardware,\r
+ this is a future addition.\r
+ Use this property to set the timeout of the DVB ASI input stream. \r
+ timeout is specified in milliseconds.If hardware did not get the required no of \r
+ packets( specified using EPOCH_DVB_ASI_INPUT_LATENCY_PACKET_COUNT)\r
+ within the period specified in the timeout, hardware would generate a video input interrupt\r
+ and it would be safe to read the dvb asi packet from the card.\r
+ */\r
+ EPOCH_DVB_ASI_INPUT_PACKING_FORMAT=78, /**< Use this property to specify the packing method that should be used \r
+ when capturing DVB ASI packets.\r
+ The possible packing methods are defined in the enumerator enum_blue_dvb_asi_packing_format.*/\r
+ 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 \r
+ notifies the driver of available data using video input interrupt.<br/>\r
+ */\r
+ VIDEO_PLAYBACK_FIFO_CURRENT_FRAME_UNIQUEID=80, /**< This property can be used to query the current unique id of \r
+ the frame that is being displayed currently by the video output channel. This \r
+ property is only usefull in the context of video fifo.<br/>\r
+ You get a uniqueid when you present a frame using video_playback_present function.\r
+ Alternative ways to get this information are <br/>\r
+ 1) using blue_wait_video_sync_async , the member current_display_frame_uniqueid contains the same information<br/>\r
+ 2) using wait_video_output_sync function on epoch cards, if \r
+ the flag UPD_FMT_FLAG_RETURN_CURRENT_UNIQUEID is appended with \r
+ either UPD_FMT_FRAME or UPD_FMT_FIELD , the return value of \r
+ the function wait_video_output_sync woukd contain the current display\r
+ frames uniqueid.<br/>*/\r
+\r
+ EPOCH_DVB_ASI_INPUT_GET_PACKET_SIZE = 81,/**< use this property to get the size of each asi transport stream packet\r
+ (whether it is 188 or 204.*/\r
+ EPOCH_DVB_ASI_INPUT_PACKET_COUNT = 82,/**< this property would give you the number of packets captured during the last \r
+ interrupt time frame. For ASI interrupt is generated if \r
+ hardware captured the requested number of packets or it hit the \r
+ timeout value\r
+ */\r
+ EPOCH_DVB_ASI_INPUT_LIVE_PACKET_COUNT = 83,/**< this property would give you the number of packets that\r
+ is being captured during the current interrupt time frame. \r
+ For ASI interrupt is generated when has hardware captured the \r
+ requested number of packets specified using \r
+ EPOCH_DVB_ASI_INPUT_LATENCY_PACKET_COUNT property.\r
+ */\r
+ EPOCH_DVB_ASI_INPUT_AVAIL_PACKETS_IN_FIFO = 84,/**< This property would return the number of ASI packets \r
+ that has been captured into card memory , that\r
+ can be retreived.\r
+ This property is only valid when the video input \r
+ channel is being used in FIFO modes.\r
+ */\r
+ EPOCH_ROUTING_SOURCE_VIDEO_MODE=VIDEO_SCALER_MODE,/**< Use this property to change the video mode that scaler should be set to.\r
+ USe the macro SET_EPOCH_SCALER_MODE when using this property, as this macro \r
+ would allow you to select which one of the scaler blocks video mode should be updated.\r
+ */\r
+ EPOCH_AVAIL_VIDEO_SCALER_COUNT=85,/**< This property would return available scaler processing block available on the card.*/\r
+ EPOCH_ENUM_AVAIL_VIDEO_SCALERS_ID=86,/**< You can enumerate the available scaler processing block available on the card using this property.\r
+ You pass in the index value as input parameter to get the scaler id that should be used.\r
+ Applications are recommended to use this property to query the available scaler id's \r
+ rather than hardcoding a scaler id. As the scaler id's that you can use would vary based on\r
+ whether you have VPS0 or VPS1 boards loaded on the base board.\r
+ */\r
+ EPOCH_ALLOCATE_VIDEO_SCALER=87, /**< This is just a helper property for applications who need to use more than one scaler\r
+ and just wants to query the next available scaler from the driver pool, rather than hardcoding \r
+ each thread to use a particular scaler.\r
+ Allocate a free scaler from the available scaler pool.\r
+ User has got the option to specify whether they want to use the scaler for \r
+ use with a single link or dual link stream */\r
+ EPOCH_RELEASE_VIDEO_SCALER=88, /**< Release the previously allocated scaler processing block back to the free pool.\r
+ If the user passes in a value of 0, all the allocated scaler blocks in the driver are released.\r
+ So effectively\r
+ */\r
+ EPOCH_DMA_CARDMEMORY_PITCH=89,\r
+ EPOCH_OUTPUT_CHANNEL_AV_OFFSET=90,\r
+ EPOCH_SCALER_CHANNEL_MUX_MODE=91,\r
+ EPOCH_INPUT_CHANNEL_AV_OFFSET=92,\r
+ EPOCH_AUDIOOUTPUT_MANUAL_UCZV_GENERATION=93,/* ASI firmware only */\r
+ EPOCH_SAMPLE_RATE_CONVERTER_BYPASS=94,\r
+ EPOCH_GET_PRODUCT_ID=95, /* returns the enum for the firmware type EEpochFirmwareProductID */\r
+ EPOCH_GENLOCK_IS_LOCKED=96,\r
+ EPOCH_DVB_ASI_OUTPUT_PACKET_COUNT=97, /* ASI firmware only */\r
+ EPOCH_DVB_ASI_OUTPUT_BIT_RATE=98, /* ASI firmware only */\r
+ EPOCH_DVB_ASI_DUPLICATE_OUTPUT_A=99, /* ASI firmware only */\r
+ EPOCH_DVB_ASI_DUPLICATE_OUTPUT_B=100, /* ASI firmware only */\r
+ EPOCH_SCALER_HORIZONTAL_FLIP=101, /* see SideBySide_3D sample application */\r
+ EPOCH_CONNECTOR_DIRECTION=102, /* see application notes */\r
+ EPOCH_AUDIOOUTPUT_VALIDITY_BITS=103, /* ASI firmware only */\r
+ EPOCH_SIZEOF_DRIVER_ALLOCATED_MEMORY=104, /* video buffer allocated in Kernel space; accessible in userland via system_buffer_map() */\r
+ INVALID_VIDEO_MODE_FLAG=105, /* returns the enum for VID_FMT_INVALID that this SDK/Driver was compiled with;\r
+ it changed between 5.9.x.x and 5.10.x.x driver branch and has to be handled differently for\r
+ each driver if the application wants to use the VID_FMT_INVALID flag and support both driver branches */\r
+ EPOCH_VIDEO_INPUT_VPID=106, /* returns the VPID for the current video input signal */\r
+ EPOCH_LOW_LATENCY_DMA=107, /* not fully supported yet */\r
+ EPOCH_VIDEO_INPUT_RGB_DATA_RANGE=108,\r
+\r
+ VIDEO_CARDPROPERTY_INVALID=1000\r
+}EBlueCardProperty;\r
+\r
+\r
+typedef enum _EAnalogConnectorSignalType\r
+{\r
+ ANALOG_OUTPUTSIGNAL_CVBS_Y_C=1,\r
+ ANALOG_OUTPUTSIGNAL_COMPONENT=2,\r
+ ANALOG_OUTPUTSIGNAL_RGB=4\r
+}EAnalogConnectorSignalType;\r
+\r
+/**<\r
+@brief Use this enumerator to set the analog video signal types and connectors.\r
+*/\r
+typedef enum _EAnalogInputConnectorType \r
+{\r
+/* Composite input */\r
+ ANALOG_VIDEO_INPUT_CVBS_AIN1=0x00, /**<only available on Mini COAX */\r
+ ANALOG_VIDEO_INPUT_CVBS_AIN2=0x01, /**<available on both Mini COAX and Mini DIN*/\r
+ ANALOG_VIDEO_INPUT_CVBS_AIN3=0x02, /**<available on both Mini COAX and Mini DIN*/\r
+ ANALOG_VIDEO_INPUT_CVBS_AIN4=0x03, /**<only available on Mini COAX */\r
+ ANALOG_VIDEO_INPUT_CVBS_AIN5=0x04, /**<only available on Mini COAX */\r
+ ANALOG_VIDEO_INPUT_CVBS_AIN6=0x05, /**<available on both Mini COAX and Mini DIN */\r
+\r
+/*svideo input*/\r
+//Y_C is a synonym for svideo\r
+ ANALOG_VIDEO_INPUT_Y_C_AIN1_AIN4=0x06, /**<only available on Mini COAX*/\r
+ ANALOG_VIDEO_INPUT_Y_C_AIN2_AIN5=0x07, /**<only available on Mini COAX*/\r
+ ANALOG_VIDEO_INPUT_Y_C_AIN3_AIN6=0x08, /**<available on both Mini COAX and Mini DIN*/\r
+\r
+/*YUV input*/\r
+ ANALOG_VIDEO_INPUT_YUV_AIN1_AIN4_AIN5=0x09, /**<only available on Mini COAX*/\r
+ ANALOG_VIDEO_INPUT_YUV_AIN2_AIN3_AIN6=0x0a, /**<available on both Mini COAX and Mini DIN*/\r
+ ANALOG_VIDEO_INPUT_USE_SDI_A=0x6F, \r
+ ANALOG_VIDEO_INPUT_USE_SDI=0x7F,\r
+ GENERIC_ANALOG_VIDEO_SOURCE=0x8F,\r
+ ANALOG_VIDEO_INPUT_USE_SDI_B=ANALOG_VIDEO_INPUT_USE_SDI\r
+}EAnalogInputConnectorType;\r
+\r
+\r
+typedef enum {\r
+ ANALOG_VIDEO_INPUT_CONNECTOR,//EAnalogInputConnectorType\r
+ ANALOG_VIDEO_INPUT_PED,\r
+ ANALOG_VIDEO_INPUT_BRIGHTNESS,\r
+ ANALOG_VIDEO_INPUT_HUE,\r
+ ANALOG_VIDEO_INPUT_LUMA_GAIN,\r
+ ANALOG_VIDEO_INPUT_CHROMA_GAIN,\r
+ ANALOG_VIDEO_INPUT_AUTO_GAIN,\r
+ ANALOG_VIDEO_INPUT_LOAD_DEFAULT_SETTING, \r
+ ANALOG_VIDEO_OUTPUT_PED,\r
+ ANALOG_VIDEO_OUTPUT_BRIGHTNESS,\r
+ ANALOG_VIDEO_OUTPUT_HUE,\r
+ ANALOG_VIDEO_OUTPUT_LUMA_GAIN,\r
+ ANALOG_VIDEO_OUTPUT_CHROMA_GAIN, \r
+ ANALOG_VIDEO_OUTPUT_SHARPNESS,\r
+ ANALOG_VIDEO_OUTPUT_AUTO_GAIN,\r
+ ANALOG_VIDEO_OUTPUT_LOAD_DEFAULT_SETTING,\r
+ ANALOG_VIDEO_OUTPUT_SIGNAL_TYPE,//_EAnalogConnectorSignalType\r
+ ANALOG_LOAD_BLUEFISH_DEFAULT_SETTING,\r
+ ANALOG_SET_AS_POWERUP_SETTINGS,\r
+ ANALOG_LOAD_POWERUP_SETTINGS,\r
+ ANALOG_CONNECTOR_STATUS\r
+} AnalogCard_Property;\r
+\r
+typedef struct {\r
+ BLUE_INT32 inputConnector; //ANALOG_VIDEO_INPUT_CONNECTOR, EAnalogInputConnectorType\r
+ BLUE_INT32 inputPed; //ANALOG_VIDEO_INPUT_PED,\r
+ BLUE_INT32 inputBrightness; //ANALOG_VIDEO_INPUT_BRIGHTNESS,\r
+ BLUE_INT32 inputHue; //ANALOG_VIDEO_INPUT_HUE,\r
+ BLUE_INT32 inputLumaGain; //ANALOG_VIDEO_INPUT_LUMA_GAIN,\r
+ BLUE_INT32 inputChromaGain; //ANALOG_VIDEO_INPUT_CHROMA_GAIN,\r
+ BLUE_INT32 inputAutoGain; //ANALOG_VIDEO_INPUT_AUTO_GAIN,\r
+ BLUE_INT32 outputPed; //ANALOG_VIDEO_OUTPUT_PED,\r
+ BLUE_INT32 outputBrightness; //ANALOG_VIDEO_OUTPUT_BRIGHTNESS,\r
+ BLUE_INT32 outputHue; //ANALOG_VIDEO_OUTPUT_HUE,\r
+ BLUE_INT32 outputYGain; //ANALOG_VIDEO_OUTPUT_Y_GAIN,\r
+ BLUE_INT32 outputUGain; //ANALOG_VIDEO_OUTPUT_U_GAIN,\r
+ BLUE_INT32 outputVGain; //ANALOG_VIDEO_OUTPUT_V_GAIN,\r
+ BLUE_INT32 outputSharpness; //ANALOG_VIDEO_OUTPUT_SHARPNESS,\r
+ BLUE_INT32 outputAutoGain; //ANALOG_VIDEO_OUTPUT_AUTO_GAIN,\r
+ BLUE_INT32 outputSignalTypes; //EAnalogConnectorSignalType\r
+}AnalogCardState;\r
+\r
+//----------------------------------------------------------------------------------------------------\r
+/**< brief Used to determine how video interrupts are handled*/\r
+typedef enum _EEngineMode\r
+{\r
+ VIDEO_ENGINE_FRAMESTORE=0, /**< framestore engine. In this mode user is responsible for \r
+ schduling a capture or playback after waiting for the \r
+ respective video sync;s*/\r
+ VIDEO_ENGINE_PLAYBACK=1, /**< Playback engine. In this mode there is a driver FIFO, which \r
+ is reponisble for scheudling a frame for playback.\r
+ User just adds video frames into the fifo.*/\r
+ VIDEO_ENGINE_CAPTURE=2, /**< Capture engine In this mode there is a driver FIFO, which \r
+ is reponisble for scheudling a frame for capture.\r
+ User just retreives video frames from the FIFO.*/\r
+ VIDEO_ENGINE_PAGEFLIP=3, /**< not supported any more */\r
+ VIDEO_ENGINE_DUPLEX=4, /**< Full Duplex video. This is a FIFO mode. Use this mode if you want \r
+ to capture and playback at the same time.*/\r
+ VIDEO_ENGINE_INVALID\r
+} EEngineMode;\r
+\r
+/**< use this enumerator for controlling emb audio output properties using the \r
+ property EMBEDDED_AUDIO_OUTPUT. \r
+*/\r
+typedef enum _EBlueEmbAudioOutput\r
+{\r
+ blue_emb_audio_enable=0x1, // Switches off/on the whole HANC output from connecotrs associated with the channel\r
+ blue_auto_aes_to_emb_audio_encoder=0x2, //control whether the auto aes to emb thread should be running or not.\r
+ blue_emb_audio_group1_enable=0x4, /**< enables group1(ch 0- 3) emb audio */\r
+ blue_emb_audio_group2_enable=0x8, /**< enables group2(ch 4- 7) emb audio */\r
+ blue_emb_audio_group3_enable=0x10, /**< enables group3(ch 8- 11) emb audio */\r
+ blue_emb_audio_group4_enable=0x20, /**< enables group4(ch 12- 16) emb audio */\r
+ blue_enable_hanc_timestamp_pkt = 0x40\r
+}EBlueEmbAudioOutput;\r
+\r
+\r
+/**< Not used any more */\r
+typedef enum _EBufferTarget\r
+{\r
+ BUFFER_TARGET_VIDEO=0, // Generic R/W DMA\r
+ BUFFER_TARGET_AUDIO, // Special processing required for audio\r
+ BUFFER_TARGET_VIDEO_8BIT, // Special R/W DMA utilising 8 bit aperture\r
+ BUFFER_TARGET_VIDEO_HALF, // Special R/W DMA every second line (currently unused)\r
+ BUFFER_TARGET_VIDEO_OUT, // Updates video out register on DMA completion for write \r
+ BUFFER_TARGET_INVALID\r
+} EBufferTarget;\r
+\r
+#define BUFFER_TYPE_VIDEO (0)\r
+#define BUFFER_TYPE_AUDIO (1)\r
+#define BUFFER_TYPE_VIDEO_8BIT (2) // use this when assigning a buffer to indicate DMA from aperture!\r
+#define BUFFER_TYPE_VIDEO_OUT (3) // On DMA start set video output address to DMA target\r
+#define BUFFER_TYPE_VIDEO_HALF (4) // DMA every second line...\r
+\r
+// Buffer identifiers\r
+#define BUFFER_ID_AUDIO_IN (0)\r
+#define BUFFER_ID_AUDIO_OUT (1)\r
+#define BUFFER_ID_VIDEO0 (2)\r
+#define BUFFER_ID_VIDEO1 (3)\r
+#define BUFFER_ID_VIDEO2 (4)\r
+#define BUFFER_ID_VIDEO3 (5)\r
+\r
+//#define BUFFER_ID_USER_BASE (6)\r
+\r
+\r
+\r
+#define VIDEO_BORDER_TOP (0x10000000)\r
+#define VIDEO_BORDER_BOTTOM (0x20000000)\r
+#define VIDEO_BORDER_LEFT (0x40000000)\r
+#define VIDEO_BORDER_RIGHT (0x80000000)\r
+\r
+typedef struct _AnalogCardPropStruct\r
+{\r
+ BLUE_UINT32 VideoChannel;\r
+ BLUE_INT32 prop;\r
+ BLUE_INT32 value;\r
+ BLUE_INT32 minValue;\r
+ BLUE_INT32 maxValue;\r
+ BLUE_INT32 bReadFlag;\r
+}AnalogCardPropStruct;\r
+\r
+typedef enum _EConnectorSignalFormatType\r
+{\r
+ Signal_Type_4444 =1,\r
+ Signal_Type_4224 =0,\r
+ Signal_Type_422=2\r
+}EConnectorSignalFormatType;\r
+\r
+typedef enum _EDMADirection\r
+{\r
+ DMA_WRITE=0,\r
+ DMA_READ=1,\r
+ DMA_INVALID=2\r
+}EDMADirection; \r
+\r
+\r
+typedef enum _MatrixColType\r
+{\r
+ COL_BLUE_PB=0,\r
+ COL_RED_PR=1,\r
+ COL_GREEN_Y=2,\r
+ COL_KEY=3\r
+}MatrixColType;\r
+\r
+\r
+\r
+\r
+/**< Bits defining supported features that can be used with VideoFeature_struct*/\r
+#define VIDEO_CAPS_INPUT_SDI (0x00000001) /**< Capable of input of SDI Video */\r
+#define VIDEO_CAPS_OUTPUT_SDI (0x00000002) /**< Capable of output of SDI Video */\r
+#define VIDEO_CAPS_INPUT_COMP (0x00000004) /**< Capable of capturing Composite Video input */\r
+#define VIDEO_CAPS_OUTPUT_COMP (0x00000008) /**< Capable of capturing Composite Video output */\r
+\r
+#define VIDEO_CAPS_INPUT_YUV (0x00000010) /**< Capable of capturing Component Video input */\r
+#define VIDEO_CAPS_OUTPUT_YUV (0x00000020) /**< Capable of capturing Component Video output */\r
+#define VIDEO_CAPS_INPUT_SVIDEO (0x00000040) /**< Capable of capturing SVideo input */\r
+#define VIDEO_CAPS_OUTPUT_SVIDEO (0x00000080) /**< Capable of capturing SVideo output */\r
+\r
+#define VIDEO_CAPS_GENLOCK (0x00000100) /**< Able to adjust Vert & Horiz timing */\r
+#define VIDEO_CAPS_VERTICAL_FLIP (0x00000200) /**< Able to flip rasterisation */\r
+#define VIDEO_CAPS_KEY_OUTPUT (0x00000400) /**< Video keying output capable */\r
+#define VIDEO_CAPS_4444_OUTPUT (0x00000800) /**< Capable of outputting 4444 (dual link) */\r
+\r
+#define VIDEO_CAPS_DUALLINK_INPUT (0x00001000) /**< Dual Link input */\r
+#define VIDEO_CAPS_INTERNAL_KEYER (0x00002000) /**< Has got an internal Keyer */\r
+#define VIDEO_CAPS_RGB_COLORSPACE_SDI_CONN (0x00004000) /**< Support RGB colorspace in on an SDI connector */\r
+#define VIDEO_CAPS_HAS_PILLOR_BOX (0x00008000) /**< Has got support for pillor box */\r
+\r
+#define VIDEO_CAPS_OUTPUT_RGB (0x00010000) /**< Has Analog RGB output connector */\r
+#define VIDEO_CAPS_SCALED_RGB (0x00020000) /**< Can scale RGB colour space */\r
+#define AUDIO_CAPS_PLAYBACK (0x00040000) /**< Has got audio output */\r
+#define AUDIO_CAPS_CAPTURE (0x00080000)\r
+\r
+#define VIDEO_CAPS_DOWNCONVERTER (0x00100000)\r
+#define VIDEO_CAPS_DUALOUTPUT_422_IND_STREAM (0x00200000) /**< Specifies whether the card supports Dual Indepenedent 422 output streams */\r
+#define VIDEO_CAPS_DUALINPUT_422_IND_STREAM (0x00400000) /**< Specifies whether the card supports Dual Indepenedent 422 input streams */\r
+\r
+#define VIDEO_CAPS_VBI_OUTPUT (0x00800000) /**< Specifies whether the card supports VBI output */\r
+#define VIDEO_CAPS_VBI_INPUT (0x04000000) /**< Specifies whether the card supports VBI input */ \r
+\r
+#define VIDEO_CAPS_HANC_OUTPUT (0x02000000)\r
+#define VIDEO_CAPS_HANC_INPUT (0x04000000)\r
+\r
+#define VIDEO_CAPS_FOUND_VPS0 VIDEO_CAPS_DOWNCONVERTER /**< specifies whether the VPS0 scaler board was found on the card */\r
+#define VIDEO_CAPS_FOUND_VPS1 (0x10000000) /**< specifies whether the VPS1 scaler board was found on the card */\r
+#define VIDEO_CAPS_FOUND_VPIO (0x20000000) /**< specifies whether the VPIO(DVI daughter board)board was found on the card */\r
+\r
+/*\r
+#define VIDEO_CAPS_DUALOUTPUT_422_IND_STREAM (0x00100000) // Specifies whether the card supports Dual Indepenedent 422 output streams\r
+#define VIDEO_CAPS_DUALINPUT_422_IND_STREAM (0x00200000) // Specifies whether the card supports Dual Indepenedent 422 input streams\r
+\r
+#define VIDEO_CAPS_VBI_OUTPUT (0x00400000)\r
+#define VIDEO_CAPS_VBI_INPUT (0x00800000)\r
+\r
+#define VIDEO_CAPS_HANC_OUTPUT (0x01000000)\r
+#define VIDEO_CAPS_HANC_INPUT (0x02000000)\r
+*/\r
+\r
+#define BLUE_CARD_BUFFER_TYPE_OFFSET (12)\r
+#define BLUE_DMA_DATA_TYPE_OFFSET (16)\r
+#define BLUE_DMA_FLAGS_OFFSET (20)\r
+#define GetDMACardBufferId(value) (value & 0xFFF)\r
+#define GetCardBufferType(value) ((value & 0xF000) >> BLUE_CARD_BUFFER_TYPE_OFFSET)\r
+#define GetDMADataType(value) ((value & 0xF0000) >> BLUE_DMA_DATA_TYPE_OFFSET)\r
+#define GetDMAFlags(value) ((value & 0xF00000) >> (BLUE_DMA_FLAGS_OFFSET))\r
+\r
+\r
+#define Blue_DMABuffer(CardBufferType,BufferId,DataType) ( (((ULONG)DataType&0xF)<<(ULONG)BLUE_DMA_DATA_TYPE_OFFSET)| \\r
+ ( CardBufferType<<(ULONG)BLUE_CARD_BUFFER_TYPE_OFFSET) | \\r
+ ( ((ULONG)BufferId&0xFFF)) |0)\r
+\r
+#define BlueImage_VBI_DMABuffer(BufferId,DataType) ( (((ULONG)DataType&0xF)<<(ULONG)BLUE_DMA_DATA_TYPE_OFFSET)| \\r
+ ( BLUE_CARDBUFFER_IMAGE_VBI<<(ULONG)BLUE_CARD_BUFFER_TYPE_OFFSET) | \\r
+ ( ((ULONG)BufferId&0xFFF)) |0)\r
+\r
+#define BlueImage_DMABuffer(BufferId,DataType) ( (((ULONG)DataType&0xF)<<(ULONG)BLUE_DMA_DATA_TYPE_OFFSET)| \\r
+ ( BLUE_CARDBUFFER_IMAGE<<(ULONG)BLUE_CARD_BUFFER_TYPE_OFFSET) | \\r
+ ( ((ULONG)BufferId&0xFFF)) |0)\r
+\r
+#define BlueImage_VBI_HANC_DMABuffer(BufferId,DataType) ( (((ULONG)DataType&0xF)<<(ULONG)BLUE_DMA_DATA_TYPE_OFFSET)| \\r
+ ( BLUE_CARDBUFFER_IMAGE_VBI_HANC<<(ULONG)BLUE_CARD_BUFFER_TYPE_OFFSET) | \\r
+ ( ((ULONG)BufferId&0xFFF)) |0)\r
+\r
+#define BlueImage_HANC_DMABuffer(BufferId,DataType) ( (((ULONG)DataType&0xF)<<(ULONG)BLUE_DMA_DATA_TYPE_OFFSET)| \\r
+ ( BLUE_CARDBUFFER_IMAGE_HANC<<(ULONG)BLUE_CARD_BUFFER_TYPE_OFFSET) | \\r
+ ( ((ULONG)BufferId&0xFFF)) |0)\r
+\r
+\r
+#define BlueBuffer(CardBufferType,BufferId) (((CardBufferType)<<BLUE_CARD_BUFFER_TYPE_OFFSET)|((BufferId&0xFFF))|0)\r
+#define BlueBuffer_Image_VBI(BufferId) (((BLUE_CARDBUFFER_IMAGE_VBI)<<BLUE_CARD_BUFFER_TYPE_OFFSET)|((BufferId&0xFFF))|0)\r
+#define BlueBuffer_Image(BufferId) (((BLUE_CARDBUFFER_IMAGE)<<BLUE_CARD_BUFFER_TYPE_OFFSET)|((BufferId&0xFFF))|0)\r
+#define BlueBuffer_Image_VBI_HANC(BufferId) (((BLUE_CARDBUFFER_IMAGE_VBI_HANC)<<BLUE_CARD_BUFFER_TYPE_OFFSET)|((BufferId&0xFFF))|0)\r
+#define BlueBuffer_Image_HANC(BufferId) (((BLUE_CARDBUFFER_IMAGE_HANC)<<BLUE_CARD_BUFFER_TYPE_OFFSET)|((BufferId&0xFFF))|0)\r
+#define BlueBuffer_HANC(BufferId) (((BLUE_CARDBUFFER_HANC)<<BLUE_CARD_BUFFER_TYPE_OFFSET)|((BufferId&0xFFF))|0)\r
+\r
+#define BYPASS_RELAY_A (0x00000001) // enable bypass relay channel a when loading driver , only used in linux \r
+#define BYPASS_RELAY_B (0x00000002) // enable bypass relay channel a when loading driver , only used in linux \r
+typedef enum _EDMACardBufferType\r
+{\r
+ BLUE_CARDBUFFER_IMAGE=0,\r
+ BLUE_CARDBUFFER_IMAGE_VBI_HANC=1,\r
+ BLUE_CARDBUFFER_IMAGE_VBI=2,\r
+ BLUE_CARDBUFFER_AUDIO_OUT=3,\r
+ BLUE_CARDBUFFER_AUDIO_IN=4,\r
+ BLUE_CARDBUFFER_HANC=5,\r
+ BLUE_CARDBUFFER_IMAGE_HANC=6,\r
+ BLUE_CARDBUFFER_INVALID=6\r
+}EDMACardBufferType;\r
+\r
+typedef enum _EDMADataType\r
+{\r
+ BLUE_DATA_FRAME=0,\r
+ BLUE_DATA_IMAGE=0,\r
+ BLUE_DATA_FIELD1=1,\r
+ BLUE_DATA_FIELD2=2,\r
+ BLUE_DATA_VBI=3,\r
+ BLUE_DATA_HANC=4,\r
+ BLUE_DATA_AUDIO_IN=5,\r
+ BLUE_DATA_AUDIO_OUT=6,\r
+ BLUE_DATA_FRAME_RDOM=7,\r
+ BLUE_DATA_FRAME_STEREO_LEFT=BLUE_DATA_FRAME,\r
+ BLUE_DATA_FRAME_STEREO_RIGHT=8,\r
+ BLUE_DMADATA_INVALID=9\r
+}EDMADataType;\r
+\r
+typedef struct _AUXILLARY_VIDEO_INFO\r
+{\r
+ BLUE_UINT32 video_channel_id;\r
+ BLUE_UINT32 lVideoMode;\r
+ BLUE_UINT32 lUniqueId;\r
+ BLUE_UINT32 lInfoType;\r
+ BLUE_UINT32 lMemFmt;\r
+ BLUE_UINT32 lGpio;\r
+ BLUE_UINT64 lLTC;\r
+}Auxillary_Video_Info;\r
+\r
+\r
+typedef enum _EBlueVideoAuxInfoType\r
+{\r
+ BLUE_VIDEO_AUX_MEMFMT_CHANGE=1,\r
+ BLUE_VIDEO_AUX_UPDATE_LTC=2,\r
+ BLUE_VIDEO_AUX_UPDATE_GPIO=4,\r
+ BLUE_VIDEO_AUX_VIDFMT_CHANGE=8,\r
+\r
+}EBlueVideoAuxInfoType;\r
+// Max of 4 bits \r
+\r
+#define GET_ANALOG_AUDIO_LEFT_ROUTINGCHANNEL(value) (value&0xFF)\r
+#define GET_ANALOG_AUDIO_RIGHT_ROUTINGCHANNEL(value) ((value&0xFF00)>>8)\r
+#define SET_ANALOG_AUDIO_ROUTINGCHANNEL(left,right) (((right & 0xFF)<<8)|(left & 0xFF))\r
+#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
+#define GET_AUDIO_OUTPUT_SRC_CHANNEL_ROUTING(value) ((value>>16) & 0x7F)\r
+#define GET_AUDIO_OUTPUT_CHANNEL_ROUTING(value) ((value>>23) & 0x3F)\r
+#define GET_AUDIO_OUTPUT_TYPE_ROUTING(value) ((value & 0x60000000)>>29)\r
+\r
+#define AUDIO_INPUT_SOURCE_SELECT_FLAG (1<<16) \r
+#define AUDIO_INPUT_SOURCE_SELECT(SynchCount,AudioInputSource) (AUDIO_INPUT_SOURCE_SELECT_FLAG|(SynchCount)|(AudioInputSource<<17))\r
+\r
+struct blue_video_connection_routing_struct\r
+{\r
+ BLUE_UINT32 video_channel;\r
+ BLUE_UINT32 duallink_flag;\r
+ BLUE_UINT32 link1_connector;\r
+ BLUE_UINT32 link2_connector;\r
+};\r
+\r
+#pragma pack(push, video_sync_struct, 1)\r
+typedef struct _blue_video_sync_struct\r
+{\r
+ BLUE_UINT32 sync_wait_type;// field or frame\r
+ BLUE_UINT32 video_channel; // which video channel interrupt should the interrupt wait for \r
+ BLUE_UINT32 timeout_video_msc; //if the current video msc is equal to this one insert it into the queue.\r
+ BLUE_UINT32 video_msc; //current video msc\r
+ BLUE_UINT32 current_display_frame_id; // would give you the current frame id which is being displayed\r
+ BLUE_UINT32 current_display_frame_uniqueid; // would give you the unique id associated with current frame id which is being displayed\r
+ // this is only valid when using fifo modes.\r
+ BLUE_UINT8 pad[24];\r
+}blue_video_sync_struct;\r
+#pragma pack(pop,video_sync_struct)\r
+\r
+\r
+typedef enum _EBlueLUTType\r
+{\r
+ BLUE_MAIN_LUT_B_Pb=0,\r
+ BLUE_MAIN_LUT_G_Y=1,\r
+ BLUE_MAIN_LUT_R_Pr=2,\r
+ BLUE_AUX_LUT_B_Pb=3,\r
+ BLUE_AUX_LUT_G_Y=4,\r
+ BLUE_AUX_LUT_R_Pr=5,\r
+}EBlueLUTType;\r
+\r
+#pragma pack(push, video_frame, 1)\r
+struct VideoFeature_struct \r
+{\r
+ BLUE_UINT32 Type; // Bluefish card type\r
+ BLUE_UINT32 CardSubType; \r
+ BLUE_UINT32 Bus; // Which PIC bus (bridge) it is on\r
+ BLUE_UINT32 Slot; // Which slot card is plugged into\r
+ BLUE_UINT32 Feature; // Look at the _EBlueFishCardFeatures definition to know what each bit mean\r
+ BLUE_UINT32 FirmwareVersion;\r
+};\r
+\r
+struct blue_videoframe_info\r
+{\r
+ BLUE_UINT64 ltcTimeCode;\r
+ unsigned long videochannel;\r
+ unsigned long BufferId;\r
+ unsigned long Count;\r
+ unsigned long DroppedFrameCount;\r
+};\r
+\r
+struct blue_videoframe_info_ex\r
+{\r
+ BLUE_UINT64 ltcTimeCode; //LTC timecode\r
+ unsigned long videochannel; //the channel this frame was captured from\r
+ long BufferId; //this buffer contains the captured frame\r
+ unsigned long Count; //total captured frames\r
+ unsigned long DroppedFrameCount; //dropped frame count\r
+ unsigned long nFrameTimeStamp; //field count the frame was captured at\r
+ unsigned long nVideoSignalType; //video mode of this frame\r
+ unsigned int nASIPktCount; //only for DVB-ASI; how many ASI packets are in this frame\r
+ unsigned int nASIPktSize; //only for DVB-ASI; how many bytes per packet\r
+ unsigned int nAudioValidityBits; //part of the channels status block for audio\r
+ unsigned char pad[20]; //not used\r
+};\r
+\r
+struct blue_1d_lookup_table_struct\r
+{\r
+ BLUE_UINT32 nVideoChannel;\r
+ BLUE_UINT32 nLUTId;\r
+ BLUE_UINT16 * pLUTData;\r
+ BLUE_UINT32 nLUTElementCount; \r
+ BLUE_UINT8 pad[256];\r
+};\r
+#pragma pack(pop, video_frame)\r
+\r
+#pragma pack(push, blue_dma_request, 1)\r
+struct blue_dma_request_struct\r
+{\r
+ unsigned char * pBuffer;\r
+ BLUE_UINT32 video_channel;\r
+ BLUE_UINT32 BufferId;\r
+ unsigned int BufferDataType;\r
+ unsigned int FrameType;\r
+ unsigned int BufferSize;\r
+ unsigned int Offset;\r
+ unsigned long BytesTransferred;\r
+ unsigned char pad[64];\r
+};\r
+\r
+enum SerialPort_struct_flags\r
+{\r
+ SerialPort_Read=1,\r
+ SerialPort_Write=2,\r
+ SerialPort_TX_Queue_Status=4, \r
+ SerialPort_RX_Queue_Status=8,\r
+ SerialPort_RX_FlushBuffer=16,\r
+ SerialPort_RX_IntWait_Return_On_Data=32,\r
+ \r
+};\r
+\r
+struct SerialPort_struct\r
+{\r
+ unsigned char Buffer[64];\r
+ unsigned int nBufLength;\r
+ unsigned int nSerialPortId;\r
+ unsigned int bFlag; // SerialPort_struct_flags \r
+ unsigned short sTimeOut; \r
+};\r
+\r
+\r
+struct blue_video_scaler_ceofficent\r
+{\r
+ BLUE_UINT32 ioctl_read_only_flag;\r
+ BLUE_UINT32 nScalerId;\r
+ BLUE_UINT32 nScalerFilterType;\r
+ BLUE_UINT32 nScalerCoefficentWeight[15];\r
+};\r
+\r
+enum blue_video_scaler_param_flags\r
+{\r
+ scaler_flags_set_destrect_as_framesize = 0x1,\r
+};\r
+\r
+struct blue_video_scaler_param_struct\r
+{\r
+ BLUE_UINT32 ioctl_read_only_flag;\r
+ BLUE_UINT32 nScalerId;\r
+ BLUE_UINT32 nSrcVideoHeight;\r
+ BLUE_UINT32 nSrcVideoWidth;\r
+ BLUE_UINT32 nSrcVideoYPos;\r
+ BLUE_UINT32 nSrcVideoXPos;\r
+ BLUE_UINT32 nDestVideoHeight;\r
+ BLUE_UINT32 nDestVideoWidth;\r
+ BLUE_UINT32 nDestVideoYPos;\r
+ BLUE_UINT32 nDestVideoXPos;\r
+ BLUE_UINT32 nHScaleFactor;\r
+ BLUE_UINT32 nVScaleFactor;\r
+ BLUE_UINT32 nScalerOutputVideoMode;\r
+ BLUE_UINT32 nScalerParamFlags;\r
+ BLUE_UINT32 pad[128];\r
+};\r
+#ifndef EXCLUDE_USERLAND_STRUCT\r
+struct blue_color_matrix_struct{\r
+ BLUE_UINT32 VideoChannel;\r
+ BLUE_UINT32 MatrixColumn; //MatrixColType enumerator defines this \r
+ double Coeff_B;\r
+ double Coeff_R;\r
+ double Coeff_G;\r
+ double Coeff_K;\r
+ double const_value;\r
+};\r
+#endif\r
+#pragma pack(pop, blue_dma_request)\r
+\r
+typedef enum _blue_output_hanc_ioctl_enum\r
+{\r
+ blue_get_output_hanc_buffer=0,\r
+ blue_put_output_hanc_buffer=1,\r
+ blue_get_valid_silent_hanc_data_status=3,\r
+ blue_set_valid_silent_hanc_data_status=4,\r
+ blue_start_output_fifo=5,\r
+ blue_stop_output_fifo=6,\r
+ blue_init_output_fifo=7,\r
+ blue_get_queues_info=8,\r
+ blue_get_output_fifo_info=blue_get_queues_info,\r
+ blue_get_output_fifo_status=9,\r
+\r
+}blue_output_hanc_ioctl_enum;\r
+\r
+typedef enum _blue_input_hanc_ioctl_enum\r
+{\r
+ blue_get_input_hanc_buffer=0,\r
+ blue_start_input_fifo=3,\r
+ blue_stop_input_fifo=4,\r
+ blue_init_input_fifo=5,\r
+ blue_playthru_input_fifo=6,\r
+ blue_release_input_hanc_buffer=7,\r
+ blue_map_input_hanc_buffer=8,\r
+ blue_unmap_input_hanc_buffer=9,\r
+ blue_get_info_input_hanc_fifo=10,\r
+ blue_get_input_rp188=11,\r
+ blue_get_input_fifo_status=12,\r
+}blue_input_hanc_ioctl_enum;\r
+\r
+\r
+#define HANC_PLAYBACK_INIT (0x00000001)\r
+#define HANC_PLAYBACK_START (0x00000002)\r
+#define HANC_PLAYBACK_STOP (0x00000004)\r
+\r
+#define HANC_CAPTURE_INIT (0x00000010)\r
+#define HANC_CAPTURE_START (0x00000020)\r
+#define HANC_CAPTURE_STOP (0x00000040)\r
+#define HANC_CAPTURE_PLAYTHRU (0x00000080)\r
+\r
+\r
+typedef enum _EOracFPGAConfigCMD\r
+{\r
+ ORAC_FPGA_CONFIG_CMD_ERASE_SECTOR=0,\r
+ ORAC_FPGA_CONFIG_CMD_UNLOCK_SECTOR=1,\r
+ ORAC_FPGA_CONFIG_CMD_WRITE_DATA=2,\r
+ ORAC_FPGA_CONFIG_CMD_STATUS=3,\r
+ ORAC_FPGA_CONFIG_CMD_READMODE=4,\r
+ ORAC_FPGA_CONFIG_RAW_WRITE=5,\r
+ ORAC_FPGA_CONFIG_RAW_READ=6,\r
+ ORAC_FPGA_CONFIG_CMD_READ_DATA=7,\r
+ ORAC_FPGA_CONFIG_INIT=8,\r
+ ORAC_FPGA_CONFIG_EXIT=9\r
+}EOracFPGAConfigCMD;\r
+\r
+\r
+#define ANALOG_CHANNEL_0 MONO_CHANNEL_9\r
+#define ANALOG_CHANNEL_1 MONO_CHANNEL_10\r
+\r
+/*Assumes that the data is in stereo pairs not individual samples*/\r
+#define STEREO_PAIR_1 (MONO_CHANNEL_1|MONO_CHANNEL_2) /* Mono Channel 1 & Mono channel 2* together*/\r
+#define STEREO_PAIR_2 (MONO_CHANNEL_3|MONO_CHANNEL_4) /* Mono Channel 3 & Mono Channel 4* together*/\r
+#define STEREO_PAIR_3 (MONO_CHANNEL_5|MONO_CHANNEL_6) /* Mono Channel 5 & Mono Channel 6* together*/\r
+#define STEREO_PAIR_4 (MONO_CHANNEL_7|MONO_CHANNEL_8) /* Mono Channel 7 & Mono Channel 8* together*/\r
+\r
+#define ANALOG_AUDIO_PAIR (ANALOG_CHANNEL_0|ANALOG_CHANNEL_1)\r
+\r
+#define BLUE_LITTLE_ENDIAN 0\r
+#define BLUE_BIG_ENDIAN 1\r
+\r
+#define GREED_SILENT_HANC_BUFFER1 250\r
+#define GREED_SILENT_HANC_BUFFER2 251\r
+\r
+#define AES_SRC_BYPASS_CHANNEL_1_2 0x1\r
+#define AES_SRC_BYPASS_CHANNEL_3_4 0x2\r
+#define AES_SRC_BYPASS_CHANNEL_5_6 0x4\r
+#define AES_SRC_BYPASS_CHANNEL_7_8 0x8\r
+\r
+typedef enum _EEpochRoutingElements\r
+{\r
+ EPOCH_SRC_DEST_SCALER_0=0x1,\r
+ EPOCH_SRC_DEST_SCALER_1,\r
+ EPOCH_SRC_DEST_SCALER_2,\r
+ EPOCH_SRC_DEST_SCALER_3,\r
+\r
+ EPOCH_SRC_SDI_INPUT_A,\r
+ EPOCH_SRC_SDI_INPUT_B,\r
+ EPOCH_SRC_SDI_INPUT_C,\r
+ EPOCH_SRC_SDI_INPUT_D,\r
+\r
+ EPOCH_DEST_SDI_OUTPUT_A,\r
+ EPOCH_DEST_SDI_OUTPUT_B,\r
+ EPOCH_DEST_SDI_OUTPUT_C,\r
+ EPOCH_DEST_SDI_OUTPUT_D,\r
+\r
+ EPOCH_SRC_OUTPUT_MEM_INTERFACE_CHA,\r
+ EPOCH_SRC_OUTPUT_MEM_INTERFACE_CHB,\r
+\r
+ EPOCH_DEST_INPUT_MEM_INTERFACE_CHA,\r
+ EPOCH_DEST_INPUT_MEM_INTERFACE_CHB,\r
+\r
+ EPOCH_DEST_AES_ANALOG_AUDIO_OUTPUT,\r
+\r
+ EPOCH_SRC_AV_SIGNAL_GEN,\r
+ EPOCH_SRC_DEST_VPIO_SCALER_0,\r
+ EPOCH_SRC_DEST_VPIO_SCALER_1,\r
+\r
+ EPOCH_DEST_VARIVUE_HDMI,\r
+\r
+ EPOCH_DEST_INPUT_MEM_INTERFACE_CHC,\r
+ EPOCH_DEST_INPUT_MEM_INTERFACE_CHD,\r
+\r
+ EPOCH_SRC_OUTPUT_MEM_INTERFACE_CHC,\r
+ EPOCH_SRC_OUTPUT_MEM_INTERFACE_CHD,\r
+\r
+}EEpochRoutingElements;\r
+\r
+\r
+\r
+#define VPEnableFieldCountTrigger ((BLUE_UINT64)1<<63)\r
+#define VPTriggerGetFieldCount(value) ((BLUE_UINT64)value & 0xFFFFFFFF)\r
+\r
+typedef enum _EBlueScalerFilterType\r
+{\r
+ BlueScalerHorizontalYFilter=1,\r
+ BlueScalerHorizontalCFilter=2,\r
+ BlueScalerVerticalYFilter=3,\r
+ BlueScalerVerticalCFilter=4,\r
+}EBlueScalerFilterType;\r
+\r
+\r
+\r
+#define SET_EPOCH_SCALER_MODE(scaler_id,video_mode) ((scaler_id <<16)|video_mode)\r
+#define GET_EPOCH_SCALER_MODE(value) (value&0xFFFF)\r
+#define GET_EPOCH_SCALER_ID(value) ((value&0xFFFF0000)>>16)\r
+\r
+\r
+// use these macros for retreiving the temp and fan speed.\r
+// on epoch range of cards.\r
+#define EPOCH_CORE_TEMP(value) (value & 0xFFFF)\r
+#define EPOCH_BOARD_TEMP(value) ((value>>16) & 0xFF)\r
+#define EPOCH_FAN_SPEED(value) ((value>>24) & 0xFF)\r
+\r
+/** \r
+ @desc use these macro for doing the MR2 routing on epoch range of cards.\r
+ MR2 routing can be controlled using the property MR_ROUTING.\r
+*/\r
+#define EPOCH_SET_ROUTING(routing_src,routing_dest,data_link_type) ((routing_src & 0xFF) | ((routing_dest & 0xFF)<<8) | ((data_link_type&0xFFFF)<<16))\r
+#define EPOCH_ROUTING_GET_SRC_DATA(value) (value & 0xFF)\r
+#define EPOCH_ROUTING_GET_DEST_DATA(value) ((value>>8) & 0xFF)\r
+#define EPOCH_ROUTING_GET_LINK_TYPE_DATA(value) ((value>>16) & 0xFFFF)\r
+\r
+#define GPIO_TX_PORT_A (1)\r
+#define GPIO_TX_PORT_B (2)\r
+\r
+#define EPOCH_GPIO_TX(port,value) (port<<16|value) // if want to set each of the GPO \r
+ // ports individually you should use this macro.\r
+ // without the macro it would set both the GPO\r
+ // ports on the card\r
+\r
+/**\r
+ @desc use these macros for controlling epoch application watch dog settings.\r
+ The card property EPOCH_APP_WATCHDOG_TIMER can be used to control \r
+ the watchdog timer functionality.\r
+*/\r
+enum enum_blue_app_watchdog_timer_prop\r
+{\r
+ enum_blue_app_watchdog_timer_start_stop=(1<<31), // can be used to enable/disable timer \r
+ enum_blue_app_watchdog_timer_keepalive=(1<<30), // can be used to reset the timer value\r
+ enum_blue_app_watchdog_timer_get_present_time=(1<<29), // can query to get the value of the timer\r
+ enum_blue_app_watchdog_get_timer_activated_status=(1<<28), // can query to get whether the timer has been activated\r
+ enum_blue_app_watchdog_get_timer_start_stop_status=(1<<27), // can query whether the timer has been set.\r
+ enum_blue_app_watchdog_enable_gpo_on_active=(1<<26), // using this enumerator you can tell the system that when \r
+ // application watchdog timer has expired whether a GPO output should be triggered or not.\r
+ // you can use also use this enumerator to select\r
+ // which GPO output should be triggered with this. to use GPO port A pass a value of \r
+ // GPIO_TX_PORT_A when this enumerator is used.\r
+ enum_blue_hardware_watchdog_enable_gpo=(1<<25) // can be used to enable/disable GPO trigger when hardware watchdog timer has been \r
+ // triggered\r
+};\r
+\r
+#define EPOCH_WATCHDOG_TIMER_SET_MACRO(prop,value) (prop|(value &0xFFFF))\r
+#define EPOCH_WATCHDOG_TIMER_QUERY_MACRO(prop) (prop)\r
+#define EPOCH_WATCHDOG_TIMER_GET_VALUE_MACRO(value) (value&0xFFFF)\r
+\r
+enum enum_blue_rs422_port_flags\r
+{\r
+ enum_blue_rs422_port_set_as_slave =(1<<0) // If this flag is set the RS422 port would be set to slave mode.\r
+ // by default port is setup to work in master mode , where it would be acting \r
+ // as master in the transactions. \r
+};\r
+#define EPOCH_RS422_PORT_FLAG_SET_MACRO(portid,value) ((portid&0x3)|(value<<3))\r
+#define EPOCH_RS422_PORT_FLAG_GET_FLAG_MACRO(value) ((value>>3)&0xFFFF)\r
+#define EPOCH_RS422_PORT_FLAG_GET_PORTID_MACRO(value) (value&0x3)\r
+\r
+\r
+enum enum_blue_dvb_asi_packing_format\r
+{\r
+ enum_blue_dvb_asi_packed_format=1,/**< In this packing method the asi packets are stored as 188 or 204 bytes*/\r
+ 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\r
+ The timestamp is stored at the begininig of the packet , using 8 bytes*/\r
+ enum_blue_dvb_asi_256byte_container_format=3,\r
+ enum_blue_dvb_asi_256byte_container_format_with_timestamp=4\r
+};\r
+\r
+\r
+#define RS422_SERIALPORT_FLAG(timeout,port,RxFlushBuffer) (((unsigned long)(timeout)<<16)|(port & 0x3) | (RxFlushBuffer<<15))\r
+// use this macro with Wait_For_SerialPort_InputData,\r
+// if you you want the function to return \r
+// immediatelty when it gets byte in the serial RX port.\r
+#define RS422_SERIALPORT_FLAG2(timeout,port,RxFlushBuffer,RXIntWaitReturnOnAvailData) (((unsigned long)(timeout)<<16)|(port & 0x3) | (RxFlushBuffer<<15)|(RXIntWaitReturnOnAvailData<<14))\r
+\r
+typedef enum _blue_blackgenerator_status\r
+{\r
+ ENUM_BLACKGENERATOR_OFF = 0, //producing normal video output\r
+ ENUM_BLACKGENERATOR_ON = 1, //producing black video output\r
+ ENUM_BLACKGENERATOR_SDI_SYNC_OFF = 2 //no valid SDI signal is coming out of our SDI output connector; only available in Epoch ASI firmware\r
+}blue_blackgenerator_status;\r