User's manual | ADLINK Technology PCI-MP4S User`s manual

Add to My manuals
83 Pages

advertisement

User's manual | ADLINK Technology PCI-MP4S User`s manual | Manualzz

PCI-MP4S

4-CH MPEG4 Software

Video Compression Card

User’s Manual

©Copyright 2004 ADLINK Technology Inc

All Rights Reserved.

Manual Rev 1.00: March 26, 2004

Part No: 50-15029-100

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 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

Microsoft

®

, Windows NT

®

, Windows 98

®

, Windows 2000

®

, Windows XP registered trademarks of Microsoft Corporation. Borland C++ Builder

®

®

are

is a registered trademark of Borland International, Inc.

Other product names mentioned herein are used for identification purposes only and may be trademarks and/or registered trademarks of their respective companies.

Recycled Paper

Getting Service from ADLINK

Customer Satisfaction is top priority for ADLINK TECHNOLOGY INC. If you need any help or service, please contact us.

ADLINK TECHNOLOGY INC.

Web Site http://www.adlinktech.com

Sales & Service [email protected]

Address 9F, No. 166, Jian Yi Road, Chungho City, Taipei, 235 Taiwan

Please email or FAX your detailed information for prompt, satisfactory, and consistent service.

Detailed Company Information

Company/Organization

Contact Person

E-mail Address

Address

Country

TEL FAX

Web Site

Questions

Product Model

Environment

Detail Description

OS:

Computer Brand:

M/B: CPU:

Chipset: BIOS:

Video Card:

NIC:

Other:

Suggestions for ADLINK

Table of Contents

Chapter 1 Introduction ..............................................................................1

1.1

Features .............................................................................................2

1.1.1

Image Acquisition ...............................................................2

1.1.2

MPEG4 Encoding ...............................................................2

1.1.3

MPEG4 Decoding ...............................................................3

1.1.4

Motion Detection.................................................................3

1.1.5

TCP/IP Data Transmission .................................................3

1.1.6

Watch Dog Timer................................................................3

Lines .............................................................................4

1.1.8

Supported software.............................................................4

1.2

Applications........................................................................................4

Chapter 2 Hardware Reference ................................................................5

2.1

PCI-MP4S Specification .....................................................................5

2.1.1

PCI-MP4S Appearance ......................................................7

2.1.2

PCI-MP4S Connectors & Pin Definitions ............................8

2.1.3

RTV-E4 Extension board for RTV-24 and PCI-MP4S.......11

2.1.4

RTV-I4 Isolation GPIO board for RTV-24 and PCI-MP4S.12

Chapter 3 Installation Guide ...................................................................17

3.1

Hardware Installation .......................................................................17

3.1.1

PCI-MP4S.........................................................................17

3.2

Driver Installation .............................................................................19

3.2.1

WDM Driver Installation ....................................................19

3.3

MPEG4 registration..........................................................................25

Chapter 4 ViewCreator Utility .................................................................29

4.1

Overview ..........................................................................................29

4.2

Component Description....................................................................30

4.3

Operation theory ..............................................................................31

4.3.1

MPEG4 Encoding .............................................................31

4.3.2

Video image configuration ................................................31

4.3.3

Video adjustments ............................................................31

4.3.4

Save image file .................................................................32

4.3.5

Special image effect .........................................................32

4.3.6

Tools.................................................................................32

Chapter 5 Function Library .....................................................................34

5.1

List of Functions ...............................................................................34

5.2

Encode Functions ............................................................................35

5.3

Decode Functions ............................................................................49

5.4

System Functions.............................................................................70

Appendix ..................................................................................................73

Appendix A: Glossary ................................................................................73

Table of Contents

• i

Appendix B: Standard Compliance ............................................................75

Warranty Policy .......................................................................................77

Table of Contents

• ii

1

Introduction

The PCI-MP4S is a MPEG4 software video compression development kit that combines excellent real-time image acquisition and advanced MPEG4 software video compression algorithm for security and remote video surveillance applications. This 32-bit, 33MHz PCI bus frame grabber simultaneously captures four video analog streams in real time.

It accepts standard composite color (PAL, NTSC) or monochrome video format

(CCIR, EIA) camera input. The resolution can be programmed (640 x 480 or 768 x 576) and scaled down before images are transferred to PC memory.

The MPEG4 software video compression function library provides high quality video encoding and decoding. Image quality and bit-rate are adjustable for more efficient data transmission via TCP/IP. The PCI-MP4S also has a sensitive partial or whole image motion detection area for smart video encoding or alarm signaling. Up to 4X image expansion technology for enhanced decoded image quality is available.

Each PCI-MP4S board has a unique hardware ID number. System integrators can use this to implement protection to lock their system product. Other useful features are a watchdog timer for fault-tolerant applications and easy-to-use standard connectors.

Introduction

• 1

1.1 Features

Acquisition speed

NTSC 1 Camera 2 Cameras 3 Cameras 4 Cameras 8 Cameras

Fields 60 120 180 240 240

PAL 1 Camera 2 Cameras 3 Cameras 4 Cameras 8 Cameras

Fields 50 100 150 200 200

Color Image : The color video format is compatible with the following composite video input formats: NTSC-M, NTSC-Japan, PCL-B, PAL-D,

PAL-G, PAL-H, PAL-I, PAM-M, PAL-N, and SECAM

Monochrome Image : The monochrome video acquisition is compatible with

CCIR and EIA (RS-170)

Optional scaling : Optional scaling of acquired image or portions of an image is available as follows:

ƒ Acquisition of a programmable area of interest.

ƒ Scaling of the image (down to 1:16).

ƒ Adjustment of hue (for NTSC signals), contrast (0 to 200%), brightness, and saturation (0 to 200% for U and V signals).

ƒ Automatic chrominance gain control.

MPEG4 video encoding: Video encoding quality level can be set as follows:

Quality:

Quality Value Image in 640*480 Image in 320*240 Image in 160*120

320000*4 frame_rate = 3

Bitrate = 320000 frame_rate = 3

Bitrate = 24 0000/4 frame_rate = 3

Low -1

400000*2 frame_rate = 6

Bitrate = 400000 frame_rate = 6

Bitrate = 400000/4 frame_rate = 6

480000*4 frame_rate = 15

Bitrate = 480000 frame_rate = 15

Bitrate = 480000/4 frame_rate = 15

High 1

512000*4 frame_rate = 30

Bitrate = 512000 frame_rate = 30

Bitrate = 512000/4 frame_rate = 30

Introduction

• 2

Highest 2

Bitrate =

1024000*4 frame_rate = 30

Bitrate = 1024000 frame_rate = 30

Bitrate =

1024000/4 frame_rate = 30

Supports setting of initial motion detection area and assigning or creating directory for saved files.

Save video file: Supports save continued video to M4V or AVI video file format. User may play AVI file with MS Media Player after installing XVID

CODEC (see ADLINK All-in-One CD).

Save single image file: Supports save single image to BMP or JPEG image file format.

MPEG4 video decoding: Video decoding can be assigned a source from the local memory buffer, file access, or TCP/IP port. The quality of decoded video can be used to adjust the video encoding level. Decoding quality can also be used to control the flow rate between encoder and decoder and to adjust motion detection settings.

Save video file: Supports save continued video to M4V or AVI video file format,

User may play AVI file by MS Media Player after installing XVID CODEC (see

ADLINK All-in-One CD).

Save single image file: Supports save single image to BMP or JPEG image file format.

1.1.4 Motion Detection

Up to four detection areas can be set in one frame or the entire frame can be used for motion detection actions. The motion detection occurrence can be adjusted for sensitivity.

Video data can be transferred by TCP/IP after connecting to the IP of the encoding site and data transmission speed can monitored using the flow rate.

1.1.6 Watch Dog Timer

A hardware watchdog is available on the PCI-MP4S and is able to monitor PC application operation and will automatically reset the PC after a

Introduction

• 3

programmable inactivity time-out. This ensures reliable operation of remote systems.

1.1. 7 I/O Lines

The PCI-MP4S is fitted with TTL compatible I/O lines protected against overloads and electrostatic discharges. Each line may be configured for input or output. They can be used to trigger acquisitions or to report alarm signals.

WDM driver - supports VC++/VB/BCB/Delphi programming under Windows

NT/98/2000/XP platforms with DLL.

ViewCreator – This package will assist in initial testing and functional evaluation.

1.2 Applications

ƒ

PC Based Surveillance System

ƒ

Digital Video Recorder (DVR)

ƒ

Factory Monitoring System

ƒ

Machine Vision Inspection System

ƒ

Scientific Research Instrumentation

ƒ

Medical Research Instrumentation

Introduction

• 4

2

Hardware Reference

Video Input

Four composite video color digitizers

Video input interface: four composite BNC connectors

Coaxial cable suggested

Channel Extension

Expandable up to 16 channels

Channel extension interface:

9 10-pin ribbon cable to on-board 10-pin header connector for channel extension, each header adds 4 video inputs channels

9 Three 10-pin header connectors on-board

General Purpose I/O Lines

All I/Os are TTL compatible and support 4 inputs, 4 outputs, and 4 soft trigger lines

GPIO interface:

9 Two 10-pin header connectors on-board

9 The I/O lines are internally pulled up and have the following characteristics:

Input high voltage (5µA)

Input low voltage (-5µA)

Output high voltage (-1.0mA)

Output low voltage (100.0mA)

2.0V 5.25V

0.0V 0.80V

5.0V -

- 0.5V

Hardware Reference

• 5

Watch Dog Timer

ƒ For monitoring applications – will reset the PC after a programmable inactivity time-out.

ƒ

Interface: 2-pin header

4-channel software trigger output

4-channel programmable trigger scale (60µs – 16ms)

60µs – 16ms

Trigger Signal

User EEPROM

Includes 1kbit available EEPROM

Form Factor

32-bit, 33/66MHz PCI half-size board

Hardware Reference

• 6

PCI-MP4S Standard accssory

Watch dog reset cable, GPIO bracket, User Manual, All in One CD

Hardware Reference

• 7

Video Inputs

Connector Definition

Video IN – CH 0

Video IN – CH 1

Video IN – CH 2

Video IN – CH 3

Hardware Reference

• 8

Channel Extension Video Input (CN2)

9

10

1

2

PIN NO.

1

3

Function

GND

CH5 video in

PIN NO.

2

4

Function

CH4 video in

GND

5

7

GND

CH7 video in

6

8

CH6 video in

GND

9 GND 10 GND

Channel Extension Video Input (CN3)

9

10

1

2

PIN NO.

1

3

Function

GND

CH9 video in

PIN NO.

2

4

Function

CH8 video in

GND

5

7

GND

CH11 video in

6

8

CH10 video in

GND

9 GND 10 GND

Channel Extension Video Input (CN5)

9

10

1

2

PIN NO.

1

3

5

Function

GND

CH13 video in

GND

PIN NO.

2

4

6

Function

CH12 video in

GND

CH14 video in

7 CH15 video in 8 GND

9 GND 10 GND

Hardware Reference

• 9

GPIO (CN8)

