LoadStatusEventCode Enumeration

Summary

The LoadStatusCode enumeration values are used with the EC_LOADSTATUS DirectShow event to provide status of a load operation.

Syntax
C#
VB
C++
public enum LoadStatusEventCode   
Public Enum LoadStatusEventCode  
public enum class LoadStatusEventCode   

Members
ValueMemberDescription
256AM_LOADSTATUS_PROGRAM_PACKET_RECEIVEDIndicates a program packet has been received.
257AM_LOADSTATUS_WAITING_FOR_DATAIndicates the source filter is still waiting for the first data to arrive. This event is sent every second.

For this notification, param2 indicates how many milliseconds have elapsed since the source started waiting.

The LEAD MPEG2 Transport UDP Source and the LEAD RTSP Source filters send this event.

258AM_LOADSTATUS_PROGRAM_COUNT_DETECTEDIndicates the number of programs that have been detected. Use this event to set the current program.
259AM_LOADSTATUS_PROGRAM_INFO_DETECTEDThe LEAD MPEG-2 Transport Demultiplexer sends this event when it has received more information (metadata) about the available programs in the source. This is sent in response to receiving and parsing Program and System Information Protocol (PSIP) tables. These tables contain information about the name of the TV channel associated with each program, etc. You can call ILMMpgDmx.GetProgramInfoAsLong and ILMMpgDmx.GetProgramInfoAsString to get this extra information. See for more information on the ILMMpgDmx interface.
260AM_LOADSTATUS_VIDEO_SIZE_CHANGEDThe video size has changed. This event is usually received while playing DVDs. It is common for DVDs to have video of one size in the menu and another size in the main title.
261AM_LOADSTATUS_DATA_STOPPEDThe LEAD RTSP Source sends this event every second if it has stopped receiving data from the remote server. It indicates some data has been received in the past, but it has stopped arriving. Normally, a server will send an end of stream notification to indicate that no more data is expected. In this case, no end of stream notification has been received, so there is a high possibility the connection was lost. This event is often followed by the ltmmAM_LOADSTATUS_CONNECTION_LOST event.

Param2 is the number of milliseconds elapsed since the last time the filter received any data.

The toolkit will use an ILMSrcCallback interface to implement these notifications. If you set your own callback interface using the ILMRTSPSrc::CallbackObj property, you will not get these notifications anymore.

262AM_LOADSTATUS_CONNECTION_LOSTThe LEAD RTSP Source sends this event when playback has stopped abnormally because the connection to the server has been lost. It is an indication of some kind of error. This event is not sent if the playback stopped normally by reaching the end of stream.

The toolkit will use an ILMSrcCallback interface to implement these notifications. If you set your own callback interface using the ILMRTSPSrc::CallbackObj property, you will not get these notifications anymore.

Remarks

If param1 is set to one of the values in this enumeration, the EC_LOADSTATUS event was fired by one of the LEAD DirectShow filters. See the Microsoft documentation for the DirectShow EC_LOADSTATUS event for more details on EC_LOADSTATUS notifications sent by other filters.

These events are typically sent while the file is loaded and will often be sent before the file is fully loaded. If you know a particular demultiplexer (eg: LEAD MPEG2 Transport Demultiplexer) or source (eg: LEAD MPEG2 Transport UDP Source) has been added to the graph, you can get the interface of these objects and influence the outcome of the load operation.

The LEAD MPEG-2 Transport Demultiplexer sends the EC_LOADSTATUS event and sets param1 to AM_LOADSTATUS_PROGRAM_PACKET_RECEIVED to signal that it has been added to the graph. This event is sent while the graph is being built and you have the option to instruct the demultiplexer to not wait until it receives data from streams that you don't consider important. For example, if the speed with which the graph is built is more important to you than playing the audio stream, you can instruct the demultiplexer that the audio stream is not important and that you want to start playing the graph as soon as the video stream has been identified. This can speed up the playback in situations in which certain streams have packets that occur at rare intervals. By default, the demultiplexer will wait until it identifies all important streams so if the audio stream is signaled as present but the audio packets are never received, the graph might wait a long time for audio packets that will never come.

The LEAD MPEG-2 Transport Demultiplexer sends the EC_LOADSTATUS and sets param1 to AM_LOADSTATUS_PROGRAM_COUNT_DETECTED to signal that it has been added to the graph and that it has detected the number of programs in the stream or file. It does not yet know how many elementary streams are in each program. By default, the demultiplexer will load the streams in the first program. But you can intercept this event and instruct it to load a different program using PlayCtrl.CurrentProgram or ConvertCtrl.CurrentSourceProgram. You can also get the demux interface and set ILMMpgDmx.CurrentProgram directly.

For more information, see Programming with the MPEG-2 Transport Demultiplexer.

The LEAD MPEG-2 Transport UDP Source and LEAD RTSP Source filters send the EC_LOADSTATUS and set param1 to AM_LOADSTATUS_WAITING_FOR_DATA every second while they wait for initial data to arrive. In this case, param2 is set to the number of milliseconds elapsed since the source filter started waiting for data. The wait can occur when you try to load or run the graph. Abort the wait by calling the ConvertCtrl.ResetSource, ConvertCtrl.StopConvert, PlayCtrl.ResetSource or PlayCtrl.Stop methods while processing this event notification. In this case, the load/run operation will be aborted with the LTMM_E_ABORT_WAIT_RESET_SOURCE or LTMM_E_ABORT_WAIT_STOP error, depending on whether you called ResetSource or Stop/StopConvert. If you do not abort the load/run operation, LEADTOOLS will wait until data arrives or until the Source timeout expires. Each filter has its own default timeout, which is >= 15 seconds, but you can change it by passing a Timeout or MaxTimeoutparameter through the URL.

For more information, see Aborting Loading From The RTSP and UDP Source Filters.

For more information, refer to the Microsoft documentation for the Event Notification Codes and DVD Event Notification Codes.

Requirements

Target Platforms

See Also

Reference

Leadtools.Multimedia Namespace

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

Leadtools.Multimedia Assembly