View Full Version : Differences between VFW and DS??
mac1929
4th September 2002, 19:26
I guess if somebody could help me to understand the differences between a VFW codec and Direct Show Filers. Maybe this question is not directly related to Xvid, but actually my doubt comes from it because there are two subproyects in XviD's cvs, one for each.
AFAIK vfw is a windows technology created to plug video codecs to create and play multimedia files. ACM codecs are also based on a similar technology, but instead for video, for audio. Also, it is said that this technology is now old and has been replaced by DS.
So which are the differences between VFW and DS? Is DS capable of creating video and audio streams? Why very popular codecs as lame are distributed in ACM form and not in DS?
I've seen cvs is up, congratulations to XviD team. I hope the Sigmas's issue gets solved soon and we can forget them.
-h
4th September 2002, 20:04
Someone else can probably better describe dshow's capabilities.
Basically xvidcore is a library of functionality for encoding/decoding MPEG-4 video. You send it data and a description of what to do to it, it sends some data back.
Now we want to actually use it - so, we create "wrappers" for that functionality which people can actually use - vfw is a wrapper for the Video For Windows system that lets compliant programs compress and decompress video streams with a set of standard functions - ICCompressBegin, ICCompressEnd, ICDecompress, etc., and XviD's vfw code maps those standard requests into something that xvidcore will understand.
The dshow tree is just another interface which maps a different set of standard functions to xvidcore, this time mapping requests for video decompression via the DirectShow API. DirectShow can also handle compression, but no one ever got around to coding it. Some programs prefer DirectShow for decompression.
I suppose dshow may have some advantages, as you could build a filter chain with XviD at the end, and some video processing filters in the middle, but that's really the same as creating an Avisynth script and compressing the output through vfw via VirtualDub. Also, as DirectShow is a newer API than VFW, it has more functionality and is better suited to codecs like MPEG which sometimes want frames delivered out-of-order or delayed.
-h
mac1929
4th September 2002, 22:00
So in some way VFW and DS are different ways to achieve the same goal. And DS is not used for compressing mainly because it's newer and so not fully supported or because itīs more complex (typical of MS when releasing a new technology)
Ok, I got it, thanks -h!
milan
5th September 2002, 10:11
I thought about creating encoding XviD or libavcodec DirectShow filter, but I'm not very sure if it would be useful. I don't know about other program than graphedit, which could be used to compress video with such filter.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.