9

10

1

2

PIN NO.

1

3

5

7

9

GPIO (CN9)

Function

IN0 (External interrupt)

OUT0

IN1 (External interrupt)

OUT1

GND

PIN NO.

2

4

6

8

10

Function

GND

Software Trigger 0

Software Trigger 1

+5V

--

9

10

1

2

PIN NO.

1

3

5

7

9

Function

IN2 (External interrupt)

OUT2

IN3 (External interrupt)

OUT3

GND

PIN NO.

2

4

6

8

10

Function

GND

Software Trigger 2

Software Trigger 3

+5V

--

Watchdog Timer Reset

2 1

PIN NO. Function

JP1

2 GND

Hardware Reference

• 10

2.1.3 RTV-E4 Extension board for RTV-24 and PCI-MP4S

(Optional item, not a standard accessory)

RTV-E4 Connectors & Pin Definitions

9

10

1

2

PIN NO.

1

3

5

Function

GND

CH5 video in

GND

PIN NO.

2

4

6

Function

CH4 video in

GND

CH6 video in

7 CH7 video in 8 GND

9 GND 10 GND

Hardware Reference

• 11

2.1.4 RTV-I4 Isolation GPIO board for RTV-24 and PCI-MP4S

(Optional item, not a standard accessory)

Hardware Reference

• 12

RTV-I4 Connectors & Pin Definitions

Relay output signal select:

ƒ

ƒ

ƒ

ƒ

Relay output types: Normal open or Normal closed

Signal names: RY1, RY2, RY3, RY4

Jumper addresses: J5, J6, J7, J8

Type select: Normal open: 2-3, Normal close: 1-2

Normal Open Normal Closed

1 3

1 3

1 2 3

J6

J5

J8

J7

Relay I/O voltage requirement:

ƒ

ƒ

Input: +5V to +24V

Output: AC: 0.5A/125V, DC: 1A/30V or 0.3A/100V

STRG output signal select:

Hardware Reference

• 13

ƒ

ƒ

ƒ

ƒ

ƒ

STRG output signal types: Active high or Active low

Signal names: STRG_OUT1, STRG_OUT2,

STRG_OUT3, STRG_OUT4

Jumper addresses: J1, J2, J3, J4

Type select: Active high =>2-3

Active low =>1-2

Active High Active Low

1 3 1 3

1 2 3

J1 J3

J2 J4

Trigger output voltage: 0V to +5V

Input 2R10P pin header pin definition:

GPIO (CN1)

9

10

1

2

PIN NO. Function PIN NO. Function

1

5

GPIO Input 1

GPIO Input 2

2

6

GND

3 GPIO 1 4

PORT1 STRG

Output

PORT2 STRG

Output

7 GPIO 2 8 VCC

9 GND 10 NC

GPIO (CN2)

Hardware Reference

• 14

9

10

1

2

PIN NO. Function PIN NO. Function

1 GPIO Input 3 2 GND

3 GPIO 3 4

PORT3 STRG

Output

5 GPIO Input 4 6

PORT4 STRG

Output

7 GPIO 4 8 VCC

9 GND 10 NC

D-sub 25-pin output connector pin:

Pin number

Signal name Pin number

Signal name

2 DI1_COM 15 RY4

8 DI4_COM 21 STRG_GND

10 RY1_COM 23 NC

11 RY2 24 NC

12 RY2_COM 25 NC

13 RY3 26

Hardware Reference

• 15

3

Installation Guide

3.1.1 PCI-MP4S

Use the following steps to install the PCI-MP4S board on the PCI bus:

1. Remove the computer cover using the instructions from the computer manual.

2. Check that there is an empty PCI (32-bit) slot to accommodate the board.

If there is no empty slot, remove a PCI board from the computer to make room for the PCI-MP4S board and note the chosen slot number (i.e. card index).

3. Remove the blank metal plate located at the back of the selected slot (if any). Keep the removed screw to fasten the PCI-MP4S board after installation.

4. Carefully position the PCI-MP4S in the selected PCI slot as illustrated below. If using a tower computer, orient the board to suit the board slots.

5. Once perfectly aligned with an empty slot, press the board firmly but carefully into the connector.

6. Anchor the board by replacing the screw.

7. Connect your video sources for image acquisition tests. For details, refer to the “ViewCreator” utility.

Function Library

• 17

8. Turn on the computer. In some cases, when the computer boots up, the

“Plug and Play” feature of Windows will detect the new PCI card 8 times

(4 videos and 4 audios) and you will require drivers. For details, see the

“Installation Guide.”

Function Library

• 18

1. Insert the Automation All-in-one CD to CD-ROM drive and click Driver

Installation.

2. Select Vision.

3. Click Angelo

Function Library

• 19

4. Select Windows Driver for Windows 98/NT/2000/XP.

5. The driver will begin installing.

6. Click Next until the driver installs completely.

Function Library

• 20

Function Library

• 21

Function Library

• 22

Function Library

• 23

7. Click Finish and restart the system.

8. Go to the System Control Panel and check to see that four “ADLINK

Angelo Audio Device” and four “ADLINK Angelo Video Device” are installed as shown.

Function Library

• 24

Each PCI-MP4S must be registered on the ADLINK website for legal authorization of the MPEG4 software compression function library.

1. Please be sure have the following information before going to the

ADLINK website for MPEG4 registration: PCI-MP4S card S/N and

Original Code

2. Record the serial number of the PCI-MP4S card.

3. Original Code a. Go to “C:\Program Files\ADLINK\AngeloMpeg4\” and execute the “Register.exe” file. You will then see the “Register Utility” form as below.

Function Library

• 25

b. Select the card index number and click the “Register” button.

You will then the “Register” form with “Original Code” as below. c. Record the “Original Code” and click the “ADLINK on the Web” button to link to the PCI-MP4S product web page to continue with MPEG4 on-line registration.

4. MPEG4 on-line registration a. Go to the PCI-MP4S product page at http://www.adlinktech.com/products/TR/PCI-MP4S-register.html, and click “Register”, as shown below.

Function Library

• 26

b. Enter your e-mail account and click “Submit” to proceed to

“STEP 2”. If you are not yet registered, please go to “New Visitor

Registration” to first register your basic information. c. Enter the serial number (S/N) and Original Code in the spaces and provided and click "Submit" to request the “Activation

Code.”

Function Library

• 27

d. When finished, you will see the “Activation Code” as below. e. Go to “C:\Program Files\ADLINK\AngeloMpeg4\” path to execute the “Register.exe” again, and enter the “Activation

Code” as below, and click “Register”. f. When registered successfully, you will see the message below.

Function Library

• 28

4

ViewCreator Utility

Once hardware installation is complete, ensure that the system is correctly configured before running the ViewCreator utility. This chapter outlines how to set up a vision system and manually control Angelo series cards to verify correct operation. ViewCreator provides a simple yet powerful means to setup, configure, test, and debug the vision system.

Note: ViewCreator is only available for Windows 98/NT/2k/XP with a recommended screen resolution of 800x600 or higher.

4.1 Overview

ViewCreator offers the following features:

1. 32-bit operation under Windows 98/2000/XP

2. Angelo series cards access and configuration

3. Video picture adjustments

5. Recording (AVI video format)

6. Direct access to general purpose I/Os

7. FULL, CIF, or QCIF image size, 2x2 or 4x4 display

Function Library

• 29

Tree Browser

The Tree Browser window lists the PCI-MP4S cards and video ports available at the local computer.

Image View

The Image View window displays Full, CIF, and QCIF size images and image effects.

Control Panel

The control panel allows for making video adjustments, including brightness, hue, contrast, etc.

Function Library

• 30

ViewCreator provides many functions for the Angelo series card as described below.

4.3.1 MPEG4 Encoding

Single channel display z Click a video Port icon in the Tree Browser window. A video frame will appear in the Image View window. z Select Encoder->Encode in menu bar to bring up the Encoder Setting dialog box, and then click the start button.

Note:

1. View Creator supports only one channel CIF video encoding. Ensure there is only one channel, CIF image on the screen. files->ADLINK->AngeloMPEG4->Samples to connect to the encoder

(IP:127.0.0.1 for local computer)

4.3.2 Video image configuration

Video format

The supported video formats are NTSC, EIA, PAL, and CCIR.

Color format z The default color format setting in ViewCreator is RGB24. The color format of the application can be changed.

Video size supported video sizes are listed below:

9 FULL: 640x480 for NTSC, EIA and 768x576 for PAL, CCIR

9 CIF: 320x240 for NTSC, EIA and 384x288 for PAL, CCIR

9 QCF: 160x120 for NTSC, EIA and 192x144 for PAL, CCIR

4.3.3 Video adjustments

Function Library

• 31

Hue z Click and hold the left mouse button on the Hue slider of the Control

Panel and drag the cursor to change its value. Values range from

0-255.

Contrast z Click and hold the left mouse button on the Contrast slider of the

Control Panel and drag the cursor to change its value. Values range from 0-255

Brightness z Click and hold the left mouse button on the Brightness slider of the

Control Panel and drag the cursor to change its value. Values range from 0-255

4.3.4 Save image file

This function can only be used in single channel display mode (select a video Port icon in the Tree Browser window).

TIF

As dialog box. Select the file location, TIF file format, enter the file name, and click the OK button.

BMP

As dialog box. Select the file location, BMP file format, enter the file name, and click the OK button.

4.3.5 Special image effect

Border will appear around the image. z Drag the red line to resize the border. Only the image within the border will refresh.

Cross Line appear in the center of the rectangle.

4.3.6 Tools

Function Library

• 32

GPIO & LED

GPIO dialog box. Select the port to access and select the digital output value. Click the write or read button to write/read to/from the digital I/O ports. z LED status is only supported with the cPCI Angelo series card.

EEPROM

EEPROM dialog box. Select the card you wish to access, enter the offset and output values, and then click the Write button to write the value into the EEPROM. Enter the offset value and click the Read button to read the value from the EEPROM. z Valid offset values are between 0-127. Valid output values are 0-255.

The value in the EEPROM will not be erased when the system is powered off.

Software trigger

Trigger dialog box. Select the card to access and set the interval of the trigger pulse output. Check the ports you want to trigger simultaneously, and click the Trigger button. z The one shot pulse output voltage goes high (from 0V to 5V).

Function Library

• 33

5

Function Library

This chapter describes the API for Mpeg4 encoding and decoding. Users can use these functions to develop application programs in Visual C++, Visual

Basic, C++ Builder, and Delphi.

5.1 List of Functions

Encode

Decode

5.2

5.3

AngeloMPEG4_Encode_Initial(Encoder_Index,

Local_Address, Quality , Angelo_PortNo,

Angelo_ChannelNo, Angelo_Color_Format,

Angelo_Video_Format)

AngeloMPEG4_Encode_InitialEx(Encoder_Index,

Local_Address, Bitrate, frame_rate,

Angelo_PortNo, Angelo_ChannelNo,

Angelo_Color_Format, Angelo_Video_Format)

AngeloMPEG4_Encode_Set_Callback(Encoder_Index,

CallBackProc)

