I have a DirectDraw filter class that is derived from CBaseVideoRenderer which has been working well for me. It processes video for me from multiple web-cams at 30 fps at 640x480 RGB resolution. I override 3 functions:
HRESULT CheckMediaType(const CMediaType *pmt );
Here I check to see if it is RGB format and that it is a video stream. I return S_OK when I find both - so the graph is built I take it.
HRESULT SetMediaType(const CMediaType *pmt );
Here I reject everything that is not of type D3DFMT_X8R8G8B8 so I get 24bit RGB
HRESULT DoRenderSample(IMediaSample *pMediaSample);
This is the callback function where I process my video frames.
Now here is the problem. My webcam defaulted to 640x480 at 30fps on the first connection. A new board I have is connecting at 160x120 at 15fps. How can I set/reject anything but 30fps at 640x480???
Thanks a million for any ideas,
AT
HRESULT CheckMediaType(const CMediaType *pmt );
Here I check to see if it is RGB format and that it is a video stream. I return S_OK when I find both - so the graph is built I take it.
HRESULT SetMediaType(const CMediaType *pmt );
Here I reject everything that is not of type D3DFMT_X8R8G8B8 so I get 24bit RGB
HRESULT DoRenderSample(IMediaSample *pMediaSample);
This is the callback function where I process my video frames.
Now here is the problem. My webcam defaulted to 640x480 at 30fps on the first connection. A new board I have is connecting at 160x120 at 15fps. How can I set/reject anything but 30fps at 640x480???
Thanks a million for any ideas,
AT