View Single Post
Old 5th March 2013, 21:24   #6  |  Link
LoRd_MuldeR
Software Developer
 
LoRd_MuldeR's Avatar
 
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 13,248
Quote:
Originally Posted by paradoxical View Post
Why? VfW still works just fine and is still widely used in many applications.
No, it has many flaws. And a lot of things only work, because people have been "creative" in inventing workarounds for the shortcomings of VfW.

Just think about the infamous "packed bitsream" hack

That VfW works okay with simple intra-only Codecs, like Lagarith, isn't really a "pro" argument for building your application on top of an outdated/deprecated framework. Especially with better alternatives available.

If he goes with VfW now and one day he wants to extend his application to work with more "complex" encoders (e.g. B-Frames), things either get really messy or he has to re-write his application...

Quote:
Originally Posted by paradoxical View Post
Especially if all this person wants to do is encode Lagarith with Virtualdub. If the person is on Windows there is basically no reason to not just use the VfW codec.
If one wants to encode with Lagarith in VirtualDub, then there isn't much of a choice, because VirtualDub uses VfW Codecs.

But he is about to create his own software, so it's his choice which API to use. So what is the reason to prefer the deprecated VfW over up-to-date API's?

In case he had a lot of "legacy" code that is based on VfW, things would be different. But that doesn't seem to be the case...

Quote:
Originally Posted by paradoxical View Post
Also, what exactly is difficult or error prone about it?
If the separate installation of the required VfW Codecs fails for whatever reason, or if the user (accidentally) uninstalls the required VfW Codec or if some other application installs an incompatible version of the required VfW Codec or (...), then the application will break.

Quote:
Originally Posted by paradoxical View Post
Saying you have to "make sure the codec is properly registered" is no different than with using DirectShow or MediaFoundation.
Yes, that problem is the same with DirectShow or MediaFoundation.

That's why I'd always prefer to use the encoder library (or alternatively ffmpeg/libav) directly and just deploy the library along with my program executable (or even link it statically).

Especially if my goal is to use one specific encoder, rather than giving the user the choice to select from separately installed Codecs...
__________________
Go to https://standforukraine.com/ to find legitimate Ukrainian Charities 🇺🇦✊

Last edited by LoRd_MuldeR; 6th March 2013 at 01:44.
LoRd_MuldeR is offline   Reply With Quote