AngeloMPEG4_Encode_Start(Encoder_Index)

AngeloMPEG4_Encode_Stop(Encoder_Index)

AngeloMPEG4_Encode_Close(Encoder_Index)

AngeloMPEG4_Encode_Save_File_Start(Encoder_Ind ex, n_file_name, interval_second, format)

AngeloMPEG4_Encode_Save_File_Stop(Encoder_Inde x)

AngeloMPEG4_Encode_Create_Directory(Encoder_In dex, Dir)

AngeloMPEG4_Encode_Set_Motion_Detection(Encode r_Index, Area, enable, Threshold, interval, action, X_Start, Y_Start, Width, Height)

AngeloMPEG4_Encode_Save_Single_Image(Encoder_I ndex, FileName, FileFormat, nQuality)

AngeloMPEG4_Decode_Connect(Decoder_Index,

Encoder_IP, Encoder_Index)

AngeloMPEG4_Decode_Disconnect(Decoder_Index)

AngeloMPEG4_Decode_Set_Callback(Decoder_Index,

CallBackProc)

Function Library

• 34

AngeloMPEG4_Decode_Set_Image_Config(Decoder_In dex, ConfigIndex , Value)

AngeloMPEG4_Decode_Set_Motion_Detection(Decode r_Index, Area, enable, Threshold, interval, action, X_Start, Y_Start, Width, Height)

AngeloMPEG4_Decode_Get_Config(Decoder_Index, iWidth, iHeight, video_format, color_format,

Bitrate, frame_rate)

AngeloMPEG4_Decode_From_File(Decoder_Index, file_name, action, speed)

AngeloMPEG4_Decode_Start(Decoder_Index)

AngeloMPEG4_Decode_Stop(Decoder_Index)

AngeloMPEG4_Decode_Get_FlowRate(Decoder_Index,

Byte_Second)

AngeloMPEG4_Decode_ReInitialEx(Decoder_Index,

Bitrate, frame_rate, Angelo_Video_Format)

AngeloMPEG4_Decode_ReInitial(Decoder_Index,

Quality , Angelo_Video_Format)

AngeloMPEG4_Decode_Save_File_Start(Decoder_Ind ex, n_file_name, interval_second, format)

AngeloMPEG4_Decode_Save_File_Stop(Decoder_Inde x)

System 5.4

AngeloRTV_DLLVersion, Reserved)

@ Name

AngeloMPEG4_Encode_Initial(Encoder_Index, Local_Address, Quality ,

Angelo_PortNo, Angelo_ChannelNo, Angelo_Color_Format,

Angelo_Video_Format) –Initialize the encoder.

AngeloMPEG4_Encode_InitialEx(Encoder_Index, Local_Address, Bitrate, frame_rate, Angelo_PortNo, Angelo_ChannelNo, Angelo_Color_Format,

Angelo_Video_Format) –Initialize the encoder for advanced.

AngeloMPEG4_Encode_Set_Config(Encoder_Index, Local_Address,

Local_Port) –Initialize the network transmission.

AngeloMPEG4_Encode_Close(Encoder_Index) –Close the encoder, and network transmission.

AngeloMPEG4_Encode_Set_Callback(Encoder_Index, CallBackProc) –Setup the callback function for encoder.

AngeloMPEG4_Encode_Start(Encoder_Index) –Start to grab image and encode.

AngeloMPEG4_Encode_Stop(Encoder_Index) –Stop grabbing image and encoding.

AngeloMPEG4_Encode_Save_File_Start(Encoder_Index, n_file_name, interval_second, format) – Start to save compressed file in encode site.

AngeloMPEG4_Encode_Save_File_Stop(Encoder_Index) – Stop saving compressed file in encode site.

Function Library

• 35

AngeloMPEG4_Encode_Create_Directory(Encoder_Index, Dir) – Create a new fold in encode site.

AngeloMPEG4_Encode_Set_Motion_Detection(Encoder_Index, Area, enable,

Threshold, interval, action, X_Start, Y_Start, Width, Height) –Set the motion detection criteria, and action when motion occurs in encode site.

AngeloMPEG4_Encode_Save_Single_Image(Encoder_Index, FileName,

FileFormat, nQuality) –Save singe frame into BMP or JPEG file format.

@ Description

AngeloMPEG4_Encode_Initial:

This function initializes the video encoder. Its library supports 16 video encoders with the video source coming from the Angelo_PortNo,

Angelo_ChannelNo in Angelo cards. Quality, and Angelo_Color_Format are parameters for encoder setting.

AngeloMPEG4_Encode_InitialEx:

This function initializes the video encoder. Its library supports 16 video encoders with the video source coming from the Angelo_PortNo,

Angelo_ChannelNo in Angelo cards. Bitrate, frame_rate, and

Angelo_Color_Format are parameters for encoder setting.

AngeloMPEG4_Encode_Set_Callback:

This function establishes a notification mechanism between function library and user process. Callback function is application-defined. The user passes the function pointer to function library by calling this function.

AngeloMPEG4_Encode_Start:

This function restarts encoding the video image when the encoder is paused.

AngeloMPEG4_Encode_Stop:

This function pauses encoding of the video image.

AngeloMPEG4_Encode_Close:

This function releases the resources of the encoder for the specified channel.

AngeloMPEG4_Encode_Save_File_Start:

Use this function to save the encoded image into an “.avi” or “.m4v” video file.

The “.avi” file is the standard video format, and “.m4v” is only accessible in this function library.

Note:

1. Do not add a file extension to the file name.

2. User must install the XVID Codec in our setup disk in order to play “.avi” file in

MS Media Player.

Function Library

• 36

AngeloMPEG4_Encode_Save_File_Stop:

Use this function to stop saving the video file. In general, the video file will close automatically after the “Interval” parameter in

AngeloMPEG4_Encode_Save_File_Start.

AngeloMPEG4_Encode_Create_Directory:

This function is used to create a new directory for saving a video file. The

“filename” parameter in AngeloMPEG4_Encode_Save_File_Start contains the file path name.

AngeloMPEG4_Encode_Set_Motion_Detection:

Use this function to configure the motion detection criteria and the action when motion occurs at the encoding site.

AngeloMPEG4_Encode_Initial–

AngeloMPEG4_Encode_InitialEx–

@ Syntax

C/C++ (Windows 98/NT/2000/XP) int AngeloMPEG4_Encode_Initial(int Encoder_Index, char* Local_Address, int

Quality ,int Angelo_PortNo, int Angelo_ChannelNo, int Angelo_Color_Format, int

Angelo_Video_Format) int AngeloMPEG4_Encode_InitialEx(int Encoder_Index, char* Local_Address, int

Bitrate, int frame_rate, int Angelo_PortNo, int Angelo_ChannelNo, int

Angelo_Color_Format, int Angelo_Video_Format);

Visual Basic (Windows 98/NT/2000/XP)

AngeloMPEG4_Encode_Initial(ByVal Encoder_Index As Long, ByVal Local_address

As String, ByVal Quality As Long, ByVal Angelo_PortNo As Long, ByVal

Angelo_ChannelNo As Long, ByVal Angelo_Color_Format As Long, ByVal

Angelo_Video_Format As Long) As Long

AngeloMPEG4_Encode_InitialEx (ByVal Encoder_Index As Long, ByVal

Local_address As String, ByVal Bitrate As Long, ByVal frame_rate As Long, ByVal

Angelo_PortNo As Long, ByVal Angelo_ChannelNo As Long, ByVal

Angelo_Color_Format As Long, ByVal Angelo_Video_Format As Long) As Long

Delphi (Windows 98/NT/2000/XP)

AngeloMPEG4_Encode_Initial(Encoder_Index:Longint; Local_Address:String;

Quality:Longint; Angelo_PortNo:Longint; Angelo_ChannelNo:Longint;

Angelo_Color_Format:Longint; Angelo_Video_Format:Longint):Longint;

AngeloMPEG4_Encode_InitialEx(Encoder_Index:Longint; Local_Address:String;

Bitrate:Longint; frame_rate:Longint; Angelo_PortNo:Longint;

Angelo_ChannelNo:Longint; Angelo_Color_Format:Longint;

Angelo_Video_Format:Longint):Longint;

@ Argument

Encoder_Index:

Function Library

• 37

Indicates the channel index for the MPEG4 encoder. The range of channels is 0 – 15.

Local_Address:

Indicates the IP Address at the encoding site. Set 0, NULL or nil for default setting.

Quality:

Quality value image 640*480 image 320*240 image 160*120

320000*4 frame_rate = 3

400000*2

Low -1 frame_rate = 6

Normal 0

Bitrate = 480000*4 frame_rate = 15

512000*4

High 1 frame_rate = 30

1024000*4 frame_rate = 30

Bitrate:

Indicate the number of bits per second.

Bitrate = 320000 frame_rate = 3

Bitrate = 400000 frame_rate = 6

Bitrate = 480000 frame_rate = 15

Bitrate =

512000 frame_rate = 30

Bitrate = 1024000 frame_rate = 30

Bitrate = 24 0000/4 frame_rate = 3

Bitrate = 400000/4 frame_rate = 6

Bitrate = 480000/4 frame_rate = 15

Bitrate =

512000/4 frame_rate = 30

Bitrate = 1024000/4 frame_rate = 30 frame_rate:

Indicates the number of frames that the MPEG4 encoder will encode per second.

The range of the frame_rate is 1 – 30.

Angelo_PortNo:

The port number is the zero index of the Angelo series card. For example, if there are two PCI-RTV-24 Angelo cards (card 0, card 1) in the system, and each

PCI-RTV-24 has four ports, the first port of card 0 is “0”, and the first port of card 1 is “4.”

Angelo_ChannelNo:

Angelo_ChannelNo indicate the channel index of the port described above. There are four channels per port and the first channel index is 0.

Angelo_Color_Format:

Angelo_Video_Format:

0: Full NTSC, with image size 640*480,

1: Full PAL, with image size 640*480,

Function Library

• 38

2: CIF NTSC, with image size 320*240,

3: CIF PAL, with image size 320*240,

4: QCIF NTSC, with image size 160*120,

5: QCIF PAL, with image size 160*120,

@ Return Code

@ Example

<VC/BCB > int Result; int Encoder_Index = 0; int Quality = 0; int Angelo_PortNo = 0; int Angelo_ChannelNo = 0; int Angelo_Color_Format = 3; //RGB24 int Angelo_Video_Format = 2; //CIF NTSC int Bitrate = 480000; int frame_rate = 15;

Result = AngeloMPEG4_Encode_Initial (Encoder_Index,

Quality, Angelo_PortNo, Angelo_ChannelNo,

Angelo_Color_Format, Angelo_Video_Format);

Result = AngeloMPEG4_Encode_InitialEx

(Encoder_Index, Bitrate, frame_rate,

Angelo_PortNo, Angelo_ChannelNo,

Angelo_Color_Format, Angelo_Video_Format);

< Visual Basic >

Dim result As Long

Dim Encoder_Index As Long, Quality As Long,

Angelo_PortNo As Long, Angelo_ChannelNo As Long,

