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
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
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 broadcastquality MPEG-2 stream. The outcome of this process is a set of streams that represent 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 operation. 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 registered to their respective owners.
Argus Single-Board Encoder Overview
2Argus 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 processors 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 purposes. 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 information 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 singleboard encoders was designed using an object-oriented approach. Each core function 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 Manager, 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 application 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 Started3
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 discussion 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 lowbitrate 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
4Argus 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 headers, 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 transport-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 embedded 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 synchronization. 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 reliably; 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 Started5
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 multistream 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 Mediaformatted 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 perform 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
6Argus 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 Started7
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 operating 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
8Argus 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)
FilterManager.tlbType library for Filter Manager COM
Vtr.tlbType library for the VTR COM compo-
VTRU.dllArgus 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.exeBuild of FMTestApp work space. Allows
RegCtrlPnl.exeBuild of RegCtrlPnl work space. Allows
Application for editing encoder parameters 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 manages 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.
VariousSystem 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 diagnose 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 FilterManager 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 reading 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 methods or commands: Initialize, Load, Cue, Start, Stop, Pause, Resume, and Reset.
Software Requirements
Chapter 1 — Getting Started11
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 auxiliary 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 password 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 system, 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
12Argus 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 Started13
• 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 password, 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
14Argus 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 Started15
Figure 1-4. Select Components Screen
Figure 1-5. Select Program Manager Group Screen
System Software Installation
16Argus 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 Started17
Figure 1-8. Password Entry Screen
Figure 1-9. Installation Complete Screen
System Software Installation
18Argus 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 firmware 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
20Argus 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 properties (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 application. The client can register to receive these messages, at your discretion.
The remainder of this chapter describes techniques of setting encoding parameters 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 Managerinterfacechecks the Windows 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 software, 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 API21
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
22Argus 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
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.
TaskToolDescription
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 interface 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.
RegCtrlPnlAn 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 application, 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 parameters apply.
Dumps all of the encoding parameters
currently in memory out to the
Windows Registry.
Loading...
+ 123 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.