簡體   English   中英

停止DirectShow Source過濾器時Flash崩潰

[英]Flash crashes when stopping directshow source filter

這是調用棧:

0480b000()
vcam.ax!CSourceStream :: DoBufferProcessingLoop()+ 0xe1個字節
vcam.ax!CSourceStream :: ThreadProc()+ 0x13e字節
vcam.ax!CAMThread :: InitialThreadProc()+ 0x51字節
kernel32.dll!7c80b713()

調用堆棧來自以下線程:

0    >    0x000015b8    Worker Thread    CAMThread::InitialThreadProc    0480b000    Normal    0

拆卸代碼:

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]

017D0B5F call eax行存在問題

大多數DirectShow過濾器存在此問題,如何解決?

我相信vcam.ax的源代碼在這里 ,所以最好的選擇可能是在本地編譯源代碼,然后附加到在調試器中崩潰的進程。 然后,您可以在DoBufferProcessingLoop()實現中放置一個斷點,重新創建崩潰,並且您應該能夠弄清楚崩潰的原因。

我使用過vcom.ax,遇到了與您相同的問題。 我按照以下步驟解決。 添加CAutoLock cAutoLock(&m_cSharedState); 在以下功能的第一行:

  • CVCamStream::CVCamStream() //constructor
  • CVCamStream::~CVCamStream() //distructor
  • HRESULT CVCamStream::FillBuffer(IMediaSample *pms)
  • HRESULT CVCamStream::OnThreadCreate()

這樣可以解決您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM