Avifile is a compressed AVI file support library for x86 Linux.
Version: 0.7.43This project attempts to provide a working implementation of a few multimedia-related utilities for x86 Linux. At the time of its creation in May 2000 its primary goal was creation of video capture and recompression applications that would work with most popular AVI file format and newest data compression methods ( Indeo Video and variations of MPEG-4 for image compression and MPEG Layer-3/Windows Media Audio for sound ).
Operating System: Linux
The core idea of the project was in using Win32 dynamic-link libraries in Linux environment. However, it has become most popular because of its side product - an AVI movie player that could play DivX ;-) movies in Linux with reasonable performance and stability. Since then most of work was done in this direction.
Now it supports a wide range of codecs ( compressors/decompressors ) such as DivX ;-), Indeo Video, I263, and others, able to show subtitles and perform video output using YUV overlays when necessary support from hardware and operating system is available.
It is also able to play most files in ASF format, and current development CVS code is capable of streaming ASF media over HTTP. The project is not intended to provide 'universal' media framework for Linux, nor to do much more than what it currently does. Moreover, it's mostly a proof-of-concept work. It was the first project that introduced the idea of using Windows DLLs and very limited ( ~50 Kbytes of code ) subset of Win32 API for audio/video (de)compression in *nix environments, the idea which is already reused in several other - more general - software projects.
It is the first project that extends that idea to the usage of DirectShow audio/video decoders for the same purpose ( by emulating DirectShow/DCOM environment from decoder point of view ). It is the only project that includes a player for files in Advanced Streaming Format. All these features are essential for the complete modern multimedia environment, and hopefully will become available in near future in such perspective architectures as Arts ( KDE ) or GStreamer ( Gnome ).
Aside from reusing the ideas, the project is used as is in a few media players for Linux, such as XMMS, XTheater or LAMP. The code of this project is distributed under General Public License version 2. Basically it means that you may do anything you want with this code, but if you want to redistribute it or any its derivatives, you have to do it under GPL and you have to make the source code available. For more details visit the site of Free Software Foundation.
Legal issues covering Win32 DLLs which accompany source code are a bit more complicated. These DLLs are freely available in the Internet ( exact URLs to most of them are available on this site ). For those DLLs which come with the license, their copyright owners allow using them at no cost if you do not disassemble, reverse-engineer them, etc. In some cases ( Indeo Video ) they explicitly allow to include these files into other projects under mentioned restrictions. Many DLLs are available without having to accept any license agreement at all ( DivX ;-), all DirectShow codecs ), what obviously means that any kind of activity with them is acceptable.
There is no warranty about the quality of this project. It is written mostly by one former university student with background in the area of Applied Physics in his spare time. I cannot even guarantee that it compiles properly on your system, because I don't have resources to test it on all existing distributions of Linux and flavors of Unix. I try to resolve the issues that I'm informed about.