PCIe-2602 3G-SDI Audio/Video Capture Card Function Library Reference Manual Rev.: 2.00 Revision Date: Nov. 13, 2013 Part No: 50-11252-1000 Advance Technologies; Automate the World.
Revision History ii Revision Release Date Description of Change(s) 2.00 Nov.
PCIe-2602-FLR Preface Copyright 2013 ADLINK Technology, Inc. This document contains proprietary information protected by copyright. All rights are reserved. No part of this manual may be reproduced by any mechanical, electronic, or other means in any form without prior written permission of the manufacturer.
Conventions Take note of the following conventions used throughout this manual to make sure that users perform certain tasks and instructions properly. Additional information, aids, and tips that help users perform tasks. NOTE: CAUTION: WARNING: iv Information to prevent minor physical injury, component damage, data loss, and/or program corruption when trying to complete a task.
PCIe-2602-FLR Table of Contents Revision History...................................................................... ii Preface .................................................................................... iii List of Figures ....................................................................... vii List of Tables.......................................................................... ix 1 Introduction ........................................................................ 1 1.1 Overview.....
3.2 3.1.1 Source Filters............................................................ 54 3.1.2 Example Graphs ....................................................... 54 Driver Control..................................................................... 57 3.2.1 Property Pages ......................................................... 57 3.3 Color Space ....................................................................... 58 3.4 Proprietary Interfaces................................................
PCIe-2602-FLR List of Figures Figure 2-1: Figure 2-2: Figure 3-1: Figure 3-2: List of Figures Bottom-up Image Orientation ................................... 29 Top-down Image Orientation .................................... 30 GraphEdit Insert Filters Dialog ................................. 55 GraphEdit Interface ..................................................
This page intentionally left blank.
PCIe-2602-FLR List of Tables Table 2-1: API Functions ..................................................................
This page intentionally left blank.
PCIe-2602-FLR 1 Introduction 1.1 Overview The PCIe-2602 3G-SDI Audio/Video Capture Card, based on the PCI Express® x4 interface, enables acquisition of 2 channels 3G-SDI, low latency, and raw video data signals up to 1920x1080P/60fps (frames per second).
a wide variety of applications, including medical imaging and intelligent video surveillance or analytics.
PCIe-2602-FLR 2 Function Library This describes details of the API (Application Programming Interface) for the PCIe-2602, developing application programs within Visual C++, C#, Visual Basic.Net, Delphi, Visual Basic, and Borland C++ Builder. While the PCIe-2602 API is based on DirectShow technologies, complexity of DirectShow programming has been eliminated in favor of simple API functions requiring no familiarity with DirectShow programming.
2.
PCIe-2602-FLR Category Function Acquisition Control Acquisition Frame Count Acquisition Start Acquisition Stop One Shot Image Stream Acquisition Status Acquisition Statistics Sensor Status Save Image Audio Stream Dropped Frame Count Overflow Frame Count Mismatch Frame Count Digital I/O Digital I/O Selector DI DO Audio Format Control Other Audio Bits Per Sample Audio Clock Phase Data Bypass Error Text Table 2-1: API Functions Function Library 5
2.3 Setting Up the Build Environment 2.3.1 Include Files All applications using API are required to include the following files. Include File Sdi.h Header file required for all C/C++ applications Sdi.vb Function definitions required for all VB.Net applications Sdi.cs Function definitions required for all C# applications 2.3.2 Library Files All C/C++ applications using API require the following library files. Library File Description P260x.lib Exports API function definitions.
PCIe-2602-FLR 2.4 API Functions 2.4.1 Device Control Functions Device Count Returns the total number of supported devices in the system, with a maximum of 32 channels detectable. Syntax C/C++ int Sdi_GetDeviceCount(UINT &Count) C# int GetDeviceCount(out uint Count) VB.Net GetDeviceCount (ByRef Count as UInteger) As Integer Parameter(s) Count The total number of supported input channels installed.
DeviceOpen (ByVal Number As UInteger) As Integer Parameter(s) Number The number of SDI channels to be opened, with allowed value from 0 to 31. Return Value No error occurs if return value >= 0; if negative, refer to Other Functions for return code error information. Device Close Closes the channel and releases all allocated resources; should be called before terminating the application. Syntax C/C++ int Sdi_DeviceClose (UINT Number) C# int DeviceClose (uint Number) VB.
PCIe-2602-FLR Syntax C/C++ int Sdi_GetDeviceVendorName (char *Name) C# string GetDeviceVendorName () VB.Net GetDeviceVendorName () As String Parameter(s) Name Points to a user-allocated buffer into which the function copies the vendor name string, such as “ADLINK”. The name is NULL-terminated. Return Value C/C++ No error occurs if return value >= 0; if negative, refer to Other Functions for return code error information. C# Return vendor name. VB.Net Return vendor name.
GetDeviceModelName (ByVal Number as UInteger) As String Parameter(s) Number The number of the SDI channel, with allowed values from 0 to 31. Name Points to a user-allocated buffer into which the function copies the model name string, for example, “PCIe-2602”. The name is NULL-terminated. Return Value C/C++ No error occurs if return value >= 0; if negative, refer to Other Functions for return code error information. C# Return model name. VB.Net Return model name.
PCIe-2602-FLR Parameter(s) Number The number of the SDI channel, with allowed values from 0 to 31. Version Points to a user-allocated buffer into which the version string is entered, such as “A1”. The name is NULL-terminated. Return Value C/C++ No error occurs if return value >= 0; if negative, refer to Other Functions for return code error information. C# Return device version string. VB.Net Return device version string. Device Firmware Version Returns the firmware version.
Version Points to a user-allocated buffer into which the version string is entered in “Year/Month/Day Hour:Minute” format. The version is NULL-terminated. Return Value C/C++ No error occurs if return value >= 0; if negative, refer to Other Functions for return code error information. C# Return firmware version string. VB.Net Return firmware version string. Driver Version Returns the driver version.
PCIe-2602-FLR Points to a user-allocated buffer into which the version string is entered in a “n.n.n.n” format. The version is NULL-terminated. Return Value C/C++ No error occurs if return value >= 0; if negative, refer to Other Functions for return code error information. C# Return driver version string. VB.Net Return driver version string. Library Version Returns the library version. Syntax C/C++ int Sdi_GetLibraryVersion (UINT Number, char *Version) C# string GetLibraryVersion (uint Number) VB.
Return Value C/C++ No error occurs if return value >= 0; if negative, refer to Other Functions for return code error information. C# Return library version string. VB.Net Return library version string. Device ID Acquires device card ID. Syntax C/C++ int Sdi_GetDeviceID (UINT Number, UINT& ID) C# int GetDeviceID (uint Number, out uint ID) VB.Net GetDeviceID (ByVal Number as UInteger, ByRef ID As UInteger) As Integer Parameter(s) Number The number of the SDI channel, with allowed values from 0 to 31.
PCIe-2602-FLR Return Value No error occurs if return value ≥ 0; if a negative value, please refer to Other Functions for return code error information. Channel Number Retrieves the SDI channel number. Syntax C/C++ int Sdi_GetChannelNumber (UINT Number, UINT& Channel) C# int GetChannelNumber (uint Number, out uint Channel) VB.Net GetChannelNumber (ByVal Number as UInteger, ByRef Channel As UInteger) As Integer Parameter(s) Number The number of the SDI channel, with allowed values from 0 to 31.
2.4.2 Image Format Functions Sensor Format Sets or retrieves image format of source input, with format differing according to the input channel. Syntax C/C++ int Sdi_SetSensorFormat Format) (UINT Number, UINT int Sdi_GetSensorFormat &Format) (UINT Number, UINT C# int SetSensorFormat (uint Number, uint Format) int GetSensorFormat Format) (uint Number, out uint VB.
PCIe-2602-FLR 6: 720p 59.94/60 fps (1280 x 720 progressive), 7: 1080i 25 fps (1920 x 1080 interlace, in fps), 8: 1080i 29.97/30 fps (1920 x 1080 interlace, in fps), 9: 1080p 23.98/24 fps (1920 x 1080 progressive) 10: 1080p 25 fps (1920 x 1080 progressive) 11: 1080p 30 fps (1920 x 1080 progressive) 12: 1080p 50 fps (1920 x 1080 progressive) 13: 1080p 59.
Parameter(s) Number The number of the SDI channel, with allowed values from 0 to 31. Width The image width of source input. Return Value No error occurs if return value ≥ 0; if a negative value, please refer to Other Functions for return code error information. Sensor Height Retrieves image height of the source input, as shown in Sensor Format. Syntax C/C++ int Sdi_GetSensorHeight (UINT Number, UINT & Height) C# int GetSensorHeight Height) (uint Number, out uint VB.
PCIe-2602-FLR Return Value No error occurs if return value ≥ 0; if a negative value, please refer to Other Functions for return code error information. Output Format Sets or retrieves pixel output format. Syntax C/C++ int Sdi_SetOutputFormat Format) (UINT Number, UINT int Sdi_GetOutputFormat (UINT Number, UINT & Format) C# int SetOutputFormat (uint Number, uint Format) int GetOutputFormat Format) (uint Number, out uint VB.
Format Pixel output format, one of (wherein x denotes neutral bit): 0: 16bit YCbCr 4:2:2 (YUY2) – 8bit Y + 8bit Cb/Cr Pixel Data [31:0] DWORD [31:24] [23:16] [15:8] [7:0] Cr Y Cb Y dw0 1: 24bit YCbCr 4:4:4 – 8bit Y + 8bit Cb + 8bit Cr Pixel Data [31:0] DWORD [31:24] [23:16] [15:8] [7:0] dw0 Y1 Cr0 Cb0 Y0 dw1 Cb2 Y2 Cr1 Cb1 dw2 Cr3 Cb3 Y3 Cr2 2: 24bit RGB (RGB24) – 8bit R + 8bit G + 8bit B Pixel Data [31:0] DWORD [31:24] [23:16] [15:8] [7:0] dw0 B1 R0 G0 B0 dw1 G2 B2 R
PCIe-2602-FLR Pixel Data [31:0] DWORD [31:24] [23:16] dw3 Y6[7:0] Cr4[9:2] dw4 Cr6[9:2] [15:8] [7:0] Cr4[1:0]Y5[9:4] Y5[3:0]Cb4[9:6] Cr6[1:0]Y7[9:4] Y7[3:0]Cb6[9:6] Cb6[5:0]Y6[9:8] 4: 30bit YCbCr 4:4:4 – 10bit Y + 10bit Cb + 10bit Cr Pixel Data [31:0] DWORD [31:24] dw0 xxCr[9:4] [23:16] [15:8] [7:0] Cr[3:0]Cb[9:6] Cb[5:0]Y[9:8] Y[7:0] 5: 30bit RGB (BGR30) – 8bit R + 8bit G + 8bit B Pixel Data [31:0] DWORD [31:24] dw0 xxB[9:4] [23:16] [15:8] [7:0] B[3:0]G[9:6] G[5:0]R[9:8] R[7:0] 6:
7: 36bit YCbCr 4:4:4 – 12bit Y + 12bit Cb + 12bit Cr Pixel Data [31:0] DWORD [31:24] [23:16] [15:8] [7:0] dw0 Cr0[7:0] Cb0[11:4] Cb0[3:0] Y0[11:8] Y0[7:0] dw1 Cr1[3:0] Cb1[11:8] Cb1[7:0] Y1[11:4] Y1[3:0] Cr0[11:8] dw2 Cb2[11:4] Cb2[3:0] Y2[11:8] Y2[7:0] Cr1[11:4] dw3 Cb3[7:0] Y3[11:4] Y3[3:0] Cr2[11:8] Cr2[7:0] dw4 Cb4[3:0] Y4[11:8] Y4[7:0] Cr3[11:4] Cr3[3:0] Cb3[11:8] dw5 Y5[11:4] Y5[3:0] Cr4[11:8] Cr4[7:0] Cb4[11:4] dw6 Y6[7:0] Cr5[11:4] Cr5[3:0] Cb5[11:8] Cb5[7:0] d
PCIe-2602-FLR Pixel Data [31:0] DWORD [31:24] [23:16] [15:8] [7:0] dw5 B5[11:4] B5[3:0] R4[11:8] R4[7:0] G4[11:4] dw6 B6[7:0] R5[11:4] R5[3:0] G5[11:8] G5[7:0] dw7 B7[3:0] R6[11:8] R6[7:0] G6[11:4] G6[3:0] B6[11:8] dw8 R7[11:4] R7[3:0] G7[11:8] G7[7:0] B7[11:4] Not all sensor formats support the output formats shown. Please see the Specification section in the PCIe-2602 User’s Manual.
Parameter(s) Number The number of the SDI channel, with allowed values from 0 to 31.
PCIe-2602-FLR public uint Width; public uint Height; public uint FrameRate; public uint Interlace; } struct RESOLUTION_CAPABILITIES { public uint NumSdiResolution; public IntPtr SdiResolutions; } VB.Net Structure SENSOR_PROPERTIES
Return Value No error occurs if return value ≥ 0; if a negative value, please refer to Other Functions for return code error information. Detected Sensor Format Acquires the sensor format of the currently selected video channel, reading back resolution from the source input. Syntax C/C++ int Sdi_GetDetectedSensorFormat(UINT int& Format) Number, C# int GetDetectedSensorFormat (uint Number, out int Format) VB.
PCIe-2602-FLR Detected Output Format Acquires the output format of the currently selected video channel, reading back color space from the source input. Syntax C/C++ int Sdi_GetDetectedOutputFormat(UINT int& Format) Number, C# int GetDetectedOutputFormat (uint Number, out int Format) VB.Net GetDetectedOutputFormat (ByVal Number as UInteger, ByRef Format As Integer) As Integer Parameter(s) Number The number of the SDI channel, with allowed values from 0 to 31.
Image Orientation Sets or retrieves orientation of images in memory. Syntax C/C++ int Sdi_SetImageOrientation (UINT Number, UINT Value) int Sdi_GetImageOrientation UINT& Value) (UINT Number, C# int SetImageOrientation Value) (uint Number, uint int GetImageOrientation (uint Number, out uint Value) VB.
PCIe-2602-FLR Value Indicates the image orientation, as one of: 0: Bottom-up, in which the image buffer starts with the bottom row of pixels, followed by the next row up, and next, with the top row of the image the last row in the buffer, such that the first byte in memory is the bottom-left pixel of the image, with physical layout of a bottom-up image as shown. E.g.
1: Top-down, in which order of the rows is reversed, with the top row the first row in memory, followed by the next row down, with the bottom row of the image the last row in the buffer, such that first byte in memory is the top-left of the image, with physical layout of a top-down image as shown. E.g.
PCIe-2602-FLR Syntax C/C++ int Sdi_SetEventSelector Mode) (UINT Number, UINT int Sdi_GetEventSelector (UINT Number, UINT & Mode) C# int SetEventSelector (uint Number, uint Mode) int GetEventSelector (uint Number, out uint Mode) VB.Net SetEventSelector (ByVal Number as ByVal Mode as UInteger) As Integer UInteger, GetEventSelector (ByVal Number as ByRef Mode as UInteger) As Integer UInteger, Parameter(s) Number The number of the SDI channel, with allowed values from 0 to 31.
Event Handle Sets or retrieves event handle, with event and callback determining recovery of video frame or audio information. Syntax C/C++ int Sdi_SetEventHandle Handle) (UINT Number, HANDLE int Sdi_GetEventHandle &Handle) (UINT Number, HANDLE C# int SetEventHandle (uint Number, IntPtr Handle) int SetEventHandle (uint Number, SafeWaitHandle Handle) int GetEventHandle (uint Number, out IntPtr Handle) int GetEventHandle (uint Number, out SafeWaitHandle Handle) VB.
PCIe-2602-FLR GetImageStream to acquire the pointer of frame buffer GetAudioStream to acquire audio data pointer and size. Return Value No error occurs if return value ≥ 0; if a negative value, please refer to Other Functions for return code error information. Callback Selector Sets or retrieves callback function type.
2: Audio data callback Return Value No error occurs if return value ≥ 0; if a negative value, please refer to Other Functions for return code error information. Callback Sets or retrieves callback handle, with event and callback determining when to recover video frame or audio data information.
PCIe-2602-FLR Fun Pointer for callback routine, in which a callback function must be declared and set as the parameter. In the callback function, call: GetImageStream to acquire the pointer of frame buffer GetAudioStream to acquire audio data pointer and size. Return Value No error occurs if return value ≥ 0; if a negative value, please refer to Other Functions for return code error information. 2.4.
GetAcquisitionFrameCount (ByVal Number as UInteger, ByRef Count as UInteger) As Integer Parameter(s) Number The number of the SDI channel, with allowed values from 0 to 31. Count The frame count to be captured, from among: 0: Capture until AcquisitionStop is called. > 0: Acquires the desired frame count, and when reached, changes acquisition status to 0 (stopped), where AcquisitionStop must be called to stop acquisition.
PCIe-2602-FLR The number of the SDI channel, with allowed values from 0 to 31. Return Value No error occurs if return value ≥ 0; if a negative value, please refer to Other Functions for return code error information. Acquisition Stop Terminates video frame and audio data capture. Syntax C/C++ int Sdi_AcquisitionStop (UINT Number) C# int AcquisitionStop (UINT Number) VB.
C# int OneShot (uint Number, uint Timeout) VB.Net OneShot (ByVal Number as UInteger, ByVal Timeout as UInteger) As Integer Parameter(s) Number The number of the SDI channel, with allowed values from 0 to 31. Timeout Maximum waiting time for acquisition, in milliseconds. Return Value No error occurs if return value ≥ 0; if a negative value, please refer to Other Functions for return code error information. Image Stream Retrieves the image buffer pointer.
PCIe-2602-FLR The number of the SDI channel, with allowed values from 0 to 31. Buffer Image buffer pointer. Return Value No error occurs if return value ≥ 0; if a negative value, please refer to Other Functions for return code error information. Acquisition Status Retrieves current acquisition status. Syntax C/C++ int Sdi_GetAcquisitionStatus UINT &Status) (UINT Number, C# int GetAcquisitionStatus uint Status) (uint Number, out VB.
Acquisition Statistics Acquires the number of frames captured since Acquisition Start. Syntax C/C++ int Sdi_GetAcquisitionStatistics (UINT Number, UINT &Count) C# int GetAcquisitionStatistics (uint Number, out uint Count) VB.Net GetAcquisitionStatistics (ByVal Number as UInteger, ByRef Count as UInteger) As Integer Parameter(s) Number The number of the SDI channel, with allowed values from 0 to 31. Count Total amount of frames captured.
PCIe-2602-FLR int GetSensorStatus Locked) (uint Number, out uint VB.Net GetSensorStatus (ByVal Number as UInteger, ByRef Locked as UInterger) As Integer Parameter(s) Number The number of the SDI channel, with allowed values from 0 to 31.
SaveImage (ByVal Number as UInteger, FileNamet as String) As Integer ByVal Parameter(s) Number The number of the SDI channel, with allowed values from 0 to 31. FileName The library supports: BMP: if FileName is *.bmp JPEG: if FileName is *.jpg or *.jpeg JIFF: if FileName is *.tif PNG: if FileName is *.png Raw data: other file type Return Value No error occurs if return value ≥ 0; if a negative value, please refer to Other Functions for return code error information.
PCIe-2602-FLR Parameter(s) Number The number of the SDI channel, with allowed values from 0 to 31. StreamInfo Structure of audio data and size as: C/C++ typedef struct _ AUDIO_STREAM_INFO { void *Data; UINT Size; } AUDIO_STREAM_INFO; C# public struct AUDIO_STREAM_INFO { public IntPtr Data; public uint Size; } VB.
Dropped Frame Count Acquires the total number of frames dropped since Acquisition Start, as a result of: Z The buffer queue is full and incoming frames are dropped Z PCIe bandwidth is insufficient to transfer all frame data Z Pixel count of the input sensor is less than that set in Sensor Format Syntax C/C++ int Sdi_GetDroppedFrameCount UINT &Count) (UINT Number, C# int GetDroppedFrameCount uint Count) (uint Number, out VB.
PCIe-2602-FLR Overflow Frame Count Acquires the number of frames dropped since Acquisition Start, resulting from: Z Full buffer queue causes the incoming frame to be dropped Z PCIe bandwidth is insufficient to transfer all frames’ data. Syntax C/C++ int Sdi_GetOverflowFrameCount UINT &Count) (UINT Number, C# int GetOverflowFrameCount uint Count) (uint Number, out (uint Number, out VB.
Syntax C/C++ int Sdi_GetMismatchFrameCount UINT &Count) (UINT Number, C# int GetMismatchFrameCount uint Count) (uint Number, out VB.Net GetMismatchFrameCount (ByVal Number as UInteger, ByRef Count as UInteger) As Integer Parameter(s) Number The number of the SDI channel, with allowed values from 0 to 31. Count Number of frames dropped Return Value No error occurs if return value ≥ 0; if a negative value, please refer to Other Functions for return code error information. 2.4.
PCIe-2602-FLR int SetDigitalIOSelector Channel) (uint int GetDigitalIOSelector uint Channel) (uint Number, Number, uint out VB.Net SetDigitalIOSelector (ByVal Number As UInteger, ByVal Channel As UInteger) As Integer GetDigitalIOSelector (ByVal Number As UInteger, ByRef Channel As UInteger) As Integer Parameter(s) Number The number of the SDI channel, with allowed values from 0 to 31.
The number of the SDI channel, with allowed values from 0 to 31. Value 1. State of the DI channel if SetDigitalIOSelector channel is between 0 and 3, with: 0: Low 1: High 2. State of all DI channels if SetDigitalIOSelector channel is 0xFFFFFFFF, with: bit n = 0: Low bit n = 0: High in which n is 0 to 3 representing the state of DI0 to DI3 respectively. Return Value No error occurs if return value ≥ 0; if a negative value, please refer to Other Functions for return code error information.
PCIe-2602-FLR Parameter(s) Number The number of the SDI channel, with allowed values from 0 to 31. Value State of the DO channel of SetDigitalIOSelector is between 0 to 3, with the following values: 0: Low 1: High 2. State of all DO channels if Channel of SetDigitalIOSelector is 0xFFFFFFFF, with the following values: bit n = 0: Low bit n = 0: High where n is from 0 to 3 representing the state of DO0 to DO3 respectively.
int GetAudioBitsPerSample uint Value) (uint Number, out VB.Net SetAudioBitsPerSample (ByVal Number As UInteger, ByVal Value As UInteger) As Integer GetAudioBitsPerSample (ByVal Number As UInteger, ByRef Value As UInteger) As Integer Parameter(s) Number The number of the SDI channel, with allowed values from 0 to 31.
PCIe-2602-FLR int Sdi_SetAudioClockPhaseDataBypass Number, UINT Status) (UINT int Sdi_GetAudioClockPhaseDataBypass Number, UINT& Status) (UINT C# int SetAudioClockPhaseDataBypass (uint Number, uint Status) int GetAudioClockPhaseDataBypass (uint Number, out uint Status) VB.
Syntax C/C++ int Sdi_GetErrorText (int code, char *Text) C# string GetErrorText (int code) VB.Net GetErrorText (ByVal code As Integer) As String Parameter(s) Code Error code returned by other functions. Text Error text string, for containment of which a buffer of maximum 160 bytes8 must be allocated. Return Value C/C++ This page intentionally left blank. Always return 0. C# Return the error text VB.
PCIe-2602-FLR 3 DirectShow Programming Guide . NOTE: Complete documentation for DirectShow application programming can be found at: http://msdn.microsoft.com/en-us/library/dd390351(VS.85).aspx by searching for “DirectShow”. If a DirectX SDK is installed, this documentation is also available from DirectX SDK Help. The most recent version of DirectShow SDK was moved to Windows SDK.
3.1.1 Source Filters ADLINK SDI Capture A WDM Streaming Capture Device, it is actually a kernel-mode KsProxy plug-in. An application can treat it simply as a filter. Use System Device Enumerator to add this filter to a filter graph.
PCIe-2602-FLR a graph, and two filters’ pins can be selected by dragging from one output pin to another. An arrow will be drawn if both pins agree on the connection.
Example Graph To generate an example graph: 1. Open GraphEdit.exe. 2. Select ‘Insert a filter into the graph’ from the toolbar and enter'ADLink SDI Capture', 'Video Render' and 'Default DirectSound Device' filters in the 'Video Capture Source' group, the 'DirectShow Filters' group and 'Audio Renders' group. 3. Drag 'Video Capture' pin to 'VMR Input0' pin and 'Audio Capture' pin to 'Audio Input pin' as shown. 4. Select ‘Play the graph’ from the toolbar to begin preview.
PCIe-2602-FLR Figure 3-2: GraphEdit Interface NOTE: If VMR substitutes for the default Video Renderer, the preview video shows a vertical mirror video, which can be resolved by inserting a Color Space Converter filter before. 3.2 Driver Control The ADLINK SDI Capture filter provides control of video configuration by either property pages or access to COM interfaces. 3.2.1 Property Pages The driver provides two embedded property pages.
OleCreatePropertyFrame( NULL, // Parent window 0, // x (Reserved) 0, // y (Reserved) FilterInfo.achName, 1, // Caption for the dialog box // Number of filters (IUnknown **)&m_pFilter, // Pointer to the filter caGUID.cElems, // Number of property pages caGUID.pElems, // Pointer to property page CLSIDs 0, // Locale identifier 0, // Reserved NULL // Reserved ); CoTaskMemFree(caGUID.pElems); } 3.
PCIe-2602-FLR Pixel Data [31:0] DWORD [31:24] [23:16] [15:8] [7:0] dw0 Y1 Cr0 Cb0 Y0 dw1 Cb2 Y2 Cr1 Cb1 dw2 Cr3 Cb3 Y3 Cr2 Compression (FOURCC code) is ‘YUV8’ and GUID is 38565559-0000-0010-8000-00AA00389B71 MEDIASUBTYPE_RGB24 - 24bit RGB – 8bit R + 8bit G + 8bit B Pixel Data [31:0] DWORD [31:24] [23:16] [15:8] [7:0] dw0 B1 R0 G0 B0 dw1 G2 B2 R1 G1 dw2 R3 G3 B3 R2 MEDIASUBTYPE_YU10 - 20bit YCbCr 4:2:2 – 10bit Y + 10bit Cb/Cr Pixel Data [31:0] DWORD [31:24] dw0 [2
Compression (FOURCC code) is ‘YU10’ and GUID is 30315559-0000-0010-8000-00AA00389B71 MEDIASUBTYPE_YUV10 - 30bit YCbCr 4:4:4 – 10bit Y + 10bit Cb + 10bit Cr Pixel Data [31:0] DWORD [31:24] dw0 [23:16] xxCr[9:4] [15:8] Cr[3:0]Cb[9:6] Cb[5:0]Y[9:8] [7:0] Y[7:0] Compression (FOURCC code) is ‘YUVA’ and GUID is 41565559-0000-0010-8000-00AA00389B71 MEDIASUBTYPE_BGR30 - 30bit RGB – 8bit R + 8bit G + 8bit B Pixel Data [31:0] DWORD [31:24] dw0 xxB[9:4] [23:16] [15:8] B[3:0]G[9:6] G[5:0]R[9:8] [7:0] R[7
PCIe-2602-FLR Compression (FOURCC code) is ‘YU12’ and GUID is 32315559-0000-0010-8000-00AA00389B71 MEDIASUBTYPE_YUV12 - 36bit YCbCr 4:4:4 – 12bit Y + 12bit Cb + 12bit Cr Pixel Data [31:0] DWORD [31:24] [23:16] [15:8] [7:0] dw0 Cr0[7:0] Cb0[11:4] Cb0[3:0]Y0[11:8 ] Y0[7:0] dw1 Cr1[3:0]Cb1[11: 8] Cb1[7:0] Y1[11:4] Y1[3:0]Cr0[11:8] dw2 Cb2[11:4] Cb2[3:0]Y2[11:8] Y2[7:0] Cr1[11:4] dw3 Cb3[7:0] Y3[11:4] Y3[3:0]Cr2[11:8] Cr2[7:0] dw4 Cb4[3:0]Y4[11:8 ] Y4[7:0] Cr3[11:4] Cr3[3:0]Cb3[11
Pixel Data [31:0] DWORD [31:24] [23:16] [15:8] [7:0] dw3 G3[7:0] B3[11:4] B3[3:0]R2[11:8] R2[7:0] dw4 G4[3:0]B4[11:8] B4[7:0] R3[11:4] R3[3:0]G3[11:8] dw5 B5[11:4] B5[3:0]R4[11:8] R4[7:0] G4[11:4] dw6 B6[7:0] R5[11:4] R5[3:0]G5[11:8] G5[7:0] dw7 B7[3:0]R6[11:8] R6[7:0] G6[11:4] G6[3:0]B6[11:8] dw8 R7[11:4] R7[3:0]G7[11:8] G7[7:0] B7[11:4] Compression (FOURCC code) is ‘RGBC’ and GUID is 43424752-0000-0010-8000-00AA00389B71 3.
PCIe-2602-FLR CUSTOM_PROPERTY_GET_CHANNEL_NUMBER = 15, CUSTOM_PROPERTY_XET_SENSOR_FORMAT = 20, CUSTOM_PROPERTY_GET_DETECTED_SENSOR_FORMAT = 21, CUSTOM_PROPERTY_XET_IMAGE_ORIENTATION = 22, CUSTOM_PROPERTY_GET_DETECTED_OUTPUT_FORMAT = 23, CUSTOM_PROPERTY_XET_DO = 30, CUSTOM_PROPERTY_GET_DI = 31, CUSTOM_PROPERTY_GET_OVERFLOW_COUNTER = 40, CUSTOM_PROPERTY_GET_MISMATCH_COUNTER = 41, }; The parameter pPropData is a pointer to ULONG or LONG variable and parameter cbPropData is 4. 1.
&Version, sizeof(ULONG), &dwReturn); 2. CUSTOM_PROPERTY_GET_FIRMWARE_VERSION The property allows retrieval of the firmware version with the formula: Year = (Version >> 28) + 2000 Month = (Version >> 24) & 0x0F Day = (Version >> 16) & 0xFF Hour = (Version >> 8) & 0xFF Minute = Version & 0xFF EXAMPLE: ULONG Version; DWORD dwReturn; m_pKsPropertySet->Get( PROPSETID_AVS260X_CUSTOM, CUSTOM_PROPERTY_GET_FIRMWARE_VERSION, NULL, 0, &Version, sizeof(ULONG), &dwReturn); 3.
PCIe-2602-FLR m_pKsPropertySet->Get( PROPSETID_AVS260X_CUSTOM, CUSTOM_PROPERTY_GET_DRIVER_VERSION, NULL, 0, &Version, sizeof(ULONG), &dwReturn); 4. CUSTOM_PROPERTY_GET_DEVICE_MODEL The property allows retrieval of the device model with the values: 0: PCIe-2602 1: PCIe-2604 EXAMPLE: ULONG Vaule; DWORD dwReturn; m_pKsPropertySet->Get( PROPSETID_AVS260X_CUSTOM, CUSTOM_PROPERTY_GET_DEVICE_MODEL, NULL, 0, &Value, sizeof(ULONG), &dwReturn); 5. CUSTOM_PROPERTY_GET_CARD_ID The property acquires the card ID.
&id, sizeof(ULONG), &dwReturn); 6. CUSTOM_PROPERTY_GET_CHANNEL_NUMBER The property allows acquisition of the hardware channel number with value 0 for SDI channel 0 and 1 for SDI channel 1. EXAMPLE: ULONG Number; DWORD dwReturn; m_pKsPropertySet->Get( PROPSETID_AVS260X_CUSTOM, CUSTOM_PROPERTY_GET_FIRMWARE_VERSION, NULL, 0, &Number, sizeof(ULONG), &dwReturn); 7.
PCIe-2602-FLR Format Resolution Value 1080p 30 fps 1920x1080 11 1080p 50 fps 1920x1080 12 1080p 59.
m_pKsPropertySet->Get( PROPSETID_AVS260X_CUSTOM, CUSTOM_PROPERTY_GET_DETECTED_SENSOR_FORM AT, NULL, 0, &Format, sizeof(LONG), &dwReturn); 9.
PCIe-2602-FLR Output format can be detected and reported to the application, with supported formats as described, where -1 indicates a non-supported format, or no embedded video payload identification. The output format can be detected only if the input sensor conforms to SMPTE 352M.
EXAMPLE #01: Retrieves all DO status ULONG State; DWORD dwReturn; m_pKsPropertySet->Get( PROPSETID_AVS260X_CUSTOM, CUSTOM_PROPERTY_XET_DO, NULL, 0, &State, sizeof(ULONG), &dwReturn); EXAMPLE #02: Sets all DO status ULONG State = 0xF; // = all DOs output high m_pKsPropertySet->Set( PROPSETID_AVS260X_CUSTOM, CUSTOM_PROPERTY_XET_DO, NULL, 0, &State, sizeof(ULONG); 12.
PCIe-2602-FLR The property retrieves the number of frames dropped since start capture due to: The buffer queue is full and incoming frames were dropped PCIe bandwidth is insufficient to transfer all frame data. EXAMPLE: ULONG Count; DWORD dwReturn; m_pKsPropertySet->Get( PROPSETID_AVS260X_CUSTOM, CUSTOM_PROPERTY_GET_OVERFLOW_COUNTER, NULL, 0, &Count, sizeof(ULONG), &dwReturn); 14.
3.5 Build Environment Settings 3.5.1 Include Files Applications must include the files as shown. Include File Description DShow.h The header file is required for all C++ applications, and Microsoft DirectX SDK must be first installed.. DirectShowLib Imports this name space for all Microsoft .Net applications by adding a reference to file DirectShowLib-2005.dll. 3.5.2 Library Files Applications must include the library files as shown. Library File Description Strmiids.
PCIe-2602-FLR 3.5.3 Microsoft Visual C++ For VC++, the build environment must be set up prior to building, as follows. 1. Open the solution file (baseclasses.sln) or the project file (baseclasses.dsw) under %DXSDK%\Samples\C++\DirectShow\BaseClasses and build it. 2. Add the paths to the include directory inproject settings: %DXSDK%\include %DXSDK%\Samples\C++\DirectShow\BaseClasses 3.
This page intentionally left blank.
PCIe-2602-FLR Important Safety Instructions For user safety, please read and follow all instructions, WARNINGS, CAUTIONS, and NOTES marked in this manual and on the associated equipment before handling/operating the equipment. X Read these safety instructions carefully. X Keep this user’s manual for future reference. X Read the specifications section of this manual for detailed information on the operating environment of this equipment.
X Never attempt to fix the equipment. Equipment should only be serviced by qualified personnel. A Lithium-type battery may be provided for uninterrupted, backup or emergency power. WARNING: X 76 Risk of explosion if battery is replaced with one of an incorrect type. Dispose of used batteries appropriately.
PCIe-2602-FLR Getting Service Contact us should you require any service or assistance. ADLINK Technology, Inc. Address: 9F, No.166 Jian Yi Road, Zhonghe District New Taipei City 235, Taiwan ᄅؑקխࡉ৬ԫሁ 166 ᇆ 9 ᑔ Tel: +886-2-8226-5877 Fax: +886-2-8226-5717 Email: service@adlinktech.com Ampro ADLINK Technology, Inc. Address: 5215 Hellyer Avenue, #110, San Jose, CA 95138, USA Tel: +1-408-360-0200 Toll Free: +1-800-966-5200 (USA only) Fax: +1-408-360-0222 Email: info@adlinktech.
ADLINK Technology, Inc. (French Liaison Office) Address: 15 rue Emile Baudot, 91300 Massy CEDEX, France Tel: +33 (0) 1 60 12 35 66 Fax: +33 (0) 1 60 12 35 66 Email: france@adlinktech.com ADLINK Technology Japan Corporation Address: ͱ101-0045 ᵅҀ䛑गҷ⬄ऎ⼲⬄䤯 ⬎ފ3-7-4 ⼲⬄ 374 ɛɳ 4F KANDA374 Bldg. 4F, 3-7-4 Kanda Kajicho, Chiyoda-ku, Tokyo 101-0045, Japan Tel: +81-3-4455-3722 Fax: +81-3-5209-6013 Email: japan@adlinktech.com ADLINK Technology, Inc.