Vela Argus 2000-1500 Instruction Manual

Document Part Number 9050-1205
Argus
®
Encoder Family
API Developer’s Guide
Version 2.6
Application Programming Interface Documentation
for Argus Single-Board Audio/Video Encoders
Argus Spectrum Encoding System (Model 2000-1500)
Argus 4:2:2 Encoding System (Model 2000-1330)
Argus 4:2:0 Encoding System (Model 2000-1320)
Argus LC Encoder Board (Model 2000-0370-2)
Argus Board Sets (All Models)
Vela MPEG-2 Audio/Video Encoding Systems
Release 2.6.5

Copyright 2003 Vela Research LP. All rights reserved.
This manual is written and published by Vela Research LP (Vela). All rights
reserved. Vela reserves the right to make changes to this manual and to the
product(s) represented without notice. No portion of this manual may be
copied, reproduced, or transcribed without the express written authorization
of Vela.
5733 Myerlake Circle
Clearwater, FL 33760-2804
Phone: (727) 507-5300
Fax: (727) 573-5310
World Wide Web – http://www.vela.com
Mailing / Shipping Address:
5733 Myerlake Circle
Clearwater. FL 33760-2804
All returns must be accompanied by an authorized RMA number obtained
from Vela.
NOTE: All trademarks, brand names or product names appearing in this publication
are registered to the respective companies or organizations that own the trademarks
or names. “Argus” and “CineView” are registered trademarks of Vela LP.
“Ligos” and “GoMotion” are registered trademarks of Ligos Corporation in the US
and/or other countries.
“RealPlayer” and “RealSystem Producer” are the registered trademarks of
RealNetworks, Inc.
“Windows Media” is a trademark of Microsoft Corporation.
Published in the United States of America June 2003 Rev. BAA-0306-016

