Вопрос

I have a DirectShow filter written in Delphi 6 using the DSPACK component library. It is a push source video filter. The filter blocks on an event that is signaled in another thread that generates the video frames. When a frame is ready, it is written into a shared memory area that the FillBuffer() method accesses when it is unblocked. Is there a convenient DirectShow event that I can piggyback to unblock the FillBuffer() thread when the filter is being shutdown by DirectShow? If not, what is "standard practice" in this area?

Это было полезно?

Решение

Standard practice is WaitForMultipleObjects function and friends. You are waiting for one of the events that unlock your FillBiffer: availability of new video frame from external source, stop request arriving to your filter etc.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top