Here's the callstack :
0480b000()
vcam.ax!CSourceStream::DoBufferProcessingLoop() + 0xe1 bytes
vcam.ax!CSourceStream::ThreadProc() + 0x13e bytes
vcam.ax!CAMThread::InitialThreadProc() + 0x51 bytes
kernel32.dll!7c80b713()
The callstack is from this thread:
0 > 0x000015b8 Worker Thread CAMThread::InitialThreadProc 0480b000 Normal 0
disassembly code:
017D0B5B push edx
017D0B5C mov eax,dword ptr [ecx+8]
017D0B5F call eax
017D0B61 cmp esi,esp
017D0B63 call @ILT+2525(__RTC_CheckEsp) (17C49E2h)
017D0B68 cmp dword ptr [ebp-2Ch],0
017D0B6C je CSourceStream::DoBufferProcessingLoop+10Ah (17D0B8Ah)
017D0B6E mov eax,dword ptr [ebp-2Ch]
Problem exists at the line 017D0B5F call eax
This problem exists for most directshow filters ,how to fix?
I believe vcam.ax's source code is here , so probably the best option is to compile the source code locally and then attach to the process that's crashing in the debugger. Then you can put a breakpoint in the DoBufferProcessingLoop() implementation, recreate the crash, and you should be able figure out why you're crashing.
I'v used vcom.ax and encountered the same problem as yours. I solve it by following step. Add CAutoLock cAutoLock(&m_cSharedState);
on the first Line of following function:
CVCamStream::CVCamStream() //constructor
CVCamStream::~CVCamStream() //distructor
HRESULT CVCamStream::FillBuffer(IMediaSample *pms)
HRESULT CVCamStream::OnThreadCreate()
This may solve your problem.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.