Angelo_Color_Format As Long, Angelo_Video_Format

As Long, Bitrate As Long, frame_rate As Long

Encoder_Index = 0

Quality = 0

Angelo_PortNo = 0

Angelo_ChannelNo = 0

Angelo_Color_Format = 3 “RGB24

Angelo_Video_Format = 2 “CIF NTSC

Bitrate =

480000 frame_rate = 15

Function Library

• 39

<Delphi >

Result = AngeloMPEG4_Encode_Initial (Encoder_Index,

Quality, Angelo_PortNo, Angelo_ChannelNo,

Angelo_Color_Format, Angelo_Video_Format)

Result = AngeloMPEG4_Encode_InitialEx

(Encoder_Index, Bitrate, frame_rate, Angelo_PortNo,

Angelo_ChannelNo, Angelo_Color_Format,

Angelo_Video_Format)

Var

Encoder_Index, Result: Longint;

Quality: Longint;

Bitrate, frame_rate: Longint;

Angelo_PortNo, Angelo_ChannelNo: Longint;

Angelo_Color_Format, Angelo_Video_Format:

Longint; begin

Encoder_Index:= 0;

Quality := 0; // Normal Quality

Bitrate :=

480000; frame_rate := 15;

Angelo_PortNo := 0;

Angelo_ChannelNo := 0;

Angelo_Color_Format := 3; // RGB24

Angelo_Video_Format := 2; // CIF, NTSC

Result :=

AngeloMPEG4_Encode_Initial(Encoder_Index,

Quality, Angelo_PortNo, Angelo_ChannelNo,

Angelo_Color_Format, Angelo_Video_Format);

Result :=

AngeloMPEG4_Encode_InitialEx(Encoder_Index,

Bitrate, frame_rate, Angelo_PortNo,

Angelo_ChannelNo, Angelo_Color_Format,

Angelo_Video_Format); end;

AngeloMPEG4_Encode_Set_Callback–

@ Syntax

C/C++ (Windows 98/NT/2000/XP)

AngeloMPEG4_Encode_Set_Callback(int Encoder_Index, void ( __stdcall

*CallBackProc)(int Encoder_Index,long int_status,param_str* param_struct));

Visual Basic (Windows 98/NT/2000/XP)

AngeloMPEG4_Encode_Set_Callback (ByVal Encoder_Index As Long, ByVal

Encode_CallBackProcas As Long) As Long

Delphi (Windows 98/NT/2000/XP)

Function Library

• 40

AngeloMPEG4_Encode_Set_Callback(Encoder_Index:Longint; lpEncodeCallBackProc:EncodeCallBackProc):Longint;

@ Argument

Encoder_Index:

Indicates the channel Index for the MPEG4 encoder. The range of channels is 0 –

15.

@ Return Code

@ Example

<VC/BCB > int Result; int Encoder_Index = 0; void __stdcall Encode_Callback(int Encoder_Index, long int_status, param_str *param_struct)

{ if(int_status & 0x01 ==1) //Image Ready

{

} if(int_status >> 4 & 0x01 ==1) //Motion Dection

{

}

}

Result =

AngeloMPEG4_Encode_Set_Callback(Encoder_Index,

Encode_Callback);

< Visual Basic >

Dim Encoder_Index As Long, Result As Long

Public Sub encode_callback(ByVal Encoder_Index As

Long, ByVal int_status As Long, param_str As param_struct)

Select Case (int_status)

Case 1: “preview

Case 16: “ motion detection

End Select

End Sub

Channel =0

Result =

AngeloMPEG4_Encode_Set_Callback(Encoder_Index,

Encode_Callback)

Function Library

• 41

<Delphi > procedure Encode_Callback

(Encoder_Index:Longint;int_status:Longint;var param_struct:param_str);stdcall var

{* add your var here *} begin

case int_status of

1: begin {********* Image Ready *********}

end;

2: begin {********* Set Image Config Event

*********}

end;

4: begin {********* Connected Event *********}

end;

8: begin {********* Disconnect Event

*********}

end;

16: begin {********* Motion Detection Event

*********}

end;

end; // end case int_status of end;

// Main Code var

Encoder_Index, Result: Longint; begin

Encoder_Index:= 0;

Result :=

AngeloMPEG4_Encode_Set_Callback(Encoder_Index,

Encode_Callback); end;

AngeloMPEG4_Encode_Start–

AngeloMPEG4_Encode_Stop–

AngeloMPEG4_Encode_Close–

@ Syntax

C/C++ (Windows 98/NT/2000/XP) int AngeloMPEG4_Encode_Start(int Encoder_Index); int AngeloMPEG4_Encode_Stop(int Encoder_Index); int AngeloMPEG4_Encode_Close(int Encoder_Index);

Visual Basic (Windows 98/NT/2000/XP)

AngeloMPEG4_Encode_Start (ByVal Encoder_Index As Long) As Long

AngeloMPEG4_Encode_Stop (ByVal Encoder_Index As Long) As Long

Function Library

• 42

AngeloMPEG4_Encode_Close (ByVal Encoder_Index As Long) As Long

Delphi (Windows 98/NT/2000/XP)

AngeloMPEG4_Encode_Start(Encoder_Index:Longint):Longint;

AngeloMPEG4_Encode_Stop(Encoder_Index:Longint):Longint;

AngeloMPEG4_Encode_Close(Encoder_Index:Longint):Longint;

@ Argument channel:

Indicates the channel index for the MPEG4 encoder. The range of channels is 0 –

15.

@ Return Code

@ Example

<VC/BCB > int Result; int Encoder_Index = 0;

Result = AngeloMPEG4_Encode_Start(Encoder_Index);

Result = AngeloMPEG4_Encode_Stop(Encoder_Index);

Result = AngeloMPEG4_Encode_Close(Encoder_Index);

< Visual Basic >

Dim Result As Long, Encoder_Index As Long

Encoder_Index = 0

<Delphi >

Result = AngeloMPEG4_Encode_Start(Encoder_Index)

Result = AngeloMPEG4_Encode_Stop(Encoder_Index)

Result = AngeloMPEG4_Encode_Close(Encoder_Index) var

Encoder_Index, Result: Longing; begin

Result := AngeloMPEG4_Encode_Stop(Encoder_Index);

// pause the encoder

Result :=

AngeloMPEG4_Encode_Start(Encoder_Index); // restart the encoder

// close the Encoder

Function Library

• 43

Result :=

AngeloMPEG4_Encode_Stop(Encoder_Index);

Result :=

AngeloMPEG4_Encode_Close(Encoder_Index); end;

AngeloMPEG4_Encode_Save_File_Start –

AngeloMPEG4_Encode_Save_File_Stop –

AngeloMPEG4_Encode_Create_Directory –

@ Syntax

C/C++ (Windows 98/NT/2000/XP) int AngeloMPEG4_Encode_Save_File_Start(int Encoder_Index, char* n_file_name, long interval_second, long format); int AngeloMPEG4_Encode_Save_File_Stop(int Encoder_Index); int AngeloMPEG4_Encode_Create_Directory(int Encoder_Index, char* Dir);

Visual Basic (Windows 98/NT/2000/XP)

AngeloMPEG4_Encode_Save_File_Start (ByVal Encoder_Index As Long, ByVal n_file_name As String, ByVal interval_second As Long, ByVal format As Long) As

Long

AngeloMPEG4_Encode_Save_File_Stop (ByVal Encoder_Index As Long) As Long

AngeloMPEG4_Encode_Create_Directory(ByVal Encoder_Index As Long, ByVal Dir

As String,) As Long

Delphi (Windows 98/NT/2000/XP)

AngeloMPEG4_Encode_Save_File_Start(Encoder_Index:Longint; n_file_name:String; interval_second:Longint; format:Longint):Longint;

AngeloMPEG4_Encode_Save_File_Stop(Encoder_Index:Longint):Longint;

AngeloMPEG4_Encode_Create_Directory(Encoder_Index:Longint;

Dir:String):Longint;

@ Argument

Encoder_Index:

Indicates the channel index for the MPEG4 encoder. The range of channels is 0 –

15. n_file_name:

The argument is the path and name of the file that the encoded image will be saved to. interval_second:

This argument is the number of seconds of encoded video to be saved. format:

The argument describes the format in which to save the file.

1: m4v file

2: avi file

Function Library

• 44

3: both

Dir:

The argument is the path and name of the directory that will be created.

@ Return Code

@ Example

<VC/BCB >

< Visual Basic >

Dim Result As Long, Encoder_Index As Long, interval_second As Long, format As Long

Encoder_Index = 0; n_file_name = “test” interval_second = 60 format = 3 “save both format

Dir = “temp”

Result =

AngeloMPEG4_Encode_Save_File_Start(Encoder_Inde x, n_file_name, interval_second, format)

<Delphi > int Result; int Encoder_Index = 0; char* n_file_name = “test”; long interval_second = 60; int format = 3; //save both format char* Dir = “temp”;

Result =

AngeloMPEG4_Encode_Save_File_Start(Encoder_Inde x, n_file_name, interval_second, format);

Result = AngeloMPEG4_Encode_Create_Directory

(Encoder_Index, Dir);

Var

Encoder_Index, Result: Longint;

Dir, n_file_name: String; interval_second, format: Longint; begin

Encoder_Index:= 0;

Dir := “C:\VideoDir”; n_file_name := Dir + “\” + “Video0”; interval_second := 60;

Function Library

• 45

format := 3; // save both format

Result :=

AngeloMPEG4_Encode_Create_Directory(Encoder_Ind ex, Dir);

Result :=

AngeloMPEG4_Encode_Save_File_Start(Encoder_Inde x, n_file_name, interval_second, format); end;

AngeloMPEG4_Encode_Set_Motion_Detection–

@ Syntax

C/C++ (Windows 98/NT/2000/XP) int AngeloMPEG4_Encode_Set_Motion_Detection(int Encoder_Index,int Area,int enable, int Threshold,int interval,int action,int X_Start,int Y_Start,int Width,int

Height);

Visual Basic (Windows 98/NT/2000/XP)

AngeloMPEG4_Encode_Set_Motion_Detection(ByVal Encoder_Index As Long,

ByVal enable As Long, ByVal Threshold As Long, ByVal interval As Long, ByVal action As Long) As Long

Delphi (Windows 98/NT/2000/XP)

AngeloMPEG4_Encode_Set_Motion_Detection(Encoder_Index:Longint;

Area :Longint; enable:Longint; Threshold:Longint; interval:Longint; action:Longint;

X_Start:Longint; Y_Start:Longint; Width:Longint; Height:Longint):Longint;

@ Argument

Encoder_Index:

Indicate the channel index for the MPEG4 encoder. The range of channels is

0 – 15.

Area:

User can assign up to 4 motion detection areas in one frame, the valid values are from 1 - 4. enable:

1: enables motion detection

0: disables motion detection

Threshold:

Determines the sensitivity of motion detection measurement. The valid values are from 0 - 15, with 0 being the highest sensitivity. interval:

The time interval between measurements of motion detection. action:

Function Library

