Robert Shearman wrote:
Maarten Lankhorst wrote:
I'm having troubles sending a media sample over the graph, I'm wondering wether that is because of the receiving filter or my own fault.
the thing I'm trying to send is a uncompressed 24 bit image, the bitmap info header data of it is pretty much as this:
mediatype: BI_RGB24 Width: 320 Height: 240 Bitcount: 24 Size of the image in bytes: 230400 compression: BI_RGB
so my questions about it are:
- What should I do with the ALLOCATOR_PROPERTIES
props.cbAlign - do you have any alignment requirements? if not, set to 1. props.cbPrefix - do you have any private data you want to include before the sample? if not, set to 0. props.cbBuffer - maximum size of the buffer (recommended is 0x20000 or 64kb) props.cBuffers - how many samples will you be processing at once?
I allocated 4 buffers of 64kB now to hold the sample, it's probably more friendly then 1 buffer of 230kB
- What do I have to put in IMediaSample SetActualDataLength
The value corresponding to "Size of the image in bytes."
Had that, turned out it wasn't the reason I got an invalid error
- How can I fill the pointer returned by IMediaSample GetPointer so
that the sample gets accepted?
The media sample contains no format information so it shouldn't be rejected. Just memcpy the bytes.
Rob
I tried using the graph edit tool from Graph Edit, connected my outputpin to videorenderer's input pin I got this: trace:quartz:VideoRenderer_SendSampleData 0x77ca8108 0x7cfd0000 131072 trace:quartz:IPinImpl_ConnectionMediaType (0x77ca8268/0x77ca8268)->(0x77a9f8f8) trace:quartz:VideoRenderer_SendSampleData biSize = 298763094 trace:quartz:VideoRenderer_SendSampleData biWidth = -1442840129 trace:quartz:VideoRenderer_SendSampleData biHeigth = 1515803904 trace:quartz:VideoRenderer_SendSampleData biPlanes = 64268 trace:quartz:VideoRenderer_SendSampleData biBitCount = 30633 trace:quartz:VideoRenderer_SendSampleData biCompression = "X\x00\x00\x00"... trace:quartz:VideoRenderer_SendSampleData biSizeImage = 2009760832
Somehow my media format got messed up, I'll look at the source, figure out what I did wrong then return working on this happily, I bet it's the same reason msn returned E_FAIL :)
*Takes another deep look into his probably messed up code, does this mean I have to rewrite it earlier then I thought? O_O*