Platform SDK: Broadcast Architecture

IATVEFInserterConfig::InitializeEx

Initializes a CSendATVEFInserter object to send its data as SLIP-encoded frames over a TCP connection to the VBI Inserter, with the user-specified compression options.

HRESULT
InitializeEx (
  ULONG InserterIP,
  USHORT InserterPort,
  BYTE IndexMin,
  BYTE IndexMax,
  DWORD CompressedUncompressedRatio
);

Parameters

InserterIP
The IP address (in host order) of the VBI Inserter on the network.
InserterPort
The port (in host order) on which the VBI Inserter is listening for data from content server applications.
IndexMin
The minimum value (inclusive) in a range of possible compression keys that may be assigned to this enhancement stream (see Remarks).
IndexMax
The maximum value (inclusive) in a range of possible compression keys that may be assigned to this enhancement stream (see Remarks).
CompressedUncompressedRatio
An integer indicating the number of SLIP frames to transmit with compressed IP/UDP headers for every one that is transmitted uncompressed. If this number is zero, then no compression will be performed. If it is 1, then half of the frames will be compressed.

Remarks

Use this method to initialize a CSendATVEFInserter object if you wish to specify a particular ratio of compressed-to-uncompressed SLIP frames, or if you will be transmitting multiple enhancement streams simultaneously through the same VBI Inserter with multiple instances of a CSendATVEFInserter object.

If you are using a single CSendATVEFInserter object and simply wish to specify a compressed-to-uncompressed ratio, then specify an integer representing the number of compressed frames in the ratio, and set the IndexMin parameter to 0x00 and the IndexMax parameter to 0x7F.

If you are using multiple CSendATVEFInserter objects, as you might if you were transmitting enhancement streams for more than one channel through the VBI Inserter simultaneously, then each stream must have a unique compression key. This is so that clients know which IP/UDP headers to use when reconstructing the compressed datagrams for the show that they are tuned to. Your content server application accomplishes this by using the InitializeEx method to assign a unique range of compression keys for each object. The total possible range is seven bits or zero through 127 (inclusive); this value, along with a bit indicating whether compression is "on," occupies the second byte of the SLIP frame, as described in the Internet Draft "The Transmission of IP Over the Vertical Blanking Interval of a Television Signal." If you are co-creating three CSendATVEFInserter objects, in the InitializeEx method call for the first one you might assign an IndexMin value of 0 and IndexMax value of 42, and for the second, a range of 43 through 85, and for the third, a range of 86 through 127. The component will automatically select the actual key from each of these ranges, and the key for each enhancement stream is guaranteed to be unique.