• 46

X_Start, Y_Start, Width, Height:

Sets the boundary of the motion detection area.

This argument describes what actions the function will do. bit 0: Callback,

@ Return Code

@ Example

<VC/BCB >

< Visual Basic > int Result; int Encoder_Index = 0; int enable = 1; int Threshold = 5; int interval = 3; int action = 1; int area =1; int X_Start = 0; int Y_Start =0; int Width = 160; int Height = 120;

Result =

AngeloMPEG4_Encode_Set_Motion_Detection(Encoder

_Index, area, enable, Threshold, interval, action,

X_Start, Y_Start, Width, Height);

Dim Result As Long, Encoder_Index As Long, enable As

Long, Threshold As Long, interval As Long, action

As Long, area As Long, X_Start As Long, Y_Start As

Long, Width As Long, Height As Long

Encoder_Index = 0 enable = 1

Threshold = 5 interval = 3 action = 1 area =1

X_Start = 0

Y_Start =0

Width = 160

Height = 120

Function Library

• 47

<Delphi >

Result =

AngeloMPEG4_Encode_Set_Motion_Detection(Encoder_I ndex, area, enable, Threshold, interval, action,

X_Start, Y_Start, Width, Height) var

Encoder_Index, Result: Longint; enable, Threshold, interval, action: Longint, area:Longint, X_Star:Longint, Y_Start:Longint,

Width: Longint, Height:Longint; begin

Encoder_Index:= 0; enable := 1;

Threshold := 5;

Interval := 3; // 3 sec

Action := 1; // callback area =1;

X_Start = 0;

Y_Start =0;

Width = 160;

Height = 120; if (enable = 1) then

Result =

AngeloMPEG4_Encode_Set_Motion_Detection(Encod er_Index, area, enable, Threshold, interval, action, X_Start, Y_Start, Width, Height) else // disable motion detection

Result =

AngeloMPEG4_Encode_Set_Motion_Detection(Encod er_Index, area, 0, Threshold, interval, action,

X_Start, Y_Start, Width, Height); end;

Function Library

• 48

@ Name

AngeloMPEG4_Decode_Set_Callback(Decoder_Index, CallBackProc) –Setup the

callback function for decoder.

AngeloMPEG4_Decode_Connect(Decoder_Index, Encoder_IP,

Encoder_Index) –Connect to the encoder.

AngeloMPEG4_Decode_Disconnect(Decoder_Index) –Disconnect from the encoder.

AngeloMPEG4_Decode_Set_Image_Config(Decoder_Index, ConfigIndex ,

Value) –Adjust the brightness, contrast, hue etc..

AngeloMPEG4_Decode_Set_Motion_Detection(Decoder_Index, Area, enable,

Threshold, interval, action, X_Start, Y_Start, Width, Height) –Set the motion detection criteria, and action when motion occurs in decode site.

AngeloMPEG4_Decode_Get_Config(Decoder_Index, iWidth, iHeight, video_format, color_format, Bitrate, frame_rate) –Get the video property from encode site.

AngeloMPEG4_Decode_From_File(Decoder_Index, file_name, action, speed) –Decode the video form “.m4v” file.

AngeloMPEG4_Decode_Start(Decoder_Index) –Start to decode the video.

AngeloMPEG4_Decode_Stop(Decoder_Index) –Stop decoding the video.

AngeloMPEG4_Decode_Get_FlowRate(Decoder_Index, Byte_Second) – Get the current data flow rate between encoder and decoder

AngeloMPEG4_Decode_ReInitialEx(Decoder_Index, Bitrate, frame_rate,

Angelo_Video_Format) –Reset the video property.

AngeloMPEG4_Decode_ReInitial(Decoder_Index, Quality ,

Angelo_Video_Format) –Reset the video property.

AngeloMPEG4_Decode_Save_File_Start(Decoder_Index, n_file_name, interval_second, format) – Start to save compressed file in decode site.

AngeloMPEG4_Decode_Save_File_Stop(Decoder_Index) – Stop saving compressed file in decode site.

@ Description

AngeloMPEG4_Decode_Set_Callback:

This function establishes a notification mechanism between function library and user process. The callback function is application-defined. The user passes the function pointer to the function library by calling this function. In order to receive any notification event, the user must apply this function before any decode function at the decode site.

AngeloMPEG4_Decode_ Connect:

Function Library

• 49

Use this function to establish a connection between decoder and encoder.

Video data will then be transferred through this connection.

AngeloMPEG4_Decode_ Disconnect:

Use this function to close the connection between decoder and encoder. After closing the connection, the decoder will not receive video data from the encoder.

AngeloMPEG4_Decode_Start:

If a connection between encoder and decoder is established, video data will transfer from encoder to decoder automatically. Use this function to restart video data transmission after calling “AngeloMPEG4_Decode_Stop” to stop data transmission.

AngeloMPEG4_Decode_Stop:

This function stops video data transmission between decoder and encoder, but leaves the connection established.

AngeloMPEG4_Decode_Save_File_Start:

If the connection between encoder and decoder is established, use this function to save the encoded image into an “.avi” or “.m4v” video file at the decode site. The “.avi” file is the standard video format, and “.m4v” is only accessible in this function library.

Note:

1. Do not add a file extension to the file name.

2. User must install the XVID Codec in our setup disk in order to play “.avi” file in

MS Media Player.

AngeloMPEG4_Decode_Save_File_Stop:

If a connection between encoder and decoder is established, use this function to stop saving the video file to the decode site. In general, the video file will close automatically after the “Interval” parameter in

AngeloMPEG4_Decode_Save_File_Start has elapsed.

AngeloMPEG4_Decode_Set_Motion_Detection:

If the connection between encoder and decoder is established, use this function to configure the motion detection criteria and the action when motion occurs at the decode site.

AngeloMPEG4_Decode_Set_Image_Config:

If the connection between encoder and decoder is established, use this function to adjust image properties (e.g. contrast, brightness).

AngeloMPEG4_Decode_From_File:

Function Library

• 50

If you save the video file into “.m4v” format and the file is closed, you can use this function to decode the video file and retrieve the video image with a callback function. The video images can then be displayed in the Windows environment.

AngeloMPEG4_Decode_Get_FlowRate(channel, Byte_Second):

If the connection between encoder and decoder is established, use this function to query the current data flow rate between encoder and decoder.

AngeloMPEG4_Decode_ReInitialEx(channel, Bitrate, frame_rate,

Angelo_Video_Format)

Because the bit rate and frame rate are initialized at the encode site, the decoder uses this function to reset the image quality, if there is a connection established.

Note: if one decoder changes the image quality, all the other decoders will also receive the new image quality.

AngeloMPEG4_Decode_ReInitial(channel, Quality , Angelo_Video_Format):

Because the Quality is initialized at the encode site, the decoder uses this function to reset the image quality, if there is a connection established.

Note: if one decoder changes the image quality, all the other decoders will also receive the new image quality.

AngeloMPEG4_Decode_Get_Config:

User must define a callback function, than call

“AngeloMPEG4_Decode_Set_Callback”. Use “AngeloMPEG4_Decode_

Connect” to establish the connection, if the connection is made, the callback function will receive a notification event. Then you can use

“AngeloMPEG4_Decode_Get_Config” to get the image configuration (e.g. width, height, Bitrate, and frame_rate) from the encode site.

AngeloMPEG4_Decode_Connect –

AngeloMPEG4_Decode_Disconnect –

@ Syntax

C/C++ (Windows 98/NT/2000/XP) int AngeloMPEG4_Decode_Connect(int De coder_Index, char* Encoder_IP, unsigned int Enocder_Index); int AngeloMPEG4_Decode_Disconnect(int De coder_Index);

Visual Basic (Windows 98/NT/2000/XP)

AngeloMPEG4_Decode_Connect(ByVal De coder_Index As Long, ByVal

Encoder_IP As String, ByVal Encoder_Channel As Long) As Long

AngeloMPEG4_Decode_ Disconnect (ByVal De coder_Index As Long) As Long

Function Library

• 51

Delphi (Windows 98/NT/2000/XP)

AngeloMPEG4_Decode_Connect( De coder_Index:Longint; Encoder_IP:String;

Enocder_channel:Longint):Longint;

AngeloMPEG4_Decode_Disconnect( De coder_Index:Longint):Longint;

@ Argument

De coder_Index :

Indicates the channel index of the MPEG4 decoder. The range of channels is 0 - 15.

Encoder _IP:

Encoder_IP is the IP address of the MPEG4 encoder.

Encoder_Index:

Encoder_Index is the channel index of the MPEG4 encoder.

Angelo_Video_Format:

Reserved for future use.

@ Return Code

@ Example

< VC/BCB > int Result; int Decoder_Index = 0; char* Encoder_IP = “127.0.0.1”; //localhost unsigned int Encoder_Index = 0;

Result = AngeloMPEG4_Decode_Connect(Decoder_Index,

Encoder_IP, Encoder_Index);

Result =

AngeloMPEG4_Decode_Disconnect(Decoder_Index);

< Visual Basic >

Dim Result As Long, Decoder_Index As Long,

Encoder_Index As Long

Dim Encoder_IP As String

Decoder_Index = 0

Encoder_IP = “127.0.0.1” “localhost

Encoder_Index = 0

Result = AngeloMPEG4_Decode_Connect(Decoder_Index,

Encoder_IP, Encoder_Index)

Result =

AngeloMPEG4_Decode_Disconnect(Decoder_Index)

<Delphi >

Function Library

• 52

var

Decoder_Index: Longint;

Encoder_IP: String;

Encoder_Index: Longint;

Result: Longint; begin

Decoder_Index:= 0;

Remote_IP := “61.30.14.228”;

Encoder_Index := 2000;

Result := AngeloMPEG4_Decode_Connect(Decoder_Index,

Encoder_IP,Encoder_Index);

Result := AngeloMPEG4_DecodeDisconnect(Decoder_Index); end;

AngeloMPEG4_Decode_Set_Callback–

@ Syntax

C/C++ (Windows 98/NT/2000/XP) int AngeloMPEG4_Decode_Set_Callback(int De coder_Index, void ( __stdcall

*CallBackProc)(int De coder_Index, long int_status, long VideoBufferaddress));

Visual Basic(Windows 98/NT/2000/XP)

AngeloMPEG4_Decode_Set_Callback(ByVal De coder_Index As Long, ByVal

CallBack As Long) As Long

Delphi (Windows 98/NT/2000/XP)

AngeloMPEG4_Decode_Set_Callback( De coder_Index:Longint; lpDecodeCallBackProc:DecodeCallBackProc):Longint;

@ Argument

De coder_Index :

Indicates the channel index of the decoder. The range of channels is 0 - 15.

int_status:

Interrupt status:

Bit 0: Image ready

Bit 1: Motion Detection occurence

Bit 2: Connection established

@ Return Code

@ Example

< VC/BCB > int Result; int Decoder_Index = 0;

Function Library

• 53

void __stdcall Decode_Callback(int Decoder_Index, long int_status, long VideoBufferaddress)