Table of Contents
Table of Contents
List of Figures and Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
Chapter 1
Getting Started. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Argus Single-Board Encoder Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Introduction to the Argus Encoder Family API . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
For Spectrum Users. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Argus Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
New for this Release (2.6.5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Programming Changes and Version History . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Minimum System Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Software Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Included Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Component Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
System Software Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Suggested Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
ATL/COM References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
C++ References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Other References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Customer Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Chapter 2
Using the Filter Manager API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Component Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
The Primary Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
The Secondary (Outgoing) Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
System Configuration Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Common Encode Parameters: The Windows Registry. . . . . . . . . . . . . . . . . . . . 21
Changing Individual Registry Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Registry-Access Methods Exposed Through Filter Manager . . . . . . . . . . . . . . 23
Filter Manager Interface Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Basic Filter Manager Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Other Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

iv Argus Encoder Family Version 2.6 API Developer’s Guide
Table of Contents
Chapter 3
Using the VTR API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Component Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Windows Registry Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Creating an Instance of IVTRCenter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Properties Exposed Through IVTRCenter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Methods Exposed Through IVTRCenter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Component Initialization Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
Serial Communications Port Management Methods . . . . . . . . . . . . . . . . . . . . .35
Tape Deck Control Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
Chapter 4
Sample Applications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
FMTestApp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39
Creating the Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40
Initializing the COM libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40
Using the #import Directive. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
The CFMInterface Class. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
Using the Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44
Releasing the COM Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
Registering to Receive Filter Manager Events . . . . . . . . . . . . . . . . . . . . . . . . . .47
Running the Sample Application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51
Controlling the Tape Deck Between Encodes . . . . . . . . . . . . . . . . . . . . . . . . . .51
Performing an Encode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51
Performing a Multi-Stream Encode (Spectrum Users) . . . . . . . . . . . . . . . . . . . .53
FMSampleAppVB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54
Adding a Reference to the API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55
The clsFilterManagerClass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55
Using the Filter Manager Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55
Receiving Events from Filter Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56
RegCtrlPnl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
CRegistry Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
Example: Loading an Encoder Registry Table . . . . . . . . . . . . . . . . . . . . . . . . . .58

Table of Contents v
Table of Contents
Example: Storing Values in an Encoder Registry Table . . . . . . . . . . . . . . . . . . 59
For More Information on Registry Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
RegCtrlPnl Typical Screen Shots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Chapter 5
Distributing Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Driver Installation and Registry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Real-Time Playback. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Post-Time Playback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Microsoft Redistributable Code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Microcode Directory Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Argus COM Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Spectrum Multi-Stream Encoding Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Component Registration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Appendix A
General Registry Settings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Standard Argus Registry Tables: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Argus Spectrum Registry Tables: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Detailed Explanation of Registry Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
The IBM Video Registry Table. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
GOP Structure and Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
The IBM Audio Registry Table. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
The Mux Registry Table. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
The RemoteStore Registry Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
The VTR Registry Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
The FilterMgr Registry Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Appendix B
Multi-Stream Registry Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Configuring Registry Tables for Argus
Spectrum Multi-Stream Encoding. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Setting Registry for use of Second Audio Channel in Secondary Stream
(CineViewPro XL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Configuring the DualEnc Registry Table. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

vi Argus Encoder Family Version 2.6 API Developer’s Guide
Table of Contents
Setting the Registry for Ligos Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
The LigosMux Registry Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .103
Setting the Registry for RealNetworks Encoding . . . . . . . . . . . . . . . . . . . . . . . 104
Setting the Registry for Windows Media Format Encoding . . . . . . . . . . . . . . . 106
Appendix C
Filter Manager Error/Status Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

List of Figures and Tables
List of Figures and Tables
Chapter 1
Getting Started. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Table 1-1. Argus Encoder SDK Included Files . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Figure 1-1. Installation Autorun Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Figure 1-2. Installation Welcome Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Figure 1-3. Destination Location Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Figure 1-4. Select Components Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Figure 1-5. Select Program Manager Group Screen . . . . . . . . . . . . . . . . . . . . . 15
Figure 1-6. Installation Start Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Figure 1-7. License Agreement Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Figure 1-8. Password Entry Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Figure 1-9. Installation Complete Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Chapter 2
Using the Filter Manager API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Figure 2-1. Filter Manager Interfaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Figure 2-2. Windows Registry Transactions. . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Table 2-1. Managing Encode Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Table 2-2. Argus Allowable State Transitions . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Chapter 3
Using the VTR API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Chapter 4
Sample Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Figure 4-1. C++ Sample Application Window. . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Figure 4-2. Visual Basic Sample Application Window . . . . . . . . . . . . . . . . . . . . 54
Figure 4-3. Registry Control Panel — IBM Video. . . . . . . . . . . . . . . . . . . . . . . . 61
Figure 4-4. Registry Control Panel — IBM Audio. . . . . . . . . . . . . . . . . . . . . . . . 61
Figure 4-5. Registry Control Panel — Mux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Figure 4-6. Registry Control Panel — VTR . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Figure 4-7. Registry Control Panel — Output. . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Figure 4-8. Spectrum Registry Control Panel — IBM Video . . . . . . . . . . . . . . . 63
Figure 4-9. Spectrum Registry Control Panel — IBM Audio . . . . . . . . . . . . . . . 64
Figure 4-10.Spectrum Registry Control Panel — Mux . . . . . . . . . . . . . . . . . . . . 64
Figure 4-11.Spectrum Registry Control Panel — VTR Control. . . . . . . . . . . . . . 65

viii Argus Encoder Family Version 2.6 API Developer’s Guide
List of Figures and Tables
Figure 4-12.Spectrum Registry Control Panel — Output . . . . . . . . . . . . . . . . . . 65
Figure 4-13.Spectrum Registry Control Panel — Multi-Encode. . . . . . . . . . . . . 66
Figure 4-14.Spectrum Registry Control Panel — Ligos . . . . . . . . . . . . . . . . . . . 66
Figure 4-15.Spectrum Registry Control Panel — RealPlayer . . . . . . . . . . . . . . 67
Figure 4-16.Spectrum Registry Control Panel — Windows Media . . . . . . . . . . 67
Chapter 5
Distributing Components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Appendix A
General Registry Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Table A-1. IBM Video Registry Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Table A-2. Allowable Combinations of Video Properties . . . . . . . . . . . . . . . . . 81
Table A-3. GOP Structure Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Table A-4. IBM Audio Registry Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Table A-5. Mux Registry Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Table A-6. RemoteStore Registry Table. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Table A-7. VTR Registry Table. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Table A-8. Filter Manager Registry Table. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Appendix B
Multi-Stream Registry Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Table B-1. CineView Pro XL Registry Table — Spectrum . . . . . . . . . . . . . . . 100
Table B-2. DualEnc Registry Table — Spectrum . . . . . . . . . . . . . . . . . . . . . . 101
Table B-3. LigosMpeg1 Registry Table — Spectrum . . . . . . . . . . . . . . . . . . . 103
Table B-4. RealNetworks Registry Table — Spectrum. . . . . . . . . . . . . . . . . . 104
Table B-5. WMF Registry Table — Spectrum . . . . . . . . . . . . . . . . . . . . . . . . 107
Table B-6. Table of Audio Codec Format Strings. . . . . . . . . . . . . . . . . . . . . . 110
Appendix C
Filter Manager Error/Status Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Table C-1. Filter Manager Error/Status Codes . . . . . . . . . . . . . . . . . . . . . . . . 113
Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

Argus Single-Board Encoder Overview
Chapter 1
Getting Started
Argus Single-Board Encoder Overview
The flagship of the Argus fleet, the Argus Spectrum Multi-Stream encoder is
capable of producing up to four encoded streams simultaneously. Typically it is
used to generate a production-quality MPEG-2 stream that corresponds to one or
more lower-bitrate streams. The Argus Spectrum encoder offers you the ability to
generate and store up to three low-bitrate streams while producing the broadcast-
quality MPEG-2 stream. The outcome of this process is a set of streams that rep-
resent the same content in different formats. In addition to the primary MPEG-2
stream, you may optionally create streams in Ligos®, Real®, or Windows Media™
formats. Each of these secondary streams is produced by a software encoder that
compresses and stores the audio and video output of the Vela CineView®Pro
decoder. The Spectrum uses dual Intel®Pentium®III 866 MHz processors.
All Argus single-board encoders can add support for Spectrum multi-stream oper-
ation. Ask your Vela sales representative for details on the Spectrum option.
Ve l a ’s A rg u s ®4:2:2 MPEG-2 encoder is a high-end audio/video encoding system
hosted on a Microsoft®Windows®2000™ or Windows NT™ PC platform. Argus
4:2:2 uses software and hardware developed by Vela to convert traditional audio
and video signals into studio-quality MPEG-2 digital streams supporting both
Main Profile and 4:2:2 Profile encoding. The resulting MPEG-2 compressed
video can then be stored on a hard drive, and/or transferred via a network, and
will ultimately be decoded with an MPEG-2 compliant decoder, for broadcast or
personal viewing.
Controlled by the same software as the Argus 4:2:2 and Spectrum encoders, the
Argus 4:2:0 encoder supports Main Profile encoding up to 15 Mbps. As is the
Spectrum and the 4:2:2 models, the 4:20 is available in rack-mount (4-RU) or
board-only versions.
The Argus LC board-only analog encoder boasts the same high-quality MPEG-2
performance and reliability of the Argus 4:2:0 encoding system. It features
encoding rates of up to 15Mbps and supports two-channel analog audio.
NOTE: “Argus” and “CineView” are registered trademarks of Vela LP. “Ligos” and
“GoMotion” are registered trademarks of Ligos Corporation in the US and/or other
countries. “RealSystem Producer” and “RealPlayer” are the registered trademarks of
RealNetworks, Inc. “Windows Media” is a trademark of Microsoft Corporation. All other
trademarks, brand names, or product names appearing in this publication are regis-
tered to their respective owners.

2 Argus Encoder Family Version 2.6 API Developer’s Guide
Introduction to the Argus Encoder Family API
Vela manufactures the single-board PCI encoder used in all Argus encoders. The
board features an IBM®MPEG-2 encoder chipset to compress and encode video
data received from composite or digital sources. In addition, two digital signal pro-
cessors compress and encode up to four channels of digital or analog audio.
Vela’s popular CineView®Pro decoder is included in the Argus 4:2:2 encoder for
real-time or post-production playback of the encoded MPEG stream. The Argus
4:2:0 encoder uses the analog-only CineView Pro LE decoder for playback pur-
poses. CineView decoders are available as an extra-cost option for the Argus LC
board-only encoder.
This manual is delivered to users of the Argus Spectrum, 4:2:2, 4:2:0, and LC
models. Unless there is a note to the contrary, you should assume that the infor-
mation and instructions in this document apply equally to all encoder models. The
product name “Argus” is used interchangeably throughout this manual among the
models. In the absence of a note to the contrary, you should assume that such
references apply to all models of the single-board Argus encoder family.
Introduction to the Argus Encoder Family API
The Application Programming Interface (API) for the Argus family of single-
board encoders was designed using an object-oriented approach. Each core func-
tion of the encoder has its own COM (Microsoft’s Component Object Model)
component associated with it. A complete encode on the Argus is accomplished
when these components are used together and accessed through the Filter Man-
ager, Vela's single, well-defined COM interface to the Argus encoder. The Filter
Manager is responsible for managing an encoding session from the reading of the
Windows Registry settings to the storage of the last byte of encoded material. As
a developer, you need to initialize, cue, start, stop, pause, and resume only. The
Filter Manager handles the rest.
For Spectrum Users
Spectrum users should note that, if you have already developed a software appli-
cation for the standard Argus encoder, the good news is that you won't need to do
much programming to turn on multi-stream encoding. The sample application for
the Argus Spectrum is the same one that we use for the standard API. In fact, all
that you really need to do is to make some adjustments to the Windows Registry,
toggling a flag to turn on each of the secondary streams, then setting the encoding
parameters for that stream. In Appendix B you will find a detailed description of
each of the Registry tables that are used specifically to configure the encoder for
multi-stream encoding.

Chapter 1 — Getting Started 3
Argus Features
You'll probably find it helpful, too, to look over our user's guide, the Argus
Encoder Family Version 2.6 Installation and User Manual, which describes the
operation of the various Argus encoders. Among other topics, it includes a discus-
sion of the Spectrum’s Aladdin HASP®software protection key (“dongle”), that
grants or denies permission to use each of the multi-stream encoding components.
As mentioned earlier, you have the option of turning on one, two, or all three of
the optional secondary streams, assuming that the HASP device attached to the
encoder grants permission to use them. You should keep in mind, though, that
each of the secondary encoders requires additional processing power. You may
find that running all three of the low-bitrate encodes at once pushes your CPU
usage prohibitively high. As you experiment with the multi-stream encoding
option, remember that you can reduce the CPU usage of any one of the low-
bitrate encoders by decreasing its horizontal and vertical resolutions and by
decreasing its bit rate. Of course, if you decrease the mux rate (or video bit rate)
of the primary stream, you'll also reduce CPU usage. Observing the Windows
task manager as you encode should help you to determine the ideal settings for
your customized multi-stream encoder.
Argus Features
New for this Release (2.6.5)
• Upgraded the WMF Registry Table to support Microsoft Windows Media
version 9 (Spectrum users only).
Programming Changes and Version History
The API for Argus version 2.6 is based on the same easy-to-use COM interface
that was introduced in version 2.2 of the Argus encoder software. Because we
made very few changes to the FilterManager interface, you will not need to
extensively modify your existing applications when you upgrade to version 2.6.
Release 2.6.3 featured the following changes and enhancements:
• Allows unconditional operation, including Dolby AC-3 encoding, under
Windows 2000. This fixes a performance issue in Release 2.6.2.
• The Momentum software was upgraded, allowing the user to perform AC3
encodes on a Windows 2000 system.
• In previous releases, when the Adjust-GOP-Time-Code option was turned
on during a “seamless” pause/resume encode, the first GOP header after
each resume was not being stamped, so the time code in that GOP header

4 Argus Encoder Family Version 2.6 API Developer’s Guide
Argus Features
would be set to 00:00:00:00. Now the first GOP header, like all other head-
ers, is properly stamped.
• Using EDL Editor, the user may now turn on the Adjust-GOP-Time-Code
option when performing a seamless pause/resume encode.
• The software for the Adjust-GOP-TC feature was improved for accuracy and
efficiency.
• By using the Mux table key “PcrFrequency,” the user can now set the trans-
port-stream PCR frequency. Use a setting of 50 for standard encodes, of 20
for DVB-type encodes.
• Changes to the VTR and FilterManager code guarantee frame-accuracy for
encodes that include two audio streams as well as for single-audio encodes.
• The AC3 code was modified to guarantee that the user-adjustable Dolby
delay works properly for the first and subsequent clips.
• The IBMVideo software was modified so that it does not include a user-data
field if closed captioning is turned off.
Release 2.6.2 contained the following changes and enhancements:
• If you have purchased the required hardware, you may now include embed-
ded audio in your encoded stream. Just set the Audio Input Type to “3.”
• Using the new Pause/Resume mode, you may now include more than three
segments in your encoded clip. Each segment will begin on the mark-in that
you specify in the Registry. To use the new Pause/Resume feature:
1. In the VTR Registry table, set the “Number of Segments” key to 0 (zero),
then set the mark-in and mark-out points. Do this before calling Cue().
2. In the Pause event handler, write to the VTR Registry the mark-in and
mark-out points for the next segment.
3. Call Resume() to encode the next segment.
4. To end the encode, call Resume(), then Stop().
5. Check the “Seamless Pause” box if you are planning to pause/resume
while encoding Dolby/AC-3 audio data to guarantee audio/video synchroni-
zation. In fact, even if you are not performing an AC-3 encode, you may
enable this option to gain improved A/V synchronization.
Release 2.6.1 introduced the following changes and enhancements:
• Improved reliability and efficiency: audio channels 3 and 4 start more reli-
ably; the cue process takes less time; and Filter Manager automatically
detects and sets drop-frame mode if VTR control is enabled.
• If you have purchased the required hardware and additional software, you

Chapter 1 — Getting Started 5
Argus Features
can now encode a Dolby* Digital (AC-3) stream in your primary MPEG
stream. For more information, contact your Vela sales representative and ask
about AC-3 encoding.
• You may now select four-channel audio encoding in combination with multi-
stream encoding. Spectrum users note that just one audio stream will be
included in the secondary stream. Also of interest to Spectrum users is the
fact that software supporting the production of Real and Windows Media-
formatted secondary streams has been modified for optimum quality
and performance.
• If you are using the 4:2:2 chroma option, you may now elect to turn VBI
encoding off. Prior to Release 2.6.1, the resolution was forced to 720/512 (or
720/608 for PAL) if the 4:2:2 option was enabled.
• Under special circumstances, you may specify that the first line of encoded
video for a non-VBI encode will be line 21 (instead of the standard line 22).
This change should be made only if for some reason you are unable to per-
form VBI encodes and are also unable to accept the common practice of
including closed caption data in the MPEG user-data field.
• You may elect to turn off all audio channels, encoding only video (or, with
special hardware and software available from Vela, encoding only video plus
a single Dolby Digital/AC-3 stream).
The initial 2.6 release introduced the following changes to FMTestApp:
• We removed an unnecessary call to Reset() from the OnInitialize() method.
• We set m_bErrorFlag to TRUE if Cue() fails.
The previous release, version 2.5, included the following changes from 2.4:
• After a lengthy WMF or Real G2 encode, Filter Manager now sends log
events with an error code of 99 to indicate the status of the indexing process.
You may want to filter these out of the log file.
• You should remove the VTRDisconnect() method from the error-event and
finished-event handler of the client application.
• There is a new boolean property exposed by the Filter Manager interface
called Transcode. The transcode feature is not currently supported, and the
property should be set to FALSE.
• We changed the _Module.Init(NULL, NULL) call to _Module.Init(NULL,
AfxGetInstanceHandle()). This change allows a more complete clean-up
when _Module.Term() is called.
*Dolby is a trademark of Dolby Laboratories.

6 Argus Encoder Family Version 2.6 API Developer’s Guide
Argus Features
•IntheOnError() event handler, we added the line:
pView->m_bErrorFlag = true;
to replace the earlier code (shown on next page):
if(bErrorFlag)
*bErrorFlag = true;
This change guarantees that all of the components will reset before the next cue if
the previous encode failed.
Changes made in version 2.4 to our C++ sample application include:
• We removed the MessageBox() calls from the OnLog() and OnError() event
handlers, since they tend to lock up the encoder.
• We enable the reset button when the encoder falls into an error state.
• There is a boolean property exposed by the Filter Manager interface called
Transcode. Because the transcoding process is not currently supported, you
should not use the PutTranscode() method except to set the property to zero.
• Note that you should remove the VTRDisconnect() method from the error-
event and finished-event handler of your client application.
Version 2.3 changes included the following:
• Most of the properties exposed by FilterManager can now alternatively be
set using the Windows Registry. We recommend that you use the Registry
settings instead of the property Put and Get methods, which will be removed
in future interfaces. Refer to Appendices A and B for complete listings and
descriptions of Argus Registry settings.
• Similarly, the properties that were once defined in ArgusConfig.txt (using
the CFInterface application) are now set using the Windows Registry.
• A number of database-related methods were added to the FilterManager
interface so that it can be used by our standard Argus application, EDL
Editor. As a result of these interface changes, you no longer need to register
a separate set of COM components in order to run EDL Editor. Additionally,
when you encode using EDL Editor, you'll see that it creates and updates
Windows Registry tables identical to those used by the sample application
that we provide with the SDK. These changes should make it easier for you
to compare the functionality of your application with that of our standard
application, a definite advantage in debugging. Please do not use the new
database-related methods in your application, as they will not be supported
in future releases.
• For easier debugging, the list of defined error codes has been expanded and

Chapter 1 — Getting Started 7
Minimum System Requirements
the precision of FilterManager's error-reporting has been improved.
•The
Load() and Save() methods no longer accept an argument (they used to
require a VTR_Enabled argument).
• In the CRegistry class SetValue() method, the second argument is no longer
a pointer; you should remove the ampersand from the second argument of
each call to SetValue(). See “CRegistry Methods,” page 57, for further
explanation of the changes made to the sample application.
• Spectrum users note: If you were using the version 2.2 Ligos dual-encode
option, you'll find that the required settings in both the DualEnc and the
LigosMpeg1 Registry tables have changed. Many of these changes were made
to accommodate multi-stream encoding using Real and Windows Media™
formats. Please refer to Appendix B for a complete list of Argus Spectrum
multi-stream encoding Registry settings.
Minimum System Requirements
• Microsoft®Windows®2000 (Service Pack 2) or Windows NT™ 4.0 operat-
ing system (Service Pack 6a).
•IBM
®PC or PC-compatible Pentium®III dual-processor (866 Mhz each)
system with PCI bus
• 256 MB RAM
• CD-ROM drive (for installation of system files)
• Vela Argus encoder system or encoder board
• Vela CineView Pro (for Argus 4:2:2 and Spectrum) or Pro LE (for Argus
4:2:0 and LC) PCI/VGA decoder board
• 9.0 GB hard drive (fast/wide SCSI)
• Aladdin HASP®software protection key (“dongle”), programmed to enable
the multi-stream encoding options that you have purchased. This device is
supplied when you purchase the Argus Spectrum.
Software Requirements
• Standard Vela system software, version 2.6 or higher
• Argus Encoder Software Developer’s Kit (SDK), version 2.6.
• Compiler with COM support: Microsoft Visual C++™ 6.0 (Service Pack 4 or
higher) with Unicode support; or Visual Basic™ 6

8 Argus Encoder Family Version 2.6 API Developer’s Guide
Software Requirements
Included Files
The following table is a list of all files to be installed with the standard EDL
Editor installation and with the installation of the Argus Encoder SDK. (Those
that are installed as part of the SDK are located in the folder C:\Program Files\
Vela Research\Argus\ SDK or in one of its sub-folders.)
Argus SDK Included Files (includes Spectrum files)
Filename File Description Folder
Velasbe.sys The encoder kernel mode device driver
for Windows 2000.
C:\Winnt\System32\Drivers
Velaencd.sys The encoder kernel mode device driver
for Windows NT.
C:\Winnt\System32\Drivers
AsfEncodeU.dll
AsfWriterU.dll
CinProSerComU.dll
FilterManagerU.dll
IBMAudioU.dll
IBMVideoU.dll
Export.dll
LigosEncodeU.dll
MultiplexU.dll
RemoteStoreU.dll
RealEncode.dll
VTRControlU.dll
Argus COM components, including
those for Spectrum multi-stream use.
For CineView Pro/Pro LE components,
refer to the CineView Pro/Pro LE Instal-
lation/User Manual and API Guide.
C:\Program Files\Vela
Research\Argus
MemoryManager.dll
MemMgrServer.exe
Vela_Pins.dll
Server executables required to commu-
nicate with CineView Pro decoder.
C:\Program Files\Vela
Research\Common
EDLEditor.exe
EDLEditor.hlp
EDLEditor.cnt
Xpx4032.ocx
XgridAll.reg
Film_1.ico
Standard encoder GUI executable and
associated files.
C:\Program Files\Vela
Research\Argus
eula.txt End-user license agreement for EDL
Editor.
C:\Program Files\Vela
Research\Argus
Table 1-1. Argus Encoder SDK Included Files

Chapter 1 — Getting Started 9
Software Requirements
sdk.txt Argus SDK license agreement C:\Program Files\Vela
Research\Argus\SDK
RegCtrlPnl.exe
RegCtrlPnl.ico
Application for editing encoder parame-
ters in Windows Registry.
C:\Program Files\Vela
Research\Argus
FilterManager.tlb Type library for Filter Manager COM
component.
C:\Program Files\Vela
Research\Argus\SDK\
TypeLibs
Vtr.tlb Type library for the VTR COM compo-
nent (an auxiliary component that can be
used to control the VTR when there is
not an encode in progress).
C:\Program Files\Vela
Research\Argus\SDK\
TypeLibs
VTRU.dll Argus SDK COM component required to
use standalone VTR software.
C:\Program Files\Vela
Research\Argus\SDK
FMSampleAppVB
Associated source code
Source code for Visual Basic sample
application that drives the encoder.
C:\Program Files\Vela
Research\Argus\SDK\
FMSampleAppVB
FMTestApp.dsp
Associated source code
Work space containing source code for
the C++ sample application that drives
the encoder.
C:\Program Files\Vela
Research\Argus\SDK
\FMTestApp
RegCtrlPnl.dsp
Associated source code
Work space containing source code for
the C++ sample application that man-
ages the encoder Registry settings.
C:\Program Files\Vela
Research\Argus\SDK\ RegCtr-
lPnl
VTRTestApp.dsp
Associated source code
Work space containing source code for
the Visual C++ sample application that
controls a tape deck (its commands can
be used when the application is not in
the process of encoding).
C:\Program Files\Vela
Research\ Argus\SDK\ VTRTe-
stApp
FMTestApp.exe Build of FMTestApp work space. Allows
user to test sample application without
building it.
C:\Program Files\Vela
Research\ Argus\SDK
RegCtrlPnl.exe Build of RegCtrlPnl work space. Allows
user to test application without building it.
C:\Program Files\Vela
Research\Argus\SDK
Argus SDK Included Files (includes Spectrum files) (Continued)
Filename File Description Folder
Table 1-1. Argus Encoder SDK Included Files (Continued)

10 Argus Encoder Family Version 2.6 API Developer’s Guide
Software Requirements
Component Summary
The goal of this API set is to give you, the developer, a binary-independent,
easy-to-control interface to the Argus encoder family. We have implemented the
encoder software on the Windows 2000 and NT platforms as a set of COM
(Component Object Model) components. Using version 2.3 or later of the API,
you are required to create only a single COM object, one derived from the Fil-
terManager interface. FilterManager, in turn, controls all of the subordinate
COM components for you.
In preparing to encode a clip, your application must set a number of encoding
parameters. In earlier versions of the Argus API, these parameters were set using
a combination of three methods: by loading from the Windows Registry, by read-
ing from the ArgusConfig.txt configuration file, and by calling a FilterManager
Put() method. In version 2.3 and later versions of the API, you can (and should)
set all encoding properties through the Windows Registry. (See Appendices A and
B listings of Argus Registry keys.)
FilterManager
The FilterManager interface is easy to use, exposing just a handful of core meth-
ods or commands: Initialize, Load, Cue, Start, Stop, Pause, Resume, and Reset.
Jet40sp3_comp.exe
Mdac_typ.exe
Executables that can be used to install
the latest version of the ODBC DLLs
required to run EDL Editor, version 2.6.
C:\Program Files\Vela
Research\Argus\Mdac
Wininet System DLL required to support
RemoteStore component.
C:\Winnt\System32
Sbe.exe (Win 2K)
Sbencode.exe (Win 2K)
Sbetest.exe (Win 2K)
Applications that can be used to diag-
nose problems with encoder hardware
or microcode. Used with Windows 2000.
C:\Program Files\Vela
Research\Argus\Diags
Encode.exe (Win NT)
Ibmtest.exe (Win NT)
Vt32s.exe (Win NT)
Applications that can be used to diagnose
problems with encoder hardware or
microcode. Used with Windows NT 4.0.
C:\Program Files\Vela
Research\Argus\Diags
Various System DLLs for ATL and MFC. C:\Winnt\System32
Argus SDK Included Files (includes Spectrum files) (Continued)
Filename File Description Folder
Table 1-1. Argus Encoder SDK Included Files (Continued)

Chapter 1 — Getting Started 11
System Software Installation
Each of these basic commands, explained in detail later in this manual, triggers
the start of a specific phase of the Argus encoding process.
To establish the parameters under which the encode is to operate, you will set
Argus-specific Windows Registry keys, grouped by core functionality in tables.
See Appendix A for general, non-Spectrum Registry tables.
See Appendix B for Spectrum multi-stream Registry tables.
You can set the Registry keys in one of two ways:
• By using the RegCtrlPnl application, a GUI-based application with a tab for
each of the Windows Registry tables used by the Argus encoder.
• Programmatically, by using the CRegistry class (or your own software) to
write to the Windows Registry. This second method is useful for changing
the values of keys that must be reset with each encoding session (the name
of the output file, for example).
VTR
In addition to the FilterManager API, the Argus Encoder 2.6 SDK includes an aux-
iliary API that can be used to control a tape deck when an encoding session is not in
progress. This second component, VTR.DLL, is described fully in Chapter 3.
Self-Registration
The COM components that drive the Argus encoder are all self-registering. The
Argus installation program registers each component using REGSVR32.EXE, a
utility that is included with the Argus API. This same utility can be used to
remove components from the Registry, to add new components, or to replace
existing components with newer versions.
System Software Installation
Note that the installation of the Argus Encoder Software Developer’s Kit is a
password-protected process. Included with the SDK is an authenticated pass-
word that allows installation of the SDK and accompanying files. If you did not
receive a password with your SDK purchase, contact Vela Support.
If a previous version of Argus encoder system software is installed on your sys-
tem, it must be uninstalled before continuing with the installation of the version
2.6 SDK. Use the Windows Control Panel “Add/Remove Programs” function to
uninstall Argus software, if necessary.
If you have not already installed version 2.6 of the Argus system software, please
refer to the Argus/CineView Pro installation instructions for Windows NT or

12 Argus Encoder Family Version 2.6 API Developer’s Guide
System Software Installation
Windows 2000 to install the software before continuing. See the appropriate
product installation and user manual that came with your encoder for complete
instructions.
If you have already installed version 2.6 of the Argus software on your system,
but did not check the “Argus SDK” during the first installation, you can install it
at this time.
To begin the installation, simply insert the Argus system software CD-ROM and,
from the Autorun setup screen (Figure 1-1), select “Install Argus or Argus
Spectrum”, and follow the steps below:
1. Read the “Welcome” screen (Figure 1-2), then click Next.
2. On the “Choose Destination Location” screen (Figure 1-3), accept the
C:\Program Files\ Vela Research destination, as listed, by clicking Next.
Do not change the destination, as it is important for proper system operation.
3. On the “Select Components” screen (Figure 1-4):
• Under SDK, check the “Argus and Argus Spectrum SDK” check box.
(Because it is password-protected, you will be able to install the SDK only if
you purchased it and received the corresponding password. If you cannot
locate the password, call Vela Support for assistance.)
• If you have not already done so, you must run the “MFC Update” and
“Core Encoder Modules” (under Required Components on the “Select
Component” screen). These two check boxes must always be checked to
insure proper installation of the SDK software.
• Click Next to proceed with the installation of the selected components.
4. From the “Select Program Manager Group” screen (Figure 1-5), accept “Vela
Research” by clicking Next.
5. On the “Start Installation” screen (Figure 1-6), click Next.
• A “DO NOT REMOVE THE CD” screen will display as a reminder that a
number of reboots may be required during the installation process, click OK.
• If you have chosen to run the MFC Update option, the installation process
will begin here to copy files.
• An “Install” message box will appear advising that the system must be
restarted. Click OK, and then wait as the system reboots. Leave the CD-
ROM disc in the drive through the restart process.
6. If you remembered to leave the CD-ROM in the drive, the setup application
pops up immediately after the system reboot. Continue with the installation by
following these steps:
This manual suits for next models
4
Table of contents
Other Vela Media Converter manuals