IEI Integration HDC-502E-SDK User Manual

IEI Technology Corp.
User Manual
HDC-502E SDK (Windows)
MODEL:
HDC-502E SDK (Windows)
A SDK software development kit for the HDC-502E Series
Rev. 2.00 – 28 September, 2012
Page 1
Date Version Changes
28 September, 2012 2.00 Updated for V2.00 software version
22 November, 2011 1.00 Initial release
HDC-502E SDK (Windows)
Revision
Page 2
HDC-502E SDK (Windows)
COPYRIGHT NOTICE
The information in this document is subject to change without prior notice in order to improve reliability, design and function and does not represent a commitment on the part of the manufacturer.
In no event will the manufacturer be liable for direct, indirect, special, incidental, or consequential damages arising out of the use or inability to use the product or documentation, even if advised of the possibility of such damages.
This document contains proprietary information protected by copyright. All rights are
Copyright
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.
TRADEMARKS
All registered trademarks and product names mentioned herein are used for identification purposes only and may be trademarks and/or registered trademarks of their respective owners.
Page 3
HDC-502E SDK (Windows)
Table of Contents
1 DRIVER AND SDK INSTALLATION........................................................................ 6
1.1 OVERVIEW.................................................................................................................. 7
1.2 DRIVER INSTALLATION............................................................................................... 8
1.2.1 Driver Installation in 64-bit Windows 7 OS..................................................... 12
1.2.2 Uninstall Driver............................................................................................... 14
1.3 SOFTWARE INSTALLATION ........................................................................................ 15
1.3.1 System Requirements........................................................................................ 15
1.3.2 HDCapture SDK Installation........................................................................... 16
1.3.3 Uninstall HDCapture SDK..............................................................................18
2 HDCAPTURE SDK..................................................................................................... 20
2.1 HDCAPTURE SDK OVERVIEW................................................................................. 21
2.2 VIDEO CONFIGURATION ........................................................................................... 21
2.3 VIDEO CAPTURE....................................................................................................... 24
3 API INTRODUCTION................................................................................................ 25
3.1 BUILD ENVIRONMENT.............................................................................................. 26
3.2 API INTRODUCTION.................................................................................................. 26
3.2.1 DeviceMan API Introduction........................................................................... 27
3.2.2 CPLDMan API Introduction............................................................................ 29
3.2.3 Mb86H55rebDll API Introduction................................................................... 33
3.2.4 Role of Mb86H55rebDll API ...........................................................................33
3.2.5 Using Mb86H55rebDll API............................................................................. 33
3.2.6 Mb86H55rebDll API Description....................................................................36
3.3 DIRECTSHOW GRAPH............................................................................................... 42
3.3.1 Encoding Graph............................................................................................... 42
3.4 ARCHITECTURE OF SDK........................................................................................... 43
4 FAQ ............................................................................................................................... 44
A ERROR CODE............................................................................................................ 46
A.1 ERROR CODE OVERVIEW......................................................................................... 47
Page 4
HDC-502E SDK (Windows)
A.2 ERROR_MODULE[7:0]........................................................................................ 47
A.3 ERROR_STATUS[23:0] ........................................................................................ 48
A.3.1 IDLE................................................................................................................48
A.3.2 ENC ................................................................................................................. 49
A.3.3 DEC................................................................................................................. 53
Page 5
HDC-502E SDK (Windows)
Chapter
1
1 Driver and SDK
Installation
Page 6
HDC-502E SDK (Windows)

1.1 Overview

A CD is shipped with the video capture card. The CD contains a driver for the video capture controllers on the card. When the video capture card is installed on the system, the driver must be installed. Failure to install the driver means that that video capture card cannot be detected by the system.
NOTE:
The Found New Hardware Wizard will automatically start when the system detects the video capture card. Click Cancel to exit the wizard and follow the steps described in this chapter to install the driver and the HDCapture SDK.
NOTE:
To be able to install the driver and the HDCapture SDK in a 64-bit operating system (such as Windows 7), please do the followings:
1. When the system is booting, press F8 to enter the Advanced Boot Options menu. Choose “Disable Driver Signature Enforcement” and press Enter.
2. Login the system as “administrator” and start to install the driver and application.
Page 7
HDC-502E SDK (Windows)
NOTE:
If you cannot open the setup file in the 64-bit Windows 7 operating system, please do the following:
Run a Command Prompt as an administrator. Key in the setup file directory, and then launch the setup file from there.

1.2 Driver Installation

To install the HDC-502E driver, please follow the steps below: If the HDC-502E driver is already installed, please refer to Section
NOTE:
If the User Access Control dialog box appears during installation, click Yes to continue.
Step 1: Make sure to log in the system as the administrator.
Step 2: Insert the driver CD.
1.2.2 to uninstall the driver first.
Page 8
HDC-502E SDK (Windows)
Step 3: Locate the “Driverinstaller.bat” file in the driver CD. Double click it. The console
window appears and starts to install all drivers.
Step 4: The screen in
Figure 1-1 appears. Click Install.
Figure 1-1: Windows Security
Step 5: If the following window appears, click Install this driver software anyway.
Figure 1-2: Windows Warning Window
Page 9
Step 6: The Device Driver Installation Wizard appears. Click Next to start.
HDC-502E SDK (Windows)
Figure 1-3: Device Driver Installation Wizard
Step 7: The video capture card driver starts to install and the screen in
appears.
Figure 1-4: Driver Installing
Step 8: When the driver installation is complete, the screen in
Figure 1-5 appears. Click
Figure 1-4
Page 10
Finish to exit.
HDC-502E SDK (Windows)
Figure 1-5: Driver Installation Complete
Step 9: Check the device manager in the Windows control panel to ensure the driver
(MB86H55-REB PCI, HDC controller and WinDriver) has been properly inst alled .
Figure 1-6 for the details.
See
Figure 1-6: Device Manager
Page 11