{ if((int_status & 0x01) == 1) //Image Ready

{

memcpy(Temp,(PVOID)VideoBufferaddress,iWidth*i

Height*3);

gpDC->BitBlt(10,10,iWidth,iHeight,MemDC,0,0,SR

CCOPY);

} if((int_status>>1 & 0x01) == 1) //MotionDetection

Occur

{

//Deal with MotionDetection

} if((int_status>>2 & 0x01) == 1) //Connection establish

{

//Prepare DC for Preview

int Bitrate = 0, frame_rate = 0, colorspace = 0;

AngeloMPEG4_Decode_Get_Config(Decoder_Index,

&iWidth, &iHeight, &videoformat, &colorspace,

&Bitrate, &frame_rate);

}

}

Result =

AngeloMPEG4_Decode_Set_Callback(Decoder_Index,

Decode_Callback);

< Visual Basic >

Dim Result As Long, Decoder_Index As Long

Public Sub lpcallback(ByVal Decoder_Index As Long, ByVal int_status As Long, ByVal VideoBufferaddress As Long)

If int_status And &H2 Then “detected motion encoder

ElseIf int_status And &H4 Then “ connect to

ElseIf int_status And &H1 Then “ image ready

AddressOf lpcallback)

Function Library

• 54

<Delphi > procedure DecoderCallbackProc(Decoder_Index:Longint; int_status:Longint; VideoBufferaddress:Longint); stdcall var

Str_Addr: Pointer;

Bitrate, Framerate, colorspace, videoformat: Longint; begin

case int_status of

1: begin {********* image buffer OK *********}

// draw image here

end;

2: begin {********* Motion Detected *********}

end;

4: begin {********* Connect Ready Interrupt *********}

// You can get image config here and do somthing

end;

end; // end case int_status of end;

// Main Code var

Decoder_Index: Longint;

Result: Longint; begin channel := 0;

Result := AngeloMPEG4_Decode_Set_Callback(Decoder_Index,

DecoderCallbackProc); end;

AngeloMPEG4_Decode_Set_Image_Config–

@ Syntax

C/C++ (Windows 98/NT/2000/XP) int AngeloMPEG4_Decode_Set_Image_Config(int Decoder_Index, int ConfigIndex , int Value);

Visual Basic(Windows 98/NT/2000/XP)

AngeloMPEG4_Decode_Set_Image_Config(ByVal Decoder_Index As Long, ByVal

ConfigIndex As Long, ByVal Value As Long) As Long

Delphi (Windows 98/NT/2000/XP)

AngeloMPEG4_Decode_Set_Image_Config(Decoder_Index:Longint;

ConfigIndex:Longint; Value:Longint):Longint;

@ Argument

Decoder_Index :

Indicates the channel index of the decoder. The range of channels is 0 - 15.

ConfigIndex:

0 for BRIGHTNESS

1 for HUE

Function Library

• 55

2 for SATURATION (U)

3 for SATURATION (V)

4 for CONTRAST (LUMA)

5 for luma notch filter (for monochrome video, the notch filter should not be used)

value: (0-255)

Range Default value

HUE

CHROMA (U) 0 ---- 255

CHROMA (V) 0 ---- 255

LUMA

LUMA notch filter 0(Enable) or 1(Disable)

@ Return Code

127

127

0: ERROR_NoError

@ Example

< VC/BCB > int Result; int Decoder_Index = 0; int ConfigIndex = 0; int value = 128;

Result = AngeloMPEG4_Decode_Set_Image_Config(Decoder_Index,

ConfigIndex, value);

< Visual Basic >

Dim Result As Long, Decoder_Index As Long, ConfigIndex As Long, value As Long

Decoder_Index = 0

ConfigIndex = 0 value = 128

Result = AngeloMPEG4_Decode_Set_Image_Config(Decoder_Index,

ConfigIndex, value)

<Delphi > var

Decoder_Index: Longint;

ConfigIndex: Longint;

Value: Longint;

Result: Longint; begin

Decoder_Index:= 0;

ConfigIndex := 0;

Value := 128;

Result := AngeloMPEG4_Decode_Set_Image_Config(Decoder_Index,

ConfigIndex, Value); end;

Function Library

• 56

AngeloMPEG4_Decode_Set_Motion_Detection–

@ Syntax

C/C++ (Windows 98/NT/2000/XP) int AngeloMPEG4_Decode_Set_Motion_Detection(int Decoder_Index,int Area,int enable, int Threshold,int interval,int action,int X_Start,int Y_Start,int Width,int

Height);

Visual Basic (Windows 98/NT/2000/XP)

AngeloMPEG4_Decode_Set_Motion_Detection(ByVal Decoder_Index As Long,

ByVal enable As Long, ByVal Threshold As Long, ByVal interval As Long, ByVal action As Long) As Long

Delphi (Windows 98/NT/2000/XP)

AngeloMPEG4_Decode_Set_Motion_Detection(Decoder_Index:Longint;

Area :Longint; enable:Longint; Threshold:Longint; interval:Longint; action:Longint;

X_Start:Longint; Y_Start:Longint; Width:Longint; Height:Longint):Longint;

@ Argument

Decoder_Index:

Indicates the channel index of the decoder. The range of channels is 0 - 15.

Area:

User can assign up to 4 motion detection areas in one frame, the valid values are from 1-4. enable:

1: enable Motion Detection

0: disable Motion Detection

Threshold:

Determines the sensitivity of motion detection measurement. The valid values are from 0 - 15, with 0 being the highest sensitivity. interval:

The time interval between measurements of motion detection. action:

This argument describes what actions the function will do. bit 0: Callback, bit 1: Reserved, bit 2: Send motion frame

For example: when action = 1+4, the function will do callback and send motion image

X_Start, Y_Start, Width, Height:

Sets the boundary of motion detection area

@ Return Code

Function Library

• 57

@ Example

<VC/BCB >

< Visual Basic >

Dim Result As Long, Decoder_Index As Long, enable As

Long, Threshold As Long, interval As Long, action

As Long, area As Long, X_Start As Long, Y_Start As

Long, Width As Long, Height As Long

Decoder_Index = 0 enable = 1

Threshold = 5 interval = 3 action = 1 + 4 area =1

X_Start = 0

Y_Start =0

Width = 160

Height = 120

Result =

AngeloMPEG4_Decode_Set_Motion_Detection(channel, area, enable, Threshold, interval, action, X_Start,

Y_Start, Width, Height)

<Delphi > int Result; int Decoder_Index = 0; int enable = 1; int Threshold = 5; int interval = 3; int action = 1 + 4; int area =1; int X_Start = 0; int Y_Start =0; int Width = 160; int Height = 120;

Result =

AngeloMPEG4_Decode_Set_Motion_Detection(Decoder

_Index, area, enable, Threshold, interval, action,

X_Start, Y_Start, Width, Height); var

Decoder_Index, Result: Longint;

Function Library

• 58

enable, Threshold, interval, action: Longint, area:Longint, X_Star:Longint, Y_Start:Longint,

Width: Longint, Height:Longint; begin

Decoder_Index:= 0; enable := 1;

Threshold := 5;

Interval := 3; // 3 sec

Action := 1+4; // callback & send motion image area =1;

X_Start = 0;

Y_Start =0;

Width = 160;

Height = 120; if (enable = 1) then

Result =

AngeloMPEG4_Decode_Set_Motion_Detection(Decod er_Index, area, enable, Threshold, interval, action, X_Start, Y_Start, Width, Height) else // disable motion detection

Result =

AngeloMPEG4_Decode_Set_Motion_Detection(Decod er_Index, area, 0, Threshold, interval, action,

X_Start, Y_Start, Width, Height); end;

AngeloMPEG4_Decode_Get_Config–

@ Syntax

C/C++ (Windows 98/NT/2000/XP) int AngeloMPEG4_Decode_Get_Config(int Decoder_Index, int* iWidth, int* iHeight, int* video_format, int* color_format, int* Bitrate, int* frame_rate);

Visual Basic(Windows 98/NT/2000/XP)

AngeloMPEG4_Decode_Get_Config (ByVal Decoder_Index As Long, ByRef iWidth

As Long, ByRef iHeight As Long, ByRef Video_Format As Long, ByRef color_format

As Long, ByRef Bitrate As Long, ByRef frame_rate As Long) As Long

Delphi (Windows 98/NT/2000/XP)

AngeloMPEG4_Decode_Get_Config(Decoder_Index:Longint; var iWidth:Longint; var iHeight:Longint; var videoformat:Longint; var colorspace:Longint; var Bitrate:Longint; var frame_rate:Longint):Longint;

@ Argument

Decoder_Index :

Indicates the channel index of the decoder. The range of channels is 0 - 15.

iWidth:

Function Library

• 59

Indicates the width of the MPEG4 image size.

iHeight:

Indicates the height of the MPEG4 image size.

Video_format:

Full NTSC (640*480) = 0,

Full PAL (768*576) = 1,

CIF NTSC (320*240) = 2,

CIF PAL (384*288) = 3,

QCIF NTSC (160*120) = 4,

QCIF PAL (192*144) = 5,

Color_format:

RGB16

GRAY

RGB15

RGB24

RGB32

RGB8

RAW8X

= 0,

= 1,

= 2,

= 3,

= 4,

= 5,

= 6,

BtYUV 4:1:1 = 8

At present, we only support RGB24 color format, so the value should be always be set to 3.

Bitrate:

Indicates the bit rate of the MPEG4 stream from the encode server.

Frame_rate:

Indicates the frame rate of the MPEG4 stream from the encode server.

@ Return Code

0: ERROR_NoError

@ Example

< VC/BCB > int Result; int Decoder_Index = 0; int iWidth = 0; int iHeight = 0; int video_format = 0; int color_format = 0; int Bitrate = 0; int frame_rate = 0;

Result =

AngeloMPEG4_Decode_Get_Config(Decoder_Index,

&iWidth, &iHeight, &videoformat, &color_format,

&Bitrate, &frame_rate);

Function Library

• 60

<Visual Basic >

Dim Result As Long, Decoder_Index As Long, iWidth As

Long, iHeight As Long, video_format As Long, color_format As Long, Bitrate As Long, frame_rate As

Long

Decoder_Index = 0

Result =

AngeloMPEG4_Decode_Get_Config(Decoder_Index, iWidth, iHeight, videoformat, colorformat, Bitrate, frame_rate)

<Delphi > var

Decoder_Index: Longint; iWidth, iHeight: Longint; videoformat, colorspace, Bitrate, frame_rate: Longint;

Result: Longint; begin

Decoder_Index:= 0;

Result := AngeloMPEG4_Decode_Get_Config(Decoder_Index, iWidth, iHeight, videoformat, colorspace, Bitrate, frame_rate); end;

AngeloMPEG4_Decode_From_File–

@ Syntax

C/C++ (Windows 98/NT/2000/XP) int AngeloMPEG4_Decode_From_File(int Decoder_Index, char* file_name, int action, int speed);

C/C++ (Windows 98/NT/2000/XP)

AngeloMPEG4_Decode_From_File(Byval Decoder_Index As Long, Byval file_name As String, Byval action As Long, Byval speed As Long)

