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.
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.
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?