1.2.1 Driver Installation in 64-bit Windows 7 OS

To install the driver in a 64-bit Windows 7 operating system, please do the followings.
Step 1: When the system is booting, press F8 to enter the Advanced Boot Options menu.
Choose “Disable Driver Signature Enforcement” and press Enter.
HDC-502E SDK (Windows)
Page 12
Figure 1-7: Disable Driver Signature Enforcement
Step 2: Make sure to log in the system as the administrator.
Step 3: Insert the driver CD.
Step 4: Run a Command Prompt as an administrator (right click the Command
Prompt and select Run as administrator).
HDC-502E SDK (Windows)
Step 5: In the Command Prompt window, specify the 64-bit driver directory. Then, type
DriverInstaller.bat to start the driver installation.
Figure 1-8: Command Prompt – Driver Installation
Step 6: Follow Step 5 ~ Step 8 in Section
Windows 7 operating system.
Step 7: Check the device manager in the Windows control panel to ensure the driver
(MB86H55-REB PCI, DEVICE and WinDriver) has been properly installed. See
Figure 1-9 for the details.
1.2 to complete installing the driver to a 64-bit
Page 13
HDC-502E SDK (Windows)
Figure 1-9: Device Manager – 64-bit OS

1.2.2 Uninstall Driver

To uninstall the driver, please follow the steps below.
Step 1: Make sure to login the system as the administrator.
Step 2: Locate the “Driveruninstaller.bat” file in the driver CD. Double click it to uninstall
the driver.
Step 3: The console window pop-up and all drivers will be uninstalled.
Page 14
HDC-502E SDK (Windows)

1.3 Software Installation

The HDC-502E comes with a video capture application – HDCapture SDK. This section describes how to install the application in Windows environment.

1.3.1 System Requirements

The supported OS versions are listed below:
Microsoft Windows XP SP2 32-bit  Microsoft Windows 7 32-bit  Microsoft Windows 7 64-bit
After installing the driver, the following programs must be installed in order to use the HDCapture SDK:
Microsoft .NET Framework 3.0/3.5/4.0  Microsoft DirectX 9.0c  Win7DSFilterTweaker tool (for Windows 7 OS only)  Visual C++ 2005 & 2008 Redistributable
Please download the setup files of these programs from the official websites and install these programs in the system. For detailed setup procedures for some of the above programs, please refer to Appendix Error! Reference source not found..
NOTE:
For the 64-bit Windows 7 operating system, the Microsoft .NET Framework 4.0 must be installed.
Page 15

1.3.2 HDCapture SDK Installation

To install the HDCapture SDK, please follow the steps below.
NOTE:
If the User Access Control dialog box appears during installation, click Yes to continue.
Step 1: Insert the driver CD.
Step 2: Locate the HDCapture_x86_Vxxxx.msi file in the driver CD. Double click the
setup file to start the installation. The user can al so download the latest setu p file from IEI website.
HDC-502E SDK (Windows)
Step 3: The HDCapture SDK Setup Wizard welcome window appears. Click Next to
start.
Figure 1-10: HDCapture SDK Setup Wizard
Page 16
HDC-502E SDK (Windows)
Step 4: Select a folder for HDCapture SDK installation in Figure 1-11. Click Next to
continue.
Figure 1-11: Select Installation Folder
Step 5: The following screen appears. Click Next to confirm the installation.
Figure 1-12: Confirm Installation
Step 6: The system starts installing the HDCapture SDK.
Page 17
Step 7: When the HDCapture SDK is successfully installed, the following window
appears. Click Close to exit. Step 0:
HDC-502E SDK (Windows)
Figure 1-13: Installation Complete

1.3.3 Uninstall HDCapture SDK

To uninstall the HDCapture SDK, follow the steps below.
Step 1: Select Control Panel Æ Programs Æ Programs and Features.
Step 2: Select HDCapture SDK and click the Uninstall button to uninstall the
HDCapture SDK (
Figure 1-14).
Page 18
HDC-502E SDK (Windows)
Figure 1-14: Uninstall HDCapture SDK
Page 19
HDC-502E SDK (Windows)
Chapter
2
2

HDCapture SDK

Page 20
HDC-502E SDK (Windows)

2.1 HDCapture SDK Overview

The HDCapture SDK is a video capture tool that allows user to capture video through the SDI input ports in Windows environment.
NOTE:
If you cannot open the HDCapture SDK in the 64-bit Windows 7 operating system, right-click the HDCapture SDK from the Windows
Start menu, and click Run as administrator.

2.2 Video Configuration

To configure the HDCapture SDK, follow the steps below. If the older version of the HDCapture SDK is already installed, please refer to Section
Step 1: Launch the HDCapture SDK. The best resolution to view HDCapture SDK is
1280 x 1024 or above.
1.3.3 to uninstall it.
Figure 2-1: HDCapture SDK
Page 21
Step 2: Enable and configure the device settings by clicking the Device # (0, 1) buttons.
The device number is decided by which port the device is installed.
Figure 2-2: HDC-502E Device Ports
HDC-502E SDK (Windows)
Step 3: Click the Device # button. The Encoding window appears (
the video input format which depends on the video device. The available options include:
1920x1080 (60p) (6000kps – 20000kps)  1920x1080 (59.94p) (6000kp s – 20000kps)  1920x1080 (50p) (6000kps – 20000kps)  1920x1080 (60i) (6000kps – 20000kps)  1920x1080 (59.94i) (6000kps – 20000kps)  1920x1080 (50i) (6000kps – 20000kps)  1440x1080 (60i) (5000kps – 20000kps)  1440x1080 (59.94i) (5000kps – 20000kps)  1440x1080 (50i) (5000kps – 20000kps)  1280x720 (60p) (4000kps – 20000kps)  1280x720 (59.94p) (4000kps – 20000kps)  1280x720 (50p) (4000kps – 20000kps)  720x480 (60i) (2000kps – 10000kps)
Figure 2-3). Choose
Page 22
720x480 (59.94i) (2000kps – 10000kps)  720x480 (50i) (2000kps – 10000kps)
Step 4: Configure the encoding settings, including encoding file directory (click Ref
button to choose the directory), rate control (CBR or VBR) and video encoding
HDC-502E SDK (Windows)
bitrate (must be in the range of video format). When “CBR” is selected, the “Bitrate” text box is displayed. When “VBR” is selected, the “A verage bitrate” and “Peak bitrate” text boxes are displayed. Close the window to save the settings.
Figure 2-3: Encoding Settings
Step 5: Repeat Step 2 ~ Step 4 to configure the connected input device. Step 0:
Page 23

