You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>IVC</strong>-<strong>4300</strong><br />
User Manual<br />
Version 2.0.0<br />
IEI Technology Corp.<br />
<strong>IVC</strong>-<strong>4300</strong> 1
<strong>IVC</strong>-<strong>4300</strong><br />
4-Channel MPEG-4 PCI Capture Card<br />
User Manual Version 2.0.0<br />
©Copyright 2005. IEI Technology Corp. All Rights Reserved.<br />
This manual applies to version 2.0.0 of <strong>IVC</strong>-<strong>4300</strong>.<br />
Jul 25, 2007<br />
<strong>IVC</strong>-<strong>4300</strong> 1
Limited Warranty<br />
In no event shall the liability of IEI Technology Corp. (IEI) exceed the price paid<br />
for the product from direct, indirect, special, incidental, or consequential software,<br />
or its documentation. IEI offers no refunds for its products. IEI makes no<br />
warranty or representation, expressed, implied, or statutory, with respect to its<br />
products or the contents or use of this documentation and all accompanying<br />
software, and specifically disclaims its quality, performance, merchantability, or<br />
fitness for any particular purpose. IEI reserves the right to revise or update its<br />
products, software, or documentation without obligation to notify any individual<br />
or entity.<br />
Copyright Notice<br />
The information in this document is subject to change without prior notice in<br />
order to improve reliability, design and function and does not represent a<br />
commitment on the part of the manufacturer. This document contains<br />
proprietary information protected by copyright. All rights are reserved. No part<br />
of this manual may be reproduced by any mechanical, electronic, or other means<br />
in any form without prior written permission of the manufacturer.<br />
Trademarks<br />
<strong>IVC</strong>-<strong>4300</strong> is a registered trademark of IEI Technology Corp. IBM PC is a<br />
registered trademark of International Business Machines Corporation. Intel is a<br />
registered trademark of Intel Corporation. Award is a registered trademark of<br />
Award Software International, Inc. Other product names mentioned herein are<br />
used for identification purpose only and may be trademarks and/or registered<br />
trademarks of their respective companies.<br />
Support<br />
For any questions regarding the content of this manual or the product, please<br />
contact us at: support@IEI.com.tw.<br />
<strong>IVC</strong>-<strong>4300</strong> 2
Table of Contents<br />
Chapter 1 Introduction................................................................................4<br />
1.1 Features .......................................................................................4<br />
1.2 Package Contents ..........................................................................4<br />
1.3 System Requirements.....................................................................4<br />
Chapter 2 Installation of <strong>IVC</strong>-<strong>4300</strong> ...............................................................6<br />
2.1 Hardware Installation .....................................................................6<br />
2.2 General Purpose Input Output (GPIO) Connections .............................6<br />
2.3 Software Installation .................................................................... 10<br />
2.4 Driver Installation ........................................................................ 15<br />
2.5 Check DirectX Version .................................................................. 20<br />
Chapter 3 <strong>IVC</strong>-<strong>4300</strong> SDK Programmer Guide................................................ 21<br />
3.1 Introduction to DirectShow Application Programming ........................ 21<br />
3.2 Filter Description.......................................................................... 21<br />
3.2.1 Source Filter ............................................................... 21<br />
3.2.2 Video Decoder Filters.................................................. 22<br />
3.2.3 Video Renderer Filter.................................................. 23<br />
3.2.4 Mux Filters.................................................................. 23<br />
3.2.5 File Writer Filters........................................................ 24<br />
3.2.6 Audio Renderer Filter.................................................. 25<br />
3.2.7 Audio Compressor Filter.............................................. 25<br />
3.2.8 Smart Tee Filter .......................................................... 25<br />
3.2.9 CrossBar Filter............................................................ 26<br />
3.3 Example Graphs .......................................................................... 26<br />
3.3.1 MPEG4 Stream ............................................................ 28<br />
3.3.2 MPEG2/1 Stream ........................................................ 29<br />
3.4 SDK Library Reference .................................................................. 30<br />
3.4.1 <strong>IVC</strong>Func Interface....................................................... 30<br />
3.4.2 Enumerations ............................................................. 32<br />
Appendix A FAQ ....................................................................................... 34<br />
<strong>IVC</strong>-<strong>4300</strong> 3
Chapter 1 Introduction<br />
<strong>IVC</strong>-<strong>4300</strong> is a video capture card capable of achieving real-time four-channel<br />
MPEG-4 encoding and is the best tool to help you make high quality videos.<br />
<strong>IVC</strong>-<strong>4300</strong> has four MPEG-4 encoding chips and is able to record video with quality<br />
similar to DVD. <strong>IVC</strong>-<strong>4300</strong> can be used to develop multimedia applications such<br />
as video editing, streaming networks, medical video networks, corporate distance<br />
learning, and video on demand (VOD), etc.<br />
1.1 Features<br />
• Video Input: 4-channel BNC Composite Video, NTSC/PAL<br />
• Audio Input: 4-channel Stereo Audio<br />
• PCI Interface: PCI V2.1 Compliance, Plug & Play support<br />
• Video Compression: MPEG-4 Simple Profile@L3 MPEG-2 MP@ML MPEG-1<br />
• Video Resolution: 720x480, 352x240 (NTSC) 720x576, 352x288 (PAL)<br />
• Frame Rate: 30 FPS (NTSC) for each channel 25 FPS (PAL) for each channel<br />
• Video Quality: DVD quality full D1 video at 2 Mbps~9 Mbps<br />
• High quality full D1 video at 1 Mbps High quality CIF video at 384 Kbps<br />
• Video Input Detection<br />
• Audio Input: 4-channel Stereo Audio or Mono<br />
• Audio Sampling Rate: 44.1KHz, 48KHz, 32KHz, 22.5KHz, 16KHz, 11.025KHz,<br />
8KHz<br />
• Audio Quantization: 16 bit<br />
• Audio Format: PCM<br />
• GPIO Control: 4 Input & 4 Output<br />
• Device Driver: WDM drivers for Windows 2000 and Windows XP Systems<br />
• SDK: Provides SDK with demo program for software application development<br />
1.2 Package Contents<br />
• <strong>IVC</strong>-<strong>4300</strong> video capture card<br />
• Audio cable<br />
• CD-ROM<br />
• User manual<br />
Note: GPIO module is not included in the standard package. Please contact our<br />
sales representatives for purchase information.<br />
1.3 System Requirements<br />
• IBM or IBM compatible computer<br />
• For single video channel: Pentium 4, 2.0 GHz CPU<br />
• For more than one video channel: Pentium4, 3.0 GHz HT CPU, or better<br />
processor for reasonable decoding and display quality<br />
• Minimum 256MB memory<br />
• SVGA display adapter supporting DirectDraw<br />
• At least one unoccupied PCI slot and IRQ<br />
• Window Screen setting at 16 bits color or higher<br />
• UDMA Bus Mastering IDE or SCSI HDD for video capture<br />
• OS: Windows 2000 and XP<br />
• Microsoft DirectX 9.0b (or above version) installed<br />
<strong>IVC</strong>-<strong>4300</strong> 4
Note: If the system has installed other video capture cards, make sure the<br />
previous driver is removed from the system.<br />
You need to install Microsoft Direct X 9.0b (or above). The setup program will<br />
automatically install it for you.<br />
About DirectX 9.0b:<br />
DirectX 9.0b is a Microsoft freeware. DirectX 9.0b helps improve multimedia<br />
experiences on most PCs. Since DirectX 9.0b is a system component, it is<br />
impossible to remove DirectX 9.0b without uninstalling your OS.<br />
<strong>IVC</strong>-<strong>4300</strong> 5
Chapter 2 Installation of <strong>IVC</strong>-<strong>4300</strong><br />
2.1 Hardware Installation<br />
Follow the steps below to install <strong>IVC</strong>-<strong>4300</strong>.<br />
1. Power off the computer.<br />
2. Plug <strong>IVC</strong>-<strong>4300</strong> into a PCI slot of your computer.<br />
3. Fasten <strong>IVC</strong>-<strong>4300</strong> on the computer case.<br />
Note: <strong>IVC</strong>-<strong>4300</strong> will take up or share several sets of IRQ and I/O Address. Make<br />
sure there are enough free sets of IRQ and I/O address for <strong>IVC</strong>-<strong>4300</strong> to use.<br />
The IRQ of the PCI slot can be modified from the BIOS settings of the<br />
motherboard. Please refer to the motherboard’s user manual to make any<br />
necessary adjustments.<br />
2.2 General Purpose Input Output (GPIO) Connections<br />
The GPIO module contains a GPIO daughter board, an input connector and an<br />
output connector. The GPIO module allows users to connect four input devices<br />
and four output devices. Please refer to Figure 1.<br />
Figure 1: GPIO module<br />
<strong>IVC</strong>-<strong>4300</strong> 6
Connections to GPIO daughter board<br />
Connect GPIO pin connector directly on <strong>IVC</strong>-<strong>4300</strong>.<br />
GPIO pin connector<br />
Figure 2<br />
Connections for Input/Output devices<br />
• GPI Connection<br />
An input connector and an output connector are provided for connections to<br />
external devices. The connection points of the input connector are shown in<br />
Figure 3. The connection points of the output connector are shown in Figure<br />
4.<br />
Input 1<br />
Ground 1<br />
Input 2<br />
Ground 2<br />
Input 3<br />
Ground 3<br />
Input 4<br />
Ground 4<br />
Figure 3<br />
Input Connector<br />
1. Please connect the “COM” on the sensor to the “Input”.<br />
2. Connect “NO”(Normal Open) or “NC”(Normal Close) to “DC”(0.5V - 24V).<br />
3. Connect Ground of the Input Connector to the Ground of DC (0.5V - 24V).<br />
<strong>IVC</strong>-<strong>4300</strong> 7
• GPIO Connection<br />
Common 1<br />
Normal Close 1<br />
Normal Open 1<br />
Common 2<br />
Normal Close 2<br />
Normal Open 2<br />
Common 3<br />
Normal Close 3<br />
Normal Open 3<br />
Common 4<br />
Normal Close 4<br />
Normal Open 4<br />
Figure 4<br />
Operation procedure<br />
1. The active state of DVR software configuration is Normal Open.<br />
2. Cm and NC should have signals before and after system is turned on.<br />
3. When an event occurs, Cm and NO will have signals.<br />
Alarm devices should be connected to Cm and NO connectors so that event action<br />
will be triggered only when an event happens and will not be affected when<br />
system restarts.<br />
Specification for General Inputs<br />
The general inputs support DC voltage from 0~24V. Voltage of above 24V is not<br />
recommended.<br />
<strong>IVC</strong>-<strong>4300</strong> 8
Specification for General Outputs<br />
Voltage Range<br />
Logic 0 < 0.5V<br />
Logic 1 0.5V – 24V<br />
Relay Contact Ratings<br />
Contact Form<br />
1 FORM C (SPDT)<br />
Contact Capacity coil = 0.36W<br />
Resistive Load<br />
1A/125 VAC<br />
(cos θ = 1)<br />
2A/24 VDC<br />
Inductive Load<br />
0.3A/30 VDC<br />
(cos θ = 0.4 L/R = 7 msec)<br />
Rated Carrying Current 2A<br />
Max. allowable voltage AC 120V. DC 60V<br />
Max allowable current 2A<br />
Max allowable power<br />
48W<br />
Contact Material<br />
Ag Alloy<br />
Relay Coil Specification<br />
Nominal<br />
Coil<br />
Power<br />
Coil<br />
Nominal<br />
Voltage<br />
Resistance Consumption<br />
voltage<br />
Current (mA)<br />
(VDC)<br />
(Ohm)<br />
(W)<br />
5V 5V 66.7 75 About 0.36W<br />
Pull-in Voltage Drop-out voltage Max-Allowable Voltage<br />
(VDC)<br />
(VDC)<br />
(VDC)<br />
75% max. 3.75V 10% min. 0.5V 110% 5.5V<br />
After connecting your external device, you can plug the connector to the GPIO<br />
board.<br />
Output<br />
Connecto<br />
Input<br />
Connecto<br />
<strong>IVC</strong>-<strong>4300</strong> 9
2.3 Software Installation<br />
After you have installed <strong>IVC</strong>-<strong>4300</strong> card on your computer, turn on the power.<br />
Follow the instructions for driver and software installation for your <strong>IVC</strong>-<strong>4300</strong> card.<br />
Note: The following driver installation procedure applies to Windows XP. The<br />
procedure is quite similar for other Windows platforms.<br />
You can install the driver first before software installation.<br />
1. Log on to the system, you will see “Found New Hardware Wizard” four times.<br />
Click Cancel to skip them.<br />
2. Browse the companion CD-ROM with Windows Explorer. Enter <strong>IVC</strong>-<strong>4300</strong><br />
directory and run setup.<br />
<strong>IVC</strong>-<strong>4300</strong> 10
3. <strong>IVC</strong>-<strong>4300</strong> SDK Setup program will be launched to install the driver and SDK for<br />
<strong>IVC</strong>-<strong>4300</strong> on your system.<br />
4. Click Next to continue.<br />
5. Select language for installing FFDshow.<br />
<strong>IVC</strong>-<strong>4300</strong> 11
6. Install FFDshow. Click Next until Finish.<br />
<strong>IVC</strong>-<strong>4300</strong> 12
7. After installing FFDshow, install XviD. Click Next until Finish.<br />
<strong>IVC</strong>-<strong>4300</strong> 13
8. When XviD is installed successfully, install DirectX. Click Next until Finish.<br />
Restart the computer when you have finished installation.<br />
<strong>IVC</strong>-<strong>4300</strong> 14
Software file list:<br />
After installation, the software package will be installed in IEI\<strong>IVC</strong>-<strong>4300</strong> folder<br />
in Program files. The package contains two files and three folders.<br />
1. DemoApp Folder:<br />
Executable file of demo application (DemoApp.exe).<br />
2. Driver Folder:<br />
Contains <strong>IVC</strong>-<strong>4300</strong> driver.<br />
3. SDK Folder:<br />
Source files of DemoApp.exe.<br />
4. Files:<br />
M_<strong>IVC</strong>-<strong>4300</strong>_ENG.PDF: user guide and programmer guide of <strong>IVC</strong>-<strong>4300</strong>.<br />
SDK folder.<br />
2.4 Driver Installation<br />
<strong>IVC</strong>-<strong>4300</strong> 15
1. After your system restarts, the “Found New Hardware Wizard” will appear.<br />
Click Next to install the device driver.<br />
2. Assign the driver location in C:\Prgram Files\IEI\<strong>IVC</strong>-<strong>4300</strong>\Driver and click<br />
Next.<br />
3. Click Continue Anyway to install IEI EzLoader.<br />
<strong>IVC</strong>-<strong>4300</strong> 16
4. Click Finish.<br />
5. A new hardware will be found. Open the Found New Hardware wizard.<br />
<strong>IVC</strong>-<strong>4300</strong> 17
6. Assign the driver location C:\Program Files\IEI\<strong>IVC</strong>-<strong>4300</strong>\Driver and click<br />
Next.<br />
<strong>IVC</strong>-<strong>4300</strong> 18
7. Click Continue Anyway to install IEI <strong>IVC</strong>-<strong>4300</strong>.<br />
8. Click Finish to complete installation.<br />
<strong>IVC</strong>-<strong>4300</strong> 19
2.5 Check DirectX Version<br />
After you finish driver installation, check DirectX version.<br />
1. Select Run in Start Menu, enter “dxdiag” and click OK to run DirectX<br />
Diagnostic Tool.<br />
2. If the version of DirectX is not “DirectX 9.0”, you can install DirectX from the<br />
companion CD of <strong>IVC</strong>-<strong>4300</strong>.<br />
<strong>IVC</strong>-<strong>4300</strong> 20
Chapter 3 <strong>IVC</strong>-<strong>4300</strong> SDK Programmer Guide<br />
3.1 Introduction to DirectShow Application Programming<br />
A complete documentation about DirectShow application programming can be<br />
found on Microsoft website. If DirectX 9.0b or later SDK is installed, this<br />
documentation is also available from DirectX SDK Help.<br />
The main goal of writing a DirectShow Application is to build a filter graph by<br />
connecting several filters together to perform a given task such as previewing<br />
video or audio, capturing video or audio and multiplexing them to write into a file.<br />
Each filter performs a single operation and passes data from its output pin to the<br />
input pin of the next filter in the graph.<br />
To build a capture graph using a program, the first thing to do is to obtain the<br />
interface pointer of the capture filter. <strong>IVC</strong>-<strong>4300</strong> Video Capture Filter can be<br />
obtained through system device enumerator. After holding an interface<br />
pointer to the capture filter object, use method<br />
IGraphBuilder::AddSourceFilter to add the source filter object to the filter<br />
graph. Use IFilterGraph::AddFilter to add other downstream filters to the<br />
filter graph. After filters are added, call IFilterGraph::ConnectDirect or<br />
IGraphBuilder::Connect methods to connect output pins from upstream filters<br />
to the input pins of the downstream filters. Calling methods<br />
IMediaControl::Run, IMediaControl::Pause or IMediaControl::Stop will<br />
change filter state to running, paused or stopped.<br />
The filters needed for capturing MPEG2 and MPEG4 streams are listed in Chapter<br />
3.2, with detailed information for each filter and its pins. Example filter graphs<br />
for previewing/capturing MPEG2 and MPEG4 streams are illustrated in Chapter<br />
3.3. Chapter 3.4 gives examples of two ways to control device driver.<br />
**Note that the MPEG2/1 decoder recommended is InterVideo video codec, which<br />
is not included in our SDK package. Please refer to InterVideo website<br />
http://www.intervideo.com/ for more information.<br />
3.2 Filter Description<br />
This chapter lists filters necessary to build a filter graph for capturing and/or<br />
previewing MPEG4/2/1 video and audio streams.<br />
3.2.1 Source Filter<br />
<strong>IVC</strong>-<strong>4300</strong> Video Capture Filter belongs to the category of WDM Streaming<br />
Capture Devices. It is actually a kernel-mode KsProxy plug-in. An application<br />
can treat it simply as a filter. Use System Device Enumerator to add this filter to<br />
a filter graph.<br />
Filter Name<br />
Filter CLSID<br />
Filter Category Name<br />
Filter Category<br />
Video Capture Pin Supported Media<br />
Types<br />
<strong>IVC</strong>-<strong>4300</strong> Video Capture<br />
Not applicable<br />
WDM Streaming Capture Devices<br />
AM_KSCATEGORY_CAPTURE<br />
DIVX_MPEG4, MPEG2, MPEG1<br />
<strong>IVC</strong>-<strong>4300</strong> 21
Video Preview Pin Supported Media<br />
Types<br />
Audio Capture Pin Supported Media<br />
Types<br />
DIVX_MPEG4, MPEG2, MPEG1<br />
MEDIATYPE_Audio,<br />
MEDIASUBTYPE_PCM<br />
3.2.2 Video Decoder Filters<br />
• MPEG4 Video Decoder Filters<br />
DivX MPEG4 Video Decoder<br />
The FourCC of the DivX format MPEG4 stream output by <strong>IVC</strong>-<strong>4300</strong> Capture<br />
filter is DX50.<br />
A recommended decoder that accepts this type of stream is ffdshow Decoder<br />
Filter.<br />
Filter<br />
Name<br />
Filter<br />
CLSID<br />
Filter<br />
Category<br />
Name<br />
Filter<br />
Category<br />
CLSID<br />
Input<br />
Pin<br />
Media<br />
Types<br />
Output<br />
Pin<br />
Media<br />
Types<br />
ffdshow Mpeg4 Decoder Filter<br />
{04FE9017-F873-410E-871E-AB91661A4EF7}<br />
DirectShow Filters<br />
CLSID_LegacyAmFilterCategory<br />
MEDIATYPE_Video<br />
Subtypes:<br />
•<br />
fourcc(30355844)DX50{30355844-0000-0010-8000-00AA00389B71}<br />
etc.<br />
MEDIATYPE_Video, subtype: TIME_FORMAT_NONE<br />
• MPEG2/1 Video Decoder Filters<br />
Filter Name<br />
Filter CLSID<br />
Filter Category Name<br />
Filter Category CLSID<br />
Video Input Pin Media<br />
Types<br />
InterVideo Video Decoder<br />
{0246CA20-776D-11D2-8010-00104B9B8592}<br />
DirectShow Filters<br />
CLSID_LegacyAmFilterCategory<br />
MEDIATYPE_Video<br />
Subtypes:<br />
• MEDIASUBTYPE_MPEG2_VIDEO<br />
• MEDIASUBTYPE_MPEG1Payload<br />
<strong>IVC</strong>-<strong>4300</strong> 22
Video Output Pin Media<br />
Types<br />
MEDIATYPE_Video<br />
Subtypes:<br />
• MEDIASUBTYPE_YV12<br />
• MEDIASUBTYPE_YUY2<br />
• MEDIASUBTYPE_RBG32<br />
• MEDIASUBTYPE_RBG565<br />
• MEDIASUBTYPE_RBG555<br />
3.2.3 Video Renderer Filter<br />
Filter Name<br />
Video Renderer<br />
Filter CLSID<br />
CLSID_VideoRenderer<br />
Filter Category Name DirectShow Filters<br />
Filter Category CLSID CLSID_LegacyAmFilterCategory<br />
Input Pin Media Types MEDIATYPE_Video<br />
Output Pin Media Types Not Applicable<br />
3.2.4 Mux Filters<br />
• MPEG4 AVI Mux Filter<br />
Filter Name<br />
Filter CLSID<br />
Filter Category<br />
Name<br />
Filter Category<br />
CLSID<br />
Input Pin<br />
Media Types<br />
Output Pin<br />
Media Types<br />
AVI Mux<br />
CLSID_AviDest<br />
DirectShow Filters<br />
CLSID_LegacyAmFilterCategory<br />
Any major type that corresponds to an old-style FOURCC, or<br />
MEDIATYPE_AUXLine21Data.<br />
• If the major type is MEDIATYPE_Audio, the format must<br />
be FORMAT_WaveFormatEx.<br />
• If the major type is MEDIATYPE_Video, the format must<br />
be FORMAT_VideoInfo or FORMAT_DvInfo.<br />
• If the major type is MEDIATYPE_Interleaved, the format<br />
must be FORMAT_DvInfo.<br />
MEDIATYPE_Stream, MEDIASUBTYPE_Avi<br />
• MPEG2/1 Mux Filter<br />
Filter Name<br />
Filter CLSID<br />
Filter Category<br />
Name<br />
Filter Category<br />
CLSID<br />
InterVideo Multiplexer<br />
{317DDB63-870E-11D3-9C32-00104B3801F7}<br />
DirectShow Filters<br />
CLSID_LegacyAmFilterCategory<br />
<strong>IVC</strong>-<strong>4300</strong> 23
Input Pin Media<br />
Types<br />
MEDIATYPE_Audio, MEDIASUBTYPE_MPEG1AudioPayload<br />
MEDIATYPE_Audio, MEDIASUBTYPE_MPEG1Payload<br />
MEDIATYPE_Audio, MEDIASUBTYPE_MPEG2_AUDIO<br />
MEDIATYPE_Audio, MEDIASUBTYPE_DVD_LPCM_AUDIO<br />
MEDIATYPE_Audio, MEDIASUBTYPE_DOLBY_AC3<br />
MEDIATYPE_Video, MEDIASUBTYPE_MPEG2_VIDEO<br />
MEDIATYPE_Video, MEDIASUBTYPE_MPEG1Payload<br />
MEDIATYPE_Video, MEDIASUBTYPE_DVD_SUBPICTURE<br />
Output Pin<br />
Media Types<br />
MEDIATYPE_Stream, MEDIASUBTYPE_MPEG1System<br />
MEDIATYPE_Stream, MEDIASUBTYPE_MPEG2_PROGRAM<br />
MEDIATYPE_Stream, MEDIASUBTYPE_ MPEG1VideoCD<br />
MEDIATYPE_DVD_ENCRYPTED_PACK,<br />
MEDIASUBTYPE_MPEG2_PROGRAM<br />
MEDIATYPE_Stream, MEDIASUBTYPE_MPEG2_VIDEO<br />
MEDIATYPE_Stream, MEDIASUBTYPE_ MPEG1Video<br />
MEDIATYPE_Stream, MEDIASUBTYPE_ MPEG2_AUDIO<br />
MEDIATYPE_Stream, MEDIASUBTYPE_ MPEG1Audio<br />
MEDIATYPE_Stream, subtype: TIME_FORMAT_NONE<br />
3.2.5 File Writer Filters<br />
• MPEG4 File Writer<br />
Filter Name<br />
File writer<br />
Filter CLSID<br />
CLSID_FileWriter<br />
Filter Category Name DirectShow Filters<br />
Filter Category CLSID CLSID_LegacyAmFilterCategory<br />
Input Pin Media Types MEDIATYPE_Stream, MEDIASUBTYPE_NULL<br />
Output Pin Media Types Not Applicable<br />
• MPEG2/1 File Writer<br />
Filter Name<br />
InterVideo File Writer<br />
Filter CLSID<br />
{D2288805-7D1E-49D4-9934-6D5B3728E155}<br />
Filter Category Name DirectShow Filters<br />
Filter Category CLSID CLSID_LegacyAmFilterCategory<br />
Input Pin Media Types MEDIATYPE_Stream, MEDIASUBTYPE_NULL<br />
Output Pin Media Types Not Applicable<br />
<strong>IVC</strong>-<strong>4300</strong> 24
3.2.6 Audio Renderer Filter<br />
• Audio Renderer Filter for PCM<br />
Filter Name<br />
Default DirectSound Device<br />
Filter Category Name Audio Renderers<br />
Filter Category CLSID CLSID_AudioRendererCategory<br />
Input Pin Media Types MEDIATYPE_Audio, MEDIASUBTYPE_PCM<br />
Output Pin Media Types Not Applicable<br />
3.2.7 Audio Compressor Filter<br />
• MPEG2/1 Audio Encoder<br />
Filter Name<br />
Filter CLSID<br />
Filter Category<br />
Name<br />
Filter Category<br />
CLSID<br />
Input Pin<br />
Media Types<br />
Output Pin<br />
Media Types<br />
InterVideo Audio Encoder<br />
{0CD2E140-8D60-11D3-9C32-00104B3801F6}<br />
Audio Compressors<br />
CLSID_AudioCompressorCategory<br />
MEDIATYPE_Audio, MEDIASUBTYPE_PCM<br />
MEDIATYPE_Audio, MEDIASUBTYPE_MPEG1AudioPayload<br />
MEDIATYPE_Audio, MEDIASUBTYPE_MPEG2_AUDIO<br />
MEDIATYPE_Audio, MEDIASUBTYPE_DVD_LPCM_AUDIO<br />
MEDIATYPE_Audio, MEDIASUBTYPE_DOLBY_AC3<br />
MEDIATYPE_Audio, MEDIASUBTYPE_PCM<br />
MEDIATYPE_Audio, subtype:<br />
{35409240-3966-4D76-9884-A0F0F0C66751}<br />
MEDIATYPE_Stream, subtype: TIME_FORMAT_NONE<br />
3.2.8 Smart Tee Filter<br />
Smart Tee Filter is used in capture graphs to split the input stream into a preview<br />
stream and a capture stream.<br />
Filter Name<br />
Smart Tee Filter<br />
Filter CLSID<br />
CLSID_SmartTee<br />
Filter Category Name DirectShow Filters<br />
Filter Category CLSID CLSID_LegacyAmFilterCategory<br />
<strong>IVC</strong>-<strong>4300</strong> 25
3.2.9 CrossBar Filter<br />
If the device is a capture board rather than a camera, a CrossBar Filter is<br />
necessary for switching video source among TV, SVideo-in and Composite in. In<br />
<strong>IVC</strong>-<strong>4300</strong> we use only Composite in.<br />
Filter Name<br />
<strong>IVC</strong>-<strong>4300</strong> CrossBar<br />
Filter Category Name WDM_Streaming Crossbar Devices<br />
3.3 Example Graphs<br />
Microsoft DirectX SDK provides a useful debugging utility called GraphEdit, which<br />
can be used to simulate graph building. From the Graph menu of the GraphEdit<br />
application, click Insert Filters and choose the desired filters. Filters are<br />
organized by categories. Click Insert Filter to add the filters to a graph. Then<br />
connect two filters’ pins by dragging the mouse from one filter’s output pin to<br />
another filter’s input pin. An arrow will be drawn if these two pins agree on the<br />
connection.<br />
After inserting <strong>IVC</strong>-<strong>4300</strong> Video Capture Filter, right click the rectangle and click<br />
Filter Properties. The filter properties dialogue will appear. Set video and<br />
audio settings before connecting video pins or audio pin to other filters. The<br />
property screens are shown below:<br />
Video Setting:<br />
<strong>IVC</strong>-<strong>4300</strong> 26
Audio Setting:<br />
Note: MS and IMA ADPCM sample bits are 4 bits, PCM only supports 16 bits.<br />
Video Decoder:<br />
If the device is a capture board, <strong>IVC</strong>-<strong>4300</strong> Video Capture Filter will have an<br />
“Analog Video In” input pin. The CrossBar Filter needs to be inserted at this time<br />
to allow video source switching. Right click on the crossbar filter and click Filter<br />
Properties. The filter properties dialogue will appear, shown as below:<br />
<strong>IVC</strong>-<strong>4300</strong> 27
Select video input before or during video capturing.<br />
3.3.1 MPEG4 Stream<br />
Preview Only<br />
<strong>IVC</strong>-<strong>4300</strong> 28
Capture Only<br />
Preview and Capture<br />
3.3.2 MPEG2/1 Stream<br />
Preview Only<br />
<strong>IVC</strong>-<strong>4300</strong> 29
Capture Only<br />
Preview and Capture<br />
3.4 SDK Library Reference<br />
The application can use <strong>IVC</strong>Func interface to set and get device properties<br />
exported by the driver. Currently this interface provides 6 methods. For usages<br />
of these methods, please refer to the source code of DemoApp. The functions<br />
are described as below.<br />
3.4.1 <strong>IVC</strong>Func Interface<br />
You could get this interface from <strong>IVC</strong>-<strong>4300</strong> Video Capture Filter<br />
const IID IID_<strong>IVC</strong>Func =<br />
{0x9B8DFF7B,0x8317,0x414d,{0xB3,0x3F,0xE6,0x81,0xAF,0xC9,0x98,0x39}};<br />
<strong>IVC</strong>Func::SetVideoConfigEx<br />
The SetVideoConfigEx method sets the video configurations.<br />
Syntax<br />
HRESULT SetVideoConfigEx(<br />
EVideoFormat CompressMode,<br />
ESequenceMode SequenceMode,<br />
unsigned long width,<br />
unsigned long Height,<br />
<strong>IVC</strong>-<strong>4300</strong> 30
unsigned long FrameRate,<br />
unsigned long BitRate<br />
);<br />
Parameters<br />
CompressMode: [In] The stream’s compression mode. Refer to Enumeration:<br />
EVideoFormat for details.<br />
SequenceMode: [In] The sequence mode of the encoding stream. There are<br />
three types of frames used in a stream sequence: Intra frames (I), Predictive<br />
frames (P), and Bi-directional frames (B). This member indicates the types of<br />
frames being used in a stream sequence. Refer to enumeration: ESequenceMode<br />
for details.<br />
Width: [In] The desired output stream resolution: horizontal size.<br />
Height: [In] The desired output stream resolution: vertical size.<br />
FrameRate: [In] The real frame rate will be the value of frame rate divided by<br />
1001. For example: if the frame rate = 30000, then the real frame rate = 30000<br />
/ 1001 = 29.97.<br />
BitRate: [In] The desired average bit rate of the encoded stream, in bits per<br />
second (bps).<br />
Return Value<br />
HRESULT<br />
<strong>IVC</strong>Func::SetAudioConfigEx<br />
The SetAudioConfigEx method sets the audio configurations.<br />
Syntax<br />
HRESULT SeAudioConfigEx(<br />
unsigned long Format,<br />
unsigned long SampleRate,<br />
unsigned long Channel,<br />
unsigned long SampleBit<br />
);<br />
Parameters<br />
Format: [In] Audio format. Possible values are included in the Enumeration:<br />
AUDIO_FORMAT.<br />
SampleRate: [In] Audio sample rate, in byte. Possible values are 8000, 16000,<br />
32000, 48000, 11025, 22050, 44100, 48000.<br />
Channel: [In] Audio channels. Possible values are 1 for mono and 2 for stereo.<br />
SampleBit: [In] Audio sample bits. Possible values are 16 bits.<br />
Return Value<br />
HRESULT<br />
<strong>IVC</strong>Func::GetVideoDataCount<br />
The GetVideoDataCount method gets the total video bytes obtained since starting<br />
capturing.<br />
Syntax<br />
HRESULT GetVideoDataCount (<br />
unsigned __int64 * datacount<br />
);<br />
Parameters<br />
datacount: [Out] total video bytes obtained since starting capturing.<br />
Return Value<br />
<strong>IVC</strong>-<strong>4300</strong> 31
HRESULT<br />
<strong>IVC</strong>Func::GetGPIOType<br />
The GetGPIOType method gets the supported GPIO type of current device.<br />
Syntax<br />
HRESULT GetGPIOType(<br />
int * Type<br />
);<br />
Parameters<br />
Type: [Out] The GPIO type of current device, 0 means not supported, 1 means<br />
supported.<br />
Return Value<br />
HRESULT<br />
<strong>IVC</strong>Func::GetGPIOStatus<br />
The GetGPIOStatus method gets the input status of GPIO input pin.<br />
Syntax<br />
HRESULT GetGPIOStatus(<br />
int * status<br />
);<br />
Parameters<br />
status: [Out] The input pin status, 0 means logical 0, 1 means logical 1.<br />
Return Value<br />
HRESULT<br />
<strong>IVC</strong>Func::SetGPIOStatus<br />
The SetGPIOStatus method sets the output status of GPIO output pin.<br />
Syntax<br />
HRESULT SetGPIOStatus(<br />
int status<br />
);<br />
Parameters<br />
status: [In] The output pin status, 0 means set output pin to normal close, 1<br />
means set output pin to normal open.<br />
Return Value<br />
HRESULT<br />
3.4.2 Enumerations<br />
EVideoFormat Enumeration<br />
Syntax<br />
typedef enum<br />
{<br />
MPEG1 = 0x00,<br />
MPEG2 = 0x01,<br />
MPEG4 = 0x04,<br />
<strong>IVC</strong>-<strong>4300</strong> 32
} EVideoFormat;<br />
ESequenceMode Enumeration<br />
Syntax<br />
typedef enum<br />
{<br />
IONLY = 1,<br />
IPONLY = 2,<br />
IPB = 3,<br />
IPBDROP = 4<br />
} ESequenceMode;<br />
AUDIO_FORMAT Enumeration<br />
Syntax<br />
typedef enum<br />
{<br />
AUDIO_FORMAT_PCM = 0x01,<br />
AUDIO_FORMAT_ADPCM_MS = 0x02,<br />
AUDIO_FORMAT_ADPCM_IMA = 0x11,<br />
} AUDIO_FORMAT;<br />
<strong>IVC</strong>-<strong>4300</strong> 33
Appendix A FAQ<br />
1. What kind of compression solution is <strong>IVC</strong>-<strong>4300</strong>? What is the<br />
minimum hardware requirement for using <strong>IVC</strong>-<strong>4300</strong>?<br />
<strong>IVC</strong>-<strong>4300</strong> is an MPEG-4 hardware video and audio encoding card. The<br />
dedicated hardware chip on the card performs only MPEG-4 encoding<br />
function, which needs to be performed by software via CPU resource.<br />
Usually, decoding 4 video channels with full D1 resolution (720 x 480) needs<br />
Pentium 4 3.0G or faster CPU to achieve real-time decoding performance.<br />
Decoding more channels needs faster CPU to achieve the same performance.<br />
2. Can <strong>IVC</strong>-<strong>4300</strong> card driver be upgraded directly?<br />
No. To upgrade or re-install <strong>IVC</strong>-<strong>4300</strong> device driver, or to add more<br />
<strong>IVC</strong>-<strong>4300</strong> card into the system, always remove existing <strong>IVC</strong>-<strong>4300</strong> device<br />
driver from control panel “Add/Remove Program” first. Restart the system<br />
to complete the uninstalling procedure. After then, you can install <strong>IVC</strong>-<strong>4300</strong><br />
device driver.<br />
3. When using Windows device manager to remove single card, the<br />
system reboots automatically. How can this problem be solved?<br />
Do not disable or uninstall single <strong>IVC</strong>-<strong>4300</strong> capture device by Windows device<br />
manager; otherwise the system will reboot automatically whenever you try to<br />
enable or install the driver again. This is an OS issue, and will be solved in<br />
Windows XP Service Pack 2, or later editions.<br />
4. Why <strong>IVC</strong>-<strong>4300</strong> cannot work properly on some on-board VGA cards?<br />
How can this be solved?<br />
Display of video for four or more channels costs lots of system and display<br />
card resources that some on-board VGA cards cannot handle well. Below is<br />
a list of VGA card drivers verified by IEI. You can refer to the list for<br />
consideration of types of VGA card to use with <strong>IVC</strong>-<strong>4300</strong>.<br />
a. Windows 2000 + SP4 for an Intel 865G based VGA card: VGA driver<br />
version 6.14.10.3943, 6.14.10.3619 works fine.<br />
b. Windows XP + SP1 for an Intel 865G based VGA card: VGA driver<br />
version 6.14.10.3943, 6.14.10.3510 works fine.<br />
c. Windows XP + SP2 for an Intel 865G based VGA card: VGA driver<br />
version 6.14.10.3943 works fine.<br />
5. Why there are drop frames sometimes when DemoApp works?<br />
DemoApp of <strong>IVC</strong>-<strong>4300</strong> uses Microsoft DirectShow filter for recording. If the<br />
load is heavy, it will drop frames sometimes when recording files on remote<br />
network drive.<br />
6. When multiple cards are inserted at the same time, can the same ID be<br />
assigned to them?<br />
No. A unique card ID has to be assigned to each card for <strong>IVC</strong>-<strong>4300</strong> to<br />
identify which channels the device is mapped to. The card ID cannot<br />
duplicate; otherwise the capture device will not work properly.<br />
7. Can the default status of SDK be changed? What will happen if the<br />
<strong>IVC</strong>-<strong>4300</strong> 34
status is changed?<br />
It is highly recommended to keep SDK status as default or the capture<br />
application may fail to find necessary codec or filter.<br />
<strong>IVC</strong>-<strong>4300</strong> 35
<strong>IVC</strong>-<strong>4300</strong> 36