What could cause IMediaControl::Stop() to hang?
- From: "Bogdan" <Bogdan@xxxxxxxxxxx>
- Date: Thu, 14 May 2009 13:10:34 -0400
Hi,
This is actually a re-post of a problem that I posted few weeks ago. I have
not been able to solve it and I'm getting quite desperate.
To recap: I have an app that needs to run 24x7. It plays movie clips (wmv,
mpeg2, avi) in a loop. The duration of the loop is about 3 minutes. The
number of clips in the loop is about 10. The app runs fine for a week or
two (i.e. plays the same loop over 3-6K times) and then for no obvious
reason hangs the main UI thread. All directshow related calls are made on
the UI thread. According to the app's logs the thread hangs on a call to
IMediaControl::Stop().
The app has a worker thread that monitors its health. The thread keeps
track of handles, memory, and other resources. There are no leaks reported.
The usage of resources stabilizes within the first hour and then stays
constant.
I was able to hang the UI thread on my dev machine but only while running
the app in the debugger so I'm not sure if that was representative of what
happens on the production machine. I had more success in hanging the UI
thread when I issued a stop command _after_ the clip ended.
The following is what I see on the stack when the thread hangs in the
debugger:
ntdll.dll!_KiFastSystemCallRet@0()
ntdll.dll!_ZwWaitForSingleObject@12() + 0xc bytes
kernel32.dll!_WaitForSingleObjectEx@12() + 0x8b bytes
kernel32.dll!_WaitForSingleObject@8() + 0x12 bytes
quartz.dll!CVideoMixer::WaitForMixerIdle() + 0x14 bytes
quartz.dll!CVMRFilter::Stop() + 0x1222a bytes
quartz.dll!CFilterGraph::Stop() + 0x78 bytes
quartz.dll!CFGControl::CImplMediaControl::Stop() + 0x88 bytes
TestDS.exe!CDirectShowVideoGraph::Stop() Line 263 + 0x16 bytes
Could someone please let me know what could cause the IMediaControl::Stop()
to hang? It looks like the call waits for a sync object with infinite
timeout. Any way to abort that wait from another thread?
Thanks,
Bogdan
.
- Follow-Ups:
- Prev by Date: GMFBridge/Blackmagic DirectShow Graph freezes for about 3 minutes
- Next by Date: Re: What could cause IMediaControl::Stop() to hang?
- Previous by thread: GMFBridge/Blackmagic DirectShow Graph freezes for about 3 minutes
- Next by thread: Re: What could cause IMediaControl::Stop() to hang?
- Index(es):
Relevant Pages
|
Loading