Valiant
3rd June 2003, 15:59
Hi
(VFW = Video For Windows)
(DIB = Device Independent Bitmap)
We were using VFW to get lots of Bitmaps per second from our Webcam to our application (memory) (Video Conferencing application).
But it's slow, maybe our implementation is slow, maybe the VFW wrapper by "Ken Varn" is slow or maybe it's VFW which is the problem.
Now to my question:
Is DirectShow (with WDM Webcam) faster than VFW for this purpose? Is it generally faster?
Could DirectShow be faster but only with an intelligent implementation / FilterGraph / SampleGrabber?
I read about the benefits of DirectShow over the obsolete VFW, but I couldn't find a performance comparison or even a qualitative statement whether VFW or DirectShow / WDM is faster.
I'm re-coding the application to use DirectShow instead of the VFW wrapper.
After learning DirectShow, COM and coding nearly for a week, I've already everything running but the picture grabbing (to be finished today, hopefully).
Now I'm wondering if this DirectShow thing was waste-of-time...
Thanks in advance - Andy
Additional Info if you're interested:
As a student project we're writing a Video Conferencing Client-Server application.
The Server has a preview window just showing the actual stream from the webcam and it captures 10 to 20 frames / second. For each frame it does some lossy (YUV 420, Motion Estimation, DCT+Quantization) and lossless (Huffmann or Lempel-Ziv Coding) compression.
Until now, we used a small VFW wrapper by "Ken Varn".
But this wrapper needs to long to get a DIB and copy it into our memory space (50 - 170 milli seconds).
My first try to get it faster was an additional thread which gets the DIBs asynchronously. But surprisingly this wouldn't help much. Well, actually it's not a surprise, as it still needs these 50-170 ms.
1. We need more FPS than 10-15
2. We need to get them reliable, the range between 50 and 170ms is to big.
(VFW = Video For Windows)
(DIB = Device Independent Bitmap)
We were using VFW to get lots of Bitmaps per second from our Webcam to our application (memory) (Video Conferencing application).
But it's slow, maybe our implementation is slow, maybe the VFW wrapper by "Ken Varn" is slow or maybe it's VFW which is the problem.
Now to my question:
Is DirectShow (with WDM Webcam) faster than VFW for this purpose? Is it generally faster?
Could DirectShow be faster but only with an intelligent implementation / FilterGraph / SampleGrabber?
I read about the benefits of DirectShow over the obsolete VFW, but I couldn't find a performance comparison or even a qualitative statement whether VFW or DirectShow / WDM is faster.
I'm re-coding the application to use DirectShow instead of the VFW wrapper.
After learning DirectShow, COM and coding nearly for a week, I've already everything running but the picture grabbing (to be finished today, hopefully).
Now I'm wondering if this DirectShow thing was waste-of-time...
Thanks in advance - Andy
Additional Info if you're interested:
As a student project we're writing a Video Conferencing Client-Server application.
The Server has a preview window just showing the actual stream from the webcam and it captures 10 to 20 frames / second. For each frame it does some lossy (YUV 420, Motion Estimation, DCT+Quantization) and lossless (Huffmann or Lempel-Ziv Coding) compression.
Until now, we used a small VFW wrapper by "Ken Varn".
But this wrapper needs to long to get a DIB and copy it into our memory space (50 - 170 milli seconds).
My first try to get it faster was an additional thread which gets the DIBs asynchronously. But surprisingly this wouldn't help much. Well, actually it's not a surprise, as it still needs these 50-170 ms.
1. We need more FPS than 10-15
2. We need to get them reliable, the range between 50 and 170ms is to big.