2.3 Video Capture

To use the HDCapture SDK to capture video, follow the steps below.
HDC-502E SDK (Windows)
Step 1: Click Start to sta rt captu rin g video (
Figure 2-4).
Page 24
Figure 2-4: Capturing Video
Step 2: Click Stop to stop capture.Step 0:
HDC-502E SDK (Windows)
Chapter
3
3

API Introduction

Page 25

3.1 Build Environment

The API build environment requirements are listed below. If build environment is not Microsoft Visual Studio 2005 SP1 or latter, you need to install Microsoft Visual C++ 2005 SP1 Redistributable Package (x86).
Microsoft Windows XP SP2 32-bit  Microsoft Windows 7 32-bit/64-bit  DirectX SDK – August 2007  Windows SDK for Windows Vista (6.0.6000)  Microsoft .NET Framework 2.0/3.0/3.5/4.0 32-bit/64-bit  Microsoft Visual Studio 2005 SP1
NOTE:
HDC-502E SDK (Windows)
The DumpFile.dll and PushFileSource2.dll are filters of DirectShow.
You must register them before using them. Otherwise, you will get an error.

3.2 API Introduction

NOTE:
If API usage in document is different from API usage in SDK source code, the API usage in SDK source code is CORRECT.
Page 26
HDC-502E SDK (Windows)

3.2.1 DeviceMan API Introduction

