Vela ® P R I S M MPEG-2 Transcoder API Developer’s Guide V e r s i o n 2 . 6 .
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.
Table of Contents List of Figures and Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v Chapter 1 Getting Started. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Introduction to the Vela Prism API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Minimum System Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Software Requirements . . . . . . . . . . . . .
ii Vela Prism Release 2.6.5 API Developer’s Guide Creating the Object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22 Using the Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23 Releasing the COM Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25 Registering to Receive Filter Manager Events . . . . . . . . . . . . . . . . . . . . . . . . . .
List of Figures and Tables Chapter 1 Getting Started. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Table 1-1. Vela Prism SDK Included Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Figure 1-1. Installation Auto-Run Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Figure 1-2. Select Components Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Chapter 2 Using the Filter Manager API . . . . . .
Chapter 1 Getting Started Introduction to the Vela Prism API This Application Programming Interface (API) for the Vela CineView® Pro Prism MPEG-2 transcoder was designed using an object-oriented approach. Each core function of the transcoder has its own COM (Microsoft's Component Object Model) component associated with it. A complete transcode is accomplished when these components are used together and accessed through Filter Manager, Vela's single, well-defined COM interface.
2 Vela Prism Release 2.6.5 API Developer’s Guide CPU usage of any one of the low-bitrate transcodes by decreasing its horizontal and vertical resolutions and by decreasing its bit rate. Observing the Windows task manager as you transcode should help you to determine the ideal settings for your customized Vela Prism transcoder. Minimum System Requirements • Microsoft Windows 2000 (Service Pack 2) or Windows NT 4.0 operating system (Service Pack 6a).
Chapter 1 — Getting Started 3 Included Files The following table is a list of all files to be installed with the CineView Pro Prism and with the installation of the Prism SDK. (Those files that are installed as part of the SDK are located in the folder C:\ Program Files \ Vela Research\ CineView Pro \Prism\ SDK or in one of its sub-folders.) Vela Prism SDK Included Files Filename File Description Folder CinProSerComU.dll FilterManagerU.dll MultiplexU.dll RemoteStoreU.dll Various COM components.
4 Vela Prism Release 2.6.5 API Developer’s Guide Vela Prism SDK Included Files (Continued) Filename File Description Folder Wininet System DLL required to support RemoteStore component. C:\WINNT\System32 Various System DLLs for ATL and MFC. C:\WINNT\System32 Table 1-1. Vela Prism SDK Included Files (Continued) Component Summary The goal of this API set is to give you, the developer, a binary-independent, easy-to-control interface to the Vela Prism transcoder.
Chapter 1 — Getting Started 5 Vela Prism SDK Installation Note that if any previous version of Vela Prism software is installed on your system, it must be uninstalled before you continue with the installation of the version 2.6.5 SDK. Use the Windows Control Panel “Add/Remove Programs” function to uninstall Prism software, if necessary.
6 Vela Prism Release 2.6.5 API Developer’s Guide Figure 1-2. Select Components Screen 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.
Chapter 1 — Getting Started 7 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.
Chapter 2 Using the Filter Manager API Component Overview The key element of the Vela CineView Pro Prism 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.
10 Vela Prism Release 2.6.5 API Developer’s Guide 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 transcoding 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.
Chapter 2 — Using the Filter Manager API 11 Figure 2-2. Windows Registry Transactions One useful feature of the Registry method of storing transcoding parameters is that it is not necessary to set up the Registry before the first transcode. If the application attempts to load from the Registry when there are no transcode settings there, Filter Manager responds by saving all of the default settings to the Registry, creating all of the needed keys.
12 Vela Prism Release 2.6.5 API Developer’s Guide Task Tool Description CVProPrism An application that displays all of the transcoding parameters, allowing the user to review and modify them. It also has the capability to start and stop transcodes. Source code is provided in Chapter 3. Change individual Registry settings (i.e., file name, mark-in) before starting a transcode.
Chapter 2 — Using the Filter Manager API 13 Registry-Access Methods Exposed Through Filter Manager The Filter Manager interface exposes a Load() method that loads the full set of transcode parameters from the Registry into memory, as well as a Save() method that writes all of Prism’s current property settings to the Registry.
14 Vela Prism Release 2.6.5 API Developer’s Guide For example, if a property is listed as PropertyX( long ), then assume that the definition of the corresponding Put() method is void PutPropertyX( long val ), and that the definition of the corresponding Get() method is long GetPropertyX();. Transcode ( BOOL ): (Put) If this property is set to 1, the Filter Manager knows that transcoding is enabled and to load the necessary components. When the property is set to 0, transcoding will not function.
Chapter 2 — Using the Filter Manager API 15 Allowable State Transitions (Continued) Current State Allowed Commands Resulting State Success Failure Reset State Cue() Cued Initialized Cued Start() Started Initialized Pause() Paused Initialized End() or Stop() Initialized Initialized Resume() Resumed Initialized Pause() Paused Initialized End() or Stop() Initialized Initialized Started Paused Resumed Table 2-2.
16 Vela Prism Release 2.6.5 API Developer’s Guide long End() – This is an alternate and preferred method of stopping the transcode. It performs a “clean” stop, guaranteeing that the frame currently being processed by the components will be flushed through all transcode modules before the transcode halts. See the discussion of stopping strategies, directly above. The End() method returns a 0 if it is successful. It returns an error code (listed in Appendix B) if it encounters an error. long Reset().
Chapter 2 — Using the Filter Manager API 17 HRESULT FinishedEvent(long code, BSTR message) is issued to inform the client that the transcode is completely finished. For an explanation of how to register events in your C++ or Visual Basic application, see the respective sections of this manual that describe C++ and Visual Basic client applications. For a more detailed explanation of COM events, refer to the recommended COM reading references listed in Chapter 1, particularly the book ATL Internals.
Chapter 3 The Sample Application Overview Developers using these components should be familiar with Microsoft Visual C++™ 6.0. Microsoft provides several wizards and tools that make adding COM support to your C++ applications relatively straightforward. While it is possible to access and use these components from other development environments, only an example for Visual C++ 6.0 is provided in this SDK. Other packages with COM support should behave in a similar manner.
20 Vela Prism Release 2.6.5 API Developer’s Guide Creating the Project When you are creating a Microsoft Foundation Class (MFC) Application Wizard EXE project like TranscodeClient, 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.
Chapter 3 — The Sample Application 21 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; that class can be used to create an instance of the required COM object and to use its services.
22 Vela Prism Release 2.6.5 API Developer’s Guide Once an instance of IArgusFMPtr has been created, it can be used to access the 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. Creating the Object To create the interface to the Filter Manager, first declare the following in the CTranscodeClientDlg class.
Chapter 3 — The Sample Application 23 m_pFilterManagerEvents->EasyAdvise(m_pIFilterMgr); ///////////////////////////////////////////////////////////////////////////////////// // The following section of code is needed only for THIS application's event// handling strategy. // This sample interface handles LOG events by writing them to a log file, // for which it needs pFile, a pointer to a file opened for writing.
24 Vela Prism Release 2.6.5 API Developer’s Guide long errorCode; // Reset all transcoder components, Check Results. errorCode = m_pIFilterMgr->Reset(); if (errorCode != 0) { DoNotStartTranscode(); return; } // Load registry settings. Check Results errorCode = m_pIFilterMgr->Load(); if (errorCode != 0) { DoNotStartTranscode(); return; } // Cue all components. Check Results. errorCode = m_pIFilterMgr->Cue(); if (errorCode != 0) { DoNotStartTranscode(); return; } // Start Encode/Transcode.
Chapter 3 — The Sample Application 25 return a long result which is typically set to 0, if successful, or a negative value on error. For a complete list of Filter Manager error codes, refer to Appendix B. All of the Filter Manager calls listed in the above code have been discussed in previous sections. Releasing the COM Libraries Like all resources, the COM libraries must be released when the programmer is finished using them. For this purpose, a single method is provided by COM called CoUnitialize.
26 Vela Prism Release 2.6.5 API Developer’s Guide 2. In the class definition, insert a SINK_MAP that includes each of the events from Filter Manager that you’d like to receive. For example, in our sample application, we register to receive the error, log, finished, and pause events.
Chapter 3 — The Sample Application 27 hr = DispEventAdvise(pUnk, &m_iid); return hr; } 4. Within the CFilterManagerEvents class, define and implement a method that calls AtlGetObjectSourceInterface() and DispEventUnadvise(). Once again, AtlGetObjectSourceInterface() is called to retrieve pUnk, a pointer to the event source. DispEventUnadvise() breaks the connection with the event source represented by pUnk. Once the connection is broken, events will no longer be routed to the handler functions.
28 Vela Prism Release 2.6.5 API Developer’s Guide STDMETHODIMP CFilterManagerEvents::OnLog(long code, BSTR error) { CString strMessage = _T(“”); strMessage.Format ( _T(“%s”), ( LPCTSTR ) error); pView->MessageBox( strMessage ); if( !pFile ) return S_OK; // Send error message to log file.
Chapter 3 — The Sample Application 29 Running the Sample Application The TranscodeClient (CVProPrism) sample C++ application, portions of which have been discussed in the previous sections of this chapter, is intended as an example of the use of the Filter Manager interface, not as an end-user application. However, it is useful to compile and run the sample application to observe and understand the operation of the CineView Pro Prism transcoder.
30 Vela Prism Release 2.6.5 API Developer’s Guide Windows Registry Overview As discussed in Chapter 2, most of the properties that must be defined before starting the transcode process are set in CineView Pro Prism-specific Windows Registry tables. Many of these properties can be set once when the transcode software is installed and can be left unchanged thereafter. Specific applications, however, may need to reset a subset of the transcoder properties before each transcode.
Chapter 3 — The Sample Application 31 Example: Loading a Transcoder Registry Table As an example of using the CRegistry class to load settings, the following method loads some of the transcode settings from the Registry table. Again, this method is provided as an example of the calls required to read a table from the Registry. In a production-quality application, you should check the return value of each of the included function calls to make certain that the value is equal to TRUE.
32 Vela Prism Release 2.6.5 API Developer’s Guide CRegistry Settings ; CRegistry DualEnc ; if( m_lHorizRes == 176 ) // QSIF { m_lVertRes = (vidMode == VIDEO_MODE_NTSC) ? 120 : 144; } else { m_lVertRes = (vidMode == VIDEO_MODE_NTSC) ? 240 : 288; } // Save Transcode Settings to registry if( Settings.Open(HKEY_CURRENT_USER, ARGUS_KEY ) == TRUE ) { if( DualEnc.Open(Settings.hKey(), _T(“DualEnc”)) == TRUE ) { DualEnc.SetValue( _T(“Filename”), m_csFilename ); DualEnc.
Chapter 3 — The Sample Application 33 CVProPrism Typical Screen Shots When you double-click on CVProPrism.exe, tabbed windows will appear, as shown on this and the following pages. Registry changes can be made as desired. To restore the particular tabbed section to factory default settings, click the “Set Default” button. Figure 3-1.
34 Vela Prism Release 2.6.5 API Developer’s Guide Figure 3-2. Registry Control Panel — A/V Info Figure 3-3.
Chapter 3 — The Sample Application 35 Figure 3-4. Registry Control Panel — Real Figure 3-5.
Chapter 4 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. For the Vela CineView Pro Prism version 2.6 we use Wise® version 8.1 to build our software installation package.
38 Vela Prism Release 2.6.5 API Developer’s Guide section into an individual .INI. Using a utility such as Regini will help automate the Registry settings for you. When creating your Registry installation, make sure to account for all spaces and punctuation listed in the Registry settings below. Incorrect formatting is the most common reason for custom installations to fail.
Chapter 4 — Distributing Components 39 Microcode Directory Structure The CineView Pro decoder also has microcode requirements. CinProSerCom.dll uses the microcode files, installed during the CineView Pro installation process, in the C:\ Microcode directory to initialize the CineView Pro hardware. For more information on these files, refer to the CineView Pro product documentation.
40 Vela Prism Release 2.6.5 API Developer’s Guide CineView Pro Prism COM components located in: C:\Program Files\Vela Research\Common\G2: • • • • • • • • • • 14_43260.dll 28_83260.dll atrc3260.dll auth3260.dll basc3260.dll cook3260.dll dnet3260.dll ednt3260.dll enceng.lib encn3260.dll • • • • • • • • • • enlv3260.dll erv13260.dll erv23260.dll erv33260.dll espr3260.dll pnrs3260.dll realencode.dll rmme3260.dll rmto3260.dll rmtools.lib • • • • • • • • rn5a3260.dll rnco3260.dll rv103260.dll rv203260.
Chapter 4 — Distributing Components 41 RealNetworks COM components located in: C:\WINNT\system32: • pncrt.dll • pngu3266.dll • rmbe3260.dll Component Registration In order for Prism software to run, all of the COM components listed above must be registered. (On the other hand, executable servers like MemMgrServer.exe and CineViewServer.exe register themselves at runtime and destroy themselves when they are no longer in use.) The Prism installation procedure registers all of the standard COM components.
Appendix A Transcode Registry Settings Overview All of the Registry settings used to configure an individual transcode on the Vela CineView Pro Prism are found in one of the six Registry locations listed below. Refer to “System Configuration Settings,” page 10, for additional system-level Registry settings.
44 Vela Prism Release 2.6.5 API Developer’s Guide Refer to “Changing Individual Registry Settings,” page 12, for an explanation and examples of manipulating transcoder Registry settings programmatically with the CVProPrism sample application included with this application. Setting the Registry Tables Descriptions of the keys found in each of these Registry locations are listed in the following tables. CVProPrism screen shots can be found at the end of Chapter 3.
Appendix A — Transcode Registry Settings 45 The DualEnc Registry Table When performing a transcode, you'll need to set up the DualEnc Registry table before calling the FilterManager Load() and FilterManager Cue() methods. The DualEnc Registry table holds three keys that turn on or off each of the transcoding components, two keys that define the horizontal and vertical resolutions of the output streams (Ligos, Real, and/or Windows Media formats), and one key to set the file to be transcoded.
46 Vela Prism Release 2.6.5 API Developer’s Guide DualEnc Registry Table (Continued) Property Vertical Resolution of Stream(s) Registry Key VertSize Data Type Long Value Set NTSC: 240 (SIF) or 120 (QSIF) Default: 240 Comments Note that more CPU power is required to support SIF than to support QSIF. PAL: 288 (SIF) or 144 (QSIF). Default: 288 Input Filename Filename CString The full path name of the file to be transcoded.
Appendix A — Transcode Registry Settings 47 The Ligos Mux Registry Table The Filter Manager automatically sets all of the Ligos Mux table keys except AdjustGOPTimeCode, which the application developer may set to either 0 or 1, and GopTcStart, which is defined below.
48 Vela Prism Release 2.6.5 API Developer’s Guide Setting the Registry for Ligos® Transcoding If you want your output stream to be in MPEG-1 format, select the LigosEnabled option in the DualEnc Registry table. When this feature is turned on, your transcoding session will result in an MPEG-1 stream.
Appendix A — Transcode Registry Settings 49 Setting the Registry for RealNetworks® Transcoding If you want at least one of your output streams to be in RealNetworks format, select the RealEnabled transcoding option in the DualEnc Registry table. When this feature is turned on, your transcoding session will result in a RealNetworksformatted stream.
50 Vela Prism Release 2.6.5 API Developer’s Guide RealNetworks Registry Table (Continued) Property Registry Key Stream Data Flag ServerEnabled Name of RealNetworks server Data Type Value Set Comments Int TRUE (1) if the RealNetworks file is to be streamed to a remote server. If set to 1, define the name of the server in ServerName and define the path name of the remote file in ServerFilename.
Appendix A — Transcode Registry Settings 51 RealNetworks Registry Table (Continued) Property Registry Key Data Type Value Set Connect28K Bool On (1) or Off (0) Connect56K Bool On (1) or Off (0) ConnectLAN Bool On (1) or Off (0) Connect256K Bool On (1) or Off (0) Connect384K Bool On (1) or Off (0) Connect512K Bool On (1) or Off (0) Stream Title Title CString The title of the transcoded stream. Author Author CString Author of the transcoded material.
52 Vela Prism Release 2.6.5 API Developer’s Guide Setting the Registry for Windows Media™ Transcoding If you want at least one of your output streams to be a Windows Media-formatted file (previously known as ASF), select the AsfEnabled transcoding option in the DualEnc Registry table. When this feature is turned on, your transcoding session will result in a stream in WMV format.
Appendix A — Transcode Registry Settings 53 WMF Registry Table (Continued) Property Registry Key Data Type Value Set Comments Frames per Second FrameRate Int / REG_DWORD 10 to 30 30 most closely approximates NTSC, but requires highest CPU usage. Should probably set to 15 if running all three output stream types.
54 Vela Prism Release 2.6.5 API Developer’s Guide WMF Registry Table (Continued) Property Server Enabled Registry Key Data Type Value Set ServerEnabled long / REG_DWORD Enabled=1 Disabled=0 Comments Enables/Disables server functionality. Enabling allows data to be streamed to Windows Media Player or a Windows Media Server.
Appendix A — Transcode Registry Settings 55 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.
56 Vela Prism Release 2.6.5 API Developer’s Guide “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” “160 kbps, 48 kHz, stereo (A/V) CBR” “128 kbps, 48 kHz, stereo (A/V) CBR” “96 kbps, 48 kHz, stereo (A/V) CBR” “64 kbps, 48 kHz, stereo (A/V) CBR” Valid settings for Microsoft Windows Media™ Audio Voice version 9.
Appendix B Filter Manager Error/Status Codes The following return codes may be returned by calls to Filter Manager methods or by Filter Manager Error Events. Please note that this listing was developed for the Argus encoder and includes some error codes that do not apply to the Vela CineView Pro Prism transcoder.
58 Vela Prism Release 2.6.5 API Developer’s Guide Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -16 Storage component for elementary audio or video stream failed to stop or resume. Summary message. Should occur only during elementary stream encode. -17 Disk space error. Application determined that there is insufficient disk space for the muxed file or for the elementary video file. -18 VSP component failed during a reset. Summary message.
Appendix B — Filter Manager Error/Status Codes 59 Filter Manager Error/Status Codes (Continued) Error Code -33, -34 Meaning Comments Error resetting or starting audio storage component. Summary message. Check log file for more specific messages. Last encode may not have shut down correctly? Exit application and try again. -35 Video storage, Ligos storage, or plug-in component failed to start. Summary error. Check for more specific error messages in log.
60 Vela Prism Release 2.6.5 API Developer’s Guide Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -47 Unable to read preroll from tape deck. Check COM port connections, Check to see that VTR is in remote mode, etc. -48 Unable to read mark-in from tape deck. Check COM port connections, Check to see that VTR is in remote mode, etc. -49 Unable to recognize microcode type in looking up VTR adjustment in Registry.
Appendix B — Filter Manager Error/Status Codes 61 Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -54 Attempted to Pause the video component while it was already paused. Application may have lost track of its state. If error persists, you may need to exit application and restart. -55 Attempted to Start the video component before cueing it. Application appears to have lost track of its state. If error persists, you may need to exit application and restart.
62 Vela Prism Release 2.6.5 API Developer’s Guide Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -73 Attempted to cue or Start an audio component that is currently encoding. The application may have hung up during the previous encode. Try calling Reset. If that fails, restart the application. -74 Attempted to Pause the audio component when it was already paused. State problem? May need to restart the application.
Appendix B — Filter Manager Error/Status Codes 63 Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -81 Audio process failed because of a driver initialization error, an error reading data from the audio board, or for some other non-pin-related error. Check audio encoder hardware. Make sure board is installed properly. -82 The start-audio driver command failed or an exception was thrown during the audio Start method. Check audio encoder hardware.
64 Vela Prism Release 2.6.5 API Developer’s Guide 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 serial port with the VTR. -165 Error communicating with the VSP. -166 Error creating CVspApi class.
Appendix B — Filter Manager Error/Status Codes 65 Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -183 Error creating audio elementary storage object. Ascertain that RemoteStore is registered. -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. Ascertain that Multiplexor is registered.
66 Vela Prism Release 2.6.5 API Developer’s Guide Filter Manager Error/Status Codes (Continued) Error Code Meaning -238 Attempted to stop the plug-in component when it was not playing. -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. -242 Plug-in failed to open file or allocate resources. -243 Attempted to cue plug-in when it was already cued.
Appendix B — Filter Manager Error/Status Codes 67 Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -253 An attempt was made to read or to write too large a block of data to/from a pin. (Block was larger than pin size). The error message will indicate which pin. This is a programming error. -254 An attempt to create a pin object failed. The error message will indicate which pin. Ascertain that Vela_Pin is registered.
68 Vela Prism Release 2.6.5 API Developer’s Guide Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -335 The PlayFromPin call to the CVPro Server failed. The decoder failed to start realtime playback. Make sure that the previous encode did not end with an unclosed CVProServer or MemMgrServer executable running. Make sure that the decoder board is installed properly and functioning properly. Check firmware / hardware revisions of the decoder board.
Appendix B — Filter Manager Error/Status Codes 69 Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -347 Mux component failed to open the mux writer stream. -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. Check number of open handles using task manager. -350 Mux failed when trying to initialize the closedcaption “driver” class.
70 Vela Prism Release 2.6.5 API Developer’s Guide Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -414 Attempted to set Ligos sample rate to 32,000, which is not supported. Must use 44,100 or 48,000 sample rate. Sample rate must match that of primary MPEG-2 file. -415 Failure to create one of 3 Ligos mutexes. Check open handles using Task Manager. -416 Ligos failed to create the video outpin or one of the two audio outpins. Make certain Vela_Pins is registered.
Appendix B — Filter Manager Error/Status Codes 71 Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -429 Invalid Ligos audio bitrate set in Registry. Must be 64000, 96000, 112000, 128000, 160000, 192000, 224000, 256000, 320000, or 384000. Check Ligos Registry to ascertain that bitrate is one of those listed. -431 Failed to create the in-pin from the CVPro to the Ligos component. Ascertain that both CinProSerCom and LigosEncode are registered, as well as CVProServer.
72 Vela Prism Release 2.6.5 API Developer’s Guide Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -438 A filename was not supplied in the Ligos Registry. Check the LigosMpeg1 Registry to be sure that a file name was supplied. (For EDL Editor, this name will be generated based on the main MPEG file name.). -440 Audio storage component (during elementary encode) failed to pause. -441 During elementary encode, video component failed to pause.
Appendix B — Filter Manager Error/Status Codes 73 Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -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. -451 Unable to open the “Mux” Registry table.
74 Vela Prism Release 2.6.5 API Developer’s Guide Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -462 Invalid video format. Must be NTSC (0) or PAL (1). -463 Inverse telecine is not supported. -464 Invalid input type supplied. Must be 1 for digital or any other value between 0 and 8 for composite. Check IBM Video Registry table (see Appendix A). -465 Invalid I-frame distance supplied in IBM Video Registry.
Appendix B — Filter Manager Error/Status Codes 75 Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -473 Invalid Intra-table flag. Check IBM Video Registry table (see Appendix A). -474 Invalid aspect ratio. Must be square(1), 4x3 (2), 16x9 (3) or 2.21 x 1 (4). Check IBM Video Registry table (see Appendix A). -475 Invalid audio bitrate supplied for main encode.
76 Vela Prism Release 2.6.5 API Developer’s Guide Filter Manager Error/Status Codes (Continued) Error Code Meaning -485 Invalid audio stream id for main encode. Must be a value of 0 to 31. May not duplicate stream id of other AUDIO streams in this encoded file. Check Mux Registry table (see Appendix A). -486 Invalid video stream id for main encode. Must be a value between 0 and 15. Check Mux Registry table (see Appendix A). -487 Invalid mux stream type for main encode.
Appendix B — Filter Manager Error/Status Codes 77 Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -495 Invalid SourceEnabled setting. Must be 0 to turn OFF VTR Control, or 1 to turn it on. Can be turned on only if VTR is marked as installed in Encoder Config Registry. -496 Invalid Com-port setting for VTR component. Check VTR Registry table Must be 1 or 2 and must represent serial port (see Appendix A). through which encoder communicates with VTR.
78 Vela Prism Release 2.6.5 API Developer’s Guide Filter Manager Error/Status Codes (Continued) Error Code Meaning -504 Invalid setting of mux-file-enabled flag (which determines if a muxed file is to be stored during a system, program, or transport stream encode), or of the video-file-enabled flag or audio-fileenabled flag (which determines if the video or audio file is to be stored for an elementarystream encode).
Appendix B — Filter Manager Error/Status Codes 79 Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -514 IBM-Audio database error when using EDL Editor. Could be an ODBC error. Run mdac_type.exe provided with current installation. -515 Storage database error when using EDL Editor. Could be an ODBC error. Run mdac_type.exe provided with current installation. -516 VTR database error when using EDL Editor. Could be an ODBC error. Run mdac_type.
80 Vela Prism Release 2.6.5 API Developer’s Guide Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -528 An attempt was made to reset the WMF component when it was not installed. See if the Registry shows the WMF component turned ON even though WMF is not installed or licensed on this system. -532 Video Bit Rate setting for Windows Media Format Component is out of range. The number specified for video bit rate in the WMF Registry key is not valid.
Appendix B — Filter Manager Error/Status Codes 81 Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -549 There was an error setting up the Audio Input profile. The settings used to configure the Audio input stream is invalid. -550 There was an error setting up the Video Input profile. The settings used to configure the Video input stream is invalid. -552 There was an error setting the Output profile in the writer.
82 Vela Prism Release 2.6.5 API Developer’s Guide Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -584 Error Creating Main WMF Processing thread. -585 A filename was not supplied in the WMF Registry. Check the WMF Registry to be sure that a file name was supplied. (For EDL Editor, this name will be generated based on the main MPEG file name.) -586 WMF network configuration error. Error setting up network configuration for WMF encode. -601 WMF security violation.
Appendix B — Filter Manager Error/Status Codes 83 Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -611 Unable to create mutexes for video component. System error? Check task manager. -612 Unable to create IBM video COM component. Make sure IBMVideo component is registered. -613 Exception thrown during IBM Video initialization. -614 Error occurred during IBM Video stop procedure. -615 Error occurred with IBM-video pause command.
84 Vela Prism Release 2.6.5 API Developer’s Guide Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -628 Unable to create FTP COM object. -629 Error initializing RemoteStore component. -630 Error resetting RemoteStore component. -700 Attempted to cue Real component when it was already cued. State problem. May need to restart application. -704 Attempted to start Real when it was already playing. State problem. May need to restart application.
Appendix B — Filter Manager Error/Status Codes 85 Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -714 Error opening the Real or codec Registry. Use RegEdit and/or CVProPrism to check the existence and state of the Real and codec tables (See Appendix A). -715 Error creating main Real processing thread. Error creating main Real processing thread. -717 Conversion of an input string from Unicode failed. Use CVProPrism to check the input parameters for Real.
86 Vela Prism Release 2.6.5 API Developer’s Guide Filter Manager Error/Status Codes (Continued) Error Code Meaning Comments -726 A filename was not supplied in the Real Registry. Check the RealNetworks Registry to be sure that a file name was supplied. (For EDL Editor, this name will be generated based on the main MPEG file name.). -727 Mux failed to start. Usually the result of an audio or video board failure. -728 Video input ended. Video input stopped unexpectedly.
Index A Filter Manager Methods . . . . . . . . . . . 14 ActiveX™ . . . . . . . . . . . . . . . . . . . 20, 38 Filter Manager Outgoing Interface . . . . 10 Allowable State Transitions . . . . . . . . . 14 Filter Manager Primary Interface . . . . . . 9 API . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Filter Manager Return Codes . . . . . . . 57 Auto-Run Screen . . . . . . . . . . . . . . . . . 5 H C HASP (Dongle) . . . . . . . . . . 1, 40, 45, 82 CineView® Pro . . . . . .
88 Vela Prism Release 2.6.5 API Developer’s Guide R Real® . . . . . . . . . . . . . 11, 41, 45, 46, 49 RealNetworks . . . . . . . . . . . . . . . . . . . 11 T TranscodeClient . . . . . . . . 3, 19, 20, 22, 23, 29, 30, 32 Registry Settings . . . . . 1, 11, 12, 15, 30, 32, 37, 43 U Unicode . . . . . . . . . . . . . . . . . . . . . . . . 9 Registry Tables . . . . . . . 1, 4, 10, 30, 31, 32, 43, 44, 47, 48, 49, 52 Return Codes (Error Codes) . . . . . . . . 57 S Sample Application . . . . . . . . . .