As Long

Delphi (Windows 98/NT/2000/XP)

AngeloMPEG4_Decode_From_File(Decoder_Index:Longint; file_name:String; action:Longint; speed:Longint):Longint;

@ Argument

Decoder_Index :

Indicates the channel index of the decoder. The range of channels is 0 - 15.

file_name: the file name of the saved MPEG4 stream action:

0 for forward.

Function Library

• 61

1 for playback.

speed: play speed.

-2 for 2x slow

-4 for 4x slow

0 for normal speed

1 for 1x fast

2 for 2x fast

4 for 4x fast

@ Return Code

0: ERROR_NoError

@ Example

< VC/BCB > int Result; int Decoder_Index = 0; char* file_name = “test.m4v”; int action = 0; int speed = 0;

Result = AngeloMPEG4_Decode_From_File(Decoder_Index, file_name, action, speed);

<Visual Basic >

Dim Result As Long, Decoder_Index As Long, action As

Long, Speed As Long

Dim file_name As String

Decoder_Index = 0 file_name = “test.m4v” action = 0 speed = 0

Result = AngeloMPEG4_Decode_From_File(Decoder_Index, file_name, action, speed)

<Delphi > var

Decoder_Index: Longint; file_name: String; action, speed: Longint;

Result: Longint; begin

Decoder_Index:= 0; file_name := “test.m4v”; action := 0; speed := 0;

Result := AngeloMPEG4_Decode_From_File(Decoder_Index, file_name, action, speed);

Function Library

• 62

end;

AngeloMPEG4_Decode_Start–

AngeloMPEG4_Decode_Sop–

@ Syntax

C/C++ (Windows 98/NT/2000/XP) int AngeloMPEG4_Decode_Start(int Decoder_Index); int AngeloMPEG4_Decode_Stop(int Decoder_Index);

Visual Basic(Windows 98/NT/2000/XP)

AngeloMPEG4_Decode_Start(ByVal Decoder_Index As Long) As Long

AngeloMPEG4_Decode_Stop(ByVal Decoder_Index As Long) As Long

Delphi (Windows 98/NT/2000/XP)

AngeloMPEG4_Decode_Start(Decoder_Index:Longint):Longint;

AngeloMPEG4_Decode_Stop(Decoder_Index:Longint):Longint;

@ Argument

Decoder_Index :

Indicates the channel index of the decoder. The range of channels is 0 - 15.

@ Return Code

0: ERROR_NoError

@ Example

< VC/BCB > int Result; int Decoder_Index = 0;

Result = AngeloMPEG4_Decode_Start(Decoder_Index);

Result = AngeloMPEG4_Decode_Stop(Decoder_Index);

< VC/BCB >

Dim Result As Long, Decoder_Index As Long

Decoder_Index = 0

Result = AngeloMPEG4_Decode_Start(Decoder_Index)

Result = AngeloMPEG4_Decode_Stop(Decoder_Index)

<Delphi > var

Decoder_Index: Longint;

Result: Longint; begin

Decoder_Index:= 0;

Result := AngeloMPEG4_Decode_Start(Decoder_Index);

Function Library

• 63

Result := AngeloMPEG4_Decode_Stop(Decoder_Index); end;

AngeloMPEG4_Decode_Expansion–

@ Syntax

C/C++ (Windows 98/NT/2000/XP) int AngeloMPEG4_Decode_Expansion(int Decoder_Index, int Scale);

Visual Basic(Windows 98/NT/2000/XP)

AngeloMPEG4_Decode_Expansion (ByVal Decoder_Index As Long, ByVal nScale

As Long) As Long

Delphi (Windows 98/NT/2000/XP)

AngeloMPEG4_Decode_Expansion(Decoder_Index:Longint; Scale:Longint):Longint;

@ Argument

Decoder_Index :

Indicates the channel index of the MPEG4 Decoder. The range of channels is 0 - 15.

Scale:

Indicates the scale of expansion. The valid value is 2.

@ Return Code

0: ERROR_NoError

@ Example

< VC/BCB > int Result; int Decoder_Index = 0; int Scale = 2;

Result = AngeloMPEG4_Decode_Expansion(Decoder_Index,

Scale);

< VC/BCB >

Dim Result As Long, Decoder_Index As Long, Scale As

Long

Decoder_Index = 0

Scale = 2

Result = AngeloMPEG4_Decode_Expansion(Decoder_Index,

Scale)

<Delphi > var

Decoder_Index: Longint;

Scale: Longint;

Result: Longint; begin

Decoder_Index:= 0;

Function Library

• 64

Scale := 2;

Result := AngeloMPEG4_Decode_Expansion(Decoder_Index, Scale); end;

AngeloMPEG4_Decode_Get_FlowRate–

@ Syntax

C/C++ (Windows 98/NT/2000/XP) int AngeloMPEG4_Decode_Get_FlowRate(int Decoder_Index, long* Byte_Second);

Visual Basic (Windows 98/NT/2000/XP)

AngeloMPEG4_Decode_Get_FlowRate(ByVal Decoder_Index As Long, ByRef flow_rate As Long) As Long

Delphi (Windows 98/NT/2000/XP)

AngeloMPEG4_Decode_Get_FlowRate(Decoder_Index:Longint; var

Byte_Second:Longint):Longint;

@ Argument

Decoder_Index :

Indicates the channel index of the MPEG4 Decoder. The range of channels is 0 - 15.

Byte_Second:

The current flow rate of MPEG4 streaming measured in bytes/sec.

@ Return Code

0: ERROR_NoError

@ Example

< VC/BCB > int Result; int Decoder_Index = 0; long Byte_Second;

Result =

AngeloMPEG4_Decode_Get_FlowRate(Decoder_Index,

&Byte_Second);

< Visual Basic >

Dim Result As Long, Decoder_Index As Long,

Byte_Second As Long

Result =

AngeloMPEG4_Decode_Get_FlowRate(Decoder_Index,

Byte_Second)

<Delphi >

AngeloMPEG4_Decode_Get_FlowRate –

Function Library

• 65

var

Decoder_Index: Longint;

Byte_Second: Longint;

Result: Longint; begin

Decoder_Index:= 0;

Result := AngeloMPEG4_Decode_Get_FlowRate(Decoder_Index,

Byte_Second); end;

AngeloMPEG4_Decode_ ReInitial–

AngeloMPEG4_Decode_ ReInitialEx–

@ Syntax

C/C++ (Windows 98/NT/2000/XP) int AngeloMPEG4_Decode_ReInitial(int Decoder_Index, int Quality, int

Angelo_Video_Format); int AngeloMPEG4_Decode_ReInitialEx(int Decoder_Index, int Bitrate, int frame_rate, int Angelo_Video_Format);

Visual Basic (Windows 98/NT/2000/XP)

AngeloMPEG4_Decode_ReInitial (ByVal Decoder_Index As Long, ByVal Quality As

Long, ByVal Video_Format As Long) As Long

AngeloMPEG4_Decode_ReInitialEx (ByVal Decoder_Index As Long, ByVal Bitrate

As Long, ByVal frame_rate As Long, ByVal Video_Format As Long) As Long

Delphi (Windows 98/NT/2000/XP)

AngeloMPEG4_Decode_ReInitial(Decoder_Index:Longint; Quality:Longint;

Angelo_Video_Format:Longint):Longint;

AngeloMPEG4_Decode_ReInitialEx(Decoder_Index:Longint; Bitrate:Longint; frame_rate:Longint; Angelo_Video_Format:Longint):Longint;

@ Argument

Decoder_Index :

Indicates the channel index of the MPEG4 decoder. The range of channels is 0 - 15.

Quality:

Quality value image 640*480

320000*4 frame_rate = 3

400000*2

Low -1 frame_rate = 6

Normal 0

Bitrate = 480000*4 frame_rate = 15 image 320*240

Bitrate = 320000 frame_rate = 3

Bitrate = 400000 frame_rate = 6

Bitrate = 480000 frame_rate = 15 image 160*120

Bitrate = 24 0000/4 frame_rate = 3

Bitrate = 400000/4 frame_rate = 6

Bitrate = 480000/4 frame_rate = 15

Function Library

• 66

512000*4

High 1 frame_rate = 30

1024000*4 frame_rate = 30

Bitrate = 512000 frame_rate = 30

Bitrate =

1024000 frame_rate = 30

Bitrate = 512000/4 frame_rate = 30

Bitrate =

1024000/4 frame_rate = 30

Bitrate:

Indicates the bit rate of the MPEG4 stream from the encode server.

Frame_rate:

Indicates the frame rate of the MPEG4 stream from the encode server. The value is 0 -

30.

Angelo_Video_Format:

Full NTSC (640*480) = 0,

Full PAL (768*576) = 1,

CIF NTSC (320*240) = 2,

CIF PAL (384*288) = 3,

QCIF NTSC (160*120) = 4,

QCIF PAL (192*144) = 5,

@ Return Code

0: ERROR_NoError

@ Example

< VC/BCB > int Result; int Decoder_Index = 0; int Quality =0 int Bitrate = 480000; int frame_rate = 15; int Angelo_Video_Format = 2;

Result = AngeloMPEG4_Decode_ReInitia(Decoder_Index,

Quality, Angelo_Video_Format);

Result =

AngeloMPEG4_Decode_ReInitialEx(Decoder_Index,

Bitrate, frame_rate, Angelo_Video_Format);

<Visual Basic >

Dim Result As Long, Decoder_Index As Long, Quality

As Long, Bitrate As Long, frame_rate As Long,

Angelo_Video_Format As Long

Decoder_Index = 0

Quality =0

Bitrate = 480000 frame_rate = 15

Angelo_Video_Format = 2

Function Library

• 67

Result = AngeloMPEG4_Decode_ReInitia(Decoder_Index,

Quality, Angelo_Video_Format)

Result =

AngeloMPEG4_Decode_ReInitiaEx(Decoder_Index,

Bitrate, frame_rate, Angelo_Video_Format)

<Delphi > var

Decoder_Index: Longint;

Quality, Bitrate, frame_rate, Angelo_Video_Format: Longint;

Result: Longint; begin

Decoder_Index:= 0;

Quality :=0;

Bitrate := 480000; frame_rate := 15;

Angelo_Video_Format = 2;

Result = AngeloMPEG4_Decode_ReInitial(Decoder_Index, Quality,

Angelo_Video_Format);

Result = AngeloMPEG4_Decode_ReInitialEx(Decoder_Index, Bitrate, frame_rate, Angelo_Video_Format); end;

AngeloMPEG4_Decode_ Save_File_Start–

AngeloMPEG4_Decode_ Save_File_Stop–

@ Syntax

C/C++ (Windows 98/NT/2000/XP/CE.NET) int AngeloMPEG4_Decode_Save_File_Start(int Decoder_Index, char* n_file_name, long interval_second, long format); int AngeloMPEG4_Decode_Save_File_Stop(int Decoder_Index);

Visual Basic (Windows 98/NT/2000/XP)

