Deadlock with DirectShow during movie playback in WEC7

Combination of Apalis T30, WEC7 and .NET CF 3.5.

We are developing an application that uses DirectShowLib to playback movie files in the order of playlists.

The application uses DirectShow’s “intelligent connection” to build a filter graph and play back the movie.

However, it suffers from the problem of DirectShow deadlock.

In order to investigate where the deadlock is occurring, I would like to check the status of the DirectShow filter graph, but the following various problems are preventing the investigation

  • Is GraphEdit for WEC7 not provided?
  • If IEnumFilters.Next is called using IEnumFilters obtained with IGraphBuilder.EnumFilters, “NotSupportedException” occurs, but do not you know how to handle it?
  • Looking at the log output by IGraphBuilder.SetLogFile, it seems that you are using “NVIDIA Video Transform”, “NVIDIA Video Renderer”, “NVIDIA Audio Transform”, “NVIDIA Audio Renderer”, but is it possible to obtain the latest version of this filter graph?
    It seems that the CE version is not provided only in the Windows version on this site.
  • Since it is stated that using VMR Windowless mode on Microsoft’s site does not cause deadlock, I tried to operate in Windowless mode.
    While it is possible to play back movies, there seems to be a leakage of COM objects, and as the memory usage increases, the application stops eventually.

I am approaching this problem in various ways, but none have been resolved.

I am sorry for inquiries about many program elements, not inquiries about computer modules, but I’m very thankful if there are small hints.

Dear @kyas,

Thank you for contacting support. I am working on your case and also I would like to check our developer to provide more information.

Meanwhile, did you notice this bug : Video: Playing Video in a loop does not work on T30, maybe it is related to your experiencing issue. At the moment, we are not planned to work on the bug, you would try the suggested workaround there.

Dear @raja.tx

Thank you for your reply.

I was not aware of any known issue with release information.

But, in my application, I do not rewind playback position with IMediaSeeking.SetPositions. The method of operation is slightly different.

When reproduction of one file is completed, it releases GraphBuilder, repeats reading newly the next file and reproducing it.

However, GetPositions of IMediaSeeking, GetCurrentPosition and GetDuration are used to acquire the current playback position.

Does such a processing method also cause the problem presented in the known problem?

I have newly found out.

As a requirement of the application, UART communication is performed together with movie playback.
When detaching the UART communication part, it turned out that deadlock does not occur in the movie.
Furthermore I found the following article in the release note.

25340 System Hang on Serial Port Open while reception data

I do not know what RX DMA is like.
However, if you set “DMASetting = 0” in the registry for testing, it turned out that deadlock does not occur in the movie even if UART communication is being processed.

From these things, can you consider the approach and countermeasures I should take?

Dear @kyas,

Thank you for your finding and replying here.

Could you please share the demo application executable file or application source code and let us try to reproduce the issue with your suggestion and get back you.