Download ADLINK Technology PCI-MP4S User`s manual
Transcript
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 are ® registered trademarks of Microsoft Corporation. Borland C++ Builder 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] TEL +886-2-82265877 FAX +886-2-82265717 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 Suggestions for ADLINK OS: Computer Brand: M/B: Chipset: Video Card: NIC: Other: CPU: BIOS: 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 1.1.7 I/O 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 1.1.1 Image Acquisition Acquisition speed NTSC 1 Camera 2 Cameras 3 Cameras 4 Cameras 8 Cameras 240 Fields 60 120 180 240 Frames 30 60 90 120 120 PAL 1 Camera 2 Cameras 3 Cameras 4 Cameras 8 Cameras Fields 50 100 150 200 200 Frames 25 50 75 100 100 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. 1.1.2 MPEG4 Encoding 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 Lowest -2 Bitrate = 320000*4 frame_rate = 3 Bitrate = 320000 frame_rate = 3 Bitrate = 240000/4 frame_rate = 3 Low -1 Bitrate = 400000*2 frame_rate = 6 Bitrate = 400000 frame_rate = 6 Bitrate = 400000/4 frame_rate = 6 Normal 0 Bitrate = 480000*4 frame_rate = 15 Bitrate = 480000 frame_rate = 15 Bitrate = 480000/4 frame_rate = 15 High 1 Bitrate = 512000*4 frame_rate = 30 Bitrate = 512000 frame_rate = 30 Bitrate = 512000/4 frame_rate = 30 Introduction • 2 Bitrate = Highest 2 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. 1.1.3 MPEG4 Decoding 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. 1.1.5 TCP/IP Data Transmission 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. 1.1.8 Supported software 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 2.1 PCI-MP4S Specification 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: Voltage Input high voltage (5µA) Input low voltage (-5µA) Output high voltage (-1.0mA) Output low voltage (100.0mA) MIN 2.0V 0.0V 5.0V - MAX 5.25V 0.80V 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 2.1.1 PCI-MP4S Appearance PCI-MP4S Standard accssory Watch dog reset cable, GPIO bracket, User Manual, All in One CD Hardware Reference • 7 2.1.2 PCI-MP4S Connectors & Pin Definitions 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 1 10 2 PIN NO. 1 3 5 7 9 Function GND CH5 video in GND CH7 video in GND PIN NO. 2 4 6 8 10 Function CH4 video in GND CH6 video in GND GND Channel Extension Video Input (CN3) 9 1 10 2 PIN NO. 1 3 5 7 9 Function GND CH9 video in GND CH11 video in GND PIN NO. 2 4 6 8 10 Function CH8 video in GND CH10 video in GND GND Channel Extension Video Input (CN5) 9 1 10 2 PIN NO. 1 3 5 7 9 Function GND CH13 video in GND CH15 video in GND PIN NO. 2 4 6 8 10 Function CH12 video in GND CH14 video in GND GND Hardware Reference • 9 GPIO (CN8) 9 1 10 2 PIN NO. 1 3 5 7 9 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 -- GPIO (CN9) 9 1 10 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 JP1 1 PIN NO. Function 1 System reset 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 Appearance RTV-E4 Connectors & Pin Definitions Channel Extension Video Input (J11) 9 1 10 2 PIN NO. 1 3 5 7 9 Function GND CH5 video in GND CH7 video in GND PIN NO. 2 4 6 8 10 Function CH4 video in GND CH6 video in GND GND Hardware Reference • 11 2.1.4 RTV-I4 Isolation GPIO board for RTV-24 and PCI-MP4S (Optional item, not a standard accessory) RTV-I4 Appearance 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 1 1 Normal Closed 3 2 1 3 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: Type select: Active high =>2-3 Active low =>1-2 J1, J2, J3, J4 Active High 1 1 Active Low 1 3 2 3 3 J1 J3 J2 J4 Trigger output voltage: 0V to +5V Input 2R10P pin header pin definition: GPIO (CN1) 9 1 10 2 PIN NO. 1 Function GPIO Input 1 PIN NO. 2 3 GPIO Output 1 4 5 GPIO Input 2 6 7 9 GPIO Output 2 GND 8 10 Function GND PORT1 STRG Output PORT2 STRG Output VCC NC GPIO (CN2) Hardware Reference • 14 9 1 10 2 PIN NO. 1 Function GPIO Input 3 PIN NO. 2 3 GPIO Output 3 4 5 GPIO Input 4 6 7 9 GPIO Output 4 GND 8 10 Function GND PORT3 STRG Output PORT4 STRG Output VCC NC D-sub 25-pin output connector pin: Pin number 1 2 3 4 5 6 7 8 9 10 11 12 13 Signal name DI1 DI1_COM DI2 DI2_COM DI3 DI3_COM DI4 DI4_COM RY1 RY1_COM RY2 RY2_COM RY3 Pin number 14 15 16 17 18 19 20 21 22 23 24 25 26 Signal name RY3_COM RY4 RY4_COM STRG_OUT1 STRG_OUT1 STRG_OUT1 STRG_OUT1 STRG_GND STRG_GNG NC NC NC Hardware Reference • 15 3 Installation Guide 3.1 Hardware Installation 3.1.1 PCI-MP4S Use the following steps to install the PCI-MP4S board on the PCI bus: 1. 2. 3. 4. Remove the computer cover using the instructions from the computer manual. 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). 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. 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. 7. Anchor the board by replacing the screw. 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 3.2 Driver Installation 3.2.1 WDM Driver Installation 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 3.3 MPEG4 registration 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 4. MPEG4 video encoding 5. Recording (AVI video format) 6. Direct access to general purpose I/Os 7. FULL, CIF, or QCIF image size, 2x2 or 4x4 display 8. Software triggering Function Library • 29 4.2 Component Description 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 4.3 Operation theory 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. 2. Execute the decoder sample program in Program 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 z Click Format in the menu bar to select the format of the video camera. 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 z Click View in the menu bar and select the image size required. The 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 z Click Image in the menu bar and select Save As to bring up the Save As dialog box. Select the file location, TIF file format, enter the file name, and click the OK button. BMP z 4.3.5 Click Image in the menu bar and select Save As to bring up the Save As dialog box. Select the file location, BMP file format, enter the file name, and click the OK button. Special image effect Border z Check the Border check box in the Control Panel. A red dashed 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 z Check the Cross Line check box in the Control Panel. A cross-hair will appear in the center of the rectangle. 4.3.6 Tools Function Library • 32 GPIO & LED z Click Tool in the menu bar and select GPIO & LED to bring up the 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 z Click Tool in the menu bar and select EEPROM to bring up the 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 z Click Tool in the menu bar and select Software Trigger to bring up the 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 Category Section Function Encode 5.2 Decode 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.2 5.4 AngeloMPEG4_Get_Version( Mpeg4_DLLVersion, AngeloRTV_DLLVersion, Reserved) Encode Functions @ 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 Lowest -2 Bitrate = 320000*4 frame_rate = 3 Bitrate = 320000 frame_rate = 3 Bitrate = 240000/4 frame_rate = 3 Low -1 Bitrate = 400000*2 frame_rate = 6 Bitrate = 400000 frame_rate = 6 Bitrate = 400000/4 frame_rate = 6 Normal 0 Bitrate = 480000*4 frame_rate = 15 Bitrate = 480000 frame_rate = 15 Bitrate = 480000/4 frame_rate = 15 High 1 Bitrate = 512000*4 frame_rate = 30 Bitrate = 512000 frame_rate = 30 Bitrate = 512000/4 frame_rate = 30 Highest 2 Bitrate = 1024000*4 frame_rate = 30 Bitrate = 1024000 frame_rate = 30 Bitrate = 1024000/4 frame_rate = 30 Bitrate: Indicate the number of bits per second. 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: RGB24 = 3, Angelo_Video_Format: 0: Full NTSC, 1: Full PAL, with image size 640*480, with image size 640*480, Function Library • 38 2: CIF NTSC, 3: CIF PAL, 4: QCIF NTSC, 5: QCIF PAL, with image size 320*240, with image size 320*240, with image size 160*120, with image size 160*120, @ Return Code @ Example <VC/BCB > int int int int int int int int int Result; 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; 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 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) <Delphi > 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 Result = AngeloMPEG4_Encode_Start(Encoder_Index) Result = AngeloMPEG4_Encode_Stop(Encoder_Index) Result = AngeloMPEG4_Encode_Close(Encoder_Index) <Delphi > 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 > 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); < 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 > 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 This argument describes what actions the function will do. bit 0: Callback, X_Start, Y_Start, Width, Height: Sets the boundary of the motion detection area. @ Return Code @ Example <VC/BCB > int int int int int int int int int int int Result; Encoder_Index = 0; enable = 1; Threshold = 5; interval = 3; action = 1; area =1; X_Start = 0; Y_Start =0; Width = 160; Height = 120; Result = AngeloMPEG4_Encode_Set_Motion_Detection(Encoder _Index, area, enable, Threshold, interval, action, X_Start, Y_Start, Width, Height); < Visual Basic > 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 Result = AngeloMPEG4_Encode_Set_Motion_Detection(Encoder_I ndex, area, enable, Threshold, interval, action, X_Start, Y_Start, Width, Height) <Delphi > 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 5.3 Decode Functions @ 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 Decoder_Index, char* Encoder_IP, unsigned int Enocder_Index); int AngeloMPEG4_Decode_Disconnect(int Decoder_Index); Visual Basic (Windows 98/NT/2000/XP) AngeloMPEG4_Decode_Connect(ByVal Decoder_Index As Long, ByVal Encoder_IP As String, ByVal Encoder_Channel As Long) As Long AngeloMPEG4_Decode_ Disconnect (ByVal Decoder_Index As Long) As Long Function Library • 51 Delphi (Windows 98/NT/2000/XP) AngeloMPEG4_Decode_Connect(Decoder_Index:Longint; Encoder_IP:String; Enocder_channel:Longint):Longint; AngeloMPEG4_Decode_Disconnect(Decoder_Index:Longint):Longint; @ Argument Decoder_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 0: ERROR_NoError @ 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 Decoder_Index, void ( __stdcall *CallBackProc)(int Decoder_Index, long int_status, long VideoBufferaddress)); Visual Basic(Windows 98/NT/2000/XP) AngeloMPEG4_Decode_Set_Callback(ByVal Decoder_Index As Long, ByVal CallBack As Long) As Long Delphi (Windows 98/NT/2000/XP) AngeloMPEG4_Decode_Set_Callback(Decoder_Index:Longint; lpDecodeCallBackProc:DecodeCallBackProc):Longint; @ Argument Decoder_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 0: ERROR_NoError @ 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 { //Start Drawing 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 Beep(1024, 100); } 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 ElseIf int_status And &H4 Then “ connect to encoder ElseIf int_status And &H1 Then “ image ready End If End Sub Result = AngeloMPEG4_Decode_Set_Callback(Decoder_Index, 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) BRIGHTNESS HUE CHROMA (U) CHROMA (V) LUMA LUMA notch filter Range 0 ---- 255 0 ---- 255 0 ---- 255 0 ---- 255 0 ---- 255 0(Enable) Default value 128 0 127 127 108 or 1(Disable) @ Return Code 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 > int int int int int int int int int int int Result; 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(Decoder _Index, area, enable, Threshold, interval, action, X_Start, Y_Start, Width, Height); < 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 > 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) Full PAL (768*576) CIF NTSC (320*240) CIF PAL (384*288) QCIF NTSC (160*120) QCIF PAL (192*144) = 0, = 1, = 2, = 3, = 4, = 5, Color_format: RGB16 GRAY RGB15 RGB24 RGB32 RGB8 RAW8X YUY2 4:2:2 BtYUV 4:1:1 = 0, = 1, = 2, = 3, = 4, = 5, = 6, = 7, =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 int int int int int int int Result; Decoder_Index = 0; iWidth = 0; iHeight = 0; video_format = 0; color_format = 0; Bitrate = 0; 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 image 320*240 image 160*120 Lowest -2 Bitrate = 320000*4 frame_rate = 3 Bitrate = 320000 frame_rate = 3 Bitrate = 240000/4 frame_rate = 3 Low -1 Bitrate = 400000*2 frame_rate = 6 Bitrate = 400000 frame_rate = 6 Bitrate = 400000/4 frame_rate = 6 Normal 0 Bitrate = 480000*4 frame_rate = 15 Bitrate = 480000 frame_rate = 15 Bitrate = 480000/4 frame_rate = 15 Function Library • 66 High 1 Bitrate = 512000*4 frame_rate = 30 Bitrate = 512000 frame_rate = 30 Bitrate = 512000/4 frame_rate = 30 Highest 2 Bitrate = 1024000*4 frame_rate = 30 Bitrate = 1024000 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) Full PAL (768*576) CIF NTSC (320*240) CIF PAL (384*288) QCIF NTSC (160*120) QCIF PAL (192*144) = 0, = 1, = 2, = 3, = 4, = 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; 5.4 System Functions @ 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 Conformity Procedure) DoC FCC Part 15 of 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. • • • 4. 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. 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. d. Damage caused by unsuitable storage environments (i.e. high 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