ILMRTSPSrcDataCallback Interface

The ILMRTSPSrcDataCallback interface is a user-defined interface. It must be registered by setting the ILMRTSPSrc::DataCallbackObj property. After you do this, the LEAD RTSP Source filter will call its members.

Data Types

DataFlagConstants

Summary

Specifies the contents of private data packet.

Syntax

typedef enum DataFlagConstants 
{ 
   DataFlag_BeginSample = 1, 
   DataFlag_EndSample = 2, 
   DataFlag_IsKLV = 4, 
   DataFlag_IsAscii = 8, 
   DataFlag_IsBinary = 0x10, 
   DataFlag_IsSyncPoint = 0x20, 
   DataFlag_EndOfStream = 0x40, 
} DataFlagConstants; 

Members

DataFlag_BeginSample

This packet is the beginning of a private data sample.

DataFlag_EndSample

This packet is the end of a private data sample.

DataFlag_IsKLV

The buffer seems to be KLV data.

DataFlag_IsAscii

The buffer seems to be ASCII data.

DataFlag_IsBinary

The buffer is binary data.

DataFlag_IsSyncPoint

This is a sync point.

DataFlag_EndOfStream

The end of stream has been reached.

Methods

HRESULT DataAvailable(VARIANT *pData, long lDataSize, long streamPID, double PTS, long flags);

Description

Enumerates the private data packets present in the file.

Parameters

pData

Pointer to a variant containing the private data.

lDataSize

A value that represents the size of the data contained in pData.

streamPID

A PID identifying the stream containing the private data. Use this value to distinguish between the different private data streams in the file.

PTS

Presentation Time Stamp that indicates the time when this data was generated. The PTS should be ignored if PTSType is set to PTS_Invalid.

flags

One or more DataFlagConstants enumeration values or-ed together.

Comments

There can be more than one private data stream in the file and you should use streamPID to distinguish between the various streams. This chunk might be a portion of a private data packet. Use the Flags value to determine whether this packet is:

If the private data stream is a KLV type (that is, if Flags has DataFlag_IsKLV set), then each packet contains a list of KLV keys and subkeys. In this case, it is best to use ILMRTSPSrc::GetKlvParser to obtain an ILMKlvParser interface. You can use the ILMKlvParser interface to enumerate all the KLV keys present in a packet. For more information on KLV keys and format, see SMPTE 336M-2001.

You can examine Flags to see if the data seems to be:

The demux estimates the type of data based on its contents. If you believe this estimation is wrong, you can interpret the data any way you want.

Returns

Return Description
S_OK Successful.
< 0 Indicates an error situation and abort the playback or conversion.
Help Version 22.0.2023.2.15
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS Filters C API Help

Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.