Pushing up data through the stream in quartz
Robert Shearman
rob at codeweavers.com
Sun Apr 10 19:37:02 CDT 2005
Maarten Lankhorst wrote:
> I'm trying to figure out how to do this, but I can't find anything on
> the subject.
> From what I can tell, you have to make a media sample, then use
> outputpin_sendsample to deliver it,
> so, how do I fill up a media sample with a single frame?
A sample *is* a single frame, so there is no special case. For code that
does this, please see dlls/quartz/acmwrapper.c.
The general pattern is:
1. Get a blank available sample (OutputPin_GetDeliveryBuffer).
2. Set the size of the data represented by the sample
(IMediaSample_SetActualDataLength)
3. Get a pointer to the sample buffer (IMediaSample_GetPointer)
4. Fill with data (memcpy).
5. Send the sample to the downstream filter (OutputPin_SendSample).
> For now, just with NULL data would be sufficient..
Replace the above mentioned memcpy call with a memset instead then.
Rob
More information about the wine-devel
mailing list