There are one enum, one structure and two functions in DeviceMan.dll. The source codes are listed below for reference.
typedef struct _CardList_T
{ // Card category. int iCategory; // UI No, usually is the slot No. int iUINo; // Bus No. int iBusNo; // Device number. int iDeviceNum; // Transmitter number. int iTransmitterNum; // Device No of each device. int iDeviceNo[4]; // Device information of each device. char cDeviceInfo[4 * MAX_BUFFER_SIZE]; // Transmitter information of each device. char cTransmitterInfo[4 * MAX_BUFFER_SIZE]; } CardList_T;
and the MAX_BUFFER_SIZE is 512.
enum
{ DEVICE_MAN_RESULT_SUCCESS = 0, DEVICE_MAN_RESULT_NULL_ADDRESS, // ASCII to Unicode failed. DEVICE_MAN_RESULT_ATOU_FAILED,
Page 27
// Unicode to ASCII failed. DEVICE_MAN_RESULT_UTOA_FAILED, DEVICE_MAN_RESULT_INVALID_HANDLE, DEVICE_MAN_RESULT_BUF_ERR_MAXIMUM, DEVICE_MAN_RESULT_BUF_ERR_LENGTH, DEVICE_MAN_RESULT_BUF_ERR_OVER_MAX, // Input parameter error. DEVICE_MAN_RESULT_PARAMETER_ERROR, // Memory allocate failed. DEVICE_MAN_RESULT_MEM_ALLOC_FAILED, // No capture card. DEVICE_MAN_RESULT_NO_CARD, // Get UI No. failed. DEVICE_MAN_RESULT_GET_UI_NO_FAILED,
HDC-502E SDK (Windows)
// Get bus No. failed. DEVICE_MAN_RESULT_GET_BUS_NO_FAILED, // Get information failed. DEVICE_MAN_RESULT_GET_INFO_FAILED, // CPLD check failed. DEVICE_MAN_RESULT_CPLD_FAILED, DEVICE_MAN_RESULT_UNKNOWN_ERROR };
1. DeviceManGetVersion(int* ot_ipVerYear,int* ot_ipVerMonth,int* ot_ipVerDay) Description: Get DeviceMan.dll verion. Parameter: ot_ipVerYear : Integer pointer of year version. ot_ipVerMonth: Integer pointer of month version. ot_ipVerDay: Integer pointer of day version. Return: An integer, see enum type.
Page 28
2. DeviceManGetCardList(int* ot_ipCardNum, void** ot_ppCardList) Description: Get capture card list.
HDC-502E SDK (Windows)
Parameter: ot_ipCardNum: Integer pointer of card number. ot_ppCardList: Void pointer of card list. Return: An integer, see enum type.

3.2.2 CPLDMan API Introduction

The CPLDMan.dll is the same with the DeviceMan.dll. The detail usage can be found in the source code.
enum
{ CPLD_RESULT_SUCCESS = 0, CPLD_RESULT_MEM_ALLOC_FAILED, CPLD_RESULT_LIB_INITIALIZED, CPLD_RESULT_LIB_UNINITIALIZED, CPLD_RESULT_LIB_INITIALIZE_FAILED, CPLD_RESULT_LIB_UNINITIALIZE_FAILED, CPLD_RESULT_OPENED_NUMBER_OVER, CPLD_RESULT_OPEN_FAILED, CPLD_RESULT_INVALID_CERTIFICATE, CPLD_RESULT_INVALID_PARAMETER, CPLD_RESULT_VIDEO_SOURCE_GET_FAILED, CPLD_RESULT_VIDEO_SOURCE_SET_FAILED, CPLD_RESULT_VIDEO_RESOLUTION_NO_OUTPUT, CPLD_RESULT_VIDEO_RESOLUTION_NO_HDMI, CPLD_RESULT_VIDEO_RESOLUTION_INVALID, CPLD_RESULT_VIDEO_RESOLUTION_GET_FAILED, CPLD_RESULT_VERSION_8051_GET_FAILED, CPLD_RESULT_VERSION_CPLD_GET_FAILED, CPLD_RESULT_VERSION_FPGA_GET_FAILED };
Page 29
1. CPLDManGetVersion(int* ot_ipVerYear,int* ot_ipVerMonth, int* ot_ipVerDay) Description: Get CPLDMan.dll version. Parameter: ot_ipVerYear : Integer pointer of year version. ot_ipVerMonth: Integer pointer of month version. ot_ipVerDay: Integer pointer of day version. Return: An integer, see enum type.
HDC-502E SDK (Windows)
2. CPLDManInitialize(); Description: Initialize CPLD library. Parameter: N/A. Return: An integer, see enum type.
3. CPLDManUninitialize(); Description: Uninitialize CPLD library. Parameter: N/A. Return: An integer, see enum type.
4. CPLDManOpen(int in_iBusNo) Description: Open CPLD. Parameter: in_iBusNo: Bus No. of CPLD.
Page 30
Return: An integer, see enum type.
5. CPLDManClose(int in_iBusNo)
HDC-502E SDK (Windows)
Description: Close CPLD. Parameter: in_iBusNo: Bus No. of CPLD. Return: An integer, see enum type.
6. CPLDManCodecVideoSrcGet(int in_iBusNo, int in_iCodecNo, int* ot_ipValue) Description: Get video source of codec. Parameter: iBusNo: Bus No. of CPLD. in_ iCodecNo: Codec No. ot_ipValue: Integer pointer of video source, used in get funcion. Return: An integer, see enum type.
7. CPLDManCodecVideoSrcSet(int in_iBusNo, int in_iCodecNo, int in_iValue) Description: Set video source of codec. Parameter: iBusNo: Bus No. of CPLD. in_ iCodecNo: Codec No. in_iValue: Video source, used in set function. Return: An integer, see enum type.
8. CPLDManTXVideoSrcGet(int in_iBusNo, int in_iTXNo, int* ot_ipValue) Description: Get video source of transmitter. Parameter: iBusNo: Bus No. of CPLD. in_ iTXNo: Transmitter No. ot_ipValue: Integer pointer of video source, used in get funcion. Return:
Page 31
An integer, see enum type.
HDC-502E SDK (Windows)
9. CPLDManTXVideoSrcSet(int in_iBusNo, int in_iTXNo, int in_iValue) Description: Set video source of transmitter. Parameter: iBusNo: Bus No. of CPLD. in_ iTXNo: Transmitter No. in_iValue: Video source, used in set function. Return: An integer, see enum type.
10. CPLDMan8051Version(int in_iBusNo, int* ot_ipValue);
11. CPLDManCPLDVersion(int in_iBusNo, int* ot_ipValue);
12. CPLDManFPGAVersion(int in_iBusNo, int* ot_ipValue); Description: Get firmware version of 8051 / CPLD / FPGA. Parameter: in_iBusNo: Bus No. of CPLD. ot_ipValue: Integer pointer of firmware version. Return: An integer, see enum type.
Page 32
HDC-502E SDK (Windows)

3.2.3 Mb86H55rebDll API Introduction

The Mb86H55rebDll API only has C# version now. The detail usage can be found in the source code.

3.2.4 Role of Mb86H55rebDll API

C# Application Layer
Mb86H55rebDll API
ApCmn.dll
DumpFile.dll
Capture Card
The application can use Mb86H55rebDll API to control capture card.

3.2.5 Using Mb86H55rebDll API

Step 1: Put the “ApCmn.dll”, “ApScenario.dll”, “DumpFile.dll”, “Mb86H55rebDll.dll” and
ApScenario.dll
PushFileSource2.dll
“PushFileSource2.dll” in the folder where execution file exist.
NOTE:
The DumpFile.dll and PushFileSource2.dll are filters of DirectShow. The user must register them before using them, otherwise an error will occur.
Step 2: Use name space:
using Mb86H55rebDll;
Page 33
Step 3: Declare variable to control MB86H55 as below:
Mb86H55reb mb86h55reb = new Mb86H55reb;
Step 4: Add the following event handler:
protected override void WndProc(ref Message m)
{ DoMb86h55Events(ref m); base.WndProc(ref m); }
private void DoMb86h55Events(ref Message m)
{ Mb86H55reb.AsyncEventResult result; string comment;
HDC-502E SDK (Windows)
result = mb86h55reb.OnMsg(ref m, out comment); UpdateScreenAfterEvents(result, comment); }
Step 5: In the function UpdateScreenAfterEvents(),other control functions can be added
according to the purpose. For example: Error message report function.
private void UpdateScreenAfterEvents(Mb86H55reb.AsyncEventResult result, string comment)
{ switch (result) { case Mb86H55reb.AsyncEventResult.OperationComplete: break; case Mb86H55reb.AsyncEventResult.OperationCompleteStop: mb86h55reb.Reset();
Page 34
break; case Mb86H55reb.AsyncEventResult.OperationCompleteAutoStop:
HDC-502E SDK (Windows)
mb86h55reb.Reset();
break; case Mb86H55reb.AsyncEventResult.OperationCancel:
break;
case Mb86H55reb.AsyncEventResult.Warning:
break;
case Mb86H55reb.AsyncEventResult.SeriousError:
break;
case Mb86H55reb.AsyncEventResult.HdmiCableStatusChanged:
break;
case Mb86H55reb.AsyncEventResult.OperationContinue:
break;
case Mb86H55reb.AsyncEventResult.AudioStatusChanged:
break;
default: break; } }
void SystemEvents_PowerModeChanged(object sender,
Microsoft.Win32.PowerModeChangedEventArgs e) {
switch (e.Mode)
{
case Microsoft.Win32.PowerModes.Suspend:
mb86h55reb.Close(); break;
case Microsoft.Win32.PowerModes.Resume:
mb86h55reb.DirectShowEnabled(miChipNo, mbDirectShowEnabled); mbIsMb86h55rebOpened = mb86h55reb.Open(miChipNo,this.Handle);
Page 35
mb86h55reb.SetCanvasHandle(mPnlCanvas.Handle); mb86h55reb.ApplyGpio(); mb86h55reb.RebootFirm(); SetScreenMode(ScreenMode.Processing); mb86h55reb.Reset();
break;
} }
Step 6: Before using MB86H55REB, it must be initialized:
mb86h55reb.Close(); mb86h55reb.DirectShowEnabled(miChipNo, mbDirectShowEnabled); mbIsMb86h55rebOpened = mb86h55reb.Open(miChipNo,thi s.Han dle);
HDC-502E SDK (Windows)
mb86h55reb.SetCanvasHandle(mPnlCanvas.Handle); mb86h55reb.ApplyGpio(); mb86h55reb.RebootFirm(); mb86h55reb.Reset();
Step 7: Refer the following function for detail:
frmMain_Load() SystemEvents_PowerModeChanged() cmbBoardSelection_SelectedIndexChanged()

3.2.6 Mb86H55rebDll API Description

Simplify description of Mb86H55rebDll variable, interface and API. Refer to the source code to get the detail usage.
Variable:
1. string h264FileName
Page 36
Encode / decode file name.
Interface
HDC-502E SDK (Windows)
1. FMBVideoFormatEnum h264VideoFormat Video formate.
enum FMBVideoFormatEnum
{
FMBEnmVideoFmt1920x1080,
FMBEnmVideoFmt1440x1080, FMBEnmVideoFmt1280x720, FMBEnmVideoFmt720x480, FMBEnmVideoFmt720x576, EnmVideoNumofFmt
};
2. FMBVideoFrameEnum h264VideoFrame Video frame rate.
enum FMBVideoFrameEnum
{
FMBEnmVideoFrm_60p,
FMBEnmVideoFrm_5994p, FMBEnmVideoFrm_50p, FMBEnmVideoFrm_60i, FMBEnmVideoFrm_5994i, FMBEnmVideoFrm_50i, EnmVideoNumofFrm
};
3. FMBVideoRateCtlEnum h264VideoRateCtl Video rate control.
enum FMBVideoRateCtlEnum
{
FMBEnmVideoRateCtlCbr, FMBEnmVideoRateCtlVbr,
};
Page 37
4. int h264VideoBitrateCbr Video CBR bitrate value.
5. int h264VideoBitrateAverage Video average bitrate for VBR.
6. int h264VideoBitratePeak Video peak bitrate for VBR.
7. int[] h264Pids = new int[(int)PidTypeEnum.EnmPidNumofPid]; PID value array.
enum PidTypeEnum
HDC-502E SDK (Windows)
{
EnmPidVideo, EnmPidAudio, EnmPidPmt, EnmPidSit, EnmPidPcr, EnmPidNumofPid
};
8. FMBFuncModeEnum operationMode Operation mode.
enum FMBFuncModeEnum
{
FMBEnmFuncModeEnc, FMBEnmFuncModeDec,
};
Page 38
9. int pciNo Get current PCI / chip No.
HDC-502E SDK (Windows)
10. bool isStreamRunning Get is stream runnging.
API
1. bool Open(int pciNoArg, IntPtr hWnd) Description: Open device. Parameter: pciNoArg: Device (chip) No. hWnd: Window handle.
2. void Close() Description: Close device.
3. void Encode() Description: The encode is begun.
4. void Decode() Description: The decode is begun.
5. void Stop() Description: The stop is begun.
6. void Reset() Description: The reset is begun.
7. AsyncEventResult OnMsg(ref Message m, out string comment) Description: It is processed to receive the message.
Page 39
Parameter: m: Value of message comment: Comment form me Return: Value of AsyncEventResult
public enum AsyncEventResult
{
UnknownEvent, OperationContinue, OperationComplete, OperationCompleteStop, OperationCompleteAutoStop, OperationCancel,
HDC-502E SDK (Windows)
Warning, SeriousError, HdmiCableStatusChanged, AudioStatusChanged,
}
8. bool Equals(ref Mb86H55reb target) Description: Oneself is compared with the argument. Parameter: target: target Return: true:equal, false:not equal.
9. void CommitProperty() Description: The change in property is committed.
Page 40
10. void ApplyGpio() Description: Property is applied to the GPIO device.
HDC-502E SDK (Windows)
11. void RebootFirm() Description: Firm is rebooted.
12. void SetChipNo(int in_iChipNo) Description: Set device (chip) No. This function will change the chip ID, use it be carefully. Parameter: in_iChipID: Chip ID. in_iBusNumber: Bus No. in_iDevNumber: Device No.
13. void DirectShowEnabled(int in_iChipNo, bool in_bFlag) Description: Enable / disable DirectShow. Parameter: in_iChipNo: Chip No. in_bFlag: true is enabled, false is disabled.
Page 41

3.3 DirectShow Graph

3.3.1 Encoding Graph

HDC-502E SDK (Windows)
Input Source
Source Filter
(MB86H55-REB)
Dump Filter
File in HDD
Page 42
HDC-502E SDK (Windows)

3.4 Architecture of SDK

Chip / codec / device usually means the same thing.
HDCapture SDK
C# Application
Get capture card information
OS
CPLDMan.dll DeviceMan.dll Mb86H55rebDll.dll
Control CPLD. Ex: Get / Set video source.
CPLD
Control chip / codec / device. Ex: Encode / Decode.
Chip
Codec
Device
Page 43
HDC-502E SDK (Windows)
Chapter
4
4

FAQ

Page 44
HDC-502E SDK (Windows)
Q: Capture card, driver, application and input source are ready, but there is no image on
the display or the image is displayed incorrectly.
A: The proper video codec is needed to display H.264 video image. For example: ffdshow codec.
Q: How do I check the current DirectX version?
A: In Windows, navigate to Start Æ Run Æ Type ‘dxdiag’ Æ Enter. The current version is
displayed in the DirectX Diagnostic Tool window.
Q: Input source and encoding are both set to 1080 60p, but the application cannot encode.
A: The chip is critical for input stream timing. Make sure the input stream frequency is 1080 60p.
Q: How do I obtain the latest driver?
A: Go to
from the “Support” pages.
http://www.ieiworld.com/. You can always find and download the latest drivers
Page 45
HDC-502E SDK (Windows)
Appendix
A
A
Error Code
Page 46
HDC-502E SDK (Windows)

A.1 Error Code Overview

Error register (M_ERROR_INFO_H and M_ERROR_INFO_L)
Name M_ERROR_INFO_H M_ERROR_INFO_L
Bit 15…….…..….8 7…………….0 15…………………………....0
Field
ERROR_ MODULE[7:0]

A.2 ERROR_MODULE[7:0]

Module where the error occurred. The table below outlines the relationship between values and modules.
Value Module Name Function Mode 0x00 HOSTCMD Host communication library ENC, DEC 0x01 ETOP Recorder-wide controller ENC 0x02 DTOP Player-wide controller DEC 0x03 BACKGROUND Interrupt controller ENC, DEC 0x04 VREC Video input controller ENC 0x05 VMUX Video multiplex controller ENC 0x06 AREC Audio input controller ENC
ERROR_STATUS[23:0]
0x07 AMUX Audio multiplex controller ENC 0x08 SMUX System multiplex controller ENC 0x09 VPLAY Video playback controller DEC 0x0A VDMX Video decode controller DEC 0x0B APLAY Audio playback controller DEC 0x0C ADMX Audio decode controller DEC 0x0D SDMX System stream controller DEC 0x0E SAPI Serial communication controller ENC, DEC
Page 47

A.3 ERROR_STATUS[23:0]

Detailed error cause. The relationship between the values and error causes is described in the following sections.

A.3.1 IDLE

HDC-502E SDK (Windows)
ERROR_MODULE[7:0] ERROR_MODULE[23:0]
Value
0x00
Name Value Name
0x00_0001 INVALID_SCMD_CMD_ID
HOSTCMD
0x00_0002 SCMD_CC_NOT_CONTINUOUS
HOSTCMD_ERR_SCMD_
0x00_0003
UNACCEPTABLE_FIRMWARE
Outline
The system command parameter cmd_id is invalid The system command parameter continuity_counter values are not consecutive
Incorrect firmware
Page 48
HDC-502E SDK (Windows)

A.3.2 ENC

ERROR_MODULE[7:0] ERROR_MODULE[23:0] Value Name Value Name
0x00_0001 INVALID_SCMD_CMD_ID
0x00 HOSTCMD
0x01 ETOP
0x00_0002 SCMD_CC_NOT_CONTINUOUS
HOSTCMD_ERR_SCMD_
0x00_0003
UNACCEPTABLE_FIRMWARE
0x00_0001 FIFO_OVERFLOW The event queue overflowed
0x00_0002 INVALID_SCMD_INIT_PARAM
0x00_0003 INVALID_VCMD_INIT_PARAM
Outline
The system command parameter cmd_id is invalid The system command parameter continuity_counter values are not consecutive
Incorrect firmware
An invalid value is specified in initialization dedicated parameter register M An invalid value is specified in initialization dedicated
0x00_0004 INVALID_ACMD_INIT_PARAM
0x00_0005 UNACCEPTABLE_EVENT
0x00_0006 INVALID_SCMD_CMD_ID
0x00_0007
0x00_0008
0x00_0009
ANOTHER_SCMD_ BEFORE_SCMD_ACK
SCMD_CC_NOT_ CONTINUOUS
INVALID_SMES_ACK_CMD_ID
parameter register V An invalid value is specified in initialization dedicated parameter register A An event that cannot be handled by the ETOP was received The system command parameter cmd_id is invalid A subsequent system command was received before an acknowledge was returned The system command parameter continuity_counter values are not consecutive The system command parameter cmd_id is invalid
Page 49
HDC-502E SDK (Windows)
0x03
BACKGROUND
0x00_000A
ANOTHER_SMES_ACK_ BEFORE_SMES
SMES_ACK_CC_
0x00_000B
NOT_CONTINUOUS
0x00_000C SMES_ACK_NOT_RECIEVED
0x00_000D INNER_ERROR ETOP internal error 0x00_000E EVENT_QUEUE_OVERFLOW The event queue overflowed
0x00_0001 INVALID_VCMD_INIT_PARAM
An acknowledge was received althought no subsequent system message was sent The system command parameter continuity_counter values are not consecutive Before reception of a system message acknowledge, the next message was generated
The value of the initialization dedicated parameter register V
0x04 VREC
0x05 VMUX
is invalid There is a problem concerning
0x00_0002 VIDEO_CPU_ACCESS
0x00_0003 FIFO_OVERFLOW Some idx_fifo overflowed 0x00_0004 FIFO_EMPTY Some idx_fifo became empty
0x00_0005
0x00_0006 UNACCEPTABLE_EVENT Invalid event
0x00_0007 INVALID_IDX
0x00_0008 INNER_ERROR VREC internal error 0x00_0009
0x00_0001 NG Unclassified VMUX internal error
0x00_0002 UNDERFLOW
UNACCEPTABLE_ HOSTCMD_EVENT
EVENT_QUEUE_OVERFLOW The event queue overflowed
communication with the video section
Invalid HOSTCMD event
The VRAW _idx value became invalid
A video stream buffer underflow was detected
0x00_0003
Page 50
VBV_BOC VBV discontinuity was detected
HDC-502E SDK (Windows)
0x00_0004 STRM_BUF_OVERWRITTEN
0x00_0005 INVALID_HOST_CMD Invalid HOSTCMD event 0x00_0006 INVALID_EVENT Invalid event 0x00_0007 FIFO_OVERFLOW Some idx_fifo overflowed 0x00_0008 FIFO_EMPTY Some idx_fifo became empty
0x00_0009 INVALID_MUXCMD
0x00_000A INVALID_PARAM Invalid parameter
0x00_0001 INVALID_INIT_PARAM
0x00_0002 AUDIO_CPU_ACCESS
0x00_0003 AUDI_IN
A stream buffer overwrite was detected
Invalid command to the multiplexing section
Invalid initialization parameter value There is a problem concerning communication with the audio section An error occurred during audio input access
0x06 AREC
0x07 AMUX
0x00_0004 FIFO_OVERFLOW Some idx_fifo overflowed 0x00_0005 FIFO_EMPTY Some idx_fifo became empty
0x00_0006
0x00_0007 UNACCEPTABLE_EVENT Invalid event
0x00_0008 INVALID_IDX
0x00_0009 INNER_ERROR AREC internal error 0x00_000A
0x00_0001 NG Unclassified AMUX internal error 0x00_0002 INVALID_HOST_CMD Invalid HOSTCMD event 0x00_0003 INVALID_EVENT Invalid event 0x00_0004 FIFO_OVERFLOW Some idx_fifo overflowed 0x00_0005 FIFO_EMTPY Some idx_fifo became empty
0x00_0006
UNACCEPTABLE_
Invalid HOSTCMD event
HOSTCMD_EVENT
The ARAW_idx value became invalid
EVENT_QUEUE_OVERFLOW The event queue overflowed
Invalid command to the
INVALID_MUXCMD
multiplexing section
Page 51
0x00_0001 NG Unclassified SUX internal error 0x00_0002 INVALID_HOST_CMD Invalid HOSTCMD event 0x00_0003 INVALID_EVENT Invalid event 0x00_0004 INVALID_EVENT_SOURCE Invalid event issuer 0x00_0005 INVALID_EVENT_PARAM Invalid event parameter 0x00_0006 INVALID_PARAM Invalid parameter 0x00_0007 START_STC STC start processing error 0x00_0008 FIRST_PCR FIRST_PCR processing error
HDC-502E SDK (Windows)
0x08 SMUX
0x0E SAPI
0x00_0009 FIRST_PAT FIRST_PAT processing error
0x00_000A
0x00_000B AUTO_NULL_ON NULL output processing error
0x00_000C AUTO_NULL_OFF
0x00_000D STOP Stop processing error
0x00_000E
0x00_0001 OVERFLOW A buffer overflow occurred
0x00_0002
INVALID_ VMUX_AMUX_STATE
INVALID_MUXCMD
UNEXPECTED_ TRANS_DATA_IRQ
VMUX or AMUX state transition error
NILL output stop processing error
Invalid command to the multiplexing section
A data transmission completion interrupt was received when it should not have been
Error notification from the video section (details are displayed in the error register V_ERROR_INFO) Error notification from the audio section (details are displayed in the error register A_ERROR_INFO)
0xFF
(Special, tentative)
0x00_0001
0x00_0002
Page 52
HDC-502E SDK (Windows)

A.3.3 DEC

ERROR_MODULE[7:0] ERROR_MODULE[23:0] Value Name Value Name
0x00_0001 INVALID_SCMD_CMD_ID
0x00 HOSTCMD
0x02 DTOP
0x00_0002 SCMD_CC_NOT_CONTINUOUS
HOSTCMD_ERR_SCMD_
0x00_0003
UNACCEPTABLE_FIRMWARE
0x00_0001 FIFO_OVERFLOW An FIFO overflow occurred
0x00_0002 INVALID_SCMD_INIT_PARAM
0x00_0003 INVALID_VCMD_INIT_PARAM
Outline
The system command parameter cmd_id is invalid The system command parameter continuity_counter values are not consecutive
Incorrect firmware
The value specified in the initialization dedicated parameter register M is invalid The value specified in the initialization dedicated parameter
0x00_0004 INVALID_ACMD_INIT_PARAM
UNACCEPTABLE_
0x00_0005
STRM_INPUT_EVENT UNACCEPTABLE_
0x00_0006
STATE_CHANGE_EVENT
0x00_0007 INVALID_SCMD_CMD_ID
0x00_0008 INVALID_SCMD_SUB_CMD_ID
ANOTHER_SCMD_
0x00_0009
BEFORE_SCMD_ACK
register V is invalid The value specified in the initialization dedicated parameter register A is invalid An invalid stream input control event was received An invalid state transition notification event was received The system command parameter cmd_id is invalid The system command parameter sub_cmd_id is invalid A subsequent system command was received before an acknowledge was returned
Page 53
HDC-502E SDK (Windows)
The system command parameter
0x00_000A SCMD_CC_NOT_CONTINUOUS
0x00_000B INVALID_VIDEO_CPU_STATE
0x00_000C INVALID_AUDIO_CPU_STATE
ERROR_NOTIFIED_
0x00_000D
FROM_VIDEO_CPU
ERROR_NOTIFIED_
0x00_000E
FROM_AUDIO_CPU
0x00_000F INNER_ERROR DTOP internal error
0x04_xxxx
continuity_counter values are not consecutive The state of the video section is invalid The state of the audio section is invalid Error notification from the video section (details are displayed in the error register V_ERROR_INFO) Error notification from the audio section (details are displayed in the error register A_ERROR_INFO)
An error occurred during processing of an interrupt from
0x03 BACKGROUND
0x09 VPLAY
the AUDIO_SPDIF output An error occurred during
0x05_xxxx
0x09_xxxx
0x0D_xxxx
0x00_0001 FIFO_OVERFLOW An FIFO overflow occurred
UNACCEPTABLE_
0x00_0002
HOSTCMD_EVENT
0x00_0003 INVALID_PARAM
processing of an interrupt from the audio output An error occurred during processing of an interrupt from the video output An error occurred during processing of an interrupt from the stream splitter
An invalid state transition instruction event was received Invalid argument
Page 54
HDC-502E SDK (Windows)
The initialization dedicated
0x00_0004 INVALID_INIT_PARAM
0x00_0005 INVALID_VIDEO_OUT_STATE
0x00_0006 INVALID_AUDIO_OUT_STATE
INVALID_
0x00_0007
VIDEO_OUT_STC_STATE INVALID
0x00_0008
_AUDIO_OUT_STC+STATE
0x00_0009 INNER_ERROR VPLAY module internal error
0x00_000A VIDOE_OUT_INNER_ERROR
0x00_000B AUDIO_OUT_INNER_ERROR
0x00_000C UNIMPLEMENTED
parameter register V is invalid
The state of the video output hardware is invalid The state of the audio output hardware is invalid The STC state of the video output hardware is invalid The STC state of the audio output hardware is invalid
The internal state of the video output hardware is invalid The internal state of the audio output hardware is invalid No corrective measure has been implemented
0x0A VDMX
0x0B APLAY
An urgent action was take because
0x00_000D NO_VALID_VIDEO_ES_INPUT
0x00_0001 FIFO_OVERFLOW An FIFO overflow occurred 0x00_0002 INVALID_PARAM Invalid argument
UNACCEPTABLE_
0x00_0003
HOSTCMD_EVENT
0x00_0004 INVALID_VIDEO_CPU_STATE
0x00_0005 INNER_ERROR VDMX module internal error
0x00_0006 DEMUX_INNER_ERROR
0x00_0001 FIFO_OVERFLOW
a valid video ES input delay was detected
An invalid HOSTCMD event was received The state of the video section is invalid
Stream splitting hardware internal error
An FIFO overflow occurred
Page 55
HDC-502E SDK (Windows)
The initialization dedicated
0x00_0002 INVALID_INIT_PARAM
UNACCEPTABLE_
0x00_0003
HOSTCMD_EVENT
UNACCEPTABLE_
0x00_0004
AUDIO_OUT_CONTROL_EVENT
UNACCEPTABLE_
0x00_0005
AUDIO_OUT_DONE_EVNET
0x00_0006 INVALID_AUDIO_OUT_STATE
INVALID_
0x00_0007
AUDIO_OUT_STC_STATE
0x00_0008 INVALID_MUTE_CONTROL Invalid mute control was used
0x00_0009 NEXT_AFRAME_IDX_CONFLICT
parameter register A is invalid
Invalid HOSTCMD event
Invalid AUDIO_ OUTPUT_ CONTROL event Invalid AUDIO_ OUTPUT_DONE event The state of the audio output hardware is invalid The STC state of the audio output hardware is invalid
The specification of the next frame was repeated
0x0C ADMX
0x00_000A INNER_ERROR
0x00_000B AUDIO_OUT_INNER_ERROR
0x00_000C UNIMPLEMENTED
INVALID_
0x00_000D
AUDIO_OUT_SPDFI_STATE AUDIO_OUT_
0x00_000E
SPDIF_INNER_ERROR
0x00_0001 FIFO_OVERFLOW An FIFO overflow occurred 0x00_0002 INVALID_PARAM Invalid argument
UNACCEPTABLE_
0x00_0003
HOSTCMD_VENT
0x00_0004 INVALID_AUDIO_CPU_STATE
The internal state of the APLAY module is invalid The internal state of the audio output hardware is invalid No corrective measure has been implemented The state of the audio output hardware (SPDIF) is invalid The internal state of the audio output hardware (SPDIF) is invalid
An invalid HOSTCMD event was received The state of the audio section is invalid
Page 56
HDC-502E SDK (Windows)
0x00_0005 INNER_ERROR VDMX module internal error
0x0D SDMX
0x00_0006 DEMUX_INNER_ERROR
0x00_0001 FIFO_OVERFLOW An FIFO overflow occurred 0x00_0002 INVALID_PARAM Invalid argument
0x00_0003 INVALID_INIT_PARAM
0x00_0004 INVALID_DEMUX_STATE
0x00_0005 SEQ_NUM_UNCNAHGED
UNACCEPTABLE_
0x00_0006
HOSTCMD_EVENT
0x00_0007 INNER_ERROR SDMX module internal state error
UNACCEPTABLE_STRM_
0x00_0008
INPUT_CONTROL_EVENT
Stream splitting hardware internal error
The initialization dedicated parameter register M is invalid The state of the stream splitting hardware is invalid seq_num is the same as the value previously specified An invalid HOSTCMD event was received
An invalid STRM_ INPUT_CONTROL event was received
0x0E SAPI
0x00_0009 DEMUX_INNER_ERROR
0x00_000A INVALID_SECTION_FROMAT
0x00_0001 OVERFLOW A buffer overflow occurred
UNEXPECTED_
0x00_0002
TRANS_DATA_IRQ
The internal state of the stream splitting hardware is invalid The PSI section is in an invalid format
A data transmission completion interrupt was received when it should not have been
Page 57
Loading...