Helix DNA Producer SDK Read Me

Helix Producer Category > Helix Producer SDK > Project Readme

Contents

Helix DNA Producer SDK Read Me

Last Modified: August 1, 2003

Table of Contents

2 Getting Started
2.1 Downloading the Source
2.2 Downloading the Compiled SDK
2.3 Running the Command Line Application
2.4 Upgrading from RealNetworks SDKs to Helix DNA SDKs
2.5 Using the ActiveX Control
3 System Requirements
4 Troubleshooting Tips
5 Sample Applications
5.1 encoder
5.2 mediasinkencoder
5.3 inputplugin
5.4 prefilterplugin
6 More Information


2 Getting Started

2.1 Downloading the Source

Both the SDK and command line applications are available as source. You can browse the source code through the website by clicking on the "Source code" link in either project or by checking the source out through CVS. For more information on checking out the source, see the Checking out Helix DNA Producer Source Code.

The best way to compile the source code is to use the build system. The Helix DNA Producer SDK Quick Start Guide is a good introduction to the Helix build system and how to build the Helix DNA Producer SDK and command line application.

2.2 Downloading the Compiled SDK

The SDK and command line application are also available in compiled form for testing. You can download either the SDK or command line application in compiled form through the downloads page.

2.3 Running the Command Line Application

Helix DNA Producer command line application is distributed as a compressed archive. This archive can be downloaded or compiled as explained in the previous two sections. There is no installer to run and all the files it needs are self-contained in one directory. To unpackage and run the command line application:

  1. Unpack the .zip/.tar/.sit file you downloaded.
  2. Open a command prompt
  3. Change directory into the application directory
  4. Type 'producer' to see a listing of help on the screen. Type 'producer -m' to see a complete help file in HTML format.

Refer to the Troubleshooting Tips section below if you experience any problems.

For more information, see the Helix DNA Producer Command Line Application Quick Start Guide.

Encoding to Ogg Vorbis Format

Before running a producer encode for the Ogg Vorbis format, you must download and install the Ogg and Vorbis libraries from http://www.xiph.org. You can find compiled copies or source for these DLLs in the Ogg Vorbis SDK at http://www.vorbis.com/download.psp The following DLLs are required:

  • ogg.dll, vorbis.dll, vorbisenc.dll

In order for the producer to find these DLLs, they will need to be located the command line application directory or somewhere else in your command path.

2.4 Upgrading from RealNetworks SDKs to Helix DNA SDKs

The Helix DNA Producer 9.1 SDK is almost identical to the Helix Producer SDK 9.0 and 9.0.1 from RealNetworks. If you built an application based on the Helix Producer 9.0 or 9.0.1 SDK from RealNetworks, you can upgrade this application to work with the Helix DNA Producer 9.1 SDK using an automated script that updates interface names and header files. Name changes made to the Helix Producer 9.1 SDK are documented in the Helix DNA Producer 9.1 SDK interface changes guide. Please refer to this document to upgrade your existing 9.0 or 9.0.1 applications to the 9.1 SDK.

2.5 Using the ActiveX Control

This release includes an ActiveX Control that can be used to develop Helix Producer applications in Visual Basic, C++, VBA and VBScript.

2.5.1 Installing the ActiveX Control

The Helix DNA Producer ActiveX control consists of a DLL and supporting libraries and files. The ActiveX control is included with the Producer SDK or command line application.

To install the ActiveX control provided with the SDK, download the SDK package, unpack it and include the contents of the 'bin' directory in your application directory. Make sure to keep the contents of the 'bin' directory intact. Then register the file 'prodctrl.dll' using the method described below in Registering the ActiveX Control.

To install the ActiveX Control for the Helix DNA Producer command line application, unpack the command line application to a directory and register the file 'prodctrl.dll' using the method described below in Registering the ActiveX Control. Again, make sure to leave the directory structure intact since the control 'prodctrl.dll' relies on other files and directories relative to its location.

2.5.2 ActiveX Control Documentation

Documentation about the ActiveX Control is provided in the ActiveX Control Feature Specification and ActiveX Control Interfaces document. Please refer to these documents for more information about the Helix Producer ActiveX Control.

2.5.3 Registering the ActiveX Control

The ActiveX control functionality in this release is encapsulated in the DLL, prodctrl.dll. To use the ActiveX control, this DLL must first be registered. To register the control, open a command prompt and type the following from the directory where prodctrl.dll is located:

regsvr32.exe prodctrl.dll

Note: The prodctrl.dll dynamic library is bundled with the Helix DNA Producer command line application and the Helix DNA Producer SDK. The prodctrl.dll library can not be moved relative to the audiences, codecs, common, plugins, and tools directories. The ActiveX Control depends on other libraries located in these directories.

3 System Requirements

