I am writing a VfW capture driver DLL(user-mode). But I am facing
some problems in giving the data back to the client from the driver. I
am using client as WME.
I have followed the steps given in the NT4.0 DDK also the sample.
The driver loading, opening, closing, adding buffer's are happening
properly. The client is adding a new buffer after filling and giving old
buffer(which it has given before) back to the client by doing a callback
from the DLL. I am setting the dwFlag header as lpVideoHdr->dwFlags |=
Actually the driver should convert the H.261 data to uncompressed
video samples. But in order to ensure that driver is giving data
properly to the client, I want to give some static image. I am filling
the lpData member like the following.
memset(lpVideoHdr->lpData, (UCHAR)255, lpVideoHdr->dwBufferLength);
lpVideoHdr->dwBytesUsed = lpVideoHdr->dwBufferLength;
And by using DriverCallback function I am giving the buffer to client.
But client is displaying the data as "black" always. When I click
encoding it is creating a new file but without any data.
I am very much new to video programming. I am doing something wrong.
Please anybody can advice/help to correct me. I have only done audio
related applications which all are standard exe's.
Also is there anyway, I can use DirectX / VCM functions to convert
H.261 video data to RGB/YUV format? or Do I have to go for some open
It would really help me if anybody can advice or give me some hints
for the above.