<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.videolan.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Quovodis</id>
	<title>VideoLAN Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.videolan.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Quovodis"/>
	<link rel="alternate" type="text/html" href="https://wiki.videolan.org/Special:Contributions/Quovodis/"/>
	<updated>2026-11-04T15:55:06Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Win32CompileCygwinOld&amp;diff=9696</id>
		<title>Win32CompileCygwinOld</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Win32CompileCygwinOld&amp;diff=9696"/>
		<updated>2007-08-15T14:08:34Z</updated>

		<summary type="html">&lt;p&gt;Quovodis: /* GDB (Gnu Debugger) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cygwin environment for Windows from http://developers.videolan.org/vlc/cygwin-compile.txt&lt;br /&gt;
&lt;br /&gt;
Originally based on &amp;quot;Win32 Cygwin Environment&amp;quot; Rev. B (20041003) by Mark Moriarty and &amp;quot;Win32 Compile HOWTO&amp;quot; (20050513) by Gildas Bazin and Olivier Teulière.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This is a guide for Windows users with a step-by-step instruction to download, install and configure the following components on your system:&lt;br /&gt;
&lt;br /&gt;
* [http://www.cygwin.com &#039;&#039;&#039;Cygwin&#039;&#039;&#039;]:  Linux-like environment for Windows used for compilation of the VLC source code&lt;br /&gt;
&lt;br /&gt;
* [http://download.videolan.org/pub/videolan/testing/win32/ &#039;&#039;&#039;Win32 contrib package&#039;&#039;&#039;]:  Precompiled library package (with DTS support).&lt;br /&gt;
&lt;br /&gt;
Optionally updated libraries:&lt;br /&gt;
&lt;br /&gt;
* [http://ffmpeg.mplayerhq.hu &#039;&#039;&#039;FFmpeg&#039;&#039;&#039;] (with AMR support).&lt;br /&gt;
&lt;br /&gt;
* [http://developers.videolan.org/x264.html &#039;&#039;&#039;x264&#039;&#039;&#039;] used for encoding H.264/AVC video.&lt;br /&gt;
&lt;br /&gt;
* [http://www.live555.com &#039;&#039;&#039;live555&#039;&#039;&#039;] (formerly known as live.com) for RTP/RTCP/RTSP/SIP multimedia streaming.&lt;br /&gt;
&lt;br /&gt;
The best approach to start getting comfortable with building VLC from source is to use the precompiled library package and not yet the optionally updated ones.&lt;br /&gt;
&lt;br /&gt;
Start off by creating a download folder on your hard drive where you can put all the installation files:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads (example)&lt;br /&gt;
&lt;br /&gt;
For further reference, the assumption is made that the local user will be &#039;Administrator&#039;.&lt;br /&gt;
&lt;br /&gt;
=Cygwin=&lt;br /&gt;
&lt;br /&gt;
More info about Cygwin can be found at http://www.cygwin.com or http://sourceware.org/cygwin&lt;br /&gt;
&lt;br /&gt;
Download the latest [http://www.cygwin.com/cygwin/setup.exe Cygwin setup] (it&#039;s at the install or update now icon on the site) and save it in your download location:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\cygwin (example)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Selecting Cygwin packages to install==&lt;br /&gt;
&lt;br /&gt;
Run the setup program with the following options:&lt;br /&gt;
&lt;br /&gt;
Installation type : Install from Internet (default)&lt;br /&gt;
&lt;br /&gt;
Root directory : C:\cygwin (default)&lt;br /&gt;
&lt;br /&gt;
Local Package directory : C:\Downloads\cygwin (your download location)&lt;br /&gt;
&lt;br /&gt;
Internet Connection : Direct Connection (preferred, if it fails try another)&lt;br /&gt;
&lt;br /&gt;
Download Site : Choose a download site closest to you (FTP preferred)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At the &amp;quot;Select Packages&amp;quot; section of the installation process you can select packages by clicking the button with the rotating 2 arrows. (This is under the &amp;quot;New&amp;quot; section). It shows &amp;quot;Skip&amp;quot; next to the button if the package isn&#039;t selected yet.&lt;br /&gt;
&lt;br /&gt;
Clicking the button a few times will rotate through the possible package versions including &amp;quot;Skip&amp;quot; (meaning do not install or remove if installed) and &amp;quot;Keep&amp;quot; (meaning keep using the current installed version). If a package was already installed it will also show the &amp;quot;Current&amp;quot; version just to the left of it.&lt;br /&gt;
&lt;br /&gt;
Select the following packages (some others will automatically be selected as well):&lt;br /&gt;
&lt;br /&gt;
 Archive&lt;br /&gt;
   5.52-2       unzip (recommended: goes hand in hand with zip utility)&lt;br /&gt;
   2.23-2       zip (required: to make self contained zip packages)&lt;br /&gt;
&lt;br /&gt;
 Devel&lt;br /&gt;
   2.1          automake (at least 1.5 is required)&lt;br /&gt;
   20060817-1   binutils (autoselected)&lt;br /&gt;
   1.11.22-1    cvs (required for autopoint)&lt;br /&gt;
   3.4.4-3      gcc-core (autoselected)&lt;br /&gt;
   3.4.4-3      gcc-g++&lt;br /&gt;
   20040810-1   gcc-mingw&lt;br /&gt;
   20050522-1   gcc-mingw-core (autoselected)&lt;br /&gt;
   20050522-1   gcc-mingw-g++ (autoselected)&lt;br /&gt;
   &#039;&#039;&#039;20041228-3   gdb&#039;&#039;&#039; (optional: for debugging purposes)&lt;br /&gt;
   0.15-1       gettext (autoselected)&lt;br /&gt;
   0.15-1       gettext-devel&lt;br /&gt;
   1.5.23a-2    libtool1.5&lt;br /&gt;
   3.81-1       make&lt;br /&gt;
   3.11-1       mingw-runtime (autoselected)&lt;br /&gt;
   0.98.39-1    nasm (optional: for compiling x264 encoder)	&lt;br /&gt;
   0.2.31-1     patchutils (optional: for patching source files with .diff files)&lt;br /&gt;
   0.21-1       pkgconfig (recommended: otherwise ./configure will complain about accuracy)&lt;br /&gt;
   1.4.2-1      subversion&lt;br /&gt;
&lt;br /&gt;
 Lib&lt;br /&gt;
   ?.?          libgcrypt&lt;br /&gt;
&lt;br /&gt;
 Web&lt;br /&gt;
   7.15.4-1     curl (optional: for building extras/contrib)&lt;br /&gt;
   1.10.2-2     wget (optional: for building extras/contrib)&lt;br /&gt;
&lt;br /&gt;
The package version numbers happen to be the representation of what was the most current version available at the time this article was written &#039;&#039;&#039;with the exception of gdb which has to be downgraded from at least 20060706-2 to 20041228-3 for proper usage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you run into problems of missing packages during install (particularly gettext: cyggettextsrc-0-14-1.dll not found) then rerun the setup program and try selecting another Download Site from the mirror list.&lt;br /&gt;
&lt;br /&gt;
NOTE: Whenever new packages are installed or updated through the Cygwin installer, make sure not to update the packages by keeping the old versions (using the &amp;quot;Keep&amp;quot; option).&lt;br /&gt;
&lt;br /&gt;
==Installing older GCC 3.3 version==&lt;br /&gt;
&lt;br /&gt;
The gcc version used for compilation should match the version specified in the &amp;quot;contrib&amp;quot; package, at present gcc-3.4.5-only.&lt;br /&gt;
&lt;br /&gt;
So the preferred version to use is GCC 3.4 but for historical reasons this section descibes what version to use together with an older gcc-3.3.1-only &amp;quot;contrib&amp;quot; package. The 3.3.1 version is not available in Cygwin but 3.3.3-3 (still) is.&lt;br /&gt;
&lt;br /&gt;
The only compatibility issue with using GCC 3.4 and the precompiled 3.3.1 &amp;quot;contrib&amp;quot; package is that it doesn&#039;t support the compiling of the matroska container .mkv so that leaves 2 options; use gcc 3.3.3-3 with a 3.3.1-only &amp;quot;contrib&amp;quot; or gcc 3.4 (or newer) but disable matroska support.&lt;br /&gt;
&lt;br /&gt;
The second option requires you to add the following line to the configure options:&lt;br /&gt;
&lt;br /&gt;
 --disable-mkv&lt;br /&gt;
&lt;br /&gt;
If you use the older gcc-g++ and gcc-core versions you have to change the gcc-mingw-core and gcc-mingw-g++ back to the older versions as well.&lt;br /&gt;
&lt;br /&gt;
Select the following package versions instead:&lt;br /&gt;
&lt;br /&gt;
 Devel&lt;br /&gt;
   &#039;&#039;&#039;3.3.3-3&#039;&#039;&#039;      gcc-core&lt;br /&gt;
   &#039;&#039;&#039;3.3.3-3&#039;&#039;&#039;      gcc-g++&lt;br /&gt;
   20040810-1   gcc-mingw&lt;br /&gt;
   &#039;&#039;&#039;20040810-1&#039;&#039;&#039;   gcc-mingw-core&lt;br /&gt;
   &#039;&#039;&#039;20040810-1&#039;&#039;&#039;   gcc-mingw-g++&lt;br /&gt;
&lt;br /&gt;
NOTE: The gcc-3.4.5-only &amp;quot;contrib&amp;quot; package should compile just fine with GCC 3.3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Cygwin environment==&lt;br /&gt;
&lt;br /&gt;
Start Cygwin from the icon on your desktop. If it runs for the first time it will automatically create a home\&amp;quot;username&amp;quot; folder in the Cygwin environment; user being the currently logged on Windows user. Assuming this is the &#039;Administrator&#039; user it will create the following folder:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator (example)&lt;br /&gt;
&lt;br /&gt;
NOTE: On your desktop, you can rightclick the Cygwin icon and (in the Options field of the Cygwin Properties) set the Command history Buffer size to as large as possible: 999. This setting will make it possible to scroll back further in the Cygwin environment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=VLC source code=&lt;br /&gt;
&lt;br /&gt;
The very latest VLC source code can be obtained through a tool called SVN (Subversion). The Cygwin package we&#039;re about to install comes with an internal subversion component. Using this one is the preferred method.&lt;br /&gt;
&lt;br /&gt;
Another way of obtaining source code is by downloading a daily code &amp;quot;snapshot&amp;quot; from the following location:&lt;br /&gt;
&lt;br /&gt;
http://nightlies.videolan.org/build/source&lt;br /&gt;
&lt;br /&gt;
Download the latest snapshot:&lt;br /&gt;
&lt;br /&gt;
 vlc-snapshot-20070112.tar.gz (example)&lt;br /&gt;
&lt;br /&gt;
and save it into a subfolder in your download location:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\VLC\src (example)&lt;br /&gt;
&lt;br /&gt;
Check if the downloaded file has not been renamed by Internet Explorer in your download folder to something with the extension .tar.tar and if so then simple rename the files back to .tar.gz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Adding libraries to the source code=&lt;br /&gt;
&lt;br /&gt;
VLC depends on other libraries (code) to provide some features like AC3 audio or MPEG-4 video encoding/decoding etc.&lt;br /&gt;
&lt;br /&gt;
Depending on your needs you will have to install and compile some or all of these external libraries. Most of them can be found here (source code):&lt;br /&gt;
&lt;br /&gt;
http://download.videolan.org/pub/testing/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Win32 &amp;quot;contrib&amp;quot; package==&lt;br /&gt;
&lt;br /&gt;
A package with most of these libraries already compiled so it&#039;s actually really easy to compile a full-featured version of vlc can be found here:&lt;br /&gt;
&lt;br /&gt;
http://download.videolan.org/pub/testing/win32/&lt;br /&gt;
&lt;br /&gt;
Download the latest version of a &amp;quot;contrib&amp;quot; package for win32:&lt;br /&gt;
&lt;br /&gt;
 contrib-20060730-win32-bin-gcc-3.4.5-only.tar.bz2 (example)&lt;br /&gt;
&lt;br /&gt;
It&#039;s a good idea to check the INSTALL.Win32 file in the VLC source directory for the appropriate contrib download file.&lt;br /&gt;
&lt;br /&gt;
Save it into a subfolder in your download location:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\VLC\contrib (example)&lt;br /&gt;
&lt;br /&gt;
Check if the file has not been renamed by Internet Explorer in your download folder to something with the extension .tar.tar and if so then simply rename the file back to .tar.bz2&lt;br /&gt;
&lt;br /&gt;
Also remember the &amp;quot;gcc-3.4.5&amp;quot; part in the &amp;quot;contrib&amp;quot; package filename since it relates to the GCC version that needs to be installed in Cygwin lateron!&lt;br /&gt;
&lt;br /&gt;
==Win32 &amp;quot;contrib&amp;quot; packages for older GCC versions==&lt;br /&gt;
&lt;br /&gt;
For historical reasons older versions of the &amp;quot;contrib&amp;quot; package are provided at the following location:&lt;br /&gt;
&lt;br /&gt;
http://download.videolan.org/pub/testing/win32/contrib-old-gcc-3.3-only/&lt;br /&gt;
&lt;br /&gt;
Download the latest version of a &amp;quot;contrib&amp;quot; package for win32&lt;br /&gt;
&lt;br /&gt;
 contrib-20051213-win32-bin-gcc3.3.1-only.tar.bz2 (example)&lt;br /&gt;
&lt;br /&gt;
and save it into a subfolder in your download location:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\VLC\contrib (example)&lt;br /&gt;
&lt;br /&gt;
NOTE: gcc3.3.1-only in the filename means it was (obviously) intended for compilation with GCC 3.3 only. The latest gcc-3.4.5-only &amp;quot;contrib&amp;quot; packages should compile just fine with GCC 3.3 so it&#039;s preferred to always use those.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Adding additional or updated libraries to the source (optional)==&lt;br /&gt;
&lt;br /&gt;
Updated libraries for FFmpeg and x264 are available through SVN (which is discussed in a later stage of this guide).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===live555 &amp;quot;snapshot&amp;quot; (optional)===&lt;br /&gt;
&lt;br /&gt;
More info about live555 can be found at:&lt;br /&gt;
&lt;br /&gt;
http://www.live555.com&lt;br /&gt;
&lt;br /&gt;
The project source code is available here:&lt;br /&gt;
&lt;br /&gt;
http://live555.com/liveMedia/public/&lt;br /&gt;
&lt;br /&gt;
Download the latest snapshot:&lt;br /&gt;
&lt;br /&gt;
 live.2007.01.11.tar.gz (example)&lt;br /&gt;
&lt;br /&gt;
NOTE: live555-latest.tar.gz is also the latest version but keeping the date in the filename makes it easier to reference.&lt;br /&gt;
&lt;br /&gt;
and save it into a subfolder in your download location:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\VLC\src (example)&lt;br /&gt;
&lt;br /&gt;
Check if the downloaded file has not been renamed by Internet Explorer in your download folder to something with the extension .tar.tar and if so then simple rename the files back to .tar.gz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Getting the latest sources=&lt;br /&gt;
&lt;br /&gt;
In order to have the latest source code you have to download this using SVN.&lt;br /&gt;
&lt;br /&gt;
Create a new folder at your download/install location:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\VLC\scripts (example)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SVN update script for VLC==&lt;br /&gt;
&lt;br /&gt;
Create a new text document with the following line:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn://svn.videolan.org/vlc/trunk vlc-trunk&lt;br /&gt;
&lt;br /&gt;
Save as filename in your &amp;quot;scripts&amp;quot; folder at your download/install location with the option &amp;quot;All Files&amp;quot; and not &amp;quot;Text Documents&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 update-vlc.sh (example)&lt;br /&gt;
&lt;br /&gt;
This command will download a complete svn trunk.&lt;br /&gt;
&lt;br /&gt;
Copy the script file into your Cygwin &amp;quot;home directory&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell: &lt;br /&gt;
&lt;br /&gt;
 dos2unix update-vlc.sh&lt;br /&gt;
&lt;br /&gt;
This is for converting the &#039;line endings&#039; made by Windows/DOS (in which the text document was created) to UNIX style.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SVN update scripts for additional libraries (optional)==&lt;br /&gt;
&lt;br /&gt;
Updating source code using SVN for additional libraries such as x264 or FFmpeg works the same way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SVN update scripts for x264 (optional)===&lt;br /&gt;
&lt;br /&gt;
Create a new text document with the following line:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn://svn.videolan.org/x264/trunk x264-trunk&lt;br /&gt;
&lt;br /&gt;
Save as filename in your &amp;quot;scripts&amp;quot; folder at your download/install location:&lt;br /&gt;
&lt;br /&gt;
 update-x264.sh&lt;br /&gt;
&lt;br /&gt;
Copy the script file into your Cygwin &amp;quot;home directory&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell:&lt;br /&gt;
&lt;br /&gt;
 dos2unix update-x264.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SVN update script for FFmpeg (optional)===&lt;br /&gt;
&lt;br /&gt;
Create a new text document with the following line:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg-trunk&lt;br /&gt;
&lt;br /&gt;
Save as filename in your &amp;quot;scripts&amp;quot; folder at your download/install location:&lt;br /&gt;
&lt;br /&gt;
 update-ffmpeg.sh&lt;br /&gt;
&lt;br /&gt;
Copy the script file into your Cygwin &amp;quot;home directory&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell: &lt;br /&gt;
&lt;br /&gt;
 dos2unix update-ffmpeg.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Checking out&amp;quot; the latest source code from SVN==&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell: &lt;br /&gt;
&lt;br /&gt;
 ./update-vlc.sh&lt;br /&gt;
&lt;br /&gt;
This will download the current &amp;quot;subversion trunk&amp;quot; (latest code) into your home directory into the directory specified in your shell script:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator\vlc-trunk (example)&lt;br /&gt;
&lt;br /&gt;
At the end of the command it will show something like &amp;quot;Checked out revision 18561&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The vlc-trunk folder will get over-written/updated the next time you run the command. If you want to save a so called &amp;quot;snapshot&amp;quot; of the existing vlc-trunk, rename or copy the current directory into something desired (like vlc-trunk-20070112).&lt;br /&gt;
&lt;br /&gt;
NOTE: Updating the source code for additional libraries such as x264, FFmpeg etc. is done by running their corresponding update scripts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Extracting the source from a &amp;quot;snapshot&amp;quot;==&lt;br /&gt;
&lt;br /&gt;
If you are not using SVN to obtain the latest source code but are using a daily &amp;quot;snapshot&amp;quot; then copy that source package from your download/install location to the Cygwin home directory:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell:&lt;br /&gt;
&lt;br /&gt;
 tar xvf vlc-snapshot-20070112.tar.gz (example)&lt;br /&gt;
&lt;br /&gt;
Replace with your version of the source package.&lt;br /&gt;
&lt;br /&gt;
This will extract the contents of the file into a subfolder within your Cygwin environment with the naming convention something like:&lt;br /&gt;
&lt;br /&gt;
 vlc-0.9.0-svn (example)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Installing the Win32 &amp;quot;contrib&amp;quot; package in Cygwin=&lt;br /&gt;
&lt;br /&gt;
First the additional libraries have to be &amp;quot;installed&amp;quot; in Cygwin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Extracting the Win32 &amp;quot;contrib&amp;quot; package==&lt;br /&gt;
&lt;br /&gt;
Copy the &amp;quot;contrib&amp;quot; package from your download/install location to the home directory:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell:&lt;br /&gt;
&lt;br /&gt;
 tar xjvf contrib-20061202-win32-bin-gcc-3.4.5-only.tar.bz2 -C / (example)&lt;br /&gt;
&lt;br /&gt;
Replace with your version of the &amp;quot;contrib&amp;quot; file and DON&#039;T FORGET THE / (slash)&lt;br /&gt;
at the end.&lt;br /&gt;
&lt;br /&gt;
This will extract the contents of the file into usr/win32 folder within your Cygwin environment.&lt;br /&gt;
&lt;br /&gt;
NOTE: Make sure to DELETE your old version instead of extracting a new version on top of it.&lt;br /&gt;
&lt;br /&gt;
==Keeping the Win32 &amp;quot;contrib&amp;quot; package up-to-date==&lt;br /&gt;
&lt;br /&gt;
For maintenance purposes periodically check:&lt;br /&gt;
&lt;br /&gt;
http://download.videolan.org/pub/testing/win32/&lt;br /&gt;
&lt;br /&gt;
to see if a newer &amp;quot;contrib&amp;quot; is available. If that is the case you should DELETE the existing directory structure which is for the precompiled &amp;quot;contrib&amp;quot; package:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\usr\win32 (example)&lt;br /&gt;
&lt;br /&gt;
Download the newer file and follow the installation instructions the same as before so you will end up with the most up-to-date version.&lt;br /&gt;
&lt;br /&gt;
NOTE: Make sure to DELETE your old version instead of extracting a new version on top of it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Configure scripts=&lt;br /&gt;
&lt;br /&gt;
In order to make our lives just a bit easier the following section describes what commandline options should be used for compiling and those commands will then be put into a &amp;quot;script&amp;quot; that can be executed (rather than having to copy and paste all the time).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configure script for compiling VLC==&lt;br /&gt;
&lt;br /&gt;
Create a new text document with the following lines:&lt;br /&gt;
&lt;br /&gt;
  CONTRIB_TREE=/usr/win32&lt;br /&gt;
  PATH=${CONTRIB_TREE}/bin:$PATH \&lt;br /&gt;
  ./bootstrap &amp;amp;&amp;amp; \&lt;br /&gt;
  CPPFLAGS=&amp;quot;-I${CONTRIB_TREE}/include -I${CONTRIB_TREE}/include/ebml&amp;quot; \&lt;br /&gt;
  LDFLAGS=-L${CONTRIB_TREE}/lib \&lt;br /&gt;
  PKG_CONFIG_LIBDIR=${CONTRIB_TREE}/lib/pkgconfig \&lt;br /&gt;
  CC=&amp;quot;gcc -mno-cygwin&amp;quot; CXX=&amp;quot;g++ -mno-cygwin&amp;quot; \&lt;br /&gt;
  ./configure \&lt;br /&gt;
      --host=i686-pc-mingw32 \&lt;br /&gt;
      --enable-sdl --with-sdl-config-path=${CONTRIB_TREE}/bin --disable-gtk \&lt;br /&gt;
      --enable-nls \&lt;br /&gt;
      --enable-ffmpeg --with-ffmpeg-mp3lame --with-ffmpeg-faac \&lt;br /&gt;
      --with-ffmpeg-zlib --enable-faad --enable-flac --enable-theora \&lt;br /&gt;
      --with-wx-config-path=${CONTRIB_TREE}/bin \&lt;br /&gt;
      --with-freetype-config-path=${CONTRIB_TREE}/bin \&lt;br /&gt;
      --with-fribidi-config-path=${CONTRIB_TREE}/bin \&lt;br /&gt;
      --enable-live555 --with-live555-tree=${CONTRIB_TREE}/live.com \&lt;br /&gt;
      --enable-caca --with-caca-config-path=${CONTRIB_TREE}/bin \&lt;br /&gt;
      --with-xml2-config-path=${CONTRIB_TREE}/bin \&lt;br /&gt;
      --with-dvdnav-config-path=${CONTRIB_TREE}/bin \&lt;br /&gt;
      --disable-cddax --disable-vcdx --enable-goom \&lt;br /&gt;
      --enable-twolame --enable-dvdread \&lt;br /&gt;
      --disable-gnomevfs \&lt;br /&gt;
      --enable-dts \&lt;br /&gt;
      --disable-optimizations \&lt;br /&gt;
      --enable-debug \&lt;br /&gt;
&lt;br /&gt;
NOTE: The following option is added for DTS Coherent Acoustics streams decoding support. The latest &amp;quot;contrib&amp;quot; package should already contain libdca (formerly known as libdts) needed to compile this but at present it&#039;s disabled by default:&lt;br /&gt;
&lt;br /&gt;
 --enable-dts&lt;br /&gt;
&lt;br /&gt;
NOTE: For VLC 0.9.0, replace the previous option by:&lt;br /&gt;
&lt;br /&gt;
 --enable-dca&lt;br /&gt;
&lt;br /&gt;
NOTE: The following options are added for debug purposes and makes the final package a bit larger but the advantage is it&#039;s easier to debug in case of crash reports:&lt;br /&gt;
&lt;br /&gt;
 --disable-optimizations&lt;br /&gt;
 --enable-debug&lt;br /&gt;
&lt;br /&gt;
If you want to report a crash bug to the VLC team, it is necessary that you provide a stack backtrace. Unfortunately, Windows automatic crash reporter cannot generate such a backtrace as debug symbols used by GCC compiler aren&#039;t understood by Windows, therefore we suggest that you install Dr. MinGW (http://jrfonseca.dyndns.org/projects/gnu-win32/software/drmingw/) which will extend Windows Just-In-Time Debugger and provide the necessary debug information.&lt;br /&gt;
&lt;br /&gt;
NOTE: The following options is needed for QT4 support:&lt;br /&gt;
&lt;br /&gt;
 --enable-qt4&lt;br /&gt;
&lt;br /&gt;
As of version 0.9.0 VLC will include the QT interface. More information can be found about QT here: http://www.trolltech.com&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Win32 contrib package&amp;quot; at present only includes the linux equivalents of uic, moc and roc executables which are required for building this interface.&lt;br /&gt;
&lt;br /&gt;
The linues executables have to be &#039;&#039;&#039;deleted&#039;&#039;&#039; from the contrib folder:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\usr\win32\bin\moc (example)&lt;br /&gt;
 C:\cygwin\usr\win32\bin\rcc (example)&lt;br /&gt;
 C:\cygwin\usr\win32\bin\uic (example)&lt;br /&gt;
&lt;br /&gt;
The moc, rcc and uic.exe from the [http://www.trolltech.com/developer/downloads/qt/windows Qt/Windows Open Source Edition] (these can be found in the bin folder after installation) have to be placed in the contrib folder:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\usr\win32\bin\moc.exe (example)&lt;br /&gt;
 C:\cygwin\usr\win32\bin\rcc.exe (example)&lt;br /&gt;
 C:\cygwin\usr\win32\bin\uic.exe (example)&lt;br /&gt;
 &lt;br /&gt;
Save as filename in your &amp;quot;scripts&amp;quot; folder at your download/install location:&lt;br /&gt;
&lt;br /&gt;
 configure-vlc.sh&lt;br /&gt;
&lt;br /&gt;
NOTE: Save using &amp;quot;All files&amp;quot; and not &amp;quot;Text files&amp;quot; otherwise Windows might append the extension .txt&lt;br /&gt;
&lt;br /&gt;
Copy the file into your home directory:&lt;br /&gt;
 &lt;br /&gt;
 C:\cygwin\home\Administrator&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell: &lt;br /&gt;
&lt;br /&gt;
 dos2unix configure-vlc.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===POSIX emulation layer===&lt;br /&gt;
&lt;br /&gt;
VLC can be built with or without the so called POSIX emulation layer. Without is the default and is usually better (and with hasn&#039;t been tested for quite some time). If you do want to use the emulation layer, then just leave out the line with the following options:&lt;br /&gt;
&lt;br /&gt;
 CC=&amp;quot;gcc -mno-cygwin&amp;quot; CXX=&amp;quot;g++ -mno-cygwin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===VLC optional settings===&lt;br /&gt;
&lt;br /&gt;
The following option should be used when compiling using the GCC 3.4 version with older &amp;quot;contrib&amp;quot; gcc-3.3.1-only:&lt;br /&gt;
&lt;br /&gt;
 --disable-mkv&lt;br /&gt;
&lt;br /&gt;
==Configure scripts for compiling additional libraries (optional)==&lt;br /&gt;
&lt;br /&gt;
The following section is optional. The &amp;quot;contrib&amp;quot; package contains precompiled libraries but it is possible to update some of those libraries to the most current versions such as x264 and FFmpeg.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===FFmpeg with AMR support (optional)===&lt;br /&gt;
&lt;br /&gt;
The AMR (Adaptive Multi Rate) codec is designed to encode and decode speech with acceptable quality for transmission over relatively low bandwidth channels with minimal latency, typically used in mobile networks (3GP) or voice message applications.&lt;br /&gt;
&lt;br /&gt;
The AMR codec is usually referred to as:&lt;br /&gt;
&lt;br /&gt;
 Narrow Band (AMR-NB, fourcc samr) for low quality&lt;br /&gt;
 Wide Band (AMR-WB, fourcc samw) for high quality&lt;br /&gt;
&lt;br /&gt;
The sources for AMR are not compatible with the GPL (General Public License). AMR support is disabled by default.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Getting the AMR reference codecs (optional)====&lt;br /&gt;
&lt;br /&gt;
The AMR reference codecs can be found on the 3GPP site http://www.3gpp.org at the following download location for zipped source code packages:&lt;br /&gt;
&lt;br /&gt;
http://www.3gpp.org/ftp/Specs/2004-03/Rel-5/26_series/&lt;br /&gt;
&lt;br /&gt;
Download the following 3 packages to a subfolder in your download/install location:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\VLC\src (example)&lt;br /&gt;
&lt;br /&gt;
1.  AMR - latest 26073 package:&lt;br /&gt;
&lt;br /&gt;
http://www.3gpp.org/ftp/Specs/2004-03/Rel-5/26_series/26073-530.zip          (example)&lt;br /&gt;
&lt;br /&gt;
3GPP TS 26.073 V5.3.0 (2004-03) ANSI-C code for the Adaptive Multi Rate (AMR) speech codec (Release 5)&lt;br /&gt;
&lt;br /&gt;
2.  AMR_FLOAT - latest 26104 package:&lt;br /&gt;
&lt;br /&gt;
http://www.3gpp.org/ftp/Specs/2004-03/Rel-5/26_series/26104-540.zip          (example)&lt;br /&gt;
&lt;br /&gt;
3GPP TS 26.104 V 5.4.0 (2004-03) ANSI-C code for the Floating-point Adaptive Multi Rate (AMR) speech codec (Release 5)&lt;br /&gt;
&lt;br /&gt;
3.  AMRWB_FLOAT - latest 26204 package:&lt;br /&gt;
&lt;br /&gt;
http://www.3gpp.org/ftp/Specs/2004-03/Rel-5/26_series/26204-520.zip          (example)&lt;br /&gt;
&lt;br /&gt;
3GPP TS 26.204 V5.2.0 (2003-09) ANSI-C code for Floating-point Adaptive Multi Rate Wideband (AMR-WB) speech codec (Release 5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Extracting the AMR reference codecs (optional)====&lt;br /&gt;
&lt;br /&gt;
The following AMR reference packages should now be in your download/install location:&lt;br /&gt;
&lt;br /&gt;
 26073-530.zip (example)&lt;br /&gt;
 26104-540.zip (example)&lt;br /&gt;
 26204-520.zip (example)&lt;br /&gt;
&lt;br /&gt;
Using your favourite unzipper (Windows internal extraction wizard, WinZIP, WinRAR etc.) extract the zip files in the into the current folder (Windows wizard would use &amp;quot;Extract All&amp;quot; and WinZIP or WinRAR would use &amp;quot;Extract to &#039;foldername&#039; which is the same as the .zip package name&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
This will create the following folders:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\VLC\src\26073-530         &lt;br /&gt;
 C:\Downloads\VLC\src\26104-540         &lt;br /&gt;
 C:\Downloads\VLC\src\26204-520         &lt;br /&gt;
&lt;br /&gt;
Within those folders another .zip package exists. Again unpack those zip files into the current folder:&lt;br /&gt;
&lt;br /&gt;
 26073-530_ANSI_C_source_code      &lt;br /&gt;
 26104-540_ANSI_C_source_code      &lt;br /&gt;
 26204-520_ANSI-C_source_code      &lt;br /&gt;
&lt;br /&gt;
Now each unpacked source code package has an individual folder named &amp;quot;c-code&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Rename the c-code subfolders within each package to amr, amr_float and amrwb_float:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\VLC\src\26073-530\26073-530_ANSI_C_source_code\c-code to amr                  &lt;br /&gt;
 C:\Downloads\VLC\src\26104-540\26104-540_ANSI_C_source_code\c-code to amr_float            &lt;br /&gt;
 C:\Downloads\VLC\src\26204-520\26204-520_ANSI-C_source_code\c-code to amrwb_float          &lt;br /&gt;
&lt;br /&gt;
NOTE: the 530, 540 to 520 order looks a bit confusing but those are actually just version numbers and the folders are shown in the correct alphabetical order.&lt;br /&gt;
&lt;br /&gt;
Copy each of the the following folders (including content, so just select the whole folders itself):&lt;br /&gt;
&lt;br /&gt;
 amr                &lt;br /&gt;
 amr_float         &lt;br /&gt;
 amrwb_float       &lt;br /&gt;
&lt;br /&gt;
to the Cygwin home directory in the libavcodec subfolder of where the FFmpeg package resides:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator\ffmpeg-trunk\libavcodec (example)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===FFmpeg configure script with &amp;quot;contrib&amp;quot; package (optional)===&lt;br /&gt;
&lt;br /&gt;
NOTE: This compile script assumes you are also using the same FFmpeg version as is used in the &amp;quot;contrib&amp;quot; package (this is why the cflags and ldflags also point to the win32 folder where the &amp;quot;contrib&amp;quot; package was extracted).&lt;br /&gt;
&lt;br /&gt;
Create a new text document with the following lines:&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-mingw32 --enable-memalign-hack \&lt;br /&gt;
     --extra-cflags=-I/usr/win32/include \&lt;br /&gt;
     --extra-ldflags=-L/usr/win32/lib \&lt;br /&gt;
     --prefix=/usr/win32 \&lt;br /&gt;
     --cc=&amp;quot;gcc -mno-cygwin&amp;quot; \&lt;br /&gt;
    --enable-faac --enable-mp3lame --enable-pp --enable-gpl --log \&lt;br /&gt;
&lt;br /&gt;
NOTE: For AMR encoding/decoding support also add the following options:&lt;br /&gt;
&lt;br /&gt;
 --enable-amr_nb --enable-amr_wb&lt;br /&gt;
&lt;br /&gt;
NOTE: VLC uses the x264 lib directly and not through ffmpeg so there is no need to add --enable-x264&lt;br /&gt;
&lt;br /&gt;
Save as filename in your &amp;quot;scripts&amp;quot; folder at your download/install location:&lt;br /&gt;
&lt;br /&gt;
 configure-ffmpeg.sh (example)&lt;br /&gt;
&lt;br /&gt;
NOTE: Save using &amp;quot;All files&amp;quot; and not &amp;quot;Text files&amp;quot; otherwise Windows might append the extension .txt&lt;br /&gt;
&lt;br /&gt;
Copy the file into your home directory:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator &lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell: &lt;br /&gt;
&lt;br /&gt;
 dos2unix configure-ffmpeg.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===FFmpeg configure script for FFmpeg &amp;quot;stand-alone&amp;quot; (optional)===&lt;br /&gt;
&lt;br /&gt;
This section is only if FFmpeg compiling is required as a stand-alone package and not in comination with the precompiled &amp;quot;contrib&amp;quot; package.&lt;br /&gt;
&lt;br /&gt;
In case of failure to compile VLC with different settings (added/updated libraries to the &amp;quot;contrib&amp;quot;) it is advisable to test if FFmpeg does compile OK just in &amp;quot;stand-alone&amp;quot; mode.&lt;br /&gt;
&lt;br /&gt;
Create a new text document at the download location with following lines:&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-mingw32 --enable-memalign-hack \&lt;br /&gt;
     --cc=&amp;quot;gcc -mno-cygwin&amp;quot; \&lt;br /&gt;
     --enable-pp --enable-gpl --log \&lt;br /&gt;
&lt;br /&gt;
NOTE: When including libraries the following options should be added/changed, pointing to the appropriate folder where does libraries are located (for VLC &amp;quot;contrib&amp;quot; that would be /usr/win32 but in other situations it might be the default /usr/local):&lt;br /&gt;
&lt;br /&gt;
    --extra-cflags=-I/usr/local/include \&lt;br /&gt;
    --extra-ldflags=-L/usr/local/lib \&lt;br /&gt;
    --prefix=/usr/local \&lt;br /&gt;
&lt;br /&gt;
Save as filename in your &amp;quot;scripts&amp;quot; folder at your download/install location:&lt;br /&gt;
&lt;br /&gt;
 configure-ffmpeg-svn.sh (example)&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell:&lt;br /&gt;
&lt;br /&gt;
 dos2unix configure-ffmpeg.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==x264 configure script (optional)==&lt;br /&gt;
&lt;br /&gt;
Create a new text document with the following lines:&lt;br /&gt;
&lt;br /&gt;
 ./configure \&lt;br /&gt;
    --prefix=/usr/win32 \&lt;br /&gt;
&lt;br /&gt;
NOTE: for debugging purposes you can add the following option:&lt;br /&gt;
&lt;br /&gt;
 --enable-debug&lt;br /&gt;
&lt;br /&gt;
Save as filename in your &amp;quot;scripts&amp;quot; folder at your download/install location:&lt;br /&gt;
&lt;br /&gt;
 configure-x264.sh&lt;br /&gt;
&lt;br /&gt;
NOTE: Save using &amp;quot;All files&amp;quot; and not &amp;quot;Text files&amp;quot; otherwise Windows might append the extension .txt.&lt;br /&gt;
&lt;br /&gt;
Copy the file into your home directory:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell: &lt;br /&gt;
&lt;br /&gt;
 dos2unix configure-x264.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Compiling source code=&lt;br /&gt;
&lt;br /&gt;
It&#039;s time to start Cygwin again...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional libraries==&lt;br /&gt;
&lt;br /&gt;
If any updated or additional libraries are used they need to be compiled first. Since some of these are used indirectly through FFmpeg, FFmpeg should be compiled last.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Compiling x264 (optional)===&lt;br /&gt;
&lt;br /&gt;
This section is only required for x264 compiling where you want to compile x264 yourself in order to use the latest version.&lt;br /&gt;
&lt;br /&gt;
Change to the appropriate x264 folder&lt;br /&gt;
&lt;br /&gt;
 cd x264-trunk (example)&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
If the make proceeded without errors you will have compiled a new library file:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator\x264-trunk\libx264.a (example)&lt;br /&gt;
&lt;br /&gt;
Copy this file into the Cygwin usr/win32 folder:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\usr\win32\lib (example)&lt;br /&gt;
&lt;br /&gt;
Also take the following file .h file:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator\x264-trunk\x264.h (example)&lt;br /&gt;
&lt;br /&gt;
Copy this file into the usr/win32/include folder:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\usr\win32\include (example)&lt;br /&gt;
&lt;br /&gt;
NOTE: This will overwrite the x264.h and libx264.a from the precompiled &amp;quot;contrib&amp;quot; package!&lt;br /&gt;
&lt;br /&gt;
===live555 (optional)===&lt;br /&gt;
&lt;br /&gt;
This section is only required if you want to compile the latest version of live555.&lt;br /&gt;
&lt;br /&gt;
Copy the live555 project packagee from your download/install location to the home directory:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell:&lt;br /&gt;
&lt;br /&gt;
 tar xvf live.2006.05.17.tar.gz (example)&lt;br /&gt;
&lt;br /&gt;
Replace with your version of the source package.&lt;br /&gt;
&lt;br /&gt;
This will extract the contents of the file into a subfolder within your Cygwin environment with the naming convention something like:&lt;br /&gt;
&lt;br /&gt;
 live (example)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Compiling FFmpeg (optional)===&lt;br /&gt;
&lt;br /&gt;
This section is only required for FFmpeg compiling.&lt;br /&gt;
&lt;br /&gt;
Change to the appropriate FFmpeg folder&lt;br /&gt;
&lt;br /&gt;
 cd ffmpeg-trunk (example)&lt;br /&gt;
&lt;br /&gt;
 make clean&lt;br /&gt;
&lt;br /&gt;
 make distclean&lt;br /&gt;
&lt;br /&gt;
(This will haved remove everything except code related stuff, VLC uses a &amp;quot;toolbox&amp;quot; script&lt;br /&gt;
which can clean a bit more).&lt;br /&gt;
&lt;br /&gt;
 ../configure-ffmpeg.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Preparations for AMR support (optional)====&lt;br /&gt;
&lt;br /&gt;
If you included the AMR reference codec sources in FFmpeg you should see that AMR-NB and WB &amp;quot;float support&amp;quot; should be working:&lt;br /&gt;
&lt;br /&gt;
 AMR-NB float support yes&lt;br /&gt;
 AMR-NB fixed support no&lt;br /&gt;
 AMR-WB float support yes&lt;br /&gt;
 AMR-WB IF2 support no&lt;br /&gt;
 network support      no&lt;br /&gt;
 License: GPL&lt;br /&gt;
&lt;br /&gt;
 AMR WB FLOAT NOTICE ! Make sure you have downloaded TS26.204&lt;br /&gt;
 V5.1.0 from http://www.3gpp.org/ftp/Specs/archive/26_series/26.204/26204-510.zip and extracted the source to libavcodec/amrwb_float&lt;br /&gt;
&lt;br /&gt;
 AMR NB FLOAT NOTICE ! Make sure you have downloaded TS26.104 REL-5 V5.1.0 from&lt;br /&gt;
 http://www.3gpp.org/ftp/Specs/archive/26_series/26.104/26104-510.zip and extracted the source to libavcodec/amr_float&lt;br /&gt;
 If you try this on alpha, you may need to change Word32 to int in amr/typedef.h&lt;br /&gt;
&lt;br /&gt;
NOTE: These warnings/notices can be ignored since we are using more recent versions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Building FFmpeg (optional)====&lt;br /&gt;
&lt;br /&gt;
First clean up any leftovers from a previous compile using the following commands:&lt;br /&gt;
&lt;br /&gt;
 make clean&lt;br /&gt;
&lt;br /&gt;
 make distclean&lt;br /&gt;
&lt;br /&gt;
(This will haved remove everything except code related stuff, VLC uses a &amp;quot;toolbox&amp;quot; script&lt;br /&gt;
which can clean a bit more).&lt;br /&gt;
&lt;br /&gt;
Now build FFmpeg with the following command:&lt;br /&gt;
&lt;br /&gt;
 make       &lt;br /&gt;
&lt;br /&gt;
If the make proceeded without errors you will have compiled two new &amp;quot;library&amp;quot; files:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator\ffmpeg-trunk\libavcodec\libavcodec.a (example)&lt;br /&gt;
 C:\cygwin\home\Administrator\ffmpeg-trunk\libavformat\libavformat.a (example)&lt;br /&gt;
&lt;br /&gt;
To copy the appropriate libs and header files to the (extracted) contrib&lt;br /&gt;
folder use:&lt;br /&gt;
&lt;br /&gt;
 make install-libs install-headers&lt;br /&gt;
&lt;br /&gt;
For historical reasons the &amp;quot;old&amp;quot; method is still described here as well:&lt;br /&gt;
&lt;br /&gt;
Copy the library files (with the .a extension) into the Cygwin usr/win32 folder:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\usr\win32\lib (example)&lt;br /&gt;
&lt;br /&gt;
NOTE: This will overwrite libavcodec.a and libavformat.a from the precompiled&lt;br /&gt;
&amp;quot;contrib&amp;quot; package!&lt;br /&gt;
&lt;br /&gt;
For backup reasons you can first copy or rename the original files in the &amp;quot;contrib&amp;quot; package (so you won&#039;t have to reinstall the complete contrib package but can simply copy these again)&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\usr\win32\lib\libavcodec.a to libavcodec.a.org&lt;br /&gt;
 C:\cygwin\usr\win32\lib\libavformat.a to libavformat.a.org&lt;br /&gt;
&lt;br /&gt;
In older versions of ffmpeg the libraries had other names:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator\ffmpeg-20050624\libavcodec\avcodec.lib (example)&lt;br /&gt;
 C:\cygwin\home\Administrator\ffmpeg-20050624\libavformat\avformat.lib (example)&lt;br /&gt;
&lt;br /&gt;
Rename those files (in Windows Explorer):&lt;br /&gt;
&lt;br /&gt;
 avcodec.lib to libavcodec.a&lt;br /&gt;
 avformat.lib to libavformat.a&lt;br /&gt;
&lt;br /&gt;
Then copy those library files into the Cygwin usr/win32 folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Compiling live555 (optional)===&lt;br /&gt;
&lt;br /&gt;
How to configure and build the code on a Linux enviroment is explained on the following live555 page:&lt;br /&gt;
&lt;br /&gt;
http://www.live555.com/liveMedia/#config-unix&lt;br /&gt;
&lt;br /&gt;
Some options need to be changed/added to the config.cygwin file in the live folder so open this file with a text-editor.&lt;br /&gt;
&lt;br /&gt;
Add the -Wno-deprecated option:&lt;br /&gt;
&lt;br /&gt;
 CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall -DBSD=1 -Wno-deprecated&lt;br /&gt;
&lt;br /&gt;
Save the file under its current name config.cygwin&lt;br /&gt;
&lt;br /&gt;
Enter the following commands in your Cygwin shell:&lt;br /&gt;
&lt;br /&gt;
 cd live&lt;br /&gt;
&lt;br /&gt;
The following command is for converting any DOS/Windows &amp;quot;line endings&amp;quot; to UNIX style:&lt;br /&gt;
 &lt;br /&gt;
 dos2unix config.cygwin&lt;br /&gt;
&lt;br /&gt;
 make clean&lt;br /&gt;
&lt;br /&gt;
 ./genMakefiles cygwin&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
TODO: Fix live555 compilation. It still fails with the following errors:&lt;br /&gt;
&lt;br /&gt;
 GroupsockHelper.cpp:477: error: aggregate `ip_mreq_source imr&#039; has incomplete type and cannot be defined&lt;br /&gt;
 GroupsockHelper.cpp:482: error: invalid application of `sizeof&#039; to incomplete type `ip_mreq_source&#039;&lt;br /&gt;
 GroupsockHelper.cpp: In function `Boolean socketLeaveGroupSSM(UsageEnvironment&amp;amp;, int,  netAddressBits, netAddressBits)&#039;:&lt;br /&gt;
 GroupsockHelper.cpp:495: error: aggregate `ip_mreq_source imr&#039; has incomplete type and cannot be defined&lt;br /&gt;
 GroupsockHelper.cpp:500: error: invalid application of `sizeof&#039; to incomplete type  `ip_mreq_source&#039;&lt;br /&gt;
 make[1]: *** [GroupsockHelper.o] Error 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Compiling VLC==&lt;br /&gt;
&lt;br /&gt;
Enter the following commands in your Cygwin shell:&lt;br /&gt;
&lt;br /&gt;
 cd vlc-trunk&lt;br /&gt;
&lt;br /&gt;
(you can check with the pwd command to see in which folder you are and with just the cd&lt;br /&gt;
command without any additional parameters you can change back to your home directory).&lt;br /&gt;
&lt;br /&gt;
NOTE: The following line is optional, only use that if you have problems compiling.&lt;br /&gt;
&lt;br /&gt;
 ./toolbox --distclean&lt;br /&gt;
&lt;br /&gt;
(This will have removed everything except code related stuff).&lt;br /&gt;
&lt;br /&gt;
 ../configure-vlc.sh&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Cross your fingers...&lt;br /&gt;
&lt;br /&gt;
NOTE: ./ means you run an application/script from the &amp;quot;current folder&amp;quot; (which is vlc-trunk) and ../ points to &amp;quot;one directory up&amp;quot; (which is where configure-vlc.sh is).&lt;br /&gt;
&lt;br /&gt;
==Creating self contained packages==&lt;br /&gt;
&lt;br /&gt;
Once the compilation is done, you can either run VLC directly from the source tree or you can build self-contained VLC packages with the following &amp;quot;make&amp;quot; commands:&lt;br /&gt;
&lt;br /&gt;
 make package-win32-base&lt;br /&gt;
&lt;br /&gt;
(This will create a subdirectory named vlc-x.x.x with all the binaries &amp;quot;stripped&amp;quot; without any debugging symbols).&lt;br /&gt;
&lt;br /&gt;
 make package-win32-zip&lt;br /&gt;
&lt;br /&gt;
(Same as above but will package the directory in a zip file).&lt;br /&gt;
&lt;br /&gt;
 make package-win32&lt;br /&gt;
&lt;br /&gt;
(Same as above but will also create an auto-installer package. You will need to have NSIS installed in its default location for this to work).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Advanced usage=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Updating Cygwin package versions==&lt;br /&gt;
&lt;br /&gt;
If you need to update or install additional packages you can just run the Cygwin setup.exe from your download location:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\cygwin\setup.exe          (example)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Using older GCC and MINGW version===&lt;br /&gt;
&lt;br /&gt;
You should be aware that Cygwin automatically selects the latest versions for gcc-g++ and gcc-mingw so if you are using older versions of those (like 3.3.3-3 and the accompanied 20040810-1 packages for mingw) and wish to continue to use them you need to &#039;&#039;&#039;change&#039;&#039;&#039; those versions to &#039;&#039;&#039;Keep&#039;&#039;&#039; for &#039;&#039;&#039;every time you use the update process&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
NOTE: You can click on the &amp;quot;View&amp;quot; button a few times until you see &amp;quot;Partial&amp;quot; next to it. This will give you an overview of some &amp;quot;Current&amp;quot; packages that will be updated to &amp;quot;New&amp;quot; versions.&lt;br /&gt;
&lt;br /&gt;
select the View button until it reaches: Partial&lt;br /&gt;
&lt;br /&gt;
 Devel&lt;br /&gt;
   3.4.4-3      gcc-core         -&amp;gt; change version to &#039;&#039;&#039;Keep&#039;&#039;&#039;&lt;br /&gt;
   3.4.4-3      gcc-g++          -&amp;gt; change version to &#039;&#039;&#039;Keep&#039;&#039;&#039;&lt;br /&gt;
   20050522-1   gcc-mingw-core   -&amp;gt; change version to &#039;&#039;&#039;Keep&#039;&#039;&#039;&lt;br /&gt;
   20050522-1   gcc-mingw-g++    -&amp;gt; change version to &#039;&#039;&#039;Keep&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Selecting the 3.4.4-3 version automatically changes the gcc-mingw-core and gcc-mingw-g++ to the 20050522-1 (or newer) versions as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Downgrading Cygwin GCC packages===&lt;br /&gt;
&lt;br /&gt;
If your Cygwin gcc versions are already the latest and you wish to downgrade to gcc 3.3.3-3 then it&#039;s not possible to downgrade the gcc-core/g++ and the mingw packages all at the same time, it has to be done in two steps.&lt;br /&gt;
&lt;br /&gt;
select the View button until it reaches: Up To Date&lt;br /&gt;
&lt;br /&gt;
 Devel&lt;br /&gt;
   3.4.4-3      gcc-core   -&amp;gt; change version to &#039;&#039;&#039;3.3.3-3&#039;&#039;&#039;&lt;br /&gt;
   3.4.4-3      gcc-g++    -&amp;gt; change version to &#039;&#039;&#039;3.3.3-3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Install, OK.&lt;br /&gt;
&lt;br /&gt;
Restart the Cygwin update process.&lt;br /&gt;
&lt;br /&gt;
Select the View button until it reaches: Partial&lt;br /&gt;
&lt;br /&gt;
 Devel&lt;br /&gt;
   3.4.4-3      gcc-core   -&amp;gt; change version to &#039;&#039;&#039;Keep&#039;&#039;&#039;&lt;br /&gt;
   3.4.4-3      gcc-g++    -&amp;gt; change version to &#039;&#039;&#039;Keep&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Select the View button until it reaches: Up To Date&lt;br /&gt;
&lt;br /&gt;
 Devel&lt;br /&gt;
   20050522-1   gcc-mingw-core   -&amp;gt; change version to &#039;&#039;&#039;20040810-1&#039;&#039;&#039; &lt;br /&gt;
   20050522-1   gcc-mingw-g++    -&amp;gt; change version to &#039;&#039;&#039;20040810-1&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Install, OK.&lt;br /&gt;
&lt;br /&gt;
Again, for any new update process remember to change back those versions!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDB (Gnu Debugger)==&lt;br /&gt;
&lt;br /&gt;
This section requires that you installed the gdb (Gnu Debugger) in Cygwin.&lt;br /&gt;
&lt;br /&gt;
This is a typical example of creating a crashlog:&lt;br /&gt;
&lt;br /&gt;
 cd vlc-trunk&lt;br /&gt;
&lt;br /&gt;
 gdb --args vlc.exe --fast-mutex --reset-config --reset-plugins-cache&lt;br /&gt;
&lt;br /&gt;
NOTE: vlc-0.9.0 uses libtool for building sources, if you want to debug from the source tree, you should type the following command instead:&lt;br /&gt;
&lt;br /&gt;
 libtool -mode=execute gdb --args vlc --reset-config --reset-plugins-cache&lt;br /&gt;
&lt;br /&gt;
In the debugger mode run the program and make sure you reset the preferences!&lt;br /&gt;
&lt;br /&gt;
 (gdb) run &lt;br /&gt;
&lt;br /&gt;
NOTE: the (gdb) is just a prompt which means you are in the debugger mode, please note that &#039;&#039;--fast-mutex&#039;&#039; option is no longer supported in vlc-0.9.0&lt;br /&gt;
&lt;br /&gt;
It will now take a lot longer than usual for VLC to start :)&lt;br /&gt;
&lt;br /&gt;
Now operate VLC as you would normally do. As soon as a crash issue occurs&lt;br /&gt;
you&#039;ll notice a line like this:&lt;br /&gt;
&lt;br /&gt;
 Program received signal SIGSEGV, Segmentation fault.&lt;br /&gt;
 0x0041394c in playlist_ItemGetById (p_playlist=0x19ec4f8, i_id=29)&lt;br /&gt;
     at src/playlist/item-ext.c:459&lt;br /&gt;
 ---Type &amp;lt;return&amp;gt; to continue, or q &amp;lt;return&amp;gt; to quit---&lt;br /&gt;
 459             i = i_bottom + ( i_top - i_bottom ) / 2;&lt;br /&gt;
&lt;br /&gt;
Now you can do a &amp;quot;backtrace&amp;quot; by using the bt command:&lt;br /&gt;
&lt;br /&gt;
 (gdb) bt&lt;br /&gt;
&lt;br /&gt;
And output similar to this will be created:&lt;br /&gt;
&lt;br /&gt;
 #0  0x0041394c in playlist_ItemGetById (p_playlist=0x19ec4f8, i_id=29) &lt;br /&gt;
     at src/playlist/item-ext.c:459&lt;br /&gt;
 #1  0x0b26bbf7 in wxvlc::Playlist::CountItems (this=0x1822e288, root=&lt;br /&gt;
       {m_pItem = 0x29fef8}) at playlist.cpp:695&lt;br /&gt;
 #2  0x0b26bc83 in wxvlc::Playlist::CountItems (this=0x1822e288, root=&lt;br /&gt;
       {m_pItem = 0x29e8b0}) at playlist.cpp:689&lt;br /&gt;
 #3  0x0b26bc83 in wxvlc::Playlist::CountItems (this=0x1822e288, root=&lt;br /&gt;
       {m_pItem = 0x29a818}) at playlist.cpp:689&lt;br /&gt;
 #4  0x0b26bc83 in wxvlc::Playlist::CountItems (this=0x1822e288, root=&lt;br /&gt;
       {m_pItem = 0x299718}) at playlist.cpp:689&lt;br /&gt;
 #5  0x0b26bc83 in wxvlc::Playlist::CountItems (this=0x1822e288, root=&lt;br /&gt;
       {m_pItem = 0xffff0000}) at playlist.cpp:689&lt;br /&gt;
 #6  0x0b26bf49 in wxvlc::Playlist::AppendItem (this=0x1822e288,&lt;br /&gt;
     event=@0x1827afd0) at playlist.cpp:564&lt;br /&gt;
 #7  0x0b2757fc in wxvlc::Playlist::OnPlaylistEvent (this=0x1822e288,&lt;br /&gt;
     event=@0x1827afd0) at playlist.cpp:1438&lt;br /&gt;
 #8  0x0b3771b8 in wxEvtHandler::ProcessEventIfMatches ()&lt;br /&gt;
     at /usr/win32/include/wx-2.6/wx/event.h:2183&lt;br /&gt;
 #9  0x0b376a1c in wxEventHashTable::HandleEvent ()&lt;br /&gt;
     at /usr/win32/include/wx-2.6/wx/event.h:2183&lt;br /&gt;
 #10 0x0b37730d in wxEvtHandler::ProcessEvent ()&lt;br /&gt;
     at /usr/win32/include/wx-2.6/wx/event.h:2183&lt;br /&gt;
 #11 0x0b37711b in wxEvtHandler::ProcessPendingEvents ()&lt;br /&gt;
     at /usr/win32/include/wx-2.6/wx/event.h:2183&lt;br /&gt;
 ---Type &amp;lt;return&amp;gt; to continue, or q &amp;lt;return&amp;gt; to quit---&lt;br /&gt;
 #12 0x0b376017 in wxAppConsole::ProcessPendingEvents ()&lt;br /&gt;
     at /usr/win32/include/wx-2.6/wx/event.h:2183&lt;br /&gt;
 #13 0x0b3ec75a in wxIdleWakeUpModule::MsgHookProc ()&lt;br /&gt;
     at /usr/win32/include/wx-2.6/wx/bmpbuttn.h:81&lt;br /&gt;
 #14 0x773aca2d in USER32!GetScrollRange ()&lt;br /&gt;
    from /cygdrive/c/WINDOWS/system32/user32.dll&lt;br /&gt;
 #15 0x00000000 in ?? () from&lt;br /&gt;
 (gdb)&lt;br /&gt;
&lt;br /&gt;
These are the log outputs that are more usefull to developers than just mentioning &amp;quot;it crashes&amp;quot;!&lt;br /&gt;
&lt;br /&gt;
NOTE: In GDB mode there are sometimes situations where GDB initially &amp;quot;crashes&amp;quot; on certain network activity (opening network shares, network traffic) which in normal operation does not occur. Just select c for continue until &amp;quot;normal&amp;quot; operation continues.&lt;br /&gt;
&lt;br /&gt;
==.diff files==&lt;br /&gt;
&lt;br /&gt;
Frequently patches to source code are presented or discussed in forums or in mailing lists in so called .diff format (these are &amp;quot;differences&amp;quot; to the source code).&lt;br /&gt;
&lt;br /&gt;
You can apply those patches yourself to the source code or create .diff files. This requires the patchutils package in Cygwin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Patching source code===&lt;br /&gt;
&lt;br /&gt;
Download a so called .diff file:&lt;br /&gt;
&lt;br /&gt;
 sse2-pixel-routines-v3.diff (example)&lt;br /&gt;
&lt;br /&gt;
NOTE: make sure the file doesn&#039;t get a .txt extension, so Save as type &amp;quot;All Files&amp;quot; instead of &amp;quot;Text Document&amp;quot; (IE has a habit of renaming to .txt. If that happens just simply rename to .diff)&lt;br /&gt;
&lt;br /&gt;
Copy the .diff file into the appropriate source folder&lt;br /&gt;
&lt;br /&gt;
 x264-trunk (example)&lt;br /&gt;
&lt;br /&gt;
Apply the patch as follows&lt;br /&gt;
&lt;br /&gt;
 patch -p0 &amp;lt; sse2-pixel-routines-v3.diff (example)&lt;br /&gt;
&lt;br /&gt;
NOTE: replace sse2-pixel-routines-v3.diff with your &amp;quot;patch&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will output something like:&lt;br /&gt;
&lt;br /&gt;
 patching file common/i386/pixel.h&lt;br /&gt;
 patching file common/i386/pixel-a.asm&lt;br /&gt;
 patching file common/pixel.c&lt;br /&gt;
&lt;br /&gt;
Your source code is now patched!&lt;br /&gt;
&lt;br /&gt;
NOTE: If you want to revert to the original version you can use the -R option with the patch command or alternatively you can just delete the changed files and just do an SVN update to get the original/latest SVN version back.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Creating .diff files===&lt;br /&gt;
&lt;br /&gt;
When changing the source code it&#039;s possible to create a &amp;quot;difference&amp;quot; file against the latest source.&lt;br /&gt;
&lt;br /&gt;
In this example the file /modules/codec/x264.c was changed (the part &amp;quot;in kbit/s&amp;quot; was added to a description).&lt;br /&gt;
&lt;br /&gt;
Start your Cygwin shell.&lt;br /&gt;
&lt;br /&gt;
Change to the appropriate folder where a changed file is.&lt;br /&gt;
&lt;br /&gt;
 cd vlc-trunk/modules/codec (example)&lt;br /&gt;
&lt;br /&gt;
Output the svn diff command to a file:&lt;br /&gt;
&lt;br /&gt;
 svn diff -u &amp;gt; x264-patch.diff&lt;br /&gt;
&lt;br /&gt;
The current folder now holds a x264-patch.diff file containing the following:&lt;br /&gt;
&lt;br /&gt;
 Index: x264.c&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- x264.c      (revision 15921)&lt;br /&gt;
 +++ x264.c      (working copy)&lt;br /&gt;
 @@ -131,7 +131,7 @@&lt;br /&gt;
  #define RATETOL_LONGTEXT N_( &amp;quot;Allowed variance in average. &amp;quot; \&lt;br /&gt;
      &amp;quot;bitrate (in kbits/s).&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 -#define VBV_MAXRATE_TEXT N_(&amp;quot;Max local bitrate&amp;quot;)&lt;br /&gt;
 +#define VBV_MAXRATE_TEXT N_(&amp;quot;Max local bitrate in kbit/s&amp;quot;)&lt;br /&gt;
  #define VBV_MAXRATE_LONGTEXT N_( &amp;quot;Sets a maximum local bitrate in kbits/s.&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
  #define VBV_BUFSIZE_TEXT N_(&amp;quot;VBV buffer&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
NOTE: In Windows you should open this file with something else than notepad (so wordpad or some more advanced editor). This has to do with the end of line markers that are present in the file since it was made in a Linux environment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reverting to older SVN source code==&lt;br /&gt;
&lt;br /&gt;
If for some reason you want to revert to (use) an older version (let&#039;s say you are using  revision 15916 of the VLC source code but would like to test with 15915) then use the svn &amp;quot;update&amp;quot; function from within Cygwin but use an older revision number.&lt;br /&gt;
&lt;br /&gt;
Start your Cygwin shell...&lt;br /&gt;
&lt;br /&gt;
 cd vlc-trunk&lt;br /&gt;
&lt;br /&gt;
 svn up -r 15915&lt;br /&gt;
&lt;br /&gt;
And you&#039;ll see something like this:&lt;br /&gt;
&lt;br /&gt;
 U    src\input\input.c&lt;br /&gt;
 Updated to revision 15915.&lt;br /&gt;
&lt;br /&gt;
The following command will show the version used:&lt;br /&gt;
&lt;br /&gt;
 svn info&lt;br /&gt;
&lt;br /&gt;
=FAQ/Troubleshooting=&lt;br /&gt;
&lt;br /&gt;
This chapter mentions some frequently encountered problems during compile and installation procedures and possible fixes or workarounds.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Making all in &amp;lt;folder&amp;gt;&amp;quot; takes forever with 0% CPU usage==&lt;br /&gt;
&lt;br /&gt;
Make seems to &amp;quot;stall&amp;quot; at a certain point (no CPU usage) and nothing seems to happen anymore:&lt;br /&gt;
&lt;br /&gt;
 Making all in mpeg&lt;br /&gt;
 make[5]: Entering directory `/home/Administrator/vlc-trunk/modules/mux/mpeg&#039;&lt;br /&gt;
&lt;br /&gt;
NOTE: This problem seems to occur on dual CPU (or HyperThreading enabled)&lt;br /&gt;
systems.&lt;br /&gt;
&lt;br /&gt;
FIX: in the vlc-trunk do a ./toolbox --distclean before doing a ../configure-vlc.sh and try again...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==configure: error: C compiler cannot create executables==&lt;br /&gt;
&lt;br /&gt;
The ../configure-vlc.sh gives the following error:&lt;br /&gt;
&lt;br /&gt;
 checking for gcc... gcc -mno-cygwin&lt;br /&gt;
 checking for C compiler default output file name... configure: error: C compiler&lt;br /&gt;
 cannot create executables&lt;br /&gt;
&lt;br /&gt;
FIX: it&#039;s very likely you are using the gcc 3.3 version but with the wrong mingw packages (the ones that come with 3.4). Reinstall the following gcc-mingw packages but make sure to use the older version!!!&lt;br /&gt;
&lt;br /&gt;
20050522-1      gcc-mingw-core  autoselected -&amp;gt;  change to 20040810-1&lt;br /&gt;
20050522-1      gcc-mingw-g++ 	autoselected -&amp;gt;  change to 20040810-1&lt;br /&gt;
&lt;br /&gt;
You can check what version of gcc you are version in the Cygwin shell by using the following command:&lt;br /&gt;
&lt;br /&gt;
 gcc --version&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==collect2: ld returned 1 exit status (libebml)==&lt;br /&gt;
&lt;br /&gt;
A make fails with the following error:&lt;br /&gt;
&lt;br /&gt;
 /usr/win32/lib/libebml.a(EbmlMaster.o):EbmlMaster.cpp:(.text$_ZNSt14__simple_all&lt;br /&gt;
 ocISsSt24__default_alloc_templateILb1ELi0EEE10deallocateEPSsj[std::__simple_allo&lt;br /&gt;
 c&amp;lt;std::basic_string&amp;lt;char, std::char_traits&amp;lt;char&amp;gt;, std::allocator&amp;lt;char&amp;gt; &amp;gt;, std::_&lt;br /&gt;
 _default_alloc_template&amp;lt;true, 0&amp;gt; &amp;gt;::deallocate(std::basic_string&amp;lt;char, std::char&lt;br /&gt;
 _traits&amp;lt;char&amp;gt;, std::allocator&amp;lt;char&amp;gt; &amp;gt;*, unsigned int)]+0x1d): undefined referenc&lt;br /&gt;
 e to `std::__default_alloc_template&amp;lt;true, 0&amp;gt;::deallocate(void*, unsigned int)&#039;&lt;br /&gt;
 /usr/win32/lib/libebml.a(EbmlMaster.o):EbmlMaster.cpp:(.text$_ZNSt14__simple_all&lt;br /&gt;
 ocISsSt24__default_alloc_templateILb1ELi0EEE8allocateEj[std::__simple_alloc&amp;lt;std:&lt;br /&gt;
 :basic_string&amp;lt;char, std::char_traits&amp;lt;char&amp;gt;, std::allocator&amp;lt;char&amp;gt; &amp;gt;, std::__defau&lt;br /&gt;
 lt_alloc_template&amp;lt;true, 0&amp;gt; &amp;gt;::allocate(unsigned int)]+0x1d): undefined reference&lt;br /&gt;
  to `std::__default_alloc_template&amp;lt;true, 0&amp;gt;::allocate(unsigned int)&#039;&lt;br /&gt;
 /usr/win32/lib/libebml.a(EbmlMaster.o):EbmlMaster.cpp:(.text$_ZNSt14__simple_all&lt;br /&gt;
 ocIPN7libebml11EbmlElementESt24__default_alloc_templateILb1ELi0EEE8allocateEj[st&lt;br /&gt;
 d::__simple_alloc&amp;lt;libebml::EbmlElement*, std::__default_alloc_template&amp;lt;true, 0&amp;gt;&lt;br /&gt;
 &amp;gt;::allocate(unsigned int)]+0x1d): undefined reference to `std::__default_alloc_t&lt;br /&gt;
 emplate&amp;lt;true, 0&amp;gt;::allocate(unsigned int)&#039;&lt;br /&gt;
 /usr/win32/lib/libebml.a(EbmlMaster.o):EbmlMaster.cpp:(.text$_ZNSt14__simple_all&lt;br /&gt;
 ocIPN7libebml11EbmlElementESt24__default_alloc_templateILb1ELi0EEE10deallocateEP&lt;br /&gt;
 S2_j[std::__simple_alloc&amp;lt;libebml::EbmlElement*, std::__default_alloc_template&amp;lt;tr&lt;br /&gt;
 ue, 0&amp;gt; &amp;gt;::deallocate(libebml::EbmlElement**, unsigned int)]+0x1d): undefined ref&lt;br /&gt;
 erence to `std::__default_alloc_template&amp;lt;true, 0&amp;gt;::deallocate(void*, unsigned in&lt;br /&gt;
 t)&#039;&lt;br /&gt;
 collect2: ld returned 1 exit status&lt;br /&gt;
 make[2]: *** [vlc.exe] Error 1&lt;br /&gt;
&lt;br /&gt;
This problem is because libEbml is a C++ lib and it doesn&#039;t seem to link with gcc 3.4.&lt;br /&gt;
&lt;br /&gt;
FIX: Use gcc 3.3 with the according 3.3 Win32 &amp;quot;contrib&amp;quot; package version or use a Win32 &amp;quot;contrib&amp;quot; package for 3.4 (or even better try compiling it yourself).&lt;br /&gt;
&lt;br /&gt;
WORKAROUND for gcc 3.4: Use --disable-mkv in configure-vlc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==zip: command not found==&lt;br /&gt;
&lt;br /&gt;
A make package fails with the following error:&lt;br /&gt;
&lt;br /&gt;
 zip -r vlc-0.8.4-svn-win32.zip vlc-0.8.4-svn&lt;br /&gt;
 /bin/bash: line 1: zip: command not found&lt;br /&gt;
 make: *** [package-win32-base-zip] Error 127&lt;br /&gt;
&lt;br /&gt;
FIX: Doh! forgot to install the zip package in Cygwin :P&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==vlc.exe: Permission denied==&lt;br /&gt;
&lt;br /&gt;
A make finished successfully and produced vlc.exe, but running the executable returns the following:&lt;br /&gt;
&lt;br /&gt;
 bash: ./vlc.exe: Permission denied&lt;br /&gt;
&lt;br /&gt;
The permissions on both vlc.exe &amp;amp; vlc.exe.manifest must be set to executable. &lt;br /&gt;
&lt;br /&gt;
FIX: Type the following:&lt;br /&gt;
 &lt;br /&gt;
 chmod 755 vlc.exe vlc.exe.manifest&lt;br /&gt;
&lt;br /&gt;
==error: parse error before &#039;(&#039; token==&lt;br /&gt;
&lt;br /&gt;
A make (compile) of FFmpeg results in the following error:&lt;br /&gt;
&lt;br /&gt;
 /usr/include/sys/unistd.h:203: error: parse error before &#039;(&#039; token&lt;br /&gt;
 make[1]: *** [ffm.o] Error 1&lt;br /&gt;
&lt;br /&gt;
It&#039;s very likely you are usix the POSIX emulater which you shouldn&#039;t...&lt;br /&gt;
&lt;br /&gt;
FIX: compile with the option &lt;br /&gt;
&lt;br /&gt;
 -mno-cygwin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==error: invalid conversion from `const void*&#039; to `void*&#039;==&lt;br /&gt;
&lt;br /&gt;
 src/theme_loader.cpp: In function `int gzwrite_frontend(int, const void*, size_t)&#039;:&lt;br /&gt;
 src/theme_loader.cpp:599: error: invalid conversion from `const void*&#039; to `void*&#039;&lt;br /&gt;
 src/theme_loader.cpp:599: error:   initializing argument 2 of `int gzwrite(void*,&lt;br /&gt;
 void*, unsigned int)&#039;&lt;br /&gt;
 make[6]: *** [libskins2_plugin_a-theme_loader.o] Error 1&lt;br /&gt;
&lt;br /&gt;
FIX: This is related to a problem with the zlib library, updating to at least 1.2.2-1 but preferably 1.2.3 or newer is required&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==error: cannot convert `const wxChar*&#039; to `const char*==&lt;br /&gt;
&lt;br /&gt;
 if g++ -mno-cygwin -DHAVE_CONFIG_H -I. -I. -I../../..   -I/usr/win32/include -I/&lt;br /&gt;
 usr/win32/include/ebml -D_OFF_T_ -D_off_t=long -DSYS_MINGW32 -I../../../include&lt;br /&gt;
 `top_builddir=&amp;quot;../../..&amp;quot; ../../../vlc-config --cxxflags plugin wxwidgets` -Wsign&lt;br /&gt;
 -compare -Wsign-compare -Wall  -mms-bitfields -pipe -MT libwxwidgets_plugin_a-wx&lt;br /&gt;
 widgets.o -MD -MP -MF &amp;quot;.deps/libwxwidgets_plugin_a-wxwidgets.Tpo&amp;quot; -c -o libwxwid&lt;br /&gt;
 gets_plugin_a-wxwidgets.o `test -f &#039;wxwidgets.cpp&#039; || echo &#039;./&#039;`wxwidgets.cpp; \&lt;br /&gt;
 then mv -f &amp;quot;.deps/libwxwidgets_plugin_a-wxwidgets.Tpo&amp;quot; &amp;quot;.deps/libwxwidgets_plugi&lt;br /&gt;
 n_a-wxwidgets.Po&amp;quot;; else rm -f &amp;quot;.deps/libwxwidgets_plugin_a-wxwidgets.Tpo&amp;quot;; exit&lt;br /&gt;
 1; fi&lt;br /&gt;
 In file included from /usr/win32/include/wx-2.6/wx/debug.h:22,&lt;br /&gt;
                  from /usr/win32/include/wx-2.6/wx/defs.h:452,&lt;br /&gt;
                  from /usr/win32/include/wx-2.6/wx/wxprec.h:13,&lt;br /&gt;
                  from wxwidgets.h:40,&lt;br /&gt;
                  from wxwidgets.cpp:39:&lt;br /&gt;
 /usr/win32/include/wx-2.6/wx/wxchar.h: In function `size_t wxStrlen(const wxChar&lt;br /&gt;
 *)&#039;:&lt;br /&gt;
 /usr/win32/include/wx-2.6/wx/wxchar.h:759: error: cannot convert `const wxChar*&#039;&lt;br /&gt;
  to `const char*&#039; for argument `1&#039; to `size_t strlen(const char*)&#039;&lt;br /&gt;
 In file included from /usr/win32/include/wx-2.6/wx/memory.h:20,&lt;br /&gt;
                  from /usr/win32/include/wx-2.6/wx/object.h:25,&lt;br /&gt;
                  from /usr/win32/include/wx-2.6/wx/wx.h:16,&lt;br /&gt;
                  from wxwidgets.h:41,&lt;br /&gt;
                  from wxwidgets.cpp:39:&lt;br /&gt;
 /usr/win32/include/wx-2.6/wx/string.h: In constructor `wxString::wxString(const&lt;br /&gt;
 wxChar*)&#039;:&lt;br /&gt;
&lt;br /&gt;
FIX: update wxwidgets or try a different or newer Win32 &amp;quot;contrib&amp;quot; package.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==undefined reference to `_av_parser_change&#039; (FFmpeg)==&lt;br /&gt;
&lt;br /&gt;
 ffmpeg.o: In function `output_packet&#039;:&lt;br /&gt;
 /home/Administrator/FFmpeg-20050724/ffmpeg.c:1414: undefined reference to `_av_parser_change&#039;&lt;br /&gt;
 /home/Administrator/FFmpeg-20050724/ffmpeg.c:1415: undefined reference to `_av_destruct_packet&#039;&lt;br /&gt;
 collect2: ld returned 1 exit status&lt;br /&gt;
 make: *** [ffmpeg_g.exe] Error 1&lt;br /&gt;
&lt;br /&gt;
This is a possible conflict when you use normal configure-ffmpeg (uses /usr/win32&lt;br /&gt;
contrib) instead of configure-ffmpeg-svn&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==undefined reference to `_pp_get_context&#039; (FFmpeg)==&lt;br /&gt;
&lt;br /&gt;
 ./modules/codec/ffmpeg/libffmpeg.a(libffmpeg_a-postprocess.o): In function `Init&lt;br /&gt;
 Postproc__ffmpeg&#039;:&lt;br /&gt;
 /home/Administrator/vlc-trunk/modules/codec/ffmpeg/postprocess.c:164: undefined&lt;br /&gt;
 reference to `_pp_get_context&#039;&lt;br /&gt;
 ./modules/codec/ffmpeg/libffmpeg.a(libffmpeg_a-postprocess.o): In function `PPQC&lt;br /&gt;
 allback&#039;:&lt;br /&gt;
 /home/Administrator/vlc-trunk/modules/codec/ffmpeg/postprocess.c:244: undefined&lt;br /&gt;
 reference to `_pp_get_mode_by_name_and_quality&#039;&lt;br /&gt;
 ./modules/codec/ffmpeg/libffmpeg.a(libffmpeg_a-postprocess.o): In function `Post&lt;br /&gt;
 procPict__ffmpeg&#039;:&lt;br /&gt;
 /home/Administrator/vlc-trunk/modules/codec/ffmpeg/postprocess.c:191: undefined&lt;br /&gt;
 reference to `_pp_postprocess&#039;&lt;br /&gt;
 $&lt;br /&gt;
 ePostproc__ffmpeg&#039;:&lt;br /&gt;
 /home/Administrator/vlc-trunk/modules/codec/ffmpeg/postprocess.c:209: undefined&lt;br /&gt;
 reference to `_pp_free_mode&#039;&lt;br /&gt;
 /home/Administrator/vlc-trunk/modules/codec/ffmpeg/postprocess.c:210: undefined&lt;br /&gt;
 reference to `_pp_free_context&#039;&lt;br /&gt;
 collect2: ld returned 1 exit status&lt;br /&gt;
 make[2]: *** [vlc.exe] Error 1&lt;br /&gt;
 make[2]: Leaving directory `/home/Administrator/vlc-trunk&#039;&lt;br /&gt;
 make[1]: *** [all-recursive] Error 1&lt;br /&gt;
 make[1]: Leaving directory `/home/Administrator/vlc-trunk&#039;&lt;br /&gt;
 make: *** [all] Error 2&lt;br /&gt;
&lt;br /&gt;
FFmpeg was not compiled with post processing support. To do so the following options need to be added to the configure lines for FFmpeg:&lt;br /&gt;
&lt;br /&gt;
 --enable-pp --enable-gpl&lt;br /&gt;
&lt;br /&gt;
Postprocessing code is under GPL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==error: expected primary-expression before &#039;&amp;lt;&amp;lt;&#039; token==&lt;br /&gt;
&lt;br /&gt;
 In file included from /usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../include/w32&lt;br /&gt;
 api/windows.h:52,&lt;br /&gt;
                  from ../../../include/vlc_common.h:459,&lt;br /&gt;
                  from ../../../include/vlc/vlc.h:153,&lt;br /&gt;
                  from dshow.cpp:31:&lt;br /&gt;
 /usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../include/w32api/wingdi.h:3:1: warn&lt;br /&gt;
 ing: this is the location of the previous definition&lt;br /&gt;
 In file included from /usr/win32/include/dshow.h:35,&lt;br /&gt;
                  from common.h:45,&lt;br /&gt;
                  from dshow.cpp:35:&lt;br /&gt;
 /usr/win32/include/ddraw.h:14: warning: ignoring #pragma warning&lt;br /&gt;
 In file included from /usr/win32/include/dshow.h:35,&lt;br /&gt;
                  from common.h:45,&lt;br /&gt;
                  from dshow.cpp:35:&lt;br /&gt;
 /usr/win32/include/ddraw.h:5552: warning: ignoring #pragma warning&lt;br /&gt;
 In file included from /usr/win32/include/dshow.h:45,&lt;br /&gt;
                  from common.h:45,&lt;br /&gt;
                  from dshow.cpp:35:&lt;br /&gt;
 /usr/win32/include/strmif.h:2: warning: ignoring #pragma warning&lt;br /&gt;
 In file included from /usr/win32/include/dsound.h:13,&lt;br /&gt;
                  from /usr/win32/include/amaudio.h:18,&lt;br /&gt;
                  from /usr/win32/include/dshow.h:47,&lt;br /&gt;
                  from common.h:45,&lt;br /&gt;
                  from dshow.cpp:35:&lt;br /&gt;
 /usr/win32/include/d3dtypes.h:22: warning: ignoring #pragma warning&lt;br /&gt;
 /usr/win32/include/d3dtypes.h:1813: warning: ignoring #pragma warning&lt;br /&gt;
 In file included from /usr/win32/include/dshow.h:48,&lt;br /&gt;
                  from common.h:45,&lt;br /&gt;
                  from dshow.cpp:35:&lt;br /&gt;
 /usr/win32/include/control.h:2: warning: ignoring #pragma warning&lt;br /&gt;
 dshow.cpp: In function `int CommonOpen(vlc_object_t*, access_sys_t*, vlc_bool_t)&lt;br /&gt;
 &#039;:&lt;br /&gt;
 dshow.cpp:456: error: expected primary-expression before &#039;&amp;lt;&amp;lt;&#039; token&lt;br /&gt;
 dshow.cpp:456: error: expected primary-expression before &#039;&amp;lt;&amp;lt;&#039; token&lt;br /&gt;
 dshow.cpp:456: error: expected primary-expression before &#039;&amp;lt;&amp;lt;&#039; token&lt;br /&gt;
 dshow.cpp:456: error: expected primary-expression before &#039;&amp;lt;&#039; token&lt;br /&gt;
 dshow.cpp:456: error: expected primary-expression before &#039;.&#039; token&lt;br /&gt;
 dshow.cpp:470: error: expected primary-expression before &#039;==&#039; token&lt;br /&gt;
 dshow.cpp:470: error: expected primary-expression before &#039;==&#039; token&lt;br /&gt;
 dshow.cpp:470: error: expected primary-expression before &#039;==&#039; token&lt;br /&gt;
 dshow.cpp:470: error: expected primary-expression before &#039;=&#039; token&lt;br /&gt;
 dshow.cpp:484: error: expected primary-expression before &#039;&amp;gt;&amp;gt;&#039; token&lt;br /&gt;
 dshow.cpp:484: error: expected primary-expression before &#039;&amp;gt;&amp;gt;&#039; token&lt;br /&gt;
 dshow.cpp:484: error: expected primary-expression before &#039;&amp;gt;&amp;gt;&#039; token&lt;br /&gt;
 dshow.cpp:484: error: expected primary-expression before &#039;&amp;gt;&#039; token&lt;br /&gt;
 dshow.cpp:484: error: expected primary-expression before &#039;.&#039; token&lt;br /&gt;
 dshow.cpp:485: error: expected `;&#039; before &amp;quot;IAMCrossbar&amp;quot;&lt;br /&gt;
 dshow.cpp:491: error: `pXbar&#039; undeclared (first use this function)&lt;br /&gt;
 dshow.cpp:491: error: (Each undeclared identifier is reported only once for each&lt;br /&gt;
 function it appears in.)&lt;br /&gt;
 make[6]: *** [libdshow_plugin_a-dshow.o] Error 1&lt;br /&gt;
 make[6]: Leaving directory `/home/Administrator/vlc-trunk/modules/access/dshow&#039;&lt;br /&gt;
 make[5]: *** [all-modules] Error 1&lt;br /&gt;
 make[5]: Leaving directory `/home/Administrator/vlc-trunk/modules/access/dshow&#039;&lt;br /&gt;
 make[4]: *** [all-recursive] Error 1&lt;br /&gt;
 make[4]: Leaving directory `/home/Administrator/vlc-trunk/modules/access&#039;&lt;br /&gt;
 make[3]: *** [all] Error 2&lt;br /&gt;
&lt;br /&gt;
Basically in case of conflict svn adds &amp;quot;&amp;lt;&amp;lt;&amp;lt; mine&amp;quot; and &amp;quot;=======&amp;quot; and &amp;quot;&amp;gt;&amp;gt;&amp;gt;&amp;gt; r1242&amp;quot; which makes gcc complain.&lt;br /&gt;
&lt;br /&gt;
FIX: revert the offending file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==configure: error: Could not find ffmpeg on your system==&lt;br /&gt;
&lt;br /&gt;
 configure: error: Could not find ffmpeg on your system: you may get it from&lt;br /&gt;
 http://ffmpeg.sf.net/ (cvs version is recommended). Alternatively you can use&lt;br /&gt;
 --disable-ffmpeg to disable the ffmpeg plugins.&lt;br /&gt;
 make: *** [config.status] Error 1&lt;br /&gt;
&lt;br /&gt;
This can happen when you do a make without doing a configure and the configure.ac file in the source code recently updated.&lt;br /&gt;
&lt;br /&gt;
FIX: do a full configure (using ../configure-vlc.sh) and then run the make process&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Objective C source seen but `OBJC&#039; is undefined==&lt;br /&gt;
&lt;br /&gt;
The configure process stops halfway.&lt;br /&gt;
&lt;br /&gt;
 + aclocal-1.9 -I m4&lt;br /&gt;
 + autoconf&lt;br /&gt;
 + autoheader&lt;br /&gt;
 + automake-1.9 --add-missing --copy -Wall&lt;br /&gt;
 configure.ac: installing `autotools/install-sh&#039;&lt;br /&gt;
 configure.ac: installing `autotools/missing&#039;&lt;br /&gt;
 activex/Makefile.am:143: shell $(VLC_CONFIG: non-POSIX variable name&lt;br /&gt;
 activex/Makefile.am:143: (probably a GNU make extension)&lt;br /&gt;
 activex/Makefile.am: installing `autotools/compile&#039;&lt;br /&gt;
 activex/Makefile.am: installing `autotools/depcomp&#039;&lt;br /&gt;
 modules/gui/macosx/Makefile.am: Objective C source seen but `OBJC&#039; is undefined&lt;br /&gt;
 modules/misc/testsuite/Makefile.am: Objective C source seen but `OBJC&#039; is undefi&lt;br /&gt;
 ned&lt;br /&gt;
 src/Makefile.am: Objective C source seen but `OBJC&#039; is undefined&lt;br /&gt;
 Makefile.am:282: user target `vlc$(EXEEXT)&#039; defined here...&lt;br /&gt;
 /usr/share/automake-1.9/am/program.am: ... overrides Automake target `vlc$(EXEEX&lt;br /&gt;
 T)&#039; defined here&lt;br /&gt;
 Makefile.am:230:   while processing program `vlc&#039;&lt;br /&gt;
 make: *** No targets specified and no makefile found.  Stop.&lt;br /&gt;
 &lt;br /&gt;
This problem is related to a warning earlier on and only occured in a few revisions where a built-in workaround wasn&#039;t working properly:&lt;br /&gt;
&lt;br /&gt;
 + echo &#039;Enabling provisional autoconf 2.59 work-around. Update autoconf ASAP.&#039;&lt;br /&gt;
 Enabling provisional autoconf 2.59 work-around. Update autoconf ASAP.&lt;br /&gt;
&lt;br /&gt;
FIX: update autoconf to 2.60 or newer. If Cygwin doesn&#039;t provide this version yet then build it yourself from extras/contrib.&lt;br /&gt;
&lt;br /&gt;
Enter the following commands in your Cygwin shell:&lt;br /&gt;
&lt;br /&gt;
 cd vlc-trunk/extras/contrib&lt;br /&gt;
&lt;br /&gt;
 ./bootstrap&lt;br /&gt;
&lt;br /&gt;
 cd src&lt;br /&gt;
&lt;br /&gt;
 make .autoconf&lt;br /&gt;
&lt;br /&gt;
There should now be compiled autoconf version (probably 2.60 or newer) in extras/contrib that the bootstrap process will use.&lt;br /&gt;
&lt;br /&gt;
Now start the whole &amp;quot;Compile VLC&amp;quot; process from the start again.&lt;br /&gt;
&lt;br /&gt;
==Error: cannot create temporary file for diversion: Permission denied==&lt;br /&gt;
&lt;br /&gt;
If the above error appears, it might mean you don&#039;t have the TMPDIR defined in cygwin. You will need to define it and have its value point to your temporary directory.&lt;br /&gt;
&lt;br /&gt;
=Version=&lt;br /&gt;
&lt;br /&gt;
20050627 Initial version&lt;br /&gt;
&lt;br /&gt;
20050628 Updated some more exceptions&lt;br /&gt;
&lt;br /&gt;
20050628 Some info added about FFmpeg compiling with AMR&lt;br /&gt;
&lt;br /&gt;
20050629 Finalized FFmpeg compiling&lt;br /&gt;
&lt;br /&gt;
20050630 Cross-compiling&lt;br /&gt;
&lt;br /&gt;
20050724 Some extra compile explanations&lt;br /&gt;
&lt;br /&gt;
20050726 Removed cross-compiling (was for linux -&amp;gt; win32) Patching source code with .diff files&lt;br /&gt;
&lt;br /&gt;
20050823 Added zlib error&lt;br /&gt;
&lt;br /&gt;
20050923 --enable-sdl --with-sdl-config-path=/usr/win32/bin added to configure. Added debug section&lt;br /&gt;
&lt;br /&gt;
20051102 Changed FFmpeg lib names&lt;br /&gt;
&lt;br /&gt;
20051128 Detailed Cygwin upgrade/downgrade for gcc 3.3. Renamed some update scripts. Added FFmpeg CVS update. --disable-gnomevfs added to configure (only used on linux)&lt;br /&gt;
&lt;br /&gt;
20060121 PKG_CONFIG_PATH=/usr/win32/lib/pkgconfig added to configure&lt;br /&gt;
&lt;br /&gt;
20060128 Added curl and libtool to Cygwin for those that want to be able to build extras/contrib themselves&lt;br /&gt;
&lt;br /&gt;
20060217 Added make install-libs install-headers to FFmpeg compile&lt;br /&gt;
&lt;br /&gt;
20060222 Remark about missing &amp;quot;gettext&amp;quot; libs for Cygwin during install&lt;br /&gt;
&lt;br /&gt;
20060225 ./bootstrap: you need libtool&lt;br /&gt;
&lt;br /&gt;
20060618 Updated GCC to 3.4 version and added FFmpeg SVN and DTS support&lt;br /&gt;
&lt;br /&gt;
20060805 Added note about using older binutils and gdb for Cygwin!&lt;br /&gt;
&lt;br /&gt;
20060915 Added note about updating autoconf from extras/contrib for an OBJC problem during configure&lt;br /&gt;
&lt;br /&gt;
20061108 Added note this document is no longer usable since Cygwin has been unusable probably related to some bash/dos2unix change&lt;br /&gt;
&lt;br /&gt;
20070612 Added note about --enable-dca&lt;br /&gt;
&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:Coding]]&lt;/div&gt;</summary>
		<author><name>Quovodis</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Win32CompileCygwinOld&amp;diff=9695</id>
		<title>Win32CompileCygwinOld</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Win32CompileCygwinOld&amp;diff=9695"/>
		<updated>2007-08-15T13:50:57Z</updated>

		<summary type="html">&lt;p&gt;Quovodis: /* GDB (Gnu Debugger) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cygwin environment for Windows from http://developers.videolan.org/vlc/cygwin-compile.txt&lt;br /&gt;
&lt;br /&gt;
Originally based on &amp;quot;Win32 Cygwin Environment&amp;quot; Rev. B (20041003) by Mark Moriarty and &amp;quot;Win32 Compile HOWTO&amp;quot; (20050513) by Gildas Bazin and Olivier Teulière.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This is a guide for Windows users with a step-by-step instruction to download, install and configure the following components on your system:&lt;br /&gt;
&lt;br /&gt;
* [http://www.cygwin.com &#039;&#039;&#039;Cygwin&#039;&#039;&#039;]:  Linux-like environment for Windows used for compilation of the VLC source code&lt;br /&gt;
&lt;br /&gt;
* [http://download.videolan.org/pub/videolan/testing/win32/ &#039;&#039;&#039;Win32 contrib package&#039;&#039;&#039;]:  Precompiled library package (with DTS support).&lt;br /&gt;
&lt;br /&gt;
Optionally updated libraries:&lt;br /&gt;
&lt;br /&gt;
* [http://ffmpeg.mplayerhq.hu &#039;&#039;&#039;FFmpeg&#039;&#039;&#039;] (with AMR support).&lt;br /&gt;
&lt;br /&gt;
* [http://developers.videolan.org/x264.html &#039;&#039;&#039;x264&#039;&#039;&#039;] used for encoding H.264/AVC video.&lt;br /&gt;
&lt;br /&gt;
* [http://www.live555.com &#039;&#039;&#039;live555&#039;&#039;&#039;] (formerly known as live.com) for RTP/RTCP/RTSP/SIP multimedia streaming.&lt;br /&gt;
&lt;br /&gt;
The best approach to start getting comfortable with building VLC from source is to use the precompiled library package and not yet the optionally updated ones.&lt;br /&gt;
&lt;br /&gt;
Start off by creating a download folder on your hard drive where you can put all the installation files:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads (example)&lt;br /&gt;
&lt;br /&gt;
For further reference, the assumption is made that the local user will be &#039;Administrator&#039;.&lt;br /&gt;
&lt;br /&gt;
=Cygwin=&lt;br /&gt;
&lt;br /&gt;
More info about Cygwin can be found at http://www.cygwin.com or http://sourceware.org/cygwin&lt;br /&gt;
&lt;br /&gt;
Download the latest [http://www.cygwin.com/cygwin/setup.exe Cygwin setup] (it&#039;s at the install or update now icon on the site) and save it in your download location:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\cygwin (example)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Selecting Cygwin packages to install==&lt;br /&gt;
&lt;br /&gt;
Run the setup program with the following options:&lt;br /&gt;
&lt;br /&gt;
Installation type : Install from Internet (default)&lt;br /&gt;
&lt;br /&gt;
Root directory : C:\cygwin (default)&lt;br /&gt;
&lt;br /&gt;
Local Package directory : C:\Downloads\cygwin (your download location)&lt;br /&gt;
&lt;br /&gt;
Internet Connection : Direct Connection (preferred, if it fails try another)&lt;br /&gt;
&lt;br /&gt;
Download Site : Choose a download site closest to you (FTP preferred)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At the &amp;quot;Select Packages&amp;quot; section of the installation process you can select packages by clicking the button with the rotating 2 arrows. (This is under the &amp;quot;New&amp;quot; section). It shows &amp;quot;Skip&amp;quot; next to the button if the package isn&#039;t selected yet.&lt;br /&gt;
&lt;br /&gt;
Clicking the button a few times will rotate through the possible package versions including &amp;quot;Skip&amp;quot; (meaning do not install or remove if installed) and &amp;quot;Keep&amp;quot; (meaning keep using the current installed version). If a package was already installed it will also show the &amp;quot;Current&amp;quot; version just to the left of it.&lt;br /&gt;
&lt;br /&gt;
Select the following packages (some others will automatically be selected as well):&lt;br /&gt;
&lt;br /&gt;
 Archive&lt;br /&gt;
   5.52-2       unzip (recommended: goes hand in hand with zip utility)&lt;br /&gt;
   2.23-2       zip (required: to make self contained zip packages)&lt;br /&gt;
&lt;br /&gt;
 Devel&lt;br /&gt;
   2.1          automake (at least 1.5 is required)&lt;br /&gt;
   20060817-1   binutils (autoselected)&lt;br /&gt;
   1.11.22-1    cvs (required for autopoint)&lt;br /&gt;
   3.4.4-3      gcc-core (autoselected)&lt;br /&gt;
   3.4.4-3      gcc-g++&lt;br /&gt;
   20040810-1   gcc-mingw&lt;br /&gt;
   20050522-1   gcc-mingw-core (autoselected)&lt;br /&gt;
   20050522-1   gcc-mingw-g++ (autoselected)&lt;br /&gt;
   &#039;&#039;&#039;20041228-3   gdb&#039;&#039;&#039; (optional: for debugging purposes)&lt;br /&gt;
   0.15-1       gettext (autoselected)&lt;br /&gt;
   0.15-1       gettext-devel&lt;br /&gt;
   1.5.23a-2    libtool1.5&lt;br /&gt;
   3.81-1       make&lt;br /&gt;
   3.11-1       mingw-runtime (autoselected)&lt;br /&gt;
   0.98.39-1    nasm (optional: for compiling x264 encoder)	&lt;br /&gt;
   0.2.31-1     patchutils (optional: for patching source files with .diff files)&lt;br /&gt;
   0.21-1       pkgconfig (recommended: otherwise ./configure will complain about accuracy)&lt;br /&gt;
   1.4.2-1      subversion&lt;br /&gt;
&lt;br /&gt;
 Lib&lt;br /&gt;
   ?.?          libgcrypt&lt;br /&gt;
&lt;br /&gt;
 Web&lt;br /&gt;
   7.15.4-1     curl (optional: for building extras/contrib)&lt;br /&gt;
   1.10.2-2     wget (optional: for building extras/contrib)&lt;br /&gt;
&lt;br /&gt;
The package version numbers happen to be the representation of what was the most current version available at the time this article was written &#039;&#039;&#039;with the exception of gdb which has to be downgraded from at least 20060706-2 to 20041228-3 for proper usage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you run into problems of missing packages during install (particularly gettext: cyggettextsrc-0-14-1.dll not found) then rerun the setup program and try selecting another Download Site from the mirror list.&lt;br /&gt;
&lt;br /&gt;
NOTE: Whenever new packages are installed or updated through the Cygwin installer, make sure not to update the packages by keeping the old versions (using the &amp;quot;Keep&amp;quot; option).&lt;br /&gt;
&lt;br /&gt;
==Installing older GCC 3.3 version==&lt;br /&gt;
&lt;br /&gt;
The gcc version used for compilation should match the version specified in the &amp;quot;contrib&amp;quot; package, at present gcc-3.4.5-only.&lt;br /&gt;
&lt;br /&gt;
So the preferred version to use is GCC 3.4 but for historical reasons this section descibes what version to use together with an older gcc-3.3.1-only &amp;quot;contrib&amp;quot; package. The 3.3.1 version is not available in Cygwin but 3.3.3-3 (still) is.&lt;br /&gt;
&lt;br /&gt;
The only compatibility issue with using GCC 3.4 and the precompiled 3.3.1 &amp;quot;contrib&amp;quot; package is that it doesn&#039;t support the compiling of the matroska container .mkv so that leaves 2 options; use gcc 3.3.3-3 with a 3.3.1-only &amp;quot;contrib&amp;quot; or gcc 3.4 (or newer) but disable matroska support.&lt;br /&gt;
&lt;br /&gt;
The second option requires you to add the following line to the configure options:&lt;br /&gt;
&lt;br /&gt;
 --disable-mkv&lt;br /&gt;
&lt;br /&gt;
If you use the older gcc-g++ and gcc-core versions you have to change the gcc-mingw-core and gcc-mingw-g++ back to the older versions as well.&lt;br /&gt;
&lt;br /&gt;
Select the following package versions instead:&lt;br /&gt;
&lt;br /&gt;
 Devel&lt;br /&gt;
   &#039;&#039;&#039;3.3.3-3&#039;&#039;&#039;      gcc-core&lt;br /&gt;
   &#039;&#039;&#039;3.3.3-3&#039;&#039;&#039;      gcc-g++&lt;br /&gt;
   20040810-1   gcc-mingw&lt;br /&gt;
   &#039;&#039;&#039;20040810-1&#039;&#039;&#039;   gcc-mingw-core&lt;br /&gt;
   &#039;&#039;&#039;20040810-1&#039;&#039;&#039;   gcc-mingw-g++&lt;br /&gt;
&lt;br /&gt;
NOTE: The gcc-3.4.5-only &amp;quot;contrib&amp;quot; package should compile just fine with GCC 3.3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Cygwin environment==&lt;br /&gt;
&lt;br /&gt;
Start Cygwin from the icon on your desktop. If it runs for the first time it will automatically create a home\&amp;quot;username&amp;quot; folder in the Cygwin environment; user being the currently logged on Windows user. Assuming this is the &#039;Administrator&#039; user it will create the following folder:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator (example)&lt;br /&gt;
&lt;br /&gt;
NOTE: On your desktop, you can rightclick the Cygwin icon and (in the Options field of the Cygwin Properties) set the Command history Buffer size to as large as possible: 999. This setting will make it possible to scroll back further in the Cygwin environment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=VLC source code=&lt;br /&gt;
&lt;br /&gt;
The very latest VLC source code can be obtained through a tool called SVN (Subversion). The Cygwin package we&#039;re about to install comes with an internal subversion component. Using this one is the preferred method.&lt;br /&gt;
&lt;br /&gt;
Another way of obtaining source code is by downloading a daily code &amp;quot;snapshot&amp;quot; from the following location:&lt;br /&gt;
&lt;br /&gt;
http://nightlies.videolan.org/build/source&lt;br /&gt;
&lt;br /&gt;
Download the latest snapshot:&lt;br /&gt;
&lt;br /&gt;
 vlc-snapshot-20070112.tar.gz (example)&lt;br /&gt;
&lt;br /&gt;
and save it into a subfolder in your download location:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\VLC\src (example)&lt;br /&gt;
&lt;br /&gt;
Check if the downloaded file has not been renamed by Internet Explorer in your download folder to something with the extension .tar.tar and if so then simple rename the files back to .tar.gz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Adding libraries to the source code=&lt;br /&gt;
&lt;br /&gt;
VLC depends on other libraries (code) to provide some features like AC3 audio or MPEG-4 video encoding/decoding etc.&lt;br /&gt;
&lt;br /&gt;
Depending on your needs you will have to install and compile some or all of these external libraries. Most of them can be found here (source code):&lt;br /&gt;
&lt;br /&gt;
http://download.videolan.org/pub/testing/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Win32 &amp;quot;contrib&amp;quot; package==&lt;br /&gt;
&lt;br /&gt;
A package with most of these libraries already compiled so it&#039;s actually really easy to compile a full-featured version of vlc can be found here:&lt;br /&gt;
&lt;br /&gt;
http://download.videolan.org/pub/testing/win32/&lt;br /&gt;
&lt;br /&gt;
Download the latest version of a &amp;quot;contrib&amp;quot; package for win32:&lt;br /&gt;
&lt;br /&gt;
 contrib-20060730-win32-bin-gcc-3.4.5-only.tar.bz2 (example)&lt;br /&gt;
&lt;br /&gt;
It&#039;s a good idea to check the INSTALL.Win32 file in the VLC source directory for the appropriate contrib download file.&lt;br /&gt;
&lt;br /&gt;
Save it into a subfolder in your download location:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\VLC\contrib (example)&lt;br /&gt;
&lt;br /&gt;
Check if the file has not been renamed by Internet Explorer in your download folder to something with the extension .tar.tar and if so then simply rename the file back to .tar.bz2&lt;br /&gt;
&lt;br /&gt;
Also remember the &amp;quot;gcc-3.4.5&amp;quot; part in the &amp;quot;contrib&amp;quot; package filename since it relates to the GCC version that needs to be installed in Cygwin lateron!&lt;br /&gt;
&lt;br /&gt;
==Win32 &amp;quot;contrib&amp;quot; packages for older GCC versions==&lt;br /&gt;
&lt;br /&gt;
For historical reasons older versions of the &amp;quot;contrib&amp;quot; package are provided at the following location:&lt;br /&gt;
&lt;br /&gt;
http://download.videolan.org/pub/testing/win32/contrib-old-gcc-3.3-only/&lt;br /&gt;
&lt;br /&gt;
Download the latest version of a &amp;quot;contrib&amp;quot; package for win32&lt;br /&gt;
&lt;br /&gt;
 contrib-20051213-win32-bin-gcc3.3.1-only.tar.bz2 (example)&lt;br /&gt;
&lt;br /&gt;
and save it into a subfolder in your download location:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\VLC\contrib (example)&lt;br /&gt;
&lt;br /&gt;
NOTE: gcc3.3.1-only in the filename means it was (obviously) intended for compilation with GCC 3.3 only. The latest gcc-3.4.5-only &amp;quot;contrib&amp;quot; packages should compile just fine with GCC 3.3 so it&#039;s preferred to always use those.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Adding additional or updated libraries to the source (optional)==&lt;br /&gt;
&lt;br /&gt;
Updated libraries for FFmpeg and x264 are available through SVN (which is discussed in a later stage of this guide).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===live555 &amp;quot;snapshot&amp;quot; (optional)===&lt;br /&gt;
&lt;br /&gt;
More info about live555 can be found at:&lt;br /&gt;
&lt;br /&gt;
http://www.live555.com&lt;br /&gt;
&lt;br /&gt;
The project source code is available here:&lt;br /&gt;
&lt;br /&gt;
http://live555.com/liveMedia/public/&lt;br /&gt;
&lt;br /&gt;
Download the latest snapshot:&lt;br /&gt;
&lt;br /&gt;
 live.2007.01.11.tar.gz (example)&lt;br /&gt;
&lt;br /&gt;
NOTE: live555-latest.tar.gz is also the latest version but keeping the date in the filename makes it easier to reference.&lt;br /&gt;
&lt;br /&gt;
and save it into a subfolder in your download location:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\VLC\src (example)&lt;br /&gt;
&lt;br /&gt;
Check if the downloaded file has not been renamed by Internet Explorer in your download folder to something with the extension .tar.tar and if so then simple rename the files back to .tar.gz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Getting the latest sources=&lt;br /&gt;
&lt;br /&gt;
In order to have the latest source code you have to download this using SVN.&lt;br /&gt;
&lt;br /&gt;
Create a new folder at your download/install location:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\VLC\scripts (example)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SVN update script for VLC==&lt;br /&gt;
&lt;br /&gt;
Create a new text document with the following line:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn://svn.videolan.org/vlc/trunk vlc-trunk&lt;br /&gt;
&lt;br /&gt;
Save as filename in your &amp;quot;scripts&amp;quot; folder at your download/install location with the option &amp;quot;All Files&amp;quot; and not &amp;quot;Text Documents&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 update-vlc.sh (example)&lt;br /&gt;
&lt;br /&gt;
This command will download a complete svn trunk.&lt;br /&gt;
&lt;br /&gt;
Copy the script file into your Cygwin &amp;quot;home directory&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell: &lt;br /&gt;
&lt;br /&gt;
 dos2unix update-vlc.sh&lt;br /&gt;
&lt;br /&gt;
This is for converting the &#039;line endings&#039; made by Windows/DOS (in which the text document was created) to UNIX style.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SVN update scripts for additional libraries (optional)==&lt;br /&gt;
&lt;br /&gt;
Updating source code using SVN for additional libraries such as x264 or FFmpeg works the same way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SVN update scripts for x264 (optional)===&lt;br /&gt;
&lt;br /&gt;
Create a new text document with the following line:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn://svn.videolan.org/x264/trunk x264-trunk&lt;br /&gt;
&lt;br /&gt;
Save as filename in your &amp;quot;scripts&amp;quot; folder at your download/install location:&lt;br /&gt;
&lt;br /&gt;
 update-x264.sh&lt;br /&gt;
&lt;br /&gt;
Copy the script file into your Cygwin &amp;quot;home directory&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell:&lt;br /&gt;
&lt;br /&gt;
 dos2unix update-x264.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SVN update script for FFmpeg (optional)===&lt;br /&gt;
&lt;br /&gt;
Create a new text document with the following line:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg-trunk&lt;br /&gt;
&lt;br /&gt;
Save as filename in your &amp;quot;scripts&amp;quot; folder at your download/install location:&lt;br /&gt;
&lt;br /&gt;
 update-ffmpeg.sh&lt;br /&gt;
&lt;br /&gt;
Copy the script file into your Cygwin &amp;quot;home directory&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell: &lt;br /&gt;
&lt;br /&gt;
 dos2unix update-ffmpeg.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Checking out&amp;quot; the latest source code from SVN==&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell: &lt;br /&gt;
&lt;br /&gt;
 ./update-vlc.sh&lt;br /&gt;
&lt;br /&gt;
This will download the current &amp;quot;subversion trunk&amp;quot; (latest code) into your home directory into the directory specified in your shell script:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator\vlc-trunk (example)&lt;br /&gt;
&lt;br /&gt;
At the end of the command it will show something like &amp;quot;Checked out revision 18561&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The vlc-trunk folder will get over-written/updated the next time you run the command. If you want to save a so called &amp;quot;snapshot&amp;quot; of the existing vlc-trunk, rename or copy the current directory into something desired (like vlc-trunk-20070112).&lt;br /&gt;
&lt;br /&gt;
NOTE: Updating the source code for additional libraries such as x264, FFmpeg etc. is done by running their corresponding update scripts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Extracting the source from a &amp;quot;snapshot&amp;quot;==&lt;br /&gt;
&lt;br /&gt;
If you are not using SVN to obtain the latest source code but are using a daily &amp;quot;snapshot&amp;quot; then copy that source package from your download/install location to the Cygwin home directory:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell:&lt;br /&gt;
&lt;br /&gt;
 tar xvf vlc-snapshot-20070112.tar.gz (example)&lt;br /&gt;
&lt;br /&gt;
Replace with your version of the source package.&lt;br /&gt;
&lt;br /&gt;
This will extract the contents of the file into a subfolder within your Cygwin environment with the naming convention something like:&lt;br /&gt;
&lt;br /&gt;
 vlc-0.9.0-svn (example)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Installing the Win32 &amp;quot;contrib&amp;quot; package in Cygwin=&lt;br /&gt;
&lt;br /&gt;
First the additional libraries have to be &amp;quot;installed&amp;quot; in Cygwin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Extracting the Win32 &amp;quot;contrib&amp;quot; package==&lt;br /&gt;
&lt;br /&gt;
Copy the &amp;quot;contrib&amp;quot; package from your download/install location to the home directory:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell:&lt;br /&gt;
&lt;br /&gt;
 tar xjvf contrib-20061202-win32-bin-gcc-3.4.5-only.tar.bz2 -C / (example)&lt;br /&gt;
&lt;br /&gt;
Replace with your version of the &amp;quot;contrib&amp;quot; file and DON&#039;T FORGET THE / (slash)&lt;br /&gt;
at the end.&lt;br /&gt;
&lt;br /&gt;
This will extract the contents of the file into usr/win32 folder within your Cygwin environment.&lt;br /&gt;
&lt;br /&gt;
NOTE: Make sure to DELETE your old version instead of extracting a new version on top of it.&lt;br /&gt;
&lt;br /&gt;
==Keeping the Win32 &amp;quot;contrib&amp;quot; package up-to-date==&lt;br /&gt;
&lt;br /&gt;
For maintenance purposes periodically check:&lt;br /&gt;
&lt;br /&gt;
http://download.videolan.org/pub/testing/win32/&lt;br /&gt;
&lt;br /&gt;
to see if a newer &amp;quot;contrib&amp;quot; is available. If that is the case you should DELETE the existing directory structure which is for the precompiled &amp;quot;contrib&amp;quot; package:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\usr\win32 (example)&lt;br /&gt;
&lt;br /&gt;
Download the newer file and follow the installation instructions the same as before so you will end up with the most up-to-date version.&lt;br /&gt;
&lt;br /&gt;
NOTE: Make sure to DELETE your old version instead of extracting a new version on top of it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Configure scripts=&lt;br /&gt;
&lt;br /&gt;
In order to make our lives just a bit easier the following section describes what commandline options should be used for compiling and those commands will then be put into a &amp;quot;script&amp;quot; that can be executed (rather than having to copy and paste all the time).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configure script for compiling VLC==&lt;br /&gt;
&lt;br /&gt;
Create a new text document with the following lines:&lt;br /&gt;
&lt;br /&gt;
  CONTRIB_TREE=/usr/win32&lt;br /&gt;
  PATH=${CONTRIB_TREE}/bin:$PATH \&lt;br /&gt;
  ./bootstrap &amp;amp;&amp;amp; \&lt;br /&gt;
  CPPFLAGS=&amp;quot;-I${CONTRIB_TREE}/include -I${CONTRIB_TREE}/include/ebml&amp;quot; \&lt;br /&gt;
  LDFLAGS=-L${CONTRIB_TREE}/lib \&lt;br /&gt;
  PKG_CONFIG_LIBDIR=${CONTRIB_TREE}/lib/pkgconfig \&lt;br /&gt;
  CC=&amp;quot;gcc -mno-cygwin&amp;quot; CXX=&amp;quot;g++ -mno-cygwin&amp;quot; \&lt;br /&gt;
  ./configure \&lt;br /&gt;
      --host=i686-pc-mingw32 \&lt;br /&gt;
      --enable-sdl --with-sdl-config-path=${CONTRIB_TREE}/bin --disable-gtk \&lt;br /&gt;
      --enable-nls \&lt;br /&gt;
      --enable-ffmpeg --with-ffmpeg-mp3lame --with-ffmpeg-faac \&lt;br /&gt;
      --with-ffmpeg-zlib --enable-faad --enable-flac --enable-theora \&lt;br /&gt;
      --with-wx-config-path=${CONTRIB_TREE}/bin \&lt;br /&gt;
      --with-freetype-config-path=${CONTRIB_TREE}/bin \&lt;br /&gt;
      --with-fribidi-config-path=${CONTRIB_TREE}/bin \&lt;br /&gt;
      --enable-live555 --with-live555-tree=${CONTRIB_TREE}/live.com \&lt;br /&gt;
      --enable-caca --with-caca-config-path=${CONTRIB_TREE}/bin \&lt;br /&gt;
      --with-xml2-config-path=${CONTRIB_TREE}/bin \&lt;br /&gt;
      --with-dvdnav-config-path=${CONTRIB_TREE}/bin \&lt;br /&gt;
      --disable-cddax --disable-vcdx --enable-goom \&lt;br /&gt;
      --enable-twolame --enable-dvdread \&lt;br /&gt;
      --disable-gnomevfs \&lt;br /&gt;
      --enable-dts \&lt;br /&gt;
      --disable-optimizations \&lt;br /&gt;
      --enable-debug \&lt;br /&gt;
&lt;br /&gt;
NOTE: The following option is added for DTS Coherent Acoustics streams decoding support. The latest &amp;quot;contrib&amp;quot; package should already contain libdca (formerly known as libdts) needed to compile this but at present it&#039;s disabled by default:&lt;br /&gt;
&lt;br /&gt;
 --enable-dts&lt;br /&gt;
&lt;br /&gt;
NOTE: For VLC 0.9.0, replace the previous option by:&lt;br /&gt;
&lt;br /&gt;
 --enable-dca&lt;br /&gt;
&lt;br /&gt;
NOTE: The following options are added for debug purposes and makes the final package a bit larger but the advantage is it&#039;s easier to debug in case of crash reports:&lt;br /&gt;
&lt;br /&gt;
 --disable-optimizations&lt;br /&gt;
 --enable-debug&lt;br /&gt;
&lt;br /&gt;
If you want to report a crash bug to the VLC team, it is necessary that you provide a stack backtrace. Unfortunately, Windows automatic crash reporter cannot generate such a backtrace as debug symbols used by GCC compiler aren&#039;t understood by Windows, therefore we suggest that you install Dr. MinGW (http://jrfonseca.dyndns.org/projects/gnu-win32/software/drmingw/) which will extend Windows Just-In-Time Debugger and provide the necessary debug information.&lt;br /&gt;
&lt;br /&gt;
NOTE: The following options is needed for QT4 support:&lt;br /&gt;
&lt;br /&gt;
 --enable-qt4&lt;br /&gt;
&lt;br /&gt;
As of version 0.9.0 VLC will include the QT interface. More information can be found about QT here: http://www.trolltech.com&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Win32 contrib package&amp;quot; at present only includes the linux equivalents of uic, moc and roc executables which are required for building this interface.&lt;br /&gt;
&lt;br /&gt;
The linues executables have to be &#039;&#039;&#039;deleted&#039;&#039;&#039; from the contrib folder:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\usr\win32\bin\moc (example)&lt;br /&gt;
 C:\cygwin\usr\win32\bin\rcc (example)&lt;br /&gt;
 C:\cygwin\usr\win32\bin\uic (example)&lt;br /&gt;
&lt;br /&gt;
The moc, rcc and uic.exe from the [http://www.trolltech.com/developer/downloads/qt/windows Qt/Windows Open Source Edition] (these can be found in the bin folder after installation) have to be placed in the contrib folder:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\usr\win32\bin\moc.exe (example)&lt;br /&gt;
 C:\cygwin\usr\win32\bin\rcc.exe (example)&lt;br /&gt;
 C:\cygwin\usr\win32\bin\uic.exe (example)&lt;br /&gt;
 &lt;br /&gt;
Save as filename in your &amp;quot;scripts&amp;quot; folder at your download/install location:&lt;br /&gt;
&lt;br /&gt;
 configure-vlc.sh&lt;br /&gt;
&lt;br /&gt;
NOTE: Save using &amp;quot;All files&amp;quot; and not &amp;quot;Text files&amp;quot; otherwise Windows might append the extension .txt&lt;br /&gt;
&lt;br /&gt;
Copy the file into your home directory:&lt;br /&gt;
 &lt;br /&gt;
 C:\cygwin\home\Administrator&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell: &lt;br /&gt;
&lt;br /&gt;
 dos2unix configure-vlc.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===POSIX emulation layer===&lt;br /&gt;
&lt;br /&gt;
VLC can be built with or without the so called POSIX emulation layer. Without is the default and is usually better (and with hasn&#039;t been tested for quite some time). If you do want to use the emulation layer, then just leave out the line with the following options:&lt;br /&gt;
&lt;br /&gt;
 CC=&amp;quot;gcc -mno-cygwin&amp;quot; CXX=&amp;quot;g++ -mno-cygwin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===VLC optional settings===&lt;br /&gt;
&lt;br /&gt;
The following option should be used when compiling using the GCC 3.4 version with older &amp;quot;contrib&amp;quot; gcc-3.3.1-only:&lt;br /&gt;
&lt;br /&gt;
 --disable-mkv&lt;br /&gt;
&lt;br /&gt;
==Configure scripts for compiling additional libraries (optional)==&lt;br /&gt;
&lt;br /&gt;
The following section is optional. The &amp;quot;contrib&amp;quot; package contains precompiled libraries but it is possible to update some of those libraries to the most current versions such as x264 and FFmpeg.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===FFmpeg with AMR support (optional)===&lt;br /&gt;
&lt;br /&gt;
The AMR (Adaptive Multi Rate) codec is designed to encode and decode speech with acceptable quality for transmission over relatively low bandwidth channels with minimal latency, typically used in mobile networks (3GP) or voice message applications.&lt;br /&gt;
&lt;br /&gt;
The AMR codec is usually referred to as:&lt;br /&gt;
&lt;br /&gt;
 Narrow Band (AMR-NB, fourcc samr) for low quality&lt;br /&gt;
 Wide Band (AMR-WB, fourcc samw) for high quality&lt;br /&gt;
&lt;br /&gt;
The sources for AMR are not compatible with the GPL (General Public License). AMR support is disabled by default.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Getting the AMR reference codecs (optional)====&lt;br /&gt;
&lt;br /&gt;
The AMR reference codecs can be found on the 3GPP site http://www.3gpp.org at the following download location for zipped source code packages:&lt;br /&gt;
&lt;br /&gt;
http://www.3gpp.org/ftp/Specs/2004-03/Rel-5/26_series/&lt;br /&gt;
&lt;br /&gt;
Download the following 3 packages to a subfolder in your download/install location:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\VLC\src (example)&lt;br /&gt;
&lt;br /&gt;
1.  AMR - latest 26073 package:&lt;br /&gt;
&lt;br /&gt;
http://www.3gpp.org/ftp/Specs/2004-03/Rel-5/26_series/26073-530.zip          (example)&lt;br /&gt;
&lt;br /&gt;
3GPP TS 26.073 V5.3.0 (2004-03) ANSI-C code for the Adaptive Multi Rate (AMR) speech codec (Release 5)&lt;br /&gt;
&lt;br /&gt;
2.  AMR_FLOAT - latest 26104 package:&lt;br /&gt;
&lt;br /&gt;
http://www.3gpp.org/ftp/Specs/2004-03/Rel-5/26_series/26104-540.zip          (example)&lt;br /&gt;
&lt;br /&gt;
3GPP TS 26.104 V 5.4.0 (2004-03) ANSI-C code for the Floating-point Adaptive Multi Rate (AMR) speech codec (Release 5)&lt;br /&gt;
&lt;br /&gt;
3.  AMRWB_FLOAT - latest 26204 package:&lt;br /&gt;
&lt;br /&gt;
http://www.3gpp.org/ftp/Specs/2004-03/Rel-5/26_series/26204-520.zip          (example)&lt;br /&gt;
&lt;br /&gt;
3GPP TS 26.204 V5.2.0 (2003-09) ANSI-C code for Floating-point Adaptive Multi Rate Wideband (AMR-WB) speech codec (Release 5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Extracting the AMR reference codecs (optional)====&lt;br /&gt;
&lt;br /&gt;
The following AMR reference packages should now be in your download/install location:&lt;br /&gt;
&lt;br /&gt;
 26073-530.zip (example)&lt;br /&gt;
 26104-540.zip (example)&lt;br /&gt;
 26204-520.zip (example)&lt;br /&gt;
&lt;br /&gt;
Using your favourite unzipper (Windows internal extraction wizard, WinZIP, WinRAR etc.) extract the zip files in the into the current folder (Windows wizard would use &amp;quot;Extract All&amp;quot; and WinZIP or WinRAR would use &amp;quot;Extract to &#039;foldername&#039; which is the same as the .zip package name&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
This will create the following folders:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\VLC\src\26073-530         &lt;br /&gt;
 C:\Downloads\VLC\src\26104-540         &lt;br /&gt;
 C:\Downloads\VLC\src\26204-520         &lt;br /&gt;
&lt;br /&gt;
Within those folders another .zip package exists. Again unpack those zip files into the current folder:&lt;br /&gt;
&lt;br /&gt;
 26073-530_ANSI_C_source_code      &lt;br /&gt;
 26104-540_ANSI_C_source_code      &lt;br /&gt;
 26204-520_ANSI-C_source_code      &lt;br /&gt;
&lt;br /&gt;
Now each unpacked source code package has an individual folder named &amp;quot;c-code&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Rename the c-code subfolders within each package to amr, amr_float and amrwb_float:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\VLC\src\26073-530\26073-530_ANSI_C_source_code\c-code to amr                  &lt;br /&gt;
 C:\Downloads\VLC\src\26104-540\26104-540_ANSI_C_source_code\c-code to amr_float            &lt;br /&gt;
 C:\Downloads\VLC\src\26204-520\26204-520_ANSI-C_source_code\c-code to amrwb_float          &lt;br /&gt;
&lt;br /&gt;
NOTE: the 530, 540 to 520 order looks a bit confusing but those are actually just version numbers and the folders are shown in the correct alphabetical order.&lt;br /&gt;
&lt;br /&gt;
Copy each of the the following folders (including content, so just select the whole folders itself):&lt;br /&gt;
&lt;br /&gt;
 amr                &lt;br /&gt;
 amr_float         &lt;br /&gt;
 amrwb_float       &lt;br /&gt;
&lt;br /&gt;
to the Cygwin home directory in the libavcodec subfolder of where the FFmpeg package resides:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator\ffmpeg-trunk\libavcodec (example)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===FFmpeg configure script with &amp;quot;contrib&amp;quot; package (optional)===&lt;br /&gt;
&lt;br /&gt;
NOTE: This compile script assumes you are also using the same FFmpeg version as is used in the &amp;quot;contrib&amp;quot; package (this is why the cflags and ldflags also point to the win32 folder where the &amp;quot;contrib&amp;quot; package was extracted).&lt;br /&gt;
&lt;br /&gt;
Create a new text document with the following lines:&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-mingw32 --enable-memalign-hack \&lt;br /&gt;
     --extra-cflags=-I/usr/win32/include \&lt;br /&gt;
     --extra-ldflags=-L/usr/win32/lib \&lt;br /&gt;
     --prefix=/usr/win32 \&lt;br /&gt;
     --cc=&amp;quot;gcc -mno-cygwin&amp;quot; \&lt;br /&gt;
    --enable-faac --enable-mp3lame --enable-pp --enable-gpl --log \&lt;br /&gt;
&lt;br /&gt;
NOTE: For AMR encoding/decoding support also add the following options:&lt;br /&gt;
&lt;br /&gt;
 --enable-amr_nb --enable-amr_wb&lt;br /&gt;
&lt;br /&gt;
NOTE: VLC uses the x264 lib directly and not through ffmpeg so there is no need to add --enable-x264&lt;br /&gt;
&lt;br /&gt;
Save as filename in your &amp;quot;scripts&amp;quot; folder at your download/install location:&lt;br /&gt;
&lt;br /&gt;
 configure-ffmpeg.sh (example)&lt;br /&gt;
&lt;br /&gt;
NOTE: Save using &amp;quot;All files&amp;quot; and not &amp;quot;Text files&amp;quot; otherwise Windows might append the extension .txt&lt;br /&gt;
&lt;br /&gt;
Copy the file into your home directory:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator &lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell: &lt;br /&gt;
&lt;br /&gt;
 dos2unix configure-ffmpeg.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===FFmpeg configure script for FFmpeg &amp;quot;stand-alone&amp;quot; (optional)===&lt;br /&gt;
&lt;br /&gt;
This section is only if FFmpeg compiling is required as a stand-alone package and not in comination with the precompiled &amp;quot;contrib&amp;quot; package.&lt;br /&gt;
&lt;br /&gt;
In case of failure to compile VLC with different settings (added/updated libraries to the &amp;quot;contrib&amp;quot;) it is advisable to test if FFmpeg does compile OK just in &amp;quot;stand-alone&amp;quot; mode.&lt;br /&gt;
&lt;br /&gt;
Create a new text document at the download location with following lines:&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-mingw32 --enable-memalign-hack \&lt;br /&gt;
     --cc=&amp;quot;gcc -mno-cygwin&amp;quot; \&lt;br /&gt;
     --enable-pp --enable-gpl --log \&lt;br /&gt;
&lt;br /&gt;
NOTE: When including libraries the following options should be added/changed, pointing to the appropriate folder where does libraries are located (for VLC &amp;quot;contrib&amp;quot; that would be /usr/win32 but in other situations it might be the default /usr/local):&lt;br /&gt;
&lt;br /&gt;
    --extra-cflags=-I/usr/local/include \&lt;br /&gt;
    --extra-ldflags=-L/usr/local/lib \&lt;br /&gt;
    --prefix=/usr/local \&lt;br /&gt;
&lt;br /&gt;
Save as filename in your &amp;quot;scripts&amp;quot; folder at your download/install location:&lt;br /&gt;
&lt;br /&gt;
 configure-ffmpeg-svn.sh (example)&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell:&lt;br /&gt;
&lt;br /&gt;
 dos2unix configure-ffmpeg.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==x264 configure script (optional)==&lt;br /&gt;
&lt;br /&gt;
Create a new text document with the following lines:&lt;br /&gt;
&lt;br /&gt;
 ./configure \&lt;br /&gt;
    --prefix=/usr/win32 \&lt;br /&gt;
&lt;br /&gt;
NOTE: for debugging purposes you can add the following option:&lt;br /&gt;
&lt;br /&gt;
 --enable-debug&lt;br /&gt;
&lt;br /&gt;
Save as filename in your &amp;quot;scripts&amp;quot; folder at your download/install location:&lt;br /&gt;
&lt;br /&gt;
 configure-x264.sh&lt;br /&gt;
&lt;br /&gt;
NOTE: Save using &amp;quot;All files&amp;quot; and not &amp;quot;Text files&amp;quot; otherwise Windows might append the extension .txt.&lt;br /&gt;
&lt;br /&gt;
Copy the file into your home directory:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell: &lt;br /&gt;
&lt;br /&gt;
 dos2unix configure-x264.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Compiling source code=&lt;br /&gt;
&lt;br /&gt;
It&#039;s time to start Cygwin again...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional libraries==&lt;br /&gt;
&lt;br /&gt;
If any updated or additional libraries are used they need to be compiled first. Since some of these are used indirectly through FFmpeg, FFmpeg should be compiled last.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Compiling x264 (optional)===&lt;br /&gt;
&lt;br /&gt;
This section is only required for x264 compiling where you want to compile x264 yourself in order to use the latest version.&lt;br /&gt;
&lt;br /&gt;
Change to the appropriate x264 folder&lt;br /&gt;
&lt;br /&gt;
 cd x264-trunk (example)&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
If the make proceeded without errors you will have compiled a new library file:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator\x264-trunk\libx264.a (example)&lt;br /&gt;
&lt;br /&gt;
Copy this file into the Cygwin usr/win32 folder:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\usr\win32\lib (example)&lt;br /&gt;
&lt;br /&gt;
Also take the following file .h file:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator\x264-trunk\x264.h (example)&lt;br /&gt;
&lt;br /&gt;
Copy this file into the usr/win32/include folder:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\usr\win32\include (example)&lt;br /&gt;
&lt;br /&gt;
NOTE: This will overwrite the x264.h and libx264.a from the precompiled &amp;quot;contrib&amp;quot; package!&lt;br /&gt;
&lt;br /&gt;
===live555 (optional)===&lt;br /&gt;
&lt;br /&gt;
This section is only required if you want to compile the latest version of live555.&lt;br /&gt;
&lt;br /&gt;
Copy the live555 project packagee from your download/install location to the home directory:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell:&lt;br /&gt;
&lt;br /&gt;
 tar xvf live.2006.05.17.tar.gz (example)&lt;br /&gt;
&lt;br /&gt;
Replace with your version of the source package.&lt;br /&gt;
&lt;br /&gt;
This will extract the contents of the file into a subfolder within your Cygwin environment with the naming convention something like:&lt;br /&gt;
&lt;br /&gt;
 live (example)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Compiling FFmpeg (optional)===&lt;br /&gt;
&lt;br /&gt;
This section is only required for FFmpeg compiling.&lt;br /&gt;
&lt;br /&gt;
Change to the appropriate FFmpeg folder&lt;br /&gt;
&lt;br /&gt;
 cd ffmpeg-trunk (example)&lt;br /&gt;
&lt;br /&gt;
 make clean&lt;br /&gt;
&lt;br /&gt;
 make distclean&lt;br /&gt;
&lt;br /&gt;
(This will haved remove everything except code related stuff, VLC uses a &amp;quot;toolbox&amp;quot; script&lt;br /&gt;
which can clean a bit more).&lt;br /&gt;
&lt;br /&gt;
 ../configure-ffmpeg.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Preparations for AMR support (optional)====&lt;br /&gt;
&lt;br /&gt;
If you included the AMR reference codec sources in FFmpeg you should see that AMR-NB and WB &amp;quot;float support&amp;quot; should be working:&lt;br /&gt;
&lt;br /&gt;
 AMR-NB float support yes&lt;br /&gt;
 AMR-NB fixed support no&lt;br /&gt;
 AMR-WB float support yes&lt;br /&gt;
 AMR-WB IF2 support no&lt;br /&gt;
 network support      no&lt;br /&gt;
 License: GPL&lt;br /&gt;
&lt;br /&gt;
 AMR WB FLOAT NOTICE ! Make sure you have downloaded TS26.204&lt;br /&gt;
 V5.1.0 from http://www.3gpp.org/ftp/Specs/archive/26_series/26.204/26204-510.zip and extracted the source to libavcodec/amrwb_float&lt;br /&gt;
&lt;br /&gt;
 AMR NB FLOAT NOTICE ! Make sure you have downloaded TS26.104 REL-5 V5.1.0 from&lt;br /&gt;
 http://www.3gpp.org/ftp/Specs/archive/26_series/26.104/26104-510.zip and extracted the source to libavcodec/amr_float&lt;br /&gt;
 If you try this on alpha, you may need to change Word32 to int in amr/typedef.h&lt;br /&gt;
&lt;br /&gt;
NOTE: These warnings/notices can be ignored since we are using more recent versions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Building FFmpeg (optional)====&lt;br /&gt;
&lt;br /&gt;
First clean up any leftovers from a previous compile using the following commands:&lt;br /&gt;
&lt;br /&gt;
 make clean&lt;br /&gt;
&lt;br /&gt;
 make distclean&lt;br /&gt;
&lt;br /&gt;
(This will haved remove everything except code related stuff, VLC uses a &amp;quot;toolbox&amp;quot; script&lt;br /&gt;
which can clean a bit more).&lt;br /&gt;
&lt;br /&gt;
Now build FFmpeg with the following command:&lt;br /&gt;
&lt;br /&gt;
 make       &lt;br /&gt;
&lt;br /&gt;
If the make proceeded without errors you will have compiled two new &amp;quot;library&amp;quot; files:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator\ffmpeg-trunk\libavcodec\libavcodec.a (example)&lt;br /&gt;
 C:\cygwin\home\Administrator\ffmpeg-trunk\libavformat\libavformat.a (example)&lt;br /&gt;
&lt;br /&gt;
To copy the appropriate libs and header files to the (extracted) contrib&lt;br /&gt;
folder use:&lt;br /&gt;
&lt;br /&gt;
 make install-libs install-headers&lt;br /&gt;
&lt;br /&gt;
For historical reasons the &amp;quot;old&amp;quot; method is still described here as well:&lt;br /&gt;
&lt;br /&gt;
Copy the library files (with the .a extension) into the Cygwin usr/win32 folder:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\usr\win32\lib (example)&lt;br /&gt;
&lt;br /&gt;
NOTE: This will overwrite libavcodec.a and libavformat.a from the precompiled&lt;br /&gt;
&amp;quot;contrib&amp;quot; package!&lt;br /&gt;
&lt;br /&gt;
For backup reasons you can first copy or rename the original files in the &amp;quot;contrib&amp;quot; package (so you won&#039;t have to reinstall the complete contrib package but can simply copy these again)&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\usr\win32\lib\libavcodec.a to libavcodec.a.org&lt;br /&gt;
 C:\cygwin\usr\win32\lib\libavformat.a to libavformat.a.org&lt;br /&gt;
&lt;br /&gt;
In older versions of ffmpeg the libraries had other names:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator\ffmpeg-20050624\libavcodec\avcodec.lib (example)&lt;br /&gt;
 C:\cygwin\home\Administrator\ffmpeg-20050624\libavformat\avformat.lib (example)&lt;br /&gt;
&lt;br /&gt;
Rename those files (in Windows Explorer):&lt;br /&gt;
&lt;br /&gt;
 avcodec.lib to libavcodec.a&lt;br /&gt;
 avformat.lib to libavformat.a&lt;br /&gt;
&lt;br /&gt;
Then copy those library files into the Cygwin usr/win32 folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Compiling live555 (optional)===&lt;br /&gt;
&lt;br /&gt;
How to configure and build the code on a Linux enviroment is explained on the following live555 page:&lt;br /&gt;
&lt;br /&gt;
http://www.live555.com/liveMedia/#config-unix&lt;br /&gt;
&lt;br /&gt;
Some options need to be changed/added to the config.cygwin file in the live folder so open this file with a text-editor.&lt;br /&gt;
&lt;br /&gt;
Add the -Wno-deprecated option:&lt;br /&gt;
&lt;br /&gt;
 CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall -DBSD=1 -Wno-deprecated&lt;br /&gt;
&lt;br /&gt;
Save the file under its current name config.cygwin&lt;br /&gt;
&lt;br /&gt;
Enter the following commands in your Cygwin shell:&lt;br /&gt;
&lt;br /&gt;
 cd live&lt;br /&gt;
&lt;br /&gt;
The following command is for converting any DOS/Windows &amp;quot;line endings&amp;quot; to UNIX style:&lt;br /&gt;
 &lt;br /&gt;
 dos2unix config.cygwin&lt;br /&gt;
&lt;br /&gt;
 make clean&lt;br /&gt;
&lt;br /&gt;
 ./genMakefiles cygwin&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
TODO: Fix live555 compilation. It still fails with the following errors:&lt;br /&gt;
&lt;br /&gt;
 GroupsockHelper.cpp:477: error: aggregate `ip_mreq_source imr&#039; has incomplete type and cannot be defined&lt;br /&gt;
 GroupsockHelper.cpp:482: error: invalid application of `sizeof&#039; to incomplete type `ip_mreq_source&#039;&lt;br /&gt;
 GroupsockHelper.cpp: In function `Boolean socketLeaveGroupSSM(UsageEnvironment&amp;amp;, int,  netAddressBits, netAddressBits)&#039;:&lt;br /&gt;
 GroupsockHelper.cpp:495: error: aggregate `ip_mreq_source imr&#039; has incomplete type and cannot be defined&lt;br /&gt;
 GroupsockHelper.cpp:500: error: invalid application of `sizeof&#039; to incomplete type  `ip_mreq_source&#039;&lt;br /&gt;
 make[1]: *** [GroupsockHelper.o] Error 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Compiling VLC==&lt;br /&gt;
&lt;br /&gt;
Enter the following commands in your Cygwin shell:&lt;br /&gt;
&lt;br /&gt;
 cd vlc-trunk&lt;br /&gt;
&lt;br /&gt;
(you can check with the pwd command to see in which folder you are and with just the cd&lt;br /&gt;
command without any additional parameters you can change back to your home directory).&lt;br /&gt;
&lt;br /&gt;
NOTE: The following line is optional, only use that if you have problems compiling.&lt;br /&gt;
&lt;br /&gt;
 ./toolbox --distclean&lt;br /&gt;
&lt;br /&gt;
(This will have removed everything except code related stuff).&lt;br /&gt;
&lt;br /&gt;
 ../configure-vlc.sh&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Cross your fingers...&lt;br /&gt;
&lt;br /&gt;
NOTE: ./ means you run an application/script from the &amp;quot;current folder&amp;quot; (which is vlc-trunk) and ../ points to &amp;quot;one directory up&amp;quot; (which is where configure-vlc.sh is).&lt;br /&gt;
&lt;br /&gt;
==Creating self contained packages==&lt;br /&gt;
&lt;br /&gt;
Once the compilation is done, you can either run VLC directly from the source tree or you can build self-contained VLC packages with the following &amp;quot;make&amp;quot; commands:&lt;br /&gt;
&lt;br /&gt;
 make package-win32-base&lt;br /&gt;
&lt;br /&gt;
(This will create a subdirectory named vlc-x.x.x with all the binaries &amp;quot;stripped&amp;quot; without any debugging symbols).&lt;br /&gt;
&lt;br /&gt;
 make package-win32-zip&lt;br /&gt;
&lt;br /&gt;
(Same as above but will package the directory in a zip file).&lt;br /&gt;
&lt;br /&gt;
 make package-win32&lt;br /&gt;
&lt;br /&gt;
(Same as above but will also create an auto-installer package. You will need to have NSIS installed in its default location for this to work).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Advanced usage=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Updating Cygwin package versions==&lt;br /&gt;
&lt;br /&gt;
If you need to update or install additional packages you can just run the Cygwin setup.exe from your download location:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\cygwin\setup.exe          (example)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Using older GCC and MINGW version===&lt;br /&gt;
&lt;br /&gt;
You should be aware that Cygwin automatically selects the latest versions for gcc-g++ and gcc-mingw so if you are using older versions of those (like 3.3.3-3 and the accompanied 20040810-1 packages for mingw) and wish to continue to use them you need to &#039;&#039;&#039;change&#039;&#039;&#039; those versions to &#039;&#039;&#039;Keep&#039;&#039;&#039; for &#039;&#039;&#039;every time you use the update process&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
NOTE: You can click on the &amp;quot;View&amp;quot; button a few times until you see &amp;quot;Partial&amp;quot; next to it. This will give you an overview of some &amp;quot;Current&amp;quot; packages that will be updated to &amp;quot;New&amp;quot; versions.&lt;br /&gt;
&lt;br /&gt;
select the View button until it reaches: Partial&lt;br /&gt;
&lt;br /&gt;
 Devel&lt;br /&gt;
   3.4.4-3      gcc-core         -&amp;gt; change version to &#039;&#039;&#039;Keep&#039;&#039;&#039;&lt;br /&gt;
   3.4.4-3      gcc-g++          -&amp;gt; change version to &#039;&#039;&#039;Keep&#039;&#039;&#039;&lt;br /&gt;
   20050522-1   gcc-mingw-core   -&amp;gt; change version to &#039;&#039;&#039;Keep&#039;&#039;&#039;&lt;br /&gt;
   20050522-1   gcc-mingw-g++    -&amp;gt; change version to &#039;&#039;&#039;Keep&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Selecting the 3.4.4-3 version automatically changes the gcc-mingw-core and gcc-mingw-g++ to the 20050522-1 (or newer) versions as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Downgrading Cygwin GCC packages===&lt;br /&gt;
&lt;br /&gt;
If your Cygwin gcc versions are already the latest and you wish to downgrade to gcc 3.3.3-3 then it&#039;s not possible to downgrade the gcc-core/g++ and the mingw packages all at the same time, it has to be done in two steps.&lt;br /&gt;
&lt;br /&gt;
select the View button until it reaches: Up To Date&lt;br /&gt;
&lt;br /&gt;
 Devel&lt;br /&gt;
   3.4.4-3      gcc-core   -&amp;gt; change version to &#039;&#039;&#039;3.3.3-3&#039;&#039;&#039;&lt;br /&gt;
   3.4.4-3      gcc-g++    -&amp;gt; change version to &#039;&#039;&#039;3.3.3-3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Install, OK.&lt;br /&gt;
&lt;br /&gt;
Restart the Cygwin update process.&lt;br /&gt;
&lt;br /&gt;
Select the View button until it reaches: Partial&lt;br /&gt;
&lt;br /&gt;
 Devel&lt;br /&gt;
   3.4.4-3      gcc-core   -&amp;gt; change version to &#039;&#039;&#039;Keep&#039;&#039;&#039;&lt;br /&gt;
   3.4.4-3      gcc-g++    -&amp;gt; change version to &#039;&#039;&#039;Keep&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Select the View button until it reaches: Up To Date&lt;br /&gt;
&lt;br /&gt;
 Devel&lt;br /&gt;
   20050522-1   gcc-mingw-core   -&amp;gt; change version to &#039;&#039;&#039;20040810-1&#039;&#039;&#039; &lt;br /&gt;
   20050522-1   gcc-mingw-g++    -&amp;gt; change version to &#039;&#039;&#039;20040810-1&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Install, OK.&lt;br /&gt;
&lt;br /&gt;
Again, for any new update process remember to change back those versions!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDB (Gnu Debugger)==&lt;br /&gt;
&lt;br /&gt;
This section requires that you installed the gdb (Gnu Debugger) in Cygwin.&lt;br /&gt;
&lt;br /&gt;
This is a typical example of creating a crashlog:&lt;br /&gt;
&lt;br /&gt;
 cd vlc-trunk&lt;br /&gt;
&lt;br /&gt;
 gdb vlc.exe&lt;br /&gt;
&lt;br /&gt;
NOTE: vlc-0.9.0 uses libtool for building sources, if you want to debug from the source tree, you should type the following command&lt;br /&gt;
&lt;br /&gt;
 libtool --execute gdb vlc&lt;br /&gt;
&lt;br /&gt;
In the debugger mode run the program and make sure you reset the preferences!&lt;br /&gt;
&lt;br /&gt;
 (gdb) run --fast-mutex --reset-config --reset-plugins-cache&lt;br /&gt;
&lt;br /&gt;
NOTE: the (gdb) is just a prompt which means you are in the debugger mode, &#039;&#039;--fast-mutex&#039;&#039; option is no longer necessary in vlc-0.9.0&lt;br /&gt;
&lt;br /&gt;
It will now take a lot longer than usual for VLC to start :)&lt;br /&gt;
&lt;br /&gt;
Now operate VLC as you would normally do. As soon as a crash issue occurs&lt;br /&gt;
you&#039;ll notice a line like this:&lt;br /&gt;
&lt;br /&gt;
 Program received signal SIGSEGV, Segmentation fault.&lt;br /&gt;
 0x0041394c in playlist_ItemGetById (p_playlist=0x19ec4f8, i_id=29)&lt;br /&gt;
     at src/playlist/item-ext.c:459&lt;br /&gt;
 ---Type &amp;lt;return&amp;gt; to continue, or q &amp;lt;return&amp;gt; to quit---&lt;br /&gt;
 459             i = i_bottom + ( i_top - i_bottom ) / 2;&lt;br /&gt;
&lt;br /&gt;
Now you can do a &amp;quot;backtrace&amp;quot; by using the bt command:&lt;br /&gt;
&lt;br /&gt;
 (gdb) bt&lt;br /&gt;
&lt;br /&gt;
And output similar to this will be created:&lt;br /&gt;
&lt;br /&gt;
 #0  0x0041394c in playlist_ItemGetById (p_playlist=0x19ec4f8, i_id=29) &lt;br /&gt;
     at src/playlist/item-ext.c:459&lt;br /&gt;
 #1  0x0b26bbf7 in wxvlc::Playlist::CountItems (this=0x1822e288, root=&lt;br /&gt;
       {m_pItem = 0x29fef8}) at playlist.cpp:695&lt;br /&gt;
 #2  0x0b26bc83 in wxvlc::Playlist::CountItems (this=0x1822e288, root=&lt;br /&gt;
       {m_pItem = 0x29e8b0}) at playlist.cpp:689&lt;br /&gt;
 #3  0x0b26bc83 in wxvlc::Playlist::CountItems (this=0x1822e288, root=&lt;br /&gt;
       {m_pItem = 0x29a818}) at playlist.cpp:689&lt;br /&gt;
 #4  0x0b26bc83 in wxvlc::Playlist::CountItems (this=0x1822e288, root=&lt;br /&gt;
       {m_pItem = 0x299718}) at playlist.cpp:689&lt;br /&gt;
 #5  0x0b26bc83 in wxvlc::Playlist::CountItems (this=0x1822e288, root=&lt;br /&gt;
       {m_pItem = 0xffff0000}) at playlist.cpp:689&lt;br /&gt;
 #6  0x0b26bf49 in wxvlc::Playlist::AppendItem (this=0x1822e288,&lt;br /&gt;
     event=@0x1827afd0) at playlist.cpp:564&lt;br /&gt;
 #7  0x0b2757fc in wxvlc::Playlist::OnPlaylistEvent (this=0x1822e288,&lt;br /&gt;
     event=@0x1827afd0) at playlist.cpp:1438&lt;br /&gt;
 #8  0x0b3771b8 in wxEvtHandler::ProcessEventIfMatches ()&lt;br /&gt;
     at /usr/win32/include/wx-2.6/wx/event.h:2183&lt;br /&gt;
 #9  0x0b376a1c in wxEventHashTable::HandleEvent ()&lt;br /&gt;
     at /usr/win32/include/wx-2.6/wx/event.h:2183&lt;br /&gt;
 #10 0x0b37730d in wxEvtHandler::ProcessEvent ()&lt;br /&gt;
     at /usr/win32/include/wx-2.6/wx/event.h:2183&lt;br /&gt;
 #11 0x0b37711b in wxEvtHandler::ProcessPendingEvents ()&lt;br /&gt;
     at /usr/win32/include/wx-2.6/wx/event.h:2183&lt;br /&gt;
 ---Type &amp;lt;return&amp;gt; to continue, or q &amp;lt;return&amp;gt; to quit---&lt;br /&gt;
 #12 0x0b376017 in wxAppConsole::ProcessPendingEvents ()&lt;br /&gt;
     at /usr/win32/include/wx-2.6/wx/event.h:2183&lt;br /&gt;
 #13 0x0b3ec75a in wxIdleWakeUpModule::MsgHookProc ()&lt;br /&gt;
     at /usr/win32/include/wx-2.6/wx/bmpbuttn.h:81&lt;br /&gt;
 #14 0x773aca2d in USER32!GetScrollRange ()&lt;br /&gt;
    from /cygdrive/c/WINDOWS/system32/user32.dll&lt;br /&gt;
 #15 0x00000000 in ?? () from&lt;br /&gt;
 (gdb)&lt;br /&gt;
&lt;br /&gt;
These are the log outputs that are more usefull to developers than just mentioning &amp;quot;it crashes&amp;quot;!&lt;br /&gt;
&lt;br /&gt;
NOTE: In GDB mode there are sometimes situations where GDB initially &amp;quot;crashes&amp;quot; on certain network activity (opening network shares, network traffic) which in normal operation does not occur. Just select c for continue until &amp;quot;normal&amp;quot; operation continues.&lt;br /&gt;
&lt;br /&gt;
==.diff files==&lt;br /&gt;
&lt;br /&gt;
Frequently patches to source code are presented or discussed in forums or in mailing lists in so called .diff format (these are &amp;quot;differences&amp;quot; to the source code).&lt;br /&gt;
&lt;br /&gt;
You can apply those patches yourself to the source code or create .diff files. This requires the patchutils package in Cygwin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Patching source code===&lt;br /&gt;
&lt;br /&gt;
Download a so called .diff file:&lt;br /&gt;
&lt;br /&gt;
 sse2-pixel-routines-v3.diff (example)&lt;br /&gt;
&lt;br /&gt;
NOTE: make sure the file doesn&#039;t get a .txt extension, so Save as type &amp;quot;All Files&amp;quot; instead of &amp;quot;Text Document&amp;quot; (IE has a habit of renaming to .txt. If that happens just simply rename to .diff)&lt;br /&gt;
&lt;br /&gt;
Copy the .diff file into the appropriate source folder&lt;br /&gt;
&lt;br /&gt;
 x264-trunk (example)&lt;br /&gt;
&lt;br /&gt;
Apply the patch as follows&lt;br /&gt;
&lt;br /&gt;
 patch -p0 &amp;lt; sse2-pixel-routines-v3.diff (example)&lt;br /&gt;
&lt;br /&gt;
NOTE: replace sse2-pixel-routines-v3.diff with your &amp;quot;patch&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will output something like:&lt;br /&gt;
&lt;br /&gt;
 patching file common/i386/pixel.h&lt;br /&gt;
 patching file common/i386/pixel-a.asm&lt;br /&gt;
 patching file common/pixel.c&lt;br /&gt;
&lt;br /&gt;
Your source code is now patched!&lt;br /&gt;
&lt;br /&gt;
NOTE: If you want to revert to the original version you can use the -R option with the patch command or alternatively you can just delete the changed files and just do an SVN update to get the original/latest SVN version back.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Creating .diff files===&lt;br /&gt;
&lt;br /&gt;
When changing the source code it&#039;s possible to create a &amp;quot;difference&amp;quot; file against the latest source.&lt;br /&gt;
&lt;br /&gt;
In this example the file /modules/codec/x264.c was changed (the part &amp;quot;in kbit/s&amp;quot; was added to a description).&lt;br /&gt;
&lt;br /&gt;
Start your Cygwin shell.&lt;br /&gt;
&lt;br /&gt;
Change to the appropriate folder where a changed file is.&lt;br /&gt;
&lt;br /&gt;
 cd vlc-trunk/modules/codec (example)&lt;br /&gt;
&lt;br /&gt;
Output the svn diff command to a file:&lt;br /&gt;
&lt;br /&gt;
 svn diff -u &amp;gt; x264-patch.diff&lt;br /&gt;
&lt;br /&gt;
The current folder now holds a x264-patch.diff file containing the following:&lt;br /&gt;
&lt;br /&gt;
 Index: x264.c&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- x264.c      (revision 15921)&lt;br /&gt;
 +++ x264.c      (working copy)&lt;br /&gt;
 @@ -131,7 +131,7 @@&lt;br /&gt;
  #define RATETOL_LONGTEXT N_( &amp;quot;Allowed variance in average. &amp;quot; \&lt;br /&gt;
      &amp;quot;bitrate (in kbits/s).&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 -#define VBV_MAXRATE_TEXT N_(&amp;quot;Max local bitrate&amp;quot;)&lt;br /&gt;
 +#define VBV_MAXRATE_TEXT N_(&amp;quot;Max local bitrate in kbit/s&amp;quot;)&lt;br /&gt;
  #define VBV_MAXRATE_LONGTEXT N_( &amp;quot;Sets a maximum local bitrate in kbits/s.&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
  #define VBV_BUFSIZE_TEXT N_(&amp;quot;VBV buffer&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
NOTE: In Windows you should open this file with something else than notepad (so wordpad or some more advanced editor). This has to do with the end of line markers that are present in the file since it was made in a Linux environment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reverting to older SVN source code==&lt;br /&gt;
&lt;br /&gt;
If for some reason you want to revert to (use) an older version (let&#039;s say you are using  revision 15916 of the VLC source code but would like to test with 15915) then use the svn &amp;quot;update&amp;quot; function from within Cygwin but use an older revision number.&lt;br /&gt;
&lt;br /&gt;
Start your Cygwin shell...&lt;br /&gt;
&lt;br /&gt;
 cd vlc-trunk&lt;br /&gt;
&lt;br /&gt;
 svn up -r 15915&lt;br /&gt;
&lt;br /&gt;
And you&#039;ll see something like this:&lt;br /&gt;
&lt;br /&gt;
 U    src\input\input.c&lt;br /&gt;
 Updated to revision 15915.&lt;br /&gt;
&lt;br /&gt;
The following command will show the version used:&lt;br /&gt;
&lt;br /&gt;
 svn info&lt;br /&gt;
&lt;br /&gt;
=FAQ/Troubleshooting=&lt;br /&gt;
&lt;br /&gt;
This chapter mentions some frequently encountered problems during compile and installation procedures and possible fixes or workarounds.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Making all in &amp;lt;folder&amp;gt;&amp;quot; takes forever with 0% CPU usage==&lt;br /&gt;
&lt;br /&gt;
Make seems to &amp;quot;stall&amp;quot; at a certain point (no CPU usage) and nothing seems to happen anymore:&lt;br /&gt;
&lt;br /&gt;
 Making all in mpeg&lt;br /&gt;
 make[5]: Entering directory `/home/Administrator/vlc-trunk/modules/mux/mpeg&#039;&lt;br /&gt;
&lt;br /&gt;
NOTE: This problem seems to occur on dual CPU (or HyperThreading enabled)&lt;br /&gt;
systems.&lt;br /&gt;
&lt;br /&gt;
FIX: in the vlc-trunk do a ./toolbox --distclean before doing a ../configure-vlc.sh and try again...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==configure: error: C compiler cannot create executables==&lt;br /&gt;
&lt;br /&gt;
The ../configure-vlc.sh gives the following error:&lt;br /&gt;
&lt;br /&gt;
 checking for gcc... gcc -mno-cygwin&lt;br /&gt;
 checking for C compiler default output file name... configure: error: C compiler&lt;br /&gt;
 cannot create executables&lt;br /&gt;
&lt;br /&gt;
FIX: it&#039;s very likely you are using the gcc 3.3 version but with the wrong mingw packages (the ones that come with 3.4). Reinstall the following gcc-mingw packages but make sure to use the older version!!!&lt;br /&gt;
&lt;br /&gt;
20050522-1      gcc-mingw-core  autoselected -&amp;gt;  change to 20040810-1&lt;br /&gt;
20050522-1      gcc-mingw-g++ 	autoselected -&amp;gt;  change to 20040810-1&lt;br /&gt;
&lt;br /&gt;
You can check what version of gcc you are version in the Cygwin shell by using the following command:&lt;br /&gt;
&lt;br /&gt;
 gcc --version&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==collect2: ld returned 1 exit status (libebml)==&lt;br /&gt;
&lt;br /&gt;
A make fails with the following error:&lt;br /&gt;
&lt;br /&gt;
 /usr/win32/lib/libebml.a(EbmlMaster.o):EbmlMaster.cpp:(.text$_ZNSt14__simple_all&lt;br /&gt;
 ocISsSt24__default_alloc_templateILb1ELi0EEE10deallocateEPSsj[std::__simple_allo&lt;br /&gt;
 c&amp;lt;std::basic_string&amp;lt;char, std::char_traits&amp;lt;char&amp;gt;, std::allocator&amp;lt;char&amp;gt; &amp;gt;, std::_&lt;br /&gt;
 _default_alloc_template&amp;lt;true, 0&amp;gt; &amp;gt;::deallocate(std::basic_string&amp;lt;char, std::char&lt;br /&gt;
 _traits&amp;lt;char&amp;gt;, std::allocator&amp;lt;char&amp;gt; &amp;gt;*, unsigned int)]+0x1d): undefined referenc&lt;br /&gt;
 e to `std::__default_alloc_template&amp;lt;true, 0&amp;gt;::deallocate(void*, unsigned int)&#039;&lt;br /&gt;
 /usr/win32/lib/libebml.a(EbmlMaster.o):EbmlMaster.cpp:(.text$_ZNSt14__simple_all&lt;br /&gt;
 ocISsSt24__default_alloc_templateILb1ELi0EEE8allocateEj[std::__simple_alloc&amp;lt;std:&lt;br /&gt;
 :basic_string&amp;lt;char, std::char_traits&amp;lt;char&amp;gt;, std::allocator&amp;lt;char&amp;gt; &amp;gt;, std::__defau&lt;br /&gt;
 lt_alloc_template&amp;lt;true, 0&amp;gt; &amp;gt;::allocate(unsigned int)]+0x1d): undefined reference&lt;br /&gt;
  to `std::__default_alloc_template&amp;lt;true, 0&amp;gt;::allocate(unsigned int)&#039;&lt;br /&gt;
 /usr/win32/lib/libebml.a(EbmlMaster.o):EbmlMaster.cpp:(.text$_ZNSt14__simple_all&lt;br /&gt;
 ocIPN7libebml11EbmlElementESt24__default_alloc_templateILb1ELi0EEE8allocateEj[st&lt;br /&gt;
 d::__simple_alloc&amp;lt;libebml::EbmlElement*, std::__default_alloc_template&amp;lt;true, 0&amp;gt;&lt;br /&gt;
 &amp;gt;::allocate(unsigned int)]+0x1d): undefined reference to `std::__default_alloc_t&lt;br /&gt;
 emplate&amp;lt;true, 0&amp;gt;::allocate(unsigned int)&#039;&lt;br /&gt;
 /usr/win32/lib/libebml.a(EbmlMaster.o):EbmlMaster.cpp:(.text$_ZNSt14__simple_all&lt;br /&gt;
 ocIPN7libebml11EbmlElementESt24__default_alloc_templateILb1ELi0EEE10deallocateEP&lt;br /&gt;
 S2_j[std::__simple_alloc&amp;lt;libebml::EbmlElement*, std::__default_alloc_template&amp;lt;tr&lt;br /&gt;
 ue, 0&amp;gt; &amp;gt;::deallocate(libebml::EbmlElement**, unsigned int)]+0x1d): undefined ref&lt;br /&gt;
 erence to `std::__default_alloc_template&amp;lt;true, 0&amp;gt;::deallocate(void*, unsigned in&lt;br /&gt;
 t)&#039;&lt;br /&gt;
 collect2: ld returned 1 exit status&lt;br /&gt;
 make[2]: *** [vlc.exe] Error 1&lt;br /&gt;
&lt;br /&gt;
This problem is because libEbml is a C++ lib and it doesn&#039;t seem to link with gcc 3.4.&lt;br /&gt;
&lt;br /&gt;
FIX: Use gcc 3.3 with the according 3.3 Win32 &amp;quot;contrib&amp;quot; package version or use a Win32 &amp;quot;contrib&amp;quot; package for 3.4 (or even better try compiling it yourself).&lt;br /&gt;
&lt;br /&gt;
WORKAROUND for gcc 3.4: Use --disable-mkv in configure-vlc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==zip: command not found==&lt;br /&gt;
&lt;br /&gt;
A make package fails with the following error:&lt;br /&gt;
&lt;br /&gt;
 zip -r vlc-0.8.4-svn-win32.zip vlc-0.8.4-svn&lt;br /&gt;
 /bin/bash: line 1: zip: command not found&lt;br /&gt;
 make: *** [package-win32-base-zip] Error 127&lt;br /&gt;
&lt;br /&gt;
FIX: Doh! forgot to install the zip package in Cygwin :P&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==vlc.exe: Permission denied==&lt;br /&gt;
&lt;br /&gt;
A make finished successfully and produced vlc.exe, but running the executable returns the following:&lt;br /&gt;
&lt;br /&gt;
 bash: ./vlc.exe: Permission denied&lt;br /&gt;
&lt;br /&gt;
The permissions on both vlc.exe &amp;amp; vlc.exe.manifest must be set to executable. &lt;br /&gt;
&lt;br /&gt;
FIX: Type the following:&lt;br /&gt;
 &lt;br /&gt;
 chmod 755 vlc.exe vlc.exe.manifest&lt;br /&gt;
&lt;br /&gt;
==error: parse error before &#039;(&#039; token==&lt;br /&gt;
&lt;br /&gt;
A make (compile) of FFmpeg results in the following error:&lt;br /&gt;
&lt;br /&gt;
 /usr/include/sys/unistd.h:203: error: parse error before &#039;(&#039; token&lt;br /&gt;
 make[1]: *** [ffm.o] Error 1&lt;br /&gt;
&lt;br /&gt;
It&#039;s very likely you are usix the POSIX emulater which you shouldn&#039;t...&lt;br /&gt;
&lt;br /&gt;
FIX: compile with the option &lt;br /&gt;
&lt;br /&gt;
 -mno-cygwin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==error: invalid conversion from `const void*&#039; to `void*&#039;==&lt;br /&gt;
&lt;br /&gt;
 src/theme_loader.cpp: In function `int gzwrite_frontend(int, const void*, size_t)&#039;:&lt;br /&gt;
 src/theme_loader.cpp:599: error: invalid conversion from `const void*&#039; to `void*&#039;&lt;br /&gt;
 src/theme_loader.cpp:599: error:   initializing argument 2 of `int gzwrite(void*,&lt;br /&gt;
 void*, unsigned int)&#039;&lt;br /&gt;
 make[6]: *** [libskins2_plugin_a-theme_loader.o] Error 1&lt;br /&gt;
&lt;br /&gt;
FIX: This is related to a problem with the zlib library, updating to at least 1.2.2-1 but preferably 1.2.3 or newer is required&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==error: cannot convert `const wxChar*&#039; to `const char*==&lt;br /&gt;
&lt;br /&gt;
 if g++ -mno-cygwin -DHAVE_CONFIG_H -I. -I. -I../../..   -I/usr/win32/include -I/&lt;br /&gt;
 usr/win32/include/ebml -D_OFF_T_ -D_off_t=long -DSYS_MINGW32 -I../../../include&lt;br /&gt;
 `top_builddir=&amp;quot;../../..&amp;quot; ../../../vlc-config --cxxflags plugin wxwidgets` -Wsign&lt;br /&gt;
 -compare -Wsign-compare -Wall  -mms-bitfields -pipe -MT libwxwidgets_plugin_a-wx&lt;br /&gt;
 widgets.o -MD -MP -MF &amp;quot;.deps/libwxwidgets_plugin_a-wxwidgets.Tpo&amp;quot; -c -o libwxwid&lt;br /&gt;
 gets_plugin_a-wxwidgets.o `test -f &#039;wxwidgets.cpp&#039; || echo &#039;./&#039;`wxwidgets.cpp; \&lt;br /&gt;
 then mv -f &amp;quot;.deps/libwxwidgets_plugin_a-wxwidgets.Tpo&amp;quot; &amp;quot;.deps/libwxwidgets_plugi&lt;br /&gt;
 n_a-wxwidgets.Po&amp;quot;; else rm -f &amp;quot;.deps/libwxwidgets_plugin_a-wxwidgets.Tpo&amp;quot;; exit&lt;br /&gt;
 1; fi&lt;br /&gt;
 In file included from /usr/win32/include/wx-2.6/wx/debug.h:22,&lt;br /&gt;
                  from /usr/win32/include/wx-2.6/wx/defs.h:452,&lt;br /&gt;
                  from /usr/win32/include/wx-2.6/wx/wxprec.h:13,&lt;br /&gt;
                  from wxwidgets.h:40,&lt;br /&gt;
                  from wxwidgets.cpp:39:&lt;br /&gt;
 /usr/win32/include/wx-2.6/wx/wxchar.h: In function `size_t wxStrlen(const wxChar&lt;br /&gt;
 *)&#039;:&lt;br /&gt;
 /usr/win32/include/wx-2.6/wx/wxchar.h:759: error: cannot convert `const wxChar*&#039;&lt;br /&gt;
  to `const char*&#039; for argument `1&#039; to `size_t strlen(const char*)&#039;&lt;br /&gt;
 In file included from /usr/win32/include/wx-2.6/wx/memory.h:20,&lt;br /&gt;
                  from /usr/win32/include/wx-2.6/wx/object.h:25,&lt;br /&gt;
                  from /usr/win32/include/wx-2.6/wx/wx.h:16,&lt;br /&gt;
                  from wxwidgets.h:41,&lt;br /&gt;
                  from wxwidgets.cpp:39:&lt;br /&gt;
 /usr/win32/include/wx-2.6/wx/string.h: In constructor `wxString::wxString(const&lt;br /&gt;
 wxChar*)&#039;:&lt;br /&gt;
&lt;br /&gt;
FIX: update wxwidgets or try a different or newer Win32 &amp;quot;contrib&amp;quot; package.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==undefined reference to `_av_parser_change&#039; (FFmpeg)==&lt;br /&gt;
&lt;br /&gt;
 ffmpeg.o: In function `output_packet&#039;:&lt;br /&gt;
 /home/Administrator/FFmpeg-20050724/ffmpeg.c:1414: undefined reference to `_av_parser_change&#039;&lt;br /&gt;
 /home/Administrator/FFmpeg-20050724/ffmpeg.c:1415: undefined reference to `_av_destruct_packet&#039;&lt;br /&gt;
 collect2: ld returned 1 exit status&lt;br /&gt;
 make: *** [ffmpeg_g.exe] Error 1&lt;br /&gt;
&lt;br /&gt;
This is a possible conflict when you use normal configure-ffmpeg (uses /usr/win32&lt;br /&gt;
contrib) instead of configure-ffmpeg-svn&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==undefined reference to `_pp_get_context&#039; (FFmpeg)==&lt;br /&gt;
&lt;br /&gt;
 ./modules/codec/ffmpeg/libffmpeg.a(libffmpeg_a-postprocess.o): In function `Init&lt;br /&gt;
 Postproc__ffmpeg&#039;:&lt;br /&gt;
 /home/Administrator/vlc-trunk/modules/codec/ffmpeg/postprocess.c:164: undefined&lt;br /&gt;
 reference to `_pp_get_context&#039;&lt;br /&gt;
 ./modules/codec/ffmpeg/libffmpeg.a(libffmpeg_a-postprocess.o): In function `PPQC&lt;br /&gt;
 allback&#039;:&lt;br /&gt;
 /home/Administrator/vlc-trunk/modules/codec/ffmpeg/postprocess.c:244: undefined&lt;br /&gt;
 reference to `_pp_get_mode_by_name_and_quality&#039;&lt;br /&gt;
 ./modules/codec/ffmpeg/libffmpeg.a(libffmpeg_a-postprocess.o): In function `Post&lt;br /&gt;
 procPict__ffmpeg&#039;:&lt;br /&gt;
 /home/Administrator/vlc-trunk/modules/codec/ffmpeg/postprocess.c:191: undefined&lt;br /&gt;
 reference to `_pp_postprocess&#039;&lt;br /&gt;
 $&lt;br /&gt;
 ePostproc__ffmpeg&#039;:&lt;br /&gt;
 /home/Administrator/vlc-trunk/modules/codec/ffmpeg/postprocess.c:209: undefined&lt;br /&gt;
 reference to `_pp_free_mode&#039;&lt;br /&gt;
 /home/Administrator/vlc-trunk/modules/codec/ffmpeg/postprocess.c:210: undefined&lt;br /&gt;
 reference to `_pp_free_context&#039;&lt;br /&gt;
 collect2: ld returned 1 exit status&lt;br /&gt;
 make[2]: *** [vlc.exe] Error 1&lt;br /&gt;
 make[2]: Leaving directory `/home/Administrator/vlc-trunk&#039;&lt;br /&gt;
 make[1]: *** [all-recursive] Error 1&lt;br /&gt;
 make[1]: Leaving directory `/home/Administrator/vlc-trunk&#039;&lt;br /&gt;
 make: *** [all] Error 2&lt;br /&gt;
&lt;br /&gt;
FFmpeg was not compiled with post processing support. To do so the following options need to be added to the configure lines for FFmpeg:&lt;br /&gt;
&lt;br /&gt;
 --enable-pp --enable-gpl&lt;br /&gt;
&lt;br /&gt;
Postprocessing code is under GPL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==error: expected primary-expression before &#039;&amp;lt;&amp;lt;&#039; token==&lt;br /&gt;
&lt;br /&gt;
 In file included from /usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../include/w32&lt;br /&gt;
 api/windows.h:52,&lt;br /&gt;
                  from ../../../include/vlc_common.h:459,&lt;br /&gt;
                  from ../../../include/vlc/vlc.h:153,&lt;br /&gt;
                  from dshow.cpp:31:&lt;br /&gt;
 /usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../include/w32api/wingdi.h:3:1: warn&lt;br /&gt;
 ing: this is the location of the previous definition&lt;br /&gt;
 In file included from /usr/win32/include/dshow.h:35,&lt;br /&gt;
                  from common.h:45,&lt;br /&gt;
                  from dshow.cpp:35:&lt;br /&gt;
 /usr/win32/include/ddraw.h:14: warning: ignoring #pragma warning&lt;br /&gt;
 In file included from /usr/win32/include/dshow.h:35,&lt;br /&gt;
                  from common.h:45,&lt;br /&gt;
                  from dshow.cpp:35:&lt;br /&gt;
 /usr/win32/include/ddraw.h:5552: warning: ignoring #pragma warning&lt;br /&gt;
 In file included from /usr/win32/include/dshow.h:45,&lt;br /&gt;
                  from common.h:45,&lt;br /&gt;
                  from dshow.cpp:35:&lt;br /&gt;
 /usr/win32/include/strmif.h:2: warning: ignoring #pragma warning&lt;br /&gt;
 In file included from /usr/win32/include/dsound.h:13,&lt;br /&gt;
                  from /usr/win32/include/amaudio.h:18,&lt;br /&gt;
                  from /usr/win32/include/dshow.h:47,&lt;br /&gt;
                  from common.h:45,&lt;br /&gt;
                  from dshow.cpp:35:&lt;br /&gt;
 /usr/win32/include/d3dtypes.h:22: warning: ignoring #pragma warning&lt;br /&gt;
 /usr/win32/include/d3dtypes.h:1813: warning: ignoring #pragma warning&lt;br /&gt;
 In file included from /usr/win32/include/dshow.h:48,&lt;br /&gt;
                  from common.h:45,&lt;br /&gt;
                  from dshow.cpp:35:&lt;br /&gt;
 /usr/win32/include/control.h:2: warning: ignoring #pragma warning&lt;br /&gt;
 dshow.cpp: In function `int CommonOpen(vlc_object_t*, access_sys_t*, vlc_bool_t)&lt;br /&gt;
 &#039;:&lt;br /&gt;
 dshow.cpp:456: error: expected primary-expression before &#039;&amp;lt;&amp;lt;&#039; token&lt;br /&gt;
 dshow.cpp:456: error: expected primary-expression before &#039;&amp;lt;&amp;lt;&#039; token&lt;br /&gt;
 dshow.cpp:456: error: expected primary-expression before &#039;&amp;lt;&amp;lt;&#039; token&lt;br /&gt;
 dshow.cpp:456: error: expected primary-expression before &#039;&amp;lt;&#039; token&lt;br /&gt;
 dshow.cpp:456: error: expected primary-expression before &#039;.&#039; token&lt;br /&gt;
 dshow.cpp:470: error: expected primary-expression before &#039;==&#039; token&lt;br /&gt;
 dshow.cpp:470: error: expected primary-expression before &#039;==&#039; token&lt;br /&gt;
 dshow.cpp:470: error: expected primary-expression before &#039;==&#039; token&lt;br /&gt;
 dshow.cpp:470: error: expected primary-expression before &#039;=&#039; token&lt;br /&gt;
 dshow.cpp:484: error: expected primary-expression before &#039;&amp;gt;&amp;gt;&#039; token&lt;br /&gt;
 dshow.cpp:484: error: expected primary-expression before &#039;&amp;gt;&amp;gt;&#039; token&lt;br /&gt;
 dshow.cpp:484: error: expected primary-expression before &#039;&amp;gt;&amp;gt;&#039; token&lt;br /&gt;
 dshow.cpp:484: error: expected primary-expression before &#039;&amp;gt;&#039; token&lt;br /&gt;
 dshow.cpp:484: error: expected primary-expression before &#039;.&#039; token&lt;br /&gt;
 dshow.cpp:485: error: expected `;&#039; before &amp;quot;IAMCrossbar&amp;quot;&lt;br /&gt;
 dshow.cpp:491: error: `pXbar&#039; undeclared (first use this function)&lt;br /&gt;
 dshow.cpp:491: error: (Each undeclared identifier is reported only once for each&lt;br /&gt;
 function it appears in.)&lt;br /&gt;
 make[6]: *** [libdshow_plugin_a-dshow.o] Error 1&lt;br /&gt;
 make[6]: Leaving directory `/home/Administrator/vlc-trunk/modules/access/dshow&#039;&lt;br /&gt;
 make[5]: *** [all-modules] Error 1&lt;br /&gt;
 make[5]: Leaving directory `/home/Administrator/vlc-trunk/modules/access/dshow&#039;&lt;br /&gt;
 make[4]: *** [all-recursive] Error 1&lt;br /&gt;
 make[4]: Leaving directory `/home/Administrator/vlc-trunk/modules/access&#039;&lt;br /&gt;
 make[3]: *** [all] Error 2&lt;br /&gt;
&lt;br /&gt;
Basically in case of conflict svn adds &amp;quot;&amp;lt;&amp;lt;&amp;lt; mine&amp;quot; and &amp;quot;=======&amp;quot; and &amp;quot;&amp;gt;&amp;gt;&amp;gt;&amp;gt; r1242&amp;quot; which makes gcc complain.&lt;br /&gt;
&lt;br /&gt;
FIX: revert the offending file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==configure: error: Could not find ffmpeg on your system==&lt;br /&gt;
&lt;br /&gt;
 configure: error: Could not find ffmpeg on your system: you may get it from&lt;br /&gt;
 http://ffmpeg.sf.net/ (cvs version is recommended). Alternatively you can use&lt;br /&gt;
 --disable-ffmpeg to disable the ffmpeg plugins.&lt;br /&gt;
 make: *** [config.status] Error 1&lt;br /&gt;
&lt;br /&gt;
This can happen when you do a make without doing a configure and the configure.ac file in the source code recently updated.&lt;br /&gt;
&lt;br /&gt;
FIX: do a full configure (using ../configure-vlc.sh) and then run the make process&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Objective C source seen but `OBJC&#039; is undefined==&lt;br /&gt;
&lt;br /&gt;
The configure process stops halfway.&lt;br /&gt;
&lt;br /&gt;
 + aclocal-1.9 -I m4&lt;br /&gt;
 + autoconf&lt;br /&gt;
 + autoheader&lt;br /&gt;
 + automake-1.9 --add-missing --copy -Wall&lt;br /&gt;
 configure.ac: installing `autotools/install-sh&#039;&lt;br /&gt;
 configure.ac: installing `autotools/missing&#039;&lt;br /&gt;
 activex/Makefile.am:143: shell $(VLC_CONFIG: non-POSIX variable name&lt;br /&gt;
 activex/Makefile.am:143: (probably a GNU make extension)&lt;br /&gt;
 activex/Makefile.am: installing `autotools/compile&#039;&lt;br /&gt;
 activex/Makefile.am: installing `autotools/depcomp&#039;&lt;br /&gt;
 modules/gui/macosx/Makefile.am: Objective C source seen but `OBJC&#039; is undefined&lt;br /&gt;
 modules/misc/testsuite/Makefile.am: Objective C source seen but `OBJC&#039; is undefi&lt;br /&gt;
 ned&lt;br /&gt;
 src/Makefile.am: Objective C source seen but `OBJC&#039; is undefined&lt;br /&gt;
 Makefile.am:282: user target `vlc$(EXEEXT)&#039; defined here...&lt;br /&gt;
 /usr/share/automake-1.9/am/program.am: ... overrides Automake target `vlc$(EXEEX&lt;br /&gt;
 T)&#039; defined here&lt;br /&gt;
 Makefile.am:230:   while processing program `vlc&#039;&lt;br /&gt;
 make: *** No targets specified and no makefile found.  Stop.&lt;br /&gt;
 &lt;br /&gt;
This problem is related to a warning earlier on and only occured in a few revisions where a built-in workaround wasn&#039;t working properly:&lt;br /&gt;
&lt;br /&gt;
 + echo &#039;Enabling provisional autoconf 2.59 work-around. Update autoconf ASAP.&#039;&lt;br /&gt;
 Enabling provisional autoconf 2.59 work-around. Update autoconf ASAP.&lt;br /&gt;
&lt;br /&gt;
FIX: update autoconf to 2.60 or newer. If Cygwin doesn&#039;t provide this version yet then build it yourself from extras/contrib.&lt;br /&gt;
&lt;br /&gt;
Enter the following commands in your Cygwin shell:&lt;br /&gt;
&lt;br /&gt;
 cd vlc-trunk/extras/contrib&lt;br /&gt;
&lt;br /&gt;
 ./bootstrap&lt;br /&gt;
&lt;br /&gt;
 cd src&lt;br /&gt;
&lt;br /&gt;
 make .autoconf&lt;br /&gt;
&lt;br /&gt;
There should now be compiled autoconf version (probably 2.60 or newer) in extras/contrib that the bootstrap process will use.&lt;br /&gt;
&lt;br /&gt;
Now start the whole &amp;quot;Compile VLC&amp;quot; process from the start again.&lt;br /&gt;
&lt;br /&gt;
==Error: cannot create temporary file for diversion: Permission denied==&lt;br /&gt;
&lt;br /&gt;
If the above error appears, it might mean you don&#039;t have the TMPDIR defined in cygwin. You will need to define it and have its value point to your temporary directory.&lt;br /&gt;
&lt;br /&gt;
=Version=&lt;br /&gt;
&lt;br /&gt;
20050627 Initial version&lt;br /&gt;
&lt;br /&gt;
20050628 Updated some more exceptions&lt;br /&gt;
&lt;br /&gt;
20050628 Some info added about FFmpeg compiling with AMR&lt;br /&gt;
&lt;br /&gt;
20050629 Finalized FFmpeg compiling&lt;br /&gt;
&lt;br /&gt;
20050630 Cross-compiling&lt;br /&gt;
&lt;br /&gt;
20050724 Some extra compile explanations&lt;br /&gt;
&lt;br /&gt;
20050726 Removed cross-compiling (was for linux -&amp;gt; win32) Patching source code with .diff files&lt;br /&gt;
&lt;br /&gt;
20050823 Added zlib error&lt;br /&gt;
&lt;br /&gt;
20050923 --enable-sdl --with-sdl-config-path=/usr/win32/bin added to configure. Added debug section&lt;br /&gt;
&lt;br /&gt;
20051102 Changed FFmpeg lib names&lt;br /&gt;
&lt;br /&gt;
20051128 Detailed Cygwin upgrade/downgrade for gcc 3.3. Renamed some update scripts. Added FFmpeg CVS update. --disable-gnomevfs added to configure (only used on linux)&lt;br /&gt;
&lt;br /&gt;
20060121 PKG_CONFIG_PATH=/usr/win32/lib/pkgconfig added to configure&lt;br /&gt;
&lt;br /&gt;
20060128 Added curl and libtool to Cygwin for those that want to be able to build extras/contrib themselves&lt;br /&gt;
&lt;br /&gt;
20060217 Added make install-libs install-headers to FFmpeg compile&lt;br /&gt;
&lt;br /&gt;
20060222 Remark about missing &amp;quot;gettext&amp;quot; libs for Cygwin during install&lt;br /&gt;
&lt;br /&gt;
20060225 ./bootstrap: you need libtool&lt;br /&gt;
&lt;br /&gt;
20060618 Updated GCC to 3.4 version and added FFmpeg SVN and DTS support&lt;br /&gt;
&lt;br /&gt;
20060805 Added note about using older binutils and gdb for Cygwin!&lt;br /&gt;
&lt;br /&gt;
20060915 Added note about updating autoconf from extras/contrib for an OBJC problem during configure&lt;br /&gt;
&lt;br /&gt;
20061108 Added note this document is no longer usable since Cygwin has been unusable probably related to some bash/dos2unix change&lt;br /&gt;
&lt;br /&gt;
20070612 Added note about --enable-dca&lt;br /&gt;
&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:Coding]]&lt;/div&gt;</summary>
		<author><name>Quovodis</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Win32CompileCygwinOld&amp;diff=9694</id>
		<title>Win32CompileCygwinOld</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Win32CompileCygwinOld&amp;diff=9694"/>
		<updated>2007-08-15T13:35:26Z</updated>

		<summary type="html">&lt;p&gt;Quovodis: /* Configure script for compiling VLC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cygwin environment for Windows from http://developers.videolan.org/vlc/cygwin-compile.txt&lt;br /&gt;
&lt;br /&gt;
Originally based on &amp;quot;Win32 Cygwin Environment&amp;quot; Rev. B (20041003) by Mark Moriarty and &amp;quot;Win32 Compile HOWTO&amp;quot; (20050513) by Gildas Bazin and Olivier Teulière.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This is a guide for Windows users with a step-by-step instruction to download, install and configure the following components on your system:&lt;br /&gt;
&lt;br /&gt;
* [http://www.cygwin.com &#039;&#039;&#039;Cygwin&#039;&#039;&#039;]:  Linux-like environment for Windows used for compilation of the VLC source code&lt;br /&gt;
&lt;br /&gt;
* [http://download.videolan.org/pub/videolan/testing/win32/ &#039;&#039;&#039;Win32 contrib package&#039;&#039;&#039;]:  Precompiled library package (with DTS support).&lt;br /&gt;
&lt;br /&gt;
Optionally updated libraries:&lt;br /&gt;
&lt;br /&gt;
* [http://ffmpeg.mplayerhq.hu &#039;&#039;&#039;FFmpeg&#039;&#039;&#039;] (with AMR support).&lt;br /&gt;
&lt;br /&gt;
* [http://developers.videolan.org/x264.html &#039;&#039;&#039;x264&#039;&#039;&#039;] used for encoding H.264/AVC video.&lt;br /&gt;
&lt;br /&gt;
* [http://www.live555.com &#039;&#039;&#039;live555&#039;&#039;&#039;] (formerly known as live.com) for RTP/RTCP/RTSP/SIP multimedia streaming.&lt;br /&gt;
&lt;br /&gt;
The best approach to start getting comfortable with building VLC from source is to use the precompiled library package and not yet the optionally updated ones.&lt;br /&gt;
&lt;br /&gt;
Start off by creating a download folder on your hard drive where you can put all the installation files:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads (example)&lt;br /&gt;
&lt;br /&gt;
For further reference, the assumption is made that the local user will be &#039;Administrator&#039;.&lt;br /&gt;
&lt;br /&gt;
=Cygwin=&lt;br /&gt;
&lt;br /&gt;
More info about Cygwin can be found at http://www.cygwin.com or http://sourceware.org/cygwin&lt;br /&gt;
&lt;br /&gt;
Download the latest [http://www.cygwin.com/cygwin/setup.exe Cygwin setup] (it&#039;s at the install or update now icon on the site) and save it in your download location:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\cygwin (example)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Selecting Cygwin packages to install==&lt;br /&gt;
&lt;br /&gt;
Run the setup program with the following options:&lt;br /&gt;
&lt;br /&gt;
Installation type : Install from Internet (default)&lt;br /&gt;
&lt;br /&gt;
Root directory : C:\cygwin (default)&lt;br /&gt;
&lt;br /&gt;
Local Package directory : C:\Downloads\cygwin (your download location)&lt;br /&gt;
&lt;br /&gt;
Internet Connection : Direct Connection (preferred, if it fails try another)&lt;br /&gt;
&lt;br /&gt;
Download Site : Choose a download site closest to you (FTP preferred)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At the &amp;quot;Select Packages&amp;quot; section of the installation process you can select packages by clicking the button with the rotating 2 arrows. (This is under the &amp;quot;New&amp;quot; section). It shows &amp;quot;Skip&amp;quot; next to the button if the package isn&#039;t selected yet.&lt;br /&gt;
&lt;br /&gt;
Clicking the button a few times will rotate through the possible package versions including &amp;quot;Skip&amp;quot; (meaning do not install or remove if installed) and &amp;quot;Keep&amp;quot; (meaning keep using the current installed version). If a package was already installed it will also show the &amp;quot;Current&amp;quot; version just to the left of it.&lt;br /&gt;
&lt;br /&gt;
Select the following packages (some others will automatically be selected as well):&lt;br /&gt;
&lt;br /&gt;
 Archive&lt;br /&gt;
   5.52-2       unzip (recommended: goes hand in hand with zip utility)&lt;br /&gt;
   2.23-2       zip (required: to make self contained zip packages)&lt;br /&gt;
&lt;br /&gt;
 Devel&lt;br /&gt;
   2.1          automake (at least 1.5 is required)&lt;br /&gt;
   20060817-1   binutils (autoselected)&lt;br /&gt;
   1.11.22-1    cvs (required for autopoint)&lt;br /&gt;
   3.4.4-3      gcc-core (autoselected)&lt;br /&gt;
   3.4.4-3      gcc-g++&lt;br /&gt;
   20040810-1   gcc-mingw&lt;br /&gt;
   20050522-1   gcc-mingw-core (autoselected)&lt;br /&gt;
   20050522-1   gcc-mingw-g++ (autoselected)&lt;br /&gt;
   &#039;&#039;&#039;20041228-3   gdb&#039;&#039;&#039; (optional: for debugging purposes)&lt;br /&gt;
   0.15-1       gettext (autoselected)&lt;br /&gt;
   0.15-1       gettext-devel&lt;br /&gt;
   1.5.23a-2    libtool1.5&lt;br /&gt;
   3.81-1       make&lt;br /&gt;
   3.11-1       mingw-runtime (autoselected)&lt;br /&gt;
   0.98.39-1    nasm (optional: for compiling x264 encoder)	&lt;br /&gt;
   0.2.31-1     patchutils (optional: for patching source files with .diff files)&lt;br /&gt;
   0.21-1       pkgconfig (recommended: otherwise ./configure will complain about accuracy)&lt;br /&gt;
   1.4.2-1      subversion&lt;br /&gt;
&lt;br /&gt;
 Lib&lt;br /&gt;
   ?.?          libgcrypt&lt;br /&gt;
&lt;br /&gt;
 Web&lt;br /&gt;
   7.15.4-1     curl (optional: for building extras/contrib)&lt;br /&gt;
   1.10.2-2     wget (optional: for building extras/contrib)&lt;br /&gt;
&lt;br /&gt;
The package version numbers happen to be the representation of what was the most current version available at the time this article was written &#039;&#039;&#039;with the exception of gdb which has to be downgraded from at least 20060706-2 to 20041228-3 for proper usage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you run into problems of missing packages during install (particularly gettext: cyggettextsrc-0-14-1.dll not found) then rerun the setup program and try selecting another Download Site from the mirror list.&lt;br /&gt;
&lt;br /&gt;
NOTE: Whenever new packages are installed or updated through the Cygwin installer, make sure not to update the packages by keeping the old versions (using the &amp;quot;Keep&amp;quot; option).&lt;br /&gt;
&lt;br /&gt;
==Installing older GCC 3.3 version==&lt;br /&gt;
&lt;br /&gt;
The gcc version used for compilation should match the version specified in the &amp;quot;contrib&amp;quot; package, at present gcc-3.4.5-only.&lt;br /&gt;
&lt;br /&gt;
So the preferred version to use is GCC 3.4 but for historical reasons this section descibes what version to use together with an older gcc-3.3.1-only &amp;quot;contrib&amp;quot; package. The 3.3.1 version is not available in Cygwin but 3.3.3-3 (still) is.&lt;br /&gt;
&lt;br /&gt;
The only compatibility issue with using GCC 3.4 and the precompiled 3.3.1 &amp;quot;contrib&amp;quot; package is that it doesn&#039;t support the compiling of the matroska container .mkv so that leaves 2 options; use gcc 3.3.3-3 with a 3.3.1-only &amp;quot;contrib&amp;quot; or gcc 3.4 (or newer) but disable matroska support.&lt;br /&gt;
&lt;br /&gt;
The second option requires you to add the following line to the configure options:&lt;br /&gt;
&lt;br /&gt;
 --disable-mkv&lt;br /&gt;
&lt;br /&gt;
If you use the older gcc-g++ and gcc-core versions you have to change the gcc-mingw-core and gcc-mingw-g++ back to the older versions as well.&lt;br /&gt;
&lt;br /&gt;
Select the following package versions instead:&lt;br /&gt;
&lt;br /&gt;
 Devel&lt;br /&gt;
   &#039;&#039;&#039;3.3.3-3&#039;&#039;&#039;      gcc-core&lt;br /&gt;
   &#039;&#039;&#039;3.3.3-3&#039;&#039;&#039;      gcc-g++&lt;br /&gt;
   20040810-1   gcc-mingw&lt;br /&gt;
   &#039;&#039;&#039;20040810-1&#039;&#039;&#039;   gcc-mingw-core&lt;br /&gt;
   &#039;&#039;&#039;20040810-1&#039;&#039;&#039;   gcc-mingw-g++&lt;br /&gt;
&lt;br /&gt;
NOTE: The gcc-3.4.5-only &amp;quot;contrib&amp;quot; package should compile just fine with GCC 3.3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Cygwin environment==&lt;br /&gt;
&lt;br /&gt;
Start Cygwin from the icon on your desktop. If it runs for the first time it will automatically create a home\&amp;quot;username&amp;quot; folder in the Cygwin environment; user being the currently logged on Windows user. Assuming this is the &#039;Administrator&#039; user it will create the following folder:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator (example)&lt;br /&gt;
&lt;br /&gt;
NOTE: On your desktop, you can rightclick the Cygwin icon and (in the Options field of the Cygwin Properties) set the Command history Buffer size to as large as possible: 999. This setting will make it possible to scroll back further in the Cygwin environment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=VLC source code=&lt;br /&gt;
&lt;br /&gt;
The very latest VLC source code can be obtained through a tool called SVN (Subversion). The Cygwin package we&#039;re about to install comes with an internal subversion component. Using this one is the preferred method.&lt;br /&gt;
&lt;br /&gt;
Another way of obtaining source code is by downloading a daily code &amp;quot;snapshot&amp;quot; from the following location:&lt;br /&gt;
&lt;br /&gt;
http://nightlies.videolan.org/build/source&lt;br /&gt;
&lt;br /&gt;
Download the latest snapshot:&lt;br /&gt;
&lt;br /&gt;
 vlc-snapshot-20070112.tar.gz (example)&lt;br /&gt;
&lt;br /&gt;
and save it into a subfolder in your download location:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\VLC\src (example)&lt;br /&gt;
&lt;br /&gt;
Check if the downloaded file has not been renamed by Internet Explorer in your download folder to something with the extension .tar.tar and if so then simple rename the files back to .tar.gz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Adding libraries to the source code=&lt;br /&gt;
&lt;br /&gt;
VLC depends on other libraries (code) to provide some features like AC3 audio or MPEG-4 video encoding/decoding etc.&lt;br /&gt;
&lt;br /&gt;
Depending on your needs you will have to install and compile some or all of these external libraries. Most of them can be found here (source code):&lt;br /&gt;
&lt;br /&gt;
http://download.videolan.org/pub/testing/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Win32 &amp;quot;contrib&amp;quot; package==&lt;br /&gt;
&lt;br /&gt;
A package with most of these libraries already compiled so it&#039;s actually really easy to compile a full-featured version of vlc can be found here:&lt;br /&gt;
&lt;br /&gt;
http://download.videolan.org/pub/testing/win32/&lt;br /&gt;
&lt;br /&gt;
Download the latest version of a &amp;quot;contrib&amp;quot; package for win32:&lt;br /&gt;
&lt;br /&gt;
 contrib-20060730-win32-bin-gcc-3.4.5-only.tar.bz2 (example)&lt;br /&gt;
&lt;br /&gt;
It&#039;s a good idea to check the INSTALL.Win32 file in the VLC source directory for the appropriate contrib download file.&lt;br /&gt;
&lt;br /&gt;
Save it into a subfolder in your download location:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\VLC\contrib (example)&lt;br /&gt;
&lt;br /&gt;
Check if the file has not been renamed by Internet Explorer in your download folder to something with the extension .tar.tar and if so then simply rename the file back to .tar.bz2&lt;br /&gt;
&lt;br /&gt;
Also remember the &amp;quot;gcc-3.4.5&amp;quot; part in the &amp;quot;contrib&amp;quot; package filename since it relates to the GCC version that needs to be installed in Cygwin lateron!&lt;br /&gt;
&lt;br /&gt;
==Win32 &amp;quot;contrib&amp;quot; packages for older GCC versions==&lt;br /&gt;
&lt;br /&gt;
For historical reasons older versions of the &amp;quot;contrib&amp;quot; package are provided at the following location:&lt;br /&gt;
&lt;br /&gt;
http://download.videolan.org/pub/testing/win32/contrib-old-gcc-3.3-only/&lt;br /&gt;
&lt;br /&gt;
Download the latest version of a &amp;quot;contrib&amp;quot; package for win32&lt;br /&gt;
&lt;br /&gt;
 contrib-20051213-win32-bin-gcc3.3.1-only.tar.bz2 (example)&lt;br /&gt;
&lt;br /&gt;
and save it into a subfolder in your download location:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\VLC\contrib (example)&lt;br /&gt;
&lt;br /&gt;
NOTE: gcc3.3.1-only in the filename means it was (obviously) intended for compilation with GCC 3.3 only. The latest gcc-3.4.5-only &amp;quot;contrib&amp;quot; packages should compile just fine with GCC 3.3 so it&#039;s preferred to always use those.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Adding additional or updated libraries to the source (optional)==&lt;br /&gt;
&lt;br /&gt;
Updated libraries for FFmpeg and x264 are available through SVN (which is discussed in a later stage of this guide).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===live555 &amp;quot;snapshot&amp;quot; (optional)===&lt;br /&gt;
&lt;br /&gt;
More info about live555 can be found at:&lt;br /&gt;
&lt;br /&gt;
http://www.live555.com&lt;br /&gt;
&lt;br /&gt;
The project source code is available here:&lt;br /&gt;
&lt;br /&gt;
http://live555.com/liveMedia/public/&lt;br /&gt;
&lt;br /&gt;
Download the latest snapshot:&lt;br /&gt;
&lt;br /&gt;
 live.2007.01.11.tar.gz (example)&lt;br /&gt;
&lt;br /&gt;
NOTE: live555-latest.tar.gz is also the latest version but keeping the date in the filename makes it easier to reference.&lt;br /&gt;
&lt;br /&gt;
and save it into a subfolder in your download location:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\VLC\src (example)&lt;br /&gt;
&lt;br /&gt;
Check if the downloaded file has not been renamed by Internet Explorer in your download folder to something with the extension .tar.tar and if so then simple rename the files back to .tar.gz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Getting the latest sources=&lt;br /&gt;
&lt;br /&gt;
In order to have the latest source code you have to download this using SVN.&lt;br /&gt;
&lt;br /&gt;
Create a new folder at your download/install location:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\VLC\scripts (example)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SVN update script for VLC==&lt;br /&gt;
&lt;br /&gt;
Create a new text document with the following line:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn://svn.videolan.org/vlc/trunk vlc-trunk&lt;br /&gt;
&lt;br /&gt;
Save as filename in your &amp;quot;scripts&amp;quot; folder at your download/install location with the option &amp;quot;All Files&amp;quot; and not &amp;quot;Text Documents&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 update-vlc.sh (example)&lt;br /&gt;
&lt;br /&gt;
This command will download a complete svn trunk.&lt;br /&gt;
&lt;br /&gt;
Copy the script file into your Cygwin &amp;quot;home directory&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell: &lt;br /&gt;
&lt;br /&gt;
 dos2unix update-vlc.sh&lt;br /&gt;
&lt;br /&gt;
This is for converting the &#039;line endings&#039; made by Windows/DOS (in which the text document was created) to UNIX style.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SVN update scripts for additional libraries (optional)==&lt;br /&gt;
&lt;br /&gt;
Updating source code using SVN for additional libraries such as x264 or FFmpeg works the same way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SVN update scripts for x264 (optional)===&lt;br /&gt;
&lt;br /&gt;
Create a new text document with the following line:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn://svn.videolan.org/x264/trunk x264-trunk&lt;br /&gt;
&lt;br /&gt;
Save as filename in your &amp;quot;scripts&amp;quot; folder at your download/install location:&lt;br /&gt;
&lt;br /&gt;
 update-x264.sh&lt;br /&gt;
&lt;br /&gt;
Copy the script file into your Cygwin &amp;quot;home directory&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell:&lt;br /&gt;
&lt;br /&gt;
 dos2unix update-x264.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SVN update script for FFmpeg (optional)===&lt;br /&gt;
&lt;br /&gt;
Create a new text document with the following line:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg-trunk&lt;br /&gt;
&lt;br /&gt;
Save as filename in your &amp;quot;scripts&amp;quot; folder at your download/install location:&lt;br /&gt;
&lt;br /&gt;
 update-ffmpeg.sh&lt;br /&gt;
&lt;br /&gt;
Copy the script file into your Cygwin &amp;quot;home directory&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell: &lt;br /&gt;
&lt;br /&gt;
 dos2unix update-ffmpeg.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Checking out&amp;quot; the latest source code from SVN==&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell: &lt;br /&gt;
&lt;br /&gt;
 ./update-vlc.sh&lt;br /&gt;
&lt;br /&gt;
This will download the current &amp;quot;subversion trunk&amp;quot; (latest code) into your home directory into the directory specified in your shell script:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator\vlc-trunk (example)&lt;br /&gt;
&lt;br /&gt;
At the end of the command it will show something like &amp;quot;Checked out revision 18561&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The vlc-trunk folder will get over-written/updated the next time you run the command. If you want to save a so called &amp;quot;snapshot&amp;quot; of the existing vlc-trunk, rename or copy the current directory into something desired (like vlc-trunk-20070112).&lt;br /&gt;
&lt;br /&gt;
NOTE: Updating the source code for additional libraries such as x264, FFmpeg etc. is done by running their corresponding update scripts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Extracting the source from a &amp;quot;snapshot&amp;quot;==&lt;br /&gt;
&lt;br /&gt;
If you are not using SVN to obtain the latest source code but are using a daily &amp;quot;snapshot&amp;quot; then copy that source package from your download/install location to the Cygwin home directory:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell:&lt;br /&gt;
&lt;br /&gt;
 tar xvf vlc-snapshot-20070112.tar.gz (example)&lt;br /&gt;
&lt;br /&gt;
Replace with your version of the source package.&lt;br /&gt;
&lt;br /&gt;
This will extract the contents of the file into a subfolder within your Cygwin environment with the naming convention something like:&lt;br /&gt;
&lt;br /&gt;
 vlc-0.9.0-svn (example)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Installing the Win32 &amp;quot;contrib&amp;quot; package in Cygwin=&lt;br /&gt;
&lt;br /&gt;
First the additional libraries have to be &amp;quot;installed&amp;quot; in Cygwin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Extracting the Win32 &amp;quot;contrib&amp;quot; package==&lt;br /&gt;
&lt;br /&gt;
Copy the &amp;quot;contrib&amp;quot; package from your download/install location to the home directory:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell:&lt;br /&gt;
&lt;br /&gt;
 tar xjvf contrib-20061202-win32-bin-gcc-3.4.5-only.tar.bz2 -C / (example)&lt;br /&gt;
&lt;br /&gt;
Replace with your version of the &amp;quot;contrib&amp;quot; file and DON&#039;T FORGET THE / (slash)&lt;br /&gt;
at the end.&lt;br /&gt;
&lt;br /&gt;
This will extract the contents of the file into usr/win32 folder within your Cygwin environment.&lt;br /&gt;
&lt;br /&gt;
NOTE: Make sure to DELETE your old version instead of extracting a new version on top of it.&lt;br /&gt;
&lt;br /&gt;
==Keeping the Win32 &amp;quot;contrib&amp;quot; package up-to-date==&lt;br /&gt;
&lt;br /&gt;
For maintenance purposes periodically check:&lt;br /&gt;
&lt;br /&gt;
http://download.videolan.org/pub/testing/win32/&lt;br /&gt;
&lt;br /&gt;
to see if a newer &amp;quot;contrib&amp;quot; is available. If that is the case you should DELETE the existing directory structure which is for the precompiled &amp;quot;contrib&amp;quot; package:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\usr\win32 (example)&lt;br /&gt;
&lt;br /&gt;
Download the newer file and follow the installation instructions the same as before so you will end up with the most up-to-date version.&lt;br /&gt;
&lt;br /&gt;
NOTE: Make sure to DELETE your old version instead of extracting a new version on top of it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Configure scripts=&lt;br /&gt;
&lt;br /&gt;
In order to make our lives just a bit easier the following section describes what commandline options should be used for compiling and those commands will then be put into a &amp;quot;script&amp;quot; that can be executed (rather than having to copy and paste all the time).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configure script for compiling VLC==&lt;br /&gt;
&lt;br /&gt;
Create a new text document with the following lines:&lt;br /&gt;
&lt;br /&gt;
  CONTRIB_TREE=/usr/win32&lt;br /&gt;
  PATH=${CONTRIB_TREE}/bin:$PATH \&lt;br /&gt;
  ./bootstrap &amp;amp;&amp;amp; \&lt;br /&gt;
  CPPFLAGS=&amp;quot;-I${CONTRIB_TREE}/include -I${CONTRIB_TREE}/include/ebml&amp;quot; \&lt;br /&gt;
  LDFLAGS=-L${CONTRIB_TREE}/lib \&lt;br /&gt;
  PKG_CONFIG_LIBDIR=${CONTRIB_TREE}/lib/pkgconfig \&lt;br /&gt;
  CC=&amp;quot;gcc -mno-cygwin&amp;quot; CXX=&amp;quot;g++ -mno-cygwin&amp;quot; \&lt;br /&gt;
  ./configure \&lt;br /&gt;
      --host=i686-pc-mingw32 \&lt;br /&gt;
      --enable-sdl --with-sdl-config-path=${CONTRIB_TREE}/bin --disable-gtk \&lt;br /&gt;
      --enable-nls \&lt;br /&gt;
      --enable-ffmpeg --with-ffmpeg-mp3lame --with-ffmpeg-faac \&lt;br /&gt;
      --with-ffmpeg-zlib --enable-faad --enable-flac --enable-theora \&lt;br /&gt;
      --with-wx-config-path=${CONTRIB_TREE}/bin \&lt;br /&gt;
      --with-freetype-config-path=${CONTRIB_TREE}/bin \&lt;br /&gt;
      --with-fribidi-config-path=${CONTRIB_TREE}/bin \&lt;br /&gt;
      --enable-live555 --with-live555-tree=${CONTRIB_TREE}/live.com \&lt;br /&gt;
      --enable-caca --with-caca-config-path=${CONTRIB_TREE}/bin \&lt;br /&gt;
      --with-xml2-config-path=${CONTRIB_TREE}/bin \&lt;br /&gt;
      --with-dvdnav-config-path=${CONTRIB_TREE}/bin \&lt;br /&gt;
      --disable-cddax --disable-vcdx --enable-goom \&lt;br /&gt;
      --enable-twolame --enable-dvdread \&lt;br /&gt;
      --disable-gnomevfs \&lt;br /&gt;
      --enable-dts \&lt;br /&gt;
      --disable-optimizations \&lt;br /&gt;
      --enable-debug \&lt;br /&gt;
&lt;br /&gt;
NOTE: The following option is added for DTS Coherent Acoustics streams decoding support. The latest &amp;quot;contrib&amp;quot; package should already contain libdca (formerly known as libdts) needed to compile this but at present it&#039;s disabled by default:&lt;br /&gt;
&lt;br /&gt;
 --enable-dts&lt;br /&gt;
&lt;br /&gt;
NOTE: For VLC 0.9.0, replace the previous option by:&lt;br /&gt;
&lt;br /&gt;
 --enable-dca&lt;br /&gt;
&lt;br /&gt;
NOTE: The following options are added for debug purposes and makes the final package a bit larger but the advantage is it&#039;s easier to debug in case of crash reports:&lt;br /&gt;
&lt;br /&gt;
 --disable-optimizations&lt;br /&gt;
 --enable-debug&lt;br /&gt;
&lt;br /&gt;
If you want to report a crash bug to the VLC team, it is necessary that you provide a stack backtrace. Unfortunately, Windows automatic crash reporter cannot generate such a backtrace as debug symbols used by GCC compiler aren&#039;t understood by Windows, therefore we suggest that you install Dr. MinGW (http://jrfonseca.dyndns.org/projects/gnu-win32/software/drmingw/) which will extend Windows Just-In-Time Debugger and provide the necessary debug information.&lt;br /&gt;
&lt;br /&gt;
NOTE: The following options is needed for QT4 support:&lt;br /&gt;
&lt;br /&gt;
 --enable-qt4&lt;br /&gt;
&lt;br /&gt;
As of version 0.9.0 VLC will include the QT interface. More information can be found about QT here: http://www.trolltech.com&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Win32 contrib package&amp;quot; at present only includes the linux equivalents of uic, moc and roc executables which are required for building this interface.&lt;br /&gt;
&lt;br /&gt;
The linues executables have to be &#039;&#039;&#039;deleted&#039;&#039;&#039; from the contrib folder:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\usr\win32\bin\moc (example)&lt;br /&gt;
 C:\cygwin\usr\win32\bin\rcc (example)&lt;br /&gt;
 C:\cygwin\usr\win32\bin\uic (example)&lt;br /&gt;
&lt;br /&gt;
The moc, rcc and uic.exe from the [http://www.trolltech.com/developer/downloads/qt/windows Qt/Windows Open Source Edition] (these can be found in the bin folder after installation) have to be placed in the contrib folder:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\usr\win32\bin\moc.exe (example)&lt;br /&gt;
 C:\cygwin\usr\win32\bin\rcc.exe (example)&lt;br /&gt;
 C:\cygwin\usr\win32\bin\uic.exe (example)&lt;br /&gt;
 &lt;br /&gt;
Save as filename in your &amp;quot;scripts&amp;quot; folder at your download/install location:&lt;br /&gt;
&lt;br /&gt;
 configure-vlc.sh&lt;br /&gt;
&lt;br /&gt;
NOTE: Save using &amp;quot;All files&amp;quot; and not &amp;quot;Text files&amp;quot; otherwise Windows might append the extension .txt&lt;br /&gt;
&lt;br /&gt;
Copy the file into your home directory:&lt;br /&gt;
 &lt;br /&gt;
 C:\cygwin\home\Administrator&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell: &lt;br /&gt;
&lt;br /&gt;
 dos2unix configure-vlc.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===POSIX emulation layer===&lt;br /&gt;
&lt;br /&gt;
VLC can be built with or without the so called POSIX emulation layer. Without is the default and is usually better (and with hasn&#039;t been tested for quite some time). If you do want to use the emulation layer, then just leave out the line with the following options:&lt;br /&gt;
&lt;br /&gt;
 CC=&amp;quot;gcc -mno-cygwin&amp;quot; CXX=&amp;quot;g++ -mno-cygwin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===VLC optional settings===&lt;br /&gt;
&lt;br /&gt;
The following option should be used when compiling using the GCC 3.4 version with older &amp;quot;contrib&amp;quot; gcc-3.3.1-only:&lt;br /&gt;
&lt;br /&gt;
 --disable-mkv&lt;br /&gt;
&lt;br /&gt;
==Configure scripts for compiling additional libraries (optional)==&lt;br /&gt;
&lt;br /&gt;
The following section is optional. The &amp;quot;contrib&amp;quot; package contains precompiled libraries but it is possible to update some of those libraries to the most current versions such as x264 and FFmpeg.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===FFmpeg with AMR support (optional)===&lt;br /&gt;
&lt;br /&gt;
The AMR (Adaptive Multi Rate) codec is designed to encode and decode speech with acceptable quality for transmission over relatively low bandwidth channels with minimal latency, typically used in mobile networks (3GP) or voice message applications.&lt;br /&gt;
&lt;br /&gt;
The AMR codec is usually referred to as:&lt;br /&gt;
&lt;br /&gt;
 Narrow Band (AMR-NB, fourcc samr) for low quality&lt;br /&gt;
 Wide Band (AMR-WB, fourcc samw) for high quality&lt;br /&gt;
&lt;br /&gt;
The sources for AMR are not compatible with the GPL (General Public License). AMR support is disabled by default.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Getting the AMR reference codecs (optional)====&lt;br /&gt;
&lt;br /&gt;
The AMR reference codecs can be found on the 3GPP site http://www.3gpp.org at the following download location for zipped source code packages:&lt;br /&gt;
&lt;br /&gt;
http://www.3gpp.org/ftp/Specs/2004-03/Rel-5/26_series/&lt;br /&gt;
&lt;br /&gt;
Download the following 3 packages to a subfolder in your download/install location:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\VLC\src (example)&lt;br /&gt;
&lt;br /&gt;
1.  AMR - latest 26073 package:&lt;br /&gt;
&lt;br /&gt;
http://www.3gpp.org/ftp/Specs/2004-03/Rel-5/26_series/26073-530.zip          (example)&lt;br /&gt;
&lt;br /&gt;
3GPP TS 26.073 V5.3.0 (2004-03) ANSI-C code for the Adaptive Multi Rate (AMR) speech codec (Release 5)&lt;br /&gt;
&lt;br /&gt;
2.  AMR_FLOAT - latest 26104 package:&lt;br /&gt;
&lt;br /&gt;
http://www.3gpp.org/ftp/Specs/2004-03/Rel-5/26_series/26104-540.zip          (example)&lt;br /&gt;
&lt;br /&gt;
3GPP TS 26.104 V 5.4.0 (2004-03) ANSI-C code for the Floating-point Adaptive Multi Rate (AMR) speech codec (Release 5)&lt;br /&gt;
&lt;br /&gt;
3.  AMRWB_FLOAT - latest 26204 package:&lt;br /&gt;
&lt;br /&gt;
http://www.3gpp.org/ftp/Specs/2004-03/Rel-5/26_series/26204-520.zip          (example)&lt;br /&gt;
&lt;br /&gt;
3GPP TS 26.204 V5.2.0 (2003-09) ANSI-C code for Floating-point Adaptive Multi Rate Wideband (AMR-WB) speech codec (Release 5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Extracting the AMR reference codecs (optional)====&lt;br /&gt;
&lt;br /&gt;
The following AMR reference packages should now be in your download/install location:&lt;br /&gt;
&lt;br /&gt;
 26073-530.zip (example)&lt;br /&gt;
 26104-540.zip (example)&lt;br /&gt;
 26204-520.zip (example)&lt;br /&gt;
&lt;br /&gt;
Using your favourite unzipper (Windows internal extraction wizard, WinZIP, WinRAR etc.) extract the zip files in the into the current folder (Windows wizard would use &amp;quot;Extract All&amp;quot; and WinZIP or WinRAR would use &amp;quot;Extract to &#039;foldername&#039; which is the same as the .zip package name&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
This will create the following folders:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\VLC\src\26073-530         &lt;br /&gt;
 C:\Downloads\VLC\src\26104-540         &lt;br /&gt;
 C:\Downloads\VLC\src\26204-520         &lt;br /&gt;
&lt;br /&gt;
Within those folders another .zip package exists. Again unpack those zip files into the current folder:&lt;br /&gt;
&lt;br /&gt;
 26073-530_ANSI_C_source_code      &lt;br /&gt;
 26104-540_ANSI_C_source_code      &lt;br /&gt;
 26204-520_ANSI-C_source_code      &lt;br /&gt;
&lt;br /&gt;
Now each unpacked source code package has an individual folder named &amp;quot;c-code&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Rename the c-code subfolders within each package to amr, amr_float and amrwb_float:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\VLC\src\26073-530\26073-530_ANSI_C_source_code\c-code to amr                  &lt;br /&gt;
 C:\Downloads\VLC\src\26104-540\26104-540_ANSI_C_source_code\c-code to amr_float            &lt;br /&gt;
 C:\Downloads\VLC\src\26204-520\26204-520_ANSI-C_source_code\c-code to amrwb_float          &lt;br /&gt;
&lt;br /&gt;
NOTE: the 530, 540 to 520 order looks a bit confusing but those are actually just version numbers and the folders are shown in the correct alphabetical order.&lt;br /&gt;
&lt;br /&gt;
Copy each of the the following folders (including content, so just select the whole folders itself):&lt;br /&gt;
&lt;br /&gt;
 amr                &lt;br /&gt;
 amr_float         &lt;br /&gt;
 amrwb_float       &lt;br /&gt;
&lt;br /&gt;
to the Cygwin home directory in the libavcodec subfolder of where the FFmpeg package resides:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator\ffmpeg-trunk\libavcodec (example)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===FFmpeg configure script with &amp;quot;contrib&amp;quot; package (optional)===&lt;br /&gt;
&lt;br /&gt;
NOTE: This compile script assumes you are also using the same FFmpeg version as is used in the &amp;quot;contrib&amp;quot; package (this is why the cflags and ldflags also point to the win32 folder where the &amp;quot;contrib&amp;quot; package was extracted).&lt;br /&gt;
&lt;br /&gt;
Create a new text document with the following lines:&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-mingw32 --enable-memalign-hack \&lt;br /&gt;
     --extra-cflags=-I/usr/win32/include \&lt;br /&gt;
     --extra-ldflags=-L/usr/win32/lib \&lt;br /&gt;
     --prefix=/usr/win32 \&lt;br /&gt;
     --cc=&amp;quot;gcc -mno-cygwin&amp;quot; \&lt;br /&gt;
    --enable-faac --enable-mp3lame --enable-pp --enable-gpl --log \&lt;br /&gt;
&lt;br /&gt;
NOTE: For AMR encoding/decoding support also add the following options:&lt;br /&gt;
&lt;br /&gt;
 --enable-amr_nb --enable-amr_wb&lt;br /&gt;
&lt;br /&gt;
NOTE: VLC uses the x264 lib directly and not through ffmpeg so there is no need to add --enable-x264&lt;br /&gt;
&lt;br /&gt;
Save as filename in your &amp;quot;scripts&amp;quot; folder at your download/install location:&lt;br /&gt;
&lt;br /&gt;
 configure-ffmpeg.sh (example)&lt;br /&gt;
&lt;br /&gt;
NOTE: Save using &amp;quot;All files&amp;quot; and not &amp;quot;Text files&amp;quot; otherwise Windows might append the extension .txt&lt;br /&gt;
&lt;br /&gt;
Copy the file into your home directory:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator &lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell: &lt;br /&gt;
&lt;br /&gt;
 dos2unix configure-ffmpeg.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===FFmpeg configure script for FFmpeg &amp;quot;stand-alone&amp;quot; (optional)===&lt;br /&gt;
&lt;br /&gt;
This section is only if FFmpeg compiling is required as a stand-alone package and not in comination with the precompiled &amp;quot;contrib&amp;quot; package.&lt;br /&gt;
&lt;br /&gt;
In case of failure to compile VLC with different settings (added/updated libraries to the &amp;quot;contrib&amp;quot;) it is advisable to test if FFmpeg does compile OK just in &amp;quot;stand-alone&amp;quot; mode.&lt;br /&gt;
&lt;br /&gt;
Create a new text document at the download location with following lines:&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-mingw32 --enable-memalign-hack \&lt;br /&gt;
     --cc=&amp;quot;gcc -mno-cygwin&amp;quot; \&lt;br /&gt;
     --enable-pp --enable-gpl --log \&lt;br /&gt;
&lt;br /&gt;
NOTE: When including libraries the following options should be added/changed, pointing to the appropriate folder where does libraries are located (for VLC &amp;quot;contrib&amp;quot; that would be /usr/win32 but in other situations it might be the default /usr/local):&lt;br /&gt;
&lt;br /&gt;
    --extra-cflags=-I/usr/local/include \&lt;br /&gt;
    --extra-ldflags=-L/usr/local/lib \&lt;br /&gt;
    --prefix=/usr/local \&lt;br /&gt;
&lt;br /&gt;
Save as filename in your &amp;quot;scripts&amp;quot; folder at your download/install location:&lt;br /&gt;
&lt;br /&gt;
 configure-ffmpeg-svn.sh (example)&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell:&lt;br /&gt;
&lt;br /&gt;
 dos2unix configure-ffmpeg.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==x264 configure script (optional)==&lt;br /&gt;
&lt;br /&gt;
Create a new text document with the following lines:&lt;br /&gt;
&lt;br /&gt;
 ./configure \&lt;br /&gt;
    --prefix=/usr/win32 \&lt;br /&gt;
&lt;br /&gt;
NOTE: for debugging purposes you can add the following option:&lt;br /&gt;
&lt;br /&gt;
 --enable-debug&lt;br /&gt;
&lt;br /&gt;
Save as filename in your &amp;quot;scripts&amp;quot; folder at your download/install location:&lt;br /&gt;
&lt;br /&gt;
 configure-x264.sh&lt;br /&gt;
&lt;br /&gt;
NOTE: Save using &amp;quot;All files&amp;quot; and not &amp;quot;Text files&amp;quot; otherwise Windows might append the extension .txt.&lt;br /&gt;
&lt;br /&gt;
Copy the file into your home directory:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell: &lt;br /&gt;
&lt;br /&gt;
 dos2unix configure-x264.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Compiling source code=&lt;br /&gt;
&lt;br /&gt;
It&#039;s time to start Cygwin again...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional libraries==&lt;br /&gt;
&lt;br /&gt;
If any updated or additional libraries are used they need to be compiled first. Since some of these are used indirectly through FFmpeg, FFmpeg should be compiled last.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Compiling x264 (optional)===&lt;br /&gt;
&lt;br /&gt;
This section is only required for x264 compiling where you want to compile x264 yourself in order to use the latest version.&lt;br /&gt;
&lt;br /&gt;
Change to the appropriate x264 folder&lt;br /&gt;
&lt;br /&gt;
 cd x264-trunk (example)&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
If the make proceeded without errors you will have compiled a new library file:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator\x264-trunk\libx264.a (example)&lt;br /&gt;
&lt;br /&gt;
Copy this file into the Cygwin usr/win32 folder:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\usr\win32\lib (example)&lt;br /&gt;
&lt;br /&gt;
Also take the following file .h file:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator\x264-trunk\x264.h (example)&lt;br /&gt;
&lt;br /&gt;
Copy this file into the usr/win32/include folder:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\usr\win32\include (example)&lt;br /&gt;
&lt;br /&gt;
NOTE: This will overwrite the x264.h and libx264.a from the precompiled &amp;quot;contrib&amp;quot; package!&lt;br /&gt;
&lt;br /&gt;
===live555 (optional)===&lt;br /&gt;
&lt;br /&gt;
This section is only required if you want to compile the latest version of live555.&lt;br /&gt;
&lt;br /&gt;
Copy the live555 project packagee from your download/install location to the home directory:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell:&lt;br /&gt;
&lt;br /&gt;
 tar xvf live.2006.05.17.tar.gz (example)&lt;br /&gt;
&lt;br /&gt;
Replace with your version of the source package.&lt;br /&gt;
&lt;br /&gt;
This will extract the contents of the file into a subfolder within your Cygwin environment with the naming convention something like:&lt;br /&gt;
&lt;br /&gt;
 live (example)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Compiling FFmpeg (optional)===&lt;br /&gt;
&lt;br /&gt;
This section is only required for FFmpeg compiling.&lt;br /&gt;
&lt;br /&gt;
Change to the appropriate FFmpeg folder&lt;br /&gt;
&lt;br /&gt;
 cd ffmpeg-trunk (example)&lt;br /&gt;
&lt;br /&gt;
 make clean&lt;br /&gt;
&lt;br /&gt;
 make distclean&lt;br /&gt;
&lt;br /&gt;
(This will haved remove everything except code related stuff, VLC uses a &amp;quot;toolbox&amp;quot; script&lt;br /&gt;
which can clean a bit more).&lt;br /&gt;
&lt;br /&gt;
 ../configure-ffmpeg.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Preparations for AMR support (optional)====&lt;br /&gt;
&lt;br /&gt;
If you included the AMR reference codec sources in FFmpeg you should see that AMR-NB and WB &amp;quot;float support&amp;quot; should be working:&lt;br /&gt;
&lt;br /&gt;
 AMR-NB float support yes&lt;br /&gt;
 AMR-NB fixed support no&lt;br /&gt;
 AMR-WB float support yes&lt;br /&gt;
 AMR-WB IF2 support no&lt;br /&gt;
 network support      no&lt;br /&gt;
 License: GPL&lt;br /&gt;
&lt;br /&gt;
 AMR WB FLOAT NOTICE ! Make sure you have downloaded TS26.204&lt;br /&gt;
 V5.1.0 from http://www.3gpp.org/ftp/Specs/archive/26_series/26.204/26204-510.zip and extracted the source to libavcodec/amrwb_float&lt;br /&gt;
&lt;br /&gt;
 AMR NB FLOAT NOTICE ! Make sure you have downloaded TS26.104 REL-5 V5.1.0 from&lt;br /&gt;
 http://www.3gpp.org/ftp/Specs/archive/26_series/26.104/26104-510.zip and extracted the source to libavcodec/amr_float&lt;br /&gt;
 If you try this on alpha, you may need to change Word32 to int in amr/typedef.h&lt;br /&gt;
&lt;br /&gt;
NOTE: These warnings/notices can be ignored since we are using more recent versions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Building FFmpeg (optional)====&lt;br /&gt;
&lt;br /&gt;
First clean up any leftovers from a previous compile using the following commands:&lt;br /&gt;
&lt;br /&gt;
 make clean&lt;br /&gt;
&lt;br /&gt;
 make distclean&lt;br /&gt;
&lt;br /&gt;
(This will haved remove everything except code related stuff, VLC uses a &amp;quot;toolbox&amp;quot; script&lt;br /&gt;
which can clean a bit more).&lt;br /&gt;
&lt;br /&gt;
Now build FFmpeg with the following command:&lt;br /&gt;
&lt;br /&gt;
 make       &lt;br /&gt;
&lt;br /&gt;
If the make proceeded without errors you will have compiled two new &amp;quot;library&amp;quot; files:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator\ffmpeg-trunk\libavcodec\libavcodec.a (example)&lt;br /&gt;
 C:\cygwin\home\Administrator\ffmpeg-trunk\libavformat\libavformat.a (example)&lt;br /&gt;
&lt;br /&gt;
To copy the appropriate libs and header files to the (extracted) contrib&lt;br /&gt;
folder use:&lt;br /&gt;
&lt;br /&gt;
 make install-libs install-headers&lt;br /&gt;
&lt;br /&gt;
For historical reasons the &amp;quot;old&amp;quot; method is still described here as well:&lt;br /&gt;
&lt;br /&gt;
Copy the library files (with the .a extension) into the Cygwin usr/win32 folder:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\usr\win32\lib (example)&lt;br /&gt;
&lt;br /&gt;
NOTE: This will overwrite libavcodec.a and libavformat.a from the precompiled&lt;br /&gt;
&amp;quot;contrib&amp;quot; package!&lt;br /&gt;
&lt;br /&gt;
For backup reasons you can first copy or rename the original files in the &amp;quot;contrib&amp;quot; package (so you won&#039;t have to reinstall the complete contrib package but can simply copy these again)&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\usr\win32\lib\libavcodec.a to libavcodec.a.org&lt;br /&gt;
 C:\cygwin\usr\win32\lib\libavformat.a to libavformat.a.org&lt;br /&gt;
&lt;br /&gt;
In older versions of ffmpeg the libraries had other names:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator\ffmpeg-20050624\libavcodec\avcodec.lib (example)&lt;br /&gt;
 C:\cygwin\home\Administrator\ffmpeg-20050624\libavformat\avformat.lib (example)&lt;br /&gt;
&lt;br /&gt;
Rename those files (in Windows Explorer):&lt;br /&gt;
&lt;br /&gt;
 avcodec.lib to libavcodec.a&lt;br /&gt;
 avformat.lib to libavformat.a&lt;br /&gt;
&lt;br /&gt;
Then copy those library files into the Cygwin usr/win32 folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Compiling live555 (optional)===&lt;br /&gt;
&lt;br /&gt;
How to configure and build the code on a Linux enviroment is explained on the following live555 page:&lt;br /&gt;
&lt;br /&gt;
http://www.live555.com/liveMedia/#config-unix&lt;br /&gt;
&lt;br /&gt;
Some options need to be changed/added to the config.cygwin file in the live folder so open this file with a text-editor.&lt;br /&gt;
&lt;br /&gt;
Add the -Wno-deprecated option:&lt;br /&gt;
&lt;br /&gt;
 CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall -DBSD=1 -Wno-deprecated&lt;br /&gt;
&lt;br /&gt;
Save the file under its current name config.cygwin&lt;br /&gt;
&lt;br /&gt;
Enter the following commands in your Cygwin shell:&lt;br /&gt;
&lt;br /&gt;
 cd live&lt;br /&gt;
&lt;br /&gt;
The following command is for converting any DOS/Windows &amp;quot;line endings&amp;quot; to UNIX style:&lt;br /&gt;
 &lt;br /&gt;
 dos2unix config.cygwin&lt;br /&gt;
&lt;br /&gt;
 make clean&lt;br /&gt;
&lt;br /&gt;
 ./genMakefiles cygwin&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
TODO: Fix live555 compilation. It still fails with the following errors:&lt;br /&gt;
&lt;br /&gt;
 GroupsockHelper.cpp:477: error: aggregate `ip_mreq_source imr&#039; has incomplete type and cannot be defined&lt;br /&gt;
 GroupsockHelper.cpp:482: error: invalid application of `sizeof&#039; to incomplete type `ip_mreq_source&#039;&lt;br /&gt;
 GroupsockHelper.cpp: In function `Boolean socketLeaveGroupSSM(UsageEnvironment&amp;amp;, int,  netAddressBits, netAddressBits)&#039;:&lt;br /&gt;
 GroupsockHelper.cpp:495: error: aggregate `ip_mreq_source imr&#039; has incomplete type and cannot be defined&lt;br /&gt;
 GroupsockHelper.cpp:500: error: invalid application of `sizeof&#039; to incomplete type  `ip_mreq_source&#039;&lt;br /&gt;
 make[1]: *** [GroupsockHelper.o] Error 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Compiling VLC==&lt;br /&gt;
&lt;br /&gt;
Enter the following commands in your Cygwin shell:&lt;br /&gt;
&lt;br /&gt;
 cd vlc-trunk&lt;br /&gt;
&lt;br /&gt;
(you can check with the pwd command to see in which folder you are and with just the cd&lt;br /&gt;
command without any additional parameters you can change back to your home directory).&lt;br /&gt;
&lt;br /&gt;
NOTE: The following line is optional, only use that if you have problems compiling.&lt;br /&gt;
&lt;br /&gt;
 ./toolbox --distclean&lt;br /&gt;
&lt;br /&gt;
(This will have removed everything except code related stuff).&lt;br /&gt;
&lt;br /&gt;
 ../configure-vlc.sh&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Cross your fingers...&lt;br /&gt;
&lt;br /&gt;
NOTE: ./ means you run an application/script from the &amp;quot;current folder&amp;quot; (which is vlc-trunk) and ../ points to &amp;quot;one directory up&amp;quot; (which is where configure-vlc.sh is).&lt;br /&gt;
&lt;br /&gt;
==Creating self contained packages==&lt;br /&gt;
&lt;br /&gt;
Once the compilation is done, you can either run VLC directly from the source tree or you can build self-contained VLC packages with the following &amp;quot;make&amp;quot; commands:&lt;br /&gt;
&lt;br /&gt;
 make package-win32-base&lt;br /&gt;
&lt;br /&gt;
(This will create a subdirectory named vlc-x.x.x with all the binaries &amp;quot;stripped&amp;quot; without any debugging symbols).&lt;br /&gt;
&lt;br /&gt;
 make package-win32-zip&lt;br /&gt;
&lt;br /&gt;
(Same as above but will package the directory in a zip file).&lt;br /&gt;
&lt;br /&gt;
 make package-win32&lt;br /&gt;
&lt;br /&gt;
(Same as above but will also create an auto-installer package. You will need to have NSIS installed in its default location for this to work).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Advanced usage=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Updating Cygwin package versions==&lt;br /&gt;
&lt;br /&gt;
If you need to update or install additional packages you can just run the Cygwin setup.exe from your download location:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\cygwin\setup.exe          (example)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Using older GCC and MINGW version===&lt;br /&gt;
&lt;br /&gt;
You should be aware that Cygwin automatically selects the latest versions for gcc-g++ and gcc-mingw so if you are using older versions of those (like 3.3.3-3 and the accompanied 20040810-1 packages for mingw) and wish to continue to use them you need to &#039;&#039;&#039;change&#039;&#039;&#039; those versions to &#039;&#039;&#039;Keep&#039;&#039;&#039; for &#039;&#039;&#039;every time you use the update process&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
NOTE: You can click on the &amp;quot;View&amp;quot; button a few times until you see &amp;quot;Partial&amp;quot; next to it. This will give you an overview of some &amp;quot;Current&amp;quot; packages that will be updated to &amp;quot;New&amp;quot; versions.&lt;br /&gt;
&lt;br /&gt;
select the View button until it reaches: Partial&lt;br /&gt;
&lt;br /&gt;
 Devel&lt;br /&gt;
   3.4.4-3      gcc-core         -&amp;gt; change version to &#039;&#039;&#039;Keep&#039;&#039;&#039;&lt;br /&gt;
   3.4.4-3      gcc-g++          -&amp;gt; change version to &#039;&#039;&#039;Keep&#039;&#039;&#039;&lt;br /&gt;
   20050522-1   gcc-mingw-core   -&amp;gt; change version to &#039;&#039;&#039;Keep&#039;&#039;&#039;&lt;br /&gt;
   20050522-1   gcc-mingw-g++    -&amp;gt; change version to &#039;&#039;&#039;Keep&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Selecting the 3.4.4-3 version automatically changes the gcc-mingw-core and gcc-mingw-g++ to the 20050522-1 (or newer) versions as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Downgrading Cygwin GCC packages===&lt;br /&gt;
&lt;br /&gt;
If your Cygwin gcc versions are already the latest and you wish to downgrade to gcc 3.3.3-3 then it&#039;s not possible to downgrade the gcc-core/g++ and the mingw packages all at the same time, it has to be done in two steps.&lt;br /&gt;
&lt;br /&gt;
select the View button until it reaches: Up To Date&lt;br /&gt;
&lt;br /&gt;
 Devel&lt;br /&gt;
   3.4.4-3      gcc-core   -&amp;gt; change version to &#039;&#039;&#039;3.3.3-3&#039;&#039;&#039;&lt;br /&gt;
   3.4.4-3      gcc-g++    -&amp;gt; change version to &#039;&#039;&#039;3.3.3-3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Install, OK.&lt;br /&gt;
&lt;br /&gt;
Restart the Cygwin update process.&lt;br /&gt;
&lt;br /&gt;
Select the View button until it reaches: Partial&lt;br /&gt;
&lt;br /&gt;
 Devel&lt;br /&gt;
   3.4.4-3      gcc-core   -&amp;gt; change version to &#039;&#039;&#039;Keep&#039;&#039;&#039;&lt;br /&gt;
   3.4.4-3      gcc-g++    -&amp;gt; change version to &#039;&#039;&#039;Keep&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Select the View button until it reaches: Up To Date&lt;br /&gt;
&lt;br /&gt;
 Devel&lt;br /&gt;
   20050522-1   gcc-mingw-core   -&amp;gt; change version to &#039;&#039;&#039;20040810-1&#039;&#039;&#039; &lt;br /&gt;
   20050522-1   gcc-mingw-g++    -&amp;gt; change version to &#039;&#039;&#039;20040810-1&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Install, OK.&lt;br /&gt;
&lt;br /&gt;
Again, for any new update process remember to change back those versions!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDB (Gnu Debugger)==&lt;br /&gt;
&lt;br /&gt;
This section requires that you installed the gdb (Gnu Debugger) in Cygwin.&lt;br /&gt;
&lt;br /&gt;
This is a typical example of creating a crashlog:&lt;br /&gt;
&lt;br /&gt;
 cd vlc-trunk&lt;br /&gt;
&lt;br /&gt;
 gdb vlc.exe&lt;br /&gt;
&lt;br /&gt;
In the debugger mode run the program and make sure you reset the preferences!&lt;br /&gt;
&lt;br /&gt;
 (gdb) run --fast-mutex --reset-config --reset-plugins-cache&lt;br /&gt;
&lt;br /&gt;
NOTE: the (gdb) is just a prompt which means you are in the debugger mode&lt;br /&gt;
&lt;br /&gt;
It will now take a lot longer than usual for VLC to start :)&lt;br /&gt;
&lt;br /&gt;
Now operate VLC as you would normally do. As soon as a crash issue occurs&lt;br /&gt;
you&#039;ll notice a line like this:&lt;br /&gt;
&lt;br /&gt;
 Program received signal SIGSEGV, Segmentation fault.&lt;br /&gt;
 0x0041394c in playlist_ItemGetById (p_playlist=0x19ec4f8, i_id=29)&lt;br /&gt;
     at src/playlist/item-ext.c:459&lt;br /&gt;
 ---Type &amp;lt;return&amp;gt; to continue, or q &amp;lt;return&amp;gt; to quit---&lt;br /&gt;
 459             i = i_bottom + ( i_top - i_bottom ) / 2;&lt;br /&gt;
&lt;br /&gt;
Now you can do a &amp;quot;backtrace&amp;quot; by using the bt command:&lt;br /&gt;
&lt;br /&gt;
 (gdb) bt&lt;br /&gt;
&lt;br /&gt;
And output similar to this will be created:&lt;br /&gt;
&lt;br /&gt;
 #0  0x0041394c in playlist_ItemGetById (p_playlist=0x19ec4f8, i_id=29) &lt;br /&gt;
     at src/playlist/item-ext.c:459&lt;br /&gt;
 #1  0x0b26bbf7 in wxvlc::Playlist::CountItems (this=0x1822e288, root=&lt;br /&gt;
       {m_pItem = 0x29fef8}) at playlist.cpp:695&lt;br /&gt;
 #2  0x0b26bc83 in wxvlc::Playlist::CountItems (this=0x1822e288, root=&lt;br /&gt;
       {m_pItem = 0x29e8b0}) at playlist.cpp:689&lt;br /&gt;
 #3  0x0b26bc83 in wxvlc::Playlist::CountItems (this=0x1822e288, root=&lt;br /&gt;
       {m_pItem = 0x29a818}) at playlist.cpp:689&lt;br /&gt;
 #4  0x0b26bc83 in wxvlc::Playlist::CountItems (this=0x1822e288, root=&lt;br /&gt;
       {m_pItem = 0x299718}) at playlist.cpp:689&lt;br /&gt;
 #5  0x0b26bc83 in wxvlc::Playlist::CountItems (this=0x1822e288, root=&lt;br /&gt;
       {m_pItem = 0xffff0000}) at playlist.cpp:689&lt;br /&gt;
 #6  0x0b26bf49 in wxvlc::Playlist::AppendItem (this=0x1822e288,&lt;br /&gt;
     event=@0x1827afd0) at playlist.cpp:564&lt;br /&gt;
 #7  0x0b2757fc in wxvlc::Playlist::OnPlaylistEvent (this=0x1822e288,&lt;br /&gt;
     event=@0x1827afd0) at playlist.cpp:1438&lt;br /&gt;
 #8  0x0b3771b8 in wxEvtHandler::ProcessEventIfMatches ()&lt;br /&gt;
     at /usr/win32/include/wx-2.6/wx/event.h:2183&lt;br /&gt;
 #9  0x0b376a1c in wxEventHashTable::HandleEvent ()&lt;br /&gt;
     at /usr/win32/include/wx-2.6/wx/event.h:2183&lt;br /&gt;
 #10 0x0b37730d in wxEvtHandler::ProcessEvent ()&lt;br /&gt;
     at /usr/win32/include/wx-2.6/wx/event.h:2183&lt;br /&gt;
 #11 0x0b37711b in wxEvtHandler::ProcessPendingEvents ()&lt;br /&gt;
     at /usr/win32/include/wx-2.6/wx/event.h:2183&lt;br /&gt;
 ---Type &amp;lt;return&amp;gt; to continue, or q &amp;lt;return&amp;gt; to quit---&lt;br /&gt;
 #12 0x0b376017 in wxAppConsole::ProcessPendingEvents ()&lt;br /&gt;
     at /usr/win32/include/wx-2.6/wx/event.h:2183&lt;br /&gt;
 #13 0x0b3ec75a in wxIdleWakeUpModule::MsgHookProc ()&lt;br /&gt;
     at /usr/win32/include/wx-2.6/wx/bmpbuttn.h:81&lt;br /&gt;
 #14 0x773aca2d in USER32!GetScrollRange ()&lt;br /&gt;
    from /cygdrive/c/WINDOWS/system32/user32.dll&lt;br /&gt;
 #15 0x00000000 in ?? () from&lt;br /&gt;
 (gdb)&lt;br /&gt;
&lt;br /&gt;
These are the log outputs that are more usefull to developers than just mentioning &amp;quot;it crashes&amp;quot;!&lt;br /&gt;
&lt;br /&gt;
NOTE: In GDB mode there are sometimes situations where GDB initially &amp;quot;crashes&amp;quot; on certain network activity (opening network shares, network traffic) which in normal operation does not occur. Just select c for continue until &amp;quot;normal&amp;quot; operation continues.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==.diff files==&lt;br /&gt;
&lt;br /&gt;
Frequently patches to source code are presented or discussed in forums or in mailing lists in so called .diff format (these are &amp;quot;differences&amp;quot; to the source code).&lt;br /&gt;
&lt;br /&gt;
You can apply those patches yourself to the source code or create .diff files. This requires the patchutils package in Cygwin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Patching source code===&lt;br /&gt;
&lt;br /&gt;
Download a so called .diff file:&lt;br /&gt;
&lt;br /&gt;
 sse2-pixel-routines-v3.diff (example)&lt;br /&gt;
&lt;br /&gt;
NOTE: make sure the file doesn&#039;t get a .txt extension, so Save as type &amp;quot;All Files&amp;quot; instead of &amp;quot;Text Document&amp;quot; (IE has a habit of renaming to .txt. If that happens just simply rename to .diff)&lt;br /&gt;
&lt;br /&gt;
Copy the .diff file into the appropriate source folder&lt;br /&gt;
&lt;br /&gt;
 x264-trunk (example)&lt;br /&gt;
&lt;br /&gt;
Apply the patch as follows&lt;br /&gt;
&lt;br /&gt;
 patch -p0 &amp;lt; sse2-pixel-routines-v3.diff (example)&lt;br /&gt;
&lt;br /&gt;
NOTE: replace sse2-pixel-routines-v3.diff with your &amp;quot;patch&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will output something like:&lt;br /&gt;
&lt;br /&gt;
 patching file common/i386/pixel.h&lt;br /&gt;
 patching file common/i386/pixel-a.asm&lt;br /&gt;
 patching file common/pixel.c&lt;br /&gt;
&lt;br /&gt;
Your source code is now patched!&lt;br /&gt;
&lt;br /&gt;
NOTE: If you want to revert to the original version you can use the -R option with the patch command or alternatively you can just delete the changed files and just do an SVN update to get the original/latest SVN version back.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Creating .diff files===&lt;br /&gt;
&lt;br /&gt;
When changing the source code it&#039;s possible to create a &amp;quot;difference&amp;quot; file against the latest source.&lt;br /&gt;
&lt;br /&gt;
In this example the file /modules/codec/x264.c was changed (the part &amp;quot;in kbit/s&amp;quot; was added to a description).&lt;br /&gt;
&lt;br /&gt;
Start your Cygwin shell.&lt;br /&gt;
&lt;br /&gt;
Change to the appropriate folder where a changed file is.&lt;br /&gt;
&lt;br /&gt;
 cd vlc-trunk/modules/codec (example)&lt;br /&gt;
&lt;br /&gt;
Output the svn diff command to a file:&lt;br /&gt;
&lt;br /&gt;
 svn diff -u &amp;gt; x264-patch.diff&lt;br /&gt;
&lt;br /&gt;
The current folder now holds a x264-patch.diff file containing the following:&lt;br /&gt;
&lt;br /&gt;
 Index: x264.c&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- x264.c      (revision 15921)&lt;br /&gt;
 +++ x264.c      (working copy)&lt;br /&gt;
 @@ -131,7 +131,7 @@&lt;br /&gt;
  #define RATETOL_LONGTEXT N_( &amp;quot;Allowed variance in average. &amp;quot; \&lt;br /&gt;
      &amp;quot;bitrate (in kbits/s).&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 -#define VBV_MAXRATE_TEXT N_(&amp;quot;Max local bitrate&amp;quot;)&lt;br /&gt;
 +#define VBV_MAXRATE_TEXT N_(&amp;quot;Max local bitrate in kbit/s&amp;quot;)&lt;br /&gt;
  #define VBV_MAXRATE_LONGTEXT N_( &amp;quot;Sets a maximum local bitrate in kbits/s.&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
  #define VBV_BUFSIZE_TEXT N_(&amp;quot;VBV buffer&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
NOTE: In Windows you should open this file with something else than notepad (so wordpad or some more advanced editor). This has to do with the end of line markers that are present in the file since it was made in a Linux environment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reverting to older SVN source code==&lt;br /&gt;
&lt;br /&gt;
If for some reason you want to revert to (use) an older version (let&#039;s say you are using  revision 15916 of the VLC source code but would like to test with 15915) then use the svn &amp;quot;update&amp;quot; function from within Cygwin but use an older revision number.&lt;br /&gt;
&lt;br /&gt;
Start your Cygwin shell...&lt;br /&gt;
&lt;br /&gt;
 cd vlc-trunk&lt;br /&gt;
&lt;br /&gt;
 svn up -r 15915&lt;br /&gt;
&lt;br /&gt;
And you&#039;ll see something like this:&lt;br /&gt;
&lt;br /&gt;
 U    src\input\input.c&lt;br /&gt;
 Updated to revision 15915.&lt;br /&gt;
&lt;br /&gt;
The following command will show the version used:&lt;br /&gt;
&lt;br /&gt;
 svn info&lt;br /&gt;
&lt;br /&gt;
=FAQ/Troubleshooting=&lt;br /&gt;
&lt;br /&gt;
This chapter mentions some frequently encountered problems during compile and installation procedures and possible fixes or workarounds.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Making all in &amp;lt;folder&amp;gt;&amp;quot; takes forever with 0% CPU usage==&lt;br /&gt;
&lt;br /&gt;
Make seems to &amp;quot;stall&amp;quot; at a certain point (no CPU usage) and nothing seems to happen anymore:&lt;br /&gt;
&lt;br /&gt;
 Making all in mpeg&lt;br /&gt;
 make[5]: Entering directory `/home/Administrator/vlc-trunk/modules/mux/mpeg&#039;&lt;br /&gt;
&lt;br /&gt;
NOTE: This problem seems to occur on dual CPU (or HyperThreading enabled)&lt;br /&gt;
systems.&lt;br /&gt;
&lt;br /&gt;
FIX: in the vlc-trunk do a ./toolbox --distclean before doing a ../configure-vlc.sh and try again...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==configure: error: C compiler cannot create executables==&lt;br /&gt;
&lt;br /&gt;
The ../configure-vlc.sh gives the following error:&lt;br /&gt;
&lt;br /&gt;
 checking for gcc... gcc -mno-cygwin&lt;br /&gt;
 checking for C compiler default output file name... configure: error: C compiler&lt;br /&gt;
 cannot create executables&lt;br /&gt;
&lt;br /&gt;
FIX: it&#039;s very likely you are using the gcc 3.3 version but with the wrong mingw packages (the ones that come with 3.4). Reinstall the following gcc-mingw packages but make sure to use the older version!!!&lt;br /&gt;
&lt;br /&gt;
20050522-1      gcc-mingw-core  autoselected -&amp;gt;  change to 20040810-1&lt;br /&gt;
20050522-1      gcc-mingw-g++ 	autoselected -&amp;gt;  change to 20040810-1&lt;br /&gt;
&lt;br /&gt;
You can check what version of gcc you are version in the Cygwin shell by using the following command:&lt;br /&gt;
&lt;br /&gt;
 gcc --version&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==collect2: ld returned 1 exit status (libebml)==&lt;br /&gt;
&lt;br /&gt;
A make fails with the following error:&lt;br /&gt;
&lt;br /&gt;
 /usr/win32/lib/libebml.a(EbmlMaster.o):EbmlMaster.cpp:(.text$_ZNSt14__simple_all&lt;br /&gt;
 ocISsSt24__default_alloc_templateILb1ELi0EEE10deallocateEPSsj[std::__simple_allo&lt;br /&gt;
 c&amp;lt;std::basic_string&amp;lt;char, std::char_traits&amp;lt;char&amp;gt;, std::allocator&amp;lt;char&amp;gt; &amp;gt;, std::_&lt;br /&gt;
 _default_alloc_template&amp;lt;true, 0&amp;gt; &amp;gt;::deallocate(std::basic_string&amp;lt;char, std::char&lt;br /&gt;
 _traits&amp;lt;char&amp;gt;, std::allocator&amp;lt;char&amp;gt; &amp;gt;*, unsigned int)]+0x1d): undefined referenc&lt;br /&gt;
 e to `std::__default_alloc_template&amp;lt;true, 0&amp;gt;::deallocate(void*, unsigned int)&#039;&lt;br /&gt;
 /usr/win32/lib/libebml.a(EbmlMaster.o):EbmlMaster.cpp:(.text$_ZNSt14__simple_all&lt;br /&gt;
 ocISsSt24__default_alloc_templateILb1ELi0EEE8allocateEj[std::__simple_alloc&amp;lt;std:&lt;br /&gt;
 :basic_string&amp;lt;char, std::char_traits&amp;lt;char&amp;gt;, std::allocator&amp;lt;char&amp;gt; &amp;gt;, std::__defau&lt;br /&gt;
 lt_alloc_template&amp;lt;true, 0&amp;gt; &amp;gt;::allocate(unsigned int)]+0x1d): undefined reference&lt;br /&gt;
  to `std::__default_alloc_template&amp;lt;true, 0&amp;gt;::allocate(unsigned int)&#039;&lt;br /&gt;
 /usr/win32/lib/libebml.a(EbmlMaster.o):EbmlMaster.cpp:(.text$_ZNSt14__simple_all&lt;br /&gt;
 ocIPN7libebml11EbmlElementESt24__default_alloc_templateILb1ELi0EEE8allocateEj[st&lt;br /&gt;
 d::__simple_alloc&amp;lt;libebml::EbmlElement*, std::__default_alloc_template&amp;lt;true, 0&amp;gt;&lt;br /&gt;
 &amp;gt;::allocate(unsigned int)]+0x1d): undefined reference to `std::__default_alloc_t&lt;br /&gt;
 emplate&amp;lt;true, 0&amp;gt;::allocate(unsigned int)&#039;&lt;br /&gt;
 /usr/win32/lib/libebml.a(EbmlMaster.o):EbmlMaster.cpp:(.text$_ZNSt14__simple_all&lt;br /&gt;
 ocIPN7libebml11EbmlElementESt24__default_alloc_templateILb1ELi0EEE10deallocateEP&lt;br /&gt;
 S2_j[std::__simple_alloc&amp;lt;libebml::EbmlElement*, std::__default_alloc_template&amp;lt;tr&lt;br /&gt;
 ue, 0&amp;gt; &amp;gt;::deallocate(libebml::EbmlElement**, unsigned int)]+0x1d): undefined ref&lt;br /&gt;
 erence to `std::__default_alloc_template&amp;lt;true, 0&amp;gt;::deallocate(void*, unsigned in&lt;br /&gt;
 t)&#039;&lt;br /&gt;
 collect2: ld returned 1 exit status&lt;br /&gt;
 make[2]: *** [vlc.exe] Error 1&lt;br /&gt;
&lt;br /&gt;
This problem is because libEbml is a C++ lib and it doesn&#039;t seem to link with gcc 3.4.&lt;br /&gt;
&lt;br /&gt;
FIX: Use gcc 3.3 with the according 3.3 Win32 &amp;quot;contrib&amp;quot; package version or use a Win32 &amp;quot;contrib&amp;quot; package for 3.4 (or even better try compiling it yourself).&lt;br /&gt;
&lt;br /&gt;
WORKAROUND for gcc 3.4: Use --disable-mkv in configure-vlc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==zip: command not found==&lt;br /&gt;
&lt;br /&gt;
A make package fails with the following error:&lt;br /&gt;
&lt;br /&gt;
 zip -r vlc-0.8.4-svn-win32.zip vlc-0.8.4-svn&lt;br /&gt;
 /bin/bash: line 1: zip: command not found&lt;br /&gt;
 make: *** [package-win32-base-zip] Error 127&lt;br /&gt;
&lt;br /&gt;
FIX: Doh! forgot to install the zip package in Cygwin :P&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==vlc.exe: Permission denied==&lt;br /&gt;
&lt;br /&gt;
A make finished successfully and produced vlc.exe, but running the executable returns the following:&lt;br /&gt;
&lt;br /&gt;
 bash: ./vlc.exe: Permission denied&lt;br /&gt;
&lt;br /&gt;
The permissions on both vlc.exe &amp;amp; vlc.exe.manifest must be set to executable. &lt;br /&gt;
&lt;br /&gt;
FIX: Type the following:&lt;br /&gt;
 &lt;br /&gt;
 chmod 755 vlc.exe vlc.exe.manifest&lt;br /&gt;
&lt;br /&gt;
==error: parse error before &#039;(&#039; token==&lt;br /&gt;
&lt;br /&gt;
A make (compile) of FFmpeg results in the following error:&lt;br /&gt;
&lt;br /&gt;
 /usr/include/sys/unistd.h:203: error: parse error before &#039;(&#039; token&lt;br /&gt;
 make[1]: *** [ffm.o] Error 1&lt;br /&gt;
&lt;br /&gt;
It&#039;s very likely you are usix the POSIX emulater which you shouldn&#039;t...&lt;br /&gt;
&lt;br /&gt;
FIX: compile with the option &lt;br /&gt;
&lt;br /&gt;
 -mno-cygwin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==error: invalid conversion from `const void*&#039; to `void*&#039;==&lt;br /&gt;
&lt;br /&gt;
 src/theme_loader.cpp: In function `int gzwrite_frontend(int, const void*, size_t)&#039;:&lt;br /&gt;
 src/theme_loader.cpp:599: error: invalid conversion from `const void*&#039; to `void*&#039;&lt;br /&gt;
 src/theme_loader.cpp:599: error:   initializing argument 2 of `int gzwrite(void*,&lt;br /&gt;
 void*, unsigned int)&#039;&lt;br /&gt;
 make[6]: *** [libskins2_plugin_a-theme_loader.o] Error 1&lt;br /&gt;
&lt;br /&gt;
FIX: This is related to a problem with the zlib library, updating to at least 1.2.2-1 but preferably 1.2.3 or newer is required&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==error: cannot convert `const wxChar*&#039; to `const char*==&lt;br /&gt;
&lt;br /&gt;
 if g++ -mno-cygwin -DHAVE_CONFIG_H -I. -I. -I../../..   -I/usr/win32/include -I/&lt;br /&gt;
 usr/win32/include/ebml -D_OFF_T_ -D_off_t=long -DSYS_MINGW32 -I../../../include&lt;br /&gt;
 `top_builddir=&amp;quot;../../..&amp;quot; ../../../vlc-config --cxxflags plugin wxwidgets` -Wsign&lt;br /&gt;
 -compare -Wsign-compare -Wall  -mms-bitfields -pipe -MT libwxwidgets_plugin_a-wx&lt;br /&gt;
 widgets.o -MD -MP -MF &amp;quot;.deps/libwxwidgets_plugin_a-wxwidgets.Tpo&amp;quot; -c -o libwxwid&lt;br /&gt;
 gets_plugin_a-wxwidgets.o `test -f &#039;wxwidgets.cpp&#039; || echo &#039;./&#039;`wxwidgets.cpp; \&lt;br /&gt;
 then mv -f &amp;quot;.deps/libwxwidgets_plugin_a-wxwidgets.Tpo&amp;quot; &amp;quot;.deps/libwxwidgets_plugi&lt;br /&gt;
 n_a-wxwidgets.Po&amp;quot;; else rm -f &amp;quot;.deps/libwxwidgets_plugin_a-wxwidgets.Tpo&amp;quot;; exit&lt;br /&gt;
 1; fi&lt;br /&gt;
 In file included from /usr/win32/include/wx-2.6/wx/debug.h:22,&lt;br /&gt;
                  from /usr/win32/include/wx-2.6/wx/defs.h:452,&lt;br /&gt;
                  from /usr/win32/include/wx-2.6/wx/wxprec.h:13,&lt;br /&gt;
                  from wxwidgets.h:40,&lt;br /&gt;
                  from wxwidgets.cpp:39:&lt;br /&gt;
 /usr/win32/include/wx-2.6/wx/wxchar.h: In function `size_t wxStrlen(const wxChar&lt;br /&gt;
 *)&#039;:&lt;br /&gt;
 /usr/win32/include/wx-2.6/wx/wxchar.h:759: error: cannot convert `const wxChar*&#039;&lt;br /&gt;
  to `const char*&#039; for argument `1&#039; to `size_t strlen(const char*)&#039;&lt;br /&gt;
 In file included from /usr/win32/include/wx-2.6/wx/memory.h:20,&lt;br /&gt;
                  from /usr/win32/include/wx-2.6/wx/object.h:25,&lt;br /&gt;
                  from /usr/win32/include/wx-2.6/wx/wx.h:16,&lt;br /&gt;
                  from wxwidgets.h:41,&lt;br /&gt;
                  from wxwidgets.cpp:39:&lt;br /&gt;
 /usr/win32/include/wx-2.6/wx/string.h: In constructor `wxString::wxString(const&lt;br /&gt;
 wxChar*)&#039;:&lt;br /&gt;
&lt;br /&gt;
FIX: update wxwidgets or try a different or newer Win32 &amp;quot;contrib&amp;quot; package.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==undefined reference to `_av_parser_change&#039; (FFmpeg)==&lt;br /&gt;
&lt;br /&gt;
 ffmpeg.o: In function `output_packet&#039;:&lt;br /&gt;
 /home/Administrator/FFmpeg-20050724/ffmpeg.c:1414: undefined reference to `_av_parser_change&#039;&lt;br /&gt;
 /home/Administrator/FFmpeg-20050724/ffmpeg.c:1415: undefined reference to `_av_destruct_packet&#039;&lt;br /&gt;
 collect2: ld returned 1 exit status&lt;br /&gt;
 make: *** [ffmpeg_g.exe] Error 1&lt;br /&gt;
&lt;br /&gt;
This is a possible conflict when you use normal configure-ffmpeg (uses /usr/win32&lt;br /&gt;
contrib) instead of configure-ffmpeg-svn&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==undefined reference to `_pp_get_context&#039; (FFmpeg)==&lt;br /&gt;
&lt;br /&gt;
 ./modules/codec/ffmpeg/libffmpeg.a(libffmpeg_a-postprocess.o): In function `Init&lt;br /&gt;
 Postproc__ffmpeg&#039;:&lt;br /&gt;
 /home/Administrator/vlc-trunk/modules/codec/ffmpeg/postprocess.c:164: undefined&lt;br /&gt;
 reference to `_pp_get_context&#039;&lt;br /&gt;
 ./modules/codec/ffmpeg/libffmpeg.a(libffmpeg_a-postprocess.o): In function `PPQC&lt;br /&gt;
 allback&#039;:&lt;br /&gt;
 /home/Administrator/vlc-trunk/modules/codec/ffmpeg/postprocess.c:244: undefined&lt;br /&gt;
 reference to `_pp_get_mode_by_name_and_quality&#039;&lt;br /&gt;
 ./modules/codec/ffmpeg/libffmpeg.a(libffmpeg_a-postprocess.o): In function `Post&lt;br /&gt;
 procPict__ffmpeg&#039;:&lt;br /&gt;
 /home/Administrator/vlc-trunk/modules/codec/ffmpeg/postprocess.c:191: undefined&lt;br /&gt;
 reference to `_pp_postprocess&#039;&lt;br /&gt;
 $&lt;br /&gt;
 ePostproc__ffmpeg&#039;:&lt;br /&gt;
 /home/Administrator/vlc-trunk/modules/codec/ffmpeg/postprocess.c:209: undefined&lt;br /&gt;
 reference to `_pp_free_mode&#039;&lt;br /&gt;
 /home/Administrator/vlc-trunk/modules/codec/ffmpeg/postprocess.c:210: undefined&lt;br /&gt;
 reference to `_pp_free_context&#039;&lt;br /&gt;
 collect2: ld returned 1 exit status&lt;br /&gt;
 make[2]: *** [vlc.exe] Error 1&lt;br /&gt;
 make[2]: Leaving directory `/home/Administrator/vlc-trunk&#039;&lt;br /&gt;
 make[1]: *** [all-recursive] Error 1&lt;br /&gt;
 make[1]: Leaving directory `/home/Administrator/vlc-trunk&#039;&lt;br /&gt;
 make: *** [all] Error 2&lt;br /&gt;
&lt;br /&gt;
FFmpeg was not compiled with post processing support. To do so the following options need to be added to the configure lines for FFmpeg:&lt;br /&gt;
&lt;br /&gt;
 --enable-pp --enable-gpl&lt;br /&gt;
&lt;br /&gt;
Postprocessing code is under GPL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==error: expected primary-expression before &#039;&amp;lt;&amp;lt;&#039; token==&lt;br /&gt;
&lt;br /&gt;
 In file included from /usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../include/w32&lt;br /&gt;
 api/windows.h:52,&lt;br /&gt;
                  from ../../../include/vlc_common.h:459,&lt;br /&gt;
                  from ../../../include/vlc/vlc.h:153,&lt;br /&gt;
                  from dshow.cpp:31:&lt;br /&gt;
 /usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../include/w32api/wingdi.h:3:1: warn&lt;br /&gt;
 ing: this is the location of the previous definition&lt;br /&gt;
 In file included from /usr/win32/include/dshow.h:35,&lt;br /&gt;
                  from common.h:45,&lt;br /&gt;
                  from dshow.cpp:35:&lt;br /&gt;
 /usr/win32/include/ddraw.h:14: warning: ignoring #pragma warning&lt;br /&gt;
 In file included from /usr/win32/include/dshow.h:35,&lt;br /&gt;
                  from common.h:45,&lt;br /&gt;
                  from dshow.cpp:35:&lt;br /&gt;
 /usr/win32/include/ddraw.h:5552: warning: ignoring #pragma warning&lt;br /&gt;
 In file included from /usr/win32/include/dshow.h:45,&lt;br /&gt;
                  from common.h:45,&lt;br /&gt;
                  from dshow.cpp:35:&lt;br /&gt;
 /usr/win32/include/strmif.h:2: warning: ignoring #pragma warning&lt;br /&gt;
 In file included from /usr/win32/include/dsound.h:13,&lt;br /&gt;
                  from /usr/win32/include/amaudio.h:18,&lt;br /&gt;
                  from /usr/win32/include/dshow.h:47,&lt;br /&gt;
                  from common.h:45,&lt;br /&gt;
                  from dshow.cpp:35:&lt;br /&gt;
 /usr/win32/include/d3dtypes.h:22: warning: ignoring #pragma warning&lt;br /&gt;
 /usr/win32/include/d3dtypes.h:1813: warning: ignoring #pragma warning&lt;br /&gt;
 In file included from /usr/win32/include/dshow.h:48,&lt;br /&gt;
                  from common.h:45,&lt;br /&gt;
                  from dshow.cpp:35:&lt;br /&gt;
 /usr/win32/include/control.h:2: warning: ignoring #pragma warning&lt;br /&gt;
 dshow.cpp: In function `int CommonOpen(vlc_object_t*, access_sys_t*, vlc_bool_t)&lt;br /&gt;
 &#039;:&lt;br /&gt;
 dshow.cpp:456: error: expected primary-expression before &#039;&amp;lt;&amp;lt;&#039; token&lt;br /&gt;
 dshow.cpp:456: error: expected primary-expression before &#039;&amp;lt;&amp;lt;&#039; token&lt;br /&gt;
 dshow.cpp:456: error: expected primary-expression before &#039;&amp;lt;&amp;lt;&#039; token&lt;br /&gt;
 dshow.cpp:456: error: expected primary-expression before &#039;&amp;lt;&#039; token&lt;br /&gt;
 dshow.cpp:456: error: expected primary-expression before &#039;.&#039; token&lt;br /&gt;
 dshow.cpp:470: error: expected primary-expression before &#039;==&#039; token&lt;br /&gt;
 dshow.cpp:470: error: expected primary-expression before &#039;==&#039; token&lt;br /&gt;
 dshow.cpp:470: error: expected primary-expression before &#039;==&#039; token&lt;br /&gt;
 dshow.cpp:470: error: expected primary-expression before &#039;=&#039; token&lt;br /&gt;
 dshow.cpp:484: error: expected primary-expression before &#039;&amp;gt;&amp;gt;&#039; token&lt;br /&gt;
 dshow.cpp:484: error: expected primary-expression before &#039;&amp;gt;&amp;gt;&#039; token&lt;br /&gt;
 dshow.cpp:484: error: expected primary-expression before &#039;&amp;gt;&amp;gt;&#039; token&lt;br /&gt;
 dshow.cpp:484: error: expected primary-expression before &#039;&amp;gt;&#039; token&lt;br /&gt;
 dshow.cpp:484: error: expected primary-expression before &#039;.&#039; token&lt;br /&gt;
 dshow.cpp:485: error: expected `;&#039; before &amp;quot;IAMCrossbar&amp;quot;&lt;br /&gt;
 dshow.cpp:491: error: `pXbar&#039; undeclared (first use this function)&lt;br /&gt;
 dshow.cpp:491: error: (Each undeclared identifier is reported only once for each&lt;br /&gt;
 function it appears in.)&lt;br /&gt;
 make[6]: *** [libdshow_plugin_a-dshow.o] Error 1&lt;br /&gt;
 make[6]: Leaving directory `/home/Administrator/vlc-trunk/modules/access/dshow&#039;&lt;br /&gt;
 make[5]: *** [all-modules] Error 1&lt;br /&gt;
 make[5]: Leaving directory `/home/Administrator/vlc-trunk/modules/access/dshow&#039;&lt;br /&gt;
 make[4]: *** [all-recursive] Error 1&lt;br /&gt;
 make[4]: Leaving directory `/home/Administrator/vlc-trunk/modules/access&#039;&lt;br /&gt;
 make[3]: *** [all] Error 2&lt;br /&gt;
&lt;br /&gt;
Basically in case of conflict svn adds &amp;quot;&amp;lt;&amp;lt;&amp;lt; mine&amp;quot; and &amp;quot;=======&amp;quot; and &amp;quot;&amp;gt;&amp;gt;&amp;gt;&amp;gt; r1242&amp;quot; which makes gcc complain.&lt;br /&gt;
&lt;br /&gt;
FIX: revert the offending file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==configure: error: Could not find ffmpeg on your system==&lt;br /&gt;
&lt;br /&gt;
 configure: error: Could not find ffmpeg on your system: you may get it from&lt;br /&gt;
 http://ffmpeg.sf.net/ (cvs version is recommended). Alternatively you can use&lt;br /&gt;
 --disable-ffmpeg to disable the ffmpeg plugins.&lt;br /&gt;
 make: *** [config.status] Error 1&lt;br /&gt;
&lt;br /&gt;
This can happen when you do a make without doing a configure and the configure.ac file in the source code recently updated.&lt;br /&gt;
&lt;br /&gt;
FIX: do a full configure (using ../configure-vlc.sh) and then run the make process&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Objective C source seen but `OBJC&#039; is undefined==&lt;br /&gt;
&lt;br /&gt;
The configure process stops halfway.&lt;br /&gt;
&lt;br /&gt;
 + aclocal-1.9 -I m4&lt;br /&gt;
 + autoconf&lt;br /&gt;
 + autoheader&lt;br /&gt;
 + automake-1.9 --add-missing --copy -Wall&lt;br /&gt;
 configure.ac: installing `autotools/install-sh&#039;&lt;br /&gt;
 configure.ac: installing `autotools/missing&#039;&lt;br /&gt;
 activex/Makefile.am:143: shell $(VLC_CONFIG: non-POSIX variable name&lt;br /&gt;
 activex/Makefile.am:143: (probably a GNU make extension)&lt;br /&gt;
 activex/Makefile.am: installing `autotools/compile&#039;&lt;br /&gt;
 activex/Makefile.am: installing `autotools/depcomp&#039;&lt;br /&gt;
 modules/gui/macosx/Makefile.am: Objective C source seen but `OBJC&#039; is undefined&lt;br /&gt;
 modules/misc/testsuite/Makefile.am: Objective C source seen but `OBJC&#039; is undefi&lt;br /&gt;
 ned&lt;br /&gt;
 src/Makefile.am: Objective C source seen but `OBJC&#039; is undefined&lt;br /&gt;
 Makefile.am:282: user target `vlc$(EXEEXT)&#039; defined here...&lt;br /&gt;
 /usr/share/automake-1.9/am/program.am: ... overrides Automake target `vlc$(EXEEX&lt;br /&gt;
 T)&#039; defined here&lt;br /&gt;
 Makefile.am:230:   while processing program `vlc&#039;&lt;br /&gt;
 make: *** No targets specified and no makefile found.  Stop.&lt;br /&gt;
 &lt;br /&gt;
This problem is related to a warning earlier on and only occured in a few revisions where a built-in workaround wasn&#039;t working properly:&lt;br /&gt;
&lt;br /&gt;
 + echo &#039;Enabling provisional autoconf 2.59 work-around. Update autoconf ASAP.&#039;&lt;br /&gt;
 Enabling provisional autoconf 2.59 work-around. Update autoconf ASAP.&lt;br /&gt;
&lt;br /&gt;
FIX: update autoconf to 2.60 or newer. If Cygwin doesn&#039;t provide this version yet then build it yourself from extras/contrib.&lt;br /&gt;
&lt;br /&gt;
Enter the following commands in your Cygwin shell:&lt;br /&gt;
&lt;br /&gt;
 cd vlc-trunk/extras/contrib&lt;br /&gt;
&lt;br /&gt;
 ./bootstrap&lt;br /&gt;
&lt;br /&gt;
 cd src&lt;br /&gt;
&lt;br /&gt;
 make .autoconf&lt;br /&gt;
&lt;br /&gt;
There should now be compiled autoconf version (probably 2.60 or newer) in extras/contrib that the bootstrap process will use.&lt;br /&gt;
&lt;br /&gt;
Now start the whole &amp;quot;Compile VLC&amp;quot; process from the start again.&lt;br /&gt;
&lt;br /&gt;
==Error: cannot create temporary file for diversion: Permission denied==&lt;br /&gt;
&lt;br /&gt;
If the above error appears, it might mean you don&#039;t have the TMPDIR defined in cygwin. You will need to define it and have its value point to your temporary directory.&lt;br /&gt;
&lt;br /&gt;
=Version=&lt;br /&gt;
&lt;br /&gt;
20050627 Initial version&lt;br /&gt;
&lt;br /&gt;
20050628 Updated some more exceptions&lt;br /&gt;
&lt;br /&gt;
20050628 Some info added about FFmpeg compiling with AMR&lt;br /&gt;
&lt;br /&gt;
20050629 Finalized FFmpeg compiling&lt;br /&gt;
&lt;br /&gt;
20050630 Cross-compiling&lt;br /&gt;
&lt;br /&gt;
20050724 Some extra compile explanations&lt;br /&gt;
&lt;br /&gt;
20050726 Removed cross-compiling (was for linux -&amp;gt; win32) Patching source code with .diff files&lt;br /&gt;
&lt;br /&gt;
20050823 Added zlib error&lt;br /&gt;
&lt;br /&gt;
20050923 --enable-sdl --with-sdl-config-path=/usr/win32/bin added to configure. Added debug section&lt;br /&gt;
&lt;br /&gt;
20051102 Changed FFmpeg lib names&lt;br /&gt;
&lt;br /&gt;
20051128 Detailed Cygwin upgrade/downgrade for gcc 3.3. Renamed some update scripts. Added FFmpeg CVS update. --disable-gnomevfs added to configure (only used on linux)&lt;br /&gt;
&lt;br /&gt;
20060121 PKG_CONFIG_PATH=/usr/win32/lib/pkgconfig added to configure&lt;br /&gt;
&lt;br /&gt;
20060128 Added curl and libtool to Cygwin for those that want to be able to build extras/contrib themselves&lt;br /&gt;
&lt;br /&gt;
20060217 Added make install-libs install-headers to FFmpeg compile&lt;br /&gt;
&lt;br /&gt;
20060222 Remark about missing &amp;quot;gettext&amp;quot; libs for Cygwin during install&lt;br /&gt;
&lt;br /&gt;
20060225 ./bootstrap: you need libtool&lt;br /&gt;
&lt;br /&gt;
20060618 Updated GCC to 3.4 version and added FFmpeg SVN and DTS support&lt;br /&gt;
&lt;br /&gt;
20060805 Added note about using older binutils and gdb for Cygwin!&lt;br /&gt;
&lt;br /&gt;
20060915 Added note about updating autoconf from extras/contrib for an OBJC problem during configure&lt;br /&gt;
&lt;br /&gt;
20061108 Added note this document is no longer usable since Cygwin has been unusable probably related to some bash/dos2unix change&lt;br /&gt;
&lt;br /&gt;
20070612 Added note about --enable-dca&lt;br /&gt;
&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:Coding]]&lt;/div&gt;</summary>
		<author><name>Quovodis</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Win32CompileCygwinOld&amp;diff=9693</id>
		<title>Win32CompileCygwinOld</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Win32CompileCygwinOld&amp;diff=9693"/>
		<updated>2007-08-15T13:24:03Z</updated>

		<summary type="html">&lt;p&gt;Quovodis: /* Configure script for compiling VLC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cygwin environment for Windows from http://developers.videolan.org/vlc/cygwin-compile.txt&lt;br /&gt;
&lt;br /&gt;
Originally based on &amp;quot;Win32 Cygwin Environment&amp;quot; Rev. B (20041003) by Mark Moriarty and &amp;quot;Win32 Compile HOWTO&amp;quot; (20050513) by Gildas Bazin and Olivier Teulière.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This is a guide for Windows users with a step-by-step instruction to download, install and configure the following components on your system:&lt;br /&gt;
&lt;br /&gt;
* [http://www.cygwin.com &#039;&#039;&#039;Cygwin&#039;&#039;&#039;]:  Linux-like environment for Windows used for compilation of the VLC source code&lt;br /&gt;
&lt;br /&gt;
* [http://download.videolan.org/pub/videolan/testing/win32/ &#039;&#039;&#039;Win32 contrib package&#039;&#039;&#039;]:  Precompiled library package (with DTS support).&lt;br /&gt;
&lt;br /&gt;
Optionally updated libraries:&lt;br /&gt;
&lt;br /&gt;
* [http://ffmpeg.mplayerhq.hu &#039;&#039;&#039;FFmpeg&#039;&#039;&#039;] (with AMR support).&lt;br /&gt;
&lt;br /&gt;
* [http://developers.videolan.org/x264.html &#039;&#039;&#039;x264&#039;&#039;&#039;] used for encoding H.264/AVC video.&lt;br /&gt;
&lt;br /&gt;
* [http://www.live555.com &#039;&#039;&#039;live555&#039;&#039;&#039;] (formerly known as live.com) for RTP/RTCP/RTSP/SIP multimedia streaming.&lt;br /&gt;
&lt;br /&gt;
The best approach to start getting comfortable with building VLC from source is to use the precompiled library package and not yet the optionally updated ones.&lt;br /&gt;
&lt;br /&gt;
Start off by creating a download folder on your hard drive where you can put all the installation files:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads (example)&lt;br /&gt;
&lt;br /&gt;
For further reference, the assumption is made that the local user will be &#039;Administrator&#039;.&lt;br /&gt;
&lt;br /&gt;
=Cygwin=&lt;br /&gt;
&lt;br /&gt;
More info about Cygwin can be found at http://www.cygwin.com or http://sourceware.org/cygwin&lt;br /&gt;
&lt;br /&gt;
Download the latest [http://www.cygwin.com/cygwin/setup.exe Cygwin setup] (it&#039;s at the install or update now icon on the site) and save it in your download location:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\cygwin (example)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Selecting Cygwin packages to install==&lt;br /&gt;
&lt;br /&gt;
Run the setup program with the following options:&lt;br /&gt;
&lt;br /&gt;
Installation type : Install from Internet (default)&lt;br /&gt;
&lt;br /&gt;
Root directory : C:\cygwin (default)&lt;br /&gt;
&lt;br /&gt;
Local Package directory : C:\Downloads\cygwin (your download location)&lt;br /&gt;
&lt;br /&gt;
Internet Connection : Direct Connection (preferred, if it fails try another)&lt;br /&gt;
&lt;br /&gt;
Download Site : Choose a download site closest to you (FTP preferred)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At the &amp;quot;Select Packages&amp;quot; section of the installation process you can select packages by clicking the button with the rotating 2 arrows. (This is under the &amp;quot;New&amp;quot; section). It shows &amp;quot;Skip&amp;quot; next to the button if the package isn&#039;t selected yet.&lt;br /&gt;
&lt;br /&gt;
Clicking the button a few times will rotate through the possible package versions including &amp;quot;Skip&amp;quot; (meaning do not install or remove if installed) and &amp;quot;Keep&amp;quot; (meaning keep using the current installed version). If a package was already installed it will also show the &amp;quot;Current&amp;quot; version just to the left of it.&lt;br /&gt;
&lt;br /&gt;
Select the following packages (some others will automatically be selected as well):&lt;br /&gt;
&lt;br /&gt;
 Archive&lt;br /&gt;
   5.52-2       unzip (recommended: goes hand in hand with zip utility)&lt;br /&gt;
   2.23-2       zip (required: to make self contained zip packages)&lt;br /&gt;
&lt;br /&gt;
 Devel&lt;br /&gt;
   2.1          automake (at least 1.5 is required)&lt;br /&gt;
   20060817-1   binutils (autoselected)&lt;br /&gt;
   1.11.22-1    cvs (required for autopoint)&lt;br /&gt;
   3.4.4-3      gcc-core (autoselected)&lt;br /&gt;
   3.4.4-3      gcc-g++&lt;br /&gt;
   20040810-1   gcc-mingw&lt;br /&gt;
   20050522-1   gcc-mingw-core (autoselected)&lt;br /&gt;
   20050522-1   gcc-mingw-g++ (autoselected)&lt;br /&gt;
   &#039;&#039;&#039;20041228-3   gdb&#039;&#039;&#039; (optional: for debugging purposes)&lt;br /&gt;
   0.15-1       gettext (autoselected)&lt;br /&gt;
   0.15-1       gettext-devel&lt;br /&gt;
   1.5.23a-2    libtool1.5&lt;br /&gt;
   3.81-1       make&lt;br /&gt;
   3.11-1       mingw-runtime (autoselected)&lt;br /&gt;
   0.98.39-1    nasm (optional: for compiling x264 encoder)	&lt;br /&gt;
   0.2.31-1     patchutils (optional: for patching source files with .diff files)&lt;br /&gt;
   0.21-1       pkgconfig (recommended: otherwise ./configure will complain about accuracy)&lt;br /&gt;
   1.4.2-1      subversion&lt;br /&gt;
&lt;br /&gt;
 Lib&lt;br /&gt;
   ?.?          libgcrypt&lt;br /&gt;
&lt;br /&gt;
 Web&lt;br /&gt;
   7.15.4-1     curl (optional: for building extras/contrib)&lt;br /&gt;
   1.10.2-2     wget (optional: for building extras/contrib)&lt;br /&gt;
&lt;br /&gt;
The package version numbers happen to be the representation of what was the most current version available at the time this article was written &#039;&#039;&#039;with the exception of gdb which has to be downgraded from at least 20060706-2 to 20041228-3 for proper usage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you run into problems of missing packages during install (particularly gettext: cyggettextsrc-0-14-1.dll not found) then rerun the setup program and try selecting another Download Site from the mirror list.&lt;br /&gt;
&lt;br /&gt;
NOTE: Whenever new packages are installed or updated through the Cygwin installer, make sure not to update the packages by keeping the old versions (using the &amp;quot;Keep&amp;quot; option).&lt;br /&gt;
&lt;br /&gt;
==Installing older GCC 3.3 version==&lt;br /&gt;
&lt;br /&gt;
The gcc version used for compilation should match the version specified in the &amp;quot;contrib&amp;quot; package, at present gcc-3.4.5-only.&lt;br /&gt;
&lt;br /&gt;
So the preferred version to use is GCC 3.4 but for historical reasons this section descibes what version to use together with an older gcc-3.3.1-only &amp;quot;contrib&amp;quot; package. The 3.3.1 version is not available in Cygwin but 3.3.3-3 (still) is.&lt;br /&gt;
&lt;br /&gt;
The only compatibility issue with using GCC 3.4 and the precompiled 3.3.1 &amp;quot;contrib&amp;quot; package is that it doesn&#039;t support the compiling of the matroska container .mkv so that leaves 2 options; use gcc 3.3.3-3 with a 3.3.1-only &amp;quot;contrib&amp;quot; or gcc 3.4 (or newer) but disable matroska support.&lt;br /&gt;
&lt;br /&gt;
The second option requires you to add the following line to the configure options:&lt;br /&gt;
&lt;br /&gt;
 --disable-mkv&lt;br /&gt;
&lt;br /&gt;
If you use the older gcc-g++ and gcc-core versions you have to change the gcc-mingw-core and gcc-mingw-g++ back to the older versions as well.&lt;br /&gt;
&lt;br /&gt;
Select the following package versions instead:&lt;br /&gt;
&lt;br /&gt;
 Devel&lt;br /&gt;
   &#039;&#039;&#039;3.3.3-3&#039;&#039;&#039;      gcc-core&lt;br /&gt;
   &#039;&#039;&#039;3.3.3-3&#039;&#039;&#039;      gcc-g++&lt;br /&gt;
   20040810-1   gcc-mingw&lt;br /&gt;
   &#039;&#039;&#039;20040810-1&#039;&#039;&#039;   gcc-mingw-core&lt;br /&gt;
   &#039;&#039;&#039;20040810-1&#039;&#039;&#039;   gcc-mingw-g++&lt;br /&gt;
&lt;br /&gt;
NOTE: The gcc-3.4.5-only &amp;quot;contrib&amp;quot; package should compile just fine with GCC 3.3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Cygwin environment==&lt;br /&gt;
&lt;br /&gt;
Start Cygwin from the icon on your desktop. If it runs for the first time it will automatically create a home\&amp;quot;username&amp;quot; folder in the Cygwin environment; user being the currently logged on Windows user. Assuming this is the &#039;Administrator&#039; user it will create the following folder:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator (example)&lt;br /&gt;
&lt;br /&gt;
NOTE: On your desktop, you can rightclick the Cygwin icon and (in the Options field of the Cygwin Properties) set the Command history Buffer size to as large as possible: 999. This setting will make it possible to scroll back further in the Cygwin environment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=VLC source code=&lt;br /&gt;
&lt;br /&gt;
The very latest VLC source code can be obtained through a tool called SVN (Subversion). The Cygwin package we&#039;re about to install comes with an internal subversion component. Using this one is the preferred method.&lt;br /&gt;
&lt;br /&gt;
Another way of obtaining source code is by downloading a daily code &amp;quot;snapshot&amp;quot; from the following location:&lt;br /&gt;
&lt;br /&gt;
http://nightlies.videolan.org/build/source&lt;br /&gt;
&lt;br /&gt;
Download the latest snapshot:&lt;br /&gt;
&lt;br /&gt;
 vlc-snapshot-20070112.tar.gz (example)&lt;br /&gt;
&lt;br /&gt;
and save it into a subfolder in your download location:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\VLC\src (example)&lt;br /&gt;
&lt;br /&gt;
Check if the downloaded file has not been renamed by Internet Explorer in your download folder to something with the extension .tar.tar and if so then simple rename the files back to .tar.gz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Adding libraries to the source code=&lt;br /&gt;
&lt;br /&gt;
VLC depends on other libraries (code) to provide some features like AC3 audio or MPEG-4 video encoding/decoding etc.&lt;br /&gt;
&lt;br /&gt;
Depending on your needs you will have to install and compile some or all of these external libraries. Most of them can be found here (source code):&lt;br /&gt;
&lt;br /&gt;
http://download.videolan.org/pub/testing/contrib/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Win32 &amp;quot;contrib&amp;quot; package==&lt;br /&gt;
&lt;br /&gt;
A package with most of these libraries already compiled so it&#039;s actually really easy to compile a full-featured version of vlc can be found here:&lt;br /&gt;
&lt;br /&gt;
http://download.videolan.org/pub/testing/win32/&lt;br /&gt;
&lt;br /&gt;
Download the latest version of a &amp;quot;contrib&amp;quot; package for win32:&lt;br /&gt;
&lt;br /&gt;
 contrib-20060730-win32-bin-gcc-3.4.5-only.tar.bz2 (example)&lt;br /&gt;
&lt;br /&gt;
It&#039;s a good idea to check the INSTALL.Win32 file in the VLC source directory for the appropriate contrib download file.&lt;br /&gt;
&lt;br /&gt;
Save it into a subfolder in your download location:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\VLC\contrib (example)&lt;br /&gt;
&lt;br /&gt;
Check if the file has not been renamed by Internet Explorer in your download folder to something with the extension .tar.tar and if so then simply rename the file back to .tar.bz2&lt;br /&gt;
&lt;br /&gt;
Also remember the &amp;quot;gcc-3.4.5&amp;quot; part in the &amp;quot;contrib&amp;quot; package filename since it relates to the GCC version that needs to be installed in Cygwin lateron!&lt;br /&gt;
&lt;br /&gt;
==Win32 &amp;quot;contrib&amp;quot; packages for older GCC versions==&lt;br /&gt;
&lt;br /&gt;
For historical reasons older versions of the &amp;quot;contrib&amp;quot; package are provided at the following location:&lt;br /&gt;
&lt;br /&gt;
http://download.videolan.org/pub/testing/win32/contrib-old-gcc-3.3-only/&lt;br /&gt;
&lt;br /&gt;
Download the latest version of a &amp;quot;contrib&amp;quot; package for win32&lt;br /&gt;
&lt;br /&gt;
 contrib-20051213-win32-bin-gcc3.3.1-only.tar.bz2 (example)&lt;br /&gt;
&lt;br /&gt;
and save it into a subfolder in your download location:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\VLC\contrib (example)&lt;br /&gt;
&lt;br /&gt;
NOTE: gcc3.3.1-only in the filename means it was (obviously) intended for compilation with GCC 3.3 only. The latest gcc-3.4.5-only &amp;quot;contrib&amp;quot; packages should compile just fine with GCC 3.3 so it&#039;s preferred to always use those.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Adding additional or updated libraries to the source (optional)==&lt;br /&gt;
&lt;br /&gt;
Updated libraries for FFmpeg and x264 are available through SVN (which is discussed in a later stage of this guide).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===live555 &amp;quot;snapshot&amp;quot; (optional)===&lt;br /&gt;
&lt;br /&gt;
More info about live555 can be found at:&lt;br /&gt;
&lt;br /&gt;
http://www.live555.com&lt;br /&gt;
&lt;br /&gt;
The project source code is available here:&lt;br /&gt;
&lt;br /&gt;
http://live555.com/liveMedia/public/&lt;br /&gt;
&lt;br /&gt;
Download the latest snapshot:&lt;br /&gt;
&lt;br /&gt;
 live.2007.01.11.tar.gz (example)&lt;br /&gt;
&lt;br /&gt;
NOTE: live555-latest.tar.gz is also the latest version but keeping the date in the filename makes it easier to reference.&lt;br /&gt;
&lt;br /&gt;
and save it into a subfolder in your download location:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\VLC\src (example)&lt;br /&gt;
&lt;br /&gt;
Check if the downloaded file has not been renamed by Internet Explorer in your download folder to something with the extension .tar.tar and if so then simple rename the files back to .tar.gz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Getting the latest sources=&lt;br /&gt;
&lt;br /&gt;
In order to have the latest source code you have to download this using SVN.&lt;br /&gt;
&lt;br /&gt;
Create a new folder at your download/install location:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\VLC\scripts (example)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SVN update script for VLC==&lt;br /&gt;
&lt;br /&gt;
Create a new text document with the following line:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn://svn.videolan.org/vlc/trunk vlc-trunk&lt;br /&gt;
&lt;br /&gt;
Save as filename in your &amp;quot;scripts&amp;quot; folder at your download/install location with the option &amp;quot;All Files&amp;quot; and not &amp;quot;Text Documents&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 update-vlc.sh (example)&lt;br /&gt;
&lt;br /&gt;
This command will download a complete svn trunk.&lt;br /&gt;
&lt;br /&gt;
Copy the script file into your Cygwin &amp;quot;home directory&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell: &lt;br /&gt;
&lt;br /&gt;
 dos2unix update-vlc.sh&lt;br /&gt;
&lt;br /&gt;
This is for converting the &#039;line endings&#039; made by Windows/DOS (in which the text document was created) to UNIX style.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SVN update scripts for additional libraries (optional)==&lt;br /&gt;
&lt;br /&gt;
Updating source code using SVN for additional libraries such as x264 or FFmpeg works the same way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SVN update scripts for x264 (optional)===&lt;br /&gt;
&lt;br /&gt;
Create a new text document with the following line:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn://svn.videolan.org/x264/trunk x264-trunk&lt;br /&gt;
&lt;br /&gt;
Save as filename in your &amp;quot;scripts&amp;quot; folder at your download/install location:&lt;br /&gt;
&lt;br /&gt;
 update-x264.sh&lt;br /&gt;
&lt;br /&gt;
Copy the script file into your Cygwin &amp;quot;home directory&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell:&lt;br /&gt;
&lt;br /&gt;
 dos2unix update-x264.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SVN update script for FFmpeg (optional)===&lt;br /&gt;
&lt;br /&gt;
Create a new text document with the following line:&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg-trunk&lt;br /&gt;
&lt;br /&gt;
Save as filename in your &amp;quot;scripts&amp;quot; folder at your download/install location:&lt;br /&gt;
&lt;br /&gt;
 update-ffmpeg.sh&lt;br /&gt;
&lt;br /&gt;
Copy the script file into your Cygwin &amp;quot;home directory&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell: &lt;br /&gt;
&lt;br /&gt;
 dos2unix update-ffmpeg.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Checking out&amp;quot; the latest source code from SVN==&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell: &lt;br /&gt;
&lt;br /&gt;
 ./update-vlc.sh&lt;br /&gt;
&lt;br /&gt;
This will download the current &amp;quot;subversion trunk&amp;quot; (latest code) into your home directory into the directory specified in your shell script:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator\vlc-trunk (example)&lt;br /&gt;
&lt;br /&gt;
At the end of the command it will show something like &amp;quot;Checked out revision 18561&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The vlc-trunk folder will get over-written/updated the next time you run the command. If you want to save a so called &amp;quot;snapshot&amp;quot; of the existing vlc-trunk, rename or copy the current directory into something desired (like vlc-trunk-20070112).&lt;br /&gt;
&lt;br /&gt;
NOTE: Updating the source code for additional libraries such as x264, FFmpeg etc. is done by running their corresponding update scripts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Extracting the source from a &amp;quot;snapshot&amp;quot;==&lt;br /&gt;
&lt;br /&gt;
If you are not using SVN to obtain the latest source code but are using a daily &amp;quot;snapshot&amp;quot; then copy that source package from your download/install location to the Cygwin home directory:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell:&lt;br /&gt;
&lt;br /&gt;
 tar xvf vlc-snapshot-20070112.tar.gz (example)&lt;br /&gt;
&lt;br /&gt;
Replace with your version of the source package.&lt;br /&gt;
&lt;br /&gt;
This will extract the contents of the file into a subfolder within your Cygwin environment with the naming convention something like:&lt;br /&gt;
&lt;br /&gt;
 vlc-0.9.0-svn (example)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Installing the Win32 &amp;quot;contrib&amp;quot; package in Cygwin=&lt;br /&gt;
&lt;br /&gt;
First the additional libraries have to be &amp;quot;installed&amp;quot; in Cygwin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Extracting the Win32 &amp;quot;contrib&amp;quot; package==&lt;br /&gt;
&lt;br /&gt;
Copy the &amp;quot;contrib&amp;quot; package from your download/install location to the home directory:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell:&lt;br /&gt;
&lt;br /&gt;
 tar xjvf contrib-20061202-win32-bin-gcc-3.4.5-only.tar.bz2 -C / (example)&lt;br /&gt;
&lt;br /&gt;
Replace with your version of the &amp;quot;contrib&amp;quot; file and DON&#039;T FORGET THE / (slash)&lt;br /&gt;
at the end.&lt;br /&gt;
&lt;br /&gt;
This will extract the contents of the file into usr/win32 folder within your Cygwin environment.&lt;br /&gt;
&lt;br /&gt;
NOTE: Make sure to DELETE your old version instead of extracting a new version on top of it.&lt;br /&gt;
&lt;br /&gt;
==Keeping the Win32 &amp;quot;contrib&amp;quot; package up-to-date==&lt;br /&gt;
&lt;br /&gt;
For maintenance purposes periodically check:&lt;br /&gt;
&lt;br /&gt;
http://download.videolan.org/pub/testing/win32/&lt;br /&gt;
&lt;br /&gt;
to see if a newer &amp;quot;contrib&amp;quot; is available. If that is the case you should DELETE the existing directory structure which is for the precompiled &amp;quot;contrib&amp;quot; package:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\usr\win32 (example)&lt;br /&gt;
&lt;br /&gt;
Download the newer file and follow the installation instructions the same as before so you will end up with the most up-to-date version.&lt;br /&gt;
&lt;br /&gt;
NOTE: Make sure to DELETE your old version instead of extracting a new version on top of it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Configure scripts=&lt;br /&gt;
&lt;br /&gt;
In order to make our lives just a bit easier the following section describes what commandline options should be used for compiling and those commands will then be put into a &amp;quot;script&amp;quot; that can be executed (rather than having to copy and paste all the time).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configure script for compiling VLC==&lt;br /&gt;
&lt;br /&gt;
Create a new text document with the following lines:&lt;br /&gt;
&lt;br /&gt;
  CONTRIB_TREE=/usr/win32&lt;br /&gt;
  PATH=${CONTRIB_TREE}/bin:$PATH \&lt;br /&gt;
  ./bootstrap &amp;amp;&amp;amp; \&lt;br /&gt;
  CPPFLAGS=&amp;quot;-I${CONTRIB_TREE}/include -I${CONTRIB_TREE}/include/ebml&amp;quot; \&lt;br /&gt;
  LDFLAGS=-L${CONTRIB_TREE}/lib \&lt;br /&gt;
  PKG_CONFIG_LIBDIR=${CONTRIB_TREE}/lib/pkgconfig \&lt;br /&gt;
  CC=&amp;quot;gcc -mno-cygwin&amp;quot; CXX=&amp;quot;g++ -mno-cygwin&amp;quot; \&lt;br /&gt;
  ./configure \&lt;br /&gt;
      --host=i686-pc-mingw32 \&lt;br /&gt;
      --enable-sdl --with-sdl-config-path=${CONTRIB_TREE}/bin --disable-gtk \&lt;br /&gt;
      --enable-nls \&lt;br /&gt;
      --enable-ffmpeg --with-ffmpeg-mp3lame --with-ffmpeg-faac \&lt;br /&gt;
      --with-ffmpeg-zlib --enable-faad --enable-flac --enable-theora \&lt;br /&gt;
      --with-wx-config-path=${CONTRIB_TREE}/bin \&lt;br /&gt;
      --with-freetype-config-path=${CONTRIB_TREE}/bin \&lt;br /&gt;
      --with-fribidi-config-path=${CONTRIB_TREE}/bin \&lt;br /&gt;
      --enable-live555 --with-live555-tree=${CONTRIB_TREE}/live.com \&lt;br /&gt;
      --enable-caca --with-caca-config-path=${CONTRIB_TREE}/bin \&lt;br /&gt;
      --with-xml2-config-path=${CONTRIB_TREE}/bin \&lt;br /&gt;
      --with-dvdnav-config-path=${CONTRIB_TREE}/bin \&lt;br /&gt;
      --disable-cddax --disable-vcdx --enable-goom \&lt;br /&gt;
      --enable-twolame --enable-dvdread \&lt;br /&gt;
      --disable-gnomevfs \&lt;br /&gt;
      --enable-dts \&lt;br /&gt;
      --enable-debug \&lt;br /&gt;
&lt;br /&gt;
NOTE: The following option is added for DTS Coherent Acoustics streams decoding support. The latest &amp;quot;contrib&amp;quot; package should already contain libdca (formerly known as libdts) needed to compile this but at present it&#039;s disabled by default:&lt;br /&gt;
&lt;br /&gt;
 --enable-dts&lt;br /&gt;
&lt;br /&gt;
NOTE: For VLC 0.9.0, replace the previous option by:&lt;br /&gt;
&lt;br /&gt;
 --enable-dca&lt;br /&gt;
&lt;br /&gt;
NOTE: The following option is added for debug purposes and makes the final package a bit larger but the advantage is it&#039;s easier to debug in case of crash reports:&lt;br /&gt;
&lt;br /&gt;
 --enable-debug&lt;br /&gt;
&lt;br /&gt;
NOTE: The following options is needed for QT4 support:&lt;br /&gt;
&lt;br /&gt;
 --enable-qt4&lt;br /&gt;
&lt;br /&gt;
As of version 0.9.0 VLC will include the QT interface. More information can be found about QT here: http://www.trolltech.com&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Win32 contrib package&amp;quot; at present only includes the linux equivalents of uic, moc and roc executables which are required for building this interface.&lt;br /&gt;
&lt;br /&gt;
The linues executables have to be &#039;&#039;&#039;deleted&#039;&#039;&#039; from the contrib folder:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\usr\win32\bin\moc (example)&lt;br /&gt;
 C:\cygwin\usr\win32\bin\rcc (example)&lt;br /&gt;
 C:\cygwin\usr\win32\bin\uic (example)&lt;br /&gt;
&lt;br /&gt;
The moc, rcc and uic.exe from the [http://www.trolltech.com/developer/downloads/qt/windows Qt/Windows Open Source Edition] (these can be found in the bin folder after installation) have to be placed in the contrib folder:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\usr\win32\bin\moc.exe (example)&lt;br /&gt;
 C:\cygwin\usr\win32\bin\rcc.exe (example)&lt;br /&gt;
 C:\cygwin\usr\win32\bin\uic.exe (example)&lt;br /&gt;
 &lt;br /&gt;
Save as filename in your &amp;quot;scripts&amp;quot; folder at your download/install location:&lt;br /&gt;
&lt;br /&gt;
 configure-vlc.sh&lt;br /&gt;
&lt;br /&gt;
NOTE: Save using &amp;quot;All files&amp;quot; and not &amp;quot;Text files&amp;quot; otherwise Windows might append the extension .txt&lt;br /&gt;
&lt;br /&gt;
Copy the file into your home directory:&lt;br /&gt;
 &lt;br /&gt;
 C:\cygwin\home\Administrator&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell: &lt;br /&gt;
&lt;br /&gt;
 dos2unix configure-vlc.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===POSIX emulation layer===&lt;br /&gt;
&lt;br /&gt;
VLC can be built with or without the so called POSIX emulation layer. Without is the default and is usually better (and with hasn&#039;t been tested for quite some time). If you do want to use the emulation layer, then just leave out the line with the following options:&lt;br /&gt;
&lt;br /&gt;
 CC=&amp;quot;gcc -mno-cygwin&amp;quot; CXX=&amp;quot;g++ -mno-cygwin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===VLC optional settings===&lt;br /&gt;
&lt;br /&gt;
The following option should be used when compiling using the GCC 3.4 version with older &amp;quot;contrib&amp;quot; gcc-3.3.1-only:&lt;br /&gt;
&lt;br /&gt;
 --disable-mkv&lt;br /&gt;
&lt;br /&gt;
==Configure scripts for compiling additional libraries (optional)==&lt;br /&gt;
&lt;br /&gt;
The following section is optional. The &amp;quot;contrib&amp;quot; package contains precompiled libraries but it is possible to update some of those libraries to the most current versions such as x264 and FFmpeg.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===FFmpeg with AMR support (optional)===&lt;br /&gt;
&lt;br /&gt;
The AMR (Adaptive Multi Rate) codec is designed to encode and decode speech with acceptable quality for transmission over relatively low bandwidth channels with minimal latency, typically used in mobile networks (3GP) or voice message applications.&lt;br /&gt;
&lt;br /&gt;
The AMR codec is usually referred to as:&lt;br /&gt;
&lt;br /&gt;
 Narrow Band (AMR-NB, fourcc samr) for low quality&lt;br /&gt;
 Wide Band (AMR-WB, fourcc samw) for high quality&lt;br /&gt;
&lt;br /&gt;
The sources for AMR are not compatible with the GPL (General Public License). AMR support is disabled by default.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Getting the AMR reference codecs (optional)====&lt;br /&gt;
&lt;br /&gt;
The AMR reference codecs can be found on the 3GPP site http://www.3gpp.org at the following download location for zipped source code packages:&lt;br /&gt;
&lt;br /&gt;
http://www.3gpp.org/ftp/Specs/2004-03/Rel-5/26_series/&lt;br /&gt;
&lt;br /&gt;
Download the following 3 packages to a subfolder in your download/install location:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\VLC\src (example)&lt;br /&gt;
&lt;br /&gt;
1.  AMR - latest 26073 package:&lt;br /&gt;
&lt;br /&gt;
http://www.3gpp.org/ftp/Specs/2004-03/Rel-5/26_series/26073-530.zip          (example)&lt;br /&gt;
&lt;br /&gt;
3GPP TS 26.073 V5.3.0 (2004-03) ANSI-C code for the Adaptive Multi Rate (AMR) speech codec (Release 5)&lt;br /&gt;
&lt;br /&gt;
2.  AMR_FLOAT - latest 26104 package:&lt;br /&gt;
&lt;br /&gt;
http://www.3gpp.org/ftp/Specs/2004-03/Rel-5/26_series/26104-540.zip          (example)&lt;br /&gt;
&lt;br /&gt;
3GPP TS 26.104 V 5.4.0 (2004-03) ANSI-C code for the Floating-point Adaptive Multi Rate (AMR) speech codec (Release 5)&lt;br /&gt;
&lt;br /&gt;
3.  AMRWB_FLOAT - latest 26204 package:&lt;br /&gt;
&lt;br /&gt;
http://www.3gpp.org/ftp/Specs/2004-03/Rel-5/26_series/26204-520.zip          (example)&lt;br /&gt;
&lt;br /&gt;
3GPP TS 26.204 V5.2.0 (2003-09) ANSI-C code for Floating-point Adaptive Multi Rate Wideband (AMR-WB) speech codec (Release 5)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Extracting the AMR reference codecs (optional)====&lt;br /&gt;
&lt;br /&gt;
The following AMR reference packages should now be in your download/install location:&lt;br /&gt;
&lt;br /&gt;
 26073-530.zip (example)&lt;br /&gt;
 26104-540.zip (example)&lt;br /&gt;
 26204-520.zip (example)&lt;br /&gt;
&lt;br /&gt;
Using your favourite unzipper (Windows internal extraction wizard, WinZIP, WinRAR etc.) extract the zip files in the into the current folder (Windows wizard would use &amp;quot;Extract All&amp;quot; and WinZIP or WinRAR would use &amp;quot;Extract to &#039;foldername&#039; which is the same as the .zip package name&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
This will create the following folders:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\VLC\src\26073-530         &lt;br /&gt;
 C:\Downloads\VLC\src\26104-540         &lt;br /&gt;
 C:\Downloads\VLC\src\26204-520         &lt;br /&gt;
&lt;br /&gt;
Within those folders another .zip package exists. Again unpack those zip files into the current folder:&lt;br /&gt;
&lt;br /&gt;
 26073-530_ANSI_C_source_code      &lt;br /&gt;
 26104-540_ANSI_C_source_code      &lt;br /&gt;
 26204-520_ANSI-C_source_code      &lt;br /&gt;
&lt;br /&gt;
Now each unpacked source code package has an individual folder named &amp;quot;c-code&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Rename the c-code subfolders within each package to amr, amr_float and amrwb_float:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\VLC\src\26073-530\26073-530_ANSI_C_source_code\c-code to amr                  &lt;br /&gt;
 C:\Downloads\VLC\src\26104-540\26104-540_ANSI_C_source_code\c-code to amr_float            &lt;br /&gt;
 C:\Downloads\VLC\src\26204-520\26204-520_ANSI-C_source_code\c-code to amrwb_float          &lt;br /&gt;
&lt;br /&gt;
NOTE: the 530, 540 to 520 order looks a bit confusing but those are actually just version numbers and the folders are shown in the correct alphabetical order.&lt;br /&gt;
&lt;br /&gt;
Copy each of the the following folders (including content, so just select the whole folders itself):&lt;br /&gt;
&lt;br /&gt;
 amr                &lt;br /&gt;
 amr_float         &lt;br /&gt;
 amrwb_float       &lt;br /&gt;
&lt;br /&gt;
to the Cygwin home directory in the libavcodec subfolder of where the FFmpeg package resides:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator\ffmpeg-trunk\libavcodec (example)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===FFmpeg configure script with &amp;quot;contrib&amp;quot; package (optional)===&lt;br /&gt;
&lt;br /&gt;
NOTE: This compile script assumes you are also using the same FFmpeg version as is used in the &amp;quot;contrib&amp;quot; package (this is why the cflags and ldflags also point to the win32 folder where the &amp;quot;contrib&amp;quot; package was extracted).&lt;br /&gt;
&lt;br /&gt;
Create a new text document with the following lines:&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-mingw32 --enable-memalign-hack \&lt;br /&gt;
     --extra-cflags=-I/usr/win32/include \&lt;br /&gt;
     --extra-ldflags=-L/usr/win32/lib \&lt;br /&gt;
     --prefix=/usr/win32 \&lt;br /&gt;
     --cc=&amp;quot;gcc -mno-cygwin&amp;quot; \&lt;br /&gt;
    --enable-faac --enable-mp3lame --enable-pp --enable-gpl --log \&lt;br /&gt;
&lt;br /&gt;
NOTE: For AMR encoding/decoding support also add the following options:&lt;br /&gt;
&lt;br /&gt;
 --enable-amr_nb --enable-amr_wb&lt;br /&gt;
&lt;br /&gt;
NOTE: VLC uses the x264 lib directly and not through ffmpeg so there is no need to add --enable-x264&lt;br /&gt;
&lt;br /&gt;
Save as filename in your &amp;quot;scripts&amp;quot; folder at your download/install location:&lt;br /&gt;
&lt;br /&gt;
 configure-ffmpeg.sh (example)&lt;br /&gt;
&lt;br /&gt;
NOTE: Save using &amp;quot;All files&amp;quot; and not &amp;quot;Text files&amp;quot; otherwise Windows might append the extension .txt&lt;br /&gt;
&lt;br /&gt;
Copy the file into your home directory:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator &lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell: &lt;br /&gt;
&lt;br /&gt;
 dos2unix configure-ffmpeg.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===FFmpeg configure script for FFmpeg &amp;quot;stand-alone&amp;quot; (optional)===&lt;br /&gt;
&lt;br /&gt;
This section is only if FFmpeg compiling is required as a stand-alone package and not in comination with the precompiled &amp;quot;contrib&amp;quot; package.&lt;br /&gt;
&lt;br /&gt;
In case of failure to compile VLC with different settings (added/updated libraries to the &amp;quot;contrib&amp;quot;) it is advisable to test if FFmpeg does compile OK just in &amp;quot;stand-alone&amp;quot; mode.&lt;br /&gt;
&lt;br /&gt;
Create a new text document at the download location with following lines:&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-mingw32 --enable-memalign-hack \&lt;br /&gt;
     --cc=&amp;quot;gcc -mno-cygwin&amp;quot; \&lt;br /&gt;
     --enable-pp --enable-gpl --log \&lt;br /&gt;
&lt;br /&gt;
NOTE: When including libraries the following options should be added/changed, pointing to the appropriate folder where does libraries are located (for VLC &amp;quot;contrib&amp;quot; that would be /usr/win32 but in other situations it might be the default /usr/local):&lt;br /&gt;
&lt;br /&gt;
    --extra-cflags=-I/usr/local/include \&lt;br /&gt;
    --extra-ldflags=-L/usr/local/lib \&lt;br /&gt;
    --prefix=/usr/local \&lt;br /&gt;
&lt;br /&gt;
Save as filename in your &amp;quot;scripts&amp;quot; folder at your download/install location:&lt;br /&gt;
&lt;br /&gt;
 configure-ffmpeg-svn.sh (example)&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell:&lt;br /&gt;
&lt;br /&gt;
 dos2unix configure-ffmpeg.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==x264 configure script (optional)==&lt;br /&gt;
&lt;br /&gt;
Create a new text document with the following lines:&lt;br /&gt;
&lt;br /&gt;
 ./configure \&lt;br /&gt;
    --prefix=/usr/win32 \&lt;br /&gt;
&lt;br /&gt;
NOTE: for debugging purposes you can add the following option:&lt;br /&gt;
&lt;br /&gt;
 --enable-debug&lt;br /&gt;
&lt;br /&gt;
Save as filename in your &amp;quot;scripts&amp;quot; folder at your download/install location:&lt;br /&gt;
&lt;br /&gt;
 configure-x264.sh&lt;br /&gt;
&lt;br /&gt;
NOTE: Save using &amp;quot;All files&amp;quot; and not &amp;quot;Text files&amp;quot; otherwise Windows might append the extension .txt.&lt;br /&gt;
&lt;br /&gt;
Copy the file into your home directory:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell: &lt;br /&gt;
&lt;br /&gt;
 dos2unix configure-x264.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Compiling source code=&lt;br /&gt;
&lt;br /&gt;
It&#039;s time to start Cygwin again...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional libraries==&lt;br /&gt;
&lt;br /&gt;
If any updated or additional libraries are used they need to be compiled first. Since some of these are used indirectly through FFmpeg, FFmpeg should be compiled last.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Compiling x264 (optional)===&lt;br /&gt;
&lt;br /&gt;
This section is only required for x264 compiling where you want to compile x264 yourself in order to use the latest version.&lt;br /&gt;
&lt;br /&gt;
Change to the appropriate x264 folder&lt;br /&gt;
&lt;br /&gt;
 cd x264-trunk (example)&lt;br /&gt;
&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
If the make proceeded without errors you will have compiled a new library file:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator\x264-trunk\libx264.a (example)&lt;br /&gt;
&lt;br /&gt;
Copy this file into the Cygwin usr/win32 folder:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\usr\win32\lib (example)&lt;br /&gt;
&lt;br /&gt;
Also take the following file .h file:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator\x264-trunk\x264.h (example)&lt;br /&gt;
&lt;br /&gt;
Copy this file into the usr/win32/include folder:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\usr\win32\include (example)&lt;br /&gt;
&lt;br /&gt;
NOTE: This will overwrite the x264.h and libx264.a from the precompiled &amp;quot;contrib&amp;quot; package!&lt;br /&gt;
&lt;br /&gt;
===live555 (optional)===&lt;br /&gt;
&lt;br /&gt;
This section is only required if you want to compile the latest version of live555.&lt;br /&gt;
&lt;br /&gt;
Copy the live555 project packagee from your download/install location to the home directory:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell:&lt;br /&gt;
&lt;br /&gt;
 tar xvf live.2006.05.17.tar.gz (example)&lt;br /&gt;
&lt;br /&gt;
Replace with your version of the source package.&lt;br /&gt;
&lt;br /&gt;
This will extract the contents of the file into a subfolder within your Cygwin environment with the naming convention something like:&lt;br /&gt;
&lt;br /&gt;
 live (example)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Compiling FFmpeg (optional)===&lt;br /&gt;
&lt;br /&gt;
This section is only required for FFmpeg compiling.&lt;br /&gt;
&lt;br /&gt;
Change to the appropriate FFmpeg folder&lt;br /&gt;
&lt;br /&gt;
 cd ffmpeg-trunk (example)&lt;br /&gt;
&lt;br /&gt;
 make clean&lt;br /&gt;
&lt;br /&gt;
 make distclean&lt;br /&gt;
&lt;br /&gt;
(This will haved remove everything except code related stuff, VLC uses a &amp;quot;toolbox&amp;quot; script&lt;br /&gt;
which can clean a bit more).&lt;br /&gt;
&lt;br /&gt;
 ../configure-ffmpeg.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Preparations for AMR support (optional)====&lt;br /&gt;
&lt;br /&gt;
If you included the AMR reference codec sources in FFmpeg you should see that AMR-NB and WB &amp;quot;float support&amp;quot; should be working:&lt;br /&gt;
&lt;br /&gt;
 AMR-NB float support yes&lt;br /&gt;
 AMR-NB fixed support no&lt;br /&gt;
 AMR-WB float support yes&lt;br /&gt;
 AMR-WB IF2 support no&lt;br /&gt;
 network support      no&lt;br /&gt;
 License: GPL&lt;br /&gt;
&lt;br /&gt;
 AMR WB FLOAT NOTICE ! Make sure you have downloaded TS26.204&lt;br /&gt;
 V5.1.0 from http://www.3gpp.org/ftp/Specs/archive/26_series/26.204/26204-510.zip and extracted the source to libavcodec/amrwb_float&lt;br /&gt;
&lt;br /&gt;
 AMR NB FLOAT NOTICE ! Make sure you have downloaded TS26.104 REL-5 V5.1.0 from&lt;br /&gt;
 http://www.3gpp.org/ftp/Specs/archive/26_series/26.104/26104-510.zip and extracted the source to libavcodec/amr_float&lt;br /&gt;
 If you try this on alpha, you may need to change Word32 to int in amr/typedef.h&lt;br /&gt;
&lt;br /&gt;
NOTE: These warnings/notices can be ignored since we are using more recent versions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Building FFmpeg (optional)====&lt;br /&gt;
&lt;br /&gt;
First clean up any leftovers from a previous compile using the following commands:&lt;br /&gt;
&lt;br /&gt;
 make clean&lt;br /&gt;
&lt;br /&gt;
 make distclean&lt;br /&gt;
&lt;br /&gt;
(This will haved remove everything except code related stuff, VLC uses a &amp;quot;toolbox&amp;quot; script&lt;br /&gt;
which can clean a bit more).&lt;br /&gt;
&lt;br /&gt;
Now build FFmpeg with the following command:&lt;br /&gt;
&lt;br /&gt;
 make       &lt;br /&gt;
&lt;br /&gt;
If the make proceeded without errors you will have compiled two new &amp;quot;library&amp;quot; files:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator\ffmpeg-trunk\libavcodec\libavcodec.a (example)&lt;br /&gt;
 C:\cygwin\home\Administrator\ffmpeg-trunk\libavformat\libavformat.a (example)&lt;br /&gt;
&lt;br /&gt;
To copy the appropriate libs and header files to the (extracted) contrib&lt;br /&gt;
folder use:&lt;br /&gt;
&lt;br /&gt;
 make install-libs install-headers&lt;br /&gt;
&lt;br /&gt;
For historical reasons the &amp;quot;old&amp;quot; method is still described here as well:&lt;br /&gt;
&lt;br /&gt;
Copy the library files (with the .a extension) into the Cygwin usr/win32 folder:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\usr\win32\lib (example)&lt;br /&gt;
&lt;br /&gt;
NOTE: This will overwrite libavcodec.a and libavformat.a from the precompiled&lt;br /&gt;
&amp;quot;contrib&amp;quot; package!&lt;br /&gt;
&lt;br /&gt;
For backup reasons you can first copy or rename the original files in the &amp;quot;contrib&amp;quot; package (so you won&#039;t have to reinstall the complete contrib package but can simply copy these again)&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\usr\win32\lib\libavcodec.a to libavcodec.a.org&lt;br /&gt;
 C:\cygwin\usr\win32\lib\libavformat.a to libavformat.a.org&lt;br /&gt;
&lt;br /&gt;
In older versions of ffmpeg the libraries had other names:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator\ffmpeg-20050624\libavcodec\avcodec.lib (example)&lt;br /&gt;
 C:\cygwin\home\Administrator\ffmpeg-20050624\libavformat\avformat.lib (example)&lt;br /&gt;
&lt;br /&gt;
Rename those files (in Windows Explorer):&lt;br /&gt;
&lt;br /&gt;
 avcodec.lib to libavcodec.a&lt;br /&gt;
 avformat.lib to libavformat.a&lt;br /&gt;
&lt;br /&gt;
Then copy those library files into the Cygwin usr/win32 folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Compiling live555 (optional)===&lt;br /&gt;
&lt;br /&gt;
How to configure and build the code on a Linux enviroment is explained on the following live555 page:&lt;br /&gt;
&lt;br /&gt;
http://www.live555.com/liveMedia/#config-unix&lt;br /&gt;
&lt;br /&gt;
Some options need to be changed/added to the config.cygwin file in the live folder so open this file with a text-editor.&lt;br /&gt;
&lt;br /&gt;
Add the -Wno-deprecated option:&lt;br /&gt;
&lt;br /&gt;
 CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall -DBSD=1 -Wno-deprecated&lt;br /&gt;
&lt;br /&gt;
Save the file under its current name config.cygwin&lt;br /&gt;
&lt;br /&gt;
Enter the following commands in your Cygwin shell:&lt;br /&gt;
&lt;br /&gt;
 cd live&lt;br /&gt;
&lt;br /&gt;
The following command is for converting any DOS/Windows &amp;quot;line endings&amp;quot; to UNIX style:&lt;br /&gt;
 &lt;br /&gt;
 dos2unix config.cygwin&lt;br /&gt;
&lt;br /&gt;
 make clean&lt;br /&gt;
&lt;br /&gt;
 ./genMakefiles cygwin&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
TODO: Fix live555 compilation. It still fails with the following errors:&lt;br /&gt;
&lt;br /&gt;
 GroupsockHelper.cpp:477: error: aggregate `ip_mreq_source imr&#039; has incomplete type and cannot be defined&lt;br /&gt;
 GroupsockHelper.cpp:482: error: invalid application of `sizeof&#039; to incomplete type `ip_mreq_source&#039;&lt;br /&gt;
 GroupsockHelper.cpp: In function `Boolean socketLeaveGroupSSM(UsageEnvironment&amp;amp;, int,  netAddressBits, netAddressBits)&#039;:&lt;br /&gt;
 GroupsockHelper.cpp:495: error: aggregate `ip_mreq_source imr&#039; has incomplete type and cannot be defined&lt;br /&gt;
 GroupsockHelper.cpp:500: error: invalid application of `sizeof&#039; to incomplete type  `ip_mreq_source&#039;&lt;br /&gt;
 make[1]: *** [GroupsockHelper.o] Error 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Compiling VLC==&lt;br /&gt;
&lt;br /&gt;
Enter the following commands in your Cygwin shell:&lt;br /&gt;
&lt;br /&gt;
 cd vlc-trunk&lt;br /&gt;
&lt;br /&gt;
(you can check with the pwd command to see in which folder you are and with just the cd&lt;br /&gt;
command without any additional parameters you can change back to your home directory).&lt;br /&gt;
&lt;br /&gt;
NOTE: The following line is optional, only use that if you have problems compiling.&lt;br /&gt;
&lt;br /&gt;
 ./toolbox --distclean&lt;br /&gt;
&lt;br /&gt;
(This will have removed everything except code related stuff).&lt;br /&gt;
&lt;br /&gt;
 ../configure-vlc.sh&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Cross your fingers...&lt;br /&gt;
&lt;br /&gt;
NOTE: ./ means you run an application/script from the &amp;quot;current folder&amp;quot; (which is vlc-trunk) and ../ points to &amp;quot;one directory up&amp;quot; (which is where configure-vlc.sh is).&lt;br /&gt;
&lt;br /&gt;
==Creating self contained packages==&lt;br /&gt;
&lt;br /&gt;
Once the compilation is done, you can either run VLC directly from the source tree or you can build self-contained VLC packages with the following &amp;quot;make&amp;quot; commands:&lt;br /&gt;
&lt;br /&gt;
 make package-win32-base&lt;br /&gt;
&lt;br /&gt;
(This will create a subdirectory named vlc-x.x.x with all the binaries &amp;quot;stripped&amp;quot; without any debugging symbols).&lt;br /&gt;
&lt;br /&gt;
 make package-win32-zip&lt;br /&gt;
&lt;br /&gt;
(Same as above but will package the directory in a zip file).&lt;br /&gt;
&lt;br /&gt;
 make package-win32&lt;br /&gt;
&lt;br /&gt;
(Same as above but will also create an auto-installer package. You will need to have NSIS installed in its default location for this to work).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Advanced usage=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Updating Cygwin package versions==&lt;br /&gt;
&lt;br /&gt;
If you need to update or install additional packages you can just run the Cygwin setup.exe from your download location:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\cygwin\setup.exe          (example)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Using older GCC and MINGW version===&lt;br /&gt;
&lt;br /&gt;
You should be aware that Cygwin automatically selects the latest versions for gcc-g++ and gcc-mingw so if you are using older versions of those (like 3.3.3-3 and the accompanied 20040810-1 packages for mingw) and wish to continue to use them you need to &#039;&#039;&#039;change&#039;&#039;&#039; those versions to &#039;&#039;&#039;Keep&#039;&#039;&#039; for &#039;&#039;&#039;every time you use the update process&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
NOTE: You can click on the &amp;quot;View&amp;quot; button a few times until you see &amp;quot;Partial&amp;quot; next to it. This will give you an overview of some &amp;quot;Current&amp;quot; packages that will be updated to &amp;quot;New&amp;quot; versions.&lt;br /&gt;
&lt;br /&gt;
select the View button until it reaches: Partial&lt;br /&gt;
&lt;br /&gt;
 Devel&lt;br /&gt;
   3.4.4-3      gcc-core         -&amp;gt; change version to &#039;&#039;&#039;Keep&#039;&#039;&#039;&lt;br /&gt;
   3.4.4-3      gcc-g++          -&amp;gt; change version to &#039;&#039;&#039;Keep&#039;&#039;&#039;&lt;br /&gt;
   20050522-1   gcc-mingw-core   -&amp;gt; change version to &#039;&#039;&#039;Keep&#039;&#039;&#039;&lt;br /&gt;
   20050522-1   gcc-mingw-g++    -&amp;gt; change version to &#039;&#039;&#039;Keep&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Selecting the 3.4.4-3 version automatically changes the gcc-mingw-core and gcc-mingw-g++ to the 20050522-1 (or newer) versions as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Downgrading Cygwin GCC packages===&lt;br /&gt;
&lt;br /&gt;
If your Cygwin gcc versions are already the latest and you wish to downgrade to gcc 3.3.3-3 then it&#039;s not possible to downgrade the gcc-core/g++ and the mingw packages all at the same time, it has to be done in two steps.&lt;br /&gt;
&lt;br /&gt;
select the View button until it reaches: Up To Date&lt;br /&gt;
&lt;br /&gt;
 Devel&lt;br /&gt;
   3.4.4-3      gcc-core   -&amp;gt; change version to &#039;&#039;&#039;3.3.3-3&#039;&#039;&#039;&lt;br /&gt;
   3.4.4-3      gcc-g++    -&amp;gt; change version to &#039;&#039;&#039;3.3.3-3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Install, OK.&lt;br /&gt;
&lt;br /&gt;
Restart the Cygwin update process.&lt;br /&gt;
&lt;br /&gt;
Select the View button until it reaches: Partial&lt;br /&gt;
&lt;br /&gt;
 Devel&lt;br /&gt;
   3.4.4-3      gcc-core   -&amp;gt; change version to &#039;&#039;&#039;Keep&#039;&#039;&#039;&lt;br /&gt;
   3.4.4-3      gcc-g++    -&amp;gt; change version to &#039;&#039;&#039;Keep&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Select the View button until it reaches: Up To Date&lt;br /&gt;
&lt;br /&gt;
 Devel&lt;br /&gt;
   20050522-1   gcc-mingw-core   -&amp;gt; change version to &#039;&#039;&#039;20040810-1&#039;&#039;&#039; &lt;br /&gt;
   20050522-1   gcc-mingw-g++    -&amp;gt; change version to &#039;&#039;&#039;20040810-1&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Install, OK.&lt;br /&gt;
&lt;br /&gt;
Again, for any new update process remember to change back those versions!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GDB (Gnu Debugger)==&lt;br /&gt;
&lt;br /&gt;
This section requires that you installed the gdb (Gnu Debugger) in Cygwin.&lt;br /&gt;
&lt;br /&gt;
This is a typical example of creating a crashlog:&lt;br /&gt;
&lt;br /&gt;
 cd vlc-trunk&lt;br /&gt;
&lt;br /&gt;
 gdb vlc.exe&lt;br /&gt;
&lt;br /&gt;
In the debugger mode run the program and make sure you reset the preferences!&lt;br /&gt;
&lt;br /&gt;
 (gdb) run --fast-mutex --reset-config --reset-plugins-cache&lt;br /&gt;
&lt;br /&gt;
NOTE: the (gdb) is just a prompt which means you are in the debugger mode&lt;br /&gt;
&lt;br /&gt;
It will now take a lot longer than usual for VLC to start :)&lt;br /&gt;
&lt;br /&gt;
Now operate VLC as you would normally do. As soon as a crash issue occurs&lt;br /&gt;
you&#039;ll notice a line like this:&lt;br /&gt;
&lt;br /&gt;
 Program received signal SIGSEGV, Segmentation fault.&lt;br /&gt;
 0x0041394c in playlist_ItemGetById (p_playlist=0x19ec4f8, i_id=29)&lt;br /&gt;
     at src/playlist/item-ext.c:459&lt;br /&gt;
 ---Type &amp;lt;return&amp;gt; to continue, or q &amp;lt;return&amp;gt; to quit---&lt;br /&gt;
 459             i = i_bottom + ( i_top - i_bottom ) / 2;&lt;br /&gt;
&lt;br /&gt;
Now you can do a &amp;quot;backtrace&amp;quot; by using the bt command:&lt;br /&gt;
&lt;br /&gt;
 (gdb) bt&lt;br /&gt;
&lt;br /&gt;
And output similar to this will be created:&lt;br /&gt;
&lt;br /&gt;
 #0  0x0041394c in playlist_ItemGetById (p_playlist=0x19ec4f8, i_id=29) &lt;br /&gt;
     at src/playlist/item-ext.c:459&lt;br /&gt;
 #1  0x0b26bbf7 in wxvlc::Playlist::CountItems (this=0x1822e288, root=&lt;br /&gt;
       {m_pItem = 0x29fef8}) at playlist.cpp:695&lt;br /&gt;
 #2  0x0b26bc83 in wxvlc::Playlist::CountItems (this=0x1822e288, root=&lt;br /&gt;
       {m_pItem = 0x29e8b0}) at playlist.cpp:689&lt;br /&gt;
 #3  0x0b26bc83 in wxvlc::Playlist::CountItems (this=0x1822e288, root=&lt;br /&gt;
       {m_pItem = 0x29a818}) at playlist.cpp:689&lt;br /&gt;
 #4  0x0b26bc83 in wxvlc::Playlist::CountItems (this=0x1822e288, root=&lt;br /&gt;
       {m_pItem = 0x299718}) at playlist.cpp:689&lt;br /&gt;
 #5  0x0b26bc83 in wxvlc::Playlist::CountItems (this=0x1822e288, root=&lt;br /&gt;
       {m_pItem = 0xffff0000}) at playlist.cpp:689&lt;br /&gt;
 #6  0x0b26bf49 in wxvlc::Playlist::AppendItem (this=0x1822e288,&lt;br /&gt;
     event=@0x1827afd0) at playlist.cpp:564&lt;br /&gt;
 #7  0x0b2757fc in wxvlc::Playlist::OnPlaylistEvent (this=0x1822e288,&lt;br /&gt;
     event=@0x1827afd0) at playlist.cpp:1438&lt;br /&gt;
 #8  0x0b3771b8 in wxEvtHandler::ProcessEventIfMatches ()&lt;br /&gt;
     at /usr/win32/include/wx-2.6/wx/event.h:2183&lt;br /&gt;
 #9  0x0b376a1c in wxEventHashTable::HandleEvent ()&lt;br /&gt;
     at /usr/win32/include/wx-2.6/wx/event.h:2183&lt;br /&gt;
 #10 0x0b37730d in wxEvtHandler::ProcessEvent ()&lt;br /&gt;
     at /usr/win32/include/wx-2.6/wx/event.h:2183&lt;br /&gt;
 #11 0x0b37711b in wxEvtHandler::ProcessPendingEvents ()&lt;br /&gt;
     at /usr/win32/include/wx-2.6/wx/event.h:2183&lt;br /&gt;
 ---Type &amp;lt;return&amp;gt; to continue, or q &amp;lt;return&amp;gt; to quit---&lt;br /&gt;
 #12 0x0b376017 in wxAppConsole::ProcessPendingEvents ()&lt;br /&gt;
     at /usr/win32/include/wx-2.6/wx/event.h:2183&lt;br /&gt;
 #13 0x0b3ec75a in wxIdleWakeUpModule::MsgHookProc ()&lt;br /&gt;
     at /usr/win32/include/wx-2.6/wx/bmpbuttn.h:81&lt;br /&gt;
 #14 0x773aca2d in USER32!GetScrollRange ()&lt;br /&gt;
    from /cygdrive/c/WINDOWS/system32/user32.dll&lt;br /&gt;
 #15 0x00000000 in ?? () from&lt;br /&gt;
 (gdb)&lt;br /&gt;
&lt;br /&gt;
These are the log outputs that are more usefull to developers than just mentioning &amp;quot;it crashes&amp;quot;!&lt;br /&gt;
&lt;br /&gt;
NOTE: In GDB mode there are sometimes situations where GDB initially &amp;quot;crashes&amp;quot; on certain network activity (opening network shares, network traffic) which in normal operation does not occur. Just select c for continue until &amp;quot;normal&amp;quot; operation continues.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==.diff files==&lt;br /&gt;
&lt;br /&gt;
Frequently patches to source code are presented or discussed in forums or in mailing lists in so called .diff format (these are &amp;quot;differences&amp;quot; to the source code).&lt;br /&gt;
&lt;br /&gt;
You can apply those patches yourself to the source code or create .diff files. This requires the patchutils package in Cygwin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Patching source code===&lt;br /&gt;
&lt;br /&gt;
Download a so called .diff file:&lt;br /&gt;
&lt;br /&gt;
 sse2-pixel-routines-v3.diff (example)&lt;br /&gt;
&lt;br /&gt;
NOTE: make sure the file doesn&#039;t get a .txt extension, so Save as type &amp;quot;All Files&amp;quot; instead of &amp;quot;Text Document&amp;quot; (IE has a habit of renaming to .txt. If that happens just simply rename to .diff)&lt;br /&gt;
&lt;br /&gt;
Copy the .diff file into the appropriate source folder&lt;br /&gt;
&lt;br /&gt;
 x264-trunk (example)&lt;br /&gt;
&lt;br /&gt;
Apply the patch as follows&lt;br /&gt;
&lt;br /&gt;
 patch -p0 &amp;lt; sse2-pixel-routines-v3.diff (example)&lt;br /&gt;
&lt;br /&gt;
NOTE: replace sse2-pixel-routines-v3.diff with your &amp;quot;patch&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will output something like:&lt;br /&gt;
&lt;br /&gt;
 patching file common/i386/pixel.h&lt;br /&gt;
 patching file common/i386/pixel-a.asm&lt;br /&gt;
 patching file common/pixel.c&lt;br /&gt;
&lt;br /&gt;
Your source code is now patched!&lt;br /&gt;
&lt;br /&gt;
NOTE: If you want to revert to the original version you can use the -R option with the patch command or alternatively you can just delete the changed files and just do an SVN update to get the original/latest SVN version back.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Creating .diff files===&lt;br /&gt;
&lt;br /&gt;
When changing the source code it&#039;s possible to create a &amp;quot;difference&amp;quot; file against the latest source.&lt;br /&gt;
&lt;br /&gt;
In this example the file /modules/codec/x264.c was changed (the part &amp;quot;in kbit/s&amp;quot; was added to a description).&lt;br /&gt;
&lt;br /&gt;
Start your Cygwin shell.&lt;br /&gt;
&lt;br /&gt;
Change to the appropriate folder where a changed file is.&lt;br /&gt;
&lt;br /&gt;
 cd vlc-trunk/modules/codec (example)&lt;br /&gt;
&lt;br /&gt;
Output the svn diff command to a file:&lt;br /&gt;
&lt;br /&gt;
 svn diff -u &amp;gt; x264-patch.diff&lt;br /&gt;
&lt;br /&gt;
The current folder now holds a x264-patch.diff file containing the following:&lt;br /&gt;
&lt;br /&gt;
 Index: x264.c&lt;br /&gt;
 ===================================================================&lt;br /&gt;
 --- x264.c      (revision 15921)&lt;br /&gt;
 +++ x264.c      (working copy)&lt;br /&gt;
 @@ -131,7 +131,7 @@&lt;br /&gt;
  #define RATETOL_LONGTEXT N_( &amp;quot;Allowed variance in average. &amp;quot; \&lt;br /&gt;
      &amp;quot;bitrate (in kbits/s).&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 -#define VBV_MAXRATE_TEXT N_(&amp;quot;Max local bitrate&amp;quot;)&lt;br /&gt;
 +#define VBV_MAXRATE_TEXT N_(&amp;quot;Max local bitrate in kbit/s&amp;quot;)&lt;br /&gt;
  #define VBV_MAXRATE_LONGTEXT N_( &amp;quot;Sets a maximum local bitrate in kbits/s.&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
  #define VBV_BUFSIZE_TEXT N_(&amp;quot;VBV buffer&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
NOTE: In Windows you should open this file with something else than notepad (so wordpad or some more advanced editor). This has to do with the end of line markers that are present in the file since it was made in a Linux environment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reverting to older SVN source code==&lt;br /&gt;
&lt;br /&gt;
If for some reason you want to revert to (use) an older version (let&#039;s say you are using  revision 15916 of the VLC source code but would like to test with 15915) then use the svn &amp;quot;update&amp;quot; function from within Cygwin but use an older revision number.&lt;br /&gt;
&lt;br /&gt;
Start your Cygwin shell...&lt;br /&gt;
&lt;br /&gt;
 cd vlc-trunk&lt;br /&gt;
&lt;br /&gt;
 svn up -r 15915&lt;br /&gt;
&lt;br /&gt;
And you&#039;ll see something like this:&lt;br /&gt;
&lt;br /&gt;
 U    src\input\input.c&lt;br /&gt;
 Updated to revision 15915.&lt;br /&gt;
&lt;br /&gt;
The following command will show the version used:&lt;br /&gt;
&lt;br /&gt;
 svn info&lt;br /&gt;
&lt;br /&gt;
=FAQ/Troubleshooting=&lt;br /&gt;
&lt;br /&gt;
This chapter mentions some frequently encountered problems during compile and installation procedures and possible fixes or workarounds.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Making all in &amp;lt;folder&amp;gt;&amp;quot; takes forever with 0% CPU usage==&lt;br /&gt;
&lt;br /&gt;
Make seems to &amp;quot;stall&amp;quot; at a certain point (no CPU usage) and nothing seems to happen anymore:&lt;br /&gt;
&lt;br /&gt;
 Making all in mpeg&lt;br /&gt;
 make[5]: Entering directory `/home/Administrator/vlc-trunk/modules/mux/mpeg&#039;&lt;br /&gt;
&lt;br /&gt;
NOTE: This problem seems to occur on dual CPU (or HyperThreading enabled)&lt;br /&gt;
systems.&lt;br /&gt;
&lt;br /&gt;
FIX: in the vlc-trunk do a ./toolbox --distclean before doing a ../configure-vlc.sh and try again...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==configure: error: C compiler cannot create executables==&lt;br /&gt;
&lt;br /&gt;
The ../configure-vlc.sh gives the following error:&lt;br /&gt;
&lt;br /&gt;
 checking for gcc... gcc -mno-cygwin&lt;br /&gt;
 checking for C compiler default output file name... configure: error: C compiler&lt;br /&gt;
 cannot create executables&lt;br /&gt;
&lt;br /&gt;
FIX: it&#039;s very likely you are using the gcc 3.3 version but with the wrong mingw packages (the ones that come with 3.4). Reinstall the following gcc-mingw packages but make sure to use the older version!!!&lt;br /&gt;
&lt;br /&gt;
20050522-1      gcc-mingw-core  autoselected -&amp;gt;  change to 20040810-1&lt;br /&gt;
20050522-1      gcc-mingw-g++ 	autoselected -&amp;gt;  change to 20040810-1&lt;br /&gt;
&lt;br /&gt;
You can check what version of gcc you are version in the Cygwin shell by using the following command:&lt;br /&gt;
&lt;br /&gt;
 gcc --version&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==collect2: ld returned 1 exit status (libebml)==&lt;br /&gt;
&lt;br /&gt;
A make fails with the following error:&lt;br /&gt;
&lt;br /&gt;
 /usr/win32/lib/libebml.a(EbmlMaster.o):EbmlMaster.cpp:(.text$_ZNSt14__simple_all&lt;br /&gt;
 ocISsSt24__default_alloc_templateILb1ELi0EEE10deallocateEPSsj[std::__simple_allo&lt;br /&gt;
 c&amp;lt;std::basic_string&amp;lt;char, std::char_traits&amp;lt;char&amp;gt;, std::allocator&amp;lt;char&amp;gt; &amp;gt;, std::_&lt;br /&gt;
 _default_alloc_template&amp;lt;true, 0&amp;gt; &amp;gt;::deallocate(std::basic_string&amp;lt;char, std::char&lt;br /&gt;
 _traits&amp;lt;char&amp;gt;, std::allocator&amp;lt;char&amp;gt; &amp;gt;*, unsigned int)]+0x1d): undefined referenc&lt;br /&gt;
 e to `std::__default_alloc_template&amp;lt;true, 0&amp;gt;::deallocate(void*, unsigned int)&#039;&lt;br /&gt;
 /usr/win32/lib/libebml.a(EbmlMaster.o):EbmlMaster.cpp:(.text$_ZNSt14__simple_all&lt;br /&gt;
 ocISsSt24__default_alloc_templateILb1ELi0EEE8allocateEj[std::__simple_alloc&amp;lt;std:&lt;br /&gt;
 :basic_string&amp;lt;char, std::char_traits&amp;lt;char&amp;gt;, std::allocator&amp;lt;char&amp;gt; &amp;gt;, std::__defau&lt;br /&gt;
 lt_alloc_template&amp;lt;true, 0&amp;gt; &amp;gt;::allocate(unsigned int)]+0x1d): undefined reference&lt;br /&gt;
  to `std::__default_alloc_template&amp;lt;true, 0&amp;gt;::allocate(unsigned int)&#039;&lt;br /&gt;
 /usr/win32/lib/libebml.a(EbmlMaster.o):EbmlMaster.cpp:(.text$_ZNSt14__simple_all&lt;br /&gt;
 ocIPN7libebml11EbmlElementESt24__default_alloc_templateILb1ELi0EEE8allocateEj[st&lt;br /&gt;
 d::__simple_alloc&amp;lt;libebml::EbmlElement*, std::__default_alloc_template&amp;lt;true, 0&amp;gt;&lt;br /&gt;
 &amp;gt;::allocate(unsigned int)]+0x1d): undefined reference to `std::__default_alloc_t&lt;br /&gt;
 emplate&amp;lt;true, 0&amp;gt;::allocate(unsigned int)&#039;&lt;br /&gt;
 /usr/win32/lib/libebml.a(EbmlMaster.o):EbmlMaster.cpp:(.text$_ZNSt14__simple_all&lt;br /&gt;
 ocIPN7libebml11EbmlElementESt24__default_alloc_templateILb1ELi0EEE10deallocateEP&lt;br /&gt;
 S2_j[std::__simple_alloc&amp;lt;libebml::EbmlElement*, std::__default_alloc_template&amp;lt;tr&lt;br /&gt;
 ue, 0&amp;gt; &amp;gt;::deallocate(libebml::EbmlElement**, unsigned int)]+0x1d): undefined ref&lt;br /&gt;
 erence to `std::__default_alloc_template&amp;lt;true, 0&amp;gt;::deallocate(void*, unsigned in&lt;br /&gt;
 t)&#039;&lt;br /&gt;
 collect2: ld returned 1 exit status&lt;br /&gt;
 make[2]: *** [vlc.exe] Error 1&lt;br /&gt;
&lt;br /&gt;
This problem is because libEbml is a C++ lib and it doesn&#039;t seem to link with gcc 3.4.&lt;br /&gt;
&lt;br /&gt;
FIX: Use gcc 3.3 with the according 3.3 Win32 &amp;quot;contrib&amp;quot; package version or use a Win32 &amp;quot;contrib&amp;quot; package for 3.4 (or even better try compiling it yourself).&lt;br /&gt;
&lt;br /&gt;
WORKAROUND for gcc 3.4: Use --disable-mkv in configure-vlc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==zip: command not found==&lt;br /&gt;
&lt;br /&gt;
A make package fails with the following error:&lt;br /&gt;
&lt;br /&gt;
 zip -r vlc-0.8.4-svn-win32.zip vlc-0.8.4-svn&lt;br /&gt;
 /bin/bash: line 1: zip: command not found&lt;br /&gt;
 make: *** [package-win32-base-zip] Error 127&lt;br /&gt;
&lt;br /&gt;
FIX: Doh! forgot to install the zip package in Cygwin :P&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==vlc.exe: Permission denied==&lt;br /&gt;
&lt;br /&gt;
A make finished successfully and produced vlc.exe, but running the executable returns the following:&lt;br /&gt;
&lt;br /&gt;
 bash: ./vlc.exe: Permission denied&lt;br /&gt;
&lt;br /&gt;
The permissions on both vlc.exe &amp;amp; vlc.exe.manifest must be set to executable. &lt;br /&gt;
&lt;br /&gt;
FIX: Type the following:&lt;br /&gt;
 &lt;br /&gt;
 chmod 755 vlc.exe vlc.exe.manifest&lt;br /&gt;
&lt;br /&gt;
==error: parse error before &#039;(&#039; token==&lt;br /&gt;
&lt;br /&gt;
A make (compile) of FFmpeg results in the following error:&lt;br /&gt;
&lt;br /&gt;
 /usr/include/sys/unistd.h:203: error: parse error before &#039;(&#039; token&lt;br /&gt;
 make[1]: *** [ffm.o] Error 1&lt;br /&gt;
&lt;br /&gt;
It&#039;s very likely you are usix the POSIX emulater which you shouldn&#039;t...&lt;br /&gt;
&lt;br /&gt;
FIX: compile with the option &lt;br /&gt;
&lt;br /&gt;
 -mno-cygwin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==error: invalid conversion from `const void*&#039; to `void*&#039;==&lt;br /&gt;
&lt;br /&gt;
 src/theme_loader.cpp: In function `int gzwrite_frontend(int, const void*, size_t)&#039;:&lt;br /&gt;
 src/theme_loader.cpp:599: error: invalid conversion from `const void*&#039; to `void*&#039;&lt;br /&gt;
 src/theme_loader.cpp:599: error:   initializing argument 2 of `int gzwrite(void*,&lt;br /&gt;
 void*, unsigned int)&#039;&lt;br /&gt;
 make[6]: *** [libskins2_plugin_a-theme_loader.o] Error 1&lt;br /&gt;
&lt;br /&gt;
FIX: This is related to a problem with the zlib library, updating to at least 1.2.2-1 but preferably 1.2.3 or newer is required&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==error: cannot convert `const wxChar*&#039; to `const char*==&lt;br /&gt;
&lt;br /&gt;
 if g++ -mno-cygwin -DHAVE_CONFIG_H -I. -I. -I../../..   -I/usr/win32/include -I/&lt;br /&gt;
 usr/win32/include/ebml -D_OFF_T_ -D_off_t=long -DSYS_MINGW32 -I../../../include&lt;br /&gt;
 `top_builddir=&amp;quot;../../..&amp;quot; ../../../vlc-config --cxxflags plugin wxwidgets` -Wsign&lt;br /&gt;
 -compare -Wsign-compare -Wall  -mms-bitfields -pipe -MT libwxwidgets_plugin_a-wx&lt;br /&gt;
 widgets.o -MD -MP -MF &amp;quot;.deps/libwxwidgets_plugin_a-wxwidgets.Tpo&amp;quot; -c -o libwxwid&lt;br /&gt;
 gets_plugin_a-wxwidgets.o `test -f &#039;wxwidgets.cpp&#039; || echo &#039;./&#039;`wxwidgets.cpp; \&lt;br /&gt;
 then mv -f &amp;quot;.deps/libwxwidgets_plugin_a-wxwidgets.Tpo&amp;quot; &amp;quot;.deps/libwxwidgets_plugi&lt;br /&gt;
 n_a-wxwidgets.Po&amp;quot;; else rm -f &amp;quot;.deps/libwxwidgets_plugin_a-wxwidgets.Tpo&amp;quot;; exit&lt;br /&gt;
 1; fi&lt;br /&gt;
 In file included from /usr/win32/include/wx-2.6/wx/debug.h:22,&lt;br /&gt;
                  from /usr/win32/include/wx-2.6/wx/defs.h:452,&lt;br /&gt;
                  from /usr/win32/include/wx-2.6/wx/wxprec.h:13,&lt;br /&gt;
                  from wxwidgets.h:40,&lt;br /&gt;
                  from wxwidgets.cpp:39:&lt;br /&gt;
 /usr/win32/include/wx-2.6/wx/wxchar.h: In function `size_t wxStrlen(const wxChar&lt;br /&gt;
 *)&#039;:&lt;br /&gt;
 /usr/win32/include/wx-2.6/wx/wxchar.h:759: error: cannot convert `const wxChar*&#039;&lt;br /&gt;
  to `const char*&#039; for argument `1&#039; to `size_t strlen(const char*)&#039;&lt;br /&gt;
 In file included from /usr/win32/include/wx-2.6/wx/memory.h:20,&lt;br /&gt;
                  from /usr/win32/include/wx-2.6/wx/object.h:25,&lt;br /&gt;
                  from /usr/win32/include/wx-2.6/wx/wx.h:16,&lt;br /&gt;
                  from wxwidgets.h:41,&lt;br /&gt;
                  from wxwidgets.cpp:39:&lt;br /&gt;
 /usr/win32/include/wx-2.6/wx/string.h: In constructor `wxString::wxString(const&lt;br /&gt;
 wxChar*)&#039;:&lt;br /&gt;
&lt;br /&gt;
FIX: update wxwidgets or try a different or newer Win32 &amp;quot;contrib&amp;quot; package.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==undefined reference to `_av_parser_change&#039; (FFmpeg)==&lt;br /&gt;
&lt;br /&gt;
 ffmpeg.o: In function `output_packet&#039;:&lt;br /&gt;
 /home/Administrator/FFmpeg-20050724/ffmpeg.c:1414: undefined reference to `_av_parser_change&#039;&lt;br /&gt;
 /home/Administrator/FFmpeg-20050724/ffmpeg.c:1415: undefined reference to `_av_destruct_packet&#039;&lt;br /&gt;
 collect2: ld returned 1 exit status&lt;br /&gt;
 make: *** [ffmpeg_g.exe] Error 1&lt;br /&gt;
&lt;br /&gt;
This is a possible conflict when you use normal configure-ffmpeg (uses /usr/win32&lt;br /&gt;
contrib) instead of configure-ffmpeg-svn&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==undefined reference to `_pp_get_context&#039; (FFmpeg)==&lt;br /&gt;
&lt;br /&gt;
 ./modules/codec/ffmpeg/libffmpeg.a(libffmpeg_a-postprocess.o): In function `Init&lt;br /&gt;
 Postproc__ffmpeg&#039;:&lt;br /&gt;
 /home/Administrator/vlc-trunk/modules/codec/ffmpeg/postprocess.c:164: undefined&lt;br /&gt;
 reference to `_pp_get_context&#039;&lt;br /&gt;
 ./modules/codec/ffmpeg/libffmpeg.a(libffmpeg_a-postprocess.o): In function `PPQC&lt;br /&gt;
 allback&#039;:&lt;br /&gt;
 /home/Administrator/vlc-trunk/modules/codec/ffmpeg/postprocess.c:244: undefined&lt;br /&gt;
 reference to `_pp_get_mode_by_name_and_quality&#039;&lt;br /&gt;
 ./modules/codec/ffmpeg/libffmpeg.a(libffmpeg_a-postprocess.o): In function `Post&lt;br /&gt;
 procPict__ffmpeg&#039;:&lt;br /&gt;
 /home/Administrator/vlc-trunk/modules/codec/ffmpeg/postprocess.c:191: undefined&lt;br /&gt;
 reference to `_pp_postprocess&#039;&lt;br /&gt;
 $&lt;br /&gt;
 ePostproc__ffmpeg&#039;:&lt;br /&gt;
 /home/Administrator/vlc-trunk/modules/codec/ffmpeg/postprocess.c:209: undefined&lt;br /&gt;
 reference to `_pp_free_mode&#039;&lt;br /&gt;
 /home/Administrator/vlc-trunk/modules/codec/ffmpeg/postprocess.c:210: undefined&lt;br /&gt;
 reference to `_pp_free_context&#039;&lt;br /&gt;
 collect2: ld returned 1 exit status&lt;br /&gt;
 make[2]: *** [vlc.exe] Error 1&lt;br /&gt;
 make[2]: Leaving directory `/home/Administrator/vlc-trunk&#039;&lt;br /&gt;
 make[1]: *** [all-recursive] Error 1&lt;br /&gt;
 make[1]: Leaving directory `/home/Administrator/vlc-trunk&#039;&lt;br /&gt;
 make: *** [all] Error 2&lt;br /&gt;
&lt;br /&gt;
FFmpeg was not compiled with post processing support. To do so the following options need to be added to the configure lines for FFmpeg:&lt;br /&gt;
&lt;br /&gt;
 --enable-pp --enable-gpl&lt;br /&gt;
&lt;br /&gt;
Postprocessing code is under GPL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==error: expected primary-expression before &#039;&amp;lt;&amp;lt;&#039; token==&lt;br /&gt;
&lt;br /&gt;
 In file included from /usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../include/w32&lt;br /&gt;
 api/windows.h:52,&lt;br /&gt;
                  from ../../../include/vlc_common.h:459,&lt;br /&gt;
                  from ../../../include/vlc/vlc.h:153,&lt;br /&gt;
                  from dshow.cpp:31:&lt;br /&gt;
 /usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../include/w32api/wingdi.h:3:1: warn&lt;br /&gt;
 ing: this is the location of the previous definition&lt;br /&gt;
 In file included from /usr/win32/include/dshow.h:35,&lt;br /&gt;
                  from common.h:45,&lt;br /&gt;
                  from dshow.cpp:35:&lt;br /&gt;
 /usr/win32/include/ddraw.h:14: warning: ignoring #pragma warning&lt;br /&gt;
 In file included from /usr/win32/include/dshow.h:35,&lt;br /&gt;
                  from common.h:45,&lt;br /&gt;
                  from dshow.cpp:35:&lt;br /&gt;
 /usr/win32/include/ddraw.h:5552: warning: ignoring #pragma warning&lt;br /&gt;
 In file included from /usr/win32/include/dshow.h:45,&lt;br /&gt;
                  from common.h:45,&lt;br /&gt;
                  from dshow.cpp:35:&lt;br /&gt;
 /usr/win32/include/strmif.h:2: warning: ignoring #pragma warning&lt;br /&gt;
 In file included from /usr/win32/include/dsound.h:13,&lt;br /&gt;
                  from /usr/win32/include/amaudio.h:18,&lt;br /&gt;
                  from /usr/win32/include/dshow.h:47,&lt;br /&gt;
                  from common.h:45,&lt;br /&gt;
                  from dshow.cpp:35:&lt;br /&gt;
 /usr/win32/include/d3dtypes.h:22: warning: ignoring #pragma warning&lt;br /&gt;
 /usr/win32/include/d3dtypes.h:1813: warning: ignoring #pragma warning&lt;br /&gt;
 In file included from /usr/win32/include/dshow.h:48,&lt;br /&gt;
                  from common.h:45,&lt;br /&gt;
                  from dshow.cpp:35:&lt;br /&gt;
 /usr/win32/include/control.h:2: warning: ignoring #pragma warning&lt;br /&gt;
 dshow.cpp: In function `int CommonOpen(vlc_object_t*, access_sys_t*, vlc_bool_t)&lt;br /&gt;
 &#039;:&lt;br /&gt;
 dshow.cpp:456: error: expected primary-expression before &#039;&amp;lt;&amp;lt;&#039; token&lt;br /&gt;
 dshow.cpp:456: error: expected primary-expression before &#039;&amp;lt;&amp;lt;&#039; token&lt;br /&gt;
 dshow.cpp:456: error: expected primary-expression before &#039;&amp;lt;&amp;lt;&#039; token&lt;br /&gt;
 dshow.cpp:456: error: expected primary-expression before &#039;&amp;lt;&#039; token&lt;br /&gt;
 dshow.cpp:456: error: expected primary-expression before &#039;.&#039; token&lt;br /&gt;
 dshow.cpp:470: error: expected primary-expression before &#039;==&#039; token&lt;br /&gt;
 dshow.cpp:470: error: expected primary-expression before &#039;==&#039; token&lt;br /&gt;
 dshow.cpp:470: error: expected primary-expression before &#039;==&#039; token&lt;br /&gt;
 dshow.cpp:470: error: expected primary-expression before &#039;=&#039; token&lt;br /&gt;
 dshow.cpp:484: error: expected primary-expression before &#039;&amp;gt;&amp;gt;&#039; token&lt;br /&gt;
 dshow.cpp:484: error: expected primary-expression before &#039;&amp;gt;&amp;gt;&#039; token&lt;br /&gt;
 dshow.cpp:484: error: expected primary-expression before &#039;&amp;gt;&amp;gt;&#039; token&lt;br /&gt;
 dshow.cpp:484: error: expected primary-expression before &#039;&amp;gt;&#039; token&lt;br /&gt;
 dshow.cpp:484: error: expected primary-expression before &#039;.&#039; token&lt;br /&gt;
 dshow.cpp:485: error: expected `;&#039; before &amp;quot;IAMCrossbar&amp;quot;&lt;br /&gt;
 dshow.cpp:491: error: `pXbar&#039; undeclared (first use this function)&lt;br /&gt;
 dshow.cpp:491: error: (Each undeclared identifier is reported only once for each&lt;br /&gt;
 function it appears in.)&lt;br /&gt;
 make[6]: *** [libdshow_plugin_a-dshow.o] Error 1&lt;br /&gt;
 make[6]: Leaving directory `/home/Administrator/vlc-trunk/modules/access/dshow&#039;&lt;br /&gt;
 make[5]: *** [all-modules] Error 1&lt;br /&gt;
 make[5]: Leaving directory `/home/Administrator/vlc-trunk/modules/access/dshow&#039;&lt;br /&gt;
 make[4]: *** [all-recursive] Error 1&lt;br /&gt;
 make[4]: Leaving directory `/home/Administrator/vlc-trunk/modules/access&#039;&lt;br /&gt;
 make[3]: *** [all] Error 2&lt;br /&gt;
&lt;br /&gt;
Basically in case of conflict svn adds &amp;quot;&amp;lt;&amp;lt;&amp;lt; mine&amp;quot; and &amp;quot;=======&amp;quot; and &amp;quot;&amp;gt;&amp;gt;&amp;gt;&amp;gt; r1242&amp;quot; which makes gcc complain.&lt;br /&gt;
&lt;br /&gt;
FIX: revert the offending file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==configure: error: Could not find ffmpeg on your system==&lt;br /&gt;
&lt;br /&gt;
 configure: error: Could not find ffmpeg on your system: you may get it from&lt;br /&gt;
 http://ffmpeg.sf.net/ (cvs version is recommended). Alternatively you can use&lt;br /&gt;
 --disable-ffmpeg to disable the ffmpeg plugins.&lt;br /&gt;
 make: *** [config.status] Error 1&lt;br /&gt;
&lt;br /&gt;
This can happen when you do a make without doing a configure and the configure.ac file in the source code recently updated.&lt;br /&gt;
&lt;br /&gt;
FIX: do a full configure (using ../configure-vlc.sh) and then run the make process&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Objective C source seen but `OBJC&#039; is undefined==&lt;br /&gt;
&lt;br /&gt;
The configure process stops halfway.&lt;br /&gt;
&lt;br /&gt;
 + aclocal-1.9 -I m4&lt;br /&gt;
 + autoconf&lt;br /&gt;
 + autoheader&lt;br /&gt;
 + automake-1.9 --add-missing --copy -Wall&lt;br /&gt;
 configure.ac: installing `autotools/install-sh&#039;&lt;br /&gt;
 configure.ac: installing `autotools/missing&#039;&lt;br /&gt;
 activex/Makefile.am:143: shell $(VLC_CONFIG: non-POSIX variable name&lt;br /&gt;
 activex/Makefile.am:143: (probably a GNU make extension)&lt;br /&gt;
 activex/Makefile.am: installing `autotools/compile&#039;&lt;br /&gt;
 activex/Makefile.am: installing `autotools/depcomp&#039;&lt;br /&gt;
 modules/gui/macosx/Makefile.am: Objective C source seen but `OBJC&#039; is undefined&lt;br /&gt;
 modules/misc/testsuite/Makefile.am: Objective C source seen but `OBJC&#039; is undefi&lt;br /&gt;
 ned&lt;br /&gt;
 src/Makefile.am: Objective C source seen but `OBJC&#039; is undefined&lt;br /&gt;
 Makefile.am:282: user target `vlc$(EXEEXT)&#039; defined here...&lt;br /&gt;
 /usr/share/automake-1.9/am/program.am: ... overrides Automake target `vlc$(EXEEX&lt;br /&gt;
 T)&#039; defined here&lt;br /&gt;
 Makefile.am:230:   while processing program `vlc&#039;&lt;br /&gt;
 make: *** No targets specified and no makefile found.  Stop.&lt;br /&gt;
 &lt;br /&gt;
This problem is related to a warning earlier on and only occured in a few revisions where a built-in workaround wasn&#039;t working properly:&lt;br /&gt;
&lt;br /&gt;
 + echo &#039;Enabling provisional autoconf 2.59 work-around. Update autoconf ASAP.&#039;&lt;br /&gt;
 Enabling provisional autoconf 2.59 work-around. Update autoconf ASAP.&lt;br /&gt;
&lt;br /&gt;
FIX: update autoconf to 2.60 or newer. If Cygwin doesn&#039;t provide this version yet then build it yourself from extras/contrib.&lt;br /&gt;
&lt;br /&gt;
Enter the following commands in your Cygwin shell:&lt;br /&gt;
&lt;br /&gt;
 cd vlc-trunk/extras/contrib&lt;br /&gt;
&lt;br /&gt;
 ./bootstrap&lt;br /&gt;
&lt;br /&gt;
 cd src&lt;br /&gt;
&lt;br /&gt;
 make .autoconf&lt;br /&gt;
&lt;br /&gt;
There should now be compiled autoconf version (probably 2.60 or newer) in extras/contrib that the bootstrap process will use.&lt;br /&gt;
&lt;br /&gt;
Now start the whole &amp;quot;Compile VLC&amp;quot; process from the start again.&lt;br /&gt;
&lt;br /&gt;
==Error: cannot create temporary file for diversion: Permission denied==&lt;br /&gt;
&lt;br /&gt;
If the above error appears, it might mean you don&#039;t have the TMPDIR defined in cygwin. You will need to define it and have its value point to your temporary directory.&lt;br /&gt;
&lt;br /&gt;
=Version=&lt;br /&gt;
&lt;br /&gt;
20050627 Initial version&lt;br /&gt;
&lt;br /&gt;
20050628 Updated some more exceptions&lt;br /&gt;
&lt;br /&gt;
20050628 Some info added about FFmpeg compiling with AMR&lt;br /&gt;
&lt;br /&gt;
20050629 Finalized FFmpeg compiling&lt;br /&gt;
&lt;br /&gt;
20050630 Cross-compiling&lt;br /&gt;
&lt;br /&gt;
20050724 Some extra compile explanations&lt;br /&gt;
&lt;br /&gt;
20050726 Removed cross-compiling (was for linux -&amp;gt; win32) Patching source code with .diff files&lt;br /&gt;
&lt;br /&gt;
20050823 Added zlib error&lt;br /&gt;
&lt;br /&gt;
20050923 --enable-sdl --with-sdl-config-path=/usr/win32/bin added to configure. Added debug section&lt;br /&gt;
&lt;br /&gt;
20051102 Changed FFmpeg lib names&lt;br /&gt;
&lt;br /&gt;
20051128 Detailed Cygwin upgrade/downgrade for gcc 3.3. Renamed some update scripts. Added FFmpeg CVS update. --disable-gnomevfs added to configure (only used on linux)&lt;br /&gt;
&lt;br /&gt;
20060121 PKG_CONFIG_PATH=/usr/win32/lib/pkgconfig added to configure&lt;br /&gt;
&lt;br /&gt;
20060128 Added curl and libtool to Cygwin for those that want to be able to build extras/contrib themselves&lt;br /&gt;
&lt;br /&gt;
20060217 Added make install-libs install-headers to FFmpeg compile&lt;br /&gt;
&lt;br /&gt;
20060222 Remark about missing &amp;quot;gettext&amp;quot; libs for Cygwin during install&lt;br /&gt;
&lt;br /&gt;
20060225 ./bootstrap: you need libtool&lt;br /&gt;
&lt;br /&gt;
20060618 Updated GCC to 3.4 version and added FFmpeg SVN and DTS support&lt;br /&gt;
&lt;br /&gt;
20060805 Added note about using older binutils and gdb for Cygwin!&lt;br /&gt;
&lt;br /&gt;
20060915 Added note about updating autoconf from extras/contrib for an OBJC problem during configure&lt;br /&gt;
&lt;br /&gt;
20061108 Added note this document is no longer usable since Cygwin has been unusable probably related to some bash/dos2unix change&lt;br /&gt;
&lt;br /&gt;
20070612 Added note about --enable-dca&lt;br /&gt;
&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:Coding]]&lt;/div&gt;</summary>
		<author><name>Quovodis</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:Advanced_Use_of_VLC&amp;diff=7983</id>
		<title>Documentation:Advanced Use of VLC</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:Advanced_Use_of_VLC&amp;diff=7983"/>
		<updated>2007-03-13T20:10:03Z</updated>

		<summary type="html">&lt;p&gt;Quovodis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Use the command line==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TODO: completely outdated&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
All standard operations of VLC should be available from the GUI. However, some complex operations can only be done from the command line and there are situations in which you don&#039;t need or want a GUI. Here is the complete description of VLC&#039;s command line and how to use it.&lt;br /&gt;
&lt;br /&gt;
You need to be quite comfortable with command line usage to use this.&lt;br /&gt;
&lt;br /&gt;
 Note: Windows users have to use the &#039;&#039;--option-name=&amp;quot;value&amp;quot;&#039;&#039; syntax instead of the &#039;&#039;--option-name value&#039;&#039; syntax.&lt;br /&gt;
&lt;br /&gt;
===Getting help===&lt;br /&gt;
&lt;br /&gt;
VLC uses a modular structure. The core mainly manages communication between modules. All the multimedia processing is done by modules. There are input modules, demultiplexers, decoders, video output modules, ...&lt;br /&gt;
&lt;br /&gt;
This chapter will only describe the &amp;quot;general&amp;quot; options, i.e. the core options. Each module adds new options. For example, the HTTP input module will add options for caching, proxy, authentication, ...&lt;br /&gt;
&lt;br /&gt;
By using &#039;&#039;&#039;vlc --help&#039;&#039;&#039;, you will get the basic core options. &#039;&#039;&#039;vlc --longhelp&#039;&#039;&#039; will give all the basic options (core + modules). Adding &#039;&#039;&#039;--advanced&#039;&#039;&#039; will give the &amp;quot;advanced options&amp;quot; (for advanced users). So &#039;&#039;&#039;vlc --longhelp --advanced&#039;&#039;&#039; will give you all options. You can also append &#039;&#039;&#039;--help-verbose&#039;&#039;&#039; if you want more detailed help.&lt;br /&gt;
&lt;br /&gt;
Also, you might want to get debug informations. To do this, use &#039;&#039;&#039;-v&#039;&#039;&#039; or &#039;&#039;&#039;-vv&#039;&#039;&#039; (this will show lower severity messages). If your console supports it, you can add &#039;&#039;&#039;--color to get messages in color.&lt;br /&gt;
&lt;br /&gt;
===Opening streams===&lt;br /&gt;
&lt;br /&gt;
The following commands start VLC and start reading the given element(s)&lt;br /&gt;
&lt;br /&gt;
====Opening a file====&lt;br /&gt;
&lt;br /&gt;
Start VLC with:&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc my_file&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
VLC should be able to recognize the file type. If it does not, you can force demultiplexer and decoder (see below).&lt;br /&gt;
&lt;br /&gt;
A list of all video and audio codecs supported by VLC is available on the [http://www.videolan.org/vlc/features.html VLC features list].&lt;br /&gt;
&lt;br /&gt;
====Opening a DVD or VCD, or an audio CD====&lt;br /&gt;
&lt;br /&gt;
Start VLC with:&lt;br /&gt;
&lt;br /&gt;
For a DVD with menus:&lt;br /&gt;
 % &#039;&#039;&#039;vlc dvd://[device][@raw_device][@[title][:[chapter][:angle]]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In most cases, &#039;&#039;&#039;vlc dvd://&#039;&#039;&#039; or &#039;&#039;&#039;vlc dvd://[device]&#039;&#039;&#039; will do. [device] is for example &#039;&#039;&#039;/dev/dvd&#039;&#039;&#039; on GNU/Linux or &#039;&#039;&#039;D:&#039;&#039;&#039; on Windows (complete path to your DVD drive).&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
(DVD without menus):&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc dvdsimple://[device][@raw_device][@[title][:[chapter][:angle]]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
(VCD):&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc vcd://[device][@{E|P|E|T|S}[number]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
(Audio CD):&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc cdda://[device][@[track]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Receiving a network stream====&lt;br /&gt;
&lt;br /&gt;
To receive an unicast UDP stream (sent by VLS or VLC&#039;s stream output), start VLC with:&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc  udp:[@:server_port]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you use the default port (1234), &#039;&#039;&#039;vlc udp:&#039;&#039;&#039; will do. For more information, look at the Streaming Howto.&lt;br /&gt;
&lt;br /&gt;
To receive an multicast UDP stream (sent by VLS or VLC&#039;s stream output), start VLC with:&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc udp:@multicast_address[:server_port]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To receive a SSM (source specific multicast) stream, you can use:&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc udp:server_address@multicast_address[:server_port]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This only works on OSs that support SSM (Windows XP and recent Linux kernels).&lt;br /&gt;
&lt;br /&gt;
To receive a HTTP stream, start VLC with:&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc http://www.example.org/your_file.mpg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To receive a RTSP stream, start VLC with:&amp;lt;/para&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc rtsp://www.example.org/your_stream&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modules selection===&lt;br /&gt;
&lt;br /&gt;
VLC always try to select the most appropriate interface, input and output modules, among the ones available on the system, according to the stream it is given to read. However, you may wish to force the use of a specific module with the following options.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--intf  &amp;lt;module&amp;gt;&#039;&#039;&#039; allows you to select the interface module.&lt;br /&gt;
*&#039;&#039;&#039;--extraintf  &amp;lt;module&amp;gt;&#039;&#039;&#039; allows you to select extra interface modules that will be launched in addition to the main one. This is mainly useful for special &#039;&#039;control&#039;&#039; interfaces, like HTTP, RC (Remote Control), ... (see below)&lt;br /&gt;
*&#039;&#039;&#039;--aout  &amp;lt;module&amp;gt;&#039;&#039;&#039; allows you to select the audio output module.&lt;br /&gt;
*&#039;&#039;&#039;--vout  &amp;lt;module&amp;gt;&#039;&#039;&#039; allows you to select the video output module.&lt;br /&gt;
*&#039;&#039;&#039;--memcpy  &amp;lt;module&amp;gt;&#039;&#039;&#039; allows you to choose a memory copy module. You should probably never touch that.&lt;br /&gt;
&lt;br /&gt;
You can get a listing of the available modules by using &#039;&#039;&#039;vlc -l&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Stream Output===&lt;br /&gt;
&lt;br /&gt;
The Stream output system allows vlc to become a streaming server.&lt;br /&gt;
&lt;br /&gt;
For more details on the stream output system, please have a look at the [[Documentation:Streaming HowTo|Streaming HowTo]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Other Options===&lt;br /&gt;
&lt;br /&gt;
====Audio options====&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--noaudio&#039;&#039;&#039; disables audio output.&lt;br /&gt;
*&#039;&#039;&#039;--mono&#039;&#039;&#039; forces VLC to treat the stream in mono audio.&lt;br /&gt;
*&#039;&#039;&#039;--volume &amp;lt;integer&amp;gt;&#039;&#039;&#039; sets the level of audio output (between 0 and 1024).&lt;br /&gt;
*&#039;&#039;&#039;--aout-rate &amp;lt;integer&amp;gt;&#039;&#039;&#039; sets the audio output frequency (Hz). By default, VLC will try to autodetect this.&lt;br /&gt;
*&#039;&#039;&#039;--desync &amp;lt;integer&amp;gt;&#039;&#039;&#039; compensates desynchronization of audio (ms). (If audio and video streams are not synchronized, use this setting to delay the audio stream)&lt;br /&gt;
*&#039;&#039;&#039;--audio-filter &amp;lt;string&amp;gt;&#039;&#039;&#039; adds audio filters to the processing chain. Available filters are visual (visualizer with spectrum analyzer and oscilloscope), headphone (virtual headphone  patialization) and normalizer (volume normalizer)&lt;br /&gt;
&lt;br /&gt;
====Video options====&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--novideo&#039;&#039;&#039; disables video output.&lt;br /&gt;
*&#039;&#039;&#039;--greyscale&#039;&#039;&#039; turns video output into grayscale mode.&lt;br /&gt;
*&#039;&#039;&#039;--fullscreen&#039;&#039;&#039; ( or &#039;&#039;&#039;-f&#039;&#039;&#039;) sets fullscreen video.&lt;br /&gt;
*&#039;&#039;&#039;--nooverlay&#039;&#039;&#039; disables hardware acceleration for the video output.&lt;br /&gt;
*&#039;&#039;&#039;--width, --height &amp;lt;integer&amp;gt;&#039;&#039;&#039; sets the video window dimensions. By default, the video window size will be adjusted to match the video dimensions.&lt;br /&gt;
*&#039;&#039;&#039;--zoom &amp;lt;float&amp;gt;&#039;&#039;&#039; adds a zoom factor.&lt;br /&gt;
*&#039;&#039;&#039;--aspect-ratio &amp;lt;mode&amp;gt;&#039;&#039;&#039; forces source aspect ratio. Modes are 4x3, 16x9, ...&lt;br /&gt;
*&#039;&#039;&#039;--spumargin  &amp;lt;integer&amp;gt;&#039;&#039;&#039; forces SPU subtitles postion.&lt;br /&gt;
*&#039;&#039;&#039;--filter &amp;lt;string&amp;gt;&#039;&#039;&#039; adds video filters to the processing chain. You can add several filters, separated by commas&lt;br /&gt;
*&#039;&#039;&#039;--sub-filter &amp;lt;string&amp;gt;&#039;&#039;&#039; adds video subpictures filter to the processing chain.&lt;br /&gt;
&lt;br /&gt;
====Playlist options====&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--random&#039;&#039;&#039; plays files randomly forever.&lt;br /&gt;
*&#039;&#039;&#039;--loop&#039;&#039;&#039; loops playlist on end.&lt;br /&gt;
*&#039;&#039;&#039;--repeat&#039;&#039;&#039; repeats current item until another item is forced&lt;br /&gt;
*&#039;&#039;&#039;--play-and-stop&#039;&#039;&#039; stops the playlist after each played item.&lt;br /&gt;
&lt;br /&gt;
====Network options====&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--server-port &amp;lt;integer&amp;gt;&#039;&#039;&#039; sets server port.&lt;br /&gt;
*&#039;&#039;&#039;--iface  &amp;lt;string&amp;gt;&#039;&#039;&#039; specifies the network interface to use.&lt;br /&gt;
*&#039;&#039;&#039;--iface-addr  &amp;lt;string&amp;gt;&#039;&#039;&#039; specifies your network interface IP address.&lt;br /&gt;
*&#039;&#039;&#039;--mtu  &amp;lt;integer&amp;gt;&#039;&#039;&#039; specifies the MTU of the network interface.&lt;br /&gt;
*&#039;&#039;&#039;--ipv6&#039;&#039;&#039; forces IPv6.&lt;br /&gt;
*&#039;&#039;&#039;--ipv4&#039;&#039;&#039; forces IPv4.&lt;br /&gt;
&lt;br /&gt;
====CPU options====&lt;br /&gt;
&lt;br /&gt;
You should probably not touch these options unless you know what you are doing.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--nommx&#039;&#039;&#039; disables the use of MMX CPU extensions.&lt;br /&gt;
*&#039;&#039;&#039;--no3dn&#039;&#039;&#039; disables the use of 3D Now! CPU extensions.&lt;br /&gt;
*&#039;&#039;&#039;--nommxext&#039;&#039;&#039; disables the use of MMX Ext CPU extensions.&lt;br /&gt;
*&#039;&#039;&#039;--nosse&#039;&#039;&#039; disables the use of SSE CPU extensions.&lt;br /&gt;
*&#039;&#039;&#039;--noaltivec&#039;&#039;&#039; disables the use of Altivec CPU extensions.&lt;br /&gt;
&lt;br /&gt;
====Miscellaneous options====&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--quiet&#039;&#039;&#039;  deactivates all console messages.&lt;br /&gt;
*&#039;&#039;&#039;--color&#039;&#039;&#039; displays color messages.&lt;br /&gt;
*&#039;&#039;&#039;--search-path  &amp;lt;string&amp;gt;&#039;&#039;&#039; specifies interface default search path.&lt;br /&gt;
*&#039;&#039;&#039;--plugin-path  &amp;lt;string&amp;gt;&#039;&#039;&#039; specifies plugin search path.&lt;br /&gt;
*&#039;&#039;&#039;--no-plugins-cache&#039;&#039;&#039; disables the plugin cache (plugins cache speeds up startup)&lt;br /&gt;
*&#039;&#039;&#039;--dvd  &amp;lt;string&amp;gt;&#039;&#039;&#039; specifies the default DVD device.&lt;br /&gt;
*&#039;&#039;&#039;--vcd  &amp;lt;string&amp;gt;&#039;&#039;&#039; specifies the default VCD device.&lt;br /&gt;
*&#039;&#039;&#039;--program  &amp;lt;integer&amp;gt;&#039;&#039;&#039; specifies program (SID) (for streams with several programs, like satellite ones).&lt;br /&gt;
*&#039;&#039;&#039;--audio-type  &amp;lt;integer&amp;gt;&#039;&#039;&#039; specifies the default audio type to use with dvds.&lt;br /&gt;
*&#039;&#039;&#039;--audio-channel  &amp;lt;integer&amp;gt;&#039;&#039;&#039; specifies the default audio channel to use with dvds.&lt;br /&gt;
*&#039;&#039;&#039;--spu-channel  &amp;lt;integer&amp;gt;&#039;&#039;&#039; specifies the default subtitle channel to use with dvds.&lt;br /&gt;
*&#039;&#039;&#039;--version&#039;&#039;&#039; gives you information about the current VLC version.&lt;br /&gt;
*&#039;&#039;&#039;--module  &amp;lt;module&amp;gt; &#039;&#039;&#039; displays help about specified module. (Shortcut: &#039;&#039;&#039;-p&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Item-specific options===&lt;br /&gt;
&lt;br /&gt;
There are many options that are related to items (like &#039;&#039;&#039;--novideo&#039;&#039;&#039;, &#039;&#039;&#039;--codec&#039;&#039;&#039;, &#039;&#039;&#039;--fullscreen&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
For all of these, you have the possibility to make them item-specific, using &amp;quot;:&amp;quot; instead of &amp;quot;--&amp;quot; and putting the option just after the concerned item.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc file1.mpg :fullscreen file2.mpg&#039;&#039;&#039;&lt;br /&gt;
will play file1.mpg in fullscreen mode and file2.mpg in the default mode (which is generally no fullscreen), whereas&lt;br /&gt;
 % &#039;&#039;&#039;vlc --fullscreen file1.mpg file2.mpg&#039;&#039;&#039;&lt;br /&gt;
will play both files in fullscreen mode&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc --fullscreen file1.mpg :sub-file=file1.srt :no-fullscreen file2.mpg :filter=distort&#039;&#039;&#039;&lt;br /&gt;
will play file1.mpg in windowed (no-fullscreen) mode with the subtitles file file1.srt and will play file2.mpg with video filter distort enabled in fullscreen mode (item-specific options override global options)&lt;br /&gt;
&lt;br /&gt;
==Advanced use of filters==&lt;br /&gt;
&lt;br /&gt;
===Filters===&lt;br /&gt;
&lt;br /&gt;
These are the old style VLC filters. They only apply to on screen display and thus cannot be streamed.&lt;br /&gt;
&lt;br /&gt;
====Deinterlacing video filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;deinterlace&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--deinterlace-mode {discard,blend,mean,bob,linear}&#039;&#039;&#039; choose a deinterlacing mode.&lt;br /&gt;
&lt;br /&gt;
====Invert video filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;invert&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Image properties filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;adjust&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--contrast &amp;lt;float&amp;gt;&#039;&#039;&#039; Image contrast in the 0-2 range.&lt;br /&gt;
*&#039;&#039;&#039;--brightness &amp;lt;float&amp;gt;&#039;&#039;&#039; Image brightness in the 0-2 range.&lt;br /&gt;
*&#039;&#039;&#039;--hue &amp;lt;integer&amp;gt;&#039;&#039;&#039; Image hue in the 0-360 range.&lt;br /&gt;
*&#039;&#039;&#039;--saturation &amp;lt;float&amp;gt;&#039;&#039;&#039; Image saturation in the 0-3 range.&lt;br /&gt;
*&#039;&#039;&#039;-gamma &amp;lt;float&amp;gt;&#039;&#039;&#039; Image gamma in the 0-10 range.&lt;br /&gt;
&lt;br /&gt;
====Wall video filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;wall&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This filter splits the output in several windows.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--wall-cols &amp;lt;integer&amp;gt;&#039;&#039;&#039; Number of columns.&lt;br /&gt;
*&#039;&#039;&#039;--wall-rows &amp;lt;integer&amp;gt;&#039;&#039;&#039; Number of rows.&lt;br /&gt;
*&#039;&#039;&#039;--wall-active &amp;lt;string&amp;gt;&#039;&#039;&#039; Select the windows you want to display. To select windows 2 and 4 you would write &#039;&#039;&#039;--wall-active 2,4&#039;&#039;&#039;. When this option isn&#039;t specified, all windows are displayed.&lt;br /&gt;
&lt;br /&gt;
====Video transformation filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;transform&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--transform-type {90,180,270,hflip,vflip}&#039;&#039;&#039; Select rotation angle or symmetry.&lt;br /&gt;
&lt;br /&gt;
====Distort video filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;distort&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Clone video filter====&lt;br /&gt;
&lt;br /&gt;
This filter clones the output window.&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;clone&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--clone-count &amp;lt;integer&amp;gt;&#039;&#039;&#039; Number of clones.&lt;br /&gt;
*&#039;&#039;&#039;--clone-vout-list &amp;lt;string&amp;gt;&#039;&#039;&#039; Comma separated string of video output modules.&lt;br /&gt;
&lt;br /&gt;
====Crop video filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;crop&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--crop-geometry &amp;lt;string&amp;gt;&#039;&#039;&#039; Set the geometry of the zone to crop. This is set as &amp;lt;width&amp;gt; x &amp;lt;height&amp;gt; + &amp;lt;left offset&amp;gt; + &amp;lt;top offset&amp;gt;.&lt;br /&gt;
*&#039;&#039;&#039;--autocrop&#039;&#039;&#039; Enable automatic black border cropping.&lt;br /&gt;
&lt;br /&gt;
====Motion blur filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;motionblur&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;blur-factor &amp;lt;integer&amp;gt;&#039;&#039;&#039; Blur factor in the 1-127 range.&lt;br /&gt;
&lt;br /&gt;
====Video pictures blending====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;blend&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Video scaling filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;scale&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Subpictures Filters===&lt;br /&gt;
&lt;br /&gt;
These are the new VLC filters. They can be streamed.&lt;br /&gt;
&lt;br /&gt;
====Time display sub filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--time-format &amp;lt;string&amp;gt;&#039;&#039;&#039; Time format string. You can use the following special characters %Y = year, %m = month, %d = day, %H = hour, %M = minute, %S = second.&lt;br /&gt;
*&#039;&#039;&#039;--time-x &amp;lt;integer&amp;gt;&#039;&#039;&#039; X offset from the left in pixels.&lt;br /&gt;
*&#039;&#039;&#039;--time-y &amp;lt;integer&amp;gt;&#039;&#039;&#039; Y offset from the top in pixels.&lt;br /&gt;
&lt;br /&gt;
====Marquee display sub filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;marq&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--marq-marquee &amp;lt;string&amp;gt;&#039;&#039;&#039; Marquee text to display.&lt;br /&gt;
*&#039;&#039;&#039;--marq-x &amp;lt;integer&amp;gt;&#039;&#039;&#039; X offset from the left in pixels.&lt;br /&gt;
*&#039;&#039;&#039;--marq-y &amp;lt;integer&amp;gt;&#039;&#039;&#039; Y offset from the top in pixels.&lt;br /&gt;
*&#039;&#039;&#039;--marq-timeout &amp;lt;timeout&amp;gt;&#039;&#039;&#039; Defines the time the marquee must remain displayed in milliseconds. Default value is 0 (remain forever).&lt;br /&gt;
&lt;br /&gt;
====Logo video filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;logo&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This filter can be used both as an old style filter or a subpictures filter.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--logo-file &amp;lt;string&amp;gt;&#039;&#039;&#039; Full path of the PNG file to use.&lt;br /&gt;
*&#039;&#039;&#039;--logo-x &amp;lt;integer&amp;gt;&#039;&#039;&#039; X offset from the left in pixels.&lt;br /&gt;
*&#039;&#039;&#039;--logo-y &amp;lt;integer&amp;gt;&#039;&#039;&#039; Y offset from the top in pixels.&lt;br /&gt;
*&#039;&#039;&#039;--logo-transparency &amp;lt;integer&amp;gt;&#039;&#039;&#039; You can set the logo transparency value here (from 0 for full transparency to 255 for full opacity).&lt;br /&gt;
&lt;br /&gt;
Note: You can move the logo by left-clicking on it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==The HTTP interface==&lt;br /&gt;
&lt;br /&gt;
VLC ships with a little HTTP server integrated. It is used both to stream using HTTP, and for the HTTP remote control interface.&lt;br /&gt;
&lt;br /&gt;
To start VLC with the HTTP interface, use:&lt;br /&gt;
 % &#039;&#039;&#039;vlc -I http [--http-src /directory/] [--http-host host:port]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you want to have both the &amp;quot;normal&amp;quot; interface and the HTTP interface, use &#039;&#039;&#039;vlc --extraintf http&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The HTTP interface will start listening at host:port (&amp;lt;all interfaces&amp;gt;:8080 if omitted), and will reproduce the structure of /directory at http://host:port/ ( vlc_source_path/share/http if omitted ).&lt;br /&gt;
&lt;br /&gt;
Use a browser to go to http://your_host_machine:port. You should be taken to the main page.&lt;br /&gt;
&lt;br /&gt;
VLC is shipped with a set of files that should be enough for generic needs. It is also possible to customize pages. See [[Documentation:Play_HowTo/Building_Pages_for_the_HTTP_Interface]].&lt;br /&gt;
&lt;br /&gt;
Available pages are:&lt;br /&gt;
* &#039;&#039;&#039;list was obsolete&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other control interfaces==&lt;br /&gt;
&lt;br /&gt;
VLC includes a number of so-called interfaces that are not really interfaces, but means of controlling VLC. Nevertheless, they are enabled by setting them as interface or extra interface, either in the Preferences, in General/Interface, or using &#039;&#039;&#039;-I&#039;&#039;&#039; or &#039;&#039;&#039;--extraintf&#039;&#039;&#039; on the command line.&lt;br /&gt;
&lt;br /&gt;
===Hotkeys===&lt;br /&gt;
&lt;br /&gt;
This module allows you to control VLC and playback via hotkeys. It is always enabled by default. You can use hotkeys in the video output window.&lt;br /&gt;
&lt;br /&gt;
Hotkeys can be hacked by:&lt;br /&gt;
 % &#039;&#039;&#039;vlc --key-&amp;lt;function&amp;gt; &amp;lt;code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Code is composed by modifiers keys (Alt, Shift, Ctrl, Meta,Command) separated by a dash (-) and terminated by a key (a...z, +, =, -, &#039;,&#039;, +, &amp;amp;lt;, &amp;amp;gt;, `, /, ;, &#039;, \, [, ], *, Left, Right, Up, Down, Space, Enter, F1...F12, Home, End, Menu, Esc, Page Up, Page Down, Tab, Backspace, Mouse Wheel Up and Mouse Wheel Down). Main controls are available from hotkeys, such as : fullscreen, play-pause, faster, slower, next, prev, stop, quit, vol-up, etc. (use the &#039;&#039;&#039;--longhelp&#039;&#039;&#039; option for full list of functions).&lt;br /&gt;
For example, for binding fullscreen to Ctrl-f, run:&lt;br /&gt;
 % &#039;&#039;&#039;vlc --key-fullscreen &#039;Ctrl-f&#039; &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===RC and RTCI===&lt;br /&gt;
&lt;br /&gt;
These two interfaces allow you to control VLC from a command shell (possibly using a remote connexion or a Unix socket).&lt;br /&gt;
&lt;br /&gt;
Start VLC with &#039;&#039;&#039;-I rc&#039;&#039;&#039; or &#039;&#039;&#039;--extraintf rc&#039;&#039;&#039;. When you get the &#039;&#039;&#039;Remote control interface initialized, `h&#039; for help&#039;&#039;&#039; message, press h and Enter to get help about available commands.&lt;br /&gt;
&lt;br /&gt;
To be able to remote connect to your VLC using a TCP socket (telnet-like connexion), use &#039;&#039;&#039;--rc-host your_host:port&#039;&#039;&#039;. Then, by connecting (using telnet or netcat) to the host on the given port, you will get the command shell.&lt;br /&gt;
&lt;br /&gt;
To use a UNIX socket (local socket, this does not work for Windows), use &#039;&#039;&#039;--rc-unix /path/to/socket&#039;&#039;&#039;. Commands can then be passed using this UNIX socket.&lt;br /&gt;
&lt;br /&gt;
The RTCI interface gives you more advanced options, such as marquee control for the marquee subpicture filter (See filter section).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Ncurses===&lt;br /&gt;
&lt;br /&gt;
This is a text interface, using ncurses library.&lt;br /&gt;
&lt;br /&gt;
Start VLC with &#039;&#039;&#039;-I ncurses&#039;&#039;&#039; or &#039;&#039;&#039;--extraintf ncurses&#039;&#039;&#039;. You will then get something like that:&lt;br /&gt;
&lt;br /&gt;
http://www.videolan.org/doc/play-howto/en/images/play-howto/intf-ncurses-playlist.jpg The ncurses interface&lt;br /&gt;
&lt;br /&gt;
Press h to get the list of all available commands, with a short description.&lt;br /&gt;
&lt;br /&gt;
There is also a filebrowser available for the ncurses interface in order to add playlist items. Press &#039;B&#039; to use it.&lt;br /&gt;
&lt;br /&gt;
http://www.videolan.org/doc/play-howto/en/images/play-howto/intf-ncurses-filebrowser.jpg The ncurses filebrowser&lt;br /&gt;
&lt;br /&gt;
You can set the filebrowser starting point by launching vlc with the &#039;&#039;&#039;--browse-dir&#039;&#039;&#039; option:&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc -I ncurses --browse-dir /filebrowser/starting/point/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Gestures===&lt;br /&gt;
&lt;br /&gt;
Gestures provide a simple mouse gestures control. TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==The Mozilla plugin==&lt;br /&gt;
&lt;br /&gt;
VLC can also be embedded in a web browser! The following browsers are supported [http://www.mozilla.org/ Mozilla], [http://www.mozilla.org/products/firefox/ Firefox] and [http://www.apple.com/macosx/features/safari Safari].&lt;br /&gt;
&lt;br /&gt;
===Install the plugin===&lt;br /&gt;
&lt;br /&gt;
====GNU/Linux Debian====&lt;br /&gt;
&lt;br /&gt;
Install the &#039;&#039;mozilla-plugin-vlc&#039;&#039; package:&lt;br /&gt;
&lt;br /&gt;
 # &#039;&#039;&#039;apt-get update&#039;&#039;&#039;&lt;br /&gt;
 # &#039;&#039;&#039;apt-get install mozilla-plugin-vlc&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
&lt;br /&gt;
Quit Firefox or Mozilla.&lt;br /&gt;
&lt;br /&gt;
Copy the two files in &#039;&#039;&#039;VLC_Installation_folder\mozilla&#039;&#039;&#039; (usually &#039;&#039;&#039;C:\Program Files\VideoLAN\VLC\mozilla&#039;&#039;&#039;) to your mozilla plugins directory (Usually &#039;&#039;&#039;C:\Program Files\Mozilla\plugins&#039;&#039;&#039; or &#039;&#039;&#039;C:\Program Files\Mozilla&lt;br /&gt;
Firefox\plugins&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Restart Firefox or Mozilla.&lt;br /&gt;
&lt;br /&gt;
====MacOS X====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The Mozilla/Safari plugin for MacOS X is only available from vlc version 0.8.5.1 and onwards.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Quit Safari browser.&lt;br /&gt;
&lt;br /&gt;
Download the Mozilla/safari plugin package from [http://www.videolan.org/vlc/download-macosx.html MacOS X download page].&lt;br /&gt;
&lt;br /&gt;
Run the installer from the dmg image.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Compile the sources yourself====&lt;br /&gt;
&lt;br /&gt;
Please look at the [http://developers.videolan.org developers page] for information on how to do this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Use the plugin===&lt;br /&gt;
&lt;br /&gt;
If you open a link to a video file handled by the VLC plugin (To get the list of handled types, browse to &#039;&#039;&#039;about:plugins&#039;&#039;&#039;) or a page with an embedded video, the plugin should open and read the&lt;br /&gt;
video.&lt;br /&gt;
&lt;br /&gt;
===Build HTML pages that use the plugin (VLC version up to 0.8.5)===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING:&#039;&#039;&#039; the APIs described in this section are &#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, &lt;br /&gt;
&lt;br /&gt;
The following API description is only valid uptill version 0.8.5 of the mozilla plugin.&lt;br /&gt;
&lt;br /&gt;
Additionally to viewing video on all pages, you can build custom pages that will use the advanced features of the plugin, using Javascript functions to control playback or extract information from the&lt;br /&gt;
plugin.&lt;br /&gt;
&lt;br /&gt;
The vlc plugin supports the following function calls:&lt;br /&gt;
*&#039;&#039;&#039;play()&#039;&#039;&#039;: Start playing media in the plugin.&lt;br /&gt;
*&#039;&#039;&#039;pause()&#039;&#039;&#039;: Pause playback.&lt;br /&gt;
*&#039;&#039;&#039;stop()&#039;&#039;&#039;: Stop media playback.&lt;br /&gt;
*&#039;&#039;&#039;fullscreen()&#039;&#039;&#039;: Switch the video to full screen.&lt;br /&gt;
*&#039;&#039;&#039;set_volume(vol)&#039;&#039;&#039;: Set the volume. &#039;&#039;&#039;vol&#039;&#039;&#039; has to be an int in the 0-200 range.&lt;br /&gt;
*&#039;&#039;&#039;get_volume()&#039;&#039;&#039;: Get the current volume setting.&lt;br /&gt;
*&#039;&#039;&#039;mute()&#039;&#039;&#039;: Toggle volume muting.&lt;br /&gt;
*&#039;&#039;&#039;set_int_variable(var_name, value)&#039;&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;set_bool_variable(var_name, value)&#039;&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;set_str_variable(var_name, value)&#039;&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;get_int_variable(var_name)&#039;&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;get_bool_variable(var_name)&#039;&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;get_str_variable(var_name)&#039;&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;clear_playlist()&#039;&#039;&#039;: Clear the playlist.&lt;br /&gt;
*&#039;&#039;&#039;add_item(mrl)&#039;&#039;&#039;: Append an item whose location is given by the [[media resource locator]] to the playlist.&lt;br /&gt;
*&#039;&#039;&#039;next()&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;previous()&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;isplaying()&#039;&#039;&#039;: return true if the plugin is playing something.&lt;br /&gt;
*&#039;&#039;&#039;get_length()&#039;&#039;&#039;: Get the media&#039;s length in seconds.&lt;br /&gt;
*&#039;&#039;&#039;get_position()&#039;&#039;&#039;: Get the current position in the media in percent.&lt;br /&gt;
*&#039;&#039;&#039;get_time()&#039;&#039;&#039;: Get the current position in the media in seconds.&lt;br /&gt;
*&#039;&#039;&#039;seek(seconds,is_relative)&#039;&#039;&#039;: If is_relative is true, seek relatively to current time, else seek from beginning of the stream. Seek time is specified in seconds.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here are a few examples of HTML pages that use the&lt;br /&gt;
Mozilla plugin.&lt;br /&gt;
&lt;br /&gt;
====Example 1====&lt;br /&gt;
&lt;br /&gt;
In this example, the plugin will read an HTTP stream inside the web page. If the user goes fullscreen, he will have to press &#039;&#039;f&#039;&#039; or double-click on the video to go back in normal view.&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;html&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;head&amp;amp;gt;&amp;amp;lt;title&amp;amp;gt;Demo of VLC mozilla plugin&amp;amp;lt;/title&amp;amp;gt;&amp;amp;lt;/head&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;body&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;h1&amp;amp;gt;Demo of VLC mozilla plugin - Example 1&amp;amp;lt;/h1&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot;&lt;br /&gt;
          name=&amp;quot;video1&amp;quot;&lt;br /&gt;
          autoplay=&amp;quot;no&amp;quot; loop=&amp;quot;yes&amp;quot; width=&amp;quot;400&amp;quot; height=&amp;quot;300&amp;quot;&lt;br /&gt;
          target=&amp;quot;http://server.example.org/video1.vob&amp;quot; /&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
   &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video1.play()&#039;&amp;amp;gt;Play video1&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
   &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video1.pause()&#039;&amp;amp;gt;Pause video1&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
   &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video1.stop()&#039;&amp;amp;gt;Stop video1&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
   &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video1.fullscreen()&#039;&amp;amp;gt;Fullscreen&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;/body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/html&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Example 2====&lt;br /&gt;
&lt;br /&gt;
In this example, the plugin will read a multicast UDP stream in a dedicated video output window.&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;html&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;head&amp;amp;gt;&amp;amp;lt;title&amp;amp;gt;Demo of VLC mozilla plugin&amp;amp;lt;/title&amp;amp;gt;&amp;amp;lt;/head&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;body&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;h1&amp;amp;gt;Demo of VLC mozilla plugin - Example 2&amp;amp;lt;/h1&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot;&lt;br /&gt;
          name=&amp;quot;video2&amp;quot;&lt;br /&gt;
          autoplay=&amp;quot;no&amp;quot; loop=&amp;quot;no&amp;quot; hidden=&amp;quot;yes&amp;quot;&lt;br /&gt;
          target=&amp;quot;udp:@239.255.12.42&amp;quot; /&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
   &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video2.play()&#039;&amp;amp;gt;Play video2&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
   &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video2.stop()&#039;&amp;amp;gt;Stop video2&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
   &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video2.fullscreen()&#039;&amp;amp;gt;Fullscreen&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;/body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/html&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Build HTML pages that use the plugin (VLC version 0.8.6 and above)===&lt;br /&gt;
&lt;br /&gt;
Additionally to viewing video on all pages, you can build custom pages that will use the advanced features of the plugin, using Javascript functions to control playback or extract information from the&lt;br /&gt;
plugin.&lt;br /&gt;
&lt;br /&gt;
The vlc plugin exports serveral objects that can be accessed for setting and getting information. When used improperly the API&#039;s will throw an exception that includes a string that explains what happened. For example when asking for vlc.input.length when there is no playlist item playing.&lt;br /&gt;
&lt;br /&gt;
The vlc plugin knows the following objects:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;audio&#039;&#039;&#039;: Access audio properties.&lt;br /&gt;
*&#039;&#039;&#039;input&#039;&#039;&#039;: Access input properties.&lt;br /&gt;
*&#039;&#039;&#039;playlist&#039;&#039;&#039;: Access playlist properties.&lt;br /&gt;
*&#039;&#039;&#039;video&#039;&#039;&#039;: Access video properties.&lt;br /&gt;
*&#039;&#039;&#039;log&#039;&#039;&#039;: Access log properties.&lt;br /&gt;
*&#039;&#039;&#039;messages&#039;&#039;&#039;: Access to log message properties.&lt;br /&gt;
*&#039;&#039;&#039;iterator&#039;&#039;&#039;: Access to log iterator properties.&lt;br /&gt;
&lt;br /&gt;
The following JavaScript code shows howto get a reference to the vlc plugin. This reference can then be used to access the objects of the vlc plugin.&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;html&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;title&amp;amp;gt;VLC Mozilla plugin test page&amp;amp;lt;/title&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot; pluginspage=&amp;quot;http://www.videolan.org&amp;quot; version=&amp;quot;VideoLAN.VLCPlugin.2&amp;quot;&lt;br /&gt;
     width=&amp;quot;640&amp;quot;&lt;br /&gt;
     height=&amp;quot;480&amp;quot;&lt;br /&gt;
     id=&amp;quot;vlc&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/embed&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;script language=&amp;quot;Javascript&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!--&lt;br /&gt;
 var vlc = document.getElementById(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
 vlc.audio.toggleMute();&lt;br /&gt;
 !--&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/script&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/html&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Root object====&lt;br /&gt;
&lt;br /&gt;
readonly properties&lt;br /&gt;
*&#039;&#039;&#039;VersionInfo&#039;&#039;&#039;: returns version information string&lt;br /&gt;
&lt;br /&gt;
read/write properties&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods&lt;br /&gt;
*&#039;&#039;&#039;vlc.versionInfo()&#039;&#039;&#039;: returns version information string (same as VersionInfo)&lt;br /&gt;
&lt;br /&gt;
====Audio object====&lt;br /&gt;
&lt;br /&gt;
readonly properties&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.mute&#039;&#039;&#039;: boolean value to mute and ummute the audio&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.volume&#039;&#039;&#039;: a value between [0-200] which indicates a percentage of the volume.&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.track&#039;&#039;&#039;: (supported in vlc version &amp;gt; 0.8.6) a value between [1-65535] which indicates the audio track to play or that is playing. a value of 0 means the audio is/will be disabled.&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.channel&#039;&#039;&#039;: (supported in vlc version &amp;gt; 0.8.6) integer value between [1-5] that indicates which audio channel mode is used, values can be: &amp;quot;1=stereo&amp;quot;, &amp;quot;2=reverse stereo&amp;quot;, &amp;quot;3=left&amp;quot;, &amp;quot;4=right&amp;quot;, &amp;quot;5=dolby&amp;quot;. Use vlc.audio.channel to check if setting of the audio channel mode has succeeded.&lt;br /&gt;
&lt;br /&gt;
 Audio Channel:&lt;br /&gt;
 &amp;lt;SELECT readonly onChange=&#039;doAudioChannel(this.value)&#039;&amp;gt;&lt;br /&gt;
    &amp;lt;OPTION value=1&amp;gt;Stereo&amp;lt;/OPTION&amp;gt;&lt;br /&gt;
    &amp;lt;OPTION value=2&amp;gt;Reverse stereo&amp;lt;/OPTION&amp;gt;&lt;br /&gt;
    &amp;lt;OPTION value=3&amp;gt;Left&amp;lt;/OPTION&amp;gt;&lt;br /&gt;
    &amp;lt;OPTION value=4&amp;gt;Right&amp;lt;/OPTION&amp;gt;&lt;br /&gt;
    &amp;lt;OPTION value=5&amp;gt;Dolby&amp;lt;/OPTION&amp;gt;&lt;br /&gt;
 &amp;lt;/SELECT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;SCRIPT language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;amp;lt;!--&lt;br /&gt;
 function doAudioChannel(value)&lt;br /&gt;
 {&lt;br /&gt;
    var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
    vlc.audio.channel = parseInt(value);&lt;br /&gt;
    alert(vlc.audio.channel);&lt;br /&gt;
 };&lt;br /&gt;
 --&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
methods&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.toggleMute()&#039;&#039;&#039;: boolean toggle that mutes and unmutes the audio based upon the previous state&lt;br /&gt;
&lt;br /&gt;
====Input object====&lt;br /&gt;
&lt;br /&gt;
readonly properties&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.length&#039;&#039;&#039;: length of the input file in number of milliseconds. 0 is returned for &#039;live&#039; streams or clips whose length cannot be determined by VLC&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.fps&#039;&#039;&#039;: frames per second returned as a float (typically 60.0, 50.0, 23.976, etc...)&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.hasVout&#039;&#039;&#039;: a boolean that returns true when the video is being displayed, it returns false when video is not displayed&lt;br /&gt;
&lt;br /&gt;
read/write properties&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.position&#039;&#039;&#039;: normalized position in multimedia stream item given as a float value between [0.0 - 1.0]&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.time&#039;&#039;&#039;: the absolute position in time given in milliseconds, this property can be used to seek through the stream&lt;br /&gt;
 &amp;amp;lt;!-- absolute seek in stream !--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = &amp;amp;lt;absolute seek&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!-- relative seek in stream !--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = vlc.input.time + &amp;amp;lt;relative seek&amp;amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.state&#039;&#039;&#039;: current state of the input chain given as enumeration (IDLE/CLOSE=0, OPENING=1, BUFFERING=2, PLAYING=3, PAUSED=4, STOPPING=5, ERROR=6)&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.rate&#039;&#039;&#039;: input speed given as float (1.0 for normal speed, 0.5 for half speed, 2.0 for twice as fast, etc.)&lt;br /&gt;
&lt;br /&gt;
methods&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Playlist object====&lt;br /&gt;
&lt;br /&gt;
readonly properties&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.itemCount&#039;&#039;&#039;: number that returns the amount of items currently in the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[Playlist items]])&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.isPlaying&#039;&#039;&#039;: a boolean that returns true if the current playlist item is playing and false when it is not playing&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items&#039;&#039;&#039;: return the playlist items collection, see [[Playlist items object]]&lt;br /&gt;
&lt;br /&gt;
read/write properties&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl)&#039;&#039;&#039;: add a playlist item as [[MRL]]. The MRL must be given as a string. Returns a number as an item identifier in playlist (this is not a position  in playlist).&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl,name,options)&#039;&#039;&#039;: add a playlist item as MRL, with metaname &#039;name&#039; and options &#039;options&#039;. options are text arguments which can be provided either as a single string containing space separated values, akin to VLC command line, or as an array of string values. Returns a number as an item identifier in playlist (this is not a position in playlist).&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.play()&#039;&#039;&#039;: start playing the current playlist item&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.playItem(number)&#039;&#039;&#039;: start playing the item whose identifier is number&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.togglePause()&#039;&#039;&#039;: toggle the pause state for the current playlist item&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.stop()&#039;&#039;&#039;: stop playing the current playlist item&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.next()&#039;&#039;&#039;: iterate to the next playlist item&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.prev()&#039;&#039;&#039;: iterate to the previous playlist item&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[Playlist items]])&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.removeItem(number)&#039;&#039;&#039;: remove the item from playlist whose identifier is number (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() )&lt;br /&gt;
&lt;br /&gt;
====Playlist items object====&lt;br /&gt;
&lt;br /&gt;
readonly properties&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.count&#039;&#039;&#039;: number of items currently in the playlist&lt;br /&gt;
&lt;br /&gt;
read/write properties&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist. Note that when this method returns playlist may not have been entirely been cleared as this operation is performed asynchronously; use the &#039;&#039;count&#039;&#039; property to verify/wait until the playlist is empty.&lt;br /&gt;
&lt;br /&gt;
====Video object====&lt;br /&gt;
&lt;br /&gt;
readonly properties&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.width&#039;&#039;&#039;: returns the horizontal size of the video&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.height&#039;&#039;&#039;: returns the vertical size of the video&lt;br /&gt;
&lt;br /&gt;
read/write properties&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.fullscreen&#039;&#039;&#039;: when set to true the video will be displayed in fullscreen mode, when set to false the video will be shown inside the video output size. The property takes a boolean as input.&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.aspectRatio&#039;&#039;&#039;: get and set the aspect ratio to use in the video screen. The property takes a string as input value. Typical values are: &amp;quot;1:1&amp;quot;, &amp;quot;4:3&amp;quot;, &amp;quot;16:9&amp;quot;, &amp;quot;16:10&amp;quot;, &amp;quot;221:100&amp;quot; and &amp;quot;5:4&amp;quot;&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.subtitle&#039;&#039;&#039;; (supported in vlc version &amp;gt; 0.8.6a) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleFullscreen()&#039;&#039;&#039;: toggle the fullscreen mode based on the previous setting&lt;br /&gt;
&lt;br /&gt;
====Log object====&lt;br /&gt;
&lt;br /&gt;
this object allows accessing VLC main message logging queue. Typically this queue capacity is very small (no nore than 256 entries) and can easily overflow, therefore messages should be read and cleared as often as possible.&lt;br /&gt;
&lt;br /&gt;
readonly properties&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.messages&#039;&#039;&#039;: returns the message collection, see [[Messages object]]&lt;br /&gt;
&lt;br /&gt;
read/write properties&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.verbosity&#039;&#039;&#039;: write number [-1,0,1,2,3] for changing the verbosity level of the log messages; messages whose verbosity is higher than set will be not be logged in the queue. The numbers have the following meaning: -1 disable, 0 info, 1 error, 2 warning, 3 debug. &lt;br /&gt;
&lt;br /&gt;
methods&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Messages object====&lt;br /&gt;
&lt;br /&gt;
readonly properties&lt;br /&gt;
*&#039;&#039;&#039;messages.count&#039;&#039;&#039;: returns number of messages in the log&lt;br /&gt;
&lt;br /&gt;
read/write properties&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods&lt;br /&gt;
*&#039;&#039;&#039;messages.clear()&#039;&#039;&#039;: clear the current log buffer. It should be called as frequently as possible to not overflow the message queue. Call this method after the log messages of interest are read.&lt;br /&gt;
*&#039;&#039;&#039;messages.iterator()&#039;&#039;&#039;: creates and returns an iterator object, used to iterate over the messages in the log. &#039;&#039;&#039;Don&#039;t clear the log buffer while holding an iterator object.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Messages Iterator object====&lt;br /&gt;
&lt;br /&gt;
readonly properties&lt;br /&gt;
*&#039;&#039;&#039;iterator.hasNext&#039;&#039;&#039;: returns a boolean that indicates whether &#039;&#039;vlc.log.messages.next()&#039;&#039; will return the next message.&lt;br /&gt;
&lt;br /&gt;
read/write properties&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods&lt;br /&gt;
*&#039;&#039;&#039;iterator.next()&#039;&#039;&#039;: returns the next message object in the log, see [[Message object]]&lt;br /&gt;
&lt;br /&gt;
====Message object====&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;message.severity&#039;&#039;&#039;: number that indicates the severity of the log message (0 = info, 1 = error, 2 = warning, 3 = debug)&lt;br /&gt;
*&#039;&#039;&#039;message.name&#039;&#039;&#039;: name of VLC module that printed the log message (e.g: main, http, directx, etc...)&lt;br /&gt;
*&#039;&#039;&#039;message.type&#039;&#039;&#039;: type of VLC module that printed the log message (eg: input, access, vout, sout, etc...)&lt;br /&gt;
*&#039;&#039;&#039;message.message&#039;&#039;&#039;: the message text&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Documentation}}&lt;/div&gt;</summary>
		<author><name>Quovodis</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:Advanced_Use_of_VLC&amp;diff=7980</id>
		<title>Documentation:Advanced Use of VLC</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:Advanced_Use_of_VLC&amp;diff=7980"/>
		<updated>2007-03-13T19:14:23Z</updated>

		<summary type="html">&lt;p&gt;Quovodis: /* Playlist object */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Use the command line==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TODO: completely outdated&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
All standard operations of VLC should be available from the GUI. However, some complex operations can only be done from the command line and there are situations in which you don&#039;t need or want a GUI. Here is the complete description of VLC&#039;s command line and how to use it.&lt;br /&gt;
&lt;br /&gt;
You need to be quite comfortable with command line usage to use this.&lt;br /&gt;
&lt;br /&gt;
 Note: Windows users have to use the &#039;&#039;--option-name=&amp;quot;value&amp;quot;&#039;&#039; syntax instead of the &#039;&#039;--option-name value&#039;&#039; syntax.&lt;br /&gt;
&lt;br /&gt;
===Getting help===&lt;br /&gt;
&lt;br /&gt;
VLC uses a modular structure. The core mainly manages communication between modules. All the multimedia processing is done by modules. There are input modules, demultiplexers, decoders, video output modules, ...&lt;br /&gt;
&lt;br /&gt;
This chapter will only describe the &amp;quot;general&amp;quot; options, i.e. the core options. Each module adds new options. For example, the HTTP input module will add options for caching, proxy, authentication, ...&lt;br /&gt;
&lt;br /&gt;
By using &#039;&#039;&#039;vlc --help&#039;&#039;&#039;, you will get the basic core options. &#039;&#039;&#039;vlc --longhelp&#039;&#039;&#039; will give all the basic options (core + modules). Adding &#039;&#039;&#039;--advanced&#039;&#039;&#039; will give the &amp;quot;advanced options&amp;quot; (for advanced users). So &#039;&#039;&#039;vlc --longhelp --advanced&#039;&#039;&#039; will give you all options. You can also append &#039;&#039;&#039;--help-verbose&#039;&#039;&#039; if you want more detailed help.&lt;br /&gt;
&lt;br /&gt;
Also, you might want to get debug informations. To do this, use &#039;&#039;&#039;-v&#039;&#039;&#039; or &#039;&#039;&#039;-vv&#039;&#039;&#039; (this will show lower severity messages). If your console supports it, you can add &#039;&#039;&#039;--color to get messages in color.&lt;br /&gt;
&lt;br /&gt;
===Opening streams===&lt;br /&gt;
&lt;br /&gt;
The following commands start VLC and start reading the given element(s)&lt;br /&gt;
&lt;br /&gt;
====Opening a file====&lt;br /&gt;
&lt;br /&gt;
Start VLC with:&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc my_file&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
VLC should be able to recognize the file type. If it does not, you can force demultiplexer and decoder (see below).&lt;br /&gt;
&lt;br /&gt;
A list of all video and audio codecs supported by VLC is available on the [http://www.videolan.org/vlc/features.html VLC features list].&lt;br /&gt;
&lt;br /&gt;
====Opening a DVD or VCD, or an audio CD====&lt;br /&gt;
&lt;br /&gt;
Start VLC with:&lt;br /&gt;
&lt;br /&gt;
For a DVD with menus:&lt;br /&gt;
 % &#039;&#039;&#039;vlc dvd://[device][@raw_device][@[title][:[chapter][:angle]]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In most cases, &#039;&#039;&#039;vlc dvd://&#039;&#039;&#039; or &#039;&#039;&#039;vlc dvd://[device]&#039;&#039;&#039; will do. [device] is for example &#039;&#039;&#039;/dev/dvd&#039;&#039;&#039; on GNU/Linux or &#039;&#039;&#039;D:&#039;&#039;&#039; on Windows (complete path to your DVD drive).&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
(DVD without menus):&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc dvdsimple://[device][@raw_device][@[title][:[chapter][:angle]]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
(VCD):&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc vcd://[device][@{E|P|E|T|S}[number]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
(Audio CD):&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc cdda://[device][@[track]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Receiving a network stream====&lt;br /&gt;
&lt;br /&gt;
To receive an unicast UDP stream (sent by VLS or VLC&#039;s stream output), start VLC with:&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc  udp:[@:server_port]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you use the default port (1234), &#039;&#039;&#039;vlc udp:&#039;&#039;&#039; will do. For more information, look at the Streaming Howto.&lt;br /&gt;
&lt;br /&gt;
To receive an multicast UDP stream (sent by VLS or VLC&#039;s stream output), start VLC with:&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc udp:@multicast_address[:server_port]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To receive a SSM (source specific multicast) stream, you can use:&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc udp:server_address@multicast_address[:server_port]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This only works on OSs that support SSM (Windows XP and recent Linux kernels).&lt;br /&gt;
&lt;br /&gt;
To receive a HTTP stream, start VLC with:&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc http://www.example.org/your_file.mpg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To receive a RTSP stream, start VLC with:&amp;lt;/para&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc rtsp://www.example.org/your_stream&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Modules selection===&lt;br /&gt;
&lt;br /&gt;
VLC always try to select the most appropriate interface, input and output modules, among the ones available on the system, according to the stream it is given to read. However, you may wish to force the use of a specific module with the following options.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--intf  &amp;lt;module&amp;gt;&#039;&#039;&#039; allows you to select the interface module.&lt;br /&gt;
*&#039;&#039;&#039;--extraintf  &amp;lt;module&amp;gt;&#039;&#039;&#039; allows you to select extra interface modules that will be launched in addition to the main one. This is mainly useful for special &#039;&#039;control&#039;&#039; interfaces, like HTTP, RC (Remote Control), ... (see below)&lt;br /&gt;
*&#039;&#039;&#039;--aout  &amp;lt;module&amp;gt;&#039;&#039;&#039; allows you to select the audio output module.&lt;br /&gt;
*&#039;&#039;&#039;--vout  &amp;lt;module&amp;gt;&#039;&#039;&#039; allows you to select the video output module.&lt;br /&gt;
*&#039;&#039;&#039;--memcpy  &amp;lt;module&amp;gt;&#039;&#039;&#039; allows you to choose a memory copy module. You should probably never touch that.&lt;br /&gt;
&lt;br /&gt;
You can get a listing of the available modules by using &#039;&#039;&#039;vlc -l&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Stream Output===&lt;br /&gt;
&lt;br /&gt;
The Stream output system allows vlc to become a streaming server.&lt;br /&gt;
&lt;br /&gt;
For more details on the stream output system, please have a look at the [[Documentation:Streaming HowTo|Streaming HowTo]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Other Options===&lt;br /&gt;
&lt;br /&gt;
====Audio options====&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--noaudio&#039;&#039;&#039; disables audio output.&lt;br /&gt;
*&#039;&#039;&#039;--mono&#039;&#039;&#039; forces VLC to treat the stream in mono audio.&lt;br /&gt;
*&#039;&#039;&#039;--volume &amp;lt;integer&amp;gt;&#039;&#039;&#039; sets the level of audio output (between 0 and 1024).&lt;br /&gt;
*&#039;&#039;&#039;--aout-rate &amp;lt;integer&amp;gt;&#039;&#039;&#039; sets the audio output frequency (Hz). By default, VLC will try to autodetect this.&lt;br /&gt;
*&#039;&#039;&#039;--desync &amp;lt;integer&amp;gt;&#039;&#039;&#039; compensates desynchronization of audio (ms). (If audio and video streams are not synchronized, use this setting to delay the audio stream)&lt;br /&gt;
*&#039;&#039;&#039;--audio-filter &amp;lt;string&amp;gt;&#039;&#039;&#039; adds audio filters to the processing chain. Available filters are visual (visualizer with spectrum analyzer and oscilloscope), headphone (virtual headphone  patialization) and normalizer (volume normalizer)&lt;br /&gt;
&lt;br /&gt;
====Video options====&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--novideo&#039;&#039;&#039; disables video output.&lt;br /&gt;
*&#039;&#039;&#039;--greyscale&#039;&#039;&#039; turns video output into grayscale mode.&lt;br /&gt;
*&#039;&#039;&#039;--fullscreen&#039;&#039;&#039; ( or &#039;&#039;&#039;-f&#039;&#039;&#039;) sets fullscreen video.&lt;br /&gt;
*&#039;&#039;&#039;--nooverlay&#039;&#039;&#039; disables hardware acceleration for the video output.&lt;br /&gt;
*&#039;&#039;&#039;--width, --height &amp;lt;integer&amp;gt;&#039;&#039;&#039; sets the video window dimensions. By default, the video window size will be adjusted to match the video dimensions.&lt;br /&gt;
*&#039;&#039;&#039;--zoom &amp;lt;float&amp;gt;&#039;&#039;&#039; adds a zoom factor.&lt;br /&gt;
*&#039;&#039;&#039;--aspect-ratio &amp;lt;mode&amp;gt;&#039;&#039;&#039; forces source aspect ratio. Modes are 4x3, 16x9, ...&lt;br /&gt;
*&#039;&#039;&#039;--spumargin  &amp;lt;integer&amp;gt;&#039;&#039;&#039; forces SPU subtitles postion.&lt;br /&gt;
*&#039;&#039;&#039;--filter &amp;lt;string&amp;gt;&#039;&#039;&#039; adds video filters to the processing chain. You can add several filters, separated by commas&lt;br /&gt;
*&#039;&#039;&#039;--sub-filter &amp;lt;string&amp;gt;&#039;&#039;&#039; adds video subpictures filter to the processing chain.&lt;br /&gt;
&lt;br /&gt;
====Playlist options====&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--random&#039;&#039;&#039; plays files randomly forever.&lt;br /&gt;
*&#039;&#039;&#039;--loop&#039;&#039;&#039; loops playlist on end.&lt;br /&gt;
*&#039;&#039;&#039;--repeat&#039;&#039;&#039; repeats current item until another item is forced&lt;br /&gt;
*&#039;&#039;&#039;--play-and-stop&#039;&#039;&#039; stops the playlist after each played item.&lt;br /&gt;
&lt;br /&gt;
====Network options====&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--server-port &amp;lt;integer&amp;gt;&#039;&#039;&#039; sets server port.&lt;br /&gt;
*&#039;&#039;&#039;--iface  &amp;lt;string&amp;gt;&#039;&#039;&#039; specifies the network interface to use.&lt;br /&gt;
*&#039;&#039;&#039;--iface-addr  &amp;lt;string&amp;gt;&#039;&#039;&#039; specifies your network interface IP address.&lt;br /&gt;
*&#039;&#039;&#039;--mtu  &amp;lt;integer&amp;gt;&#039;&#039;&#039; specifies the MTU of the network interface.&lt;br /&gt;
*&#039;&#039;&#039;--ipv6&#039;&#039;&#039; forces IPv6.&lt;br /&gt;
*&#039;&#039;&#039;--ipv4&#039;&#039;&#039; forces IPv4.&lt;br /&gt;
&lt;br /&gt;
====CPU options====&lt;br /&gt;
&lt;br /&gt;
You should probably not touch these options unless you know what you are doing.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--nommx&#039;&#039;&#039; disables the use of MMX CPU extensions.&lt;br /&gt;
*&#039;&#039;&#039;--no3dn&#039;&#039;&#039; disables the use of 3D Now! CPU extensions.&lt;br /&gt;
*&#039;&#039;&#039;--nommxext&#039;&#039;&#039; disables the use of MMX Ext CPU extensions.&lt;br /&gt;
*&#039;&#039;&#039;--nosse&#039;&#039;&#039; disables the use of SSE CPU extensions.&lt;br /&gt;
*&#039;&#039;&#039;--noaltivec&#039;&#039;&#039; disables the use of Altivec CPU extensions.&lt;br /&gt;
&lt;br /&gt;
====Miscellaneous options====&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--quiet&#039;&#039;&#039;  deactivates all console messages.&lt;br /&gt;
*&#039;&#039;&#039;--color&#039;&#039;&#039; displays color messages.&lt;br /&gt;
*&#039;&#039;&#039;--search-path  &amp;lt;string&amp;gt;&#039;&#039;&#039; specifies interface default search path.&lt;br /&gt;
*&#039;&#039;&#039;--plugin-path  &amp;lt;string&amp;gt;&#039;&#039;&#039; specifies plugin search path.&lt;br /&gt;
*&#039;&#039;&#039;--no-plugins-cache&#039;&#039;&#039; disables the plugin cache (plugins cache speeds up startup)&lt;br /&gt;
*&#039;&#039;&#039;--dvd  &amp;lt;string&amp;gt;&#039;&#039;&#039; specifies the default DVD device.&lt;br /&gt;
*&#039;&#039;&#039;--vcd  &amp;lt;string&amp;gt;&#039;&#039;&#039; specifies the default VCD device.&lt;br /&gt;
*&#039;&#039;&#039;--program  &amp;lt;integer&amp;gt;&#039;&#039;&#039; specifies program (SID) (for streams with several programs, like satellite ones).&lt;br /&gt;
*&#039;&#039;&#039;--audio-type  &amp;lt;integer&amp;gt;&#039;&#039;&#039; specifies the default audio type to use with dvds.&lt;br /&gt;
*&#039;&#039;&#039;--audio-channel  &amp;lt;integer&amp;gt;&#039;&#039;&#039; specifies the default audio channel to use with dvds.&lt;br /&gt;
*&#039;&#039;&#039;--spu-channel  &amp;lt;integer&amp;gt;&#039;&#039;&#039; specifies the default subtitle channel to use with dvds.&lt;br /&gt;
*&#039;&#039;&#039;--version&#039;&#039;&#039; gives you information about the current VLC version.&lt;br /&gt;
*&#039;&#039;&#039;--module  &amp;lt;module&amp;gt; &#039;&#039;&#039; displays help about specified module. (Shortcut: &#039;&#039;&#039;-p&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Item-specific options===&lt;br /&gt;
&lt;br /&gt;
There are many options that are related to items (like &#039;&#039;&#039;--novideo&#039;&#039;&#039;, &#039;&#039;&#039;--codec&#039;&#039;&#039;, &#039;&#039;&#039;--fullscreen&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
For all of these, you have the possibility to make them item-specific, using &amp;quot;:&amp;quot; instead of &amp;quot;--&amp;quot; and putting the option just after the concerned item.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc file1.mpg :fullscreen file2.mpg&#039;&#039;&#039;&lt;br /&gt;
will play file1.mpg in fullscreen mode and file2.mpg in the default mode (which is generally no fullscreen), whereas&lt;br /&gt;
 % &#039;&#039;&#039;vlc --fullscreen file1.mpg file2.mpg&#039;&#039;&#039;&lt;br /&gt;
will play both files in fullscreen mode&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc --fullscreen file1.mpg :sub-file=file1.srt :no-fullscreen file2.mpg :filter=distort&#039;&#039;&#039;&lt;br /&gt;
will play file1.mpg in windowed (no-fullscreen) mode with the subtitles file file1.srt and will play file2.mpg with video filter distort enabled in fullscreen mode (item-specific options override global options)&lt;br /&gt;
&lt;br /&gt;
==Advanced use of filters==&lt;br /&gt;
&lt;br /&gt;
===Filters===&lt;br /&gt;
&lt;br /&gt;
These are the old style VLC filters. They only apply to on screen display and thus cannot be streamed.&lt;br /&gt;
&lt;br /&gt;
====Deinterlacing video filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;deinterlace&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--deinterlace-mode {discard,blend,mean,bob,linear}&#039;&#039;&#039; choose a deinterlacing mode.&lt;br /&gt;
&lt;br /&gt;
====Invert video filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;invert&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Image properties filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;adjust&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--contrast &amp;lt;float&amp;gt;&#039;&#039;&#039; Image contrast in the 0-2 range.&lt;br /&gt;
*&#039;&#039;&#039;--brightness &amp;lt;float&amp;gt;&#039;&#039;&#039; Image brightness in the 0-2 range.&lt;br /&gt;
*&#039;&#039;&#039;--hue &amp;lt;integer&amp;gt;&#039;&#039;&#039; Image hue in the 0-360 range.&lt;br /&gt;
*&#039;&#039;&#039;--saturation &amp;lt;float&amp;gt;&#039;&#039;&#039; Image saturation in the 0-3 range.&lt;br /&gt;
*&#039;&#039;&#039;-gamma &amp;lt;float&amp;gt;&#039;&#039;&#039; Image gamma in the 0-10 range.&lt;br /&gt;
&lt;br /&gt;
====Wall video filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;wall&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This filter splits the output in several windows.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--wall-cols &amp;lt;integer&amp;gt;&#039;&#039;&#039; Number of columns.&lt;br /&gt;
*&#039;&#039;&#039;--wall-rows &amp;lt;integer&amp;gt;&#039;&#039;&#039; Number of rows.&lt;br /&gt;
*&#039;&#039;&#039;--wall-active &amp;lt;string&amp;gt;&#039;&#039;&#039; Select the windows you want to display. To select windows 2 and 4 you would write &#039;&#039;&#039;--wall-active 2,4&#039;&#039;&#039;. When this option isn&#039;t specified, all windows are displayed.&lt;br /&gt;
&lt;br /&gt;
====Video transformation filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;transform&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--transform-type {90,180,270,hflip,vflip}&#039;&#039;&#039; Select rotation angle or symmetry.&lt;br /&gt;
&lt;br /&gt;
====Distort video filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;distort&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Clone video filter====&lt;br /&gt;
&lt;br /&gt;
This filter clones the output window.&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;clone&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--clone-count &amp;lt;integer&amp;gt;&#039;&#039;&#039; Number of clones.&lt;br /&gt;
*&#039;&#039;&#039;--clone-vout-list &amp;lt;string&amp;gt;&#039;&#039;&#039; Comma separated string of video output modules.&lt;br /&gt;
&lt;br /&gt;
====Crop video filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;crop&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--crop-geometry &amp;lt;string&amp;gt;&#039;&#039;&#039; Set the geometry of the zone to crop. This is set as &amp;lt;width&amp;gt; x &amp;lt;height&amp;gt; + &amp;lt;left offset&amp;gt; + &amp;lt;top offset&amp;gt;.&lt;br /&gt;
*&#039;&#039;&#039;--autocrop&#039;&#039;&#039; Enable automatic black border cropping.&lt;br /&gt;
&lt;br /&gt;
====Motion blur filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;motionblur&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;blur-factor &amp;lt;integer&amp;gt;&#039;&#039;&#039; Blur factor in the 1-127 range.&lt;br /&gt;
&lt;br /&gt;
====Video pictures blending====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;blend&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Video scaling filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;scale&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Subpictures Filters===&lt;br /&gt;
&lt;br /&gt;
These are the new VLC filters. They can be streamed.&lt;br /&gt;
&lt;br /&gt;
====Time display sub filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--time-format &amp;lt;string&amp;gt;&#039;&#039;&#039; Time format string. You can use the following special characters %Y = year, %m = month, %d = day, %H = hour, %M = minute, %S = second.&lt;br /&gt;
*&#039;&#039;&#039;--time-x &amp;lt;integer&amp;gt;&#039;&#039;&#039; X offset from the left in pixels.&lt;br /&gt;
*&#039;&#039;&#039;--time-y &amp;lt;integer&amp;gt;&#039;&#039;&#039; Y offset from the top in pixels.&lt;br /&gt;
&lt;br /&gt;
====Marquee display sub filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;marq&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--marq-marquee &amp;lt;string&amp;gt;&#039;&#039;&#039; Marquee text to display.&lt;br /&gt;
*&#039;&#039;&#039;--marq-x &amp;lt;integer&amp;gt;&#039;&#039;&#039; X offset from the left in pixels.&lt;br /&gt;
*&#039;&#039;&#039;--marq-y &amp;lt;integer&amp;gt;&#039;&#039;&#039; Y offset from the top in pixels.&lt;br /&gt;
*&#039;&#039;&#039;--marq-timeout &amp;lt;timeout&amp;gt;&#039;&#039;&#039; Defines the time the marquee must remain displayed in milliseconds. Default value is 0 (remain forever).&lt;br /&gt;
&lt;br /&gt;
====Logo video filter====&lt;br /&gt;
&lt;br /&gt;
Module name: &#039;&#039;&#039;logo&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This filter can be used both as an old style filter or a subpictures filter.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;--logo-file &amp;lt;string&amp;gt;&#039;&#039;&#039; Full path of the PNG file to use.&lt;br /&gt;
*&#039;&#039;&#039;--logo-x &amp;lt;integer&amp;gt;&#039;&#039;&#039; X offset from the left in pixels.&lt;br /&gt;
*&#039;&#039;&#039;--logo-y &amp;lt;integer&amp;gt;&#039;&#039;&#039; Y offset from the top in pixels.&lt;br /&gt;
*&#039;&#039;&#039;--logo-transparency &amp;lt;integer&amp;gt;&#039;&#039;&#039; You can set the logo transparency value here (from 0 for full transparency to 255 for full opacity).&lt;br /&gt;
&lt;br /&gt;
Note: You can move the logo by left-clicking on it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==The HTTP interface==&lt;br /&gt;
&lt;br /&gt;
VLC ships with a little HTTP server integrated. It is used both to stream using HTTP, and for the HTTP remote control interface.&lt;br /&gt;
&lt;br /&gt;
To start VLC with the HTTP interface, use:&lt;br /&gt;
 % &#039;&#039;&#039;vlc -I http [--http-src /directory/] [--http-host host:port]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you want to have both the &amp;quot;normal&amp;quot; interface and the HTTP interface, use &#039;&#039;&#039;vlc --extraintf http&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The HTTP interface will start listening at host:port (&amp;lt;all interfaces&amp;gt;:8080 if omitted), and will reproduce the structure of /directory at http://host:port/ ( vlc_source_path/share/http if omitted ).&lt;br /&gt;
&lt;br /&gt;
Use a browser to go to http://your_host_machine:port. You should be taken to the main page.&lt;br /&gt;
&lt;br /&gt;
VLC is shipped with a set of files that should be enough for generic needs. It is also possible to customize pages. See [[Documentation:Play_HowTo/Building_Pages_for_the_HTTP_Interface]].&lt;br /&gt;
&lt;br /&gt;
Available pages are:&lt;br /&gt;
* &#039;&#039;&#039;list was obsolete&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other control interfaces==&lt;br /&gt;
&lt;br /&gt;
VLC includes a number of so-called interfaces that are not really interfaces, but means of controlling VLC. Nevertheless, they are enabled by setting them as interface or extra interface, either in the Preferences, in General/Interface, or using &#039;&#039;&#039;-I&#039;&#039;&#039; or &#039;&#039;&#039;--extraintf&#039;&#039;&#039; on the command line.&lt;br /&gt;
&lt;br /&gt;
===Hotkeys===&lt;br /&gt;
&lt;br /&gt;
This module allows you to control VLC and playback via hotkeys. It is always enabled by default. You can use hotkeys in the video output window.&lt;br /&gt;
&lt;br /&gt;
Hotkeys can be hacked by:&lt;br /&gt;
 % &#039;&#039;&#039;vlc --key-&amp;lt;function&amp;gt; &amp;lt;code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Code is composed by modifiers keys (Alt, Shift, Ctrl, Meta,Command) separated by a dash (-) and terminated by a key (a...z, +, =, -, &#039;,&#039;, +, &amp;amp;lt;, &amp;amp;gt;, `, /, ;, &#039;, \, [, ], *, Left, Right, Up, Down, Space, Enter, F1...F12, Home, End, Menu, Esc, Page Up, Page Down, Tab, Backspace, Mouse Wheel Up and Mouse Wheel Down). Main controls are available from hotkeys, such as : fullscreen, play-pause, faster, slower, next, prev, stop, quit, vol-up, etc. (use the &#039;&#039;&#039;--longhelp&#039;&#039;&#039; option for full list of functions).&lt;br /&gt;
For example, for binding fullscreen to Ctrl-f, run:&lt;br /&gt;
 % &#039;&#039;&#039;vlc --key-fullscreen &#039;Ctrl-f&#039; &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===RC and RTCI===&lt;br /&gt;
&lt;br /&gt;
These two interfaces allow you to control VLC from a command shell (possibly using a remote connexion or a Unix socket).&lt;br /&gt;
&lt;br /&gt;
Start VLC with &#039;&#039;&#039;-I rc&#039;&#039;&#039; or &#039;&#039;&#039;--extraintf rc&#039;&#039;&#039;. When you get the &#039;&#039;&#039;Remote control interface initialized, `h&#039; for help&#039;&#039;&#039; message, press h and Enter to get help about available commands.&lt;br /&gt;
&lt;br /&gt;
To be able to remote connect to your VLC using a TCP socket (telnet-like connexion), use &#039;&#039;&#039;--rc-host your_host:port&#039;&#039;&#039;. Then, by connecting (using telnet or netcat) to the host on the given port, you will get the command shell.&lt;br /&gt;
&lt;br /&gt;
To use a UNIX socket (local socket, this does not work for Windows), use &#039;&#039;&#039;--rc-unix /path/to/socket&#039;&#039;&#039;. Commands can then be passed using this UNIX socket.&lt;br /&gt;
&lt;br /&gt;
The RTCI interface gives you more advanced options, such as marquee control for the marquee subpicture filter (See filter section).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Ncurses===&lt;br /&gt;
&lt;br /&gt;
This is a text interface, using ncurses library.&lt;br /&gt;
&lt;br /&gt;
Start VLC with &#039;&#039;&#039;-I ncurses&#039;&#039;&#039; or &#039;&#039;&#039;--extraintf ncurses&#039;&#039;&#039;. You will then get something like that:&lt;br /&gt;
&lt;br /&gt;
http://www.videolan.org/doc/play-howto/en/images/play-howto/intf-ncurses-playlist.jpg The ncurses interface&lt;br /&gt;
&lt;br /&gt;
Press h to get the list of all available commands, with a short description.&lt;br /&gt;
&lt;br /&gt;
There is also a filebrowser available for the ncurses interface in order to add playlist items. Press &#039;B&#039; to use it.&lt;br /&gt;
&lt;br /&gt;
http://www.videolan.org/doc/play-howto/en/images/play-howto/intf-ncurses-filebrowser.jpg The ncurses filebrowser&lt;br /&gt;
&lt;br /&gt;
You can set the filebrowser starting point by launching vlc with the &#039;&#039;&#039;--browse-dir&#039;&#039;&#039; option:&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc -I ncurses --browse-dir /filebrowser/starting/point/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Gestures===&lt;br /&gt;
&lt;br /&gt;
Gestures provide a simple mouse gestures control. TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==The Mozilla plugin==&lt;br /&gt;
&lt;br /&gt;
===VLC can also be embedded in a web browser! The following browsers are supported [http://www.mozilla.org/ Mozilla], [http://www.mozilla.org/products/firefox/ Firefox] and [http://www.apple.com/macosx/features/safari Safari].&lt;br /&gt;
&lt;br /&gt;
===Install the plugin===&lt;br /&gt;
&lt;br /&gt;
====GNU/Linux Debian====&lt;br /&gt;
&lt;br /&gt;
Install the &#039;&#039;mozilla-plugin-vlc&#039;&#039; package:&lt;br /&gt;
&lt;br /&gt;
 # &#039;&#039;&#039;apt-get update&#039;&#039;&#039;&lt;br /&gt;
 # &#039;&#039;&#039;apt-get install mozilla-plugin-vlc&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Windows====&lt;br /&gt;
&lt;br /&gt;
Quit Firefox or Mozilla.&lt;br /&gt;
&lt;br /&gt;
Copy the two files in &#039;&#039;&#039;VLC_Installation_folder\mozilla&#039;&#039;&#039; (usually &#039;&#039;&#039;C:\Program Files\VideoLAN\VLC\mozilla&#039;&#039;&#039;) to your mozilla plugins directory (Usually &#039;&#039;&#039;C:\Program Files\Mozilla\plugins&#039;&#039;&#039; or &#039;&#039;&#039;C:\Program Files\Mozilla&lt;br /&gt;
Firefox\plugins&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Restart Firefox or Mozilla.&lt;br /&gt;
&lt;br /&gt;
====MacOS X====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The Mozilla/Safari plugin for MacOS X is only available from vlc version 0.8.5.1 and onwards.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Quit Safari browser.&lt;br /&gt;
&lt;br /&gt;
Download the Mozilla/safari plugin package from [http://www.videolan.org/vlc/download-macosx.html MacOS X download page].&lt;br /&gt;
&lt;br /&gt;
Run the installer from the dmg image.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Compile the sources yourself====&lt;br /&gt;
&lt;br /&gt;
Please look at the [http://developers.videolan.org developers page] for information on how to do this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Use the plugin===&lt;br /&gt;
&lt;br /&gt;
If you open a link to a video file handled by the VLC plugin (To get the list of handled types, browse to &#039;&#039;&#039;about:plugins&#039;&#039;&#039;) or a page with an embedded video, the plugin should open and read the&lt;br /&gt;
video.&lt;br /&gt;
&lt;br /&gt;
===Build HTML pages that use the plugin (version &amp;lt; 0.8.5)===&lt;br /&gt;
&lt;br /&gt;
The following API description is only valid uptill version 0.8.5 of the mozilla plugin.&lt;br /&gt;
&lt;br /&gt;
Additionally to viewing video on all pages, you can build custom pages that will use the advanced features of the plugin, using Javascript functions to control playback or extract information from the&lt;br /&gt;
plugin.&lt;br /&gt;
&lt;br /&gt;
The vlc plugin supports the following function calls:&lt;br /&gt;
*&#039;&#039;&#039;play()&#039;&#039;&#039;: Start playing media in the plugin.&lt;br /&gt;
*&#039;&#039;&#039;pause()&#039;&#039;&#039;: Pause playback.&lt;br /&gt;
*&#039;&#039;&#039;stop()&#039;&#039;&#039;: Stop media playback.&lt;br /&gt;
*&#039;&#039;&#039;fullscreen()&#039;&#039;&#039;: Switch the video to full screen.&lt;br /&gt;
*&#039;&#039;&#039;set_volume(vol)&#039;&#039;&#039;: Set the volume. &#039;&#039;&#039;vol&#039;&#039;&#039; has to be an int in the 0-200 range.&lt;br /&gt;
*&#039;&#039;&#039;get_volume()&#039;&#039;&#039;: Get the current volume setting.&lt;br /&gt;
*&#039;&#039;&#039;mute()&#039;&#039;&#039;: Toggle volume muting.&lt;br /&gt;
*&#039;&#039;&#039;set_int_variable(var_name, value)&#039;&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;set_bool_variable(var_name, value)&#039;&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;set_str_variable(var_name, value)&#039;&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;get_int_variable(var_name)&#039;&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;get_bool_variable(var_name)&#039;&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;get_str_variable(var_name)&#039;&#039;&#039;:&lt;br /&gt;
*&#039;&#039;&#039;clear_playlist()&#039;&#039;&#039;: Clear the playlist.&lt;br /&gt;
*&#039;&#039;&#039;add_item(mrl)&#039;&#039;&#039;: Append an item whose location is given by the [[media resource locator]] to the playlist.&lt;br /&gt;
*&#039;&#039;&#039;next()&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;previous()&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;isplaying()&#039;&#039;&#039;: return true if the plugin is playing something.&lt;br /&gt;
*&#039;&#039;&#039;get_length()&#039;&#039;&#039;: Get the media&#039;s length in seconds.&lt;br /&gt;
*&#039;&#039;&#039;get_position()&#039;&#039;&#039;: Get the current position in the media in percent.&lt;br /&gt;
*&#039;&#039;&#039;get_time()&#039;&#039;&#039;: Get the current position in the media in seconds.&lt;br /&gt;
*&#039;&#039;&#039;seek(seconds,is_relative)&#039;&#039;&#039;: If is_relative is true, seek relatively to current time, else seek from beginning of the stream. Seek time is specified in seconds.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here are a few examples of HTML pages that use the&lt;br /&gt;
Mozilla plugin.&lt;br /&gt;
&lt;br /&gt;
====Example 1====&lt;br /&gt;
&lt;br /&gt;
In this example, the plugin will read an HTTP stream inside the web page. If the user goes fullscreen, he will have to press &#039;&#039;f&#039;&#039; to go back in normal view.&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;html&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;head&amp;amp;gt;&amp;amp;lt;title&amp;amp;gt;Demo of VLC mozilla plugin&amp;amp;lt;/title&amp;amp;gt;&amp;amp;lt;/head&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;body&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;h1&amp;amp;gt;Demo of VLC mozilla plugin - Example 1&amp;amp;lt;/h1&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot;&lt;br /&gt;
          name=&amp;quot;video1&amp;quot;&lt;br /&gt;
          autoplay=&amp;quot;no&amp;quot; loop=&amp;quot;yes&amp;quot; width=&amp;quot;400&amp;quot; height=&amp;quot;300&amp;quot;&lt;br /&gt;
          target=&amp;quot;http://server.example.org/video1.vob&amp;quot; /&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
   &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video1.play()&#039;&amp;amp;gt;Play video1&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
   &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video1.pause()&#039;&amp;amp;gt;Pause video1&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
   &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video1.stop()&#039;&amp;amp;gt;Stop video1&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
   &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video1.fullscreen()&#039;&amp;amp;gt;Fullscreen&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;/body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/html&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Example 2====&lt;br /&gt;
&lt;br /&gt;
In this example, the plugin will read a multicast UDP stream in a dedicated video output window.&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;html&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;head&amp;amp;gt;&amp;amp;lt;title&amp;amp;gt;Demo of VLC mozilla plugin&amp;amp;lt;/title&amp;amp;gt;&amp;amp;lt;/head&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;body&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;h1&amp;amp;gt;Demo of VLC mozilla plugin - Example 2&amp;amp;lt;/h1&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot;&lt;br /&gt;
          name=&amp;quot;video2&amp;quot;&lt;br /&gt;
          autoplay=&amp;quot;no&amp;quot; loop=&amp;quot;no&amp;quot; hidden=&amp;quot;yes&amp;quot;&lt;br /&gt;
          target=&amp;quot;udp:@239.255.12.42&amp;quot; /&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
   &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video2.play()&#039;&amp;amp;gt;Play video2&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
   &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video2.stop()&#039;&amp;amp;gt;Stop video2&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
   &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video2.fullscreen()&#039;&amp;amp;gt;Fullscreen&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;/body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/html&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Build HTML pages that use the plugin (version &amp;gt; 0.8.5.1)===&lt;br /&gt;
&lt;br /&gt;
Additionally to viewing video on all pages, you can build custom pages that will use the advanced features of the plugin, using Javascript functions to control playback or extract information from the&lt;br /&gt;
plugin.&lt;br /&gt;
&lt;br /&gt;
The vlc plugin exports serveral objects that can be accessed for setting and getting information. When used improperly the API&#039;s will throw an exception that includes a string that explains what happened. For example when asking for vlc.input.length when there is no playlist item playing.&lt;br /&gt;
&lt;br /&gt;
The vlc plugin knows the following objects:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;audio&#039;&#039;&#039;: Access audio properties.&lt;br /&gt;
*&#039;&#039;&#039;input&#039;&#039;&#039;: Access input properties.&lt;br /&gt;
*&#039;&#039;&#039;playlist&#039;&#039;&#039;: Access playlist properties.&lt;br /&gt;
*&#039;&#039;&#039;video&#039;&#039;&#039;: Access video properties.&lt;br /&gt;
*&#039;&#039;&#039;log&#039;&#039;&#039;: Access log properties.&lt;br /&gt;
*&#039;&#039;&#039;messages&#039;&#039;&#039;: Access to log message properties.&lt;br /&gt;
*&#039;&#039;&#039;iterator&#039;&#039;&#039;: Access to log iterator properties.&lt;br /&gt;
&lt;br /&gt;
The following JavaScript code shows howto get a reference to the vlc plugin. This reference can then be used to access the objects of the vlc plugin.&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;html&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;title&amp;amp;gt;VLC Mozilla plugin test page&amp;amp;lt;/title&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot; pluginspage=&amp;quot;http://www.videolan.org&amp;quot; version=&amp;quot;VideoLAN.VLCPlugin.2&amp;quot;&lt;br /&gt;
     width=&amp;quot;640&amp;quot;&lt;br /&gt;
     height=&amp;quot;480&amp;quot;&lt;br /&gt;
     id=&amp;quot;vlc&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/embed&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;script language=&amp;quot;Javascript&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!--&lt;br /&gt;
 var vlc = document.getElementById(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
 vlc.audio.toggleMute();&lt;br /&gt;
 !--&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/script&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/html&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Root object====&lt;br /&gt;
&lt;br /&gt;
readonly properties&lt;br /&gt;
*&#039;&#039;&#039;VersionInfo&#039;&#039;&#039;: returns version information string&lt;br /&gt;
&lt;br /&gt;
read/write properties&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods&lt;br /&gt;
*&#039;&#039;&#039;vlc.versionInfo()&#039;&#039;&#039;: returns version information string&lt;br /&gt;
&lt;br /&gt;
====Audio object====&lt;br /&gt;
&lt;br /&gt;
readonly properties&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.mute&#039;&#039;&#039;: boolean value to mute and ummute the audio&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.volume&#039;&#039;&#039;: a value between [0-200] which indicates a percentage of the volume.&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.track&#039;&#039;&#039;: (supported in vlc version &amp;gt; 0.8.6) a value between [1-65535] which indicates the audio track to play or that is playing. a value of 0 means the audio is/will be disabled.&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.channel&#039;&#039;&#039;: (supported in vlc version &amp;gt; 0.8.6) integer value between [1-5] that indicates which audio channel mode is used, values can be: &amp;quot;1=stereo&amp;quot;, &amp;quot;2=reverse stereo&amp;quot;, &amp;quot;3=left&amp;quot;, &amp;quot;4=right&amp;quot;, &amp;quot;5=dolby&amp;quot;. Use vlc.audio.channel to check if setting of the audio channel mode has succeeded.&lt;br /&gt;
&lt;br /&gt;
 Audio Channel:&lt;br /&gt;
 &amp;lt;SELECT readonly onChange=&#039;doAudioChannel(this.value)&#039;&amp;gt;&lt;br /&gt;
    &amp;lt;OPTION value=1&amp;gt;Stereo&amp;lt;/OPTION&amp;gt;&lt;br /&gt;
    &amp;lt;OPTION value=2&amp;gt;Reverse stereo&amp;lt;/OPTION&amp;gt;&lt;br /&gt;
    &amp;lt;OPTION value=3&amp;gt;Left&amp;lt;/OPTION&amp;gt;&lt;br /&gt;
    &amp;lt;OPTION value=4&amp;gt;Right&amp;lt;/OPTION&amp;gt;&lt;br /&gt;
    &amp;lt;OPTION value=5&amp;gt;Dolby&amp;lt;/OPTION&amp;gt;&lt;br /&gt;
 &amp;lt;/SELECT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;SCRIPT language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;amp;lt;!--&lt;br /&gt;
 function doAudioChannel(value)&lt;br /&gt;
 {&lt;br /&gt;
    var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
    vlc.audio.channel = parseInt(value);&lt;br /&gt;
    alert(vlc.audio.channel);&lt;br /&gt;
 };&lt;br /&gt;
 --&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
methods&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.toggleMute()&#039;&#039;&#039;: boolean toggle that mutes and unmutes the audio based upon the previous state&lt;br /&gt;
&lt;br /&gt;
====Input object====&lt;br /&gt;
&lt;br /&gt;
readonly properties&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.length&#039;&#039;&#039;: length of the input file in number of milliseconds&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.fps&#039;&#039;&#039;: frames per second returned as a float&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.hasVout&#039;&#039;&#039;: a boolean that returns true when the video is being displayed, it returns false when video is not displayed&lt;br /&gt;
&lt;br /&gt;
read/write properties&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.position&#039;&#039;&#039;: normalized position in multimedia stream item given as a float value between [0.0 - 1.0]&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.time&#039;&#039;&#039;: the absolute position in time given in milliseconds, this property can be used to seek through the stream&lt;br /&gt;
 &amp;amp;lt;!-- absolute seek in stream !--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = &amp;amp;lt;absolute seek&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!-- relative seek in stream !--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = vlc.input.time + &amp;amp;lt;relative seek&amp;amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.state&#039;&#039;&#039;: current state of the input chain given as enumeration (IDLE/CLOSE=0, OPENING=1, BUFFERING=2, PLAYING=3, PAUSED=4, STOPPING=5, ERROR=6)&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.rate&#039;&#039;&#039;: input speed given as float (1.0 for normal speed, 0.5 for half speed, 2.0 for twice as fast, etc.)&lt;br /&gt;
&lt;br /&gt;
methods&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Playlist object====&lt;br /&gt;
&lt;br /&gt;
readonly properties&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.itemCount&#039;&#039;&#039;: number that returns the amount of items currently in the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[Playlist items]])&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.isPlaying&#039;&#039;&#039;: a boolean that returns true if the current playlist item is playing and false when it is not playing&lt;br /&gt;
&lt;br /&gt;
read/write properties&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl)&#039;&#039;&#039;: add a playlist item as [[MRL]]. The MRL must be given as a string. Returns the item number.&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl,name,options)&#039;&#039;&#039;: add a playlist item as MRL, with metaname &#039;name&#039; and options &#039;options&#039;. All input values must be given as string. Returns the item number.&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.play()&#039;&#039;&#039;: start playing the current playlist item&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.playItem(number)&#039;&#039;&#039;: start playing the given item number&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.togglePause()&#039;&#039;&#039;: toggle the pause state for the current playlist item&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.stop()&#039;&#039;&#039;: stop playing the current playlist item&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.next()&#039;&#039;&#039;: iterate to the next playlist item&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.prev()&#039;&#039;&#039;: iterate to the previous playlist item&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[Playlist items]])&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.removeItem(number)&#039;&#039;&#039;: remove the given item number (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() )&lt;br /&gt;
&lt;br /&gt;
====Video object====&lt;br /&gt;
&lt;br /&gt;
readonly properties&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.width&#039;&#039;&#039;: returns the horizontal size of the video&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.height&#039;&#039;&#039;: returns the vertical size of the video&lt;br /&gt;
&lt;br /&gt;
read/write properties&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.fullscreen&#039;&#039;&#039;: when set to true the video will be displayed in fullscreen mode, when set to false the video will be shown inside the video output size. The property takes a boolean as input.&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.aspectRatio&#039;&#039;&#039;: get and set the aspect ratio to use in the video screen. The property takes a string as input value. Valid values are: &amp;quot;1:1&amp;quot;, &amp;quot;4:3&amp;quot;, &amp;quot;16:9&amp;quot;, &amp;quot;16:10&amp;quot;, &amp;quot;221:100&amp;quot; and &amp;quot;5:4&amp;quot;&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.subtitle&#039;&#039;&#039;; (supported in vlc version &amp;gt; 0.8.6a) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleFullscreen()&#039;&#039;&#039;: toggle the fullscreen mode based on the previous setting&lt;br /&gt;
&lt;br /&gt;
====Log object====&lt;br /&gt;
&lt;br /&gt;
readonly properties&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.messages&#039;&#039;&#039;: returns a messages object&lt;br /&gt;
&lt;br /&gt;
read/write properties&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.verbosity&#039;&#039;&#039;: write number [-1,0,1,2,3] for changing the verbosity level of the log messages. The numbers have the following meaning: -1 disable, 0 info, 1 error, 2 warning, 3 debug.&lt;br /&gt;
&lt;br /&gt;
methods&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Messages object====&lt;br /&gt;
&lt;br /&gt;
readonly properties&lt;br /&gt;
*&#039;&#039;&#039;messages.count&#039;&#039;&#039;: returns number of messages in the log&lt;br /&gt;
*&#039;&#039;&#039;messages.severity&#039;&#039;&#039;: number that indicates the severity of the log message (0 = info, 1 = error, 2 = warning, 3 = debug)&lt;br /&gt;
*&#039;&#039;&#039;message.name&#039;&#039;&#039;: name of VLC module that printed the log message (e.g: main, http, directx, etc...)&lt;br /&gt;
*&#039;&#039;&#039;message.type&#039;&#039;&#039;: type of VLC module that printed the log message (eg: input, access, vout, sout, etc...)&lt;br /&gt;
*&#039;&#039;&#039;message.message&#039;&#039;&#039;: the message text&lt;br /&gt;
&lt;br /&gt;
read/write properties&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods&lt;br /&gt;
*&#039;&#039;&#039;messages.clear()&#039;&#039;&#039;: clear the current log buffer. It should be called as frequently as possible to not overflow the plugins logging buffer. Call this method after the log messages of interest are read.&lt;br /&gt;
*&#039;&#039;&#039;messages.iterator()&#039;&#039;&#039;: returns a messages iterator object, which is used to iterate over the messages in the log. &#039;&#039;&#039;Don&#039;t clear the log buffer while holding an iterator object.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Iterator object====&lt;br /&gt;
&lt;br /&gt;
readonly properties&lt;br /&gt;
*&#039;&#039;&#039;iterator.hasNext&#039;&#039;&#039;: returns a boolean that indicates when true, that wheter vlc.log.messages.next() returns the next message.&lt;br /&gt;
&lt;br /&gt;
read/write properties&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods&lt;br /&gt;
*&#039;&#039;&#039;iterator.next()&#039;&#039;&#039;: returns the next message object it the log&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Documentation}}&lt;/div&gt;</summary>
		<author><name>Quovodis</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=User:Quovodis&amp;diff=4996</id>
		<title>User:Quovodis</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=User:Quovodis&amp;diff=4996"/>
		<updated>2006-07-04T07:57:51Z</updated>

		<summary type="html">&lt;p&gt;Quovodis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am interested in working on the DVB support for Windows project.  I have an ATI video capture card in my Windows PC.  Is this the type of hardware I would need to work on the project?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Quovodis&#039;&#039;&#039;: no, you need a DVB capture card, typically manufactured by Hauppagge, Technotrend, Twinhan, etc... as far as I know all the ATI capture cards are analog only (Tuner, Composite, S-video)&lt;/div&gt;</summary>
		<author><name>Quovodis</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=User:Quovodis&amp;diff=4995</id>
		<title>User:Quovodis</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=User:Quovodis&amp;diff=4995"/>
		<updated>2006-07-04T07:57:06Z</updated>

		<summary type="html">&lt;p&gt;Quovodis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am interested in working on the DVB support for Windows project.  I have an ATI video capture card in my Windows PC.  Is this the type of hardware I would need to work on the project?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
no, you need a DVB capture card, typically manufactured by Hauppagge, Technotrend, Twinhan, etc... as far as I know all the ATI capture cards are analog only (Tuner, Composite, S-video)&lt;/div&gt;</summary>
		<author><name>Quovodis</name></author>
	</entry>
</feed>