Vela Argus 2000-1500, Argus Series, Argus 2000-1320, Argus 2000-1330, Argus 2000-0370-2 Developer's Manual

Argus® Encoder Family
API Developer’s Guide
Version 2.6
Application Programming Interface Documentation
for Argus Single-Board Audio/Video Encoders
Vela MPEG-2 Audio/Video Encoding Systems
Release 2.6.5
Document Part Number 9050-1205
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

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
Table of Contents
iv Argus Encoder Family Version 2.6 API Developer’s Guide
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
Table of Contents v
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
Table of Contents
vi Argus Encoder Family Version 2.6 API Developer’s Guide
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
Table of Contents

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
List of Figures and Tables
viii Argus Encoder Family Version 2.6 API Developer’s Guide
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
List of Figures and Tables
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 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 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 Ar gu s hosted on a Microsoft
®
4:2:2 MPEG-2 encoder is a high-end audio/video encoding system
®
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.
®
, Real®, or Windows Media™
®
Pro
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.
Argus Single-Board Encoder Overview
2 Argus Encoder Family Version 2.6 API Developer’s Guide
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.
Introduction to the Argus Encoder Family API
Chapter 1 — Getting Started 3
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
Argus Features
4 Argus Encoder Family Version 2.6 API Developer’s Guide
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
Argus Features
Chapter 1 — Getting Started 5
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
• We set m_bErrorFlag to TRUE if
Reset() from the OnInitialize() method.
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
AfxGetInstanceHandle())
when
_Module.Term() is called.
_Module.Init(NULL, NULL) call to _Module.Init(NULL,
. This change allows a more complete clean-up
*Dolby is a trademark of Dolby Laboratories.
Argus Features
6 Argus Encoder Family Version 2.6 API Developer’s Guide
•In the OnError() 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
• Note that you should remove the
PutTranscode() method except to set the property to zero.
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
Argus Features
Chapter 1 — Getting Started 7
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
• 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
• 9.0 GB hard drive (fast/wide SCSI)
• Aladdin HASP
PC or PC-compatible Pentium® III dual-processor (866 Mhz each)
system with PCI bus
4:2:0 and LC) PCI/VGA decoder board
®
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
Minimum System Requirements
8 Argus Encoder Family Version 2.6 API Developer’s Guide

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
Vela Research\Argus\ SDK
Argus SDK Included Files (includes Spectrum files)
Filename File Description Folder
or in one of its sub-folders.)
C:\Program Files \
Velasbe.sys The encoder kernel mode device driver
Velaencd.sys The encoder kernel mode device driver
AsfEncodeU.dll AsfWriterU.dll CinProSerComU.dll FilterManagerU.dll IBMAudioU.dll IBMVideoU.dll Export.dll LigosEncodeU.dll MultiplexU.dll RemoteStoreU.dll RealEncode.dll VTRControlU.dll
MemoryManager.dll MemMgrServer.exe Vela_Pins.dll
EDLEditor.exe EDLEditor.hlp EDLEditor.cnt Xpx4032.ocx XgridAll.reg Film_1.ico
eula.txt End-user license agreement for EDL
for Windows 2000.
for Windows NT.
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.
Server executables required to commu­nicate with CineView Pro decoder.
Standard encoder GUI executable and associated files.
Editor.
C:\Winnt\System32\Drivers
C:\Winnt\System32\Drivers
C:\Program Files\Vela Research\Argus
C:\Program Files\Vela Research\Common
C:\Program Files\Vela Research\Argus
C:\Program Files\Vela Research\Argus
Table 1-1. Argus Encoder SDK Included Files
Software Requirements
Chapter 1 — Getting Started 9
Argus SDK Included Files (includes Spectrum files) (Continued)
Filename File Description Folder
sdk.txt Argus SDK license agreement C:\Program Files\Vela
RegCtrlPnl.exe RegCtrlPnl.ico
FilterManager.tlb Type library for Filter Manager COM
Vtr.tlb Type library for the VTR COM compo-
VTRU.dll Argus SDK COM component required to
FMSampleAppVB Associated source code
FMTestApp.dsp Associated source code
RegCtrlPnl.dsp Associated source code
VTRTestApp.dsp Associated source code
FMTestApp.exe Build of FMTestApp work space. Allows
RegCtrlPnl.exe Build of RegCtrlPnl work space. Allows
Application for editing encoder parame­ters in Windows Registry.
component.
nent (an auxiliary component that can be used to control the VTR when there is not an encode in progress).
use standalone VTR software.
Source code for Visual Basic sample application that drives the encoder.
Work space containing source code for the C++ sample application that drives the encoder.
Work space containing source code for the C++ sample application that man­ages the encoder Registry settings.
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).
user to test sample application without building it.
user to test application without building it.
Research\Argus\SDK
C:\Program Files\Vela Research\Argus
C:\Program Files\Vela Research\Argus\SDK\ TypeLibs
C:\Program Files\Vela Research\Argus\SDK\ TypeLibs
C:\Program Files\Vela Research\Argus\SDK
C:\Program Files\Vela Research\Argus\SDK\ FMSampleAppVB
C:\Program Files\Vela Research\Argus\SDK \FMTestApp
C:\Program Files\Vela Research\Argus\SDK\ RegCtr­lPnl
C:\Program Files\Vela Research\ Argus\SDK\ VTRTe­stApp
C:\Program Files\Vela Research\ Argus\SDK
C:\Program Files\Vela Research\Argus\SDK
Table 1-1. Argus Encoder SDK Included Files (Continued)
Software Requirements
10 Argus Encoder Family Version 2.6 API Developer’s Guide
Argus SDK Included Files (includes Spectrum files) (Continued)
Filename File Description Folder
Jet40sp3_comp.exe Mdac_typ.exe
Wininet System DLL required to support
Sbe.exe (Win 2K) Sbencode.exe (Win 2K) Sbetest.exe (Win 2K)
Encode.exe (Win NT) Ibmtest.exe (Win NT) Vt32s.exe (Win NT)
Various System DLLs for ATL and MFC. C:\Winnt\System32
Table 1-1. Argus Encoder SDK Included Files (Continued)
Executables that can be used to install the latest version of the ODBC DLLs required to run EDL Editor, version 2.6.
RemoteStore component.
Applications that can be used to diag­nose problems with encoder hardware or microcode. Used with Windows 2000.
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\Mdac
C:\Winnt\System32
C:\Program Files\Vela Research\Argus\Diags
C:\Program Files\Vela Research\Argus\Diags

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
method. In version 2.3 and later versions of the API, you can (and should)
Put()
set all encoding properties through the Windows Registry. (See Appendices A and B listings of Argus Registry keys.)
FilterManager
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.
Software Requirements
Chapter 1 — Getting Started 11
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
System Software Installation
12 Argus Encoder Family Version 2.6 API Developer’s Guide
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:
System Software Installation
Chapter 1 — Getting Started 13
• Select the “I Agree” radio button on the “Argus SDK End User License agreement” screen (Figure 1-7). Click OK.
• On the “Password” screen (Figure 1-8), you will be asked for a password. Use the one supplied with your Argus SDK. If you have problems finding your password, contact Vela Support (see page 18). After entering the pass­word, click OK.
• At this time, the application will install some files.
7. On the “Installation Complete” screen (Figure 1-9), note that Argus 2.6 has been successfully installed. Click Finish.
8. The “Install” message box will appear advising that the system must be restarted. Click OK then let the system reboot. Leave the CD-ROM disc in the
drive through the system restart process.
9. After the system has rebooted, close the setup application if it is active, then remove the CD-ROM disc from the drive.
Figure 1-1. Installation Autorun Screen
System Software Installation
14 Argus Encoder Family Version 2.6 API Developer’s Guide
Figure 1-2. Installation Welcome Screen
Figure 1-3. Destination Location Screen
System Software Installation
Chapter 1 — Getting Started 15
Figure 1-4. Select Components Screen
Figure 1-5. Select Program Manager Group Screen
System Software Installation
16 Argus Encoder Family Version 2.6 API Developer’s Guide
Figure 1-6. Installation Start Screen
Figure 1-7. License Agreement Screen
System Software Installation
Chapter 1 — Getting Started 17
Figure 1-8. Password Entry Screen
Figure 1-9. Installation Complete Screen
System Software Installation
18 Argus Encoder Family Version 2.6 API Developer’s Guide