Compiler System Requirements

  • Windows NT4, 2000, and XP with MSVC 6.0 SP3 or greater
  • x86 Linux 2.2 with gcc 2.95.21
  • x86 Linux 2.2 with gcc 3.22
  • Macintosh OS X with Project Builder 2.1 and gcc 3.1

1. If you are compiling with the binary distribution components (e.g. RealMedia file output or broadcast support) Helix DNA Producer must be compiled with gcc 2.95.x or earlier only. Binaries compiled with gcc 2.95.x are not compatible with later versions of the gcc compiler or any other compiler on Linux. This is due to a change made by gcc to be more compatible with other compilers (see gcc compiler documentation for details).
2. The Legacy broadcast library (encn3260.dll), RealMedia editor executable (rmeditor.exe) and the RealMedia Edit SDK are not available for gcc 3.2

Helix DNA Producer Command Line Application System Requirements

  • Windows 98, ME, NT4, 2000, and XP
  • Linux 2.2, 2.4 with glibc 2.1 or greater
  • Macintosh OS X

Supported Input file formats:

  • Uncompressed Wav
  • Uncompressed QuickTime
  • Uncompressed AVI
  • Compressed AVI 1
  • Digital Video (DV) files1
  • MPEG1, MPEG4 1
  • MPEG2 2,1
  • Compressed QuickTime 3
  • NeXT Sound files
  • Sun audio files
  • AIFF files

1. DirectShow used to read this file format and thus this format is supported on Windows Only.

2. Requires DirectShow MPEG2 decoder which are installed by many PC DVD Players.

3. Windows Only. Requires QuickTime Player 5 or later.

Supported Input color formats:

  • YUV12 (a.k.a. I420)1
  • RGB 15, 16, 24, 322
  • BGR 15, 16, 24, 32 (Macintosh versions of RGB)
  • Windows YUV Formats: YUY2, YV12, YVU9, YVYU, CYUV, IYUV, UYNV, UYVY, V422, YUNV,
  • Mac YUV Formats: 2VUY, YUVS, YVYU, YUVU, YVU9, YUV2, V210

1. Preferred color format for RealMedia video codec (no performance penalty due to color conversion)

2. Note that RGB8 is not supported.

4 Troubleshooting Tips

This section describes common problems that you may encounter when building the Helix DNA Producer or running the SDK or command line application after building on your system. For a complete list of current and past issues, please refer to Helix DNA Producer Apps project issue tracking. If you find problems and suggestion that should be added, please send an email to the dev mailing list.

General

  1. CVS login command fails

Symptom: CVS login command responds with "failed to open .cvspass for reading".
Suggestion: Create a temporary file .cvspass in your HOME directory (or c:\ on Windows). This is tricky on Windows from the DOS prompt or the Windows File Explorer - the easiest way is to create the file from a text editor but select "All Files *.*" so the text editor does not add ".txt" to the filename.
Symptom: CVS login command responds with "cvs [login aborted]: recv() from server localhost: EOF".
Suggestion: The most likely source problem is a misconfigured tunnel. You need to set up the tunnel such that localhost:2401 routes to
cvs.helixcommunity.org:2401. In both the SSH Secure Shell and PuTTY SSH clients, the tunnel configuration GUI is confusing, and you may
be entering cvs.helixcommunity.org in a spot where you need to be entering localhost. Try examining your tunnel configuration and restarting
the tunnel to see if the problem clears up. See Tunneling with SSH for more information.

  1. Producer builds but does not create an installer package.

Symptom: Command line zip program (zip.exe on Windows, tar and gzip on Linux) not found during build process. If a command line zip program is not found the build will proceed normally but the packaging operation will fail. Look through the build output for a error indicating "zip not found".
Suggestion: Install a command line zip program. You can get a zip program from Info-ZIP's Zip website.

  1. Producer command line application or SDK does not compile

Symptom: There are lots of errors when trying to compile
Suggestion: Make sure you have set the correct SYSTEM_ID. Not doing so can result in a lot of unexpected errors.

  1. Producer compiles but does nothing when executed.

Symptom: File structure incorrect.
Test:
Check to see if all files appear in the same directory with no subdirectories.
Suggestion:
If you compiled the command line application, make sure you have used the installer package created by building producerapps_installer. If you downloaded the pre-compiled command line application, make sure you maintained the original directory structure when unpacking the archive. If you have done things correctly, you should see a directory structure something like below. producer
├───audiences
├───codecs
├───common
├───docs
├───plugins
├───resources
├───samples
├───tools
└───xmlschemas Symptom: Distribution binaries not included.
Test: Check that files that from the binary distribution project are included by looking for 'erv4.dll' in the 'codecs' directory. If that one file is missing, then other binary files are probably also missing.
Suggestion: Agree to the binary distribution EULA and checkout our again so that binary files are checked out as well.

  1. Can't encode to RA/RV or broadcast to a Helix Server.