AngeloMPEG4_Decode_Save_File_Start (ByVal Decoder_Index As Long, ByVal n_file_name As String, ByVal interval_second As Long, ByVal format As Long) As

Long

AngeloMPEG4_Decode_Save_File_Stop (ByVal Decoder_Index As Long) As Long

Delphi (Windows 98/NT/2000/XP)

AngeloMPEG4_Decode_Save_File_Start(Decoder_Index:Longint; n_file_name:String; interval_second:Longint; format:Longint):Longint;

AngeloMPEG4_Decode_Save_File_Stop(Decoder_Index:Longint):Longint;

@ Argument

Decoder_Index :

Indicates the channel index of the MPEG4 decoder. The range of channels is 0 - 15.

n_file_name:

The file name to save to (without file extension).

Function Library

• 68

interval_second:

This argument is the number of seconds of encoded video to be saved. format:

1: m4v,

2: avi.

3: both.

@ Return Code

0: ERROR_NoError

@ Example

< VC/BCB > int Result; int Decoder_Index = 0; char* n_file_name = “test”; int interval_second = 10; //10 seconds long format = 1 + 2; //save both file format

Result =

AngeloMPEG4_Decode_Save_File_Start(Decoder_Inde x, n_file_name, interval_second, format);

< Visual Basic >

Dim Result As Long, Decoder_Index As Long, interval_second As Long, format As Long

Decoder_Index = 0; n_file_name = “test” interval_second = 60 format = 3 “save both format

Dir = “temp”

Result =

AngeloMPEG4_Decode_Save_File_Start(Decoder_Index, n_file_name, interval_second, format)

<Delphi > var

Decoder_Index: Longint; n_file_name: String; interval_second, format: Longint;

Result: Longint; begin

Decoder_Index:= 0; n_file_name := “Video0”; interval_second := 10;

Function Library

• 69

format := 3; // Save both format

Result := AngeloMPEG4_Decode_Save_File_Start(Decoder_Index, n_file_name, interval_second, format); end;

@ Name

AngeloMPEG4_Get_Version(lMpeg4_DLLVersion, AngeloRTV_DLLVersion,

Reserved)

@ Description

AngeloMPEG4_Get_Version:

Use this function to get the software information.

AngeloMPEG4_Get_Version –

@ Syntax

C/C++ (Windows 98/NT/2000/XP/CE.NET) int AngeloMPEG4_Get_Version(long *Mpeg4_DLLVersion, long

*AngeloRTV_DLLVersion, long *Reserved);

Delphi (Windows 98/NT/2000/XP)

AngeloMPEG4_Get_Version(var Mpeg4_DLLVersion:Longint; var

AngeloRTV_DLLVersion:Longint; var Reserved:Longint):Longint;

@ Argument

Mpeg4_DLLVersion:

Indicates the current version of the MPEG4 DLL. It is of 4 rows in length.

AngeloRTV_DLLVersion:

Indicates the current version of AngeloRTV DLL. It is of 4 rows in length.

@ Return Code

0: ERROR_NoError

@ Example

< VC/BCB >

Function Library

• 70

int Result; long Mp4Version[4] = {0}, DLLVersion[4] = {0},

VersionReserved[4] = {0};

CString str1, str2;

Result = AngeloMPEG4_Get_Version(Mp4Version,

DLLVersion, VersionReserved); str1.Format("%d.%d.%d.%d", DLLVersion[0],

DLLVersion[1], DLLVersion[2], DLLVersion[3]); str2.Format("%d.%d.%d.%d", Mp4Version[0],

Mp4Version[1], Mp4Version[2], Mp4Version[3]);

<Visual Basic >

Dim Result As long, Mp4Version(0 to 3) As Long,

DLLVersion(0 to 3) As Long, VersionReserved(0 to

3) As Long

Result = AngeloMPEG4_Get_Version(Mp4Version(0),

DLLVersion(0), VersionReserved(0))

<Delphi > var

Mpeg4_DLLVersion : array[0..3] of Longint;

AngeloRTV_DLLVersion : array[0..3] of Longint;

Reserved : array[0..3] of Longint;

Result: Longint;

Str_AngeloMPEG4_Version, Str_AngeloRTV_Version: String; begin

Result := AngeloMPEG4_Get_Version(Mpeg4_DLLVersion[0],

AngeloRTV_DLLVersion[0], Reserved[0]);

Str_AngeloMPEG4_Version := IntToStr(Mpeg4_DLLVersion[0]);

Str_AngeloMPEG4_Version := Str_AngeloMPEG4_Version + “.” +

IntToStr(Mpeg4_DLLVersion[1]);

Str_AngeloMPEG4_Version := Str_AngeloMPEG4_Version + “.” +

IntToStr(Mpeg4_DLLVersion[2]);

Str_AngeloMPEG4_Version := Str_AngeloMPEG4_Version + “.” +

IntToStr(Mpeg4_DLLVersion[3]);

Str_AngeloRTV_Version := IntToStr(AngeloRTV_DLLVersion[0]);

Str_AngeloRTV_Version := Str_AngeloRTV_Version + “.” +

IntToStr(AngeloRTV_DLLVersion[1]);

Str_AngeloRTV_Version := Str_AngeloRTV_Version + “.” +

IntToStr(AngeloRTV_DLLVersion[2]);

Str_AngeloRTV_Version := Str_AngeloRTV_Version + “.” +

IntToStr(AngeloRTV_DLLVersion[3]); end;

Function Library

• 71

Appendix

Appendix A: Glossary

Brightness:

Attribute of a visual sensation according to which an area appears to exhibit more or less light.

CCIR:

Committee Consulat International Radiotelegraphique. This is a standards committee of the International Telecommunications Union, which made the technical recommendation for European 625 line standard for video signals.

Composite Video:

Composite video (CVS/CVBS) signal carries video picture information for color, brightness and synchronizing signals for both horizontal and vertical scans.

CIF:

CIF has 352(H) x 288(V) luminance pixels, and 176(H) x 144(V) chrominance pixels. QCIF is a similar picture format with one-quarter the size of CIF.

EIA:

Electronic Industry Association. An industry lobbying group; it collects statistics and establishes testing standards for many types of home electronics.

Field:

For interlaced video the total picture is divided into two fields, one even and one odd, each containing one half of the total vertical information. Each field takes one sixtieth of a second (one fiftieth for PAL) to complete. Two fields make a complete frame of video.

Frame:

One frame (two fields) of video contains the full vertical interlaced information content of the picture. For NTSC this consists of 525 lines and PAL a frame is consisted of 625 lines.

Gamma:

Cathode ray tubes (CRTs) do not have a linear relationship between brightness and the input voltage applied. To compensate for this non-linearity, a pre distortion or gamma correction is applied, generally at the camera source. A value of gamma equal to 2.2 is typical, but can very for different

CRT phosphors.

Hue:

Appendix

• 73

Attribution of visual sensation according to which area appears to be similar to one, or proportions of two, of the perceived colors red, yellow, green, and blue.

NTSC:

Color TV standard developed in the U.S. in 1953 by National Television

System Committee. NTSC is used in United States, Canada, Japan, in most of the American continent countries and in various Asian countries. The rest of the world uses either some variety of PAL or SECAM standards.

NTSC runs on 525 lines/frame and its vertical frequency is 60Hz. NTSC’s frame rate is 29.97 frames/sec.

PAL:

PAL (Phase Alternating Line) TV standard was introduced in the early 1960”s in Europe. It has better resolution than NTSC, having 625 lines/frame, but the frame rate is slightly lower, being 25 frames/sec. PAL is used in most of the western European countries (except France, where SECAM is used),

Australia, some countries in Africa, some countries in South America and in some Asian countries. There are various versions of PAL, the most commonly used method is called PAL B/G, but others include PAL I (used in the UK and in Ireland) and PAL M (hybrid standard, which has the same resolution as NTSC, but uses PAL transmission and color coding technology).

Saturation:

A characteristic describing color amplitude or intensity. A color of a given hue may consist of low or high saturation value, which relates to the vividness of the color.

AGC

Abbreviation for automatic gain control. On a TV or VCR, AGC is a circuit that automatically adjusts the incoming signal to the proper levels for display or recording. On a video camera, AGC is a circuit that automatically adjusts the sensitivity of the pickup tube to render the most pleasing image.

Appendix

• 74

Appendix B: Standard Compliance

Notice for USA

Compliance Information Statement (Declaration of

Conformity Procedure) DoC FCC Part 15

This equipment has been tested and found to comply with the limits for a

Class A digital device, pursuant to Part 15 of the FCC Rules.

These limits are designed to provide reasonable protection against harmful interference in a residential installation or when the equipment is operated in a commercial environment.

This equipment generates, uses, and can radiate radio frequency energy and, if not installed and used in accordance with the instructions, may cause harmful interference to radio communications. However, there is no guarantee that interference will not occur in a particular installation.

If this equipment does cause harmful interference to radio or television reception, which can be determined by turning the equipment off and on, the user is encouraged to try to correct the interference by one or more of the following measures:

Reorient or relocate the receiving antenna.

Increase the separation between the equipment and receiver.

Connect the equipment into an outlet on a circuit different from that to which the receiver is connected.

Consult the dealer or an experienced radio/TV technician for help.

Notice for Europe

This product is in conformity with the Council Directive

89/336/EEC amended by 92/31/EEC and 93/68/EEC

This equipment has been tested and found to comply with

EN55022/CISPR22 and EN55024/CISPR24. To meet EC requirements, shielded cables must be used to connect a peripheral to the card. This product has been tested in a typical class B compliant host system. It is assumed that this product will also achieve compliance in any class A compliant unit.

Appendix

• 75

Warranty Policy

Thank you for choosing ADLINK. To understand your rights and enjoy all the after-sales services we offer, please read the following carefully:

1. Before using ADLINK’s products please read the user manual and follow the instructions exactly.

2. When sending in damaged products for repair, please attach an RMA application form.

3. All ADLINK products come with a two-year guarantee, repaired free of charge.

The warranty period starts from the product’s shipment date from

ADLINK’s factory.

Peripherals and third-party products not manufactured by ADLINK will be covered by the original manufacturers’ warranty.

End users requiring maintenance services should contact their local dealers. Local warranty conditions will depend on local dealers.

4. This warranty will not cover repair costs due to: a. Damage caused by not following instructions. b. Damage caused by carelessness on the user’s part during product transportation. c. Damage caused by fire, earthquakes, floods, lightening, pollution, other acts of God, and/or incorrect usage of voltage transformers. temperatures, high humidity, or volatile chemicals. e. Damage caused by leakage of battery fluid. f. Damage from improper repair by unauthorized technicians. g. Products with altered and/or damaged serial numbers. h. Other categories not protected under our guarantees.

5. Customers are responsible for shipping costs to transport damaged products to our company or sales office.

6. To ensure the speed and quality of product repair, please download a

RMA application form from our company website: www.adlinktech.com.

Damaged products with attached RMA forms receive priority.

For further questions, please contact our FAE staff.

ADLINK: [email protected]

Warranty Policy

• 77

advertisement

Related manuals