Re: Source is finished, but I need to push more samples downstream
- From: "Chris P." <msdn@xxxxxxxxxxxx>
- Date: Wed, 7 Jan 2009 11:28:43 -0500
On Wed, 7 Jan 2009 03:58:07 -0800 (PST), acolor0429@xxxxxxxxx wrote:
My transform filter has its own buffer which keeps several samples.
Once the source filter is finished(no more input data for
tranformfilter), how to send all my buffer to downstream to complete
this stream?
I read document and find a way is in BeginFlush() and call Receive(),
force to push data to downstream, is it correct?
Your input pin will get notified of end of stream, you need to queue this
and not forward the end of stream notification until you flush all the
samples that you are holding. Because the call to IPin::EndOfStream() is
serialized with Receive(), you should be able to deliver the remainder of
your samples in the caller context using the output pin allocator. Create
an override implementation of CTransformFilter::EndOfStream() and put your
code there. After delivering your samples call
CTransformFilter::EndOfStream() to send the end of stream message down.
--
http://www.chrisnet.net/code.htm
[MS MVP for DirectShow / MediaFoundation]
.
- References:
- Source is finished, but I need to push more samples downstream
- From: acolor0429
- Source is finished, but I need to push more samples downstream
- Prev by Date: Re: IMediaSeeking wrapper for capture source
- Next by Date: Re: How to SetPointer for downstream's sample?
- Previous by thread: Source is finished, but I need to push more samples downstream
- Next by thread: How to display fixed size text on video.
- Index(es):
Relevant Pages
|