Suggested Reading

This manual assumes that you are familiar with ATL, COM, and C++ (or Visual Basic) programming. For more information on these topics, we recommend that you refer to the following publications.

ATL/COM References

Inside COM, Rogerson; Microsoft Press. Recommended for COM introduction. Covers COM programming explicitly from a C/C++ hard-core, low-level mode.
ATL Internals, Rector and Sells; Addison-Wesley. This is an excellent reference for ATL programming using Visual Studio 6.0. It includes very useful sections on Smart Pointers, BSTRs, and events.
ATL COM, Grimes, Stockton, Reilly, and Templeton; WROX Press. This book delves deep into the heart of the Active Template Library. Primarily deals with server-side issues, but has some client code development considerations as well.

C++ References

The C++ Programming Language, Stroustrup. This bottom line reference on the C++ programming language is highly recommended for the serious developer.
Using Visual C++, Gregory; QUE Publishing. A comprehensive reference for Microsoft’s VC++ compiler.

Other References

References on the Sony® 9-Pin Protocol, used for VTR machine control, are available on the Internet or by contacting Sony Broadcast and Professional Company (Division of Sony Corporation).

Customer Support

In the event of questions or problems with Vela Application Programming Interface methods, materials, or this manual, do not hesitate to contact Vela Training and Support as follows:
• Phone: (727) 507-5301
• E-mail: support@vela.com
• World Wide Web - http://www.vela.com
Suggested Reading
Chapter 2

