video >> A filter development question--------EOS problem

by icystone » Sun, 21 May 2006 10:04:32 GMT

At present,I finished a vedio decompresser filter, which is based on
CSource and CBaseInputPin, the input pin receives sample and directly
put it in a buffer owned by the filter, the output pin has a work
thread that retrieves data from the buffer , decompresses it and
delives it downstream. The problem is when stop the graph or the stream
runs over, the pause( ) function get called first, and stop( ) should
second, but after pause( ) get called, the graph got blocked and stop()
cannot get called. After 10 second, a dialog box pops up, writing the
graph cannot commplete pause in ten seconds, after clicking the cancel
button the stop( ) get called and graph stops.
I cannot solve this problem ,hope someone can help ! Thank you in
advance!


video >> A filter development question--------EOS problem

by SmartSentry » Sun, 21 May 2006 22:11:41 GMT


Hi
This might seem like a glib answer and you may have already done this, but
it's worth checking that you've re-read each sub-section in the docs
entitled 'Data Flow For Filter Developers' and 'Threads and Critical
Sections'. There are some important points that need to be observed
relating to EOS Notification, Flushing and Delivering EOS downstream. It's
mostly there in the docs, but it takes some absorbing.
Regards
Mike