Vela Argus 2000-1500 Developer's Manual

Application programming interface documentation for argus single-board audio/video encoders. mpeg-2 audio/video encoding systems
Table of Contents

Advertisement

Quick Links

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

Advertisement

Table of Contents
loading

Summary of Contents for Vela Argus 2000-1500

  • Page 1 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...
  • Page 2 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.
  • Page 3: Table Of Contents

    Table of Contents List of Figures and Tables ........vii Chapter 1 Getting Started.
  • Page 4 Argus Encoder Family Version 2.6 API Developer’s Guide Chapter 3 Using the VTR API ..........31 Component Overview.
  • Page 5 Table of Contents Example: Storing Values in an Encoder Registry Table ....59 For More Information on Registry Control ......60 RegCtrlPnl Typical Screen Shots .
  • Page 6 Argus Encoder Family Version 2.6 API Developer’s Guide Setting the Registry for Ligos Encoding ......102 The LigosMux Registry Table .
  • Page 7: List Of Figures And Tables

    List of Figures and Tables Chapter 1 Getting Started..........1 Table 1-1.
  • Page 8 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 —...
  • Page 9: Getting Started

    Argus 4:2:0 encoding system. It features encoding rates of up to 15Mbps and supports two-channel analog audio. NOTE: “Argus” and “CineView” are registered trademarks of Vela LP . “Ligos” and “GoMotion” are registered trademarks of Ligos Corporation in the US and/or other countries.
  • Page 10: Introduction To The Argus Encoder Family Api

    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.
  • Page 11: Argus Features

    Chapter 1 — Getting Started 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- ®...
  • Page 12 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. •...
  • Page 13 Chapter 1 — Getting Started 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.
  • Page 14 Argus Encoder Family Version 2.6 API Developer’s Guide • In the event handler, we added the line: OnError() 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.
  • Page 15: Minimum System Requirements

    • CD-ROM drive (for installation of system files) • Vela Argus encoder system or encoder board • Vela CineView Pro (for Argus 4:2:2 and Spectrum) or Pro LE (for Argus 4:2:0 and LC) PCI/VGA decoder board • 9.0 GB hard drive (fast/wide SCSI) ®...
  • Page 16: Included Files

    Editor installation and with the installation of the Argus Encoder SDK. (Those that are installed as part of the SDK are located in the folder C:\ Program Files \ or in one of its sub-folders.) Vela Research\Argus\ SDK Argus SDK Included Files (includes Spectrum files) Filename File Description Folder Velasbe.sys...
  • Page 17 Chapter 1 — Getting Started Argus SDK Included Files (includes Spectrum files) (Continued) Filename File Description Folder sdk.txt Argus SDK license agreement C:\Program Files\Vela Research\Argus\SDK RegCtrlPnl.exe Application for editing encoder parame- C:\Program Files\Vela ters in Windows Registry. Research\Argus RegCtrlPnl.ico FilterManager.tlb...
  • Page 18: Component Summary

    Argus SDK Included Files (includes Spectrum files) (Continued) Filename File Description Folder Jet40sp3_comp.exe Executables that can be used to install C:\Program Files\Vela the latest version of the ODBC DLLs Research\Argus\Mdac Mdac_typ.exe required to run EDL Editor, version 2.6. Wininet System DLL required to support C:\Winnt\System32 RemoteStore component.
  • Page 19: System Software Installation

    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.
  • Page 20 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.
  • Page 21: Figure 1-1. Installation Autorun Screen

    • 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.
  • Page 22: Figure 1-2. Installation Welcome Screen

    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...
  • Page 23: Figure 1-4. Select Components Screen

    Chapter 1 — Getting Started Figure 1-4. Select Components Screen Figure 1-5. Select Program Manager Group Screen System Software Installation...
  • Page 24: Figure 1-6. Installation Start Screen

    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...
  • Page 25: Figure 1-8. Password Entry Screen

    Chapter 1 — Getting Started Figure 1-8. Password Entry Screen Figure 1-9. Installation Complete Screen System Software Installation...
  • Page 26: Suggested Reading

    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: •...
  • Page 27: Using The Filter Manager Api

    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.
  • Page 28: The Secondary (Outgoing) Interface

    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 HKEY_CURRENT_USER\Software\Vela Research\ has two keys, “DecoderInstalled” and “VtrIn- Broadcast Argus\EncoderConfig stalled,”...
  • Page 29: Common Encode Parameters: The Windows Registry

    Chapter 2 — Using the Filter Manager API 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.
  • Page 30: Table 2-1. Managing Encode Parameters

    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,”...
  • Page 31: Changing Individual Registry Settings

    Registry settings. This source code is installed in the C:\Program folder. You'll probably find that you Files\Vela Research\Argus\SDK\RegCtrlPnl can set most of the encoding properties once using a Registry editing tool like the RegCtrlPnl application, then leave the settings untouched.
  • Page 32: Filter Manager Interface Properties

    Argus Encoder Family Version 2.6 API Developer’s Guide Filter Manager Interface Properties Because the Windows Registry is now used to store all of the encoding parame- ters, the list of Filter Manager interface properties defined in this section is short. In fact, it includes only those properties that report on the version numbers of installed hardware and firmware, those that report on the progress or status of an encoding session, and those that toggle on and off specific Windows functionality.
  • Page 33: Basic Filter Manager Methods

    Chapter 2 — Using the Filter Manager API segments of a programmed pause/resume encode). This number is calculated during the process. It can be used in combination with the CurrentFrame- Cue() Count property to determine how much of the encode has been completed. CurrentFrameCount(long): (Get) While an encode is in progress, this property indicates the number of frames that have already been encoded by the primary encoding process.
  • Page 34 Argus Encoder Family Version 2.6 API Developer’s Guide Allowable State Transitions (Continued) Current State Allowed Commands Resulting State Success Failure Paused Resume() Resumed Initialized Pause() Paused Initialized Resumed End() or Stop() Initialized Initialized Table 2-2. Argus Allowable State Transitions (Continued) long Initialize() –...
  • Page 35: Events

    Chapter 2 — Using the Filter Manager API 3. The call requests that the encode terminate cleanly after completely End() processing the current frame in the Mux component. In other words, the encoding process will terminate only after the frame currently in the Mux component is muxed, then flushed through the playback and storage compo- nents.
  • Page 36 Argus Encoder Family Version 2.6 API Developer’s Guide can choose whether or not to register and respond to Filter Manager events. Most likely, you’ll want to register to receive them. Only through events can Filter Manager let your application know that it has finished an encode — and whether or not the encode finished successfully.
  • Page 37: Other Methods

    Chapter 2 — Using the Filter Manager API Other Methods There are several other methods that Filter Manager supports to enable further control over the encoding process. They are listed and described below. Note that all BSTR arguments listed below encapsulate strings for Unicode format. BSTR GetTimeStamp().
  • Page 39: Chapter 3 Using The Vtr Api

    Component Overview If you want to control a tape deck programmatically while not actively encoding, the Vela Software Developer’s Kit provides a stand-alone VTR component that uses Sony 9-pin protocol to communicate through a serial port with a tape deck.
  • Page 40: Windows Registry Settings

    The Windows Registry key used to define this setting is: HKEY_LOCAL_MACHINE\SOFTWARE\Vela Research\Argus \SerPortDly. If this Registry key is not defined, the VTR component uses a default value of 10 (translated as 10 milliseconds).
  • Page 41: Properties Exposed Through Ivtrcenter

    The following properties are exposed through the IVTRCenter interface: ComPort – This property, a long, identifies which of the communication ports on the encoder is connected to the tape deck. On most Vela encoders, the number of each of the communication ports is marked on the chassis. Typically the ComPort property will be set to either 1 or 2.
  • Page 42 Argus Encoder Family Version 2.6 API Developer’s Guide There are two access methods, , available for this property. The Get() Put() method queries the tape deck to determine the current setting of its out- Get() point. It returns the retrieved value to the calling application. The method Put() accepts time code as an argument, sending a command to the tape deck to set...
  • Page 43: Methods Exposed Through Ivtrcenter

    Chapter 3 — Using the VTR API Methods Exposed Through IVTRCenter The methods exposed through the IVTRCenter interface fall into three categories: those used to initialize the component, those used to manage the serial port, and those used to control the tape deck itself. Component Initialization Method long Initialize() –...
  • Page 44 Argus Encoder Family Version 2.6 API Developer’s Guide long GetPreRoll( long *pPreRoll ) – Issues a command to the tape deck to retrieve the number of seconds to pre-roll. The pre-roll (in integral seconds) is returned at the address passed as the only argument to GetPreRoll() The method returns: 0 if the command was successful...
  • Page 45 Chapter 3 — Using the VTR API long Play() – Issues a command to play the tape deck. The method returns: 0 if the command was successful -4 if the command failed -32 if the VTRType is not set to SONY_9_PIN. long Rwnd() –...
  • Page 46 Argus Encoder Family Version 2.6 API Developer’s Guide -7 if the command failed -32 if the VTRType is not set to SONY_9_PIN. Methods Exposed Through IVTRCenter...
  • Page 47: Sample Applications

    . The intent of providing C:\ Program Files\ Vela Research \ Argus \ SDK the source code for these applications is to illustrate the use of various programming tools to control the encoding process. In order to present readable, easy-to-follow code, we have intentionally kept the applications simple.
  • Page 48: Creating The Project

    Argus Encoder Family Version 2.6 API Developer’s Guide Creating the Project When you are creating a Microsoft Foundation Class (MFC) Application Wizard EXE project like FMTestApp, it is very important that you select from the App Wizard window the check box that adds support for ActiveX™ controls. This inserts into the stdafx.h file the header files required to support the COM libraries.
  • Page 49: Using The #Import Directive

    Chapter 4 — Sample Applications Using the #import Directive This section describes the steps required to create a COM object using Smart Pointers and the #import compiler directive. The #import directive is a Microsoft-specific compiler directive that creates a Smart Pointer wrapper class from a type library;...
  • Page 50: The Cfminterface Class

    Argus Encoder Family Version 2.6 API Developer’s Guide properties and events exposed through the primary Filter Manager interface. For a more thorough discussion of Smart Pointers, refer to ATL Internals, by Rector and Sells. The CFMInterface Class For ease of use, we’ve encapsulated the interface-creation process described above in a class, CFMInterface.
  • Page 51 Chapter 4 — Sample Applications IArgusFMPtr m_pIFilterMgr; CFilterManagerEvents *m_pFilterManagerEvents; CFMTestAppDlg *pWin; If the above class is defined, an instance of the m_pIFilterMgr interface can be instantiated using the Create method, listed below. For now, concentrate just on the call that creates the IArgusFMPtr, in bold face. Other sections of the Create() method, especially those relating to Events, will be discussed in later sections of this document.
  • Page 52: Using The Object

    Argus Encoder Family Version 2.6 API Developer’s Guide // Advise the event source that we are connecting to it. m_pIFilterMgrEvents->EasyAdvise(m_pIFilterMgr); // Instruct Filter Manager NOT to write directly to message boxes. m_pIFilterMgr->PutWriteToMessageBox(FALSE); Sleep(500); ///////////////////////////////////////////////////////////////////////////////////// // The following section of code is needed only for THIS application’s // event-handling strategy.
  • Page 53 Chapter 4 — Sample Applications Windows editable text fields that represent the encoder operator’s settings for duration, mark-in, mark-out, and the full pathname of the file that will hold the encoded MPEG stream. If you are upgrading from version 2.2 of our software, you'll notice that there are a few changes to the .
  • Page 54 Argus Encoder Family Version 2.6 API Developer’s Guide pFM->Reset(); m_bErrorFlag = false; // Read settings from the main dialog box. UpdateData(TRUE); // If no value is entered in the duration edit box, set the default duration to // thirty seconds. if( m_Duration.GetLength() <...
  • Page 55: Releasing The Com Libraries

    Chapter 4 — Sample Applications // If the cue was successful, set the encoder state to cued and // activate the start button. pFMInterface->SetEncoderState( esCued ); SetButtons(); Note that we always check the result return value to ensure that the method suc- ceeded.
  • Page 56 Argus Encoder Family Version 2.6 API Developer’s Guide 1. Derive a class from the IDispEventImpl template. For example, in our sample application, we derive CFilterManagerEvents from IDispEventImpl: class CFilterManagerEvents: public IDispEventImpl<1, CFilterManagerEvents> The first argument to IDispEventImpl is a unique identifier for the event source. Since Filter Manager is the only source from which our sample application receives events, its ID of 1 is, indeed, unique.
  • Page 57 Chapter 4 — Sample Applications HRESULT EasyAdvise(IUnknown* pUnk) // Make sure the COM object corresponding to pUnk implements // IProvideClassInfo2 or IPersist*. Call this method to extract info // about source type library if you specified only 2 parameters to // IDispEventImpl HRESULT hr = AtlGetObjectSourceInterface pUnk, &m_libid, &m_iid, &m_wMajorVerNum,...
  • Page 58 Argus Encoder Family Version 2.6 API Developer’s Guide Following is an example of the implementation of an event handler. Note that we call for demonstration purposes only. For deliverable applications, MessageBox() you should not hold up a log event — or any other type of event — with a function requiring user input.
  • Page 59: Running The Sample Application

    Chapter 4 — Sample Applications thread) to cue the next encode. This will ensure that the threads invoking the event interfaces remain responsive to hardware events. Note that, by implementing an event interface, you have effectively made your client code a server for those events. This means you need to take into account the synchronization of data accessed by objects using the event interface.
  • Page 60: Figure 4-1. C++ Sample Application Window

    Argus Encoder Family Version 2.6 API Developer’s Guide Figure 4-1. C++ Sample Application Window When the Cue button is clicked, does the following: OnInitialize() • Checks to see if FilterManager is currently in an error state. If so, it calls to clear the encoding properties.
  • Page 61: Performing A Multi-Stream Encode (Spectrum Users)

    Chapter 4 — Sample Applications to enabled or disabled. Note that the Cue method does not return until the encoder is ready to begin encoding-or until an error occurs. Now that the encoder has completed its “cue” process, click the Start button to start the encode.
  • Page 62: Fmsampleappvb

    The Visual Basic sample application that is included with the SDK is located in . It would be C: \ Program Files\ Vela Research \ Argus\ SDK \ FMSampleAppVB useful to refer to a copy of the source code as you read the section that follows.
  • Page 63: Adding A Reference To The Api

    Chapter 4 — Sample Applications Adding a Reference to the API In Visual Basic there is no need to initialize the COM libraries explicitly. Simply add a reference to the Filter Manager type library by selecting Project > Refer- ences on the main menu and then check the box next to “Filter Manager 1.0 Type Library.”...
  • Page 64: Receiving Events From Filter Manager

    Argus Encoder Family Version 2.6 API Developer’s Guide Receiving Events from Filter Manager The Filter Manager COM object supplies run time events to any client applica- tion that registers to use them. In Visual Basic this is done by declaring the Fil- ter Manager object as WithEvents as we have done in the clsFiltermanagerClass in our sample application.
  • Page 65: Regctrlpnl

    In order to adjust specific Windows Registry settings prior to an encode, you may need to control the Registry programmatically. To allow programmatic access to the encoder Registry tables, Vela has designed a C++ class (CRegistry), the source code to which is provided in the RegCtrlPnl sample application. RegCtrlPnl uses the CRegistry class to read from and to write to the encoder Registry tables.
  • Page 66: Example: Loading An Encoder Registry Table

    Argus Encoder Family Version 2.6 API Developer’s Guide a default value to be given to the variable if no Registry setting is available. The method returns TRUE if it is successful. 5. Destructor: Closes the Registry table. Example: Loading an Encoder Registry Table As an example of using the CRegistry class to load settings, the following method loads some of the video encode settings from the “IBM Video”...
  • Page 67: Example: Storing Values In An Encoder Registry Table

    Chapter 4 — Sample Applications &RefFrameDistance, (BYTE)FS_IBBP ); Video.GetValue( _T(“ChromaFormat”), (BYTE*)&m_ChromaSelect, (BYTE)CF_4_2_0 ); Video.GetValue( _T(“ClosedGOP”), &m_bClosedGOP, FALSE ); Video.Close(); Settings.Close(); Example: Storing Values in an Encoder Registry Table As an example of using the CRegistry class to store settings, the following func- tion saves some of the video encode settings in the “IBM Video”...
  • Page 68: For More Information On Registry Control

    Argus Encoder Family Version 2.6 API Developer’s Guide if( Video.Open(Settings.hKey(), _T(“IBM Video”)) == TRUE ) Video.SetValue( _T(“BitRate”) , BitRate ); Video.SetValue( _T(“VideoMode”), (VideoMode ); Video.SetValue( _T(“VideoFormat”), m_VideoFormat ); Video.SetValue( _T(“HorizRes”), m_ulHorizRes ); Video.SetValue( _T(“VerticalRes”), m_ulVerticalRes ); Video.SetValue( _T(“Inverse32Flag”), m_bInverse32Flag ); Video.SetValue( _T(“InputType”), m_InputType );...
  • Page 69: Figure 4-3. Registry Control Panel — Ibm Video

    Chapter 4 — Sample Applications Figure 4-3. Registry Control Panel — IBM Video Figure 4-4. Registry Control Panel — IBM Audio RegCtrlPnl...
  • Page 70: Figure 4-5. Registry Control Panel — Mux

    Argus Encoder Family Version 2.6 API Developer’s Guide Figure 4-5. Registry Control Panel — Mux Figure 4-6. Registry Control Panel — VTR RegCtrlPnl...
  • Page 71: Figure 4-7. Registry Control Panel — Output

    Chapter 4 — Sample Applications Figure 4-7. Registry Control Panel — Output Figure 4-8. Spectrum Registry Control Panel — IBM Video RegCtrlPnl...
  • Page 72: Figure 4-9. Spectrum Registry Control Panel — Ibm Audio

    Argus Encoder Family Version 2.6 API Developer’s Guide Figure 4-9. Spectrum Registry Control Panel — IBM Audio Figure 4-10.Spectrum Registry Control Panel — Mux RegCtrlPnl...
  • Page 73: Figure 4-11.Spectrum Registry Control Panel — Vtr Control

    Chapter 4 — Sample Applications Figure 4-11.Spectrum Registry Control Panel — VTR Control Figure 4-12.Spectrum Registry Control Panel — Output RegCtrlPnl...
  • Page 74: Figure 4-13.Spectrum Registry Control Panel — Multi-Encode

    Argus Encoder Family Version 2.6 API Developer’s Guide Figure 4-13.Spectrum Registry Control Panel — Multi-Encode Figure 4-14.Spectrum Registry Control Panel — Ligos RegCtrlPnl...
  • Page 75: Figure 4-15.Spectrum Registry Control Panel — Realplayer

    Chapter 4 — Sample Applications Figure 4-15.Spectrum Registry Control Panel — RealPlayer Figure 4-16.Spectrum Registry Control Panel — Windows Media RegCtrlPnl...
  • Page 77: Distributing Components

    Chapter 5 Distributing Components Overview Building an installation disk is very important. This is the first view a user will have of your software system. It is crucial that the installation procedure install your software easily and correctly. The last thing you want to hear from a user is that the software won’t install.
  • Page 78: Encoder

    Argus Encoder Family Version 2.6 API Developer’s Guide • VELASBE.SYS, the encoder device driver for Windows 2000. • VELAENCD.SYS, the encoder device driver for Windows NT. • SAA_7146.SYS, the decoder device driver. Each device driver has associated Registry settings that provide Windows with information about the driver.
  • Page 79: Post-Time Playback

    Chapter 5 — Distributing Components files installed. This DLL works with Vela’s CineView Pro, Pro LE and Pro XL decoder products (referred to here as simply CineView Pro). If the CineView Pro decoder is properly installed and operational, the above files and Registry entries can be assumed to be on the system;...
  • Page 80: Microcode Directory Structure

    The following COM objects, which comprise the API set, are distributed with the standard Argus encoder application. These COM components are registered automatically with each installation of the standard product. Argus encoder COM components located in: C:\Program Files\Vela Research\Argu • ASFENCODEU.DLL • ASFWRITERU.DLL • CINPROSERCOMU.DLL •...
  • Page 81: Spectrum Multi-Stream Encoding Files

    • REALENCODE.DLL • REMOTESTOREU.DLL • VTRCONTROLU.DLL (requires that XPX4032.ocx be installed in the same folder) Argus COM components located in: C:\Program Files\Vela Research\Common • MEMORYMANAGER.DLL • MEMMGRSERVER.EXE • VELA_PINS.DLL COM component registered by SDK installation (used by FMTestApp): • VTR.DLL...
  • Page 82: Component Registration

    Regsvr32.exe is a utility provided at no extra charge by Microsoft that you are free to redistribute. Note that Vela no longer provides the BArgus.bat registration batch file, since it is no longer required in order to switch between EDL Editor and FMTestApp.
  • Page 83: General Registry Settings

    . Refer to Appendix B for detailed Spectrum multi-stream Registry settings. Standard Argus Registry Tables: \HKEY_CURRENT_USER\Software\Vela Research\Broadcast Argus\EncoderConfig \HKEY_CURRENT_USER\Software\Vela Research\Broadcast Argus\FilterMgr \HKEY_CURRENT_USER\Software\Vela Research\Broadcast Argus\IBM Audio \HKEY_CURRENT_USER\Software\Vela Research\Broadcast Argus\IBM Video \HKEY_CURRENT_USER\Software\Vela Research\Broadcast Argus\Mux \HKEY_CURRENT_USER\Software\Vela Research\Broadcast Argus\RemoteStore \HKEY_CURRENT_USER\Software\Vela Research\Broadcast Argus\VTR Argus Spectrum Registry Tables:...
  • Page 84: Detailed Explanation Of Registry Tables

    Argus Encoder Family Version 2.6 API Developer’s Guide If the Argus Registry locations listed above are not established prior to the first en- code, a call to the Filter Manager method will create the Registry, providing Load() default settings for each of the keys. These settings can be modified programmati- cally (refer to MSDN help) or manually using the regedt32 or regedit command.
  • Page 85: Table A-1. Ibm Video Registry Table

    Appendix A — General Registry Settings IBM Video Registry Table Property Registry Key Data Type Value Set Comments Video Bit Rate BitRate Unsigned long 512,000 to Typically, SIF resolu- 15,000,000 bps tion (352x240/288) for 4:2:0 Chroma. is used for lower bit Up to 50,000,000 rates (.5 to 3 Mbps).
  • Page 86 Argus Encoder Family Version 2.6 API Developer’s Guide IBM Video Registry Table (Continued) Property Registry Key Data Type Value Set Comments Source Type InputType Unsigned char 0 – 8 A setting of 1 is interpreted as Default: 0 digital; all others are interpreted as composite.
  • Page 87 Appendix A — General Registry Settings IBM Video Registry Table (Continued) Property Registry Key Data Type Value Set Comments Non-linear quan- NonLinear- Long 0 = Off Turns on/off the non- tization flag Quant linear quantizer table. 1 = On Use “1” especially Default: 0 for low bit rates.
  • Page 88 Argus Encoder Family Version 2.6 API Developer’s Guide IBM Video Registry Table (Continued) Property Registry Key Data Type Value Set Comments First Active Video FirstActiveLine Unsigned char Possible settings: This field determines Line which line of video will be the starting line of each encoded picture when the Ver- Default: 22...
  • Page 89: Table A-2. Allowable Combinations Of Video Properties

    Appendix A — General Registry Settings IBM Video Registry Table (Continued) Property Registry Key Data Type Value Set Comments NOTES: (1) The MPEG Specifications allow integral settings of 8 through 10. The IBM chip set also allows a non-standard setting of 11. The Filter Manager forces a setting of 8 whenever SIF resolution is specified, regardless of the value stored in the Registry.
  • Page 90: Gop Structure And Size

    Argus Encoder Family Version 2.6 API Developer’s Guide Horizontal Vertical Format Chroma Mode 4:2:0 1 (MPEG-2) 4:2:0 1 (MPEG-2) (Half-D1) 4:2:0 0 (MPEG-1 SIF) Table A-2. Allowable Combinations of Video Properties (Continued) GOP Structure and Size A GOP (group of pictures) is composed of a combination of I frames, B frames, and P frames.
  • Page 91: Table A-3. Gop Structure Examples

    Appendix A — General Registry Settings Let’s look at some examples: I-Frame Ref-Frame Distance Distance Open or Closed GOP Structure (N Value) (M Value) Either II…(I-Only) Either IPIP… Either IPPPIPPP… Open IBIBIB… Open IBPBPBIBPBPB… Closed IPBIPBIPB… Closed IPBPBPBIPBPBPB… Open IBBIBBIBB… Open IBBPBBIBBPBB…...
  • Page 92: The Ibm Audio Registry Table

    Argus Encoder Family Version 2.6 API Developer’s Guide The IBM Audio Registry Table There can be up to 2 audio streams. In the following table, where the property is followed by the digit 0 or 1, the 0 or 1 specifies to which of the two audio streams the property applies.
  • Page 93 Analog = 0 Audio stream is set to inactive char if it is not being used. Input1 Digital = 1 Inactive = 2 Vela-specific hardware is Embedded required for embedded audio. Audio = 3 Default: Analog PTS Offset PtsOffset Always 0 No longer supported.
  • Page 94 Argus Encoder Family Version 2.6 API Developer’s Guide IBM Audio Registry Table (Continued) Data Property Registry Key Value Set Comments Type Audio Head HeadRoom0 Long 18 (Default) Room HeadRoom1 Audio Refer- ReferenceLevel0 Unsigned 0 = +4dB +4 dB is default value. Config- ence Level ReferenceLevel1 char...
  • Page 95: The Mux Registry Table

    Appendix A — General Registry Settings The Mux Registry Table Most of the entries in the Mux Registry location relate to the multiplexing of audio and video elementary streams into an MPEG system, program, or transport stream. Note that if AdjustGopTimeCode is set to 1, then the GopTcStart field identifies the first GOP time code.
  • Page 96 Argus Encoder Family Version 2.6 API Developer’s Guide Mux Registry Table (Continued) Data Property Registry Key Value Set Comments Type Extract PTS MuxExtractPTS BOOL FALSE Always set to FALSE. Flag Flag MPEG MPEGStd Unsigned 0 = System MPEG standard of muxed Standard char stream.
  • Page 97 Appendix A — General Registry Settings Mux Registry Table (Continued) Data Property Registry Key Value Set Comments Type Transport Audio Language Short 0 = English This code is informational only, Stream Code0 1 = Spanish used to identify the language in Language 2 = French which the audio is presented.
  • Page 98 Argus Encoder Family Version 2.6 API Developer’s Guide Mux Registry Table (Continued) Data Property Registry Key Value Set Comments Type NOTES: (1) The “reordered” notation instructs the encoder to sort the bytes of closed caption data so that they are actually stored in the frames on which they will be displayed. Otherwise, the decoder will sort the closed caption data to put it in the correct display-order.
  • Page 99: The Remotestore Registry Table

    Appendix A — General Registry Settings The RemoteStore Registry Table Although we have not changed the name of this table, its purpose has changed significantly. We no longer support the file-FTP (or remote-store) option. Instead, the information stored in the RemoteStore table applies ONLY to a file stored locally (on the encoder itself).
  • Page 100: The Vtr Registry Table

    Argus Encoder Family Version 2.6 API Developer’s Guide The VTR Registry Table This Registry location holds settings that allow the calling application to control the tape deck during the encoding process. Note that these settings are used by the Filter Manager component, not by the auxiliary VTR component. VTR Registry Table Data Property...
  • Page 101 Note that if a Num- berOfSegments value of 1, 2, or 3 is entered, the old pause/resume method is automatically invoked. Contact Vela for sample code. Table A-7. VTR Registry Table (Continued) The VTR Registry Table...
  • Page 102 Argus Encoder Family Version 2.6 API Developer’s Guide VTR Registry Table (Continued) Data Property Registry Key Value Set Comments Type Mark-in of MarkIn0 CString An 8-digit time If SourceEnabled is TRUE, the first code of the mark-in / mark-out pair is used to encoded format control the start and stop of the...
  • Page 103 Appendix A — General Registry Settings VTR Registry Table (Continued) Data Property Registry Key Value Set Comments Type Mark-in of MarkIn2 CString An 8-digit time If SourceEnabled is TRUE, this third code of the mark-in / mark-out pair is used to encoded format control the start and stop of the...
  • Page 104: The Filtermgr Registry Table

    Argus Encoder Family Version 2.6 API Developer’s Guide The FilterMgr Registry Table These settings are applied to the Filter Manager component itself. Note that the muxed-stream and elementary stream files names are assigned to the Remote Store table LocalFilename key. Filter Manager Registry Table Data Property...
  • Page 105 Appendix A — General Registry Settings Filter Manager Registry Table (Continued) Data Property Registry Key Value Set Comments Type Audio File AudioFileEnabled BOOL 1 if a primary Must also set MPEGStd in Mux Enabled audio elemen- table to 3; tary stream is to also set VideoFileEnabled be stored in a (below) to 1;...
  • Page 107: Multi-Stream Registry Settings

    Appendix B Multi-Stream Registry Settings Configuring Registry Tables for Argus Spectrum Multi-Stream Encoding In order to perform a multi-stream encode of any kind, you'll need to follow a few basic procedures in setting up the FilterMgr, the Mux, the IBM Video, and the IBM Audio Registry tables before calling the FilterManager Load() Cue()
  • Page 108: (Cineviewpro Xl)

    First a registry value must be set in the CineView Pro Key that will enable the generation of the second audio pin file. This registry setting is different from other Spectrum settings because you must modify the registry key HKEY_CURRENT_USER\Software\Vela Research\CineViewPro 0\Settings instead of the standard “Broadcast Argus” key. CineView Pro XL Registry Table...
  • Page 109: Table B-2. Dualenc Registry Table — Spectrum

    Appendix B — Multi-Stream Registry Settings DualEnc Registry Table Property Registry Key Data Type Value Set Comments Ligos Flag LigosEnabled TRUE (1) if a Ligos The setting of this key stream is to be cre- is ignored if either the ated, FALSE (0) if Ligos software mod- not.
  • Page 110: Setting The Registry For Ligos Encoding

    MPEG-2 stream and a secondary MPEG-1 stream. Encoded by the Ligos GoMotion MPEG-1 software encoder and muxed by Vela's proprietary Mux software, the MPEG-1 stream starts on precisely the same frame as the MPEG-2 stream, matching its content frame-by- frame to the end of the encode.
  • Page 111: The Ligosmux Registry Table

    Appendix B — Multi-Stream Registry Settings LigosMpeg1 Registry Table Property Registry Key Data Type Value Set Comments Ligos File Name Filename CString The full path name of the file that will hold the MPEG-1 stream. Audio Bit Rate AudioBitrate Long 64,000 80,000 96,000...
  • Page 112: Setting The Registry For Realnetworks Encoding

    Argus Encoder Family Version 2.6 API Developer’s Guide Setting the Registry for RealNetworks Encoding If you want at least one of your secondary streams to be in RealNetworks format, select the RealEnabled encoding option in the DualEnc Registry table. When this feature is turned on, your encoding session will result in a primary MPEG-2 stream and a secondary stream in RealNetworks format.
  • Page 113 Appendix B — Multi-Stream Registry Settings RealNetworks Registry Table (Continued) Property Registry Key Data Type Value Set Comments Stream Data Flag ServerEnabled TRUE (1) if the Real- If set to 1, define the Networks file is to be name of the server in streamed to a remote ServerName and server.
  • Page 114: Setting The Registry For Windows Media Format Encoding

    Argus Encoder Family Version 2.6 API Developer’s Guide RealNetworks Registry Table (Continued) Property Registry Key Data Type Value Set Comments Connect28K Bool On (1) or Off (0) The audience deter- mines the quality and Connect56K Bool On (1) or Off (0) frame rate of your audio and video.
  • Page 115: Table B-5. Wmf Registry Table — Spectrum

    Appendix B — Multi-Stream Registry Settings WMF Registry Table Property Registry Key Data Type Value Set Comments WMF File Name Filename Cstring / The full path name of REG_SZ the file that will hold the Windows Media- formatted stream. Default: D:\Mpeg- files\test.wmv.
  • Page 116 Argus Encoder Family Version 2.6 API Developer’s Guide WMF Registry Table (Continued) Property Registry Key Data Type Value Set Comments Frames per FrameRate Int / 10 to 30 30 most closely Second approximates NTSC, REG_DWORD but requires highest CPU usage. Should probably set to 15 if running all three out- put stream types.
  • Page 117 Appendix B — Multi-Stream Registry Settings WMF Registry Table (Continued) Property Registry Key Data Type Value Set Comments Server Enabled ServerEnabled long / Enabled=1 Enables/Disables REG_DWORD server functionality. Disabled=0 Enabling allows data to be streamed to Windows Media Player or a Windows Media Server.
  • Page 118: Table B-6. Table Of Audio Codec Format Strings

    Argus Encoder Family Version 2.6 API Developer’s Guide Table of Audio Codec format String Values The following settings are valid for codec type specified Valid settings for Microsoft Windows Media™ Audio version 9.0 “8 kbps, 8 kHz, mono (A/V) CBR” “6 kbps, 8 kHz, mono (A/V) CBR”...
  • Page 119 Appendix B — Multi-Stream Registry Settings “96 kbps, 44 kHz, stereo (A/V) CBR” “80 kbps, 44 kHz, stereo (A/V) CBR” “64 kbps, 44 kHz, stereo (A/V) CBR” “48 kbps, 44 kHz, stereo (A/V) CBR” “32 kbps, 44 kHz, stereo (A/V) CBR” “192 kbps, 48 kHz, stereo (A/V) CBR”...
  • Page 121: Filter Manager Error/Status Codes

    Appendix C Filter Manager Error/Status Codes The following return codes may be returned by calls to Filter Manager methods or by Filter Manager Error Events. NOTE 1: There are six error codes that are reported by the video encoder chip and passed unaltered through Filter Manager.
  • Page 122 Argus Encoder Family Version 2.6 API Developer’s Guide Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments Main storage component failed to stop, pause, or Summary error message. resume. Check log for more descrip- tive messages regarding sta- tus of storage component. V_FIFO_UNDERFLOW (Encoder chip error code) A timeout occurred while...
  • Page 123 Appendix C — Filter Manager Error/Status Codes Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments V_BITRATE (Encoder chip error code) Too little video data avail- able at the time of the last “read.” Run encoder diags, check the video source. Disk space error.
  • Page 124 Argus Encoder Family Version 2.6 API Developer’s Guide Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -33, -34 Error resetting or starting audio storage Summary message. Check component. log file for more specific messages. Last encode may not have shut down correctly? Exit application and try again.
  • Page 125 Appendix C — Filter Manager Error/Status Codes Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments Unable to read mark-in from tape deck. Check COM port connec- tions, Check to see that VTR is in remote mode, etc. Unable to recognize microcode type in looking up VTR adjustment in Registry.
  • Page 126 Argus Encoder Family Version 2.6 API Developer’s Guide Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments Attempted to Pause the video component while it Application may have lost was already paused. track of its state. If error persists, you may need to exit application and restart.
  • Page 127 Appendix C — Filter Manager Error/Status Codes Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments Attempted to cue or Start an audio component The application may have that is currently encoding. hung up during the previous encode. Try calling Reset. If that fails, restart the application.
  • Page 128 Argus Encoder Family Version 2.6 API Developer’s Guide Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments Audio process failed because of a driver initializa- Check audio encoder hard- tion error, an error reading data from the audio ware. Make sure board is board, or for some other non-pin-related error.
  • Page 129 Appendix C — Filter Manager Error/Status Codes Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -119 Error initializing the input pin of the storage component. -121 Error creating the storage component process thread. -122 Encoder is unable to communicate through the Check the cabling from the serial port with the VTR.
  • Page 130 Argus Encoder Family Version 2.6 API Developer’s Guide Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -185 Error creating video elementary storage object. Ascertain that RemoteStore is registered. -189 Error creating mux storage object. Ascertain that RemoteStore is registered. -194 Error initializing mux or Ligos mux object.
  • Page 131 Appendix C — Filter Manager Error/Status Codes Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -239 Attempted to pause the plug-in component when it was already paused. -240 Attempted to resume the plug-in component when it was not paused. -241 Plug-in component failed while writing to file.
  • Page 132 Argus Encoder Family Version 2.6 API Developer’s Guide Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -254 An attempt to create a pin object failed. The error Ascertain that Vela_Pin is message will indicate which pin. registered. -255 Pin component failed when trying to create a System error.
  • Page 133 Appendix C — Filter Manager Error/Status Codes Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -335 The PlayFromPin call to the CVPro Server failed. Make sure that the previous The decoder failed to start realtime playback. encode did not end with an unclosed CVProServer or MemMgrServer executable running.
  • Page 134 Argus Encoder Family Version 2.6 API Developer’s Guide Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -348 An GOP Size of 0 or less was passed to Mux. Check the I-frame distance setting in the Video Registry. -349 Mux component failed to create its mutexes. System problem.
  • Page 135 Appendix C — Filter Manager Error/Status Codes Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -416 Ligos failed to create the video outpin or one of Make certain Vela_Pins is the two audio outpins. registered. -417 Failure setting up the Ligos software. Make certain that Ligos component (and Ligos libraries) are properly...
  • Page 136 Argus Encoder Family Version 2.6 API Developer’s Guide Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -431 Failed to create the in-pin from the CVPro to the Ascertain that both Ligos component. CinProSerCom and LigosEncode are registered, as well as CVProServer. Make certain that previous encode closed down cleanly.
  • Page 137 -448 Argus Registry failure. Unable to open the HKEY_CURRENT_USER path Software\Vela Research\ Broadcast Argus. Check the Registry. -449 Unable to open the “IBM Video” Registry table. -450 Unable to open the “IBM Audio” Registry table.
  • Page 138 Argus Encoder Family Version 2.6 API Developer’s Guide Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -456 Unable to open the “RemoteStore” Registry table. -457 Unable to open the “FilterMgr” Registry table. -458 Invalid video bitrate supplied. Check IBM Video Registry table (see Appendix A).
  • Page 139 Appendix C — Filter Manager Error/Status Codes Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -467 Invalid ClosedGOP setting in IBM Video Registry Check IBM Video Registry table. table (see Appendix A). -468 Invalid chroma setting in IBM Video Registry Check IBM Video Registry table.
  • Page 140 Argus Encoder Family Version 2.6 API Developer’s Guide Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -480 Invalid error protect flag supplied for main Check IBM Audio Registry encode. Must be 0 or 1. table (see Appendix A). -481 Invalid copyright flag supplied for main encode.
  • Page 141 Appendix C — Filter Manager Error/Status Codes Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -492 Invalid mux rate supplied for main encode. Used Check Mux Registry table only for transport stream. Must be between (see Appendix A). 512000 and 50,000,000. -493 Invalid closed caption flag setting for main Check Mux Registry table...
  • Page 142 Argus Encoder Family Version 2.6 API Developer’s Guide Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -502 Invalid Mark-out time code (used only when VTR- Check VTR Registry table Control is turned on). (see Appendix A). -503 Invalid duration (used only when VTR-Control is Check VTR Registry table turned off).
  • Page 143 Appendix C — Filter Manager Error/Status Codes Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -513 IBM-Video database error when using EDL Editor. Could be an ODBC error. Run mdac_type.exe provided with current installation -514 IBM-Audio database error when using EDL Editor. Could be an ODBC error. Run mdac_type.exe provided with current installation.
  • Page 144 Argus Encoder Family Version 2.6 API Developer’s Guide Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -527 The call to Stop WMF failed. Component may be “hung up.” Try resetting. If that fails, application may need to be restarted. -528 An attempt was made to reset the WMF compo- See if the Registry shows...
  • Page 145 Appendix C — Filter Manager Error/Status Codes Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -548 There was an error setting up the Input profile. The settings used to config- ure the input stream is invalid. -549 There was an error setting up the Audio Input The settings used to config- profile.
  • Page 146 Argus Encoder Family Version 2.6 API Developer’s Guide Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -582, -583 Error opening the WMF Registry. Use RegEdit and/or RegCtr- lPnl to check the existence and state of the WMF table (See Appendix B). -584 Error Creating Main WMF Processing thread.
  • Page 147 Appendix C — Filter Manager Error/Status Codes Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -609 Invalid First-Video-Line setting. For non-VBI encodes, it must be set to 20, 21, or 22. -610 Argus VTR configuration error. Attempted to turn Check EncodeConfig Regis- on VTR control when Registry indicated that VTR try.
  • Page 148 Argus Encoder Family Version 2.6 API Developer’s Guide Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -625 VSP reset failed. Unable to reset encoder. -626 VSP unmap failed. -627 Unable to create mutexes for FTP component -628 Unable to create FTP COM object. Make certain that the RemoteStore component is registered.
  • Page 149 Appendix C — Filter Manager Error/Status Codes Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -713 Error opening the Real or codec Registry. Use RegEdit and/or RegCtr- lPnl to check the existence and state of the Real and codec tables. (See Appendix B.) -714 Error opening the Real or codec Registry.
  • Page 150 Argus Encoder Family Version 2.6 API Developer’s Guide Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -725 Real DLL directory is not registered. -726 A filename was not supplied in the Real Registry. Check the RealNetworks Registry to be sure that a file name was supplied.
  • Page 151: Index

    Index ....69 Driver Registry ..... 1 4:2:2 Profile .
  • Page 152 Argus Encoder Family Version 2.6 API Developer’s Guide ..... . . 36 Pre-Roll ..... . 19 Properties ®...
  • Page 153 Index ..... . . 40 ....67, 74, 100 VBScript Windows ®...

Table of Contents