Using the Filter Manager API

Component Overview

The key element of the Argus encoder API is the Filter Manager COM component, which offers two custom interfaces. The primary interface allows your application to make requests of the Filter Manager. The second custom interface (the outgoing interface) allows the Filter Manager to send COM events to your calling application. Note that both Filter Manager interfaces use Unicode-style character strings.

The Primary Interface

The primary Filter Manager interface exposes methods that service requests for encoder functionality. Specifically, it accepts requests to initialize and reset the encoder software, as well as requests to cue, start, stop, pause, and resume an encoding session. Additionally, it exposes methods to read hardware and firm­ware version numbers, to calculate useful time codes, to track the status and progress of an encode, and to connect and disconnect from the serial port through which the VTR is controlled.
Through its primary interface, the Filter Manager component exposes methods and properties. If you are unfamiliar with methods and properties, or with other aspects of object-oriented programming, take time to review reading material on C++ or COM. Refer to the end of Chapter 1 for some suggestions.
Figure 2-1. Filter Manager Interfaces
Component Overview
20 Argus Encoder Family Version 2.6 API Developer’s Guide
A method is simply a function call. Usually this function performs an operation, then returns a status code. Each of the fully supported Filter Manager methods is defined in this manual. The definition includes a description of the operation that the method performs as well as a list of the possible return values. Be sure to check the return value of any method that you call before proceeding with the encoding process.
Similar to a C++ class data member, a property has a value or a setting. Typically the value of a property can be set by calling a specific
Put() method
exposed by the Filter Manager interface. Likewise, its value can be retrieved with a
Get() method. However, beginning with version 2.3, we concentrate more on the
Windows Registry and less on COM properties to set and retrieve encoding parameters. In fact, Filter Manager now exposes just five fully supported proper­ties (see “Filter Manager Interface Properties,” page 24).

The Secondary (Outgoing) Interface

Through its outgoing interface, the Filter Manager component implements events. An event is a COM mechanism that allows the component to send messages to the calling application. Filter Manager uses events to issue Log messages, Error messages, Pause/Resume messages, and Finished messages to the client applica­tion. The client can register to receive these messages, at your discretion.
The remainder of this chapter describes techniques of setting encoding parame­ters for the Argus encoder. Additionally, it defines and describes each of the basic encoding commands exposed through the primary Filter Manager interface.

System Configuration Settings

