AfterDawn: Tech news

Vidomi violates GPL by using VirtualDub's code in their product

Written by Petteri Pyyny @ 11 May 2001 5:02

Ok, I know - old news, but I still assume that some of you don't read VirtualDub's news section daily :-)
So, the thing is that VirtualDub's (excellent open-source GPL video processing software) author (Avery Lee) is very angry about company called Vidomi. These guys are using pieces of VirtualDub's code in their propietary software (if you use GPL code, your program has to be GPL as well).

I don't want to write same stuff twice, so I just copy & paste this from Avery Lee:

5/6/2001: Why VirtualDub 2.0 might not be released under the GPL

This is going to be a bitter rant.

For a month now I have been trying to get the makers of Vidomi to remove VirtualDub-derived source code from their distribution. Vidomi (build .346 as of this writing) is MPEG-to-AVI converter that uses code licensed under the GNU General Public License from DVD2AVI and FlasKMPEG to decode MPEG-2 video. These modules are kept in DLLs and are automatically and invisibly loaded by Vidomi at startup. The FlaskMPEG module, ncodefls.dll, exports 24-bit to 32-bit RGB conversion and resizing capabilities that are directly derived from VirtualDub code. Vidomi has placed the source code for these derived modules on their website but the main application is proprietary, closed source, and this is what I have a problem with.

This is a list of the exported functions from ncodefls.dll. The VirtualDub-derived functions are in red. The DIBconvert function even has exactly the same name as the function in VirtualDub and FlasKMPEG, except for the "flask" part.

ordinal hint RVA name

1 0 00001870 flaskCrop
2 1 00001900 flaskDIBconvert_24_to_32
3 2 000016C0 flaskDeinterlace
4 3 000016B0 flaskInit
5 4 00001770 flaskResize
6 5 000016D0 flaskStartDeinterlacer
7 6 00001700 flaskStartResizer
8 7 000016F0 flaskStopDeinterlacer
9 8 00001840 flaskStopResizer

Dynamic linking does not save you from the source code requirements of the GPL. The requirement of the GPL is that your application must be reasonably independent from the GPLed code, with no mention of static or dynamic linkage. I do not consider an application that automatically installs the GPL modules, each of which exports specific, individual functions from the original program, and automatically and invisibly loads the DLLs on startup to provide major functionality to be "independent" of the the GPLed code. The company has taken various token methods to try to ward me off, such as providing token useless capability when the DLLs are not available (AVI input with no resizing), and putting disclaimers on their web site. None satisfy me as long as Vidomi still advertises VirtualDub functionality in its UI and on its front web page, and places the recommended "with GPL" download in big, highlighted type, away from the tiny download in the corner that doesn't have it.

I don't consider it independent as long as it still needs my code to do what it is supposed to do.

I repeatedly said that I wanted it out. They claim they're compliant under the GPL and that, in any case, they are trying to address my concerns. Which of course means that they still haven't taken the fscking code out. The with-GPL installer is still there, Vidomi still advertises GPL functionality as its own in its interface (and on the web page unless you notice the asterisk), and STILL automatically and invisibly loads the DLL on startup. And although it has not yet reached this point, I am confident that when their patience runs out, they will have their lawyer claim that they are compliant with the GPL, and my concerns be damned.

I do not have the time, patience, or desire to deal with this crap. I spent months tuning, researching, and optimizing VirtualDub's resize filter. I released it, with VirtualDub, so that it could be used freely, studied, and integrated into other people who were willing to release their programs as GPL and extend the same freedoms to their code and its users. I did not release it so that it could be used in proprietary programs to save companies time and money -- if I had wanted to do so I would have released VirtualDub code under the LGPL, like lame_enc.dll is.

It is a very big disincentive for me to release source code to my applications if people are going to rip me off, especially companies. And I know when it happens. I write large blocks of code in cryptic assembly language and I know the operating signatures. Recompiling the module doesn't hide it.

I occasionally rant about people not distributing source code to VirtualDub when they distribute the binary, but that is small potatoes compared to this; those people generally either did not know that they had to do so or did not receive the source code and are attempting to find it. Those people are not violating copyright by taking my work and sending it out as part of their bundle. There are a lot of people who unintentionally violate the GPL and these should not be punished. Those who are willing to attempt to circumvent the GPL and explicitly try to make use of GPLed code without giving anything back to the community, as is the intent of the GPL, should not be tolerated lightly.

Does this mean VirtualDub 2.0 won't be released as GPL software? Possibly so. This is the second such time something like this has happened and I did not spend three years of unpaid development to have my code end up in the proprietary application of someone who was too lazy to write their own 24-bit to 32-bit RGB converter. I love writing code for others to use and study freely, and I would deeply regret the effects such a decision, but I expect to get paid for working on closed-source software.

Please do not use or endorse Vidomi. To do so is to support their effort and encourage more such violations.

I should note here that Vidomi, is, as most companies are, composed of individuals who do not necessarily have full control over the direction of the whole and who should not be personally villified. The individuals I have been conversing with by email have been quite friendly in their denial of their company's wrongdoing.

Related links:
VirtualDub v1.4d w/ hotfix 1
VirtualDub v1.4d source code

Previous Next  
Comments have been disabled for this article.

News archive