ILMRTSPSrc Interface

This is the interface for the LEAD RTSP Source filter.

You can control this filter using this interface and by passing parameters to the UDP Source URL. See the RTSP Source URL Syntax topic for more information on the URL parameters.

Interface Properties:

Type

Name

Description

IUnknown *

CallbackObj

The user callback that will be called when certain events occur. Currently, there is only one event (EVENTTYPE_NODATAAVAILABLE), which indicates that the UDP source has not received any data. Use this callback to receive notifications indicating that no data is arriving so that you cancel the wait.

The user callback object should implement the ILMSrcCallback interface.

LEADTOOLS uses this interface internally when you load a stream using the UDP source filter. The Play and Convert objects will automatically intercept the ILMSrcCallback notifications and will send the ltmmEC_LOADSTATUS event with the ltmmAM_LOADSTATUS_WAITING_FOR_DATA notification to inform you when EVENTTYPE_NODATAAVAILABLE is fired by the RTSP source. In other words, you do not need to implement the ILMSrcCallback interface to take advantage of this feature. See the Aborting Loading from the RTSP and UDP Source Filters topic for more information.

VARIANT_BOOL

CallInSameThread

Enables or disables the calling of the CallbackProc notifications in the same thread that set the ReceiveProcObj property.

Possible values are:

Value

Meaning

VARIANT_TRUE

Call the notifications in the same thread that set the callback. This reduces performance and requires the application to process messages; otherwise, the callback will not get called. VARIANT_TRUE is the default value and is required for platforms that have problem with multithreading, like VB 6.0, MFC, or .NET.

This is the default value.

VARIANT_FALSE

Call the notifications in any thread of the process. Use this setting for the best performance in platforms that can handle multi-threading. This is best for C++ applications. Be aware, however, that your callback will not be called in the main thread (so you need to take care when interacting with the user interface.)

VARIANT_BOOL EnableSecurityUI

Enables or disables showing the message box asking the user to enter the username and password for RTSP servers requiring a username and password.

The default value is VARIANT_TRUE (the RTSP source filter will show a message box for entering the username and password).

If set to VARIANT_FALSE, the RTSP source will fail to stream from RTSP servers using security, unless the correct username/password are entered in the URL. If the RTSP server requires a username/password and the URL does not contain the correct username/password, the filter will fail to load or play the stream with the LTMM_E_RTSP_UNAUTHORIZED (0x80050037) error code.

Another way to set this property and disable showing the message is to add the "?EnableSecurity=0" parameter to the URL. For more information, refer to RTSP Source URL Syntax.

IUnknown *

DataCallbackObj

The user callback that will be called when metadata arrives.

The user callback object should implement the ILMRTSPSrcDataCallback interface.

VARIANT_BOOL

DataCallInSameThread

Enables or disables the calling of the DataCallbackProc notifications in the same thread that set the DataCallbackObj property.

Possible values are:

Value

Meaning

VARIANT_TRUE

Call the notifications in the same thread that set the callback. This reduces performance and requires the application to process messages; otherwise, the callback will not get called. VARIANT_TRUE is the default value and is required for platforms that have problem with multi-threading, like VB 6.0, MFC, or .NET.

This is the default value.

VARIANT_FALSE

Call the notifications in any thread of the process. Use this setting for best performance in platforms that can handle multi-threading. This is best for C++ applications. Be aware, however, that your callback will not be called in the main thread (so you need to take care when interacting with the user interface.)

Interface Methods:

HRESULT GetKlvParser (long streamPID, ILMKlvParser **pVal);

Parameters

Parameter Description
streamPID The stream PID for which you want to receive the KLV parser interface.
pVal A pointer to a pointer to an ILMKlvParser interface. This pointer will be updated by the method if successful.

Description

The ILMKlvParser interface can be used to easily enumerate the KLV keys and for getting the KLV data. It keeps track of incomplete keys and enumerates them when you get sufficient data.

Use this method to facilitate parsing of KLV data conforming to SMPTE 336M-2001. There might be more than one private data stream and you should use a different parser for each stream. Identify each stream by its PID (-Packet IDentifier-). The PID is usually the same as the streamPID passed to ILMRTSPSrcDataCallback::DataAvailable, but you can pass any value as the streamPID.

Returns

S_OK if successful

E_POINTER if pVal is NULL.

E_OUTOFMEMORY if there is not enough memory to create the interface.

Help Version 20.0.2020.3.31
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2020 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS Filters C API Help