During the initialization process, the Filter Manager interface checks the Win­dows Registry to determine if two specific standard components should be loaded: one that controls the CineViewPro decoder and another that controls a VTR. Typically, you will use Argus software to control your tape deck. However, you may configure your application to bypass the Argus VTR-control software or to run without the CineView Pro decoder. Spectrum users should note that the Argus Spectrum must be configured to run with the CineView Pro decoder.
The Windows Registry table
Broadcast Argus\EncoderConfig
stalled,” both of which have default values of 1. To disable the CineView Pro decoder (for non-Spectrum users), change the value of the DecoderInstalled key to 0 before running your application. Likewise, to disable the Argus VTR soft­ware, change the value of the VtrInstalled key to 0. Again, for proper operation,
System Configuration Settings
HKEY_CURRENT_USER\Software\Vela Research\
has two keys, “DecoderInstalled” and “VtrIn-
Chapter 2 — Using the Filter Manager API 21
Spectrum users must not disable the CineView Pro decoder.
Note that if you disable the CineView Pro decoder, you will not be able to perform real-time confidence monitoring. If you disable the Argus VTR control software, you may sacrifice frame-accurate starts.

Common Encode Parameters: The Windows Registry

Applications based on version 2.4 or later of the Argus software use the Windows Registry exclusively to store and retrieve parameters for an encoding session. Although previous versions of Argus software used the Registry to some extent, they still relied on the ArgusConfig.txt configuration file and on a handful of COM
Put() methods to set a few exceptional encoding parameters. Now all
encoding parameters can (and should) be stored in and loaded from the Registry.
Figure 2-2 illustrates typical interactions between Argus-related software and the Windows Registry.
Figure 2-2. Windows Registry Transactions
One useful feature of the Registry method of storing encoding parameters is that it is not necessary to set up the Registry before the first encode. If the application attempts to load from the Registry when there are no encode settings there, Filter Manager responds by saving all of the default settings to the Registry, creating all of
Common Encode Parameters: The Windows Registry
22 Argus Encoder Family Version 2.6 API Developer’s Guide
the needed keys. You can then programmatically or manually (using Microsoft's regedt32 or regedit tool) change Registry settings before subsequent encodes.
All of the Argus Registry settings are stored in one of 12 Registry locations under
HKEY_CURRENT_USER\Software\Vela Research\Broadcast Argus.
These sub-locations are: “EncoderConfig,” “FilterMgr,” “IBM Audio” “IBM Video,” “Mux,” “RemoteStore,” “VTR,” “DualEnc,” “LigosMpeg1,” “LigosMux,” “RealNetworks,” and “Wmf.” Appendix A identifies and describes in detail each of the general Registry settings that support the single-board Argus, while Appendix B lists specific Registry settings for the Argus Spectrum multi-stream encoding process.
There are a number of circumstances under which you may need to access the encoding parameters that are stored in the Windows Registry. As shown in Table 2-1, the Argus SDK provides a variety of tools to assist with the task of managing these encoding parameters.
Task Tool Description
Review, modify, save the full set of parameters through an application other than the user interface to the encoder.
Change individual Registry settings (i.e., file name, mark-in) before starting an encode.
Display a specific set of encode parameters through the user inter­face to the encoder.
Load the full set of encoding parameters from the Windows Registry in preparation for an encode.
Save the full set of encoding parameters under which Argus is currently encoding.
RegCtrlPnl An application that displays all of the
CRegistry class, SetValue() method
CRegistry class, GetValue() method
FilterManager Load() method
FilterManager Save() method
Table 2-1. Managing Encode Parameters
Common Encode Parameters: The Windows Registry
encoding parameters, allowing the user to review and modify them. Source code is provided with the SDK. See page 57.
The CRegistry class, whose source code is provided with the RegCtrlPnl applica­tion, provides easy-to-use GetValue() and SetValue() commands to manage encoding parameters of all data types.
Loads all of the encode parameters from the Registry into the specific encoder COM components to which the parame­ters apply.
Dumps all of the encoding parameters currently in memory out to the Windows Registry.
Loading...
+ 123 hidden pages