Symptom: Distribution binaries not included.
Test: Check that files that from the binary distribution project are included by looking for 'rv40.dll' in the 'codecs' directory. If that one file is missing, then other binary files are probably also missing.
Suggestion: Agree to the binary distribution EULA and checkout our again so that binary files are checked out as well.

  1. SDK does not seem to work.

Symptom: I can load the SDK but many operations fail.
Suggestion: Make sure you have used the installer package created by buliding producerapps_installer so that the SDK files are grouped by directory such as 'tools' and 'audiences'.

  1. Cannot encode Ogg Vorbis files.

Symptom: Command line application generates an error about not being able to find one of the Ogg Vorbis audio codecs.
Suggestion: Before running a producer encode for the Ogg Vorbis format, you must download and install the Ogg and Vorbis libraries from http://www.xiph.org. You can find compiled copies or source for these DLLs in the Ogg Vorbis SDK at http://www.vorbis.com/download.psp.

    • ogg.dll, vorbis.dll, vorbisenc.dll

In order for the producer to find these DLLs, they will need to be located the command line application directory or somewhere else in your command path.

  1. Can not broadcast to Helix DNA Server

To broadcast to a Helix DNA Server, the server must be manually configured. See How To Broadcast from Helix DNA Producer to Helix DNA Server for information on configuring Helix DNA Server for broadcasting.

  1. Can not execute Helix DNA Producer by double clicking icon.

The Helix DNA Producer is a command line application and cannot be run by double-clicking its icon. To run producer, types its name from the command prompt (terminal window on Mac OS X). See Helix DNA Producer Command Line Application Quick Start Guide for information on how to set up the system for easier execution.

ActiveX Control

  1. If you experience problems compiling sample applications in VB.NET refer to the Microsoft KB article 318597 - PRB- Errors When You Use Visual Basic 6.0 Controls in Visual Studio .NET. This problem appears to be due to the file open control (part of the common controls from VB6) that is used in the sample application that is not included by default in the .NET IDE. You may already have the necessary controls installed or the KB article above describes how to download and install the necessary controls.

5 Sample Applications

This SDK comes with sample applications located in a subdirectory called "samples". These are described below. The sample applications can be compiled in the following manner:

  • Windows - "nmake /f win_vc6.mak"
  • Linux - "make -f linux.mak && make -f linux.mak copy"
  • Mac - From CodeWarrior, import mac_cw8_encoder.xml as a project. Note that the project must be created in the sample application folder (otherwise the paths to the include files and application source code will be incorrect).

5.1 encoder

An example encoder application that demonstrates basic encoding. The interfaces used in this sample are ideal if you want to encode from an existing audio/video file or a/v capture device. This sample also provides an example of how to write a log observer.

5.2 mediasinkencoder

An example application that uses input pin interfaces to provide raw audio/video data to the encoding engine. This is the method of encoding that is most similar to the previous SDK. If your application already deals with audio/video data directly, you will want to use the SDK in this way.

5.3 inputplugin

An example that demonstrates how to build a file reader input plug-in for the encoding engine. To test the sample plug-in:

  1. Copy the dll you have built, InWAVPlugin.dll (Windows) or InWAVPlugin.so.0.1 (Linux) into the bin\tools subdirectory of the SDK installation directory
  2. Temporarily remove the existing WAV reader plug-in (riwv3290.dll on Windows, RSInWAVPlugin.so.9.0 on Linux) from the bin\tools directory
  3. Run an encoding job using a .wav file for input

5.4 prefilterplugin

An example that demonstrates how to build a media pre-filter plug-in for the encoding engine. To test the sample plug-in:

  1. Copy the DLL you built, PrefilterExamplePlugin.dll (Windows) or PrefilterExamplePlugin.so.0.1 (Linux), into the \tools subdirectory of the Helix Producer installation directory.
  2. Create a job file using the command line application with the -cj switch.
  3. Open the job file in a text editor and add the following information about the sample prefilter under the prefilters tag:


    true
    rn-prefilter-example

  4. Open/run the job from the Helix Producer with logging diagnostics turned on. Looking at the log after an enocde, you will see a Video Pre-filter Diagnostic message "Prime method called on rn-prefilter-example" which shows that the example prefilter is being called.

6 More Information

  • For more information about the Helix DNA Producer Application, or to contribute to the project, refer to the project home page at: https://producerapps.helixcommunity.org/
  • For more information about the Helix DNA Producer SDK, or to contribute to the project, refer to the project home page at: https://producersdk.helixcommunity.org/
  • For information about other Helix Community projects, please visit https://www.helixcommunity.org/.