<?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=Rogerdpack</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=Rogerdpack"/>
	<link rel="alternate" type="text/html" href="https://wiki.videolan.org/Special:Contributions/Rogerdpack/"/>
	<updated>2026-11-04T18:37:27Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Chroma&amp;diff=31147</id>
		<title>Chroma</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Chroma&amp;diff=31147"/>
		<updated>2016-08-16T13:15:34Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: add note&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Greek for color, the part of a video file or signal that encodes the color portion.&lt;br /&gt;
&lt;br /&gt;
== List of Video Chromas ==&lt;br /&gt;
&lt;br /&gt;
* I420&lt;br /&gt;
&lt;br /&gt;
* I411&lt;br /&gt;
&lt;br /&gt;
* I422&lt;br /&gt;
&lt;br /&gt;
* YUYV&lt;br /&gt;
&lt;br /&gt;
* UYVY&lt;br /&gt;
&lt;br /&gt;
* RV24 (basically this is RGB24, 3 bytes, one for R, G, B)&lt;br /&gt;
&lt;br /&gt;
* RV32&lt;br /&gt;
&lt;br /&gt;
* I42N&lt;br /&gt;
&lt;br /&gt;
* I41N&lt;br /&gt;
&lt;br /&gt;
* GRAW&lt;br /&gt;
&lt;br /&gt;
See also [[YUV]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary]]&lt;br /&gt;
[[Category:Stubs]]&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Use_a_capture_card&amp;diff=30567</id>
		<title>VLC HowTo/Use a capture card</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Use_a_capture_card&amp;diff=30567"/>
		<updated>2015-12-29T17:04:19Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: mention caveat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{howto|use video from a TV or Video card}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== The following describes how to watch TV with your DVB-Card ===&lt;br /&gt;
(tested with DVB-T and the Windows-Version of VLC)&lt;br /&gt;
&lt;br /&gt;
* find out the frequencies of your location&lt;br /&gt;
* go to File/Open CaptureCard&lt;br /&gt;
* choose DVB DirectShow&lt;br /&gt;
* check your kind of card (DVB-S -C -T)&lt;br /&gt;
* choose first frequency and bandwidth&lt;br /&gt;
* click on play&lt;br /&gt;
&lt;br /&gt;
If your stream has &amp;quot;multiple&amp;quot; (for instance multiple sub channels, or you want to programmatically select a particular audio stream):&lt;br /&gt;
&lt;br /&gt;
* when the channel plays, select playlist&lt;br /&gt;
* rightclick on the item, which is playing and select information&lt;br /&gt;
* go to stream&lt;br /&gt;
* here you can find all broadcast-channels with their service-ID&lt;br /&gt;
* write them down&lt;br /&gt;
* go to File/Open CaptureCard&lt;br /&gt;
* in the option-line at the bottom append a space (if not there) a : and the keyword &amp;quot;program=&amp;quot;, followed by one of the service-IDs&lt;br /&gt;
* it should look like: ...300ms :program=16214&lt;br /&gt;
* click on play&lt;br /&gt;
* that&#039;s your channel&lt;br /&gt;
* now you can rename this playing item of the playlist to your station-name&lt;br /&gt;
* and the same with the next service-ID&lt;br /&gt;
* and so on with the next frequency&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Don&#039;t forget to save your playlist!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Have fun!&lt;br /&gt;
&lt;br /&gt;
Spielmops&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The minimal command to transcode from a capture card to &lt;br /&gt;
a portable MPEG file (this example includes trancoding which may be lessly, be careful) is thus:&lt;br /&gt;
 vlc v4l:// :v4l-norm=1: &#039;--sout=#transcode{vcodec=mp1v,vb=2030,audio-sync,acodec=mpga,ab=192,channels=2}:std{access=file,mux=mpeg1,url=&amp;quot;out_file.mpg&amp;quot;}&#039;&lt;br /&gt;
&lt;br /&gt;
These MPEG files have been verified to work with:&lt;br /&gt;
&lt;br /&gt;
* Windows Media Player 10&lt;br /&gt;
* Apple QuickTime Player 7&lt;br /&gt;
* XINE 1.0&lt;br /&gt;
* ffplay&lt;br /&gt;
* xanim 2.80 (no audio)&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Use_a_capture_card&amp;diff=30566</id>
		<title>VLC HowTo/Use a capture card</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Use_a_capture_card&amp;diff=30566"/>
		<updated>2015-12-29T17:03:21Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{howto|use video from a TV or Video card}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== The following describes how to watch TV with your DVB-Card ===&lt;br /&gt;
(tested with DVB-T and the Windows-Version of VLC)&lt;br /&gt;
&lt;br /&gt;
* find out the frequencies of your location&lt;br /&gt;
* go to File/Open CaptureCard&lt;br /&gt;
* choose DVB DirectShow&lt;br /&gt;
* check your kind of card (DVB-S -C -T)&lt;br /&gt;
* choose first frequency and bandwidth&lt;br /&gt;
* click on play&lt;br /&gt;
&lt;br /&gt;
If your stream has &amp;quot;multiple&amp;quot; (for instance multiple sub channels, or you want to programmatically select the audio stream):&lt;br /&gt;
&lt;br /&gt;
* when the channel plays, select playlist&lt;br /&gt;
* rightclick on the item, which is playing and select information&lt;br /&gt;
* go to stream&lt;br /&gt;
* here you can find all broadcast-channels with their service-ID&lt;br /&gt;
* write them down&lt;br /&gt;
* go to File/Open CaptureCard&lt;br /&gt;
* in the option-line at the bottom append a space (if not there) a : and the keyword &amp;quot;program=&amp;quot;, followed by one of the service-IDs&lt;br /&gt;
* it should look like: ...300ms :program=16214&lt;br /&gt;
* click on play&lt;br /&gt;
* that&#039;s your channel&lt;br /&gt;
* now you can rename this playing item of the playlist to your station-name&lt;br /&gt;
* and the same with the next service-ID&lt;br /&gt;
* and so on with the next frequency&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Don&#039;t forget to save your playlist!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Have fun!&lt;br /&gt;
&lt;br /&gt;
Spielmops&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The minimal command to transcode from a capture card to &lt;br /&gt;
a portable MPEG file is thus:&lt;br /&gt;
 vlc v4l:// :v4l-norm=1: &#039;--sout=#transcode{vcodec=mp1v,vb=2030,audio-sync,acodec=mpga,ab=192,channels=2}:std{access=file,mux=mpeg1,url=&amp;quot;out_file.mpg&amp;quot;}&#039;&lt;br /&gt;
&lt;br /&gt;
These MPEG files have been verified to work with:&lt;br /&gt;
&lt;br /&gt;
* Windows Media Player 10&lt;br /&gt;
* Apple QuickTime Player 7&lt;br /&gt;
* XINE 1.0&lt;br /&gt;
* ffplay&lt;br /&gt;
* xanim 2.80 (no audio)&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Git&amp;diff=26662</id>
		<title>Git</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Git&amp;diff=26662"/>
		<updated>2014-03-24T17:10:39Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: add some more git http protocol options&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://git-scm.com/ Git] is a free and open source [[wikipedia:Revision_control|version control system]]. It is used by programmers to keep track of the different versions of the files composing a software.&lt;br /&gt;
&lt;br /&gt;
= Basic Git usage =&lt;br /&gt;
&lt;br /&gt;
If you are using &#039;&#039;&#039;Windows&#039;&#039;&#039;, please read the [[Git_Windows]] page.&lt;br /&gt;
&lt;br /&gt;
== Getting VLC or x264 source code via Git ==&lt;br /&gt;
 &lt;br /&gt;
 $ git clone git://git.videolan.org/vlc.git&lt;br /&gt;
Voilà! The full VLC history should be on your hard disk in vlc/.&lt;br /&gt;
&lt;br /&gt;
 $ git clone git://git.videolan.org/x264.git&lt;br /&gt;
Voilà! The full x264 history should be on your hard disk in x264/.&lt;br /&gt;
&lt;br /&gt;
If you want only the last 3 VLC revisions:&lt;br /&gt;
 $ git clone git://git.videolan.org/vlc.git --depth 3&lt;br /&gt;
&lt;br /&gt;
Clones without the full revision set (--depth) can&#039;t be used for backporting (or to make sure that you&#039;re including at least commits up to the common fork point).&lt;br /&gt;
&lt;br /&gt;
You can also have the VLC stable branch, here:&lt;br /&gt;
 $ git clone git://git.videolan.org/vlc/vlc-2.0.git&lt;br /&gt;
Voilà! You got the stable branch repository.&lt;br /&gt;
&lt;br /&gt;
Or via http protocol from the main site:&lt;br /&gt;
$ git clone http://git.videolan.org/git/vlc.git&lt;br /&gt;
See http://git.videolan.org/?p=vlc.git;a=summary&lt;br /&gt;
&lt;br /&gt;
Or via http protocol from github (github can sometimes be a bit behind as a mirror):&lt;br /&gt;
https://github.com/videolan/vlc.git&lt;br /&gt;
See https://github.com/videolan/vlc&lt;br /&gt;
&lt;br /&gt;
You can also clone using http via our repo.or.cz mirror.&lt;br /&gt;
 $ git clone http://repo.or.cz/r/vlc.git&lt;br /&gt;
See http://repo.or.cz/w/vlc.git (a mirror).&lt;br /&gt;
&lt;br /&gt;
=== After cloning ===&lt;br /&gt;
&lt;br /&gt;
 $ git log&lt;br /&gt;
to see the full log of the trunk.&lt;br /&gt;
 $ gitk&lt;br /&gt;
to see the log graphically.&lt;br /&gt;
&lt;br /&gt;
You can also browse the sources via [http://git.videolan.org/ gitweb].&lt;br /&gt;
&lt;br /&gt;
== Configure your global git config ==&lt;br /&gt;
May need to use &lt;br /&gt;
$ git repo-config {various options} &lt;br /&gt;
1.4.4.2 Requires the repo-config command rather than just config&lt;br /&gt;
&lt;br /&gt;
=== Personal Information ===&lt;br /&gt;
Tell git your name. (use mostly by git-commit)&lt;br /&gt;
 $ git config --global user.name &amp;quot;Your Name&amp;quot;&lt;br /&gt;
 $ git config --global user.email &amp;quot;me@example.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Mail Setup ===&lt;br /&gt;
To send patches you&#039;ll need a working git-send-email configuration. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MSMTP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can use [http://msmtp.sourceforge.net/ msmtp] to achieve this. Install it with tls and ssl activated and place the following config file (.msmtprc) in your home directory&lt;br /&gt;
 # msmtp configuration file&lt;br /&gt;
 &lt;br /&gt;
 # Set default values for all following accounts.&lt;br /&gt;
 defaults&lt;br /&gt;
 tls on&lt;br /&gt;
 tls_starttls on&lt;br /&gt;
 tls_trust_file /certificates/EquifaxSecureCertificateAuthority.crt&lt;br /&gt;
 logfile /log/.msmtp.log&lt;br /&gt;
 &lt;br /&gt;
 # GMAIL&lt;br /&gt;
 account gmail&lt;br /&gt;
 host smtp.gmail.com&lt;br /&gt;
 port 587&lt;br /&gt;
 protocol smtp&lt;br /&gt;
 from user.name@gmail.com&lt;br /&gt;
 auth on&lt;br /&gt;
 user user.name@gmail.com&lt;br /&gt;
 &lt;br /&gt;
 # Set a default account&lt;br /&gt;
 account default : gmail&lt;br /&gt;
Then configure git to use msmtp. The password will be asked for upon sending mail.&lt;br /&gt;
 $ git config --global sendemail.smtpserver /usr/local/bin/msmtp&lt;br /&gt;
The certificate for gmail can be found here: [http://www.geotrust.com/resources/extended-validation-ssl/certs/Equifax%20Secure%20Certificate%20Authority.crt EquifaxSecureCertificateAuthority.crt]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mac OS X&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Setup info with e.g. gmail account&lt;br /&gt;
 $ git config --global sendemail.smtpserver smtp.gmail.com&lt;br /&gt;
 $ git config --global sendemail.smtpuser your-gmail-address-here&lt;br /&gt;
 $ git config --global sendemail.smtpencryption tls&lt;br /&gt;
 $ git config --global sendemail.smtpserverport 587&lt;br /&gt;
&lt;br /&gt;
If errors occur telling you something like perl&#039;s SMTP::SSL package is not there. Do the following&lt;br /&gt;
 $ sudo -H cpan Net::SMTP::SSL&lt;br /&gt;
&lt;br /&gt;
=== Using git with color (Tip) ===&lt;br /&gt;
If you want to use git with colored output use:&lt;br /&gt;
 $ git config --global color.ui true&lt;br /&gt;
&lt;br /&gt;
If you are using an old git version (prior to 1.5.5) and previous command didn&#039;t work, use:&lt;br /&gt;
 $ git config --global color.diff auto&lt;br /&gt;
 $ git config --global color.status auto&lt;br /&gt;
 $ git config --global color.branch auto&lt;br /&gt;
&lt;br /&gt;
=== Setting up &amp;quot;git up&amp;quot; (Tip) ===&lt;br /&gt;
If you want to be able to just keep in sync using &amp;quot;git up&amp;quot; use:&lt;br /&gt;
 $ git config --global alias.up &amp;quot;pull --rebase&amp;quot;&lt;br /&gt;
And if you like your tree to be messy and don&#039;t want git to complain (like in svn) use:&lt;br /&gt;
 $ git config --global alias.up &#039;!sh -c &amp;quot;git commit -a -m &amp;quot;Before rebase&amp;quot; &amp;amp;&amp;amp; git pull --rebase &amp;amp;&amp;amp; git reset head^&amp;quot;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Setting up &amp;quot;git wu&amp;quot; (Git What&#039;s Up) (Tip) ===&lt;br /&gt;
If you want to see what you are about to &amp;quot;git push&amp;quot;:&lt;br /&gt;
 $ git config --global alias.wu &amp;quot;log --stat origin..@{0}&amp;quot;&lt;br /&gt;
Now use:&lt;br /&gt;
 $ git wu&lt;br /&gt;
Note that this only works for the master branch.&lt;br /&gt;
&lt;br /&gt;
=== Setting up &amp;quot;git wup&amp;quot; (Git What&#039;s Up - with patch) (Tip) ===&lt;br /&gt;
If you want to see what you are about to &amp;quot;git push&amp;quot;, along with the diff:&lt;br /&gt;
 $ git config --global alias.wup &amp;quot;log -p origin..@{0}&amp;quot;&lt;br /&gt;
Now use:&lt;br /&gt;
 $ git wup&lt;br /&gt;
&lt;br /&gt;
== Set up Hooks (Tip) ==&lt;br /&gt;
If you are using Qt-creator and want to keep your files listing in sync,&lt;br /&gt;
just set up a post-checkout hook accordingly.&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # this file as .git/hooks/post-checkout&lt;br /&gt;
 if test -f vlc.files&lt;br /&gt;
 then&lt;br /&gt;
        echo &amp;quot;Updating Qt files list&amp;quot;&lt;br /&gt;
        git ls-files &amp;gt; vlc.files&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
== General GIT Workflow ==&lt;br /&gt;
1.  Make your file edits in your local repository.&lt;br /&gt;
&lt;br /&gt;
2.  &amp;quot;git commit&amp;quot;      the changes in your local repository&lt;br /&gt;
&lt;br /&gt;
3.  &amp;quot;git pull --rebase&amp;quot;  or &amp;quot;git up&amp;quot; (if you did &#039;&#039;git config --global alias.up &amp;quot;pull --rebase&amp;quot;&#039;&#039;) to bring the rest of your local repository up to date&lt;br /&gt;
&lt;br /&gt;
4.  &amp;quot;git log origin..master&amp;quot;    to check what you are going to commit&lt;br /&gt;
&lt;br /&gt;
4.  &amp;quot;git push&amp;quot;    to move your changes up to the master&lt;br /&gt;
&lt;br /&gt;
&amp;quot;git stash&amp;quot;    if you want to &amp;quot;hide&amp;quot; your changes.  Do this if you think there may be other commits against the same things you are working on and want to refresh your local checkout (using a git pull --rebase) from the master. Use &amp;quot;git stash apply&amp;quot; to get your stash back. &lt;br /&gt;
&lt;br /&gt;
&amp;quot;git checkout -f master&amp;quot;     if you think your tree is pretty hopeless, need a kill-and-fill to bring the master into your local repository.&lt;br /&gt;
&lt;br /&gt;
== List the local branch ==&lt;br /&gt;
You can now list your local branch by doing&lt;br /&gt;
 $ git branch&lt;br /&gt;
which should ouput&lt;br /&gt;
 $ git branch&lt;br /&gt;
 * master&lt;br /&gt;
&lt;br /&gt;
== List your local non committed changes ==&lt;br /&gt;
 $ git status | less&lt;br /&gt;
&lt;br /&gt;
== Commit ==&lt;br /&gt;
Now you can start to work on your tree. As soon as you feel you have reached a step in developement where you can commit your work &#039;&#039;&#039;locally&#039;&#039;&#039;, use&lt;br /&gt;
 $ git commit -a&lt;br /&gt;
or&lt;br /&gt;
 $ git commit &amp;lt;specific files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish to give credit to someone else&#039;s work (e.g. you are applying a third party patch):&lt;br /&gt;
 $ git commit &amp;lt;specific files&amp;gt; --author &amp;quot;Name Surname &amp;lt;user@domain.com&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== List your commits ==&lt;br /&gt;
 $ git log&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Keeping your local working branch in sync ==&lt;br /&gt;
 $ git pull --rebase&lt;br /&gt;
&lt;br /&gt;
To shorten up that command type&lt;br /&gt;
 $ git config --global alias.up &amp;quot;pull --rebase&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Now you can just type:&lt;br /&gt;
 $ git up&lt;br /&gt;
&lt;br /&gt;
== Use a graphical interface ==&lt;br /&gt;
 $ gitk          # Tree Browser&lt;br /&gt;
 $ qgit          # Tree Browser&lt;br /&gt;
 $ git-gui       # Commit/push/... editor&lt;br /&gt;
&lt;br /&gt;
== Submitting patches ==&lt;br /&gt;
&lt;br /&gt;
First make sure you have &#039;&#039;&#039;read&#039;&#039;&#039; our [[Sending Patches]] page. And that you&#039;ve &#039;&#039;&#039;read&#039;&#039;&#039; the [[Sending Patches#Check_List| Check List]].&lt;br /&gt;
&lt;br /&gt;
If you have been developing on vlc locally and (still) don&#039;t have write access, you can submit all your commits in one shot using:&lt;br /&gt;
 $ rm -Rf patches&lt;br /&gt;
 $ git format-patch -o patches origin&lt;br /&gt;
 $ git send-email --to vlc-devel@videolan.org patches&lt;br /&gt;
If you want to create a cover letter for multiple patches use:&lt;br /&gt;
 $ git format-patch -o patches origin -n --cover-letter&lt;br /&gt;
 $ git send-email --annotate --cover-letter --to vlc-devel@videolan.org patches&lt;br /&gt;
If you have multiple patch consider using:&lt;br /&gt;
 $ git send-email --compose --no-chain-reply-to --to vlc-devel@videolan.org patches&lt;br /&gt;
This will produce the patches for each local commit in the directory &amp;quot;patches&amp;quot; and send them.&lt;br /&gt;
Use --no-chain-reply-to make sure it doesn&#039;t reply.&lt;br /&gt;
&lt;br /&gt;
For x264, do the same with x264-devel@videolan.org&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- what does the following mean? --&amp;gt;&lt;br /&gt;
Don&#039;t do:&lt;br /&gt;
* [PATCH 0/m]&lt;br /&gt;
** [PATCH 1/m]&lt;br /&gt;
*** [PATCH 2/m]&lt;br /&gt;
**** ...&lt;br /&gt;
But do:&lt;br /&gt;
* [PATCH 0/m]&lt;br /&gt;
** [PATCH 1/m]&lt;br /&gt;
** [PATCH 2/m]&lt;br /&gt;
** ..&lt;br /&gt;
&lt;br /&gt;
= Advanced usage =&lt;br /&gt;
== Creating a secondary local branch ==&lt;br /&gt;
If you want to work on a specific project that could require a branch of the trunk, create a local branch of the current branch by doing:&lt;br /&gt;
 $ git branch mywork&lt;br /&gt;
and to actually use it do:&lt;br /&gt;
 $ git checkout mywork&lt;br /&gt;
Which could be summarized by:&lt;br /&gt;
 $ git checkout -b mywork&lt;br /&gt;
&lt;br /&gt;
Then do some commit on it... And you can go back to your original master branch by doing:&lt;br /&gt;
 $ git checkout master&lt;br /&gt;
&lt;br /&gt;
== Fetching a remote branch ==&lt;br /&gt;
To see the remote branch use:&lt;br /&gt;
 $ git branch -r&lt;br /&gt;
If the remote branch is named 0.8.6-bugfix&lt;br /&gt;
 $ git branch 0.8.6-bugfix origin/0.8.6-bugfix &lt;br /&gt;
 Branch 0.8.6-bugfix set up to track remote branch refs/remotes/origin/0.8.6-bugfix.&lt;br /&gt;
 $ git branch&lt;br /&gt;
  0.8.6-bugfix&lt;br /&gt;
  * master&lt;br /&gt;
To checkout that branch use:&lt;br /&gt;
 $ git checkout 0.8.6-bugfix&lt;br /&gt;
To stay up-to-date a simple&lt;br /&gt;
 $ git pull --rebase&lt;br /&gt;
Should be enough.&lt;br /&gt;
&lt;br /&gt;
If warnings appear that files still need updating:&lt;br /&gt;
 $ include/libvlc_internal.h: needs update&lt;br /&gt;
   include/mediacontrol_internal.h: needs update&lt;br /&gt;
   include/vlc/libvlc.h: needs update&lt;br /&gt;
   include/vlc_update.h: needs update&lt;br /&gt;
   modules/access/mms/mms.c: needs update&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
Then do a checkout -f to revert non committed local changes&lt;br /&gt;
 $ git checkout -f&lt;br /&gt;
&lt;br /&gt;
To stay up-to-date another&lt;br /&gt;
 $ git pull --rebase&lt;br /&gt;
Should give no more warnings.&lt;br /&gt;
&lt;br /&gt;
To push to the remote branch, use:&lt;br /&gt;
 $git push origin 0.8.6-bugfix:0.8.6-bugfix&lt;br /&gt;
&lt;br /&gt;
== Creating a remote branch ==&lt;br /&gt;
If the new remote branch is named 0.9.0-bugfix, and is based on the local master branch.&lt;br /&gt;
First make sure everything go as planned with the --dry-run option:&lt;br /&gt;
 $ git push --dry-run origin master:refs/heads/0.9.0-stable&lt;br /&gt;
 To git@git.videolan.org:vlc.git&lt;br /&gt;
 * [new branch]      master -&amp;gt; 0.9.0-stable&lt;br /&gt;
&lt;br /&gt;
Then push it:&lt;br /&gt;
 $ git push origin master:refs/heads/0.9.0-stable&lt;br /&gt;
 To git@git.videolan.org:vlc.git&lt;br /&gt;
 * [new branch]      master -&amp;gt; 0.9.0-stable&lt;br /&gt;
 $ git branch -r&lt;br /&gt;
  origin/0.9.0-stable&lt;br /&gt;
  origin/master&lt;br /&gt;
&lt;br /&gt;
To checkout that branch now see &#039;&#039;Fetching a remote branch&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Backporting commits ==&lt;br /&gt;
It is possible to &amp;quot;backport&amp;quot; commit between the master branch and a -bugfix branch. However since VDD&#039;09, the bugfix branches have been splitted to their own git repositories. This leaves us with 2 cases.&lt;br /&gt;
&lt;br /&gt;
=== Normal simple case ===&lt;br /&gt;
&lt;br /&gt;
Go to your -bugfix branch:&lt;br /&gt;
 $ git checkout 1.0-bugfix&lt;br /&gt;
&lt;br /&gt;
Backport the commit: &lt;br /&gt;
 $ git cherry-pick -x -s &amp;lt;sha-id of commit&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If git fails to do the backport by itself, you&#039;ll be presnted with the usual options in case of a failed merge or patching. Use &amp;quot;git status&amp;quot;, your favorite editor or &amp;quot;git mergetool&amp;quot; to resolve the situation. Then use &amp;quot;git add&amp;quot; and &amp;quot;git commit -c &amp;lt;sha-id of backported commit&amp;gt;&amp;quot;.&lt;br /&gt;
Then push your commit as usual.&lt;br /&gt;
&lt;br /&gt;
=== Case of VLC bugfix branches ===&lt;br /&gt;
Due to the number of commits in vlc.git and the amount of divergence between the master and 1.0-bugfix branches, they have been separated into two different git repositories. But that doesn&#039;t block you from backporting.&lt;br /&gt;
&lt;br /&gt;
Get the -bugfix git:&lt;br /&gt;
 $ git clone git://git.videolan.org/vlc/vlc-1.0.git vlc-bugfix&lt;br /&gt;
Add vlc.git as an additional remote:&lt;br /&gt;
 $ git remote add vlc-master git://git.videolan.org/vlc.git&lt;br /&gt;
Update the information from vlc-master&lt;br /&gt;
 $ git fetch vlc-master&lt;br /&gt;
Backport as normal&lt;br /&gt;
 $ git cherry-pick -x -s &amp;lt;sha-id of commit&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Publishing your own fork ==&lt;br /&gt;
Go to [http://repo.or.cz/w/vlc.git http://repo.or.cz/w/vlc.git] and click [http://repo.or.cz/regproj.cgi?fork=vlc.git fork]. You will be able to publish your work there.&lt;br /&gt;
&lt;br /&gt;
Please don&#039;t forget to send a mail to the &#039;&#039;vlc-devel&#039;&#039; mailing list as soon as you create your fork.&lt;br /&gt;
&lt;br /&gt;
== Revert your non-committed local changes ==&lt;br /&gt;
 $ git checkout -f&lt;br /&gt;
&lt;br /&gt;
==Edit or undo not yet pushed commits ==&lt;br /&gt;
This will undo the last commit&lt;br /&gt;
 $ git reset HEAD^&lt;br /&gt;
which is the same as&lt;br /&gt;
 $ git reset master^&lt;br /&gt;
(if your checked-out copy of your tree is master)&lt;br /&gt;
And also the same as&lt;br /&gt;
 $ git reset a44a594 # note that there is no need to use the full sha id&lt;br /&gt;
&lt;br /&gt;
If you have a stack of patch that you have not yet committed you can delete one patch from the list using git rebase --interactive&lt;br /&gt;
 $ git rebase --interactive origin&lt;br /&gt;
  pick eacf185 test&lt;br /&gt;
  pick 56322eb VLMA owner is vlma prod.&lt;br /&gt;
 &lt;br /&gt;
  # Rebase 826757e..56322eb onto 826757e&lt;br /&gt;
  #&lt;br /&gt;
  # Commands:&lt;br /&gt;
  #  pick = use commit&lt;br /&gt;
  #  edit = use commit, but stop for amending&lt;br /&gt;
  #  squash = use commit, but meld into previous commit&lt;br /&gt;
&lt;br /&gt;
== Diff-ing ==&lt;br /&gt;
* You can diff between two branches using&lt;br /&gt;
 $ git diff branch1 branch2&lt;br /&gt;
* You can diff between the previous 10th commit and current using&lt;br /&gt;
 $ git diff HEAD~10 HEAD&lt;br /&gt;
* You can diff between the previous 10th commit and current of the branch &amp;quot;mywork&amp;quot; using&lt;br /&gt;
 $ git diff mywork~10 mywork&lt;br /&gt;
* Imagine that git log is like&lt;br /&gt;
 $ git log&lt;br /&gt;
 commit e0394f269305edd09843257e7c1d1a66aaf48ab3&lt;br /&gt;
 Author: jb &amp;lt;jb&amp;gt;&lt;br /&gt;
 Date:   Fri Apr 13 07:14:48 2007 +0000&lt;br /&gt;
    qt4 - Mousewheel (2)&lt;br /&gt;
 commit e80b339081aa6755f67c9bd8e2aacf93a9a79d95&lt;br /&gt;
 [..]&lt;br /&gt;
 commit ff7004b70fd239e4120deb160e2991bd5237b8df&lt;br /&gt;
 [..]&lt;br /&gt;
 commit a44a594898f981a145cfcace5f16f8973f9eb46f&lt;br /&gt;
 [..]&lt;br /&gt;
 commit 690df705c963cf6bf6f5746d54bc97a85ff91919&lt;br /&gt;
 [..]&lt;br /&gt;
 commit 679f8b1c3e0baa469efa970588b95a625c595d64&lt;br /&gt;
 [..]&lt;br /&gt;
&lt;br /&gt;
 $ git diff a44a594898f981a145cfcace5f16f8973f9eb46f~2 e80b339081aa6755f67c9bd8e2aacf93a9a79d95&lt;br /&gt;
Will be equivalent to:&lt;br /&gt;
 $ git diff ff7004b70fd239e4120deb160e2991bd5237b8df e80b339081aa6755f67c9bd8e2aacf93a9a79d95&lt;br /&gt;
And to:&lt;br /&gt;
 $ git diff HEAD~4 HEAD^&lt;br /&gt;
&lt;br /&gt;
* Remember that to produce a patch you should rather use git format-patch than git diff most of the time.&lt;br /&gt;
&lt;br /&gt;
== Patch-ing ==&lt;br /&gt;
* You can apply patches using&lt;br /&gt;
 $ git apply &amp;lt;patch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tracking regression ==&lt;br /&gt;
git has a great tool called [http://www.kernel.org/pub/software/scm/git/docs/git-bisect.html git-bisect] to help you to track a faulty commit. Imagine you are tracking a bug that is known to appear after 0.8.6 (assuming 0.8.6 is tagged):&lt;br /&gt;
 $ git bisect start&lt;br /&gt;
 $ git bisect bad # tell git current version has the bug you are tracking&lt;br /&gt;
 $ git bisect good 0.8.6 # tell git 0.8.6 didn&#039;t have the bug&lt;br /&gt;
And then git will checkout a certain revision, and ask you to test it. And you simply say whether this version has the bug.&lt;br /&gt;
If it has the bug:&lt;br /&gt;
 $ git bisect bad&lt;br /&gt;
if the bug is not present:&lt;br /&gt;
 $ git bisect good&lt;br /&gt;
And so on by bisection... At the end git will indicate the faulty commit. Most of the time this tool is really efficient to track regression.&lt;br /&gt;
&lt;br /&gt;
If you can provide a script that test the presence of the bug &lt;br /&gt;
 $ git bisect run &amp;lt;script_name&amp;gt;&lt;br /&gt;
will be able to track down the regression by itself. See [http://www.kernel.org/pub/software/scm/git/docs/git-bisect.html git-bisect Documentation].&lt;br /&gt;
&lt;br /&gt;
= Using Git to push to VideoLAN git =&lt;br /&gt;
== Initial requirements ==&lt;br /&gt;
* You must have credentials to push commits into the repository. For other contributors, please read upper [[Git#Submitting_patches_to_the_vlc-devel_or_x264-devel|Submitting patches to the vlc-devel or x264-devel]] paragraph.&lt;br /&gt;
* Make sure you&#039;ve set your name and email in your commits&lt;br /&gt;
 $ git config --global user.name &amp;quot;Your Name&amp;quot;&lt;br /&gt;
 $ git config --global user.email &amp;quot;me@example.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Convert your tree to use your ssh push commit access ==&lt;br /&gt;
 $ vi vlc/.git/config&lt;br /&gt;
And replace&lt;br /&gt;
 git://git.videolan.org/vlc.git&lt;br /&gt;
With&lt;br /&gt;
 git@git.videolan.org:vlc.git&lt;br /&gt;
&lt;br /&gt;
== Staying up to date ==&lt;br /&gt;
  $ git pull --rebase&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to have to type --rebase everytime you pull do:&lt;br /&gt;
 $ git config branch.master.rebase true&lt;br /&gt;
&lt;br /&gt;
This one creates a merge object which is not how SVN worked, so let&#039;s use the first version...&lt;br /&gt;
  $ git pull&lt;br /&gt;
&lt;br /&gt;
== Pushing your work ==&lt;br /&gt;
  $ git log origin..master     # Check what you are going to push&lt;br /&gt;
  $ git push&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- GSoC 2007&lt;br /&gt;
= Using Git to publish your work (for SoC student?) =&lt;br /&gt;
First get the official VLC &#039;&#039;&#039;Soc&#039;&#039;&#039; trunk&lt;br /&gt;
 $ git clone git://git.videolan.org/vlc-soc.git&lt;br /&gt;
 $ cd vlc-soc&lt;br /&gt;
Ask for write access to a branch (called your_name_branch). Now we will make git know that you want to publish on this branch&lt;br /&gt;
 $ git config remote.my_soc_public_branch.url ssh://your_name@altair.videolan.org/home/videolan/gitroot/vlc-soc.git&lt;br /&gt;
Now tell git that you want to automatically push the local master branch to the public your_name_branch:&lt;br /&gt;
 $ git config remote.my_soc_public_branch.push +master:your_name_branch # the &amp;quot;+&amp;quot; will tell git to force update ignoring conflicts&lt;br /&gt;
&lt;br /&gt;
Do some work and commit it to your master branch.&lt;br /&gt;
 $ git commit -a&lt;br /&gt;
You can also sync with the trunk (origin) as needed&lt;br /&gt;
 $ git pull --rebase origin&lt;br /&gt;
And don&#039;t forget to publish your changes:&lt;br /&gt;
 $ git push my_soc_public_branch&lt;br /&gt;
Now you should be able to see your latest changes in your branch via [http://git.videolan.org/ gitweb].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Documentation about git =&lt;br /&gt;
* [http://git-scm.com/ Official Git Website]&lt;br /&gt;
* [http://www.kernel.org/pub/software/scm/git/docs/tutorial.html Git Tutorial]&lt;br /&gt;
* [http://git.or.cz/course/svn.html Switching from SVN to git using cogito]&lt;br /&gt;
* [http://wiki.sourcemage.org/Git_Guide Very good Git guide]&lt;br /&gt;
&lt;br /&gt;
[[Category:Coding]]&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Contrib_Status&amp;diff=25046</id>
		<title>Contrib Status</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Contrib_Status&amp;diff=25046"/>
		<updated>2013-09-17T20:47:34Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: /* Others */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists the libraries needed to have a fully featured {{VLC}}. &amp;lt;br&amp;gt; The additional information in the table refers to the VLC contrib build system (located in extras/contrib in VLC 1.1; in contrib in VLC 2.0+). These versions are against the trunk version. &lt;br /&gt;
&lt;br /&gt;
For information on how to compile {{VLC}} (including the contribs) on your platform see the [[Developers Corner|Build VLC media player]] box on the Developer Corner&#039;s page. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== Codecs  ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin: 1em auto; font-size: smaller; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Contrib Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
! Contrib lib &lt;br /&gt;
! VLC version &lt;br /&gt;
! Most recent version &lt;br /&gt;
! Compile &lt;br /&gt;
! Win32 &lt;br /&gt;
! MacOSX &lt;br /&gt;
! *Nix &lt;br /&gt;
! WinCE &lt;br /&gt;
! Where&amp;amp;nbsp;? &lt;br /&gt;
! License &lt;br /&gt;
! Comment&lt;br /&gt;
|-&lt;br /&gt;
! libvorbis &lt;br /&gt;
| 1.3.3&lt;br /&gt;
| 1.3.3 &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://www.xiph.org/downloads/ Xiph.org] &lt;br /&gt;
| BSD-like&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! libogg &lt;br /&gt;
| 1.3.1&lt;br /&gt;
| 1.3.1&lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| [http://www.xiph.org/downloads/ Xiph.org] &lt;br /&gt;
| BSD-like&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! libtheora &lt;br /&gt;
| &lt;br /&gt;
1.1.1 &lt;br /&gt;
&lt;br /&gt;
| 1.1.1 &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://www.xiph.org/downloads/ Xiph.org] &lt;br /&gt;
| BSD-like&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! speex &lt;br /&gt;
| 1.2rc1 &lt;br /&gt;
| 1.2rc1 &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://www.xiph.org/downloads/ Xiph.org] &lt;br /&gt;
| BSD-like&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! flac &lt;br /&gt;
| 1.3.0&lt;br /&gt;
| 1.3.0&lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://xiph.org/flac/ xiph.org] &lt;br /&gt;
| BSD-like&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! x264 &lt;br /&gt;
| svn &lt;br /&gt;
| svn &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| SVN &lt;br /&gt;
| GPLv2+&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! a52 &lt;br /&gt;
| 0.7.4 &lt;br /&gt;
| 0.7.4 &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://liba52.sf.net liba52.sf] &lt;br /&gt;
| GPLv2+&amp;lt;br&amp;gt; &lt;br /&gt;
| Not likely to be updated&lt;br /&gt;
|-&lt;br /&gt;
! MPEG2DEC &lt;br /&gt;
| 0.5.1 &lt;br /&gt;
| 0.5.1 &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| [http://libmpeg2.sf.net libmpeg2.sf] &lt;br /&gt;
| GPLv2+&amp;lt;br&amp;gt; &lt;br /&gt;
| Not likely to be updated&lt;br /&gt;
|-&lt;br /&gt;
! faad2 &lt;br /&gt;
| 2.7 &lt;br /&gt;
| 2.7 &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://www.audiocoding.com/faad2.html audiocoding] &lt;br /&gt;
| GPLv2+&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! faac &lt;br /&gt;
| 1.28 &lt;br /&gt;
| 1.28 &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://www.audiocoding.com/faac.html audiocoding] &lt;br /&gt;
| LGPL for modifications&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! lame &lt;br /&gt;
| 3.99.5 &lt;br /&gt;
| 3.99.5 &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://sourceforge.net/projects/lame/files/lame/ sf.net] &lt;br /&gt;
| LGPLv2+&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! FFmpeg &lt;br /&gt;
| SVN &lt;br /&gt;
| SVN &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| SVN &lt;br /&gt;
| GPLv2/3/LGPL&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! libmad &lt;br /&gt;
| 0.15.1b &lt;br /&gt;
| 0.15.1b &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://sourceforge.net/project/showfiles.php?group_id=12349&amp;amp;package_id=86999 SF] &lt;br /&gt;
| GPLv2+&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! orc &lt;br /&gt;
| 0.4.18&lt;br /&gt;
| 0.4.18&lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://code.entropywave.com/download/orc/ orc ] &lt;br /&gt;
| Two-Clause BSD &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! schroedinger &lt;br /&gt;
| 1.0.11 &lt;br /&gt;
| 1.0.11 &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://www.diracvideo.org/download/schroedinger/ diracvideo.org] &lt;br /&gt;
| GPLv2/LGPL 2.1/MIT&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! libdca &lt;br /&gt;
| SVN &lt;br /&gt;
| SVN &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| SVN &lt;br /&gt;
| GPLv2+&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! twolame &lt;br /&gt;
| 0.3.13 &lt;br /&gt;
| 0.3.13 &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://www.twolame.org/ twolame.org] &lt;br /&gt;
| LGPL 2.1+&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! libmpcdec &lt;br /&gt;
| r481&lt;br /&gt;
| r481&lt;br /&gt;
| {{Up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://www.musepack.net/index.php?pg=src musepack] &lt;br /&gt;
| BSD&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! Tremor &lt;br /&gt;
| SVN &lt;br /&gt;
| SVN &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| SVN &lt;br /&gt;
| BSD-like &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! libass &lt;br /&gt;
| 0.10.1&lt;br /&gt;
| 0.10.1&lt;br /&gt;
| {{up-to-date}}&lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://code.google.com/p/libass/downloads/list Google Code]&amp;lt;br&amp;gt; &lt;br /&gt;
| Simplified 2-clause BSD license&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! libgsm&lt;br /&gt;
| 1.0.13&lt;br /&gt;
| 1.0.13&lt;br /&gt;
| {{up-to-date}}&lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://libgsm.sourcearchive.com/ SourceArchive] &lt;br /&gt;
| Simplified 2-clause BSD license&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! libzvbi&lt;br /&gt;
| 0.2.35&lt;br /&gt;
| 0.2.35&lt;br /&gt;
| {{up-to-date}}&lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://sourceforge.net/projects/zapping/files/zvbi/ SF] &lt;br /&gt;
| ???&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! mfx_dispatch&lt;br /&gt;
| ?.?&lt;br /&gt;
| ?.?&lt;br /&gt;
| {{up-to-date}}&lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://git.videolan.org/?p=mfx_dispatch.git;a=summary videolan.org] &lt;br /&gt;
| ???&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! Opus&lt;br /&gt;
| 1.0.3&lt;br /&gt;
| 1.0.3&lt;br /&gt;
| {{up-to-date}}&lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://www.opus-codec.org/downloads/ opus-codec.org] &lt;br /&gt;
| three-clause BSD&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Demuxers and Muxers  ===&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin: 1em auto; font-size: smaller; text-align: center; width: 100%;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Contrib Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
! Contrib lib &lt;br /&gt;
! VLC version &lt;br /&gt;
! Most recent version &lt;br /&gt;
! Compile &lt;br /&gt;
! Win32 &lt;br /&gt;
! MacOSX &lt;br /&gt;
! *Nix &lt;br /&gt;
! WinCE &lt;br /&gt;
! Where &lt;br /&gt;
! License&amp;lt;br&amp;gt; &lt;br /&gt;
! Comment&lt;br /&gt;
|-&lt;br /&gt;
! libebml &lt;br /&gt;
| 1.3.0&lt;br /&gt;
| 1.3.0 &lt;br /&gt;
| {{up-to-date}}&lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://www.matroska.org/downloads/linux.html matroska.org] &lt;br /&gt;
| LGPLv2.1+&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! libmatroska &lt;br /&gt;
| 1.4.0&lt;br /&gt;
| 1.4.0&lt;br /&gt;
| {{up-to-date}}&lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://www.matroska.org/downloads/linux.html matroska.org] &lt;br /&gt;
| LGPLv2.1+&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! libdvbpsi &lt;br /&gt;
| 0.2.2 &lt;br /&gt;
| 0.2.2 &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| [http://www.videolan.org/developers/libdvbpsi.html libdvbpsi] &lt;br /&gt;
| LGPLv2.1+&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! libmodplug &lt;br /&gt;
| 0.8.8.4 &lt;br /&gt;
| 0.8.8.4 &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://modplug-xmms.sourceforge.net/ modplug sur sf.net] &lt;br /&gt;
| Public domain&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! GME&lt;br /&gt;
| 0.6.0&lt;br /&gt;
| 0.6.0&lt;br /&gt;
| {{up-to-date}}&lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [http://code.google.com/p/game-music-emu/downloads/list GME on Google]&lt;br /&gt;
| LGPLv2.1+&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Access  ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin: 1em auto; font-size: smaller; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Contrib Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
! Contrib lib &lt;br /&gt;
! VLC version &lt;br /&gt;
! Most recent version &lt;br /&gt;
! Compile &lt;br /&gt;
! Win32 &lt;br /&gt;
! MacOSX &lt;br /&gt;
! *Nix &lt;br /&gt;
! WinCE &lt;br /&gt;
! Where&amp;amp;nbsp;? &lt;br /&gt;
! License &lt;br /&gt;
! Comment&lt;br /&gt;
|-&lt;br /&gt;
! shout &lt;br /&gt;
| 2.3.1&lt;br /&gt;
| 2.3.1 &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://www.icecast.org/download.php icecast.org] &lt;br /&gt;
| LGPLv2.1+ &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! libdvdcss &lt;br /&gt;
| 1.2.13&lt;br /&gt;
| 1.2.13&lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://download.videolan.org/pub/libdvdcss/?C=N;O=D libdvdcss on v.o] &lt;br /&gt;
| GPLv2+ &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! libdvdread &lt;br /&gt;
| 4.2.0 &lt;br /&gt;
| 4.2.0 &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://dvdnav.mplayerhq.hu/ dvd.sf.net] &lt;br /&gt;
| GPLv2+ &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! libdvdnav &lt;br /&gt;
| 4.2.0 &lt;br /&gt;
| 4.2.0 &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://dvdnav.mplayerhq.hu/ dvd.sf.net] &lt;br /&gt;
| GPLv2+ &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! libbluray&lt;br /&gt;
| 0.2.2 &lt;br /&gt;
| 0.2.2 &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://www.videolan.org/developers/libbluray.html videolan.org] &lt;br /&gt;
| LGPLv2.1+ &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! livedotcom &lt;br /&gt;
| latest trunk &lt;br /&gt;
| latest trunk &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| [http://www.live555.com/mediaServer/#downloading live555] &lt;br /&gt;
| LGPLv2.1+ &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! libcddb &lt;br /&gt;
| 1.3.2 &lt;br /&gt;
| 1.3.2 &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://libcddb.sourceforge.net/download.html libcddb.sf.net] &lt;br /&gt;
| LGPLv2+ &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! libcdio &lt;br /&gt;
| 0.80 &lt;br /&gt;
| 0.82 &lt;br /&gt;
| {{Untested}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://ftp.gnu.org/gnu/libcdio/?M=D gnu.org] &lt;br /&gt;
| GPLv2+ &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! VCDimager &lt;br /&gt;
| 0.7.23 &lt;br /&gt;
| 0.7.23 &lt;br /&gt;
| {{Up-to-date}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://www.vcdimager.org/pub/vcdimager/vcdimager-0.7/ vcdimager] &lt;br /&gt;
| GPLv2+ &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! libgpg-error &lt;br /&gt;
| 1.12&lt;br /&gt;
| 1.12&lt;br /&gt;
| {{Up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [ftp://ftp.gnupg.org/gcrypt/libgpg-error/ gnupg.org] &lt;br /&gt;
| LGPLv2.1+ &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! libgcrypt &lt;br /&gt;
| 1.5.3&lt;br /&gt;
| 1.5.3&lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [ftp://ftp.gnupg.org/gcrypt/libgcrypt/ gnupg.org] &lt;br /&gt;
| LGPLv2.1+ &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! gnuTLS &lt;br /&gt;
| 3.1.12&lt;br /&gt;
| 3.1.13&lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://gnutls.org/ gnutls.org] &lt;br /&gt;
| LGPLv2.1+(lib)/GPLv3(extra) &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! Opendaap &lt;br /&gt;
| 0.4.0 &lt;br /&gt;
| 0.4.0 &lt;br /&gt;
| {{Up-to-date}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! libxml2 &lt;br /&gt;
| 2.9.1&lt;br /&gt;
| 2.9.1&lt;br /&gt;
| {{Up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [ftp://xmlsoft.org/libxml2/ xmlsoft ftp] &lt;br /&gt;
| MIT License&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! VNCServer &lt;br /&gt;
| 0.9.9&lt;br /&gt;
| 0.9.9 &lt;br /&gt;
| {{Up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://libvncserver.sourceforge.net/ sf.net] &lt;br /&gt;
| GPLv2+&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Images  ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin: 1em auto; font-size: smaller; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Contrib Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
! Contrib lib &lt;br /&gt;
! VLC version &lt;br /&gt;
! Most recent version &lt;br /&gt;
! Compile &lt;br /&gt;
! Win32 &lt;br /&gt;
! MacOSX &lt;br /&gt;
! *Nix &lt;br /&gt;
! WinCE &lt;br /&gt;
! Where &lt;br /&gt;
! License&amp;lt;br&amp;gt; &lt;br /&gt;
! Comment&lt;br /&gt;
|-&lt;br /&gt;
! libpng &lt;br /&gt;
| 1.5.17&lt;br /&gt;
| 1.6.3&lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://www.libpng.org/pub/png/libpng.html libpng.org] &lt;br /&gt;
| Very open license, approaching BSD 2-clause&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! libjpeg &lt;br /&gt;
| 9&lt;br /&gt;
| 9 &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://www.ijg.org/files/ ijg.org] &lt;br /&gt;
| 1. We don&#039;t promise that this software works. &lt;br /&gt;
2. You can use this software for whatever you want. You don&#039;t have to pay us.&amp;lt;br&amp;gt; 3. You may not pretend that you wrote this software. If you use it in a program, you must acknowledge somewhere in your documentation that you&#039;ve used the IJG code. &lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! libtiff &lt;br /&gt;
| 4.0.3&lt;br /&gt;
| 4.0.3 &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [ftp://ftp.remotesensing.org/pub/libtiff/ Main libtiff ftp] &lt;br /&gt;
| BSD with Copyright attribution &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! SDL &lt;br /&gt;
| 1.2.15 &lt;br /&gt;
| 1.2.15 &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://www.libsdl.org/download-1.2.php libsdl.org] &lt;br /&gt;
| LGPLv2.1+&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! SDL_image &lt;br /&gt;
| 1.2.12 &lt;br /&gt;
| 1.2.12 &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://www.libsdl.org/projects/SDL_image/ libsdl.org] &lt;br /&gt;
| LGPLv2.1+&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Tools  ===&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin: 1em auto; font-size: smaller; text-align: center; width: 100%;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Contrib Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
! Contrib lib &lt;br /&gt;
! VLC version &lt;br /&gt;
! Most recent version &lt;br /&gt;
! Compile &lt;br /&gt;
! Win32 &lt;br /&gt;
! MacOSX &lt;br /&gt;
! *Nix &lt;br /&gt;
! WinCE &lt;br /&gt;
! Where&amp;amp;nbsp;! &lt;br /&gt;
! License&amp;lt;br&amp;gt; &lt;br /&gt;
! Comment&lt;br /&gt;
|-&lt;br /&gt;
! Autoconf &lt;br /&gt;
| 2.68 &lt;br /&gt;
| 2.68 &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://ftp.gnu.org/gnu/autoconf/?M=D Gnu(slow)] &lt;br /&gt;
| We don&#039;t care&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! automake &lt;br /&gt;
| 1.11 &lt;br /&gt;
| 1.11 &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://ftp.gnu.org/gnu/automake/?M=D Gnu(slow)] &lt;br /&gt;
| We don&#039;t care&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Pkgconfig &lt;br /&gt;
| 0.26 &lt;br /&gt;
| 0.26 &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://pkgconfig.freedesktop.org/wiki/ fd.org] &lt;br /&gt;
| We don&#039;t care&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! libtool &lt;br /&gt;
| 2.2.10 &lt;br /&gt;
| 2.2.10 &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://www.gnu.org/software/libtool/ GNU-libtool] &lt;br /&gt;
| We don&#039;t care&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! libiconv &lt;br /&gt;
| 1.14 &lt;br /&gt;
| 1.14&lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| [http://www.gnu.org/software/libiconv/#downloading Gnu] &lt;br /&gt;
| LGPLv2.0+&amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! gettext &lt;br /&gt;
| 0.18.3&lt;br /&gt;
| 0.18.3&lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://ftp.gnu.org/gnu/gettext/ Gnu(slow)] &lt;br /&gt;
| LGPLv2.1+&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! zlib &lt;br /&gt;
| 1.2.8&lt;br /&gt;
| 1.2.8 &lt;br /&gt;
| {{Up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://www.zlib.net/ zlib] &lt;br /&gt;
| Free &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! freetype2 &lt;br /&gt;
| 2.4.12&lt;br /&gt;
| 2.5.0&lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://sourceforge.net/projects/freetype/files/freetype2/ freetype.org] &lt;br /&gt;
| dual FreeType (BSD+advertisement) or GPLv2&amp;lt;br&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! fribidi &lt;br /&gt;
| 0.19.5&lt;br /&gt;
| 0.19.5 &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://fribidi.org/download/ fribidi.org] &lt;br /&gt;
| LGPLv2.1+&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! fontconfig &lt;br /&gt;
| 2.10.2&lt;br /&gt;
| 2.10.2&lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://www.freedesktop.org/software/fontconfig/release/?C=M;O=D fd.o] &lt;br /&gt;
| BSD&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Others  ===&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin: 1em auto; font-size: smaller; text-align: center; width: 100%;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Contrib Status&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
! Contrib lib &lt;br /&gt;
! VLC version &lt;br /&gt;
! Most recent version &lt;br /&gt;
! Compile &lt;br /&gt;
! Win32 &lt;br /&gt;
! MacOSX &lt;br /&gt;
! *Nix &lt;br /&gt;
! WinCE &lt;br /&gt;
! Where &lt;br /&gt;
! License &lt;br /&gt;
! Comment&lt;br /&gt;
|-&lt;br /&gt;
! taglib &lt;br /&gt;
| 1.8.0&lt;br /&gt;
| 1.8.0&lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| http://developer.kde.org/~wheeler/taglib.html &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! goom2k4 &lt;br /&gt;
| 2k4-0 &lt;br /&gt;
| 2k4-0 &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! projectM &lt;br /&gt;
| 2.0.1 &lt;br /&gt;
| 2.0.1 &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}}&lt;br /&gt;
| http://sourceforge.net/projects/projectm/files/&lt;br /&gt;
| LGPLv2.1+&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! libcaca &lt;br /&gt;
| 0.99-beta17 &lt;br /&gt;
| 0.99-beta17 &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Qt &lt;br /&gt;
| 4.8.5&lt;br /&gt;
| 5.1&lt;br /&gt;
| {{up-to-date}} for 4.x&lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| [http://qt-project.org/ qt-project.org]&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! portaudio &lt;br /&gt;
| 19 &lt;br /&gt;
| 19 &lt;br /&gt;
| {{up-to-date}} &lt;br /&gt;
| {{Yes}}&amp;lt;br&amp;gt; &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Commented for Win32&lt;br /&gt;
|-&lt;br /&gt;
! Upnp &lt;br /&gt;
| 1.6.18&lt;br /&gt;
| 1.6.18&lt;br /&gt;
| {{up-to-date}}&lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| http://pupnp.sourceforge.net/ &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! expat &lt;br /&gt;
| 2.0.0 &lt;br /&gt;
| 2.0.1 &lt;br /&gt;
| {{untested}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Commented for MacOSX&lt;br /&gt;
|-&lt;br /&gt;
! yasm &lt;br /&gt;
| 1.1.0 &lt;br /&gt;
| 1.1.0 &lt;br /&gt;
| {{untested}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{Needed}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| {{unNeeded}} &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| For Intel-based Macs&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! SQLite &lt;br /&gt;
| 3.6 &lt;br /&gt;
| 3.6 &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Contrib lib &lt;br /&gt;
! VLC version &lt;br /&gt;
! Most recent version &lt;br /&gt;
! Compile &lt;br /&gt;
! Win32 &lt;br /&gt;
! MacOSX &lt;br /&gt;
! *Nix &lt;br /&gt;
! WinCE &lt;br /&gt;
! &amp;lt;br&amp;gt;&lt;br /&gt;
! &amp;lt;br&amp;gt;&lt;br /&gt;
! Comment&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Single command installation in Ubuntu 11.10 ===&lt;br /&gt;
&lt;br /&gt;
Note: &lt;br /&gt;
* no longer available and not needed libebml2 libdvbpsi6 libmatroska2&lt;br /&gt;
* added libxcb-composit0-dev&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get -y install libvorbis-dev libogg-dev libtheora-dev speex libspeex-dev flac libflac-dev \&lt;br /&gt;
   x264 libx264-dev a52-0.7.4 liba52-0.7.4-dev mpeg2dec libmpeg2-4-dev faad libfaad-dev faac libfaac-dev \&lt;br /&gt;
   lame libmp3lame-dev ffmpeg libavdevice-dev libmad0 libmad0-dev dirac libdirac-dev liboil-dev libschroedinger-dev \&lt;br /&gt;
   libebml-dev libdca-dev twolame libtwolame-dev libmpcdec-dev libvorbisidec1 libvorbisidec-dev libass-dev libass4 \&lt;br /&gt;
   libmatroska-dev  libdvbpsi-dev libmodplug1 libmodplug-dev libshout3 libshout3-dev  libdvdread4 libdvdnav4 \&lt;br /&gt;
   libdvdnav-dev livemedia-utils liblivemedia-dev libcddb2 libcddb2-dev libcdio10 libcdio-dev libxcb-composite0-dev\&lt;br /&gt;
   libcdio-utils vcdimager libvcdinfo0 libvcdinfo-dev libgpg-error0 libgpg-error-dev libgcrypt11 libgcrypt11-dev \&lt;br /&gt;
   gnutls-bin libgnutls26 libgnutls-dev libdap10 libdap-bin libdap-dev libxml2 libxml2-dev libpng12-0 libpng12-dev \&lt;br /&gt;
   libjpeg8 libtiff4 libsdl1.2-dev libsdl-image1.2 libsdl-image1.2-dev libc-bin gettext libfreetype6 libfreetype6-dev \&lt;br /&gt;
   libfribidi-dev libfribidi0 zlib1g zlib1g-dev libtag1-dev libcaca0 libcaca-dev caca-utils libqt4-core libqt4-dev \&lt;br /&gt;
   libportaudio2 libportaudio-dev libupnp-dev libupnp4 libupnp3 libexpat1 libexpat1-dev yasm libxcb-xv0 libxcb-xv0-dev \&lt;br /&gt;
   libx11-xcb1 libx11-xcb-dev&lt;br /&gt;
=== Single command installation in Ubuntu  ===&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get -y install libvorbis-dev libogg-dev libtheora-dev speex libspeex-dev flac libflac-dev \&lt;br /&gt;
   x264 libx264-dev a52-0.7.4 liba52-0.7.4-dev mpeg2dec libmpeg2-4-dev faad libfaad-dev faac libfaac-dev \&lt;br /&gt;
   lame libmp3lame-dev ffmpeg libavdevice-dev libmad0 libmad0-dev dirac libdirac-dev liboil-dev libschroedinger-dev \&lt;br /&gt;
   libdca-dev twolame libtwolame-dev libmpcdec-dev libvorbisidec1 libvorbisidec-dev libass-dev libass4 libebml2 \&lt;br /&gt;
   libebml-dev libmatroska2 libmatroska-dev libdvbpsi6 libdvbpsi-dev libmodplug1 libmodplug-dev libshout3 libshout3-dev \&lt;br /&gt;
   libdvdread4 libdvdnav4 libdvdnav-dev livemedia-utils liblivemedia-dev libcddb2 libcddb2-dev libcdio10 libcdio-dev \&lt;br /&gt;
   libcdio-utils vcdimager libvcdinfo0 libvcdinfo-dev libgpg-error0 libgpg-error-dev libgcrypt11 libgcrypt11-dev \&lt;br /&gt;
   gnutls-bin libgnutls26 libgnutls-dev libdap10 libdap-bin libdap-dev libxml2 libxml2-dev libpng12-0 libpng12-dev \&lt;br /&gt;
   libjpeg8 libtiff4 libsdl1.2-dev libsdl-image1.2 libsdl-image1.2-dev libc-bin gettext libfreetype6 libfreetype6-dev \&lt;br /&gt;
   libfribidi-dev libfribidi0 zlib1g zlib1g-dev libtag1-dev libcaca0 libcaca-dev caca-utils libqt4-core libqt4-dev \&lt;br /&gt;
   libportaudio2 libportaudio-dev libupnp-dev libupnp4 libupnp3 libexpat1 libexpat1-dev yasm libxcb-xv0 libxcb-xv0-dev \&lt;br /&gt;
   libx11-xcb1 libx11-xcb-dev libswscale-dev lua libxcb-composite0-dev&lt;br /&gt;
&lt;br /&gt;
=== Single command installation on Fedora ===&lt;br /&gt;
 $ yum install a52dec a52dec-devel caca-utils dirac dirac-devel expat expat-devel faac faac-devel faad2 faad2-devel ffmpeg \&lt;br /&gt;
   ffmpeg-libs flac flac-devel fribidi-devel gettext gnutls gnutls-devel gnutls-utils lame lame-devel live555 live555-devel \&lt;br /&gt;
   libass libass-devel libcaca libcaca-devel libcddb libcddb-devel libcdio libcdio-devel libdap libdap-devel libdca-devel \&lt;br /&gt;
   libdvbpsi libdvbpsi-devel libdvdnav libdvdnav-devel libdvdread libebml libebml-devel freetype freetype-devel fribidi \&lt;br /&gt;
   libgcrypt libgcrypt-devel libgpg-error libgpg-error-devel libjpeg-turbo libmad libmad-devel libmatroska libmatroska-devel \&lt;br /&gt;
   libmodplug libmodplug-devel libmpcdec-devel libmpeg2-devel libogg-devel liboil-devel libpng libpng-devel libshout \&lt;br /&gt;
   libshout-devel libtheora-devel libtiff libupnp libupnp-devel libvorbis-devel libX11 libX11-devel libxcb libxcb-devel \&lt;br /&gt;
   libxml2 libxml2-devel mpeg2dec portaudio-devel qt4 qt4-devel schroedinger-devel SDL-devel SDL_image SDL_image-devel speex \&lt;br /&gt;
   speex-devel taglib-devel twolame twolame-devel vcdimager vcdimager-devel vcdimager-libs x264 x264-devel yasm zlib \&lt;br /&gt;
   lua xcb-util-devel libsamplerate-devel&lt;br /&gt;
&lt;br /&gt;
[[Category:Coding]] [[Category:Building]] [[Category:Libraries]]&lt;br /&gt;
&lt;br /&gt;
{{Documentation}}&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Win32Compile&amp;diff=23141</id>
		<title>Win32Compile</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Win32Compile&amp;diff=23141"/>
		<updated>2012-09-05T17:38:00Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: add link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How to compile {{VLC}} for [[Windows]].&lt;br /&gt;
&lt;br /&gt;
== Building Methods&amp;lt;br&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
If you want to build VLC from source, you have several choices: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method &lt;br /&gt;
! Documentation &lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Cross-compile with Mingw on Linux&#039;&#039;&#039; &lt;br /&gt;
| This page &lt;br /&gt;
| &#039;&#039;&#039;Preferred&#039;&#039;&#039; method (uses cross compilation). On Windows, you should do it in a virtual machine.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Native compilation&#039;&#039;&#039; with &#039;&#039;&#039;[http://www.mingw.org MSYS+MINGW]&#039;&#039;&#039; &lt;br /&gt;
| [[Win32CompileMSYSNew]] &lt;br /&gt;
| &#039;&#039;&#039;Native&#039;&#039;&#039; compilation method. MSYS is a minimal build environment to compile Unixish projects under Microsoft Windows.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Native compilation&#039;&#039;&#039; with &#039;&#039;&#039;cygwin&#039;&#039;&#039; &lt;br /&gt;
| [[Win32CompileCygwinNew]] &lt;br /&gt;
| Build using cygwin as your compile environment. &#039;&#039;&#039;Error&#039;&#039;&#039; prone, and &#039;&#039;&#039;slow&#039;&#039;&#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Obtaining the toolchain  ==&lt;br /&gt;
&lt;br /&gt;
=== Compiler and binary toolchain ===&lt;br /&gt;
&lt;br /&gt;
To compile VLC for Windows (32-bits or 64-bits), the Mingw-w64 toolchain is required:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Debian/Ubuntu&#039;&#039;&#039;: run &amp;lt;code&amp;gt;apt-get install gcc-mingw-w64-i686&amp;lt;/code&amp;gt;&lt;br /&gt;
(on Debian you must be on wheezy or above to find this package)&lt;br /&gt;
&lt;br /&gt;
Up to versions 2.0.x, VLC was compiled with the older mingw32 toolchain, which only supports 32-bits Windows. If you have problems with mingw-w64, you can try mingw32 instead:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Debian/Ubuntu&#039;&#039;&#039;: run &amp;lt;code&amp;gt;apt-get install gcc-mingw32 mingw32-binutils&amp;lt;/code&amp;gt;. Note that at least version 3.17 of Mingw32 is required, which Debian does not provide. You may obtain mingw32-runtime-3.17 [http://people.videolan.org/~jb/debian/mingw32-runtime_3.17.0-0videolan_all.deb here].&lt;br /&gt;
* &#039;&#039;&#039;Gentoo&#039;&#039;&#039; users can &amp;lt;code&amp;gt;emerge crossdev &amp;amp;amp;&amp;amp;amp; crossdev mingw32&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;ArchLinux&#039;&#039;&#039; users can &amp;lt;code&amp;gt;pacman -S mingw32-gcc&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Fedora&#039;&#039;&#039; users should read [[Win32Compile Under Fedora]]&lt;br /&gt;
* Other &#039;&#039;&#039;Linux&#039;&#039;&#039; systems may attempt http://www.mingw.org/wiki/LinuxCrossMinGW&lt;br /&gt;
* Native-compile with &#039;&#039;&#039;[http://www.mingw.org MSYS+MINGW]&#039;&#039;&#039;, should read the [[Win32CompileMSYSNew|documentation]]&lt;br /&gt;
* Native-compile with &#039;&#039;&#039;[http://www.cygwin.com Cygwin]&#039;&#039;&#039;, should read the [[Win32CompileCygwinNew|documentation]]&lt;br /&gt;
&lt;br /&gt;
=== Development tools ===&lt;br /&gt;
You will also need:&lt;br /&gt;
* lua5.1&lt;br /&gt;
* all autotools: libtool, automake, autoconf, autopoint, make, gettext&lt;br /&gt;
* pkg-config&lt;br /&gt;
* git&lt;br /&gt;
* subversion&lt;br /&gt;
* cmake, cvs if you want to rebuild contribs&lt;br /&gt;
* zip [for creating .zip package], p7zip [for .7z package], nsis [for .exe auto-installer], bzip2 [for &#039;make prebuild]&lt;br /&gt;
&lt;br /&gt;
=== Host triplet ===&lt;br /&gt;
A number of example commands below include the identifier of the toolchain. This value is &#039;&#039;&#039;essential&#039;&#039;&#039;: it instructs the build system to use the correct toolchain and compile the program for Windows. Without the value, the build system will perform a native compilation for Linux (or whatever your computer runs). With an incorrect value, the build will fail.&lt;br /&gt;
&lt;br /&gt;
This is known as the &#039;&#039;host triplet&#039;&#039;, although it&#039;s more of a pair than a triplet in the case of Mingw. The exact value depends on your installation of the toolchain. Notably on Debian/Ubuntu, these values must be used:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;i686-w64-mingw32&#039;&#039; for Windows 32-bits, using the Mingw-w64 toolchain&lt;br /&gt;
* &#039;&#039;x86_64-w64-mingw32&#039;&#039; for Windows 64-bits, using the Mingw-w64 toolchain&lt;br /&gt;
* &#039;&#039;i586-mingw32msvc&#039;&#039; for Windows 32-bits, using the Mingw32 toolchain&lt;br /&gt;
&lt;br /&gt;
Again, you &#039;&#039;&#039;MUST&#039;&#039;&#039; substitute the value in the following command snippets.&lt;br /&gt;
&lt;br /&gt;
== Get the source code ==&lt;br /&gt;
 $ git clone git://git.videolan.org/vlc.git vlc&lt;br /&gt;
&lt;br /&gt;
See [[Git]] for more information.&lt;br /&gt;
&lt;br /&gt;
== Go into the VLC directory ==&lt;br /&gt;
 $ cd vlc&lt;br /&gt;
&lt;br /&gt;
== Prepare [[Contrib Status|3rd party libraries]]  ==&lt;br /&gt;
&lt;br /&gt;
Before compiling VLC, you need lots of other libraries. Here is how to get them: &lt;br /&gt;
&lt;br /&gt;
  $ mkdir -p contrib/win32&lt;br /&gt;
  $ cd contrib/win32&lt;br /&gt;
  $ ../bootstrap --host=i586-mingw32msvc&lt;br /&gt;
  $ make prebuilt&lt;br /&gt;
&lt;br /&gt;
or, if you want to compile the contribs yourself and are feeling adventurous and have lots of time to burn,&lt;br /&gt;
  # apt-get install subversion yasm cvs cmake&lt;br /&gt;
&lt;br /&gt;
  $ mkdir -p contrib/win32&lt;br /&gt;
  $ cd contrib/win32&lt;br /&gt;
  $ ../bootstrap --host=i586-mingw32msvc&lt;br /&gt;
  $ make fetch&lt;br /&gt;
  $ make&lt;br /&gt;
&lt;br /&gt;
=== Linux 64-bit ===&lt;br /&gt;
&lt;br /&gt;
If you are on Linux &#039;&#039;&#039;64-bit&#039;&#039;&#039;, you &#039;&#039;&#039;SHOULD&#039;&#039;&#039; remove some files, or install the lib32 packages (ia32-libs, multilibs, etc...)&lt;br /&gt;
&lt;br /&gt;
  $ rm -f ../i586-mingw32msvc/bin/moc ../i586-mingw32msvc/bin/uic ../i586-mingw32msvc/bin/rcc&lt;br /&gt;
&lt;br /&gt;
In addition, install the &#039;&#039;qt4-tools&#039;&#039; package.&lt;br /&gt;
&lt;br /&gt;
=== Fix your contrib path ===&lt;br /&gt;
&lt;br /&gt;
If your Mingw prefix is not &#039;&#039;i586-mingw32msvc&#039;&#039; (you are NOT on Debian or Ubuntu), create a symlink to contribs:&lt;br /&gt;
  $ ln -sf ../i586-mingw32msvc ../i486-mingw32&lt;br /&gt;
&lt;br /&gt;
=== Go Back  ===&lt;br /&gt;
&lt;br /&gt;
Go back to the VLC source directory: &lt;br /&gt;
&lt;br /&gt;
  $ cd -&lt;br /&gt;
&lt;br /&gt;
== Configuring the build  ==&lt;br /&gt;
&lt;br /&gt;
=== Bootstrap ===&lt;br /&gt;
First, prepare the tree:&lt;br /&gt;
  $ ./bootstrap&lt;br /&gt;
&lt;br /&gt;
=== Configure ===&lt;br /&gt;
Then you can to configure the build with the &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; script. &lt;br /&gt;
&lt;br /&gt;
Create a subfolder:&lt;br /&gt;
  $ mkdir win32 &amp;amp;&amp;amp; cd win32&lt;br /&gt;
&lt;br /&gt;
Use the standard configuration: &lt;br /&gt;
 $ ../extras/package/win32/configure.sh --host=i586-mingw32msvc&lt;br /&gt;
&#039;&#039;&#039;NB&#039;&#039;&#039;: use &#039;&#039;&#039;YOUR&#039;&#039;&#039; Xcompiling prefix here, like &#039;&#039;i486-mingw32&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can run configure manually:&lt;br /&gt;
 $ ../configure --host=i586-mingw32msvc&lt;br /&gt;
See &amp;lt;code&amp;gt;&#039;../configure --help&#039;&amp;lt;/code&amp;gt; for more information.&lt;br /&gt;
&lt;br /&gt;
== Building VLC  ==&lt;br /&gt;
&lt;br /&gt;
Once configured, to build VLC, just run:&lt;br /&gt;
  $ make&lt;br /&gt;
&lt;br /&gt;
== Packaging VLC ==&lt;br /&gt;
Once the compilation is done, you can build self-contained VLC packages with the following &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; rules: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command &lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win-common&amp;lt;/code&amp;gt;&lt;br /&gt;
| Creates a subdirectory named &amp;lt;code&amp;gt;vlc-x.x.x&amp;lt;/code&amp;gt; with all the binaries. You can run VLC directly from this directory.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win-strip&amp;lt;/code&amp;gt; (might be package-win32-strip)&lt;br /&gt;
| Same as above but will create &#039;stripped&#039; binaries (that is, smallest size, unusable with a debugger).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win32-7zip&amp;lt;/code&amp;gt;&lt;br /&gt;
| Same as above but will package the directory in a 7z file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win32-zip&amp;lt;/code&amp;gt;&lt;br /&gt;
| Same as above but will package the directory in a zip file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win32&amp;lt;/code&amp;gt;&lt;br /&gt;
| Same as above but will also create an auto-installer package. You must have NSIS installed in its default location for this to work.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Well done—you&#039;re ready to use VLC!&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[[Category:Building]]&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Java_bindings&amp;diff=22514</id>
		<title>Java bindings</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Java_bindings&amp;diff=22514"/>
		<updated>2012-04-11T18:36:06Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: all the JVLC links are dead, remove it. It&amp;#039;s dead, jim!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;At the moment the JVLC project is dead, as there is no maintainer for it.  If you want information on it, see the wiki history &#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;At the moment the VLCJ project is active, please look there instead.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= VLCJ =&lt;br /&gt;
&lt;br /&gt;
VLCJ are Java bindings for VLC. It is managed as an external project at: http://code.google.com/p/vlcj/&lt;br /&gt;
There is an thread about it at: http://forum.videolan.org/viewtopic.php?f=32&amp;amp;t=56939&amp;amp;start=15&lt;br /&gt;
Though it has its own forums for asking questions.&lt;br /&gt;
&lt;br /&gt;
= Java control of VLC =&lt;br /&gt;
See this [[https://forum.videolan.org/viewtopic.php?f=14&amp;amp;t=85347 forum topic]] for information on controlling VLC via its RC interface from a separate java program.&lt;br /&gt;
&lt;br /&gt;
[[Category:Bindings]]&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_Source_code&amp;diff=20406</id>
		<title>VLC Source code</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_Source_code&amp;diff=20406"/>
		<updated>2011-12-01T22:09:42Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: /* Latest source packages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Check the [http://www.videolan.org/developers/vlc/NEWS News].&lt;br /&gt;
&lt;br /&gt;
== Releases Sources ==&lt;br /&gt;
&lt;br /&gt;
=== Latest Source ===&lt;br /&gt;
&lt;br /&gt;
{{VLC}} Source Code can be downloaded here ({{VLC:latest version}})&lt;br /&gt;
: &#039;&#039;&#039;http://www.videolan.org/vlc/download-sources.html&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Older Source ===&lt;br /&gt;
&lt;br /&gt;
You can get all the versions of VLC, using the [http://download.videolan.org/pub/vlc/ VLC FTP Archive].&lt;br /&gt;
&lt;br /&gt;
You can also get it with the tags from the VLC&#039;s [[Git]].&lt;br /&gt;
&lt;br /&gt;
== Development Sources ==&lt;br /&gt;
&lt;br /&gt;
=== Latest source packages ===&lt;br /&gt;
If you want to get the latest bleeding edge development source package then go to this link:&lt;br /&gt;
 [http://repo.or.cz/w/vlc.git http://repo.or.cz/w/vlc.git] &lt;br /&gt;
and download the first listed tar.gz or .zip file.  Or you can check it out by using [[Git]].&lt;br /&gt;
&lt;br /&gt;
If you want the entire source tree then look under &#039;&#039;&#039;How to get VLC media player&#039;s latest source tree&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== How to get {{VLC}}&#039;s latest source tree ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This is the recommended way if you are working on {{VLC}}&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You need to use [[Git]] to download the latest, live snapshot of the development tree.&lt;br /&gt;
&lt;br /&gt;
Start by reading the [[Git]] page and then use the repository located at:&lt;br /&gt;
 git://git.videolan.org/vlc.git&lt;br /&gt;
&lt;br /&gt;
Please note that this will download the entire git repository.  If you are only interested in the latest development build then use the link under &#039;&#039;&#039;Latest source packages&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Get the nightly snapshots ===&lt;br /&gt;
&lt;br /&gt;
You can download nightly source snapshots from the [http://nightlies.videolan.org/build/source/?C=M;O=D nightlies website].&lt;br /&gt;
&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:Coding]]&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Win32Compile&amp;diff=20404</id>
		<title>Win32Compile</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Win32Compile&amp;diff=20404"/>
		<updated>2011-12-01T19:06:23Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: /* Configuring the build */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How to compile VLC for Windows &lt;br /&gt;
&lt;br /&gt;
== Before you start  ==&lt;br /&gt;
&lt;br /&gt;
One common desire that leads people to want to rebuild VLC is to &amp;quot;rebuild a debug version&amp;quot; or &amp;quot;add printf()s&amp;quot;, but this is not strictly necessary, as VLC includes a debug logging feature by default. If you are using a binary release (or have already built VLC), just run &amp;lt;code&amp;gt;&#039;vlc.exe&#039;&amp;lt;/code&amp;gt; and select &amp;quot;Messages...&amp;quot; from the &amp;quot;Tools&amp;quot; menu. &lt;br /&gt;
&lt;br /&gt;
You can also run VLC from the Windows command-line interpreter, &amp;lt;code&amp;gt;cmd.exe&amp;lt;/code&amp;gt; (a.k.a. &amp;quot;DOS window&amp;quot;), in which case you&#039;ll be able to use the command-line arguments. You can obtain a list of these command line arguments by typing &amp;lt;code&amp;gt;&#039;vlc --help&#039;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&#039;vlc --help --advanced&#039;&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
To store a debug log of the current VLC session, you can use &amp;lt;code&amp;gt;&#039;vlc -vvv --extraintf=logger&#039;&amp;lt;/code&amp;gt;. You will end-up with a &amp;lt;code&amp;gt;vlc-log.txt&amp;lt;/code&amp;gt; file in your current directory. &lt;br /&gt;
&lt;br /&gt;
== Building VLC from source  ==&lt;br /&gt;
&lt;br /&gt;
If you want to build VLC from source, you have several choices: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method &lt;br /&gt;
! Documentation &lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Cross-compile with Mingw32 on Linux &lt;br /&gt;
| None: read this page &lt;br /&gt;
| &#039;&#039;&#039;Preferred&#039;&#039;&#039; method (uses cross compilation). If on windows you can do it on a virtual machine, via dual-boot or from another computer. &amp;lt;br&amp;gt; &#039;&#039;Note: read [[Win32CompileFedora13]] if building on Fedora 13&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Native-compile with [http://www.mingw.org MSYS+MINGW] &lt;br /&gt;
| [[Win32CompileMSYSNew]] &lt;br /&gt;
| &#039;&#039;&#039;Not recommanded&#039;&#039;&#039; native compilation method. MSYS is a minimal build environment to compile Unixish projects under Microsoft Windows. It provides all the commonly-required Unix tools (like sh, gmake, and so forth).&lt;br /&gt;
|-&lt;br /&gt;
| Cross-compile with cygwin&lt;br /&gt;
| [[Win32CompileCygwinNew]]&lt;br /&gt;
| Build using cygwin as your cross compile environment. Error prone, and slow.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Obtaining the build tools  ==&lt;br /&gt;
&lt;br /&gt;
Each build method requires its own toolchain: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method &lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Cross-compile with mingw32 on GNU/Linux &lt;br /&gt;
| &lt;br /&gt;
*Debian/Ubuntu users can &amp;lt;code&amp;gt;apt-get install gcc-mingw32 mingw32-binutils&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;apt-get build-dep vlc&amp;lt;/code&amp;gt; should download most of the needed libraries (according to the vlc version in the repositories), however building FFmpeg now requires mingw32-runtime &amp;amp;gt;= 3.17 and w32api &amp;amp;gt;= 3.13 so these might have to be updated manually. Install the lua compiler with &amp;lt;code&amp;gt;apt-get install lua5.1&amp;lt;/code&amp;gt;. &lt;br /&gt;
*Gentoo users can &amp;lt;code&amp;gt;emerge crossdev &amp;amp;amp;&amp;amp;amp; crossdev mingw32&amp;lt;/code&amp;gt; &lt;br /&gt;
*Other systems may attempt http://www.mingw.org/wiki/LinuxCrossMinGW&lt;br /&gt;
|-&lt;br /&gt;
| Native-compile with [http://www.mingw.org MSYS+MINGW] &lt;br /&gt;
| Read the [[Win32CompileMSYSNew|documentation]]&lt;br /&gt;
|-&lt;br /&gt;
| Native-compile with [http://www.cygwin.com Cygwin] &lt;br /&gt;
| Read the [[Win32CompileCygwinNew|documentation]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 3rd party libraries.&amp;lt;br&amp;gt;  ==&lt;br /&gt;
&lt;br /&gt;
VLC modules requires numerous open source projects to work (like AC3 audio decoding or MPEG-4 video decoding). &lt;br /&gt;
&lt;br /&gt;
If you feel you must build these libraries from source, go to extras/contrib and read the README.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
If you want to save yourself a lot of time and energy, use the pre-built versions of these libraries. You may download them from http://people.videolan.org/~jb/Contribs/, named in fashion of contrib-&#039;&#039;&#039;yyyymmdd&#039;&#039;&#039;-win32-&#039;&#039;&#039;version&#039;&#039;&#039;-bin-gcc-&#039;&#039;&#039;gccversion&#039;&#039;&#039;-only.tar.bz2.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Install the pre-built libraries into the standard directories (/usr/win32/*) by using &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;tar jxf contrib-20061122-win32-bin-gcc-3.4.5-only.tar.bz2 -C /&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
(Note the &amp;lt;code&amp;gt;&amp;quot;-C /&amp;quot;&amp;lt;/code&amp;gt;!) &lt;br /&gt;
&lt;br /&gt;
== Configuring the build  ==&lt;br /&gt;
&lt;br /&gt;
First of all, [[GetTheSource]] then run &amp;lt;code&amp;gt;./bootstrap&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve got all the files you need in place, you need to configure the build with the &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; script. &lt;br /&gt;
&lt;br /&gt;
Good configure examples can be found in some files (in [http://git.videolan.org/gitweb.cgi?p=vlc.git;a=tree git]). From the vlc source base directory you could run:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;extras/package/win32/configure.sh --with-contrib=/usr/win32 --host=i586-mingw32msvc&amp;lt;/code&amp;gt; &lt;br /&gt;
*&amp;lt;code&amp;gt;extras/package/win32/configure.sh --with-contrib=/path/to/folder/containing/contribs&amp;lt;/code&amp;gt; &lt;br /&gt;
or just run configure manually, like&lt;br /&gt;
*&amp;lt;code&amp;gt;./configure --with-contrib=/usr/win32 --host=i586-mingw32msvc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See &amp;lt;code&amp;gt;&#039;./configure --help&#039;&amp;lt;/code&amp;gt; for more information.&lt;br /&gt;
&lt;br /&gt;
== Building VLC  ==&lt;br /&gt;
&lt;br /&gt;
Once configured, to build VLC, just run &amp;lt;code&amp;gt;&#039;make&#039;&amp;lt;/code&amp;gt;. &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;lt;code&amp;gt;make&amp;lt;/code&amp;gt; rules: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command &lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win32-strip&amp;lt;/code&amp;gt; (might be package-win-strip)&lt;br /&gt;
| Creates a subdirectory named &amp;lt;code&amp;gt;vlc-x.x.x&amp;lt;/code&amp;gt; with all the binaries &#039;stripped&#039; (that is, smallest size, unusable with a debugger)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win32-7zip&amp;lt;/code&amp;gt; &lt;br /&gt;
| Same as above but will package the directory in a 7z file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win32-zip&amp;lt;/code&amp;gt; &lt;br /&gt;
| Same as above but will package the directory in a zip file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win32&amp;lt;/code&amp;gt; &lt;br /&gt;
| Same as above but will also create an auto-installer package. You must have NSIS installed in its default location for this to work.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Well done—you&#039;re ready to use VLC!&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[[Category:Building]]&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_Source_code&amp;diff=20401</id>
		<title>VLC Source code</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_Source_code&amp;diff=20401"/>
		<updated>2011-12-01T17:24:35Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: /* Get the nightly snapshots */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Check the [http://www.videolan.org/developers/vlc/NEWS News].&lt;br /&gt;
&lt;br /&gt;
== Releases Sources ==&lt;br /&gt;
&lt;br /&gt;
=== Latest Source ===&lt;br /&gt;
&lt;br /&gt;
{{VLC}} Source Code can be downloaded here ({{VLC:latest version}})&lt;br /&gt;
: &#039;&#039;&#039;http://www.videolan.org/vlc/download-sources.html&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Older Source ===&lt;br /&gt;
&lt;br /&gt;
You can get all the versions of VLC, using the [http://download.videolan.org/pub/vlc/ VLC FTP Archive].&lt;br /&gt;
&lt;br /&gt;
You can also get it with the tags from the VLC&#039;s [[Git]].&lt;br /&gt;
&lt;br /&gt;
== Development Sources ==&lt;br /&gt;
&lt;br /&gt;
=== Latest source packages ===&lt;br /&gt;
If you want to get the latest bleeding edge development source package then go to this link:&lt;br /&gt;
 [http://repo.or.cz/w/vlc.git http://repo.or.cz/w/vlc.git] &lt;br /&gt;
and download the first listed tar.gz or .zip file.&lt;br /&gt;
&lt;br /&gt;
If you want the entire source tree then look under &#039;&#039;&#039;How to get VLC media player&#039;s latest source tree&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== How to get {{VLC}}&#039;s latest source tree ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This is the recommended way if you are working on {{VLC}}&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You need to use [[Git]] to download the latest, live snapshot of the development tree.&lt;br /&gt;
&lt;br /&gt;
Start by reading the [[Git]] page and then use the repository located at:&lt;br /&gt;
 git://git.videolan.org/vlc.git&lt;br /&gt;
&lt;br /&gt;
Please note that this will download the entire git repository.  If you are only interested in the latest development build then use the link under &#039;&#039;&#039;Latest source packages&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Get the nightly snapshots ===&lt;br /&gt;
&lt;br /&gt;
You can download nightly source snapshots from the [http://nightlies.videolan.org/build/source/?C=M;O=D nightlies website].&lt;br /&gt;
&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:Coding]]&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_Source_code&amp;diff=20400</id>
		<title>VLC Source code</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_Source_code&amp;diff=20400"/>
		<updated>2011-12-01T17:22:21Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: /* Get the nightly snapshots */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Check the [http://www.videolan.org/developers/vlc/NEWS News].&lt;br /&gt;
&lt;br /&gt;
== Releases Sources ==&lt;br /&gt;
&lt;br /&gt;
=== Latest Source ===&lt;br /&gt;
&lt;br /&gt;
{{VLC}} Source Code can be downloaded here ({{VLC:latest version}})&lt;br /&gt;
: &#039;&#039;&#039;http://www.videolan.org/vlc/download-sources.html&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Older Source ===&lt;br /&gt;
&lt;br /&gt;
You can get all the versions of VLC, using the [http://download.videolan.org/pub/vlc/ VLC FTP Archive].&lt;br /&gt;
&lt;br /&gt;
You can also get it with the tags from the VLC&#039;s [[Git]].&lt;br /&gt;
&lt;br /&gt;
== Development Sources ==&lt;br /&gt;
&lt;br /&gt;
=== Latest source packages ===&lt;br /&gt;
If you want to get the latest bleeding edge development source package then go to this link:&lt;br /&gt;
 [http://repo.or.cz/w/vlc.git http://repo.or.cz/w/vlc.git] &lt;br /&gt;
and download the first listed tar.gz or .zip file.&lt;br /&gt;
&lt;br /&gt;
If you want the entire source tree then look under &#039;&#039;&#039;How to get VLC media player&#039;s latest source tree&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== How to get {{VLC}}&#039;s latest source tree ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This is the recommended way if you are working on {{VLC}}&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You need to use [[Git]] to download the latest, live snapshot of the development tree.&lt;br /&gt;
&lt;br /&gt;
Start by reading the [[Git]] page and then use the repository located at:&lt;br /&gt;
 git://git.videolan.org/vlc.git&lt;br /&gt;
&lt;br /&gt;
Please note that this will download the entire git repository.  If you are only interested in the latest development build then use the link under &#039;&#039;&#039;Latest source packages&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Get the nightly snapshots ===&lt;br /&gt;
&lt;br /&gt;
You can download the nightly snapshot binaries on the [http://nightlies.videolan.org/build/source/?C=M;O=D nightlies website].&lt;br /&gt;
&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:Coding]]&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Win32Compile&amp;diff=20399</id>
		<title>Win32Compile</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Win32Compile&amp;diff=20399"/>
		<updated>2011-12-01T17:21:11Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: /* Building VLC from source */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How to compile VLC for Windows &lt;br /&gt;
&lt;br /&gt;
== Before you start  ==&lt;br /&gt;
&lt;br /&gt;
One common desire that leads people to want to rebuild VLC is to &amp;quot;rebuild a debug version&amp;quot; or &amp;quot;add printf()s&amp;quot;, but this is not strictly necessary, as VLC includes a debug logging feature by default. If you are using a binary release (or have already built VLC), just run &amp;lt;code&amp;gt;&#039;vlc.exe&#039;&amp;lt;/code&amp;gt; and select &amp;quot;Messages...&amp;quot; from the &amp;quot;Tools&amp;quot; menu. &lt;br /&gt;
&lt;br /&gt;
You can also run VLC from the Windows command-line interpreter, &amp;lt;code&amp;gt;cmd.exe&amp;lt;/code&amp;gt; (a.k.a. &amp;quot;DOS window&amp;quot;), in which case you&#039;ll be able to use the command-line arguments. You can obtain a list of these command line arguments by typing &amp;lt;code&amp;gt;&#039;vlc --help&#039;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&#039;vlc --help --advanced&#039;&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
To store a debug log of the current VLC session, you can use &amp;lt;code&amp;gt;&#039;vlc -vvv --extraintf=logger&#039;&amp;lt;/code&amp;gt;. You will end-up with a &amp;lt;code&amp;gt;vlc-log.txt&amp;lt;/code&amp;gt; file in your current directory. &lt;br /&gt;
&lt;br /&gt;
== Building VLC from source  ==&lt;br /&gt;
&lt;br /&gt;
If you want to build VLC from source, you have several choices: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method &lt;br /&gt;
! Documentation &lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Cross-compile with Mingw32 on Linux &lt;br /&gt;
| None: read this page &lt;br /&gt;
| &#039;&#039;&#039;Preferred&#039;&#039;&#039; method (uses cross compilation). If on windows you can do it on a virtual machine, via dual-boot or from another computer. &amp;lt;br&amp;gt; &#039;&#039;Note: read [[Win32CompileFedora13]] if building on Fedora 13&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Native-compile with [http://www.mingw.org MSYS+MINGW] &lt;br /&gt;
| [[Win32CompileMSYSNew]] &lt;br /&gt;
| &#039;&#039;&#039;Not recommanded&#039;&#039;&#039; native compilation method. MSYS is a minimal build environment to compile Unixish projects under Microsoft Windows. It provides all the commonly-required Unix tools (like sh, gmake, and so forth).&lt;br /&gt;
|-&lt;br /&gt;
| Cross-compile with cygwin&lt;br /&gt;
| [[Win32CompileCygwinNew]]&lt;br /&gt;
| Build using cygwin as your cross compile environment. Error prone, and slow.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Obtaining the build tools  ==&lt;br /&gt;
&lt;br /&gt;
Each build method requires its own toolchain: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method &lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Cross-compile with mingw32 on GNU/Linux &lt;br /&gt;
| &lt;br /&gt;
*Debian/Ubuntu users can &amp;lt;code&amp;gt;apt-get install gcc-mingw32 mingw32-binutils&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;apt-get build-dep vlc&amp;lt;/code&amp;gt; should download most of the needed libraries (according to the vlc version in the repositories), however building FFmpeg now requires mingw32-runtime &amp;amp;gt;= 3.17 and w32api &amp;amp;gt;= 3.13 so these might have to be updated manually. Install the lua compiler with &amp;lt;code&amp;gt;apt-get install lua5.1&amp;lt;/code&amp;gt;. &lt;br /&gt;
*Gentoo users can &amp;lt;code&amp;gt;emerge crossdev &amp;amp;amp;&amp;amp;amp; crossdev mingw32&amp;lt;/code&amp;gt; &lt;br /&gt;
*Other systems may attempt http://www.mingw.org/wiki/LinuxCrossMinGW&lt;br /&gt;
|-&lt;br /&gt;
| Native-compile with [http://www.mingw.org MSYS+MINGW] &lt;br /&gt;
| Read the [[Win32CompileMSYSNew|documentation]]&lt;br /&gt;
|-&lt;br /&gt;
| Native-compile with [http://www.cygwin.com Cygwin] &lt;br /&gt;
| Read the [[Win32CompileCygwinNew|documentation]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 3rd party libraries.&amp;lt;br&amp;gt;  ==&lt;br /&gt;
&lt;br /&gt;
VLC modules requires numerous open source projects to work (like AC3 audio decoding or MPEG-4 video decoding). &lt;br /&gt;
&lt;br /&gt;
If you feel you must build these libraries from source, go to extras/contrib and read the README.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
If you want to save yourself a lot of time and energy, use the pre-built versions of these libraries. You may download them from http://people.videolan.org/~jb/Contribs/, named in fashion of contrib-&#039;&#039;&#039;yyyymmdd&#039;&#039;&#039;-win32-&#039;&#039;&#039;version&#039;&#039;&#039;-bin-gcc-&#039;&#039;&#039;gccversion&#039;&#039;&#039;-only.tar.bz2.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Install the pre-built libraries into the standard directories (/usr/win32/*) by using &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;tar jxf contrib-20061122-win32-bin-gcc-3.4.5-only.tar.bz2 -C /&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
(Note the &amp;lt;code&amp;gt;&amp;quot;-C /&amp;quot;&amp;lt;/code&amp;gt;!) &lt;br /&gt;
&lt;br /&gt;
== Configuring the build  ==&lt;br /&gt;
&lt;br /&gt;
First of all, [[GetTheSource]] then run &amp;lt;code&amp;gt;./bootstrap&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve got all the files you need in place, you need to configure the build with the &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; script. &lt;br /&gt;
&lt;br /&gt;
Good examples can be found in some files (in [http://git.videolan.org/gitweb.cgi?p=vlc.git;a=tree git]). From the vlc source base directory run:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;extras/package/win32/configure.sh --with-contrib=/usr/win32 --host=i586-mingw32msvc&amp;lt;/code&amp;gt; helper script for cross compiling with mingw32 with the known contribs&lt;br /&gt;
*&amp;lt;code&amp;gt;extras/package/win32/configure.sh --with-contrib=/path/to/folder/containing/contribs&amp;lt;/code&amp;gt; same for compiling with msys or cygwin&lt;br /&gt;
*&amp;lt;code&amp;gt;./configure --with-contrib=/usr/win32 --host=i586-mingw32msvc&amp;lt;/code&amp;gt; might work as well&lt;br /&gt;
&lt;br /&gt;
See &amp;lt;code&amp;gt;&#039;./configure --help&#039;&amp;lt;/code&amp;gt; for more information.&lt;br /&gt;
&lt;br /&gt;
== Building VLC  ==&lt;br /&gt;
&lt;br /&gt;
Once configured, to build VLC, just run &amp;lt;code&amp;gt;&#039;make&#039;&amp;lt;/code&amp;gt;. &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;lt;code&amp;gt;make&amp;lt;/code&amp;gt; rules: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command &lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win32-strip&amp;lt;/code&amp;gt; (might be package-win-strip)&lt;br /&gt;
| Creates a subdirectory named &amp;lt;code&amp;gt;vlc-x.x.x&amp;lt;/code&amp;gt; with all the binaries &#039;stripped&#039; (that is, smallest size, unusable with a debugger)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win32-7zip&amp;lt;/code&amp;gt; &lt;br /&gt;
| Same as above but will package the directory in a 7z file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win32-zip&amp;lt;/code&amp;gt; &lt;br /&gt;
| Same as above but will package the directory in a zip file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win32&amp;lt;/code&amp;gt; &lt;br /&gt;
| Same as above but will also create an auto-installer package. You must have NSIS installed in its default location for this to work.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Well done—you&#039;re ready to use VLC!&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[[Category:Building]]&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Win32CompileCygwinNew&amp;diff=20398</id>
		<title>Win32CompileCygwinNew</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Win32CompileCygwinNew&amp;diff=20398"/>
		<updated>2011-12-01T17:20:43Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a new version of the Win32CompileCygwin written by [[User:J-b|Jean-Baptiste Kempf]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This version ONLY works for 0.9.x, for 1.0.x and for 1.1.x.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING&#039;&#039;&#039;: building VLC on Cygwin has ever been a failure-prone task. It is also very slow (specially if you enable debug and optimizations). If you want to build on windows, [[Win32CompileMSYSNew]] is a much better option.  Otherwise, you should strongly consider cross-compiling from Linux (on a virtual machine, via dual-boot or from another computer, see [[Win32Compile]]). You were warned.&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, configure and build your VLC.&lt;br /&gt;
&lt;br /&gt;
This guide uses [http://www.cygwin.com &#039;&#039;&#039;Cygwin&#039;&#039;&#039;] a Linux-like environment for Windows used for compilation of the VLC source code.&lt;br /&gt;
&lt;br /&gt;
Start off by creating a VLC and a download folder on your hard drive where you can put all the installation files:&lt;br /&gt;
&lt;br /&gt;
 C:\VLC\&lt;br /&gt;
 C:\VLC\Downloads&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;
Download the latest [http://www.cygwin.com/cygwin/setup.exe Cygwin setup] and save it in your download location:&lt;br /&gt;
&lt;br /&gt;
 C:\VLC\Downloads\&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;
==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:\VLC\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;
   unzip&lt;br /&gt;
   zip&lt;br /&gt;
&lt;br /&gt;
 Devel&lt;br /&gt;
   autoconf&lt;br /&gt;
   automake&lt;br /&gt;
   binutils&lt;br /&gt;
   cvs (optional: for building extras/contrib)&lt;br /&gt;
   gcc&lt;br /&gt;
   gcc-core&lt;br /&gt;
   gcc-g++&lt;br /&gt;
   gcc-mingw&lt;br /&gt;
   gcc-mingw-core&lt;br /&gt;
   gcc-mingw-g++&lt;br /&gt;
   gdb&lt;br /&gt;
   gettext&lt;br /&gt;
   gettext-devel&lt;br /&gt;
   git&lt;br /&gt;
   libgcrypt-devel&lt;br /&gt;
   libiconv&lt;br /&gt;
   libtool&lt;br /&gt;
   make&lt;br /&gt;
   mingw-runtime&lt;br /&gt;
   nasm&lt;br /&gt;
   patchutils&lt;br /&gt;
   pkg-config&lt;br /&gt;
   subversion (optional: for building extras/contrib)&lt;br /&gt;
&lt;br /&gt;
 Editor&lt;br /&gt;
   vim&lt;br /&gt;
&lt;br /&gt;
 Libs&lt;br /&gt;
   expat&lt;br /&gt;
   libgcrypt&lt;br /&gt;
&lt;br /&gt;
 Utils&lt;br /&gt;
   ncurses&lt;br /&gt;
&lt;br /&gt;
 Web&lt;br /&gt;
   curl (optional: for building extras/contrib)&lt;br /&gt;
   wget (optional: for building extras/contrib)&lt;br /&gt;
&lt;br /&gt;
==Cygwin environment==&lt;br /&gt;
&lt;br /&gt;
Start Cygwin from the icon on your desktop (With Windows Vista run it with admin rights, so right click and select &amp;quot;Run as administrator&amp;quot;). 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;
=VLC source code=&lt;br /&gt;
&lt;br /&gt;
== Git ==&lt;br /&gt;
The very latest VLC source code can be obtained through a tool called [[Git]]. The Cygwin package we&#039;re about to install comes with an internal git component.&lt;br /&gt;
&lt;br /&gt;
 cd /cygdrive/c/VLC/&lt;br /&gt;
&lt;br /&gt;
 git clone git://git.videolan.org/vlc.git&lt;br /&gt;
&lt;br /&gt;
or if you just want to download latest VLC revision (saves bandwidth)&lt;br /&gt;
&lt;br /&gt;
 git clone git://git.videolan.org/vlc.git --depth 1&lt;br /&gt;
&lt;br /&gt;
or if your proxy denies git protocol connections use:&lt;br /&gt;
&lt;br /&gt;
 git clone http://git.videolan.org/git/vlc.git&lt;br /&gt;
&lt;br /&gt;
In this case you need to set the proxy address first:&lt;br /&gt;
&lt;br /&gt;
 export http_proxy = &amp;lt;proxy&amp;gt;:&amp;lt;port&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If git fails for some reason, then please try to use git from basic Windows command prompt (Start -&amp;gt; Run -&amp;gt; cmd), not from Cygwin shell.&lt;br /&gt;
&lt;br /&gt;
Please note that the very latest VLC sources (&amp;quot;master&amp;quot; branch) does not necessary build fine all the time. So if you need something stable, better is to use a git tag or a version snapshot archive.&lt;br /&gt;
&lt;br /&gt;
== Snapshots ==&lt;br /&gt;
&lt;br /&gt;
You can do the same by using the snapshots in the [http://nightlies.videolan.org/ nightly builds] site.&lt;br /&gt;
&lt;br /&gt;
== Specific Version ==&lt;br /&gt;
&lt;br /&gt;
You can get a specific version of VLC source code from the [http://download.videolan.org/pub/videolan/vlc/ source ftp] directory.&lt;br /&gt;
&lt;br /&gt;
Another option is to sync specific version represented by a tag in git:&lt;br /&gt;
&lt;br /&gt;
 git checkout &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;version&amp;gt; is one like: 1.0.1, 1.0.2, ..&lt;br /&gt;
&lt;br /&gt;
=Bootstrap=&lt;br /&gt;
First move to vlc folder, if you aren&#039;t already there&lt;br /&gt;
&lt;br /&gt;
 cd vlc&lt;br /&gt;
&lt;br /&gt;
and then run bootstrap.&lt;br /&gt;
&lt;br /&gt;
dos2unix botstrap&lt;br /&gt;
 ./bootstrap&lt;br /&gt;
&lt;br /&gt;
You should go through dos2unix for every script which produces errors related to &#039;\r&#039;&lt;br /&gt;
&lt;br /&gt;
It might fail with some &#039;&#039;&#039;unable to remap error &amp;lt;some_dll_file_name&amp;gt;&#039;&#039;&#039;. It seems you need to rebase all Cygwin DLLs: close all your cygwin applications and launch &#039;ash&#039; from basic windows command prompt (Start -&amp;gt; Run -&amp;gt; cmd), from there run rebaseall (so start e.g. C:\cygwin\bin\ash.exe and type there text below).&lt;br /&gt;
&lt;br /&gt;
 /bin/rebaseall -v&lt;br /&gt;
&lt;br /&gt;
= External 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. &lt;br /&gt;
&lt;br /&gt;
== Get the 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;
or&lt;br /&gt;
http://people.videolan.org/~jb/Contribs/&lt;br /&gt;
or take&lt;br /&gt;
 ftp://ftp.videolan.org/pub/vlc/1.0.0/win32/contrib-1.0.0.tar.bz2&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-20080702-win32-bin-gcc-4.2.1-sjlj-runtime-3.13-only.tar.bz2 (this is an &#039;&#039;&#039;example&#039;&#039;&#039; so &#039;&#039;&#039;DON&#039;T&#039;&#039;&#039; download packages this old, unless you really have to!)&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 if you build older VLC versions.&lt;br /&gt;
&lt;br /&gt;
Save it into your download location:&lt;br /&gt;
&lt;br /&gt;
 C:\VLC\Downloads\&lt;br /&gt;
&lt;br /&gt;
==Installing the Win32 &amp;quot;contrib&amp;quot; package in Cygwin==&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell:&lt;br /&gt;
 &lt;br /&gt;
 rm -rf /usr/win32&lt;br /&gt;
 cd /cygdrive/c/VLC/Downloads&lt;br /&gt;
 tar xf contrib-20080702-win32-bin-gcc-4.2.1-sjlj-runtime-3.13-only.tar.bz2 -C /&lt;br /&gt;
&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 (/usr/win32 folder) instead of extracting a new version on top of it.&lt;br /&gt;
&lt;br /&gt;
Version 1.0.2 of VLC source code has been tested and found working with contrib-20091020-win32-bin-gcc-4.2.1-sjlj-runtime-3.15.2-only.tar.bz2&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;
==Qt4 issues==&lt;br /&gt;
There are some Qt4 and winapi issues (like &#039;&#039;&#039;InterlockedCompareExchange&#039;&#039;&#039; error) which you can work out with information you get from http://forum.videolan.org/viewtopic.php?f=14&amp;amp;t=50360&amp;amp;p=164758&amp;amp;hilit=win32api#p164219 and http://forum.videolan.org/viewtopic.php?f=14&amp;amp;p=175301#p175301 threads. If you don&#039;t plan to compile Qt4 or skins2 interface, you can skip this.&lt;br /&gt;
&lt;br /&gt;
=Configure=&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;
==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;
  PATH=/usr/win32/bin:$PATH \&lt;br /&gt;
  PKG_CONFIG_LIBDIR=/usr/win32/lib/pkgconfig \&lt;br /&gt;
  CPPFLAGS=&amp;quot;-I/usr/win32/include -I/usr/win32/include/ebml&amp;quot; \&lt;br /&gt;
  LDFLAGS=-L/usr/win32/lib \&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-nls \&lt;br /&gt;
      --enable-sdl --with-sdl-config-path=/usr/win32/bin \&lt;br /&gt;
      --enable-faad --enable-flac --enable-theora \&lt;br /&gt;
      --enable-live555 --with-live555-tree=/usr/win32/live.com \&lt;br /&gt;
      --enable-caca --with-caca-config-path=/usr/win32/bin \&lt;br /&gt;
      --with-dvdnav-config-path=/usr/win32/bin \&lt;br /&gt;
      --enable-goom \&lt;br /&gt;
      --enable-dvdread \&lt;br /&gt;
      --enable-debug --disable-optimizations \&lt;br /&gt;
      --disable-mkv --disable-taglib --disable-zvbi --disable-dirac --disable-x264 --disable-fluidsynth&lt;br /&gt;
&lt;br /&gt;
This command is tested and configures VLC 1.0.2 properly so that it builds fine.&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 includes the linux and Windows equivalents of uic, moc and roc executables which are required for building this interface.&lt;br /&gt;
&lt;br /&gt;
The linuxs 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;
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;
After your configure-vlc.sh is completed, copy it to your vlc directory and run it:&lt;br /&gt;
&lt;br /&gt;
 ./configure-vlc.sh&lt;br /&gt;
&lt;br /&gt;
If it complains about permissions, use chmod and try again:&lt;br /&gt;
&lt;br /&gt;
 chmod 777 configure-vlc.sh&lt;br /&gt;
&lt;br /&gt;
NOTE. (If you plan to use JVLC) To make vlc-control.dll accessible by Java on &#039;&#039;Windows&#039;&#039; configure-vlc.sh should be modified to include &amp;quot;-Wl,--add-stdcal-alias&amp;quot;. Example:&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
 CC=&amp;quot;gcc -mno-cygwin -Wl,--add-stdcall-alias&amp;quot; CXX=&amp;quot;g++ -mno-cygwin -Wl,--add-stdcall-alias&amp;quot; \&lt;br /&gt;
 ./configure \&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
===Mozilla plugin===&lt;br /&gt;
&lt;br /&gt;
If you want to build Mozilla plugin, add this to your configure-vlc.sh&lt;br /&gt;
&lt;br /&gt;
 --enable-mozilla --with-mozilla-sdk-path=/usr/win32/gecko-sdk&lt;br /&gt;
&lt;br /&gt;
If configure-vlc.sh goes correctly, you should see &#039;&#039;&#039;plugins/bindings : activex mozilla&#039;&#039;&#039;&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;
=Compiling source code=&lt;br /&gt;
&lt;br /&gt;
It&#039;s time to start Cygwin again...&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&lt;br /&gt;
&lt;br /&gt;
NOTE: Open /cygdrive/c/VLC/libtool in text editor and if &amp;quot;global_symbol_pipe =&amp;quot; line is blank, replace it with :&lt;br /&gt;
&lt;br /&gt;
 global_symbol_pipe=&amp;quot;sed -n -e &#039;s/^.*[   ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[       ][      ]*\\(\\)\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1\\2\\3 \\3/p&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Build it! (remember to run configure-vlc.sh before first build)&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Cross your fingers and wait... because it might take few hours before compilation is done.&lt;br /&gt;
If you have multicore CPU or multi CPU box, you can use -j2 switch (or maybe -j3 or -j4 etc.) to speed up make process&lt;br /&gt;
&lt;br /&gt;
 make -j2&lt;br /&gt;
&lt;br /&gt;
==Creating self contained packages==&lt;br /&gt;
&lt;br /&gt;
Once the compilation is done, 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;
* If you have permissions problems running make package-*, chmod 777 -R the vlc folder.&lt;br /&gt;
* If you have permissions problems running vlc.exe after packaging, rename or delete vlc.exe.manifest&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;
==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;
&lt;br /&gt;
To backtrace all the running threads use:&lt;br /&gt;
&lt;br /&gt;
 (gdb) thread apply all bt&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;
== Common errors ==&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;
&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;
===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. You can use &#039;&#039;&#039;export TMPDIR=&amp;quot;/cygdrive/c/temp&amp;quot;&#039;&#039;&#039; or any directory for it (/cygdrive/c/temp is same as C:\temp). If this doesn&#039;t help, make sure you run cygwin with admin rights (With Windows Vista, right click cygwin shortcut and select &amp;quot;Run as administrator&amp;quot;). Avira AntiVir might also cause issues to m4, so disabling it while ./bootstrap might help.&lt;br /&gt;
&lt;br /&gt;
==Compiling faster==&lt;br /&gt;
Building VLC on Cygwin is really slow, but you can spend less time recompiling by using [http://ccache.samba.org/ ccache]. This software saves  the files compiled with their compilation command, and output them if they were not changed and if the compilation command is the same as last build. It is really useful for frequent make clean &amp;amp;&amp;amp; make. To use it, change the CC line in your configure script to:&lt;br /&gt;
&lt;br /&gt;
  CC=&amp;quot;ccache gcc -mno-cygwin&amp;quot; CXX=&amp;quot;ccache g++ -mno-cygwin&amp;quot; \&lt;br /&gt;
&lt;br /&gt;
The first build after reconfiguring will be as slow as ever, but the following builds will be faster.&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;
20080228 New version by [[User:J-b|jb]]&lt;br /&gt;
&lt;br /&gt;
20080307 Added --host=i686-pc-mingw32 option to the configure script&lt;br /&gt;
&lt;br /&gt;
20080311 Simplification&lt;br /&gt;
&lt;br /&gt;
20080323 Added some tips for Vista &lt;br /&gt;
&lt;br /&gt;
20081001 git should now work from Cygwin again&lt;br /&gt;
&lt;br /&gt;
20081010 expat has moved to under Libs&lt;br /&gt;
&lt;br /&gt;
20081020 QT4 problems part added and new contrib suggestion&lt;br /&gt;
&lt;br /&gt;
20081110 Mozilla plugin addition&lt;br /&gt;
&lt;br /&gt;
20090104 sed command for gettext version change&lt;br /&gt;
&lt;br /&gt;
20090210 JB contrib location added.&lt;br /&gt;
&lt;br /&gt;
20090303 ranlib removed, it is a OPTIONAL STEP!&lt;br /&gt;
&lt;br /&gt;
20090623 Mention 1.1.x support&lt;br /&gt;
&lt;br /&gt;
20090926 Remove sed line (not needed anymore), add tips to &#039;ash&#039;, tell that version tools are optional, change lib order to alphabets&lt;br /&gt;
&lt;br /&gt;
20091023 Add some more details how to checkout with git&lt;br /&gt;
&lt;br /&gt;
20091028 Update the configure command to work fine for recent version 1.0.2&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
*[[Win32CompileCygwinOld]] - deprecated documentation&lt;br /&gt;
&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:Coding]]&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Win32Compile&amp;diff=20397</id>
		<title>Win32Compile</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Win32Compile&amp;diff=20397"/>
		<updated>2011-12-01T17:18:42Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: /* Building VLC from source */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How to compile VLC for Windows &lt;br /&gt;
&lt;br /&gt;
== Before you start  ==&lt;br /&gt;
&lt;br /&gt;
One common desire that leads people to want to rebuild VLC is to &amp;quot;rebuild a debug version&amp;quot; or &amp;quot;add printf()s&amp;quot;, but this is not strictly necessary, as VLC includes a debug logging feature by default. If you are using a binary release (or have already built VLC), just run &amp;lt;code&amp;gt;&#039;vlc.exe&#039;&amp;lt;/code&amp;gt; and select &amp;quot;Messages...&amp;quot; from the &amp;quot;Tools&amp;quot; menu. &lt;br /&gt;
&lt;br /&gt;
You can also run VLC from the Windows command-line interpreter, &amp;lt;code&amp;gt;cmd.exe&amp;lt;/code&amp;gt; (a.k.a. &amp;quot;DOS window&amp;quot;), in which case you&#039;ll be able to use the command-line arguments. You can obtain a list of these command line arguments by typing &amp;lt;code&amp;gt;&#039;vlc --help&#039;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&#039;vlc --help --advanced&#039;&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
To store a debug log of the current VLC session, you can use &amp;lt;code&amp;gt;&#039;vlc -vvv --extraintf=logger&#039;&amp;lt;/code&amp;gt;. You will end-up with a &amp;lt;code&amp;gt;vlc-log.txt&amp;lt;/code&amp;gt; file in your current directory. &lt;br /&gt;
&lt;br /&gt;
== Building VLC from source  ==&lt;br /&gt;
&lt;br /&gt;
If you want to build VLC from source, you have several choices: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method &lt;br /&gt;
! Documentation &lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Cross-compile with Mingw32 on Linux &lt;br /&gt;
| None: read this page &lt;br /&gt;
| &#039;&#039;&#039;Preferred&#039;&#039;&#039; method (uses cross compilation). If on windows you can do it on a virtual machine, via dual-boot or from another computer. &amp;lt;br&amp;gt; &#039;&#039;Note: read [[Win32CompileFedora13]] if building on Fedora 13&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Native-compile with [http://www.mingw.org MSYS+MINGW] &lt;br /&gt;
| [[Win32CompileMSYSNew]] &lt;br /&gt;
| &#039;&#039;&#039;Not recommanded&#039;&#039;&#039; native compilation method. MSYS is a minimal build environment to compile Unixish projects under Microsoft Windows. It provides all the commonly-required Unix tools (like sh, gmake, and so forth).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Obtaining the build tools  ==&lt;br /&gt;
&lt;br /&gt;
Each build method requires its own toolchain: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method &lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Cross-compile with mingw32 on GNU/Linux &lt;br /&gt;
| &lt;br /&gt;
*Debian/Ubuntu users can &amp;lt;code&amp;gt;apt-get install gcc-mingw32 mingw32-binutils&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;apt-get build-dep vlc&amp;lt;/code&amp;gt; should download most of the needed libraries (according to the vlc version in the repositories), however building FFmpeg now requires mingw32-runtime &amp;amp;gt;= 3.17 and w32api &amp;amp;gt;= 3.13 so these might have to be updated manually. Install the lua compiler with &amp;lt;code&amp;gt;apt-get install lua5.1&amp;lt;/code&amp;gt;. &lt;br /&gt;
*Gentoo users can &amp;lt;code&amp;gt;emerge crossdev &amp;amp;amp;&amp;amp;amp; crossdev mingw32&amp;lt;/code&amp;gt; &lt;br /&gt;
*Other systems may attempt http://www.mingw.org/wiki/LinuxCrossMinGW&lt;br /&gt;
|-&lt;br /&gt;
| Native-compile with [http://www.mingw.org MSYS+MINGW] &lt;br /&gt;
| Read the [[Win32CompileMSYSNew|documentation]]&lt;br /&gt;
|-&lt;br /&gt;
| Native-compile with [http://www.cygwin.com Cygwin] &lt;br /&gt;
| Read the [[Win32CompileCygwinNew|documentation]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 3rd party libraries.&amp;lt;br&amp;gt;  ==&lt;br /&gt;
&lt;br /&gt;
VLC modules requires numerous open source projects to work (like AC3 audio decoding or MPEG-4 video decoding). &lt;br /&gt;
&lt;br /&gt;
If you feel you must build these libraries from source, go to extras/contrib and read the README.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
If you want to save yourself a lot of time and energy, use the pre-built versions of these libraries. You may download them from http://people.videolan.org/~jb/Contribs/, named in fashion of contrib-&#039;&#039;&#039;yyyymmdd&#039;&#039;&#039;-win32-&#039;&#039;&#039;version&#039;&#039;&#039;-bin-gcc-&#039;&#039;&#039;gccversion&#039;&#039;&#039;-only.tar.bz2.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Install the pre-built libraries into the standard directories (/usr/win32/*) by using &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;tar jxf contrib-20061122-win32-bin-gcc-3.4.5-only.tar.bz2 -C /&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
(Note the &amp;lt;code&amp;gt;&amp;quot;-C /&amp;quot;&amp;lt;/code&amp;gt;!) &lt;br /&gt;
&lt;br /&gt;
== Configuring the build  ==&lt;br /&gt;
&lt;br /&gt;
First of all, [[GetTheSource]] then run &amp;lt;code&amp;gt;./bootstrap&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve got all the files you need in place, you need to configure the build with the &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; script. &lt;br /&gt;
&lt;br /&gt;
Good examples can be found in some files (in [http://git.videolan.org/gitweb.cgi?p=vlc.git;a=tree git]). From the vlc source base directory run:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;extras/package/win32/configure.sh --with-contrib=/usr/win32 --host=i586-mingw32msvc&amp;lt;/code&amp;gt; helper script for cross compiling with mingw32 with the known contribs&lt;br /&gt;
*&amp;lt;code&amp;gt;extras/package/win32/configure.sh --with-contrib=/path/to/folder/containing/contribs&amp;lt;/code&amp;gt; same for compiling with msys or cygwin&lt;br /&gt;
*&amp;lt;code&amp;gt;./configure --with-contrib=/usr/win32 --host=i586-mingw32msvc&amp;lt;/code&amp;gt; might work as well&lt;br /&gt;
&lt;br /&gt;
See &amp;lt;code&amp;gt;&#039;./configure --help&#039;&amp;lt;/code&amp;gt; for more information.&lt;br /&gt;
&lt;br /&gt;
== Building VLC  ==&lt;br /&gt;
&lt;br /&gt;
Once configured, to build VLC, just run &amp;lt;code&amp;gt;&#039;make&#039;&amp;lt;/code&amp;gt;. &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;lt;code&amp;gt;make&amp;lt;/code&amp;gt; rules: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command &lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win32-strip&amp;lt;/code&amp;gt; (might be package-win-strip)&lt;br /&gt;
| Creates a subdirectory named &amp;lt;code&amp;gt;vlc-x.x.x&amp;lt;/code&amp;gt; with all the binaries &#039;stripped&#039; (that is, smallest size, unusable with a debugger)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win32-7zip&amp;lt;/code&amp;gt; &lt;br /&gt;
| Same as above but will package the directory in a 7z file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win32-zip&amp;lt;/code&amp;gt; &lt;br /&gt;
| Same as above but will package the directory in a zip file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win32&amp;lt;/code&amp;gt; &lt;br /&gt;
| Same as above but will also create an auto-installer package. You must have NSIS installed in its default location for this to work.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Well done—you&#039;re ready to use VLC!&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[[Category:Building]]&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Win32Compile&amp;diff=20396</id>
		<title>Win32Compile</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Win32Compile&amp;diff=20396"/>
		<updated>2011-12-01T17:17:01Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: add link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How to compile VLC for Windows &lt;br /&gt;
&lt;br /&gt;
== Before you start  ==&lt;br /&gt;
&lt;br /&gt;
One common desire that leads people to want to rebuild VLC is to &amp;quot;rebuild a debug version&amp;quot; or &amp;quot;add printf()s&amp;quot;, but this is not strictly necessary, as VLC includes a debug logging feature by default. If you are using a binary release (or have already built VLC), just run &amp;lt;code&amp;gt;&#039;vlc.exe&#039;&amp;lt;/code&amp;gt; and select &amp;quot;Messages...&amp;quot; from the &amp;quot;Tools&amp;quot; menu. &lt;br /&gt;
&lt;br /&gt;
You can also run VLC from the Windows command-line interpreter, &amp;lt;code&amp;gt;cmd.exe&amp;lt;/code&amp;gt; (a.k.a. &amp;quot;DOS window&amp;quot;), in which case you&#039;ll be able to use the command-line arguments. You can obtain a list of these command line arguments by typing &amp;lt;code&amp;gt;&#039;vlc --help&#039;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&#039;vlc --help --advanced&#039;&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
To store a debug log of the current VLC session, you can use &amp;lt;code&amp;gt;&#039;vlc -vvv --extraintf=logger&#039;&amp;lt;/code&amp;gt;. You will end-up with a &amp;lt;code&amp;gt;vlc-log.txt&amp;lt;/code&amp;gt; file in your current directory. &lt;br /&gt;
&lt;br /&gt;
== Building VLC from source  ==&lt;br /&gt;
&lt;br /&gt;
If you want to build VLC from source, you have several choices: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method &lt;br /&gt;
! Documentation &lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Cross-compile with Mingw32 on Linux &lt;br /&gt;
| None: read this page &lt;br /&gt;
| &#039;&#039;&#039;Preferred&#039;&#039;&#039; method (uses cross compilation) &amp;lt;br&amp;gt; &#039;&#039;Note: read [[Win32CompileFedora13]] if building on Fedora 13&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Native-compile with [http://www.mingw.org MSYS+MINGW] &lt;br /&gt;
| [[Win32CompileMSYSNew]] &lt;br /&gt;
| &#039;&#039;&#039;Not recommanded&#039;&#039;&#039; native compilation method. MSYS is a minimal build environment to compile Unixish projects under Microsoft Windows. It provides all the commonly-required Unix tools (like sh, gmake, and so forth).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Obtaining the build tools  ==&lt;br /&gt;
&lt;br /&gt;
Each build method requires its own toolchain: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method &lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Cross-compile with mingw32 on GNU/Linux &lt;br /&gt;
| &lt;br /&gt;
*Debian/Ubuntu users can &amp;lt;code&amp;gt;apt-get install gcc-mingw32 mingw32-binutils&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;apt-get build-dep vlc&amp;lt;/code&amp;gt; should download most of the needed libraries (according to the vlc version in the repositories), however building FFmpeg now requires mingw32-runtime &amp;amp;gt;= 3.17 and w32api &amp;amp;gt;= 3.13 so these might have to be updated manually. Install the lua compiler with &amp;lt;code&amp;gt;apt-get install lua5.1&amp;lt;/code&amp;gt;. &lt;br /&gt;
*Gentoo users can &amp;lt;code&amp;gt;emerge crossdev &amp;amp;amp;&amp;amp;amp; crossdev mingw32&amp;lt;/code&amp;gt; &lt;br /&gt;
*Other systems may attempt http://www.mingw.org/wiki/LinuxCrossMinGW&lt;br /&gt;
|-&lt;br /&gt;
| Native-compile with [http://www.mingw.org MSYS+MINGW] &lt;br /&gt;
| Read the [[Win32CompileMSYSNew|documentation]]&lt;br /&gt;
|-&lt;br /&gt;
| Native-compile with [http://www.cygwin.com Cygwin] &lt;br /&gt;
| Read the [[Win32CompileCygwinNew|documentation]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 3rd party libraries.&amp;lt;br&amp;gt;  ==&lt;br /&gt;
&lt;br /&gt;
VLC modules requires numerous open source projects to work (like AC3 audio decoding or MPEG-4 video decoding). &lt;br /&gt;
&lt;br /&gt;
If you feel you must build these libraries from source, go to extras/contrib and read the README.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
If you want to save yourself a lot of time and energy, use the pre-built versions of these libraries. You may download them from http://people.videolan.org/~jb/Contribs/, named in fashion of contrib-&#039;&#039;&#039;yyyymmdd&#039;&#039;&#039;-win32-&#039;&#039;&#039;version&#039;&#039;&#039;-bin-gcc-&#039;&#039;&#039;gccversion&#039;&#039;&#039;-only.tar.bz2.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Install the pre-built libraries into the standard directories (/usr/win32/*) by using &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;tar jxf contrib-20061122-win32-bin-gcc-3.4.5-only.tar.bz2 -C /&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
(Note the &amp;lt;code&amp;gt;&amp;quot;-C /&amp;quot;&amp;lt;/code&amp;gt;!) &lt;br /&gt;
&lt;br /&gt;
== Configuring the build  ==&lt;br /&gt;
&lt;br /&gt;
First of all, [[GetTheSource]] then run &amp;lt;code&amp;gt;./bootstrap&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve got all the files you need in place, you need to configure the build with the &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; script. &lt;br /&gt;
&lt;br /&gt;
Good examples can be found in some files (in [http://git.videolan.org/gitweb.cgi?p=vlc.git;a=tree git]). From the vlc source base directory run:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;extras/package/win32/configure.sh --with-contrib=/usr/win32 --host=i586-mingw32msvc&amp;lt;/code&amp;gt; helper script for cross compiling with mingw32 with the known contribs&lt;br /&gt;
*&amp;lt;code&amp;gt;extras/package/win32/configure.sh --with-contrib=/path/to/folder/containing/contribs&amp;lt;/code&amp;gt; same for compiling with msys or cygwin&lt;br /&gt;
*&amp;lt;code&amp;gt;./configure --with-contrib=/usr/win32 --host=i586-mingw32msvc&amp;lt;/code&amp;gt; might work as well&lt;br /&gt;
&lt;br /&gt;
See &amp;lt;code&amp;gt;&#039;./configure --help&#039;&amp;lt;/code&amp;gt; for more information.&lt;br /&gt;
&lt;br /&gt;
== Building VLC  ==&lt;br /&gt;
&lt;br /&gt;
Once configured, to build VLC, just run &amp;lt;code&amp;gt;&#039;make&#039;&amp;lt;/code&amp;gt;. &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;lt;code&amp;gt;make&amp;lt;/code&amp;gt; rules: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command &lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win32-strip&amp;lt;/code&amp;gt; (might be package-win-strip)&lt;br /&gt;
| Creates a subdirectory named &amp;lt;code&amp;gt;vlc-x.x.x&amp;lt;/code&amp;gt; with all the binaries &#039;stripped&#039; (that is, smallest size, unusable with a debugger)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win32-7zip&amp;lt;/code&amp;gt; &lt;br /&gt;
| Same as above but will package the directory in a 7z file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win32-zip&amp;lt;/code&amp;gt; &lt;br /&gt;
| Same as above but will package the directory in a zip file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win32&amp;lt;/code&amp;gt; &lt;br /&gt;
| Same as above but will also create an auto-installer package. You must have NSIS installed in its default location for this to work.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Well done—you&#039;re ready to use VLC!&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[[Category:Building]]&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Win32Compile&amp;diff=20370</id>
		<title>Win32Compile</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Win32Compile&amp;diff=20370"/>
		<updated>2011-12-01T03:29:16Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: /* Configuring the build */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How to compile VLC for Windows &lt;br /&gt;
&lt;br /&gt;
== Before you start  ==&lt;br /&gt;
&lt;br /&gt;
One common desire that leads people to want to rebuild VLC is to &amp;quot;rebuild a debug version&amp;quot; or &amp;quot;add printf()s&amp;quot;, but this is not strictly necessary, as VLC includes a debug logging feature by default. If you are using a binary release (or have already built VLC), just run &amp;lt;code&amp;gt;&#039;vlc.exe&#039;&amp;lt;/code&amp;gt; and select &amp;quot;Messages...&amp;quot; from the &amp;quot;Tools&amp;quot; menu. &lt;br /&gt;
&lt;br /&gt;
You can also run VLC from the Windows command-line interpreter, &amp;lt;code&amp;gt;cmd.exe&amp;lt;/code&amp;gt; (a.k.a. &amp;quot;DOS window&amp;quot;), in which case you&#039;ll be able to use the command-line arguments. You can obtain a list of these command line arguments by typing &amp;lt;code&amp;gt;&#039;vlc --help&#039;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&#039;vlc --help --advanced&#039;&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
To store a debug log of the current VLC session, you can use &amp;lt;code&amp;gt;&#039;vlc -vvv --extraintf=logger&#039;&amp;lt;/code&amp;gt;. You will end-up with a &amp;lt;code&amp;gt;vlc-log.txt&amp;lt;/code&amp;gt; file in your current directory. &lt;br /&gt;
&lt;br /&gt;
== Building VLC from source  ==&lt;br /&gt;
&lt;br /&gt;
If you want to build VLC from source, you have several choices: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method &lt;br /&gt;
! Documentation &lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Cross-compile with Mingw32 on Linux &lt;br /&gt;
| None: read this page &lt;br /&gt;
| &#039;&#039;&#039;Preferred&#039;&#039;&#039; method (uses cross compilation) &amp;lt;br&amp;gt; &#039;&#039;Note: read [[Win32CompileFedora13]] if building on Fedora 13&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Native-compile with [http://www.mingw.org MSYS+MINGW] &lt;br /&gt;
| [[Win32CompileMSYSNew]] &lt;br /&gt;
| &#039;&#039;&#039;Not recommanded&#039;&#039;&#039; native compilation method. MSYS is a minimal build environment to compile Unixish projects under Microsoft Windows. It provides all the commonly-required Unix tools (like sh, gmake, and so forth).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Obtaining the build tools  ==&lt;br /&gt;
&lt;br /&gt;
Each build method requires its own toolchain: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method &lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Cross-compile with mingw32 on GNU/Linux &lt;br /&gt;
| &lt;br /&gt;
*Debian/Ubuntu users can &amp;lt;code&amp;gt;apt-get install gcc-mingw32 mingw32-binutils&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;apt-get build-dep vlc&amp;lt;/code&amp;gt; should download most of the needed libraries (according to the vlc version in the repositories), however building FFmpeg now requires mingw32-runtime &amp;amp;gt;= 3.17 and w32api &amp;amp;gt;= 3.13 so these might have to be updated manually. Install the lua compiler with &amp;lt;code&amp;gt;apt-get install lua5.1&amp;lt;/code&amp;gt;. &lt;br /&gt;
*Gentoo users can &amp;lt;code&amp;gt;emerge crossdev &amp;amp;amp;&amp;amp;amp; crossdev mingw32&amp;lt;/code&amp;gt; &lt;br /&gt;
*Other systems may attempt http://www.mingw.org/wiki/LinuxCrossMinGW&lt;br /&gt;
|-&lt;br /&gt;
| Native-compile with [http://www.mingw.org MSYS+MINGW] &lt;br /&gt;
| Read the [[Win32CompileMSYSNew|documentation]]&lt;br /&gt;
|-&lt;br /&gt;
| Native-compile with [http://www.cygwin.com Cygwin] &lt;br /&gt;
| Read the [[Win32CompileCygwinNew|documentation]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 3rd party libraries.&amp;lt;br&amp;gt;  ==&lt;br /&gt;
&lt;br /&gt;
VLC modules requires numerous open source projects to work (like AC3 audio decoding or MPEG-4 video decoding). &lt;br /&gt;
&lt;br /&gt;
If you feel you must build these libraries from source, go to extras/contrib and read the README.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
If you want to save yourself a lot of time and energy, use the pre-built versions of these libraries. You may download them from http://people.videolan.org/~jb/Contribs/, named in fashion of contrib-&#039;&#039;&#039;yyyymmdd&#039;&#039;&#039;-win32-&#039;&#039;&#039;version&#039;&#039;&#039;-bin-gcc-&#039;&#039;&#039;gccversion&#039;&#039;&#039;-only.tar.bz2.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Install the pre-built libraries into the standard directories (/usr/win32/*) by using &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;tar jxf contrib-20061122-win32-bin-gcc-3.4.5-only.tar.bz2 -C /&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
(Note the &amp;lt;code&amp;gt;&amp;quot;-C /&amp;quot;&amp;lt;/code&amp;gt;!) &lt;br /&gt;
&lt;br /&gt;
== Configuring the build  ==&lt;br /&gt;
&lt;br /&gt;
First of all, &amp;lt;code&amp;gt;./bootstrap&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve got all the files you need in place, you need to configure the build with the &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; script. &lt;br /&gt;
&lt;br /&gt;
Good examples can be found in some files (in [http://git.videolan.org/gitweb.cgi?p=vlc.git;a=tree git]). From the vlc source base directory run:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;extras/package/win32/configure.sh --with-contrib=/usr/win32 --host=i586-mingw32msvc&amp;lt;/code&amp;gt; helper script for cross compiling with mingw32 with the known contribs&lt;br /&gt;
*&amp;lt;code&amp;gt;extras/package/win32/configure.sh --with-contrib=/path/to/folder/containing/contribs&amp;lt;/code&amp;gt; same for compiling with msys or cygwin&lt;br /&gt;
*&amp;lt;code&amp;gt;./configure --with-contrib=/usr/win32 --host=i586-mingw32msvc&amp;lt;/code&amp;gt; might work as well&lt;br /&gt;
&lt;br /&gt;
See &amp;lt;code&amp;gt;&#039;./configure --help&#039;&amp;lt;/code&amp;gt; for more information.&lt;br /&gt;
&lt;br /&gt;
== Building VLC  ==&lt;br /&gt;
&lt;br /&gt;
Once configured, to build VLC, just run &amp;lt;code&amp;gt;&#039;make&#039;&amp;lt;/code&amp;gt;. &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;lt;code&amp;gt;make&amp;lt;/code&amp;gt; rules: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command &lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win32-strip&amp;lt;/code&amp;gt; (might be package-win-strip)&lt;br /&gt;
| Creates a subdirectory named &amp;lt;code&amp;gt;vlc-x.x.x&amp;lt;/code&amp;gt; with all the binaries &#039;stripped&#039; (that is, smallest size, unusable with a debugger)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win32-7zip&amp;lt;/code&amp;gt; &lt;br /&gt;
| Same as above but will package the directory in a 7z file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win32-zip&amp;lt;/code&amp;gt; &lt;br /&gt;
| Same as above but will package the directory in a zip file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win32&amp;lt;/code&amp;gt; &lt;br /&gt;
| Same as above but will also create an auto-installer package. You must have NSIS installed in its default location for this to work.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Well done—you&#039;re ready to use VLC!&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[[Category:Building]]&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Win32Compile&amp;diff=20369</id>
		<title>Win32Compile</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Win32Compile&amp;diff=20369"/>
		<updated>2011-12-01T02:22:42Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: /* Building VLC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How to compile VLC for Windows &lt;br /&gt;
&lt;br /&gt;
== Before you start  ==&lt;br /&gt;
&lt;br /&gt;
One common desire that leads people to want to rebuild VLC is to &amp;quot;rebuild a debug version&amp;quot; or &amp;quot;add printf()s&amp;quot;, but this is not strictly necessary, as VLC includes a debug logging feature by default. If you are using a binary release (or have already built VLC), just run &amp;lt;code&amp;gt;&#039;vlc.exe&#039;&amp;lt;/code&amp;gt; and select &amp;quot;Messages...&amp;quot; from the &amp;quot;Tools&amp;quot; menu. &lt;br /&gt;
&lt;br /&gt;
You can also run VLC from the Windows command-line interpreter, &amp;lt;code&amp;gt;cmd.exe&amp;lt;/code&amp;gt; (a.k.a. &amp;quot;DOS window&amp;quot;), in which case you&#039;ll be able to use the command-line arguments. You can obtain a list of these command line arguments by typing &amp;lt;code&amp;gt;&#039;vlc --help&#039;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&#039;vlc --help --advanced&#039;&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
To store a debug log of the current VLC session, you can use &amp;lt;code&amp;gt;&#039;vlc -vvv --extraintf=logger&#039;&amp;lt;/code&amp;gt;. You will end-up with a &amp;lt;code&amp;gt;vlc-log.txt&amp;lt;/code&amp;gt; file in your current directory. &lt;br /&gt;
&lt;br /&gt;
== Building VLC from source  ==&lt;br /&gt;
&lt;br /&gt;
If you want to build VLC from source, you have several choices: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method &lt;br /&gt;
! Documentation &lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Cross-compile with Mingw32 on Linux &lt;br /&gt;
| None: read this page &lt;br /&gt;
| &#039;&#039;&#039;Preferred&#039;&#039;&#039; method (uses cross compilation) &amp;lt;br&amp;gt; &#039;&#039;Note: read [[Win32CompileFedora13]] if building on Fedora 13&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Native-compile with [http://www.mingw.org MSYS+MINGW] &lt;br /&gt;
| [[Win32CompileMSYSNew]] &lt;br /&gt;
| &#039;&#039;&#039;Not recommanded&#039;&#039;&#039; native compilation method. MSYS is a minimal build environment to compile Unixish projects under Microsoft Windows. It provides all the commonly-required Unix tools (like sh, gmake, and so forth).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Obtaining the build tools  ==&lt;br /&gt;
&lt;br /&gt;
Each build method requires its own toolchain: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method &lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Cross-compile with mingw32 on GNU/Linux &lt;br /&gt;
| &lt;br /&gt;
*Debian/Ubuntu users can &amp;lt;code&amp;gt;apt-get install gcc-mingw32 mingw32-binutils&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;apt-get build-dep vlc&amp;lt;/code&amp;gt; should download most of the needed libraries (according to the vlc version in the repositories), however building FFmpeg now requires mingw32-runtime &amp;amp;gt;= 3.17 and w32api &amp;amp;gt;= 3.13 so these might have to be updated manually. Install the lua compiler with &amp;lt;code&amp;gt;apt-get install lua5.1&amp;lt;/code&amp;gt;. &lt;br /&gt;
*Gentoo users can &amp;lt;code&amp;gt;emerge crossdev &amp;amp;amp;&amp;amp;amp; crossdev mingw32&amp;lt;/code&amp;gt; &lt;br /&gt;
*Other systems may attempt http://www.mingw.org/wiki/LinuxCrossMinGW&lt;br /&gt;
|-&lt;br /&gt;
| Native-compile with [http://www.mingw.org MSYS+MINGW] &lt;br /&gt;
| Read the [[Win32CompileMSYSNew|documentation]]&lt;br /&gt;
|-&lt;br /&gt;
| Native-compile with [http://www.cygwin.com Cygwin] &lt;br /&gt;
| Read the [[Win32CompileCygwinNew|documentation]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 3rd party libraries.&amp;lt;br&amp;gt;  ==&lt;br /&gt;
&lt;br /&gt;
VLC modules requires numerous open source projects to work (like AC3 audio decoding or MPEG-4 video decoding). &lt;br /&gt;
&lt;br /&gt;
If you feel you must build these libraries from source, go to extras/contrib and read the README.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
If you want to save yourself a lot of time and energy, use the pre-built versions of these libraries. You may download them from http://people.videolan.org/~jb/Contribs/, named in fashion of contrib-&#039;&#039;&#039;yyyymmdd&#039;&#039;&#039;-win32-&#039;&#039;&#039;version&#039;&#039;&#039;-bin-gcc-&#039;&#039;&#039;gccversion&#039;&#039;&#039;-only.tar.bz2.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Install the pre-built libraries into the standard directories (/usr/win32/*) by using &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;tar jxf contrib-20061122-win32-bin-gcc-3.4.5-only.tar.bz2 -C /&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
(Note the &amp;lt;code&amp;gt;&amp;quot;-C /&amp;quot;&amp;lt;/code&amp;gt;!) &lt;br /&gt;
&lt;br /&gt;
== Configuring the build  ==&lt;br /&gt;
&lt;br /&gt;
First of all, &amp;lt;code&amp;gt;./bootstrap&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve got all the files you need in place, you need to configure the build with the &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; script. &lt;br /&gt;
&lt;br /&gt;
Good examples can be found in some files (in [http://git.videolan.org/gitweb.cgi?p=vlc.git;a=tree git]). From the vlc source base directory run:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;extras/package/win32/configure.sh --with-contrib=/usr/win32 --host=i586-mingw32msvc&amp;lt;/code&amp;gt; for cross compiling with mingw32&lt;br /&gt;
*&amp;lt;code&amp;gt;extras/package/win32/configure.sh --with-contrib=/path/to/folder/containing/contribs&amp;lt;/code&amp;gt; for compiling with msys or cygwin&lt;br /&gt;
&lt;br /&gt;
See &amp;lt;code&amp;gt;&#039;./configure --help&#039;&amp;lt;/code&amp;gt; for more information.&lt;br /&gt;
&lt;br /&gt;
== Building VLC  ==&lt;br /&gt;
&lt;br /&gt;
Once configured, to build VLC, just run &amp;lt;code&amp;gt;&#039;make&#039;&amp;lt;/code&amp;gt;. &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;lt;code&amp;gt;make&amp;lt;/code&amp;gt; rules: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command &lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win32-strip&amp;lt;/code&amp;gt; (might be package-win-strip)&lt;br /&gt;
| Creates a subdirectory named &amp;lt;code&amp;gt;vlc-x.x.x&amp;lt;/code&amp;gt; with all the binaries &#039;stripped&#039; (that is, smallest size, unusable with a debugger)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win32-7zip&amp;lt;/code&amp;gt; &lt;br /&gt;
| Same as above but will package the directory in a 7z file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win32-zip&amp;lt;/code&amp;gt; &lt;br /&gt;
| Same as above but will package the directory in a zip file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win32&amp;lt;/code&amp;gt; &lt;br /&gt;
| Same as above but will also create an auto-installer package. You must have NSIS installed in its default location for this to work.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Well done—you&#039;re ready to use VLC!&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[[Category:Building]]&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Win32CompileMSYSNew&amp;diff=20368</id>
		<title>Win32CompileMSYSNew</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Win32CompileMSYSNew&amp;diff=20368"/>
		<updated>2011-12-01T01:52:05Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: no longer preferred I doubt...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction  =&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
MSys is a helper environment for MinGW, the compiler chain for Windows based on GCC. It can build VLC natively on Windows.  Note that you could also [[Win32Compile|cross compile]] VLC from Linux, if desired (it is faster, and feels easier).&lt;br /&gt;
&lt;br /&gt;
VLC is a complex program with many dependencies, so minimal command-line experience is required. Also, don&#039;t be in a hurry (2 hours is a minimum for the whole process) and don&#039;t despair if it doesn&#039;t work first time.&lt;br /&gt;
&lt;br /&gt;
== On the edge vs Conservative ==&lt;br /&gt;
&lt;br /&gt;
This update aims at building versions from the 1.1.0 branch natively in the most straightforward way. &lt;br /&gt;
&lt;br /&gt;
Of course, if you want to live on the edge, feel free to select more recent versions of the proposed tools, contribs or sources, but the build has only been thoroughly validated with the versions indicated in the main text flow. &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Such alternative ways are indented, italicized and marked &amp;quot;Note for the brave&amp;quot;&amp;amp;nbsp;:-). Your mileage may vary&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
&lt;br /&gt;
This howto was re-created by [[User:J-b|Jean-Baptiste Kempf]] and updated in June 2009, September 2009, December 2009 and March 2010. &lt;br /&gt;
&lt;br /&gt;
It was updated in June 2010 by Vicne with the help of J-b, gnosygnu and MichaelMc &lt;br /&gt;
&lt;br /&gt;
= Windows tools needed  =&lt;br /&gt;
&lt;br /&gt;
== Text editor  ==&lt;br /&gt;
&lt;br /&gt;
To edit unix-style text documents you need a suitable editor. &lt;br /&gt;
&lt;br /&gt;
You can look at [http://sourceforge.net/projects/notepad2/ notepad2]. You can set File - Line endings - Default to &amp;quot;Unix (LF)&amp;quot;, but it always saves opened files in the ending style they have.&lt;br /&gt;
&lt;br /&gt;
Or you can look at [http://notepad-plus-plus.org/ notepad++].&lt;br /&gt;
&lt;br /&gt;
== Unzip Utility (7-zip) ==&lt;br /&gt;
&lt;br /&gt;
Many files to downloaded will have to be uncompressed. As most of them use Linux-originated formats (.tar.gz, .tar.bz2, .tar.lzma), you will need a versatile unzipping utility. A recent version of [http://www.7-zip.org/ 7-zip] is therefore strongly advised. &lt;br /&gt;
&lt;br /&gt;
Please note that most archives contain directory structures. Unless otherwise stated, you have to merge the contents with the existing dirs&lt;br /&gt;
&lt;br /&gt;
= GNU Windows Environment  =&lt;br /&gt;
&lt;br /&gt;
Before installing, ensure your Windows user name does not contain spaces (VLC will not build in a folder with spaces in it). If it does, please create another user on your system. &lt;br /&gt;
&lt;br /&gt;
In the following text, we&#039;ll refer to this user name as &amp;quot;&amp;amp;lt;username&amp;amp;gt;&amp;quot;. Replace it appropriately where needed of course. &lt;br /&gt;
&lt;br /&gt;
== MinGW  ==&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;the old version of mingw GCC (3.4.5) worked with VLC, because it uses SjLj exception unwinding.  Any &amp;quot;vanilla&amp;quot; version 4.0+ by default uses dwarf2 exception unwinding, so isn&#039;t compatible with the contribs.  So recommend installing TDM, below.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== TDM/MinGW Setup  ===&lt;br /&gt;
&lt;br /&gt;
Use the installer found at http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/tdm-gcc-4.5.2.exe/download &lt;br /&gt;
&lt;br /&gt;
Go through the wizard: &lt;br /&gt;
&lt;br /&gt;
*uncheck &amp;quot;Check for updated files...&amp;quot; &lt;br /&gt;
*Select &amp;quot;Create&amp;quot; &lt;br /&gt;
*install to C:\MinGW &lt;br /&gt;
*keep default settings &lt;br /&gt;
&lt;br /&gt;
*afterwards check that C:\MinGW\bin is added to windows PATH (http://www.computerhope.com/issues/ch000549.htm)&lt;br /&gt;
&lt;br /&gt;
=== MinGW utils&amp;lt;br&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Installing mingw-utils is recommended: http://prdownloads.sourceforge.net/mingw/mingw-utils-0.3.tar.gz &lt;br /&gt;
&lt;br /&gt;
Extract contents to c:\MinGW&lt;br /&gt;
&lt;br /&gt;
== MSys  ==&lt;br /&gt;
&lt;br /&gt;
=== MSys Setup  ===&lt;br /&gt;
&lt;br /&gt;
Use the installer found at http://sourceforge.net/project/downloading.php?group_id=2435&amp;amp;amp;filename=MSYS-1.0.11.exe &lt;br /&gt;
&lt;br /&gt;
Go through the wizard and install to to default C:\Msys\1.0 &lt;br /&gt;
&lt;br /&gt;
In the command window that opens, answer questions as follows: &lt;br /&gt;
&lt;br /&gt;
 Accept Post Install: [y]&lt;br /&gt;
 MinGW Installed?&amp;amp;nbsp;:   [y]&lt;br /&gt;
 path to MinGW:       [c:/MinGW]&lt;br /&gt;
&lt;br /&gt;
=== MSys Developer Toolkit  ===&lt;br /&gt;
&lt;br /&gt;
Use the installer found at http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe &lt;br /&gt;
&lt;br /&gt;
Go through the wizard, keeping default values &lt;br /&gt;
&lt;br /&gt;
=== AutoTools and libcrypt  ===&lt;br /&gt;
&lt;br /&gt;
Update autoconf, automake, libtool as well as libcrypt by downloading the following files and extracting them to C:\Msys\1.0: &lt;br /&gt;
&lt;br /&gt;
*http://sourceforge.net/projects/mingw/files/MSYS/autoconf/autoconf-2.63-1/autoconf-2.63-1-msys-1.0.11-bin.tar.lzma/download&lt;br /&gt;
*http://sourceforge.net/projects/mingw/files/MSYS/automake/automake-1.11-1/automake-1.11-1-msys-1.0.11-bin.tar.lzma/download&lt;br /&gt;
*http://sourceforge.net/projects/mingw/files/MSYS/libtool/libtool-2.2.7a-1/libtool-2.2.7a-1-msys-1.0.11-bin.tar.lzma/download &lt;br /&gt;
*http://prdownloads.sourceforge.net/mingw/libcrypt-1.1_1-2-msys-1.0.11-dll-0.tar.lzma&lt;br /&gt;
*http://sourceforge.net/projects/mingw/files/MSYS/perl/perl-5.8.8-1/perl-5.8.8-1-msys-1.0.17-bin.tar.lzma/download&lt;br /&gt;
&lt;br /&gt;
=== Glib and PKG-CONFIG  ===&lt;br /&gt;
&lt;br /&gt;
Similarly, download the following files and extract them to C:\MSys\1.0: &lt;br /&gt;
&lt;br /&gt;
Note* Download the latest version inside this folders (Last tested to be OK is glib 2.28, non-dev version)):&lt;br /&gt;
&lt;br /&gt;
*http://ftp.gnome.org/pub/GNOME/binaries/win32/glib &lt;br /&gt;
*ftp://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.23-3_win32.zip &lt;br /&gt;
*ftp://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config-dev_0.23-3_win32.zip&lt;br /&gt;
*http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-runtime_0.18.1.1-2_win32.zip&lt;br /&gt;
&lt;br /&gt;
=== Add pkg config path variable  ===&lt;br /&gt;
&lt;br /&gt;
Add the following line to the *top* of C:\MSys\1.0\msys.bat: &lt;br /&gt;
&lt;br /&gt;
 set PKG_CONFIG_PATH=/win32/lib/pkgconfig&lt;br /&gt;
&lt;br /&gt;
=== Fix libtool search dirs  ===&lt;br /&gt;
&lt;br /&gt;
Open C:\MSys\1.0\bin\libtool and change line 9926 by appending &#039; /mingw/lib&#039; to the end of &#039;compiler_lib_search_dirs&#039;. The line should then read&amp;amp;nbsp;: &lt;br /&gt;
&lt;br /&gt;
 compiler_lib_search_dirs=&amp;quot;/usr/lib /usr/lib /bin/../lib/gcc-lib/i686-pc-msys/2.95.3-1 /bin/../lib/gcc-lib /usr/lib/gcc-lib/i686-pc-msys/2.95.3-1 /bin/../lib/gcc-lib/i686-pc-msys/2.95.3-1/../../../../i686-pc-msys/lib /usr/lib/gcc-lib/i686-pc-msys/2.95.3-1/../../../../i686-pc-msys/lib /mingw/lib&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== LUA tools  ==&lt;br /&gt;
&lt;br /&gt;
VLC uses the LUA scripting language (See [http://www.lua.org lua.org]). Unfortunately, no binaries are provided so you need to compile them. &lt;br /&gt;
&lt;br /&gt;
*Download the lua tools package from http://www.lua.org/ftp/lua-5.1.4.tar.gz &lt;br /&gt;
*Uncompress it in your home folder (C:\MSys\1.0\home\&amp;amp;lt;username&amp;amp;gt;) &lt;br /&gt;
*run MSys&lt;br /&gt;
*type the following commands:&lt;br /&gt;
&lt;br /&gt;
 cd /home/&amp;lt;username&amp;gt;/lua-5.1.4 &lt;br /&gt;
 make mingw&lt;br /&gt;
&lt;br /&gt;
This should produce lua.exe, luac.exe and lua51.dll in the src directory. Put these in your /bin with the commands: &lt;br /&gt;
&lt;br /&gt;
 cd src &lt;br /&gt;
 cp *.exe *.dll /bin&lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
Alternatively you could download some &amp;quot;full lua&amp;quot; package, as long as it puts a luac.exe in your path you are good to go, for instance http://code.google.com/p/luaforwindows binaries.&lt;br /&gt;
&lt;br /&gt;
= Precompiled contribs  =&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Note for the brave&amp;amp;nbsp;: Alternatively, you can get the latest contrib from&amp;amp;nbsp;:http://people.videolan.org/~jb/Contribs/&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*download the file http://people.videolan.org/~jb/Contribs/contrib-20100608-win32-bin-gcc-4.4.4-runtime-3.17-only.tar.bz2 &lt;br /&gt;
*extract it to C:\MSys\1.0 &#039;&#039;&#039;but without the /usr path&#039;&#039;&#039;. For example, one of the resulting files should be:&lt;br /&gt;
&lt;br /&gt;
 C:\MSys\1.0\win32\lib\libdvdnav.a&lt;br /&gt;
&lt;br /&gt;
Contribs are basically some precompiled 3rd party library (Here&#039;s a [[Contrib_Status|list]] of what they all are).&lt;br /&gt;
&lt;br /&gt;
= VLC sources  =&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Note for the brave&amp;amp;nbsp;: This section lists the steps for VLC version 1.1.0rc3. Alternatively, you could get the latest sources from the development tree using GIT. It&#039;s not as difficult as it looks to do so. If you want chose that route, please follow instructions on the [[Git Windows]] page (just download the VLC repository--you don&#039;t need the x264 one) then skip the next section &amp;quot;Last Change&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Base: VLC version 1.1.0rc3  ==&lt;br /&gt;
&lt;br /&gt;
*download the file http://download.videolan.org/pub/videolan/testing/vlc-1.1.0-rc3/vlc-1.1.0-rc3.tar.bz2 &lt;br /&gt;
*extract it to C:\MSys\1.0\home\&amp;amp;lt;username&amp;amp;gt; &lt;br /&gt;
*rename the vlc-1.1.0rc3 dir to vlc&lt;br /&gt;
&lt;br /&gt;
== add missing configure-msys (1.1.x only)==&lt;br /&gt;
* Download http://git.videolan.org/?p=vlc.git;a=blob_plain;f=extras/package/win32/configure-msys.sh;hb=HEAD&lt;br /&gt;
* Save it (not using proposed name) as C:\msys\1.0\home\&amp;lt;username&amp;gt;\vlc\extras\package\win32\configure-msys.sh&lt;br /&gt;
&lt;br /&gt;
== add missing configure-common (1.1.x only) ==&lt;br /&gt;
* Download http://git.videolan.org/?p=vlc.git;a=blob_plain;f=extras/package/win32/configure-common.sh;hb=HEAD&lt;br /&gt;
* Save it (not using proposed name) as C:\msys\1.0\home\&amp;lt;username&amp;gt;\vlc\extras\package\win32\configure-common.sh&lt;br /&gt;
&lt;br /&gt;
= Last change&amp;amp;nbsp;: whoami and hostname  =&lt;br /&gt;
&lt;br /&gt;
Whoami is not available on Windows, and hostname doesn&#039;t support the -f option used by the build process. These utilities are used to show the name and computer of the person who compiled VLC in the &#039;About&#039; box. &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Note for the brave&amp;amp;nbsp;: the steps below are file changes so that compile works, but an alternative is to download and install GNU whoami and hostname functionality. This can be achieved by doing the following steps:&lt;br /&gt;
# &#039;&#039;download coreutils from http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/coreutils, selecting any version (latter is normally better) then the file named like coreutils-5.97-2-msys-1.0.11-ext.tar.lzma (note &#039;-ext&#039; in file name) and extracting who.exe, whoami.exe, hostname.exe to C:/MSys/1.0/bin&#039;&#039;&lt;br /&gt;
# &#039;&#039;download libintl dll from http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/libiconv, selecting any version (latter is normally better) then the file named like libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma (note &#039;-dll&#039; in file name) and extracting dll in C:/MSys/1.0/bin&#039;&#039;&lt;br /&gt;
# &#039;&#039;download libiconv dll from http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/gettext, selecting any version (latter is normally better) then the file named like libintl-0.17-2-msys-dll-8.tar.lzma (note &#039;-dll&#039; in file name) and extracting dll in C:/MSys/1.0/bin&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Whoami  ==&lt;br /&gt;
&lt;br /&gt;
Create a new file containing the single line: &lt;br /&gt;
&lt;br /&gt;
 echo &#039;&amp;amp;lt;username&amp;amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
and save it as C:\MSys\1.0\bin\whoami (without any extension) &lt;br /&gt;
&lt;br /&gt;
== Hostname  ==&lt;br /&gt;
&lt;br /&gt;
Modify configure.ac so that it doesn&#039;t call &#039;hostname -f&#039; as follows: &lt;br /&gt;
&lt;br /&gt;
*open C:\MSys\1.0\home\&amp;amp;lt;username&amp;amp;gt;\vlc\configure.ac &lt;br /&gt;
*goto search button:&lt;br /&gt;
*change it as follows:&lt;br /&gt;
&lt;br /&gt;
 old: AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, &amp;quot;`hostname -f 2&amp;amp;gt; /dev/null || hostname`&amp;quot;, [host which ran configure])&lt;br /&gt;
 new: AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, &amp;quot;`hostname`&amp;quot;, [host which ran configure])&lt;br /&gt;
&lt;br /&gt;
= Build VLC  =&lt;br /&gt;
&lt;br /&gt;
The build is made exclusively from the command line, so if you closed the prompt at the LUA step, re-execute C:\MSys\1.0\msys.bat, then type the commands as mentioned &lt;br /&gt;
&lt;br /&gt;
== Bootstrap  ==&lt;br /&gt;
&lt;br /&gt;
 cd vlc&lt;br /&gt;
 cp -v /usr/win32/share/aclocal/* m4/&lt;br /&gt;
 cp -v /usr/share/aclocal/* m4/&lt;br /&gt;
 PATH=/usr/win32/bin:$PATH ./bootstrap&lt;br /&gt;
&lt;br /&gt;
== Configure  ==&lt;br /&gt;
&lt;br /&gt;
 sh extras/package/win32/configure-msys.sh&lt;br /&gt;
&lt;br /&gt;
If you want any custom options, like &amp;quot;--disable-lua&amp;quot; or anything of that nature, you&#039;ll need to edit that file directly instead of passing them in as parameters (at least currently that is required).&lt;br /&gt;
&lt;br /&gt;
== Make (compile) ==&lt;br /&gt;
&lt;br /&gt;
Note&amp;amp;nbsp;: If your &amp;amp;lt;username&amp;amp;gt; starts with the &amp;quot;u&amp;quot; or &amp;quot;x&amp;quot; character, change C:\MSys\1.0\home\&amp;amp;lt;username&amp;amp;gt;\config.h and double all backslashes in VLC_COMPILED_BY constant. &lt;br /&gt;
&lt;br /&gt;
Type the following command&amp;amp;nbsp;: &lt;br /&gt;
&lt;br /&gt;
 PATH=/usr/win32/bin:$PATH make&lt;br /&gt;
&lt;br /&gt;
If this step fails, try the following&lt;br /&gt;
* Go back to &amp;quot;Precompiled contribs&amp;quot; section, and obtain the latest compiled contrib (under &amp;quot;Note for the brave&amp;quot;)&lt;br /&gt;
* In the configure script section (configure-msys.sh), open that file and add --disable-upnp&lt;br /&gt;
&lt;br /&gt;
== Create self-contained packages  ==&lt;br /&gt;
&lt;br /&gt;
Once the compilation is done, build self-contained VLC packages with one of 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;
 make package-win32-base-debug&lt;br /&gt;
&lt;br /&gt;
(This will create a subdirectory named vlc-x.x.x with all the binaries containing debug info usable by gdb).&lt;br /&gt;
&lt;br /&gt;
Note that with the 1.2 branch these names have changed slightly.  Run &#039;&lt;br /&gt;
 grep &#039;:&#039; Makefile | grep package-win32&lt;br /&gt;
to see what they are now.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
See [[Win32CompileMSYSTroubleShooting]].&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
*[[Win32CompileMSYSOld]] - deprecated documentation&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Win32CompileMSYSNew&amp;diff=20367</id>
		<title>Win32CompileMSYSNew</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Win32CompileMSYSNew&amp;diff=20367"/>
		<updated>2011-12-01T01:50:22Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: /* LUA tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction  =&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
MSys is a helper environment for MinGW, the compiler chain for Windows based on GCC. It is the &#039;&#039;&#039;fastest&#039;&#039;&#039; and &#039;&#039;&#039;recommended &#039;&#039;&#039;way to build VLC natively on Windows.  Note that you could also [[Win32Compile|cross compile]] VLC from Linux, if desired (it is faster).&lt;br /&gt;
&lt;br /&gt;
VLC is a complex program with many dependencies, so minimal command-line experience is required. Also, don&#039;t be in a hurry (2 hours is a minimum for the whole process) and don&#039;t despair if it doesn&#039;t work first time.&lt;br /&gt;
&lt;br /&gt;
== On the edge vs Conservative ==&lt;br /&gt;
&lt;br /&gt;
This update aims at building versions from the 1.1.0 branch natively in the most straightforward way. &lt;br /&gt;
&lt;br /&gt;
Of course, if you want to live on the edge, feel free to select more recent versions of the proposed tools, contribs or sources, but the build has only been thoroughly validated with the versions indicated in the main text flow. &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Such alternative ways are indented, italicized and marked &amp;quot;Note for the brave&amp;quot;&amp;amp;nbsp;:-). Your mileage may vary&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
&lt;br /&gt;
This howto was re-created by [[User:J-b|Jean-Baptiste Kempf]] and updated in June 2009, September 2009, December 2009 and March 2010. &lt;br /&gt;
&lt;br /&gt;
It was updated in June 2010 by Vicne with the help of J-b, gnosygnu and MichaelMc &lt;br /&gt;
&lt;br /&gt;
= Windows tools needed  =&lt;br /&gt;
&lt;br /&gt;
== Text editor  ==&lt;br /&gt;
&lt;br /&gt;
To edit unix-style text documents you need a suitable editor. &lt;br /&gt;
&lt;br /&gt;
You can look at [http://sourceforge.net/projects/notepad2/ notepad2]. You can set File - Line endings - Default to &amp;quot;Unix (LF)&amp;quot;, but it always saves opened files in the ending style they have.&lt;br /&gt;
&lt;br /&gt;
Or you can look at [http://notepad-plus-plus.org/ notepad++].&lt;br /&gt;
&lt;br /&gt;
== Unzip Utility (7-zip) ==&lt;br /&gt;
&lt;br /&gt;
Many files to downloaded will have to be uncompressed. As most of them use Linux-originated formats (.tar.gz, .tar.bz2, .tar.lzma), you will need a versatile unzipping utility. A recent version of [http://www.7-zip.org/ 7-zip] is therefore strongly advised. &lt;br /&gt;
&lt;br /&gt;
Please note that most archives contain directory structures. Unless otherwise stated, you have to merge the contents with the existing dirs&lt;br /&gt;
&lt;br /&gt;
= GNU Windows Environment  =&lt;br /&gt;
&lt;br /&gt;
Before installing, ensure your Windows user name does not contain spaces (VLC will not build in a folder with spaces in it). If it does, please create another user on your system. &lt;br /&gt;
&lt;br /&gt;
In the following text, we&#039;ll refer to this user name as &amp;quot;&amp;amp;lt;username&amp;amp;gt;&amp;quot;. Replace it appropriately where needed of course. &lt;br /&gt;
&lt;br /&gt;
== MinGW  ==&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;the old version of mingw GCC (3.4.5) worked with VLC, because it uses SjLj exception unwinding.  Any &amp;quot;vanilla&amp;quot; version 4.0+ by default uses dwarf2 exception unwinding, so isn&#039;t compatible with the contribs.  So recommend installing TDM, below.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== TDM/MinGW Setup  ===&lt;br /&gt;
&lt;br /&gt;
Use the installer found at http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/tdm-gcc-4.5.2.exe/download &lt;br /&gt;
&lt;br /&gt;
Go through the wizard: &lt;br /&gt;
&lt;br /&gt;
*uncheck &amp;quot;Check for updated files...&amp;quot; &lt;br /&gt;
*Select &amp;quot;Create&amp;quot; &lt;br /&gt;
*install to C:\MinGW &lt;br /&gt;
*keep default settings &lt;br /&gt;
&lt;br /&gt;
*afterwards check that C:\MinGW\bin is added to windows PATH (http://www.computerhope.com/issues/ch000549.htm)&lt;br /&gt;
&lt;br /&gt;
=== MinGW utils&amp;lt;br&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Installing mingw-utils is recommended: http://prdownloads.sourceforge.net/mingw/mingw-utils-0.3.tar.gz &lt;br /&gt;
&lt;br /&gt;
Extract contents to c:\MinGW&lt;br /&gt;
&lt;br /&gt;
== MSys  ==&lt;br /&gt;
&lt;br /&gt;
=== MSys Setup  ===&lt;br /&gt;
&lt;br /&gt;
Use the installer found at http://sourceforge.net/project/downloading.php?group_id=2435&amp;amp;amp;filename=MSYS-1.0.11.exe &lt;br /&gt;
&lt;br /&gt;
Go through the wizard and install to to default C:\Msys\1.0 &lt;br /&gt;
&lt;br /&gt;
In the command window that opens, answer questions as follows: &lt;br /&gt;
&lt;br /&gt;
 Accept Post Install: [y]&lt;br /&gt;
 MinGW Installed?&amp;amp;nbsp;:   [y]&lt;br /&gt;
 path to MinGW:       [c:/MinGW]&lt;br /&gt;
&lt;br /&gt;
=== MSys Developer Toolkit  ===&lt;br /&gt;
&lt;br /&gt;
Use the installer found at http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe &lt;br /&gt;
&lt;br /&gt;
Go through the wizard, keeping default values &lt;br /&gt;
&lt;br /&gt;
=== AutoTools and libcrypt  ===&lt;br /&gt;
&lt;br /&gt;
Update autoconf, automake, libtool as well as libcrypt by downloading the following files and extracting them to C:\Msys\1.0: &lt;br /&gt;
&lt;br /&gt;
*http://sourceforge.net/projects/mingw/files/MSYS/autoconf/autoconf-2.63-1/autoconf-2.63-1-msys-1.0.11-bin.tar.lzma/download&lt;br /&gt;
*http://sourceforge.net/projects/mingw/files/MSYS/automake/automake-1.11-1/automake-1.11-1-msys-1.0.11-bin.tar.lzma/download&lt;br /&gt;
*http://sourceforge.net/projects/mingw/files/MSYS/libtool/libtool-2.2.7a-1/libtool-2.2.7a-1-msys-1.0.11-bin.tar.lzma/download &lt;br /&gt;
*http://prdownloads.sourceforge.net/mingw/libcrypt-1.1_1-2-msys-1.0.11-dll-0.tar.lzma&lt;br /&gt;
*http://sourceforge.net/projects/mingw/files/MSYS/perl/perl-5.8.8-1/perl-5.8.8-1-msys-1.0.17-bin.tar.lzma/download&lt;br /&gt;
&lt;br /&gt;
=== Glib and PKG-CONFIG  ===&lt;br /&gt;
&lt;br /&gt;
Similarly, download the following files and extract them to C:\MSys\1.0: &lt;br /&gt;
&lt;br /&gt;
Note* Download the latest version inside this folders (Last tested to be OK is glib 2.28, non-dev version)):&lt;br /&gt;
&lt;br /&gt;
*http://ftp.gnome.org/pub/GNOME/binaries/win32/glib &lt;br /&gt;
*ftp://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.23-3_win32.zip &lt;br /&gt;
*ftp://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config-dev_0.23-3_win32.zip&lt;br /&gt;
*http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-runtime_0.18.1.1-2_win32.zip&lt;br /&gt;
&lt;br /&gt;
=== Add pkg config path variable  ===&lt;br /&gt;
&lt;br /&gt;
Add the following line to the *top* of C:\MSys\1.0\msys.bat: &lt;br /&gt;
&lt;br /&gt;
 set PKG_CONFIG_PATH=/win32/lib/pkgconfig&lt;br /&gt;
&lt;br /&gt;
=== Fix libtool search dirs  ===&lt;br /&gt;
&lt;br /&gt;
Open C:\MSys\1.0\bin\libtool and change line 9926 by appending &#039; /mingw/lib&#039; to the end of &#039;compiler_lib_search_dirs&#039;. The line should then read&amp;amp;nbsp;: &lt;br /&gt;
&lt;br /&gt;
 compiler_lib_search_dirs=&amp;quot;/usr/lib /usr/lib /bin/../lib/gcc-lib/i686-pc-msys/2.95.3-1 /bin/../lib/gcc-lib /usr/lib/gcc-lib/i686-pc-msys/2.95.3-1 /bin/../lib/gcc-lib/i686-pc-msys/2.95.3-1/../../../../i686-pc-msys/lib /usr/lib/gcc-lib/i686-pc-msys/2.95.3-1/../../../../i686-pc-msys/lib /mingw/lib&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== LUA tools  ==&lt;br /&gt;
&lt;br /&gt;
VLC uses the LUA scripting language (See [http://www.lua.org lua.org]). Unfortunately, no binaries are provided so you need to compile them. &lt;br /&gt;
&lt;br /&gt;
*Download the lua tools package from http://www.lua.org/ftp/lua-5.1.4.tar.gz &lt;br /&gt;
*Uncompress it in your home folder (C:\MSys\1.0\home\&amp;amp;lt;username&amp;amp;gt;) &lt;br /&gt;
*run MSys&lt;br /&gt;
*type the following commands:&lt;br /&gt;
&lt;br /&gt;
 cd /home/&amp;lt;username&amp;gt;/lua-5.1.4 &lt;br /&gt;
 make mingw&lt;br /&gt;
&lt;br /&gt;
This should produce lua.exe, luac.exe and lua51.dll in the src directory. Put these in your /bin with the commands: &lt;br /&gt;
&lt;br /&gt;
 cd src &lt;br /&gt;
 cp *.exe *.dll /bin&lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
Alternatively you could download some &amp;quot;full lua&amp;quot; package, as long as it puts a luac.exe in your path you are good to go, for instance http://code.google.com/p/luaforwindows binaries.&lt;br /&gt;
&lt;br /&gt;
= Precompiled contribs  =&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Note for the brave&amp;amp;nbsp;: Alternatively, you can get the latest contrib from&amp;amp;nbsp;:http://people.videolan.org/~jb/Contribs/&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*download the file http://people.videolan.org/~jb/Contribs/contrib-20100608-win32-bin-gcc-4.4.4-runtime-3.17-only.tar.bz2 &lt;br /&gt;
*extract it to C:\MSys\1.0 &#039;&#039;&#039;but without the /usr path&#039;&#039;&#039;. For example, one of the resulting files should be:&lt;br /&gt;
&lt;br /&gt;
 C:\MSys\1.0\win32\lib\libdvdnav.a&lt;br /&gt;
&lt;br /&gt;
Contribs are basically some precompiled 3rd party library (Here&#039;s a [[Contrib_Status|list]] of what they all are).&lt;br /&gt;
&lt;br /&gt;
= VLC sources  =&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Note for the brave&amp;amp;nbsp;: This section lists the steps for VLC version 1.1.0rc3. Alternatively, you could get the latest sources from the development tree using GIT. It&#039;s not as difficult as it looks to do so. If you want chose that route, please follow instructions on the [[Git Windows]] page (just download the VLC repository--you don&#039;t need the x264 one) then skip the next section &amp;quot;Last Change&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Base: VLC version 1.1.0rc3  ==&lt;br /&gt;
&lt;br /&gt;
*download the file http://download.videolan.org/pub/videolan/testing/vlc-1.1.0-rc3/vlc-1.1.0-rc3.tar.bz2 &lt;br /&gt;
*extract it to C:\MSys\1.0\home\&amp;amp;lt;username&amp;amp;gt; &lt;br /&gt;
*rename the vlc-1.1.0rc3 dir to vlc&lt;br /&gt;
&lt;br /&gt;
== add missing configure-msys (1.1.x only)==&lt;br /&gt;
* Download http://git.videolan.org/?p=vlc.git;a=blob_plain;f=extras/package/win32/configure-msys.sh;hb=HEAD&lt;br /&gt;
* Save it (not using proposed name) as C:\msys\1.0\home\&amp;lt;username&amp;gt;\vlc\extras\package\win32\configure-msys.sh&lt;br /&gt;
&lt;br /&gt;
== add missing configure-common (1.1.x only) ==&lt;br /&gt;
* Download http://git.videolan.org/?p=vlc.git;a=blob_plain;f=extras/package/win32/configure-common.sh;hb=HEAD&lt;br /&gt;
* Save it (not using proposed name) as C:\msys\1.0\home\&amp;lt;username&amp;gt;\vlc\extras\package\win32\configure-common.sh&lt;br /&gt;
&lt;br /&gt;
= Last change&amp;amp;nbsp;: whoami and hostname  =&lt;br /&gt;
&lt;br /&gt;
Whoami is not available on Windows, and hostname doesn&#039;t support the -f option used by the build process. These utilities are used to show the name and computer of the person who compiled VLC in the &#039;About&#039; box. &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Note for the brave&amp;amp;nbsp;: the steps below are file changes so that compile works, but an alternative is to download and install GNU whoami and hostname functionality. This can be achieved by doing the following steps:&lt;br /&gt;
# &#039;&#039;download coreutils from http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/coreutils, selecting any version (latter is normally better) then the file named like coreutils-5.97-2-msys-1.0.11-ext.tar.lzma (note &#039;-ext&#039; in file name) and extracting who.exe, whoami.exe, hostname.exe to C:/MSys/1.0/bin&#039;&#039;&lt;br /&gt;
# &#039;&#039;download libintl dll from http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/libiconv, selecting any version (latter is normally better) then the file named like libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma (note &#039;-dll&#039; in file name) and extracting dll in C:/MSys/1.0/bin&#039;&#039;&lt;br /&gt;
# &#039;&#039;download libiconv dll from http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/gettext, selecting any version (latter is normally better) then the file named like libintl-0.17-2-msys-dll-8.tar.lzma (note &#039;-dll&#039; in file name) and extracting dll in C:/MSys/1.0/bin&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Whoami  ==&lt;br /&gt;
&lt;br /&gt;
Create a new file containing the single line: &lt;br /&gt;
&lt;br /&gt;
 echo &#039;&amp;amp;lt;username&amp;amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
and save it as C:\MSys\1.0\bin\whoami (without any extension) &lt;br /&gt;
&lt;br /&gt;
== Hostname  ==&lt;br /&gt;
&lt;br /&gt;
Modify configure.ac so that it doesn&#039;t call &#039;hostname -f&#039; as follows: &lt;br /&gt;
&lt;br /&gt;
*open C:\MSys\1.0\home\&amp;amp;lt;username&amp;amp;gt;\vlc\configure.ac &lt;br /&gt;
*goto search button:&lt;br /&gt;
*change it as follows:&lt;br /&gt;
&lt;br /&gt;
 old: AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, &amp;quot;`hostname -f 2&amp;amp;gt; /dev/null || hostname`&amp;quot;, [host which ran configure])&lt;br /&gt;
 new: AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, &amp;quot;`hostname`&amp;quot;, [host which ran configure])&lt;br /&gt;
&lt;br /&gt;
= Build VLC  =&lt;br /&gt;
&lt;br /&gt;
The build is made exclusively from the command line, so if you closed the prompt at the LUA step, re-execute C:\MSys\1.0\msys.bat, then type the commands as mentioned &lt;br /&gt;
&lt;br /&gt;
== Bootstrap  ==&lt;br /&gt;
&lt;br /&gt;
 cd vlc&lt;br /&gt;
 cp -v /usr/win32/share/aclocal/* m4/&lt;br /&gt;
 cp -v /usr/share/aclocal/* m4/&lt;br /&gt;
 PATH=/usr/win32/bin:$PATH ./bootstrap&lt;br /&gt;
&lt;br /&gt;
== Configure  ==&lt;br /&gt;
&lt;br /&gt;
 sh extras/package/win32/configure-msys.sh&lt;br /&gt;
&lt;br /&gt;
If you want any custom options, like &amp;quot;--disable-lua&amp;quot; or anything of that nature, you&#039;ll need to edit that file directly instead of passing them in as parameters (at least currently that is required).&lt;br /&gt;
&lt;br /&gt;
== Make (compile) ==&lt;br /&gt;
&lt;br /&gt;
Note&amp;amp;nbsp;: If your &amp;amp;lt;username&amp;amp;gt; starts with the &amp;quot;u&amp;quot; or &amp;quot;x&amp;quot; character, change C:\MSys\1.0\home\&amp;amp;lt;username&amp;amp;gt;\config.h and double all backslashes in VLC_COMPILED_BY constant. &lt;br /&gt;
&lt;br /&gt;
Type the following command&amp;amp;nbsp;: &lt;br /&gt;
&lt;br /&gt;
 PATH=/usr/win32/bin:$PATH make&lt;br /&gt;
&lt;br /&gt;
If this step fails, try the following&lt;br /&gt;
* Go back to &amp;quot;Precompiled contribs&amp;quot; section, and obtain the latest compiled contrib (under &amp;quot;Note for the brave&amp;quot;)&lt;br /&gt;
* In the configure script section (configure-msys.sh), open that file and add --disable-upnp&lt;br /&gt;
&lt;br /&gt;
== Create self-contained packages  ==&lt;br /&gt;
&lt;br /&gt;
Once the compilation is done, build self-contained VLC packages with one of 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;
 make package-win32-base-debug&lt;br /&gt;
&lt;br /&gt;
(This will create a subdirectory named vlc-x.x.x with all the binaries containing debug info usable by gdb).&lt;br /&gt;
&lt;br /&gt;
Note that with the 1.2 branch these names have changed slightly.  Run &#039;&lt;br /&gt;
 grep &#039;:&#039; Makefile | grep package-win32&lt;br /&gt;
to see what they are now.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
See [[Win32CompileMSYSTroubleShooting]].&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
*[[Win32CompileMSYSOld]] - deprecated documentation&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Win32CompileMSYSNew&amp;diff=20357</id>
		<title>Win32CompileMSYSNew</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Win32CompileMSYSNew&amp;diff=20357"/>
		<updated>2011-11-30T20:52:30Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: I think this is right :P&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction  =&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
MSys is a helper environment for MinGW, the compiler chain for Windows based on GCC. It is the &#039;&#039;&#039;fastest&#039;&#039;&#039; and &#039;&#039;&#039;recommended &#039;&#039;&#039;way to build VLC natively on Windows.  Note that you could also [[Win32Compile|cross compile]] VLC from Linux, if desired (it is faster).&lt;br /&gt;
&lt;br /&gt;
VLC is a complex program with many dependencies, so minimal command-line experience is required. Also, don&#039;t be in a hurry (2 hours is a minimum for the whole process) and don&#039;t despair if it doesn&#039;t work first time.&lt;br /&gt;
&lt;br /&gt;
== On the edge vs Conservative ==&lt;br /&gt;
&lt;br /&gt;
This update aims at building versions from the 1.1.0 branch natively in the most straightforward way. &lt;br /&gt;
&lt;br /&gt;
Of course, if you want to live on the edge, feel free to select more recent versions of the proposed tools, contribs or sources, but the build has only been thoroughly validated with the versions indicated in the main text flow. &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Such alternative ways are indented, italicized and marked &amp;quot;Note for the brave&amp;quot;&amp;amp;nbsp;:-). Your mileage may vary&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
&lt;br /&gt;
This howto was re-created by [[User:J-b|Jean-Baptiste Kempf]] and updated in June 2009, September 2009, December 2009 and March 2010. &lt;br /&gt;
&lt;br /&gt;
It was updated in June 2010 by Vicne with the help of J-b, gnosygnu and MichaelMc &lt;br /&gt;
&lt;br /&gt;
= Windows tools needed  =&lt;br /&gt;
&lt;br /&gt;
== Text editor  ==&lt;br /&gt;
&lt;br /&gt;
To edit unix-style text documents you need a suitable editor. &lt;br /&gt;
&lt;br /&gt;
You can look at [http://sourceforge.net/projects/notepad2/ notepad2]. You can set File - Line endings - Default to &amp;quot;Unix (LF)&amp;quot;, but it always saves opened files in the ending style they have.&lt;br /&gt;
&lt;br /&gt;
Or you can look at [http://notepad-plus-plus.org/ notepad++].&lt;br /&gt;
&lt;br /&gt;
== Unzip Utility (7-zip) ==&lt;br /&gt;
&lt;br /&gt;
Many files to downloaded will have to be uncompressed. As most of them use Linux-originated formats (.tar.gz, .tar.bz2, .tar.lzma), you will need a versatile unzipping utility. A recent version of [http://www.7-zip.org/ 7-zip] is therefore strongly advised. &lt;br /&gt;
&lt;br /&gt;
Please note that most archives contain directory structures. Unless otherwise stated, you have to merge the contents with the existing dirs&lt;br /&gt;
&lt;br /&gt;
= GNU Windows Environment  =&lt;br /&gt;
&lt;br /&gt;
Before installing, ensure your Windows user name does not contain spaces (VLC will not build in a folder with spaces in it). If it does, please create another user on your system. &lt;br /&gt;
&lt;br /&gt;
In the following text, we&#039;ll refer to this user name as &amp;quot;&amp;amp;lt;username&amp;amp;gt;&amp;quot;. Replace it appropriately where needed of course. &lt;br /&gt;
&lt;br /&gt;
== MinGW  ==&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;the old version of mingw GCC (3.4.5) worked with VLC, because it uses SjLj exception unwinding.  Any &amp;quot;vanilla&amp;quot; version 4.0+ by default uses dwarf2 exception unwinding, so isn&#039;t compatible with the contribs.  So recommend installing TDM, below.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== TDM/MinGW Setup  ===&lt;br /&gt;
&lt;br /&gt;
Use the installer found at http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/tdm-gcc-4.5.2.exe/download &lt;br /&gt;
&lt;br /&gt;
Go through the wizard: &lt;br /&gt;
&lt;br /&gt;
*uncheck &amp;quot;Check for updated files...&amp;quot; &lt;br /&gt;
*Select &amp;quot;Create&amp;quot; &lt;br /&gt;
*install to C:\MinGW &lt;br /&gt;
*keep default settings &lt;br /&gt;
&lt;br /&gt;
*afterwards check that C:\MinGW\bin is added to windows PATH (http://www.computerhope.com/issues/ch000549.htm)&lt;br /&gt;
&lt;br /&gt;
=== MinGW utils&amp;lt;br&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Installing mingw-utils is recommended: http://prdownloads.sourceforge.net/mingw/mingw-utils-0.3.tar.gz &lt;br /&gt;
&lt;br /&gt;
Extract contents to c:\MinGW&lt;br /&gt;
&lt;br /&gt;
== MSys  ==&lt;br /&gt;
&lt;br /&gt;
=== MSys Setup  ===&lt;br /&gt;
&lt;br /&gt;
Use the installer found at http://sourceforge.net/project/downloading.php?group_id=2435&amp;amp;amp;filename=MSYS-1.0.11.exe &lt;br /&gt;
&lt;br /&gt;
Go through the wizard and install to to default C:\Msys\1.0 &lt;br /&gt;
&lt;br /&gt;
In the command window that opens, answer questions as follows: &lt;br /&gt;
&lt;br /&gt;
 Accept Post Install: [y]&lt;br /&gt;
 MinGW Installed?&amp;amp;nbsp;:   [y]&lt;br /&gt;
 path to MinGW:       [c:/MinGW]&lt;br /&gt;
&lt;br /&gt;
=== MSys Developer Toolkit  ===&lt;br /&gt;
&lt;br /&gt;
Use the installer found at http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe &lt;br /&gt;
&lt;br /&gt;
Go through the wizard, keeping default values &lt;br /&gt;
&lt;br /&gt;
=== AutoTools and libcrypt  ===&lt;br /&gt;
&lt;br /&gt;
Update autoconf, automake, libtool as well as libcrypt by downloading the following files and extracting them to C:\Msys\1.0: &lt;br /&gt;
&lt;br /&gt;
*http://sourceforge.net/projects/mingw/files/MSYS/autoconf/autoconf-2.63-1/autoconf-2.63-1-msys-1.0.11-bin.tar.lzma/download&lt;br /&gt;
*http://sourceforge.net/projects/mingw/files/MSYS/automake/automake-1.11-1/automake-1.11-1-msys-1.0.11-bin.tar.lzma/download&lt;br /&gt;
*http://sourceforge.net/projects/mingw/files/MSYS/libtool/libtool-2.2.7a-1/libtool-2.2.7a-1-msys-1.0.11-bin.tar.lzma/download &lt;br /&gt;
*http://prdownloads.sourceforge.net/mingw/libcrypt-1.1_1-2-msys-1.0.11-dll-0.tar.lzma&lt;br /&gt;
*http://sourceforge.net/projects/mingw/files/MSYS/perl/perl-5.8.8-1/perl-5.8.8-1-msys-1.0.17-bin.tar.lzma/download&lt;br /&gt;
&lt;br /&gt;
=== Glib and PKG-CONFIG  ===&lt;br /&gt;
&lt;br /&gt;
Similarly, download the following files and extract them to C:\MSys\1.0: &lt;br /&gt;
&lt;br /&gt;
Note* Download the latest version inside this folders (Last tested to be OK is glib 2.28, non-dev version)):&lt;br /&gt;
&lt;br /&gt;
*http://ftp.gnome.org/pub/GNOME/binaries/win32/glib &lt;br /&gt;
*ftp://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.23-3_win32.zip &lt;br /&gt;
*ftp://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config-dev_0.23-3_win32.zip&lt;br /&gt;
*http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-runtime_0.18.1.1-2_win32.zip&lt;br /&gt;
&lt;br /&gt;
=== Add pkg config path variable  ===&lt;br /&gt;
&lt;br /&gt;
Add the following line to the *top* of C:\MSys\1.0\msys.bat: &lt;br /&gt;
&lt;br /&gt;
 set PKG_CONFIG_PATH=/win32/lib/pkgconfig&lt;br /&gt;
&lt;br /&gt;
=== Fix libtool search dirs  ===&lt;br /&gt;
&lt;br /&gt;
Open C:\MSys\1.0\bin\libtool and change line 9926 by appending &#039; /mingw/lib&#039; to the end of &#039;compiler_lib_search_dirs&#039;. The line should then read&amp;amp;nbsp;: &lt;br /&gt;
&lt;br /&gt;
 compiler_lib_search_dirs=&amp;quot;/usr/lib /usr/lib /bin/../lib/gcc-lib/i686-pc-msys/2.95.3-1 /bin/../lib/gcc-lib /usr/lib/gcc-lib/i686-pc-msys/2.95.3-1 /bin/../lib/gcc-lib/i686-pc-msys/2.95.3-1/../../../../i686-pc-msys/lib /usr/lib/gcc-lib/i686-pc-msys/2.95.3-1/../../../../i686-pc-msys/lib /mingw/lib&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== LUA tools  ==&lt;br /&gt;
&lt;br /&gt;
VLC uses the LUA scripting language (See [http://www.lua.org lua.org]). Unfortunately, no binaries are provided so you need to compile them. &lt;br /&gt;
&lt;br /&gt;
*Download the lua tools package from http://www.lua.org/ftp/lua-5.1.4.tar.gz &lt;br /&gt;
*Uncompress it in your home folder (C:\MSys\1.0\home\&amp;amp;lt;username&amp;amp;gt;) &lt;br /&gt;
*run MSys&lt;br /&gt;
*type the following commands:&lt;br /&gt;
&lt;br /&gt;
 cd /home/&amp;lt;username&amp;gt;/lua-5.1.4 &lt;br /&gt;
 make mingw&lt;br /&gt;
&lt;br /&gt;
This should produce lua.exe, luac.exe and lua51.dll in the src directory. Put these in your /bin with the commands: &lt;br /&gt;
&lt;br /&gt;
 cd src &lt;br /&gt;
 cp *.exe *.dll /bin&lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
Alternatively you could download some &amp;quot;full lua&amp;quot; package, as long as it puts lua.exe in your path you are good to go.&lt;br /&gt;
&lt;br /&gt;
= Precompiled contribs  =&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Note for the brave&amp;amp;nbsp;: Alternatively, you can get the latest contrib from&amp;amp;nbsp;:http://people.videolan.org/~jb/Contribs/&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*download the file http://people.videolan.org/~jb/Contribs/contrib-20100608-win32-bin-gcc-4.4.4-runtime-3.17-only.tar.bz2 &lt;br /&gt;
*extract it to C:\MSys\1.0 &#039;&#039;&#039;but without the /usr path&#039;&#039;&#039;. For example, one of the resulting files should be:&lt;br /&gt;
&lt;br /&gt;
 C:\MSys\1.0\win32\lib\libdvdnav.a&lt;br /&gt;
&lt;br /&gt;
Contribs are basically some precompiled 3rd party library (Here&#039;s a [[Contrib_Status|list]] of what they all are).&lt;br /&gt;
&lt;br /&gt;
= VLC sources  =&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Note for the brave&amp;amp;nbsp;: This section lists the steps for VLC version 1.1.0rc3. Alternatively, you could get the latest sources from the development tree using GIT. It&#039;s not as difficult as it looks to do so. If you want chose that route, please follow instructions on the [[Git Windows]] page (just download the VLC repository--you don&#039;t need the x264 one) then skip the next section &amp;quot;Last Change&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Base: VLC version 1.1.0rc3  ==&lt;br /&gt;
&lt;br /&gt;
*download the file http://download.videolan.org/pub/videolan/testing/vlc-1.1.0-rc3/vlc-1.1.0-rc3.tar.bz2 &lt;br /&gt;
*extract it to C:\MSys\1.0\home\&amp;amp;lt;username&amp;amp;gt; &lt;br /&gt;
*rename the vlc-1.1.0rc3 dir to vlc&lt;br /&gt;
&lt;br /&gt;
== add missing configure-msys (1.1.x only)==&lt;br /&gt;
* Download http://git.videolan.org/?p=vlc.git;a=blob_plain;f=extras/package/win32/configure-msys.sh;hb=HEAD&lt;br /&gt;
* Save it (not using proposed name) as C:\msys\1.0\home\&amp;lt;username&amp;gt;\vlc\extras\package\win32\configure-msys.sh&lt;br /&gt;
&lt;br /&gt;
== add missing configure-common (1.1.x only) ==&lt;br /&gt;
* Download http://git.videolan.org/?p=vlc.git;a=blob_plain;f=extras/package/win32/configure-common.sh;hb=HEAD&lt;br /&gt;
* Save it (not using proposed name) as C:\msys\1.0\home\&amp;lt;username&amp;gt;\vlc\extras\package\win32\configure-common.sh&lt;br /&gt;
&lt;br /&gt;
= Last change&amp;amp;nbsp;: whoami and hostname  =&lt;br /&gt;
&lt;br /&gt;
Whoami is not available on Windows, and hostname doesn&#039;t support the -f option used by the build process. These utilities are used to show the name and computer of the person who compiled VLC in the &#039;About&#039; box. &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Note for the brave&amp;amp;nbsp;: the steps below are file changes so that compile works, but an alternative is to download and install GNU whoami and hostname functionality. This can be achieved by doing the following steps:&lt;br /&gt;
# &#039;&#039;download coreutils from http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/coreutils, selecting any version (latter is normally better) then the file named like coreutils-5.97-2-msys-1.0.11-ext.tar.lzma (note &#039;-ext&#039; in file name) and extracting who.exe, whoami.exe, hostname.exe to C:/MSys/1.0/bin&#039;&#039;&lt;br /&gt;
# &#039;&#039;download libintl dll from http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/libiconv, selecting any version (latter is normally better) then the file named like libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma (note &#039;-dll&#039; in file name) and extracting dll in C:/MSys/1.0/bin&#039;&#039;&lt;br /&gt;
# &#039;&#039;download libiconv dll from http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/gettext, selecting any version (latter is normally better) then the file named like libintl-0.17-2-msys-dll-8.tar.lzma (note &#039;-dll&#039; in file name) and extracting dll in C:/MSys/1.0/bin&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Whoami  ==&lt;br /&gt;
&lt;br /&gt;
Create a new file containing the single line: &lt;br /&gt;
&lt;br /&gt;
 echo &#039;&amp;amp;lt;username&amp;amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
and save it as C:\MSys\1.0\bin\whoami (without any extension) &lt;br /&gt;
&lt;br /&gt;
== Hostname  ==&lt;br /&gt;
&lt;br /&gt;
Modify configure.ac so that it doesn&#039;t call &#039;hostname -f&#039; as follows: &lt;br /&gt;
&lt;br /&gt;
*open C:\MSys\1.0\home\&amp;amp;lt;username&amp;amp;gt;\vlc\configure.ac &lt;br /&gt;
*goto search button:&lt;br /&gt;
*change it as follows:&lt;br /&gt;
&lt;br /&gt;
 old: AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, &amp;quot;`hostname -f 2&amp;amp;gt; /dev/null || hostname`&amp;quot;, [host which ran configure])&lt;br /&gt;
 new: AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, &amp;quot;`hostname`&amp;quot;, [host which ran configure])&lt;br /&gt;
&lt;br /&gt;
= Build VLC  =&lt;br /&gt;
&lt;br /&gt;
The build is made exclusively from the command line, so if you closed the prompt at the LUA step, re-execute C:\MSys\1.0\msys.bat, then type the commands as mentioned &lt;br /&gt;
&lt;br /&gt;
== Bootstrap  ==&lt;br /&gt;
&lt;br /&gt;
 cd vlc&lt;br /&gt;
 cp -v /usr/win32/share/aclocal/* m4/&lt;br /&gt;
 cp -v /usr/share/aclocal/* m4/&lt;br /&gt;
 PATH=/usr/win32/bin:$PATH ./bootstrap&lt;br /&gt;
&lt;br /&gt;
== Configure  ==&lt;br /&gt;
&lt;br /&gt;
 sh extras/package/win32/configure-msys.sh&lt;br /&gt;
&lt;br /&gt;
If you want any custom options, like &amp;quot;--disable-lua&amp;quot; or anything of that nature, you&#039;ll need to edit that file directly instead of passing them in as parameters (at least currently that is required).&lt;br /&gt;
&lt;br /&gt;
== Make (compile) ==&lt;br /&gt;
&lt;br /&gt;
Note&amp;amp;nbsp;: If your &amp;amp;lt;username&amp;amp;gt; starts with the &amp;quot;u&amp;quot; or &amp;quot;x&amp;quot; character, change C:\MSys\1.0\home\&amp;amp;lt;username&amp;amp;gt;\config.h and double all backslashes in VLC_COMPILED_BY constant. &lt;br /&gt;
&lt;br /&gt;
Type the following command&amp;amp;nbsp;: &lt;br /&gt;
&lt;br /&gt;
 PATH=/usr/win32/bin:$PATH make&lt;br /&gt;
&lt;br /&gt;
If this step fails, try the following&lt;br /&gt;
* Go back to &amp;quot;Precompiled contribs&amp;quot; section, and obtain the latest compiled contrib (under &amp;quot;Note for the brave&amp;quot;)&lt;br /&gt;
* In the configure script section (configure-msys.sh), open that file and add --disable-upnp&lt;br /&gt;
&lt;br /&gt;
== Create self-contained packages  ==&lt;br /&gt;
&lt;br /&gt;
Once the compilation is done, build self-contained VLC packages with one of 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;
 make package-win32-base-debug&lt;br /&gt;
&lt;br /&gt;
(This will create a subdirectory named vlc-x.x.x with all the binaries containing debug info usable by gdb).&lt;br /&gt;
&lt;br /&gt;
Note that with the 1.2 branch these names have changed slightly.  Run &#039;&lt;br /&gt;
 grep &#039;:&#039; Makefile | grep package-win32&lt;br /&gt;
to see what they are now.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
See [[Win32CompileMSYSTroubleShooting]].&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
*[[Win32CompileMSYSOld]] - deprecated documentation&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:Modules/logo&amp;diff=19497</id>
		<title>Documentation:Modules/logo</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:Modules/logo&amp;diff=19497"/>
		<updated>2011-08-12T03:18:29Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Module|name=logo|type=Video subfilter|description=Overlays a logo on the video}}&lt;br /&gt;
{{Module|name=logo|type=Video output filter|description=Overlays a logo on the video}}&lt;br /&gt;
&lt;br /&gt;
The logo filter can be used to add a logo on the video. This logo can be a static image or series of image which will be displayed alternatively. When used as a video output filter, you can move the logo with the mouse.&lt;br /&gt;
&lt;br /&gt;
== Options ==&lt;br /&gt;
&lt;br /&gt;
{{Option&lt;br /&gt;
|name=logo-file&lt;br /&gt;
|value=string&lt;br /&gt;
|description=Image to display. The full format is &amp;lt;image&amp;gt;[,&amp;lt;delay in ms&amp;gt;[,&amp;lt;alpha&amp;gt;]][;&amp;lt;image&amp;gt;[,&amp;lt;delay&amp;gt;[,&amp;lt;alpha&amp;gt;]]][;...]}}&lt;br /&gt;
&lt;br /&gt;
{{Option&lt;br /&gt;
|name=logo-x&lt;br /&gt;
|value=integer&lt;br /&gt;
|default=0 (0.8.6d and prior: -1)&lt;br /&gt;
|description=X offset from upper left corner. (0.8.6d and prior: This is only if both logo-x and logo-y are positive)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Option&lt;br /&gt;
|name=logo-y&lt;br /&gt;
|value=integer&lt;br /&gt;
|default=0&lt;br /&gt;
|description=Y offset from upper left corner. (0.8.6d and prior: This is only if both logo-x and logo-y are positive)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Option&lt;br /&gt;
|name=logo-position&lt;br /&gt;
|value=integer&lt;br /&gt;
|default=5&lt;br /&gt;
|description=Logo position: 0=center, 1=left, 2=right, 4=top, 8=bottom, you can also use combinations of these values, eg 6 = top-right. (0.8.6d and prior: This is only used if logo-x or logo-y are negative)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Option&lt;br /&gt;
|name=logo-opacity&lt;br /&gt;
|value=integer&lt;br /&gt;
|default=255&lt;br /&gt;
|description=Logo opacity. 0 is transparent, 255 is fully opaque.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Option&lt;br /&gt;
|name=logo-delay&lt;br /&gt;
|value=integer&lt;br /&gt;
|default=1000&lt;br /&gt;
|description=Global delay in ms. Sets the duration each image will be displayed for in a loop iteration unless specified otherwise in the --logo-file option.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Option&lt;br /&gt;
|name=logo-repeat&lt;br /&gt;
|value=integer&lt;br /&gt;
|default=-1&lt;br /&gt;
|description=Number of loops for the logo animation. -1 for continuous, 0 to disable.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
Example command line use &#039;&#039;&#039;(VLC 0.9.0 and above)&#039;&#039;&#039;:&lt;br /&gt;
 % &#039;&#039;&#039;vlc --sub-filter &amp;quot;logo{file=cone.png,transparency=128}&amp;quot; somevideo.avi&#039;&#039;&#039;&lt;br /&gt;
: This command will display image cone.png in the video&#039;s upper right corner with 50% transparency.&lt;br /&gt;
&lt;br /&gt;
 % &#039;&#039;&#039;vlc --sub-filter &amp;quot;logo{file=&#039;cone1.png,2000,128;cone2.png,3000&#039;}&amp;quot; somevideo.avi&#039;&#039;&#039;&lt;br /&gt;
: This command will display image cone1.png for 2 seconds with 50% transparency followed by image cone2.png for 3 seconds at default transparency and loop.&lt;br /&gt;
&lt;br /&gt;
Example command line &#039;&#039;&#039;(All versions including VLC 8.6d and prior)&#039;&#039;&#039;:&lt;br /&gt;
 % &#039;&#039;&#039;vlc --sub-filter=logo --logo-file=cone.png --logo-transparency=128 somevideo.avi&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
See also [[How_to_add_logo]]&lt;br /&gt;
&lt;br /&gt;
{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Video Filters]]&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Add_a_logo&amp;diff=19496</id>
		<title>VLC HowTo/Add a logo</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Add_a_logo&amp;diff=19496"/>
		<updated>2011-08-12T03:17:51Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{howto|add a logo on your video using the logo filter}}&lt;br /&gt;
&lt;br /&gt;
= Idea =&lt;br /&gt;
This How To just explains how to use the logo filter in order to add a logo on your videos, like a TV.&lt;br /&gt;
&lt;br /&gt;
== Local ==&lt;br /&gt;
 vlc --sub-filter logo --logo-file &#039;&#039;logo.png&#039;&#039; &#039;&#039;video.avi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Stream ==&lt;br /&gt;
 vlc --logo-file &#039;&#039;logo.png&#039;&#039; &#039;&#039;video.avi&#039;&#039; --sout &amp;quot;#transcode{vcodec=...,vb=...,sfilter=logo}:std{...}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Make sure you do not specify --sub-filter logo, and that you specify a vcodec= value in the transcode part.&lt;br /&gt;
&lt;br /&gt;
== Save the new video locally ==&lt;br /&gt;
 vlc --logo-file &#039;&#039;logo.png&#039;&#039; &#039;&#039;video.avi&#039;&#039; --sout &amp;quot;#transcode{vcodec=...,vb=...,sfilter=logo}:std{access=file,dst=&#039;&#039;new_video.avi&#039;&#039; }&lt;br /&gt;
&lt;br /&gt;
== Dynamically change logo using [[Console | RC]], then send output to stream and local debugging display ==&lt;br /&gt;
&lt;br /&gt;
 vlc -I rc --logo-file nonexistent_dummy.png --sout &amp;quot;#transcode{vcodec=...,vb=...,sfilter=logo}:duplicate{dst=display,dst=std{...}}&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Once the program has started&lt;br /&gt;
 add &#039;&#039;video.avi&#039;&#039;&lt;br /&gt;
 # If using VLC 0.8.6 or older:&lt;br /&gt;
 logo-file &#039;&#039;logo.png&#039;&#039;&lt;br /&gt;
 # If using VLC 0.9.0 or newer (see NEWS for details about the new syntax):&lt;br /&gt;
 @logo logo-file &#039;&#039;logo.png&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This requires a &amp;lt;code&amp;gt;--logo-file&amp;lt;/code&amp;gt;, but for some reason it won&#039;t work if you specify &amp;quot;&amp;lt;code&amp;gt;--sub-filter logo&amp;lt;/code&amp;gt;&amp;quot;. Nor does it apparently work if the &amp;lt;code&amp;gt;transcode&amp;lt;/code&amp;gt; doesn&#039;t specify &amp;lt;code&amp;gt;[[Codec#Video_Codecs | vcodec=]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A non-existent logo-file currently removes any logos from the video, and does not result in an error. Since you must specify one on the command-line, &amp;quot;&amp;lt;code&amp;gt;nonexistent_dummy.png&amp;lt;/code&amp;gt;&amp;quot; was used.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== My text doesn&#039;t look right! It&#039;s sort of pixellated or has artifacts. ==&lt;br /&gt;
&lt;br /&gt;
Sounds like a stretching or deinterlacing problem. One possible solution is to set your &amp;quot;&amp;lt;code&amp;gt;--aspect-ratio&amp;lt;/code&amp;gt;&amp;quot; to the right setting. For instance, I got this when I ran VLC with &amp;quot;&amp;lt;code&amp;gt;-vvv&amp;lt;/code&amp;gt;&amp;quot; (for verbose verbose verbose output):&lt;br /&gt;
&lt;br /&gt;
 [00000372] main video output debug: picture in 704x576 (0,0,704x576), chroma I420, ar 4:3, sar 12:11&lt;br /&gt;
 [00000372] main video output debug: picture user 704x576 (0,0,704x576), chroma I420, ar 4:3, sar 12:11&lt;br /&gt;
 [00000372] main video output debug: picture out 768x576 (0,0,768x576), chroma RV32, ar 4:3, sar 1:1&lt;br /&gt;
&lt;br /&gt;
Here, the input was 704x576 resolution and VLC outputted it to 768x576. My text was added before this stretching occurred, and so the text looked awful. Forcing it back to the normal resolution using &amp;quot;&amp;lt;code&amp;gt;--aspect-ratio 11:9&amp;lt;/code&amp;gt;&amp;quot; worked. (Because 704/576 = 11:9.)&lt;br /&gt;
&lt;br /&gt;
See also [[Documentation:Modules/logo]].&lt;br /&gt;
&lt;br /&gt;
Note also that setting the logo on the command line appears to be a &amp;quot;global&amp;quot; option and not available as stream specific.&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=WAVE&amp;diff=19486</id>
		<title>WAVE</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=WAVE&amp;diff=19486"/>
		<updated>2011-08-05T00:37:35Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mux|id=wav|encoder=y}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WAVE&#039;&#039;&#039; is a way of storing audio, which is normally uncompressed. It is based on [[RIFF]].  Note that wav isn&#039;t a streamable audio format, so you can only stream it using rtp (to stream it otherwise, transcode it to something that&#039;s streamable).&lt;br /&gt;
&lt;br /&gt;
== Accepted audio codecs ==&lt;br /&gt;
* [[dummy]]: Uncompressed audio of various types, based on storing integer values of the amplitude of the sound (see [[wikipedia:PCM|PCM]]).&lt;br /&gt;
* [[fl32]]: Floating point 32-bit uncompressed audio, also based on PCM but allowing the values to be stored as floating point data types. This can give better quality audio when the sound becomes quiet.&lt;br /&gt;
&lt;br /&gt;
== Converting to WAVE ==&lt;br /&gt;
&lt;br /&gt;
The commandline for converting any readable input file to a WAVE audio file is the following:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;span style=&amp;quot;color:grey&amp;quot;&amp;gt;vlc&amp;lt;/span&amp;gt; -I dummy -vvv &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;quot;input.mp3&amp;quot;&amp;lt;/span&amp;gt; --sout=#transcode{acodec=&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;s16l&amp;lt;/span&amp;gt;,channels=2,ab=&amp;lt;span style=&amp;quot;color:purple&amp;quot;&amp;gt;128&amp;lt;/span&amp;gt;,samplerate=44100}:standard{access=file,mux=wav,dst=&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;output.wav&amp;quot;&amp;lt;/span&amp;gt;} vlc://quit&lt;br /&gt;
&lt;br /&gt;
Where on Windows you need to add installation directory in front of  &amp;lt;span style=&amp;quot;color:grey&amp;quot;&amp;gt;vlc&amp;lt;/span&amp;gt; (e.g. &amp;quot;C:\Program Files\VideoLAN\VLC\&amp;lt;span style=&amp;quot;color:grey&amp;quot;&amp;gt;vlc&amp;lt;/span&amp;gt;&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
As &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;audio codec (acodec)&amp;lt;/span&amp;gt; you can specify one of the above mentioned ones. The bitrate of the output file is specified by the &amp;lt;span style=&amp;quot;color:purple&amp;quot;&amp;gt;ab&amp;lt;/span&amp;gt; parameter.&lt;br /&gt;
&lt;br /&gt;
== Source code ==&lt;br /&gt;
{{file|modules/mux/wav.c|output muxer}}&lt;br /&gt;
{{file|modules/demux/wav.c|input demuxer}}&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Transcode&amp;diff=19485</id>
		<title>Transcode</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Transcode&amp;diff=19485"/>
		<updated>2011-08-05T00:27:36Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: /* Compatibility issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Transcoding is the process of taking a video file and changing it to a different format or bitrate.&lt;br /&gt;
&lt;br /&gt;
Transcoding in VLC copies the movie to a new file in a different format, so you end up with both the original and new files. This means you need to have enough space on your hard drive to store this extra file. You should also have a reasonably fast computer, as transcoding can be very slow.&lt;br /&gt;
&lt;br /&gt;
In VLC, transcoding is exactly the same as [[streaming]] accross a network, except that the output is sent to a file instead of a network.&lt;br /&gt;
&lt;br /&gt;
== Compatibility issues ==&lt;br /&gt;
&lt;br /&gt;
If your input streams already matches the encoding that you desire for your output stream, then you don&#039;t have to transcode at all (just leave out the transcode settings on the command line, and it will thence not transcode).  In the GUI this is called &amp;quot;keep the original track&amp;quot; (I think).&lt;br /&gt;
&lt;br /&gt;
Note that when you decide your transcoding settings, only some container formats (muxers) can support some codecs - look at [http://www.videolan.org/streaming/features.html streaming features] compatibility matrix to see which supports what.  If your current format is incompatible with the muxer you desire, then you must transcode it to something compatible, or choose a different muxer.  If you choose an incompatible stream for a given muxer, it may silently fail.  You can look for error messages in the [[Basic_Troubleshooting|messages window]] to help you debug the failures.&lt;br /&gt;
&lt;br /&gt;
== Transcoding with the Wizard ==&lt;br /&gt;
&lt;br /&gt;
VLC includes a transcoding and streaming wizard. To transcode a file, just select the transcode option. You will then be asked what format to convert to: you can give a video [[codec]], an audio codec and a [[container]] format.  &lt;br /&gt;
&lt;br /&gt;
See also {{doc|http://www.videolan.org/doc/streaming-howto/en/ch02.html}}&lt;br /&gt;
&lt;br /&gt;
== Transcoding with the Command Prompt ==&lt;br /&gt;
&lt;br /&gt;
The most flexible way to transcode with vlc is using a [[command prompt]] to start vlc. Transcoding works the same as [[streaming]]. For example, the following command changes an [[asf]] file to an [[MPEG-2]] file: &lt;br /&gt;
:vlc &amp;quot;C:\Movies\Your File.asf&amp;quot; :sout=&#039;#transcode{vcodec=mp2v,vb=4096,acodec=mp2a,ab=192,scale=1,channels=2,deinterlace,audio-sync}:std{access=file, mux=ps,dst=&amp;quot;C:\Movies\Your File Output.ps.mpg&amp;quot;}&#039;&lt;br /&gt;
The access=file instructs vlc to store the output in a file (and not stream it), and the dst is the location of the new (output) file.&lt;br /&gt;
&lt;br /&gt;
* Note 1: If you are running VLC on [[Mac OS X]], you should use clivlc instead of VLC to avoid possible Bus error problems.&lt;br /&gt;
* Note 2: old VLC releases, maybe up to 0.8.6* included, use &amp;quot;url&amp;quot; instead of &amp;quot;dst&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Transcoding takes quite a while, so it&#039;s advisable to use an option like &#039;&#039;&#039;--stop-time=30&#039;&#039;&#039; to only encode the first 30 seconds - this means you can check the file has transcoded correctly, and that the output is of a suitable quality. (Note: On [[Mac OS X]] this trick doesn&#039;t seem to work. Just press ctrl-c after a while, VLC will properly write out the already transcoded segment)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The transcode statement can contain &#039;&#039;&#039;vcodec&#039;&#039;&#039; and &#039;&#039;&#039;vb&#039;&#039;&#039; to change the video codec and &#039;&#039;&#039;acodec&#039;&#039;&#039; and &#039;&#039;&#039;ab&#039;&#039;&#039; to change the audio codec. If vcodec is missing, the video codec will stay the same (same for acodec).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Common additional options to use are &#039;&#039;&#039;audio-sync&#039;&#039;&#039; (to make sure the audio is in sync correctly) and &#039;&#039;&#039;deinterlace&#039;&#039;&#039; (to increase quality slightly on interlaced video).&lt;br /&gt;
===Under MS Windows===&lt;br /&gt;
the syntax on windows is slightly different:&lt;br /&gt;
&lt;br /&gt;
:C:\Program Files\VideoLAN\VLC&amp;gt;vlc -vvv &amp;quot;D:\688497.flv&amp;quot; --sout=#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}:standard{access=file,mux=ts,dst=&amp;quot;D:\asd.mpg&amp;quot;}&lt;br /&gt;
(Note: old VLC releases, maybe up to 0.8.6* included, use &amp;quot;url&amp;quot; instead of &amp;quot;dst&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
(Note: due to command line parsing, at times, especially within single and double quote blocks, a backslash may have to be escaped by using a double backslash so that a filename would be D:\\path\\to\\file.mpg)&lt;br /&gt;
&lt;br /&gt;
===Completely non-interactive transcoding===&lt;br /&gt;
For completely non-interactive transcoding (such as the case necessary when running under [[Mac OS X]]), the above example could be rewritten as&lt;br /&gt;
:vlc -I dummy &amp;quot;C:\Movies\Your File.asf&amp;quot; :sout=&#039;#transcode{vcodec=mp2v,vb=4096,acodec=mp2a,ab=192,scale=1,channels=2,deinterlace,audio-sync}:std{access=file, mux=ps,dst=&amp;quot;C:\Movies\Your File Output.ps.mpg&amp;quot;}&#039; vlc://quit&lt;br /&gt;
The two extra options are&lt;br /&gt;
;-I dummy: Disables the graphical interface&lt;br /&gt;
;&amp;lt;nowiki&amp;gt;vlc://quit&amp;lt;/nowiki&amp;gt;: Quit VLC after transcoding&lt;br /&gt;
If transcoding from a DVD, it is also necessary to use the dvdsimple:// notation instead of the dvd:// notation, in order to avoid interacting with the DVD menu system. You can use this in the GUI by choosing &#039;no DVD menus&#039; option when opening the disc.  See [[Rip_DVD]]&lt;br /&gt;
&lt;br /&gt;
{{doc|http://www.videolan.org/doc/streaming-howto/en/ch03.html}}&lt;br /&gt;
&lt;br /&gt;
== Canvas and Padding ==&lt;br /&gt;
&#039;&#039;&#039;The canvas and padding options changed since Version 0.9. Most examples in the wiki are broken.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;transcode{vcodec=mp2v,vfilter=canvas{width=640,height=480}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Other options:&lt;br /&gt;
* aspect=4:3 : Aspect ratio&lt;br /&gt;
* padd: &lt;br /&gt;
** true: Pad with black bars &lt;br /&gt;
** false: crop video&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;transcode{vcodec=mp2v,vfilter=croppadd{cropttop=20,cropbottom=30,paddleft=100}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
crop or pad top, left, right or bottom in pixels.&lt;br /&gt;
&lt;br /&gt;
Avoid using width and hight parameters! These are apllied before the vfilter and might result in unwanted results.&lt;br /&gt;
&lt;br /&gt;
== Non-Interactive Batch Transcoding (Windows)==&lt;br /&gt;
=== Batch File ===&lt;br /&gt;
To transcode several files without user interaction create a batch file in the folder where the files are contained and this line to the batch file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for %%a in (*.FILE_EXT) do cmd /c &amp;quot;PATH_TO_VLC&amp;quot; -I dummy -vvv %%a --sout=#transcode{vcodec=VIDEO_CODEC,vb=VIDEO_BITRATE,scale=1,acodec=AUDIO_CODEC,ab=AUDIO_BITRATE,channels=6}:standard{access=file,mux=MUXER,dst=%%a.OUTPUT_EXT} vlc://quit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* note: if the line above creates &amp;quot;double file name extensions&amp;quot; like&amp;lt;tt&amp;gt; *.FILE_EXT.OUTPUT_EXT &amp;lt;/tt&amp;gt;(e.g.&amp;lt;tt&amp;gt; *.mp3.wav &amp;lt;/tt&amp;gt;when converting mp3 to wav), try:&lt;br /&gt;
&amp;lt;pre&amp;gt;... dst=OUTPUT_PATH\%%~na.OUTPUT_EXT ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;%%~na &amp;lt;/tt&amp;gt;is the file name of &amp;lt;tt&amp;gt;%%a&amp;lt;/tt&amp;gt; only without extension.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;Cmd /c &amp;lt;/tt&amp;gt;makes the script wait to finish transcoding before starting the next transcode.&lt;br /&gt;
&lt;br /&gt;
* Example: to convert all mp3-files in the current directory to standard uncompressed wav-files (PCM; may be suitable if you want to burn audio-cds and your player is unable to play *.mp3-files), type&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; for %%a in (*.mp3) do cmd /c &amp;quot;C:\Programme\VideoLAN\VLC\vlc.exe&amp;quot; -I dummy -vvv %%a --sout #transcode{acodec=s16l,channels=2,samplerate=44100}:standard{access=file,mux=wav,dst=g:\_audio_conv\%%a.wav} vlc://quit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== VB Script ===&lt;br /&gt;
An alternative method is to use VB Script. This example will transcode all files from one folder to another. It will also wait for each file to finish transcoding before starting the next. Create the script transcode.vbs, in the VLC installation folder, default &amp;quot;C:\Program Files\VideoLAN\VLC&amp;quot;. Change the strSource and strTarget in the example to match your requirements. Start a &amp;quot;DOS Box&amp;quot;, Start - Run - cmd then change to the VLC folder and run the script &amp;quot;cscript transcode.vbs&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
This example was tested on Microsoft Windows Script host 5.6 running on XP Pro SP2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&#039;&lt;br /&gt;
&#039; based on code from:http://episteme.arstechnica.com/eve/forums/a/tpc/f/12009443/m/516001349831&lt;br /&gt;
&#039;&lt;br /&gt;
&#039;&lt;br /&gt;
&#039;&lt;br /&gt;
Dim objFSO, objShell, strSource, strTarget, strOldName, strNewName&lt;br /&gt;
&#039;&lt;br /&gt;
set objFSO = CreateObject(&amp;quot;Scripting.FileSystemObject&amp;quot;)&lt;br /&gt;
&#039;&lt;br /&gt;
&#039; Set up starting folders&lt;br /&gt;
&#039;&lt;br /&gt;
strSource = &amp;quot;O:\&amp;quot;&lt;br /&gt;
strTarget = &amp;quot;N:\&amp;quot;&lt;br /&gt;
&#039;&lt;br /&gt;
call RecurseDir(strSource, strTarget)&lt;br /&gt;
&#039;&lt;br /&gt;
&#039; // Recursively copy all files and folders&lt;br /&gt;
&#039;&lt;br /&gt;
Sub RecurseDir(strSource, strTarget)&lt;br /&gt;
	wscript.echo &amp;quot;source: &amp;quot; &amp;amp; strSource &amp;amp; &amp;quot; target: &amp;quot;&amp;amp; strTarget&lt;br /&gt;
&#039;&lt;br /&gt;
	Dim strTempSource, strTempTarget&lt;br /&gt;
&#039;&lt;br /&gt;
	Set strTempSource = objFSO.GetFolder(strSource)&lt;br /&gt;
&#039;&lt;br /&gt;
	Wscript.Echo &amp;quot;Begin Value: &amp;quot; &amp;amp; strTarget&lt;br /&gt;
&#039;    &lt;br /&gt;
	If Not objFSO.FolderExists(strTarget) Then&lt;br /&gt;
&#039;        Wscript.Echo &amp;quot;No Folder! Creating folder [&amp;quot; &amp;amp; strTarget &amp;amp; &amp;quot;]&amp;quot;&lt;br /&gt;
		objFSO.CreateFolder(strTarget)&lt;br /&gt;
	Else&lt;br /&gt;
		Wscript.Echo &amp;quot;Folder exists! &amp;quot; &amp;amp; strTempTarget&lt;br /&gt;
	End If&lt;br /&gt;
&#039;&lt;br /&gt;
	Set strTempTarget = objFSO.GetFolder(strTarget)&lt;br /&gt;
&#039; ** Copy files from current directory to target&lt;br /&gt;
	For each file in strTempSource.files&lt;br /&gt;
		strOldName = strSource &amp;amp; &amp;quot;\&amp;quot; &amp;amp; file.name&lt;br /&gt;
		strNewName = strTempTarget &amp;amp; &amp;quot;\&amp;quot; &amp;amp; Mid(file.name, 1, InstrRev(file.name, &amp;quot;.&amp;quot;)) &amp;amp; &amp;quot;ts&amp;quot;&lt;br /&gt;
&#039;&lt;br /&gt;
		If Not objFSO.FileExists(strNewName) Then&lt;br /&gt;
			Set objShell = CreateObject(&amp;quot;WScript.Shell&amp;quot;)&lt;br /&gt;
&#039;&lt;br /&gt;
			Wscript.Echo &amp;quot;Transcoding file: &amp;quot; &amp;amp; strOldName &amp;amp; &amp;quot; to &amp;quot; &amp;amp; strNewName&lt;br /&gt;
&#039;		&lt;br /&gt;
			Select Case Right(strOldName, 3) &lt;br /&gt;
				Case &amp;quot;avi&amp;quot; &lt;br /&gt;
					wscript.echo &amp;quot;vlc file://&amp;quot;&amp;quot;&amp;quot; &amp;amp; strOldName &amp;amp; &amp;quot;&amp;quot;&amp;quot; :sout=#duplicate{dst=std{access=file,mux=ts,dst=&amp;quot;&amp;quot;&amp;quot; &amp;amp; strNewName &amp;amp; &amp;quot;&amp;quot;&amp;quot;}} vlc://quit&amp;quot;&lt;br /&gt;
					objShell.Run &amp;quot;vlc file://&amp;quot;&amp;quot;&amp;quot; &amp;amp; strOldName &amp;amp; &amp;quot;&amp;quot;&amp;quot; :sout=#duplicate{dst=std{access=file,mux=ts,dst=&amp;quot;&amp;quot;&amp;quot; &amp;amp; strNewName &amp;amp; &amp;quot;&amp;quot;&amp;quot;}} vlc://quit&amp;quot;, 1, True&lt;br /&gt;
				Case &amp;quot;mp4&amp;quot;&lt;br /&gt;
					wscript.echo &amp;quot;vlc file://&amp;quot;&amp;quot;&amp;quot; &amp;amp; strOldName &amp;amp; &amp;quot;&amp;quot;&amp;quot; :sout=#transcode{vcodec=mp2v,vb=1024,scale=1,acodec=mp2a,ab=192,channels=2}:duplicate{dst=std{access=file,mux=ts,dst=&amp;quot;&amp;quot;&amp;quot; &amp;amp; strNewName &amp;amp; &amp;quot;&amp;quot;&amp;quot;}} vlc://quit&amp;quot;&lt;br /&gt;
					objShell.Run &amp;quot;vlc file://&amp;quot;&amp;quot;&amp;quot; &amp;amp; strOldName &amp;amp; &amp;quot;&amp;quot;&amp;quot; :sout=#transcode{vcodec=mp2v,vb=1024,scale=1,acodec=mp2a,ab=192,channels=2}:duplicate{dst=std{access=file,mux=ts,dst=&amp;quot;&amp;quot;&amp;quot; &amp;amp; strNewName &amp;amp; &amp;quot;&amp;quot;&amp;quot;}} vlc://quit&amp;quot;, 1, True&lt;br /&gt;
			End Select &lt;br /&gt;
&#039;&lt;br /&gt;
			Set objShell = Nothing&lt;br /&gt;
		End If&lt;br /&gt;
	Next&lt;br /&gt;
&#039; ** For each subfolder of current dir, copy files to target and recurse its subdirs&lt;br /&gt;
	For each subdir in strTempSource.subfolders&lt;br /&gt;
	  Wscript.Echo subdir.path&lt;br /&gt;
  	call RecurseDir(subdir.path, strTempTarget &amp;amp; &amp;quot;\&amp;quot; &amp;amp; subdir.name)&lt;br /&gt;
	Next&lt;br /&gt;
End Sub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Non-Interactive Batch Transcoding (Linux)==&lt;br /&gt;
To transcode several files without user interaction create a bash script in the folder where the files are contained and add these lines to the bash script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
vcodec=&amp;quot;VIDEO_CODEC&amp;quot; &lt;br /&gt;
acodec=&amp;quot;AUDIO_CODEC&amp;quot; &lt;br /&gt;
bitrate=&amp;quot;VIDEO_BITRATE&amp;quot; &lt;br /&gt;
arate=&amp;quot;AUDIO_BITRATE&amp;quot; &lt;br /&gt;
ext=&amp;quot;OUTPUT_EXT&amp;quot; &lt;br /&gt;
mux=&amp;quot;MUXER&amp;quot; &lt;br /&gt;
vlc=&amp;quot;PATH_TO_VLC&amp;quot; &lt;br /&gt;
fmt=&amp;quot;INPUT_EXT&amp;quot; &lt;br /&gt;
&lt;br /&gt;
for a in *$fmt; do &lt;br /&gt;
$vlc -I dummy -vvv &amp;quot;$a&amp;quot; --sout &amp;quot;#transcode{vcodec=$vcodec,vb=$bitrate,acodec=$acodec,ab=$arate,channels=6}:standard{mux=$mux,dst=\&amp;quot;$a.$ext\&amp;quot;,access=file}&amp;quot; vlc://quit &lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Non-Interactive Merge/Transcode (Windows)===&lt;br /&gt;
&lt;br /&gt;
If you have more than one source files that need to be merged and transcoded resulting in a single out put file, see [[How_to_Merge_and_Transcode_Multiple_Videos]]&lt;br /&gt;
&lt;br /&gt;
===Example script===&lt;br /&gt;
&#039;&#039;&#039;The canvas and cropping must be adjusted for VLC versions newer then 0.9.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
As an example, here is a bash script that will take a &amp;lt;tt&amp;gt;.mpg&amp;lt;/tt&amp;gt; file as generated by an DVB capture device and transcode it into an MPEG4 file using the h.264 codec. Copy it to a file, for example &amp;lt;tt&amp;gt;dvb2mp4&amp;lt;/tt&amp;gt;, and make it executable. It should work on any operating system that has bash, including windows if [http://www.cygwin.com Cygwin] is installed. It uses the cropping parameters proposed at [[Wikipedia:Overscan_amounts]] adapted so that the dimensions are divisible by 16 for better encoding.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# Transcode DVB TV signals to h.264-encoded MP4 files using VLC&lt;br /&gt;
# Wout.Mertens@gmail.com&lt;br /&gt;
&lt;br /&gt;
#### Defaults, please edit for your settings ####&lt;br /&gt;
&lt;br /&gt;
# VLC location, here is the Mac OS X example&lt;br /&gt;
VLC=/Applications/VLC.app/Contents/MacOS/clivlc&lt;br /&gt;
# Other possibilities: (Remove the # to activate)&lt;br /&gt;
#VLC=/usr/bin/vlc&lt;br /&gt;
#VLC=/usr/local/bin/vlc&lt;br /&gt;
&lt;br /&gt;
# 16:9 or 4:3&lt;br /&gt;
aspect=16:9&lt;br /&gt;
&lt;br /&gt;
# PAL (Europe) or NTSC (US)&lt;br /&gt;
src=PAL&lt;br /&gt;
&lt;br /&gt;
# video bitrate&lt;br /&gt;
bitrate=1024&lt;br /&gt;
&lt;br /&gt;
# audio bitrate&lt;br /&gt;
arate=128&lt;br /&gt;
&lt;br /&gt;
# cropping?&lt;br /&gt;
crop=yes&lt;br /&gt;
&lt;br /&gt;
# Deinterlace?&lt;br /&gt;
deint=yes&lt;br /&gt;
&lt;br /&gt;
#### Program, do not change below this line ####&lt;br /&gt;
usage() {&lt;br /&gt;
	cat 1&amp;gt;&amp;amp;2 &amp;lt;&amp;lt;EOF&lt;br /&gt;
Usage: $0 [-swpncC] [-b &amp;lt;rate&amp;gt;] [-a &amp;lt;rate&amp;gt;] &amp;lt;DVB source .mpg&amp;gt; &amp;lt;MP4 output file&amp;gt;&lt;br /&gt;
	-s	4:3 aspect ratio (default=$aspect)&lt;br /&gt;
	-w	16:9 aspect ratio&lt;br /&gt;
	-p	PAL (720x576) input (default=$src)&lt;br /&gt;
	-n	NTSC (720x480) input&lt;br /&gt;
	-c	Crop borders (default=$crop)&lt;br /&gt;
	-C	Do not crop borders&lt;br /&gt;
	-d	Perform de-interlacing (default=$deint)&lt;br /&gt;
	-D	Do not perform de-interlacing&lt;br /&gt;
	-b	video bitrate kb/s (default=$bitrate)&lt;br /&gt;
	-a	audio bitrate kb/s (default=$arate)&lt;br /&gt;
EOF&lt;br /&gt;
	exit 1&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
error() {&lt;br /&gt;
	echo &amp;quot;ERROR: $*&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
	exit 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
while getopts &#039;swpncCb:a:h&#039; opt; do&lt;br /&gt;
	case $opt in&lt;br /&gt;
		s) aspect=4:3 ;;&lt;br /&gt;
		w) aspect=16:9 ;;&lt;br /&gt;
		p) src=PAL ;;&lt;br /&gt;
		n) src=NTSC ;;&lt;br /&gt;
		c) crop=yes ;;&lt;br /&gt;
		C) crop=no ;;&lt;br /&gt;
		d) deint=yes ;;&lt;br /&gt;
		D) deint=no ;;&lt;br /&gt;
		b) bitrate=$OPTARG ;;&lt;br /&gt;
		a) arate=$OPTARG ;;&lt;br /&gt;
		h) usage ;;&lt;br /&gt;
		*) echo &amp;quot;Unknown option $opt&amp;quot; 1&amp;gt;&amp;amp;2; usage ;;&lt;br /&gt;
	esac&lt;br /&gt;
done&lt;br /&gt;
shift $(( $OPTIND - 1 ))&lt;br /&gt;
&lt;br /&gt;
[ $# -ne 2 ] &amp;amp;&amp;amp; usage&lt;br /&gt;
&lt;br /&gt;
infile=&amp;quot;$1&amp;quot;&lt;br /&gt;
outfile=&amp;quot;$2&amp;quot;&lt;br /&gt;
case $outfile in&lt;br /&gt;
	*.mp4|*.MP4) : ;;&lt;br /&gt;
	*) outfile=&amp;quot;$outfile.mp4&amp;quot; ;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
[ -r &amp;quot;$infile&amp;quot; ] || error &amp;quot;Can&#039;t read from $infile&amp;quot;&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$src,$aspect,$crop&amp;quot; in&lt;br /&gt;
	PAL,16:9,yes) sizestr=&amp;quot;cropleft=31,cropright=31,croptop=16,cropbottom=16,width=960,height=544&amp;quot; ;;&lt;br /&gt;
	PAL,4:3,yes)  sizestr=&amp;quot;cropleft=31,cropright=31,croptop=16,cropbottom=16,width=720,height=544&amp;quot; ;;&lt;br /&gt;
	NTSC,16:9,yes) sizestr=&amp;quot;cropleft=30,cropright=30,croptop=17,cropbottom=17,width=800,height=448&amp;quot; ;;&lt;br /&gt;
	NTSC,4:3,yes) sizestr=&amp;quot;cropleft=26,cropright=26,croptop=17,cropbottom=17,width=608,height=448&amp;quot; ;;&lt;br /&gt;
	PAL,16:9,no) sizestr=&amp;quot;width=1024,height=576&amp;quot; ;;&lt;br /&gt;
	PAL,4:3,no) sizestr=&amp;quot;width=768,height=576&amp;quot; ;;&lt;br /&gt;
	NTSC,16:9,no) sizestr=&amp;quot;width=800,height=448&amp;quot; ;;&lt;br /&gt;
	NTSC,4:3,no) sizestr=&amp;quot;width=608,height=448&amp;quot; ;;&lt;br /&gt;
	*) error &amp;quot;Could not handle $src,$aspect,$crop. This shouldn&#039;t happen!&amp;quot; ;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$deint&amp;quot; = &amp;quot;yes&amp;quot; ]; then&lt;br /&gt;
	deintstr=&amp;quot;,deinterlace=enable&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
	deintstr=&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Let&#039;s do it&lt;br /&gt;
echo &amp;quot;Input file: $infile&amp;quot;&lt;br /&gt;
echo &amp;quot;Output file: $outfile&amp;quot;&lt;br /&gt;
echo &amp;quot;Encoding at $bitrate+$arate kb/s, input $src, $aspect, cropping $crop, de-interlace $deint&amp;quot;&lt;br /&gt;
echo&lt;br /&gt;
echo &#039;&amp;gt;&amp;gt;&amp;gt;&#039; $VLC -I dummy &amp;quot;$infile&amp;quot; --sout &amp;quot;#transcode{$sizestr$deintstr,vcodec=h264,vb=$bitrate,acodec=mp4a,ab=$arate}:standard{mux=mp4,dst=\&amp;quot;$outfile\&amp;quot;,access=file}&amp;quot; vlc://quit&lt;br /&gt;
echo&lt;br /&gt;
$VLC -I dummy &amp;quot;$infile&amp;quot; --sout &amp;quot;#transcode{$sizestr$deintstr,vcodec=h264,vb=$bitrate,acodec=mp4a,ab=$arate}:standard{mux=mp4,dst=\&amp;quot;$outfile\&amp;quot;,access=file}&amp;quot; vlc://quit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary]]&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Subversion&amp;diff=19458</id>
		<title>Subversion</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Subversion&amp;diff=19458"/>
		<updated>2011-07-22T15:35:08Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: /* Projects on VideoLAN&amp;#039;s SVN */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction to SVN ==&lt;br /&gt;
Some VideoLAN&#039;s repositories are using [http://subversion.tigris.org/ Subversion], which is a classical VCS, like CVS.&lt;br /&gt;
It also provides a better control over the repository compared to CVS.&lt;br /&gt;
&lt;br /&gt;
Note that some project, like {{VLC}} or x264 are using Git. You can read more about VideoLAN&#039;s git repository in our [[Git|Git wiki page]].&lt;br /&gt;
&lt;br /&gt;
Currently the Subversion repositories are hosted on one of the [[VideoLAN Servers]].&lt;br /&gt;
&lt;br /&gt;
=== How to use it ===&lt;br /&gt;
To use it, you have to download the [http://subversion.tigris.org/ official command line Subversion client]. You can also use alternative clients, such as the graphical [http://tortoisesvn.tigris.org/ TortoiseSVN] for Windows.&lt;br /&gt;
&lt;br /&gt;
When using [[Cygwin]] as compilation environment it is recommended to use the SVN package that comes with it (using the Cygwin setup). Using an &amp;quot;external&amp;quot; SVN application might otherwise cause problems with so called DOS versus UNIX &amp;quot;line endings&amp;quot; when creating files.&lt;br /&gt;
&lt;br /&gt;
Subversion&#039;s command-line interface is generally pretty similar to CVS. This is a &#039;&#039;&#039;basic&#039;&#039;&#039; and partial guide of the most useful commands. For a complete guide, use the book [http://svnbook.red-bean.com/en/1.2/index.html Version Control with Subversion]. If you have a write access to the server, it&#039;s very recommended that you read it and know about the advanced features of Subversion, because you might use them sooner or later.&lt;br /&gt;
&lt;br /&gt;
== Anonymous use ==&lt;br /&gt;
If you don&#039;t have a write access to the repository, you have to access it anonymously, via regular SVN. However, most of the techniques shown here may be useful also for developer use, so please read it even if you don&#039;t have to access the server anonymously.&lt;br /&gt;
&lt;br /&gt;
=== Check out ===&lt;br /&gt;
First, you have to check out the code of libdvbpsi. Use the following syntax:&lt;br /&gt;
 {{%}} &amp;lt;nowiki&amp;gt;svn checkout svn://svn.videolan.org/libdvbpsi/trunk libdvbpsi-trunk&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can browse the code structure using on the [http://svn.videolan.org SVN webviewer]&lt;br /&gt;
Use the three folders there for different purposes:&lt;br /&gt;
* {{SVNSourceFile|name=trunk|repo=libdvbpsi}} is the main development branch.&lt;br /&gt;
* The {{SVNSourceFile|name=branches|repo=libdvbpsi}} are used for stable versions and for the development of complex features.&lt;br /&gt;
* The {{SVNSourceFile|name=tags|repo=libdvbpsi}} are used to track the released versions.&lt;br /&gt;
&lt;br /&gt;
The URL structure is:&lt;br /&gt;
&lt;br /&gt;
; transport : svn://svn.videolan.org&lt;br /&gt;
; project repository : /libdvbpsi&lt;br /&gt;
; branch/tag : /trunk, or /branches/0.8.6, or /tags/0.8.5&lt;br /&gt;
; files : /README&lt;br /&gt;
&lt;br /&gt;
You can also checkout a portion of the SVN using the URL.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Don&#039;t leave off the &amp;quot;trunk&amp;quot; or branch part!&#039;&#039;&#039; If you leave that off you check out every revision of every file in the repo, which is pretty silly.&lt;br /&gt;
&lt;br /&gt;
=== Projects on VideoLAN&#039;s SVN ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;svn://svn.videolan.org/vls&#039;&#039;&#039;: VideoLAN Server (deprecated and unmaintained : {{VLC}} can now do the same);&lt;br /&gt;
* &#039;&#039;&#039;svn://svn.videolan.org/libdvdcss&#039;&#039;&#039;: library for decrypting DVDs, used by {{VLC}} and VLS;&lt;br /&gt;
* &#039;&#039;&#039;svn://svn.videolan.org/libdvdplay&#039;&#039;&#039;: library for DVD navigation, (deprecated) once used by {{VLC}}, not it uses libdvdnav from mplayer, with a few internal patches;&lt;br /&gt;
* &#039;&#039;&#039;svn://svn.videolan.org/libdvbpsi&#039;&#039;&#039;: library for parsing Program Specific Information from MPEG and DVB streams, used by VLC and VLS;&lt;br /&gt;
* &#039;&#039;&#039;svn://svn.videolan.org/videolan/www.videolan.org&#039;&#039;&#039;: the website (no trunk or branches);&lt;br /&gt;
* &#039;&#039;&#039;svn://svn.videolan.org/libmpeg2&#039;&#039;&#039;: MPEG2 library.&lt;br /&gt;
* &#039;&#039;&#039;svn://svn.videolan.org/liba52&#039;&#039;&#039;: A52/AC3 decoder library.&lt;br /&gt;
* &#039;&#039;&#039;svn://svn.videolan.org/libdvbcsa&#039;&#039;&#039;:  DVB Common Scrambling Algorithm library&lt;br /&gt;
&lt;br /&gt;
=== Updating the working copy ===&lt;br /&gt;
To update your working copy and get the latest files, use the following command:&lt;br /&gt;
&lt;br /&gt;
 {{%}} svn update&lt;br /&gt;
&lt;br /&gt;
Note that SVN, unlike CVS, doesn&#039;t need to be told to prune removed files or create new directories. This is automagic.&lt;br /&gt;
&lt;br /&gt;
=== Making a diff ===&lt;br /&gt;
Diffs, or patches, are text files which include all the changes done in the working copy. &lt;br /&gt;
If you suggest a new feature or like to suggest a change, send a patch to the mailing-list with [PATCH] in the subject.&lt;br /&gt;
&lt;br /&gt;
To create a diff from the current repository, use the following command:&lt;br /&gt;
&lt;br /&gt;
 {{%}} svn diff&lt;br /&gt;
&lt;br /&gt;
Normally, unlike CVS, you don&#039;t have to tell SVN which files you changed; however, you may like to diff only a part of the repository. To do that, specify the files to diff:&lt;br /&gt;
&lt;br /&gt;
 {{%}} svn diff modules/gui/qt4/qt4.hpp&lt;br /&gt;
&lt;br /&gt;
Note that SVN defaults to the &amp;quot;unified&amp;quot; diff format, so the &amp;quot;-u&amp;quot; option doesn&#039;t have to be passed.&lt;br /&gt;
&lt;br /&gt;
=== Applying a diff ===&lt;br /&gt;
Subversion does not contain a built in command to apply diffs to the current working copy (for example, to review or commit diffs published in Bugzilla); instead, you can use the regular [[:en:Patch (Unix)|patch]] unix utility:&lt;br /&gt;
 {{%}} patch -p0 &amp;lt; patch&lt;br /&gt;
&lt;br /&gt;
TortoiseSVN has a built-in support for applying a diff.&lt;br /&gt;
&lt;br /&gt;
=== .cvsignore / Ignoring files ===&lt;br /&gt;
You can ignore some files, using metadata:&lt;br /&gt;
 {{%}} svn propedit svn:ignore mydirectory&lt;br /&gt;
&lt;br /&gt;
=== Changing file structure ===&lt;br /&gt;
&lt;br /&gt;
==== Add a file ====&lt;br /&gt;
You can add files or folders to the working copy, to be included in the next diff or commit, using the command:&lt;br /&gt;
 {{%}} svn add file.name&lt;br /&gt;
&lt;br /&gt;
If file.name is a text-based document, you should do&lt;br /&gt;
 {{%}} svn propset svn:eol-style native file.name&lt;br /&gt;
&lt;br /&gt;
If you add a folder, it will add all the files included in the folder, except for files in the ignored list.&lt;br /&gt;
&lt;br /&gt;
==== Delete a file ====&lt;br /&gt;
You can delete files or folders from the working copy, to be deleted in the next commit or marked as such in the next diff, using the command (which will automatically &#039;&#039;&#039;delete&#039;&#039;&#039; the files from the working copy, but won&#039;t delete folders in such way):&lt;br /&gt;
 {{%}} svn delete file.name&lt;br /&gt;
&lt;br /&gt;
Make sure the file or folder do not have local modifications, else they won&#039;t be deleted unless you force the deletion.&lt;br /&gt;
&lt;br /&gt;
==== Move a file ====&lt;br /&gt;
You no longer create new files from scratch when moving files!&lt;br /&gt;
 {{%}} svn mv file1 file2&lt;br /&gt;
&lt;br /&gt;
You can also do it with entire folders.&lt;br /&gt;
&lt;br /&gt;
=== Reverting your changes ===&lt;br /&gt;
If your changes in the working copy are not useful in your opinion, you can revert them using the following command:&lt;br /&gt;
 {{%}} svn revert&lt;br /&gt;
&lt;br /&gt;
You must use parameters for this command. To revert all your changes in the working copy, use:&lt;br /&gt;
 {{%}} svn revert -R .&lt;br /&gt;
&lt;br /&gt;
To revert the changes in a specific file, use:&lt;br /&gt;
 {{%}} svn revert file.name&lt;br /&gt;
&lt;br /&gt;
Reverting can also remove added files (they won&#039;t be deleted, just removed and considered &amp;quot;unknown files&amp;quot;, just like you didn&#039;t use &amp;lt;code&amp;gt;svn add&amp;lt;/code&amp;gt; at first), and restore deleted files (both deleted by hand and deleted by &amp;lt;code&amp;gt;svn delete&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Checking the status of the working copy ===&lt;br /&gt;
You can check the status of your working copy using the following command:&lt;br /&gt;
 {{%}} svn status&lt;br /&gt;
&lt;br /&gt;
These are several important letters in the first column of the item, which show the status:&lt;br /&gt;
* M = the item was modified by you&lt;br /&gt;
* A = the item was added by you (using &amp;lt;code&amp;gt;svn add&amp;lt;/code&amp;gt;)&lt;br /&gt;
* D = the item was deleted by you (using &amp;lt;code&amp;gt;svn delete&amp;lt;/code&amp;gt;)&lt;br /&gt;
* ? = the item is not under the version control, but exist&lt;br /&gt;
* ! = the item is missing (under the version control, but not exist - probably deleted without using &amp;lt;code&amp;gt;svn delete&amp;lt;/code&amp;gt;) or incomplete&lt;br /&gt;
&lt;br /&gt;
=== Checking out specific revision number ===&lt;br /&gt;
You can check specific repository revision using following command :&lt;br /&gt;
 {{%}} svn checkout -r 12345 svn://svn.videolan.org/libdvbpsi/trunk libdvbpsi-trunk&lt;br /&gt;
&lt;br /&gt;
== Developer use ==&lt;br /&gt;
If you have a write access for the server, you can use an SSH access instead of HTTP access.&lt;br /&gt;
&lt;br /&gt;
=== Commits ===&lt;br /&gt;
Commits, or check ins, are the action of applying your changes from the working copy to the web repository. Use the following command to do that:&lt;br /&gt;
 {{%}} svn commit&lt;br /&gt;
&lt;br /&gt;
Using the command without the parameters will fail, unless you&#039;ve configured an editor, because you have to enter a comment for the file logs. You can use one of the following forms:&lt;br /&gt;
 {{%}} svn commit --message=&amp;quot;This is the log comment.&amp;quot;&lt;br /&gt;
 {{%}} svn commit --file=file_with_log_comment&lt;br /&gt;
&lt;br /&gt;
=== Other commands ===&lt;br /&gt;
&lt;br /&gt;
 {{%}} svn export&lt;br /&gt;
 {{%}} svn propedit&lt;br /&gt;
&lt;br /&gt;
Are documented in the [http://svnbook.red-bean.com/en/1.2/index.html SVN Book] that you should definitively read.&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://svn.videolan.org Subversion Web access]&lt;br /&gt;
* [http://svnbook.red-bean.com/en/1.2/index.html Version Control with Subversion] book (SVN version 1.2)&lt;br /&gt;
&lt;br /&gt;
[[Category:Building]] [[Category:Coding]]&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=XSPF&amp;diff=19430</id>
		<title>XSPF</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=XSPF&amp;diff=19430"/>
		<updated>2011-07-14T15:53:24Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: split examples&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{website|XPSF|http://www.xspf.org/}}&lt;br /&gt;
&#039;&#039;&#039;XSPF&#039;&#039;&#039;, pronounced &amp;quot;spiff&amp;quot;, is a [[playlist]] in [[XML]] format, which is supported by [[Xiph]]. It is a free and open format so can be easily, freely used for sharing playlists.&lt;br /&gt;
&lt;br /&gt;
== Sample ==&lt;br /&gt;
A very simple document looks like this:&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
  &amp;lt;playlist version=&amp;quot;1&amp;quot; xmlns=&amp;quot;http://xspf.org/ns/0/&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;trackList&amp;gt;&lt;br /&gt;
         &amp;lt;track&amp;gt;&amp;lt;location&amp;gt;file:///mp3s/song_1.mp3&amp;lt;/location&amp;gt;&amp;lt;/track&amp;gt;&lt;br /&gt;
         &amp;lt;track&amp;gt;&amp;lt;location&amp;gt;file:///mp3s/song_2.mp3&amp;lt;/location&amp;gt;&amp;lt;/track&amp;gt;&lt;br /&gt;
         &amp;lt;track&amp;gt;&amp;lt;location&amp;gt;file:///mp3s/song_3.mp3&amp;lt;/location&amp;gt;&amp;lt;/track&amp;gt;&lt;br /&gt;
     &amp;lt;/trackList&amp;gt;&lt;br /&gt;
  &amp;lt;/playlist&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compatability ==&lt;br /&gt;
{{compat}}&lt;br /&gt;
&lt;br /&gt;
== VLC Extensions ==&lt;br /&gt;
XSPF supports extensions to allow applications to add special data. These extensions can appear in the following entries:&lt;br /&gt;
* playlist&lt;br /&gt;
* track&lt;br /&gt;
&lt;br /&gt;
The extension format is defined in the namespace &amp;lt;code&amp;gt;xmlns:vlc=&amp;quot;http://www.videolan.org/vlc/playlist/ns/0/&amp;quot;&amp;lt;/code&amp;gt;:&lt;br /&gt;
 &amp;lt;playlist version=&amp;quot;1&amp;quot; xmlns=&amp;quot;http://xspf.org/ns/0/&amp;quot; xmlns:vlc=&amp;quot;http://www.videolan.org/vlc/playlist/ns/0/&amp;quot;&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  &amp;lt;extension application=&amp;quot;http://www.videolan.org/vlc/playlist/0&amp;quot;&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
  &amp;lt;/extension&amp;gt;&lt;br /&gt;
 &amp;lt;/playlist&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Currently, extensions support the following elements:&lt;br /&gt;
* vlc:node&lt;br /&gt;
* vlc:item&lt;br /&gt;
* vlc:id&lt;br /&gt;
* vlc:option&lt;br /&gt;
&lt;br /&gt;
The extensions vlc:node and vlc:item are used to specify how to display the playlist tree, which is not supported by standard XSPF.&lt;br /&gt;
&lt;br /&gt;
=== vlc:node ===&lt;br /&gt;
This element will be displayed as a node in the playlist. It appears as an extension of the &#039;&#039;&#039;playlist&#039;&#039;&#039; block (under playlist/extension). Only its name can be specified:&lt;br /&gt;
 &amp;lt;vlc:node title=&amp;quot;Node title&amp;quot;&amp;gt;&lt;br /&gt;
  [list of vlc:item or vlc:node]&lt;br /&gt;
 &amp;lt;/vlc:node&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== vlc:item ===&lt;br /&gt;
This element represents a playlist item (not a node). It appears as an extension of the &#039;&#039;&#039;playlist&#039;&#039;&#039; block (under playlist/extension). It contains only a track id (see below, vlc:id):&lt;br /&gt;
 &amp;lt;vlc:item tid=&amp;quot;42&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== vlc:id ===&lt;br /&gt;
This element specifies a track&#039;s id. It appears as an extension of the &#039;&#039;&#039;track&#039;&#039;&#039; block (under playlist/trackList/track/extension).&lt;br /&gt;
 &amp;lt;vlc:id&amp;gt;42&amp;lt;/vlc:id&amp;gt;&lt;br /&gt;
The value of the id corresponds to the value of the attribute tid of vlc:item.&lt;br /&gt;
Note that each vlc:id has to be different, per entry, or it will not show them all.&lt;br /&gt;
&lt;br /&gt;
=== vlc:option ===&lt;br /&gt;
This element allows you to add options to the input item. It appears as an extension of the &#039;&#039;&#039;track&#039;&#039;&#039; block (under playlist/trackList/track/extension).&lt;br /&gt;
 &amp;lt;vlc:option&amp;gt;option-name&amp;lt;/vlc:option&amp;gt;&lt;br /&gt;
Or, if the option has a value:&lt;br /&gt;
 &amp;lt;vlc:option&amp;gt;option-name=option-value&amp;lt;/vlc:option&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Example of XSPF with VLC extensions ===&lt;br /&gt;
&lt;br /&gt;
Let&#039;s summarize these as an example.  This one shows passing VLC options per specified entry in the playlist.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;playlist version=&amp;quot;1&amp;quot; xmlns=&amp;quot;http://xspf.org/ns/0/&amp;quot; xmlns:vlc=&amp;quot;http://www.videolan.org/vlc/playlist/ns/0/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Playlist&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;location&amp;gt;D:/media/example.xspf&amp;lt;/location&amp;gt;&lt;br /&gt;
    &amp;lt;trackList&amp;gt;&lt;br /&gt;
        &amp;lt;track&amp;gt;&lt;br /&gt;
            &amp;lt;title&amp;gt;DVD seconds 42 to 45 muted&amp;lt;/title&amp;gt;&lt;br /&gt;
            &amp;lt;location&amp;gt;dvd://d:\@1&amp;lt;/location&amp;gt;&lt;br /&gt;
            &amp;lt;extension application=&amp;quot;http://www.videolan.org/vlc/playlist/0&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;vlc:id&amp;gt;3&amp;lt;/vlc:id&amp;gt;&lt;br /&gt;
                &amp;lt;vlc:option&amp;gt;start-time=42&amp;lt;/vlc:option&amp;gt;&lt;br /&gt;
                &amp;lt;vlc:option&amp;gt;stop-time=45&amp;lt;/vlc:option&amp;gt;&lt;br /&gt;
                &amp;lt;vlc:option&amp;gt;no-audio&amp;lt;/vlc:option&amp;gt;&lt;br /&gt;
                &amp;lt;vlc:option&amp;gt;some-option=100&amp;lt;/vlc:option&amp;gt;&lt;br /&gt;
            &amp;lt;/extension&amp;gt;&lt;br /&gt;
        &amp;lt;/track&amp;gt;&lt;br /&gt;
        &amp;lt;track&amp;gt;&lt;br /&gt;
            &amp;lt;title&amp;gt;DVD seconds 49-55 unmuted (normal)&amp;lt;/title&amp;gt;&lt;br /&gt;
            &amp;lt;location&amp;gt;dvd://d:\@1&amp;lt;/location&amp;gt;&lt;br /&gt;
            &amp;lt;extension application=&amp;quot;http://www.videolan.org/vlc/playlist/0&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;vlc:id&amp;gt;4&amp;lt;/vlc:id&amp;gt;&lt;br /&gt;
                &amp;lt;vlc:option&amp;gt;start-time=49&amp;lt;/vlc:option&amp;gt;&lt;br /&gt;
                &amp;lt;vlc:option&amp;gt;stop-time=55&amp;lt;/vlc:option&amp;gt;&lt;br /&gt;
            &amp;lt;/extension&amp;gt;&lt;br /&gt;
        &amp;lt;/track&amp;gt;&lt;br /&gt;
    &amp;lt;/trackList&amp;gt;&lt;br /&gt;
 &amp;lt;/playlist&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is an example that shows how you can have it show nested entries within the playlist window:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;playlist version=&amp;quot;1&amp;quot; xmlns=&amp;quot;http://xspf.org/ns/0/&amp;quot; xmlns:vlc=&amp;quot;http://www.videolan.org/vlc/playlist/ns/0/&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;title&amp;gt;Playlist&amp;lt;/title&amp;gt;&lt;br /&gt;
     &amp;lt;location&amp;gt;D:/media/example.xspf&amp;lt;/location&amp;gt;&lt;br /&gt;
     &amp;lt;trackList&amp;gt;&lt;br /&gt;
         &amp;lt;track&amp;gt;&lt;br /&gt;
             &amp;lt;title&amp;gt;Track 1&amp;lt;/title&amp;gt;&lt;br /&gt;
             ...&lt;br /&gt;
             &amp;lt;extension application=&amp;quot;http://www.videolan.org/vlc/playlist/0&amp;quot;&amp;gt;&lt;br /&gt;
                 &amp;lt;vlc:id&amp;gt;0&amp;lt;/vlc:id&amp;gt;&lt;br /&gt;
             &amp;lt;/extension&amp;gt;&lt;br /&gt;
             &lt;br /&gt;
         &amp;lt;/track&amp;gt;&lt;br /&gt;
         &amp;lt;track&amp;gt;&lt;br /&gt;
             &amp;lt;title&amp;gt;Track 2&amp;lt;/title&amp;gt;&lt;br /&gt;
             ...&lt;br /&gt;
             &amp;lt;extension application=&amp;quot;http://www.videolan.org/vlc/playlist/0&amp;quot;&amp;gt;&lt;br /&gt;
                 &amp;lt;vlc:id&amp;gt;1&amp;lt;/vlc:id&amp;gt;&lt;br /&gt;
             &amp;lt;/extension&amp;gt;&lt;br /&gt;
         &amp;lt;/track&amp;gt;&lt;br /&gt;
         &amp;lt;track&amp;gt;&lt;br /&gt;
             &amp;lt;title&amp;gt;Track 3&amp;lt;/title&amp;gt;&lt;br /&gt;
             ...&lt;br /&gt;
             &amp;lt;extension application=&amp;quot;http://www.videolan.org/vlc/playlist/0&amp;quot;&amp;gt;&lt;br /&gt;
                 &amp;lt;vlc:id&amp;gt;2&amp;lt;/vlc:id&amp;gt;&lt;br /&gt;
             &amp;lt;/extension&amp;gt;&lt;br /&gt;
         &amp;lt;/track&amp;gt;&lt;br /&gt;
         &amp;lt;track&amp;gt;&lt;br /&gt;
             &amp;lt;title&amp;gt;Track 4&amp;lt;/title&amp;gt;&lt;br /&gt;
             &amp;lt;location&amp;gt;dvd://e:\@1&amp;lt;/location&amp;gt;&lt;br /&gt;
             &amp;lt;extension application=&amp;quot;http://www.videolan.org/vlc/playlist/0&amp;quot;&amp;gt;&lt;br /&gt;
                 &amp;lt;vlc:id&amp;gt;3&amp;lt;/vlc:id&amp;gt;&lt;br /&gt;
                 &amp;lt;vlc:option&amp;gt;my-option=100&amp;lt;/vlc:option&amp;gt;&lt;br /&gt;
                 &amp;lt;vlc:option&amp;gt;start-time=42&amp;lt;/vlc:option&amp;gt;&lt;br /&gt;
                 &amp;lt;vlc:option&amp;gt;stop-time=45&amp;lt;/vlc:option&amp;gt;&lt;br /&gt;
                 &amp;lt;vlc:option&amp;gt;no-audio&amp;lt;/vlc:option&amp;gt;&lt;br /&gt;
             &amp;lt;/extension&amp;gt;&lt;br /&gt;
         &amp;lt;/track&amp;gt;&lt;br /&gt;
     &amp;lt;/trackList&amp;gt;&lt;br /&gt;
     &amp;lt;extension application=&amp;quot;http://www.videolan.org/vlc/playlist/0&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;vlc:node title=&amp;quot;Node 1&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;lt;vlc:item tid=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;vlc:item tid=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;vlc:node title=&amp;quot;Node 2&amp;quot;&amp;gt;&lt;br /&gt;
                 &amp;lt;vlc:item tid=&amp;quot;2&amp;quot; /&amp;gt;&lt;br /&gt;
                 &amp;lt;vlc:item tid=&amp;quot;3&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;/vlc:node&amp;gt;&lt;br /&gt;
         &amp;lt;/vlc:node&amp;gt;&lt;br /&gt;
     &amp;lt;/extension&amp;gt;&lt;br /&gt;
 &amp;lt;/playlist&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This playlist example will be displayed as:&lt;br /&gt;
 Playlist&lt;br /&gt;
 `- Node 1&lt;br /&gt;
    |- Track 1&lt;br /&gt;
    |- Track 2&lt;br /&gt;
    `- Node 2&lt;br /&gt;
       |- Track 3&lt;br /&gt;
       `- Track 4&lt;br /&gt;
&lt;br /&gt;
The input for &#039;&#039;Track 4&#039;&#039; will be created with the option &#039;&#039;my-option&#039;&#039; set to 42.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Media Library]] a function built into VLC media player&lt;br /&gt;
There are many advantages to using XML as the format.&lt;br /&gt;
More information is available at&lt;br /&gt;
* [http://www.xiph.org/ Xiph.org]&lt;br /&gt;
* [http://www.xspf.org/quickstart/ XSPF project website].&lt;br /&gt;
&lt;br /&gt;
== Unsafe operations ==&lt;br /&gt;
Some operations, like setting volume, setting sout destination, etc. are deemed &amp;quot;unsafe&amp;quot; to be in the playlist, so you&#039;ll have to add those settings to the command line instead.&lt;br /&gt;
You&#039;ll get the error message: &lt;br /&gt;
&#039;&#039;&#039;unsafe option &amp;quot;sout-audio&amp;quot; has been ignored for security reasons)&#039;&#039;&#039; or the like.&lt;br /&gt;
&lt;br /&gt;
http://forum.videolan.org/viewtopic.php?f=14&amp;amp;t=78945&lt;br /&gt;
&lt;br /&gt;
[[Category:Playlist]]&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Rip_a_DVD&amp;diff=19408</id>
		<title>VLC HowTo/Rip a DVD</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Rip_a_DVD&amp;diff=19408"/>
		<updated>2011-07-02T21:54:04Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: mplayer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{howto|create a video file from a DVD using VLC}}&lt;br /&gt;
&lt;br /&gt;
You can use VLC to rip a &amp;quot;raw&amp;quot; video file from a DVD, or you can use VLC to create a condensed &amp;quot;transcoded&amp;quot; video file from a DVD.  This page mostly deals with using it to rip a raw video file from the command line.&lt;br /&gt;
&lt;br /&gt;
Here is an example. You&#039;ll need to type this at the command prompt (windows) or terminal (linux), all on one line. You may also need to give the full path to vlc (ie, replace vlc with &amp;quot;C:\Program Files\VideoLAN\vlc\vlc.exe&amp;quot;, or wherever you installed vlc)&lt;br /&gt;
&lt;br /&gt;
This is how to rip the &amp;quot;raw&amp;quot; video from a DVD, assuming you want to rip your DVD&#039;s title &amp;quot;1&amp;quot; to filename dvdout.mpg, from drive dvd:\&lt;br /&gt;
&lt;br /&gt;
    $ vlc dvdsimple://d:\@1 --sout &amp;quot;#standard{access=file,mux=ts,dst=dvdout.mpg}&amp;quot; vlc://quit&lt;br /&gt;
&lt;br /&gt;
the vlc://quit at the end just tells it to exit after ripping.  You can also add a --qt-start-minimized, if desired.&lt;br /&gt;
&lt;br /&gt;
Note that the above doesn&#039;t do any transcoding on the video stream, it just basically dumps a verbatim copy to your hard drive.  In comparison with other ripping programs, this is sometimes lacking a few frames from the original (up to 10), but is typically pretty accurate.  If you want one that is even more accurate, use mplayer&#039;s dumpstream or makemkv.&lt;br /&gt;
&lt;br /&gt;
You may have some luck ripping the DVD from [http://www.howtogeek.com/howto/2696/how-to-rip-dvds-with-vlc the GUI], as well, though this is a bit tricky [1].  See also note at bottom.  Using the GUI may help if you want to both rip and [transcode] simultaneously, as the above commands only do a raw copy.  Recommend using handbrake if you want to do transcoding too.   NB that if you use the GUI you will need to name your output filename with the correct extension for your mux type or VLC will silently ignore your request to convert the stream on the DVD, and just display the video instead.  Silently, mind you.  (If it is working right it won&#039;t show you a video by default).  You will also need to check the &#039;no DVD menus&#039; option, which instructs it to use dvdsimple:// instead of dvd:// which [http://forum.videolan.org/viewtopic.php?f=2&amp;amp;t=52748 loops back] to the main menu after playing the title.&lt;br /&gt;
&lt;br /&gt;
If it stops halfway through, cleaning your disc might help.  If it still fails half-way through, it may work better to use dvd:// (in the GUI, that&#039;s not check &#039;no DVD menus&#039;) instead of dvdsimple:// but this is probably not a good option as it never stops but loops back to the main menu forever so you will have to stop it manually by monitoring it.  Recommend mplayer&#039;s dumpstream in this case.&lt;br /&gt;
&lt;br /&gt;
   $ vlc dvd://d:\@1 --sout &amp;quot;#standard{access=file,mux=ts,dst=dvdout.mpg}&amp;quot; vlc://quit&lt;br /&gt;
&lt;br /&gt;
It might also help to set the cacheing value either higher or to 0 (in the GUI: under advanced options).&lt;br /&gt;
&lt;br /&gt;
OS X example (you may be able to use dvdsimple:///Volumes/volumeName as well).&lt;br /&gt;
&lt;br /&gt;
  $ /Applications/VLC.app/Contents/MacOS/VLC dvdsimple:///dev/disk1@1 --sout #standard{access=file,mux=ts,dst=dvdout.dvdsimple.vlc.mpg}&lt;br /&gt;
&lt;br /&gt;
== Related ==&lt;br /&gt;
&lt;br /&gt;
http://wiki.videolan.org/WindowsFAQ-1.1.x#Some_DVD_movies_don.27t_work_at_all_or_they_crash.2Ffreeze_to_menu_or_playback&lt;br /&gt;
&lt;br /&gt;
[http://handbrake.fr Handbrake] is a free user friendly open source tool for ripping DVD&#039;s and simultaneously transcoding (condensing) the output file.  It uses VLC by default for ripping if installed on OS X.  For windows users handbrake can also use VLC&#039;s libdvdcss if you first [https://forum.handbrake.fr/viewtopic.php?f=11&amp;amp;t=16670#p78021 install it].&lt;br /&gt;
&lt;br /&gt;
=== mplayer ===&lt;br /&gt;
Mplayer is another excellent option for ripping a raw mpeg stream from a DVD.  See [http://en.wikibooks.org/w/index.php?title=Mplayer&amp;amp;stable=0#Rip_DVD_to_raw_video some instructions] for it.&lt;br /&gt;
&lt;br /&gt;
=== makemkv ===&lt;br /&gt;
&lt;br /&gt;
MakeMKV is also good for ripping DVD or blu-ray to a raw mpeg file.  To select specific titles, count down from the top of the checked title options.  The first one at the top is &amp;quot;title 1.&amp;quot;  After ripping, you could then convert it (to condense/transcode it) by using handbrake or VLC.&lt;br /&gt;
&lt;br /&gt;
If you want to convert makemkv&#039;s output to an mpeg file (mpeg-ts) then you could use tsmuxer.  OS X users will need a [http://instantitunes.wordpress.com/2010/02/26/use-tsmuxer-on-snow-leopard/ special version] of tsmuxer, however.&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Rip_a_DVD&amp;diff=19371</id>
		<title>VLC HowTo/Rip a DVD</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Rip_a_DVD&amp;diff=19371"/>
		<updated>2011-06-27T23:49:28Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: /* mplayer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{howto|create a video file from a DVD using VLC}}&lt;br /&gt;
&lt;br /&gt;
You can use VLC to rip a &amp;quot;raw&amp;quot; video file from a DVD, or you can use VLC to create a condensed &amp;quot;transcoded&amp;quot; video file from a DVD.  This page mostly deals with using it to rip a raw video file from the command line.&lt;br /&gt;
&lt;br /&gt;
Here is an example. You&#039;ll need to type this at the command prompt (windows) or terminal (linux), all on one line. You may also need to give the full path to vlc (ie, replace vlc with &amp;quot;C:\Program Files\VideoLAN\vlc\vlc.exe&amp;quot;, or wherever you installed vlc)&lt;br /&gt;
&lt;br /&gt;
This is how to rip the &amp;quot;raw&amp;quot; video from a DVD, assuming you want to rip your DVD&#039;s title &amp;quot;1&amp;quot; to filename dvdout.mpg, from drive dvd:\&lt;br /&gt;
&lt;br /&gt;
    $ vlc dvdsimple://d:\@1 --sout &amp;quot;#standard{access=file,mux=ts,dst=dvdout.mpg}&amp;quot; vlc://quit&lt;br /&gt;
&lt;br /&gt;
the vlc://quit at the end just tells it to exit after ripping.  You can also add a --qt-start-minimized, if desired.&lt;br /&gt;
&lt;br /&gt;
Note that the above doesn&#039;t do any transcoding on the video stream, it just basically dumps a verbatim copy to your hard drive.  In comparison with other ripping programs, this is sometimes lacking a few frames from the original (up to 10), but is typically pretty accurate.  If you want one that is even more accurate, use mplayer&#039;s dumpstream or makemkv.&lt;br /&gt;
&lt;br /&gt;
You may have some luck ripping the DVD from [http://www.howtogeek.com/howto/2696/how-to-rip-dvds-with-vlc the GUI], as well, though this is a bit tricky [1].  See also note at bottom.  Using the GUI may help if you want to both rip and [transcode] simultaneously, as the above commands only do a raw copy.  Recommend using handbrake if you want to do transcoding too.   NB that if you use the GUI you will need to name your output filename with the correct extension for your mux type or VLC will silently ignore your request to convert the stream on the DVD, and just display the video instead.  Silently, mind you.  (If it is working right it won&#039;t show you a video by default).  You will also need to check the &#039;no DVD menus&#039; option, which instructs it to use dvdsimple:// instead of dvd:// which [http://forum.videolan.org/viewtopic.php?f=2&amp;amp;t=52748 loops back] to the main menu after playing the title.&lt;br /&gt;
&lt;br /&gt;
If it stops halfway through, cleaning your disc might help.  If it still fails half-way through, it may work better to use dvd:// (in the GUI, that&#039;s not check &#039;no DVD menus&#039;) instead of dvdsimple:// but this is probably not a good option as it never stops but loops back to the main menu forever so you will have to stop it manually by monitoring it.  Recommend mplayer&#039;s dumpstream in this case.&lt;br /&gt;
&lt;br /&gt;
   $ vlc dvd://d:\@1 --sout &amp;quot;#standard{access=file,mux=ts,dst=dvdout.mpg}&amp;quot; vlc://quit&lt;br /&gt;
&lt;br /&gt;
It might also help to set the cacheing value either higher or to 0 (in the GUI: under advanced options).&lt;br /&gt;
&lt;br /&gt;
OS X example (you may be able to use dvdsimple:///Volumes/volumeName as well).&lt;br /&gt;
&lt;br /&gt;
  $ /Applications/VLC.app/Contents/MacOS/VLC dvdsimple:///dev/disk1@1 --sout #standard{access=file,mux=ts,dst=dvdout.dvdsimple.vlc.mpg}&lt;br /&gt;
&lt;br /&gt;
== Related ==&lt;br /&gt;
&lt;br /&gt;
http://wiki.videolan.org/WindowsFAQ-1.1.x#Some_DVD_movies_don.27t_work_at_all_or_they_crash.2Ffreeze_to_menu_or_playback&lt;br /&gt;
&lt;br /&gt;
[http://handbrake.fr Handbrake] is a free user friendly open source tool for ripping DVD&#039;s and simultaneously transcoding (condensing) the output file.  It uses VLC by default for ripping if installed on OS X.  For windows users handbrake can also use VLC&#039;s libdvdcss if you first [https://forum.handbrake.fr/viewtopic.php?f=11&amp;amp;t=16670#p78021 install it].&lt;br /&gt;
&lt;br /&gt;
=== mplayer ===&lt;br /&gt;
Mplayer is another excellent option for ripping a raw mpeg stream from a DVD.  Here&#039;s an example (title 1, dvd on d:\):&lt;br /&gt;
&lt;br /&gt;
  $ mplayer -dumpstream dvdnav://1 -nocache -dvd-device d: -dumpfile dvdout.mpg&lt;br /&gt;
&lt;br /&gt;
If you&#039;re on windows, you may need to replace &amp;quot;mplayer&amp;quot;, above, with something like &amp;quot;C:\Program Files (x86)\MPlayer for WindowsUI\mplayer\mplayer.exe&amp;quot; to get it to run.  You may need to install &amp;quot;mulder&#039;s mplayer for windows&amp;quot; first.&lt;br /&gt;
&lt;br /&gt;
=== makemkv ===&lt;br /&gt;
&lt;br /&gt;
MakeMKV is also good for ripping a DVD or blu-ray to a raw mpeg file.  To select certain titles, count down from the top of the checked title options.  The first one at the top is &amp;quot;title 1.&amp;quot;   You could then convert it (condense/transcode it) after using handbrake or VLC.&lt;br /&gt;
&lt;br /&gt;
If you want to convert makemkv&#039;s output to an mpeg file (mpeg-ts) then you could use tsmuxer.  OS X users will need a [http://instantitunes.wordpress.com/2010/02/26/use-tsmuxer-on-snow-leopard/ special version] of tsmuxer, however.&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Rip_a_DVD&amp;diff=19370</id>
		<title>VLC HowTo/Rip a DVD</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Rip_a_DVD&amp;diff=19370"/>
		<updated>2011-06-27T23:40:40Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: /* makemkv */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{howto|create a video file from a DVD using VLC}}&lt;br /&gt;
&lt;br /&gt;
You can use VLC to rip a &amp;quot;raw&amp;quot; video file from a DVD, or you can use VLC to create a condensed &amp;quot;transcoded&amp;quot; video file from a DVD.  This page mostly deals with using it to rip a raw video file from the command line.&lt;br /&gt;
&lt;br /&gt;
Here is an example. You&#039;ll need to type this at the command prompt (windows) or terminal (linux), all on one line. You may also need to give the full path to vlc (ie, replace vlc with &amp;quot;C:\Program Files\VideoLAN\vlc\vlc.exe&amp;quot;, or wherever you installed vlc)&lt;br /&gt;
&lt;br /&gt;
This is how to rip the &amp;quot;raw&amp;quot; video from a DVD, assuming you want to rip your DVD&#039;s title &amp;quot;1&amp;quot; to filename dvdout.mpg, from drive dvd:\&lt;br /&gt;
&lt;br /&gt;
    $ vlc dvdsimple://d:\@1 --sout &amp;quot;#standard{access=file,mux=ts,dst=dvdout.mpg}&amp;quot; vlc://quit&lt;br /&gt;
&lt;br /&gt;
the vlc://quit at the end just tells it to exit after ripping.  You can also add a --qt-start-minimized, if desired.&lt;br /&gt;
&lt;br /&gt;
Note that the above doesn&#039;t do any transcoding on the video stream, it just basically dumps a verbatim copy to your hard drive.  In comparison with other ripping programs, this is sometimes lacking a few frames from the original (up to 10), but is typically pretty accurate.  If you want one that is even more accurate, use mplayer&#039;s dumpstream or makemkv.&lt;br /&gt;
&lt;br /&gt;
You may have some luck ripping the DVD from [http://www.howtogeek.com/howto/2696/how-to-rip-dvds-with-vlc the GUI], as well, though this is a bit tricky [1].  See also note at bottom.  Using the GUI may help if you want to both rip and [transcode] simultaneously, as the above commands only do a raw copy.  Recommend using handbrake if you want to do transcoding too.   NB that if you use the GUI you will need to name your output filename with the correct extension for your mux type or VLC will silently ignore your request to convert the stream on the DVD, and just display the video instead.  Silently, mind you.  (If it is working right it won&#039;t show you a video by default).  You will also need to check the &#039;no DVD menus&#039; option, which instructs it to use dvdsimple:// instead of dvd:// which [http://forum.videolan.org/viewtopic.php?f=2&amp;amp;t=52748 loops back] to the main menu after playing the title.&lt;br /&gt;
&lt;br /&gt;
If it stops halfway through, cleaning your disc might help.  If it still fails half-way through, it may work better to use dvd:// (in the GUI, that&#039;s not check &#039;no DVD menus&#039;) instead of dvdsimple:// but this is probably not a good option as it never stops but loops back to the main menu forever so you will have to stop it manually by monitoring it.  Recommend mplayer&#039;s dumpstream in this case.&lt;br /&gt;
&lt;br /&gt;
   $ vlc dvd://d:\@1 --sout &amp;quot;#standard{access=file,mux=ts,dst=dvdout.mpg}&amp;quot; vlc://quit&lt;br /&gt;
&lt;br /&gt;
It might also help to set the cacheing value either higher or to 0 (in the GUI: under advanced options).&lt;br /&gt;
&lt;br /&gt;
OS X example (you may be able to use dvdsimple:///Volumes/volumeName as well).&lt;br /&gt;
&lt;br /&gt;
  $ /Applications/VLC.app/Contents/MacOS/VLC dvdsimple:///dev/disk1@1 --sout #standard{access=file,mux=ts,dst=dvdout.dvdsimple.vlc.mpg}&lt;br /&gt;
&lt;br /&gt;
== Related ==&lt;br /&gt;
&lt;br /&gt;
http://wiki.videolan.org/WindowsFAQ-1.1.x#Some_DVD_movies_don.27t_work_at_all_or_they_crash.2Ffreeze_to_menu_or_playback&lt;br /&gt;
&lt;br /&gt;
[http://handbrake.fr Handbrake] is a free user friendly open source tool for ripping DVD&#039;s and simultaneously transcoding (condensing) the output file.  It uses VLC by default for ripping if installed on OS X.  For windows users handbrake can also use VLC&#039;s libdvdcss if you first [https://forum.handbrake.fr/viewtopic.php?f=11&amp;amp;t=16670#p78021 install it].&lt;br /&gt;
&lt;br /&gt;
=== mplayer ===&lt;br /&gt;
Mplayer is another excellent option for ripping a raw mpeg stream from a DVD.  Here&#039;s an example (title 1, dvd on d:\):&lt;br /&gt;
&lt;br /&gt;
  $ mplayer -dumpstream dvdnav://1 -nocache -dvd-device d: -dumpfile dvdout.mpg&lt;br /&gt;
&lt;br /&gt;
If you&#039;re on windows, you may need to replace &amp;quot;mplayer&amp;quot;, above, with something like &amp;quot;C:\Program Files (x86)\MPlayer for WindowsUI\mplayer\mplayer.exe&amp;quot; to get it to work.&lt;br /&gt;
&lt;br /&gt;
=== makemkv ===&lt;br /&gt;
&lt;br /&gt;
MakeMKV is also good for ripping a DVD or blu-ray to a raw mpeg file.  To select certain titles, count down from the top of the checked title options.  The first one at the top is &amp;quot;title 1.&amp;quot;   You could then convert it (condense/transcode it) after using handbrake or VLC.&lt;br /&gt;
&lt;br /&gt;
If you want to convert makemkv&#039;s output to an mpeg file (mpeg-ts) then you could use tsmuxer.  OS X users will need a [http://instantitunes.wordpress.com/2010/02/26/use-tsmuxer-on-snow-leopard/ special version] of tsmuxer, however.&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Rip_a_DVD&amp;diff=19369</id>
		<title>VLC HowTo/Rip a DVD</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Rip_a_DVD&amp;diff=19369"/>
		<updated>2011-06-27T23:31:47Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: /* Related */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{howto|create a video file from a DVD using VLC}}&lt;br /&gt;
&lt;br /&gt;
You can use VLC to rip a &amp;quot;raw&amp;quot; video file from a DVD, or you can use VLC to create a condensed &amp;quot;transcoded&amp;quot; video file from a DVD.  This page mostly deals with using it to rip a raw video file from the command line.&lt;br /&gt;
&lt;br /&gt;
Here is an example. You&#039;ll need to type this at the command prompt (windows) or terminal (linux), all on one line. You may also need to give the full path to vlc (ie, replace vlc with &amp;quot;C:\Program Files\VideoLAN\vlc\vlc.exe&amp;quot;, or wherever you installed vlc)&lt;br /&gt;
&lt;br /&gt;
This is how to rip the &amp;quot;raw&amp;quot; video from a DVD, assuming you want to rip your DVD&#039;s title &amp;quot;1&amp;quot; to filename dvdout.mpg, from drive dvd:\&lt;br /&gt;
&lt;br /&gt;
    $ vlc dvdsimple://d:\@1 --sout &amp;quot;#standard{access=file,mux=ts,dst=dvdout.mpg}&amp;quot; vlc://quit&lt;br /&gt;
&lt;br /&gt;
the vlc://quit at the end just tells it to exit after ripping.  You can also add a --qt-start-minimized, if desired.&lt;br /&gt;
&lt;br /&gt;
Note that the above doesn&#039;t do any transcoding on the video stream, it just basically dumps a verbatim copy to your hard drive.  In comparison with other ripping programs, this is sometimes lacking a few frames from the original (up to 10), but is typically pretty accurate.  If you want one that is even more accurate, use mplayer&#039;s dumpstream or makemkv.&lt;br /&gt;
&lt;br /&gt;
You may have some luck ripping the DVD from [http://www.howtogeek.com/howto/2696/how-to-rip-dvds-with-vlc the GUI], as well, though this is a bit tricky [1].  See also note at bottom.  Using the GUI may help if you want to both rip and [transcode] simultaneously, as the above commands only do a raw copy.  Recommend using handbrake if you want to do transcoding too.   NB that if you use the GUI you will need to name your output filename with the correct extension for your mux type or VLC will silently ignore your request to convert the stream on the DVD, and just display the video instead.  Silently, mind you.  (If it is working right it won&#039;t show you a video by default).  You will also need to check the &#039;no DVD menus&#039; option, which instructs it to use dvdsimple:// instead of dvd:// which [http://forum.videolan.org/viewtopic.php?f=2&amp;amp;t=52748 loops back] to the main menu after playing the title.&lt;br /&gt;
&lt;br /&gt;
If it stops halfway through, cleaning your disc might help.  If it still fails half-way through, it may work better to use dvd:// (in the GUI, that&#039;s not check &#039;no DVD menus&#039;) instead of dvdsimple:// but this is probably not a good option as it never stops but loops back to the main menu forever so you will have to stop it manually by monitoring it.  Recommend mplayer&#039;s dumpstream in this case.&lt;br /&gt;
&lt;br /&gt;
   $ vlc dvd://d:\@1 --sout &amp;quot;#standard{access=file,mux=ts,dst=dvdout.mpg}&amp;quot; vlc://quit&lt;br /&gt;
&lt;br /&gt;
It might also help to set the cacheing value either higher or to 0 (in the GUI: under advanced options).&lt;br /&gt;
&lt;br /&gt;
OS X example (you may be able to use dvdsimple:///Volumes/volumeName as well).&lt;br /&gt;
&lt;br /&gt;
  $ /Applications/VLC.app/Contents/MacOS/VLC dvdsimple:///dev/disk1@1 --sout #standard{access=file,mux=ts,dst=dvdout.dvdsimple.vlc.mpg}&lt;br /&gt;
&lt;br /&gt;
== Related ==&lt;br /&gt;
&lt;br /&gt;
http://wiki.videolan.org/WindowsFAQ-1.1.x#Some_DVD_movies_don.27t_work_at_all_or_they_crash.2Ffreeze_to_menu_or_playback&lt;br /&gt;
&lt;br /&gt;
[http://handbrake.fr Handbrake] is a free user friendly open source tool for ripping DVD&#039;s and simultaneously transcoding (condensing) the output file.  It uses VLC by default for ripping if installed on OS X.  For windows users handbrake can also use VLC&#039;s libdvdcss if you first [https://forum.handbrake.fr/viewtopic.php?f=11&amp;amp;t=16670#p78021 install it].&lt;br /&gt;
&lt;br /&gt;
=== mplayer ===&lt;br /&gt;
Mplayer is another excellent option for ripping a raw mpeg stream from a DVD.  Here&#039;s an example (title 1, dvd on d:\):&lt;br /&gt;
&lt;br /&gt;
  $ mplayer -dumpstream dvdnav://1 -nocache -dvd-device d: -dumpfile dvdout.mpg&lt;br /&gt;
&lt;br /&gt;
If you&#039;re on windows, you may need to replace &amp;quot;mplayer&amp;quot;, above, with something like &amp;quot;C:\Program Files (x86)\MPlayer for WindowsUI\mplayer\mplayer.exe&amp;quot; to get it to work.&lt;br /&gt;
&lt;br /&gt;
=== makemkv ===&lt;br /&gt;
&lt;br /&gt;
MakeMKV is also good for ripping a DVD or blu-ray to a raw mpeg file.  To select certain titles, count down from the top of the checked title options.  The first one at the top is &amp;quot;title 1.&amp;quot;   You could then convert it (condense/transcode it) after using handbrake or VLC.&lt;br /&gt;
&lt;br /&gt;
If you want to convert makemkv&#039;s output to an mpeg file (mpeg-ts) then you could use tsmuxer.  OS X users will need a [http://instantitunes.wordpress.com/2010/02/26/use-tsmuxer-on-snow-leopard/ special version] of tsmuxer.&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Rip_a_DVD&amp;diff=19307</id>
		<title>VLC HowTo/Rip a DVD</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Rip_a_DVD&amp;diff=19307"/>
		<updated>2011-06-06T17:36:00Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is an example. You&#039;ll need to type this at the command prompt (windows) or terminal (linux), all on one line. You may also need to give the full path to vlc (ie, replace vlc with &amp;quot;C:\Program Files\VideoLAN\vlc\vlc.exe&amp;quot;, or wherever you installed vlc)&lt;br /&gt;
&lt;br /&gt;
This is how to rip the &amp;quot;raw mpg&amp;quot; from a DVD, assuming you want to rip your DVD&#039;s title &amp;quot;1&amp;quot; to filename dvdout.mpg&lt;br /&gt;
&lt;br /&gt;
    $ vlc dvdsimple://d:\@1 --sout &amp;quot;#standard{access=file,mux=ts,dst=dvdout.mpg}&amp;quot; vlc://quit&lt;br /&gt;
&lt;br /&gt;
the vlc://quit at the end just tells it to start, complete the rip, then exit.  You can also add a --qt-start-minimized to that, if desired.&lt;br /&gt;
&lt;br /&gt;
Note that the above doesn&#039;t do any transcoding on the video stream, it just basically dumps a verbatim copy to your hard drive.&lt;br /&gt;
&lt;br /&gt;
You may have some luck ripping the DVD from [http://www.howtogeek.com/howto/2696/how-to-rip-dvds-with-vlc the GUI], as well, though this is a bit tricky [1].  See also note at bottom.  Using the GUI may be easier for if you want to both rip and [transcode] simultaneously, as the above commands only do a raw copy.  NB that if you use the GUI you will need to name your output filename with the correct extension for your mux type or VLC will silently ignore your desire to convert, and just display the video instead.  Silently, mind you.  (If it is working right it won&#039;t show you a video by default).  You will also need to check the &#039;no DVD menus&#039; option, which instructs it to use dvdsimple:// instead of dvd:// which [http://forum.videolan.org/viewtopic.php?f=2&amp;amp;t=52748 loops back] to the main menu after playing the title.&lt;br /&gt;
&lt;br /&gt;
If it stops halfway through, cleaning your disc might help.  If it still fails half-way through, it may work better to use dvd:// (in the GUI, that&#039;s not check &#039;no DVD menus&#039;) instead of dvdsimple:// but this is probably not a good option as it never stops it loops back to the main menu forever so you will have to stop it manually by watching it.&lt;br /&gt;
&lt;br /&gt;
   $ vlc dvd://d:\@1 --sout &amp;quot;#standard{access=file,mux=ts,dst=dvdout.mpg}&amp;quot; vlc://quit&lt;br /&gt;
&lt;br /&gt;
It might also help to set the cacheing value either higher or to 0 (in the GUI: under advanced options).&lt;br /&gt;
&lt;br /&gt;
OS X&lt;br /&gt;
&lt;br /&gt;
  $ /Applications/VLC.app/Contents/MacOS/VLC dvdsimple:///dev/disk1@1 --sout #standard{access=file,mux=ts,dst=dvdout.dvdsimple.vlc.mpg}&lt;br /&gt;
&lt;br /&gt;
== Further reading ==&lt;br /&gt;
&lt;br /&gt;
http://wiki.videolan.org/WindowsFAQ-1.1.x#Some_DVD_movies_don.27t_work_at_all_or_they_crash.2Ffreeze_to_menu_or_playback&lt;br /&gt;
&lt;br /&gt;
[http://handbrake.fr Handbrake] is a free user friendly open source tool for ripping DVD&#039;s.  Unfortunately it only transcodes from DVD to a file (not a raw rip), but it does it well.  It uses VLC by default for ripping if installed on OS X.  For windows users handbrake can use VLC&#039;s libdvdcss if you [https://forum.handbrake.fr/viewtopic.php?f=11&amp;amp;t=16670#p78021 install it].&lt;br /&gt;
&lt;br /&gt;
MakeMKV is also good for ripping a DVD or blu-ray to raw mpeg.  You can then convert it using handbrake or VLC.  VLC is not fine tuned for accurate ripping, though it does pretty well, these other tools may be better.&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Rip_a_DVD&amp;diff=19298</id>
		<title>VLC HowTo/Rip a DVD</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Rip_a_DVD&amp;diff=19298"/>
		<updated>2011-06-04T19:39:22Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is an example. You&#039;ll need to type this at the command prompt (windows) or terminal (linux), all on one line. You may also need to give the full path to vlc (ie, replace vlc with &amp;quot;C:\Program Files\VideoLAN\vlc\vlc.exe&amp;quot;, or wherever you installed vlc)&lt;br /&gt;
&lt;br /&gt;
This is how to rip the &amp;quot;raw mpg&amp;quot; from a DVD, assuming you want to rip your DVD&#039;s title &amp;quot;1&amp;quot; to filename dvdout.mpg&lt;br /&gt;
&lt;br /&gt;
    $ vlc dvdsimple://d:\@1 --sout &amp;quot;#standard{access=file,mux=ts,dst=dvdout.mpg}&amp;quot; vlc://quit&lt;br /&gt;
&lt;br /&gt;
the vlc://quit at the end just tells it to start, complete the rip, then exit.  You can also add a --qt-start-minimized to that, if desired.&lt;br /&gt;
&lt;br /&gt;
Note that the above doesn&#039;t do any transcoding on the video stream, it just basically dumps a verbatim copy to your hard drive.&lt;br /&gt;
&lt;br /&gt;
You may have some luck ripping the DVD from [http://www.howtogeek.com/howto/2696/how-to-rip-dvds-with-vlc the GUI], as well, though this is a bit tricky [1].  See also note at bottom.  Using the GUI may be easier for if you want to both rip and [transcode] simultaneously, as the above commands only do a raw copy.  NB that if you use the GUI you will need to name your output filename with the correct extension for your mux type or VLC will silently ignore your desire to convert, and just display the video instead.  Silently, mind you.  (If it is working right it won&#039;t show you a video by default).  You will also need to check the &#039;no DVD menus&#039; option, which instructs it to use dvdsimple:// instead of dvd:// which [http://forum.videolan.org/viewtopic.php?f=2&amp;amp;t=52748 loops back] to the main menu after playing the title.&lt;br /&gt;
&lt;br /&gt;
If it stops halfway through, cleaning your disc might help.  If it still fails half-way through, it may work better to use dvd:// (in the GUI, that&#039;s not check &#039;no DVD menus&#039;) instead of dvdsimple:// but this is probably not a good option as it never stops it loops back to the main menu forever so you will have to stop it manually by watching it.&lt;br /&gt;
&lt;br /&gt;
   $ vlc dvd://d:\@1 --sout &amp;quot;#standard{access=file,mux=ts,dst=dvdout.mpg}&amp;quot; vlc://quit&lt;br /&gt;
&lt;br /&gt;
It might also help to set the cacheing value either higher or to 0 (in the GUI: under advanced options).&lt;br /&gt;
&lt;br /&gt;
OS X&lt;br /&gt;
&lt;br /&gt;
  $ /Applications/VLC.app/Contents/MacOS/VLC dvdsimple:///dev/disk1@1 --sout #standard{access=file,mux=ts,dst=dvdout.dvdsimple.vlc.mpg}&lt;br /&gt;
&lt;br /&gt;
== Further reading ==&lt;br /&gt;
&lt;br /&gt;
http://wiki.videolan.org/WindowsFAQ-1.1.x#Some_DVD_movies_don.27t_work_at_all_or_they_crash.2Ffreeze_to_menu_or_playback&lt;br /&gt;
&lt;br /&gt;
[http://handbrake.fr Handbrake] is a free user friendly open source tool for ripping DVD&#039;s.  Unfortunately it only transcodes from DVD to a file (not a raw rip), but it does it well.  It uses VLC by default for ripping if installed on OS X.  For windows users handbrake can use VLC&#039;s libdvdcss if you [https://forum.handbrake.fr/viewtopic.php?f=11&amp;amp;t=16670#p78021 install it].&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Rip_a_DVD&amp;diff=19297</id>
		<title>VLC HowTo/Rip a DVD</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Rip_a_DVD&amp;diff=19297"/>
		<updated>2011-06-03T19:03:11Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: ok :P&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is an example. You&#039;ll need to type this at the command prompt (windows) or terminal (linux), all on one line. You may also need to give the full path to vlc (ie, replace vlc with &amp;quot;C:\Program Files\VideoLAN\vlc\vlc.exe&amp;quot;, or wherever you installed vlc)&lt;br /&gt;
&lt;br /&gt;
This is how to rip the &amp;quot;raw mpg&amp;quot; from a DVD, assuming you want to rip your DVD&#039;s title &amp;quot;1&amp;quot; to filename dvdout.mpg&lt;br /&gt;
&lt;br /&gt;
    $ vlc dvdsimple://d:\@1 --sout &amp;quot;#standard{access=file,mux=ts,dst=dvdout.mpg}&amp;quot; vlc://quit&lt;br /&gt;
&lt;br /&gt;
the vlc://quit at the end just tells it to start, complete the rip, then exit.  You can also add a --qt-start-minimized to that, if desired.&lt;br /&gt;
&lt;br /&gt;
Note that the above doesn&#039;t do any transcoding on the video stream, it just basically dumps a verbatim copy to your hard drive.&lt;br /&gt;
&lt;br /&gt;
You may have some luck ripping the DVD from [http://www.howtogeek.com/howto/2696/how-to-rip-dvds-with-vlc the GUI], as well, though this is a bit tricky [1].  See also note at bottom.  Using the GUI may be easier for if you want to both rip and [transcode] simultaneously, as the above commands only do a raw copy.  NB that if you use the GUI you will need to name your output filename with the correct extension for your mux type or VLC will silently ignore your desire to convert, and just display the video instead.  Silently, mind you.  (If it is working right it won&#039;t show you a video by default).  You will also need to check the &#039;no DVD menus&#039; option, which instructs it to use dvdsimple:// instead of dvd:// which [http://forum.videolan.org/viewtopic.php?f=2&amp;amp;t=52748 loops back] to the main menu after playing the title.&lt;br /&gt;
&lt;br /&gt;
If it stops halfway through, cleaning your disc might help.  If it still fails half-way through, it may work better to use dvd:// (in the GUI, that&#039;s not check &#039;no DVD menus&#039;) instead of dvdsimple:// but this is probably not a good option as it never stops it loops back to the main menu forever so you will have to stop it manually by watching it.&lt;br /&gt;
&lt;br /&gt;
   $ vlc dvd://d:\@1 --sout &amp;quot;#standard{access=file,mux=ts,dst=dvdout.mpg}&amp;quot; vlc://quit&lt;br /&gt;
&lt;br /&gt;
It might also help to set the cacheing value either higher or to 0 (in the GUI: under advanced options).&lt;br /&gt;
&lt;br /&gt;
== Further reading ==&lt;br /&gt;
&lt;br /&gt;
http://wiki.videolan.org/WindowsFAQ-1.1.x#Some_DVD_movies_don.27t_work_at_all_or_they_crash.2Ffreeze_to_menu_or_playback&lt;br /&gt;
&lt;br /&gt;
[http://handbrake.fr Handbrake] is a free user friendly open source tool for ripping DVD&#039;s.  Unfortunately it only transcodes from DVD to a file (not a raw rip), but it does it well.  It uses VLC by default for ripping if installed on OS X.  For windows users handbrake can use VLC&#039;s libdvdcss if you [https://forum.handbrake.fr/viewtopic.php?f=11&amp;amp;t=16670#p78021 install it].&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Transcode&amp;diff=19296</id>
		<title>Transcode</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Transcode&amp;diff=19296"/>
		<updated>2011-06-03T18:59:58Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: /* Completely non-interactive transcoding */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Transcoding is the process of taking a video file and changing it to a different format or bitrate.&lt;br /&gt;
&lt;br /&gt;
Transcoding in VLC copies the movie to a new file in a different format, so you end up with both the original and new files. This means you need to have enough space on your hard drive to store this extra file. You should also have a reasonably fast computer, as transcoding can be very slow.&lt;br /&gt;
&lt;br /&gt;
In VLC, transcoding is exactly the same as [[streaming]] accross a network, except that the output is sent to a file instead of a network.&lt;br /&gt;
&lt;br /&gt;
== Compatibility issues ==&lt;br /&gt;
&lt;br /&gt;
If your input streams already matches the encoding that you desire for your output stream, then you don&#039;t have to transcode at all (just leave out the transcode settings on the command line, and it will thence not transcode).  In the GUI this is called &amp;quot;keep the original track&amp;quot; (I think).&lt;br /&gt;
&lt;br /&gt;
Note that when you decide your transcoding settings, only some container formats (muxers) can support some codecs - look at [http://www.videolan.org/streaming/features.html streaming features] to see which supports what.  If your current format is incompatible with the muxer you desire, then you must transcode it to something compatible, or choose a different muxer.  If you choose an incompatible stream for a given muxer, it may silently fail.  You can look for error messages in the [[Basic_Troubleshooting|messages window]] to help you debug the failures.&lt;br /&gt;
&lt;br /&gt;
== Transcoding with the Wizard ==&lt;br /&gt;
&lt;br /&gt;
VLC includes a transcoding and streaming wizard. To transcode a file, just select the transcode option. You will then be asked what format to convert to: you can give a video [[codec]], an audio codec and a [[container]] format.  &lt;br /&gt;
&lt;br /&gt;
See also {{doc|http://www.videolan.org/doc/streaming-howto/en/ch02.html}}&lt;br /&gt;
&lt;br /&gt;
== Transcoding with the Command Prompt ==&lt;br /&gt;
&lt;br /&gt;
The most flexible way to transcode with vlc is using a [[command prompt]] to start vlc. Transcoding works the same as [[streaming]]. For example, the following command changes an [[asf]] file to an [[MPEG-2]] file: &lt;br /&gt;
:vlc &amp;quot;C:\Movies\Your File.asf&amp;quot; :sout=&#039;#transcode{vcodec=mp2v,vb=4096,acodec=mp2a,ab=192,scale=1,channels=2,deinterlace,audio-sync}:std{access=file, mux=ps,dst=&amp;quot;C:\Movies\Your File Output.ps.mpg&amp;quot;}&#039;&lt;br /&gt;
The access=file instructs vlc to store the output in a file (and not stream it), and the dst is the location of the new (output) file.&lt;br /&gt;
&lt;br /&gt;
* Note 1: If you are running VLC on [[Mac OS X]], you should use clivlc instead of VLC to avoid possible Bus error problems.&lt;br /&gt;
* Note 2: old VLC releases, maybe up to 0.8.6* included, use &amp;quot;url&amp;quot; instead of &amp;quot;dst&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Transcoding takes quite a while, so it&#039;s advisable to use an option like &#039;&#039;&#039;--stop-time=30&#039;&#039;&#039; to only encode the first 30 seconds - this means you can check the file has transcoded correctly, and that the output is of a suitable quality. (Note: On [[Mac OS X]] this trick doesn&#039;t seem to work. Just press ctrl-c after a while, VLC will properly write out the already transcoded segment)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The transcode statement can contain &#039;&#039;&#039;vcodec&#039;&#039;&#039; and &#039;&#039;&#039;vb&#039;&#039;&#039; to change the video codec and &#039;&#039;&#039;acodec&#039;&#039;&#039; and &#039;&#039;&#039;ab&#039;&#039;&#039; to change the audio codec. If vcodec is missing, the video codec will stay the same (same for acodec).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Common additional options to use are &#039;&#039;&#039;audio-sync&#039;&#039;&#039; (to make sure the audio is in sync correctly) and &#039;&#039;&#039;deinterlace&#039;&#039;&#039; (to increase quality slightly on interlaced video).&lt;br /&gt;
===Under MS Windows===&lt;br /&gt;
the syntax on windows is slightly different:&lt;br /&gt;
&lt;br /&gt;
:C:\Program Files\VideoLAN\VLC&amp;gt;vlc -vvv &amp;quot;D:\688497.flv&amp;quot; --sout=#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}:standard{access=file,mux=ts,dst=&amp;quot;D:\asd.mpg&amp;quot;}&lt;br /&gt;
(Note: old VLC releases, maybe up to 0.8.6* included, use &amp;quot;url&amp;quot; instead of &amp;quot;dst&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
(Note: due to command line parsing, at times, especially within single and double quote blocks, a backslash may have to be escaped by using a double backslash so that a filename would be D:\\path\\to\\file.mpg)&lt;br /&gt;
&lt;br /&gt;
===Completely non-interactive transcoding===&lt;br /&gt;
For completely non-interactive transcoding (such as the case necessary when running under [[Mac OS X]]), the above example could be rewritten as&lt;br /&gt;
:vlc -I dummy &amp;quot;C:\Movies\Your File.asf&amp;quot; :sout=&#039;#transcode{vcodec=mp2v,vb=4096,acodec=mp2a,ab=192,scale=1,channels=2,deinterlace,audio-sync}:std{access=file, mux=ps,dst=&amp;quot;C:\Movies\Your File Output.ps.mpg&amp;quot;}&#039; vlc://quit&lt;br /&gt;
The two extra options are&lt;br /&gt;
;-I dummy: Disables the graphical interface&lt;br /&gt;
;&amp;lt;nowiki&amp;gt;vlc://quit&amp;lt;/nowiki&amp;gt;: Quit VLC after transcoding&lt;br /&gt;
If transcoding from a DVD, it is also necessary to use the dvdsimple:// notation instead of the dvd:// notation, in order to avoid interacting with the DVD menu system. You can use this in the GUI by choosing &#039;no DVD menus&#039; option when opening the disc.  See [[Rip_DVD]]&lt;br /&gt;
&lt;br /&gt;
{{doc|http://www.videolan.org/doc/streaming-howto/en/ch03.html}}&lt;br /&gt;
&lt;br /&gt;
== Canvas and Padding ==&lt;br /&gt;
&#039;&#039;&#039;The canvas and padding options changed since Version 0.9. Most examples in the wiki are broken.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;transcode{vcodec=mp2v,vfilter=canvas{width=640,height=480}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Other options:&lt;br /&gt;
* aspect=4:3 : Aspect ratio&lt;br /&gt;
* padd: &lt;br /&gt;
** true: Pad with black bars &lt;br /&gt;
** false: crop video&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;transcode{vcodec=mp2v,vfilter=croppadd{cropttop=20,cropbottom=30,paddleft=100}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
crop or pad top, left, right or bottom in pixels.&lt;br /&gt;
&lt;br /&gt;
Avoid using width and hight parameters! These are apllied before the vfilter and might result in unwanted results.&lt;br /&gt;
&lt;br /&gt;
== Non-Interactive Batch Transcoding (Windows)==&lt;br /&gt;
=== Batch File ===&lt;br /&gt;
To transcode several files without user interaction create a batch file in the folder where the files are contained and this line to the batch file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for %%a in (*.FILE_EXT) do cmd /c &amp;quot;PATH_TO_VLC&amp;quot; -I dummy -vvv %%a --sout=#transcode{vcodec=VIDEO_CODEC,vb=VIDEO_BITRATE,scale=1,acodec=AUDIO_CODEC,ab=AUDIO_BITRATE,channels=6}:standard{access=file,mux=MUXER,dst=%%a.OUTPUT_EXT} vlc://quit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* note: if the line above creates &amp;quot;double file name extensions&amp;quot; like&amp;lt;tt&amp;gt; *.FILE_EXT.OUTPUT_EXT &amp;lt;/tt&amp;gt;(e.g.&amp;lt;tt&amp;gt; *.mp3.wav &amp;lt;/tt&amp;gt;when converting mp3 to wav), try:&lt;br /&gt;
&amp;lt;pre&amp;gt;... dst=OUTPUT_PATH\%%~na.OUTPUT_EXT ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;%%~na &amp;lt;/tt&amp;gt;is the file name of &amp;lt;tt&amp;gt;%%a&amp;lt;/tt&amp;gt; only without extension.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;Cmd /c &amp;lt;/tt&amp;gt;makes the script wait to finish transcoding before starting the next transcode.&lt;br /&gt;
&lt;br /&gt;
* Example: to convert all mp3-files in the current directory to standard uncompressed wav-files (PCM; may be suitable if you want to burn audio-cds and your player is unable to play *.mp3-files), type&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; for %%a in (*.mp3) do cmd /c &amp;quot;C:\Programme\VideoLAN\VLC\vlc.exe&amp;quot; -I dummy -vvv %%a --sout #transcode{acodec=s16l,channels=2,samplerate=44100}:standard{access=file,mux=wav,dst=g:\_audio_conv\%%a.wav} vlc://quit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== VB Script ===&lt;br /&gt;
An alternative method is to use VB Script. This example will transcode all files from one folder to another. It will also wait for each file to finish transcoding before starting the next. Create the script transcode.vbs, in the VLC installation folder, default &amp;quot;C:\Program Files\VideoLAN\VLC&amp;quot;. Change the strSource and strTarget in the example to match your requirements. Start a &amp;quot;DOS Box&amp;quot;, Start - Run - cmd then change to the VLC folder and run the script &amp;quot;cscript transcode.vbs&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
This example was tested on Microsoft Windows Script host 5.6 running on XP Pro SP2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&#039;&lt;br /&gt;
&#039; based on code from:http://episteme.arstechnica.com/eve/forums/a/tpc/f/12009443/m/516001349831&lt;br /&gt;
&#039;&lt;br /&gt;
&#039;&lt;br /&gt;
&#039;&lt;br /&gt;
Dim objFSO, objShell, strSource, strTarget, strOldName, strNewName&lt;br /&gt;
&#039;&lt;br /&gt;
set objFSO = CreateObject(&amp;quot;Scripting.FileSystemObject&amp;quot;)&lt;br /&gt;
&#039;&lt;br /&gt;
&#039; Set up starting folders&lt;br /&gt;
&#039;&lt;br /&gt;
strSource = &amp;quot;O:\&amp;quot;&lt;br /&gt;
strTarget = &amp;quot;N:\&amp;quot;&lt;br /&gt;
&#039;&lt;br /&gt;
call RecurseDir(strSource, strTarget)&lt;br /&gt;
&#039;&lt;br /&gt;
&#039; // Recursively copy all files and folders&lt;br /&gt;
&#039;&lt;br /&gt;
Sub RecurseDir(strSource, strTarget)&lt;br /&gt;
	wscript.echo &amp;quot;source: &amp;quot; &amp;amp; strSource &amp;amp; &amp;quot; target: &amp;quot;&amp;amp; strTarget&lt;br /&gt;
&#039;&lt;br /&gt;
	Dim strTempSource, strTempTarget&lt;br /&gt;
&#039;&lt;br /&gt;
	Set strTempSource = objFSO.GetFolder(strSource)&lt;br /&gt;
&#039;&lt;br /&gt;
	Wscript.Echo &amp;quot;Begin Value: &amp;quot; &amp;amp; strTarget&lt;br /&gt;
&#039;    &lt;br /&gt;
	If Not objFSO.FolderExists(strTarget) Then&lt;br /&gt;
&#039;        Wscript.Echo &amp;quot;No Folder! Creating folder [&amp;quot; &amp;amp; strTarget &amp;amp; &amp;quot;]&amp;quot;&lt;br /&gt;
		objFSO.CreateFolder(strTarget)&lt;br /&gt;
	Else&lt;br /&gt;
		Wscript.Echo &amp;quot;Folder exists! &amp;quot; &amp;amp; strTempTarget&lt;br /&gt;
	End If&lt;br /&gt;
&#039;&lt;br /&gt;
	Set strTempTarget = objFSO.GetFolder(strTarget)&lt;br /&gt;
&#039; ** Copy files from current directory to target&lt;br /&gt;
	For each file in strTempSource.files&lt;br /&gt;
		strOldName = strSource &amp;amp; &amp;quot;\&amp;quot; &amp;amp; file.name&lt;br /&gt;
		strNewName = strTempTarget &amp;amp; &amp;quot;\&amp;quot; &amp;amp; Mid(file.name, 1, InstrRev(file.name, &amp;quot;.&amp;quot;)) &amp;amp; &amp;quot;ts&amp;quot;&lt;br /&gt;
&#039;&lt;br /&gt;
		If Not objFSO.FileExists(strNewName) Then&lt;br /&gt;
			Set objShell = CreateObject(&amp;quot;WScript.Shell&amp;quot;)&lt;br /&gt;
&#039;&lt;br /&gt;
			Wscript.Echo &amp;quot;Transcoding file: &amp;quot; &amp;amp; strOldName &amp;amp; &amp;quot; to &amp;quot; &amp;amp; strNewName&lt;br /&gt;
&#039;		&lt;br /&gt;
			Select Case Right(strOldName, 3) &lt;br /&gt;
				Case &amp;quot;avi&amp;quot; &lt;br /&gt;
					wscript.echo &amp;quot;vlc file://&amp;quot;&amp;quot;&amp;quot; &amp;amp; strOldName &amp;amp; &amp;quot;&amp;quot;&amp;quot; :sout=#duplicate{dst=std{access=file,mux=ts,dst=&amp;quot;&amp;quot;&amp;quot; &amp;amp; strNewName &amp;amp; &amp;quot;&amp;quot;&amp;quot;}} vlc://quit&amp;quot;&lt;br /&gt;
					objShell.Run &amp;quot;vlc file://&amp;quot;&amp;quot;&amp;quot; &amp;amp; strOldName &amp;amp; &amp;quot;&amp;quot;&amp;quot; :sout=#duplicate{dst=std{access=file,mux=ts,dst=&amp;quot;&amp;quot;&amp;quot; &amp;amp; strNewName &amp;amp; &amp;quot;&amp;quot;&amp;quot;}} vlc://quit&amp;quot;, 1, True&lt;br /&gt;
				Case &amp;quot;mp4&amp;quot;&lt;br /&gt;
					wscript.echo &amp;quot;vlc file://&amp;quot;&amp;quot;&amp;quot; &amp;amp; strOldName &amp;amp; &amp;quot;&amp;quot;&amp;quot; :sout=#transcode{vcodec=mp2v,vb=1024,scale=1,acodec=mp2a,ab=192,channels=2}:duplicate{dst=std{access=file,mux=ts,dst=&amp;quot;&amp;quot;&amp;quot; &amp;amp; strNewName &amp;amp; &amp;quot;&amp;quot;&amp;quot;}} vlc://quit&amp;quot;&lt;br /&gt;
					objShell.Run &amp;quot;vlc file://&amp;quot;&amp;quot;&amp;quot; &amp;amp; strOldName &amp;amp; &amp;quot;&amp;quot;&amp;quot; :sout=#transcode{vcodec=mp2v,vb=1024,scale=1,acodec=mp2a,ab=192,channels=2}:duplicate{dst=std{access=file,mux=ts,dst=&amp;quot;&amp;quot;&amp;quot; &amp;amp; strNewName &amp;amp; &amp;quot;&amp;quot;&amp;quot;}} vlc://quit&amp;quot;, 1, True&lt;br /&gt;
			End Select &lt;br /&gt;
&#039;&lt;br /&gt;
			Set objShell = Nothing&lt;br /&gt;
		End If&lt;br /&gt;
	Next&lt;br /&gt;
&#039; ** For each subfolder of current dir, copy files to target and recurse its subdirs&lt;br /&gt;
	For each subdir in strTempSource.subfolders&lt;br /&gt;
	  Wscript.Echo subdir.path&lt;br /&gt;
  	call RecurseDir(subdir.path, strTempTarget &amp;amp; &amp;quot;\&amp;quot; &amp;amp; subdir.name)&lt;br /&gt;
	Next&lt;br /&gt;
End Sub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Non-Interactive Batch Transcoding (Linux)==&lt;br /&gt;
To transcode several files without user interaction create a bash script in the folder where the files are contained and add these lines to the bash script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
vcodec=&amp;quot;VIDEO_CODEC&amp;quot; &lt;br /&gt;
acodec=&amp;quot;AUDIO_CODEC&amp;quot; &lt;br /&gt;
bitrate=&amp;quot;VIDEO_BITRATE&amp;quot; &lt;br /&gt;
arate=&amp;quot;AUDIO_BITRATE&amp;quot; &lt;br /&gt;
ext=&amp;quot;OUTPUT_EXT&amp;quot; &lt;br /&gt;
mux=&amp;quot;MUXER&amp;quot; &lt;br /&gt;
vlc=&amp;quot;PATH_TO_VLC&amp;quot; &lt;br /&gt;
fmt=&amp;quot;INPUT_EXT&amp;quot; &lt;br /&gt;
&lt;br /&gt;
for a in *$fmt; do &lt;br /&gt;
$vlc -I dummy -vvv &amp;quot;$a&amp;quot; --sout &amp;quot;#transcode{vcodec=$vcodec,vb=$bitrate,acodec=$acodec,ab=$arate,channels=6}:standard{mux=$mux,dst=\&amp;quot;$a.$ext\&amp;quot;,access=file}&amp;quot; vlc://quit &lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Non-Interactive Merge/Transcode (Windows)===&lt;br /&gt;
&lt;br /&gt;
If you have more than one source files that need to be merged and transcoded resulting in a single out put file, see [[How_to_Merge_and_Transcode_Multiple_Videos]]&lt;br /&gt;
&lt;br /&gt;
===Example script===&lt;br /&gt;
&#039;&#039;&#039;The canvas and cropping must be adjusted for VLC versions newer then 0.9.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
As an example, here is a bash script that will take a &amp;lt;tt&amp;gt;.mpg&amp;lt;/tt&amp;gt; file as generated by an DVB capture device and transcode it into an MPEG4 file using the h.264 codec. Copy it to a file, for example &amp;lt;tt&amp;gt;dvb2mp4&amp;lt;/tt&amp;gt;, and make it executable. It should work on any operating system that has bash, including windows if [http://www.cygwin.com Cygwin] is installed. It uses the cropping parameters proposed at [[Wikipedia:Overscan_amounts]] adapted so that the dimensions are divisible by 16 for better encoding.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# Transcode DVB TV signals to h.264-encoded MP4 files using VLC&lt;br /&gt;
# Wout.Mertens@gmail.com&lt;br /&gt;
&lt;br /&gt;
#### Defaults, please edit for your settings ####&lt;br /&gt;
&lt;br /&gt;
# VLC location, here is the Mac OS X example&lt;br /&gt;
VLC=/Applications/VLC.app/Contents/MacOS/clivlc&lt;br /&gt;
# Other possibilities: (Remove the # to activate)&lt;br /&gt;
#VLC=/usr/bin/vlc&lt;br /&gt;
#VLC=/usr/local/bin/vlc&lt;br /&gt;
&lt;br /&gt;
# 16:9 or 4:3&lt;br /&gt;
aspect=16:9&lt;br /&gt;
&lt;br /&gt;
# PAL (Europe) or NTSC (US)&lt;br /&gt;
src=PAL&lt;br /&gt;
&lt;br /&gt;
# video bitrate&lt;br /&gt;
bitrate=1024&lt;br /&gt;
&lt;br /&gt;
# audio bitrate&lt;br /&gt;
arate=128&lt;br /&gt;
&lt;br /&gt;
# cropping?&lt;br /&gt;
crop=yes&lt;br /&gt;
&lt;br /&gt;
# Deinterlace?&lt;br /&gt;
deint=yes&lt;br /&gt;
&lt;br /&gt;
#### Program, do not change below this line ####&lt;br /&gt;
usage() {&lt;br /&gt;
	cat 1&amp;gt;&amp;amp;2 &amp;lt;&amp;lt;EOF&lt;br /&gt;
Usage: $0 [-swpncC] [-b &amp;lt;rate&amp;gt;] [-a &amp;lt;rate&amp;gt;] &amp;lt;DVB source .mpg&amp;gt; &amp;lt;MP4 output file&amp;gt;&lt;br /&gt;
	-s	4:3 aspect ratio (default=$aspect)&lt;br /&gt;
	-w	16:9 aspect ratio&lt;br /&gt;
	-p	PAL (720x576) input (default=$src)&lt;br /&gt;
	-n	NTSC (720x480) input&lt;br /&gt;
	-c	Crop borders (default=$crop)&lt;br /&gt;
	-C	Do not crop borders&lt;br /&gt;
	-d	Perform de-interlacing (default=$deint)&lt;br /&gt;
	-D	Do not perform de-interlacing&lt;br /&gt;
	-b	video bitrate kb/s (default=$bitrate)&lt;br /&gt;
	-a	audio bitrate kb/s (default=$arate)&lt;br /&gt;
EOF&lt;br /&gt;
	exit 1&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
error() {&lt;br /&gt;
	echo &amp;quot;ERROR: $*&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
	exit 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
while getopts &#039;swpncCb:a:h&#039; opt; do&lt;br /&gt;
	case $opt in&lt;br /&gt;
		s) aspect=4:3 ;;&lt;br /&gt;
		w) aspect=16:9 ;;&lt;br /&gt;
		p) src=PAL ;;&lt;br /&gt;
		n) src=NTSC ;;&lt;br /&gt;
		c) crop=yes ;;&lt;br /&gt;
		C) crop=no ;;&lt;br /&gt;
		d) deint=yes ;;&lt;br /&gt;
		D) deint=no ;;&lt;br /&gt;
		b) bitrate=$OPTARG ;;&lt;br /&gt;
		a) arate=$OPTARG ;;&lt;br /&gt;
		h) usage ;;&lt;br /&gt;
		*) echo &amp;quot;Unknown option $opt&amp;quot; 1&amp;gt;&amp;amp;2; usage ;;&lt;br /&gt;
	esac&lt;br /&gt;
done&lt;br /&gt;
shift $(( $OPTIND - 1 ))&lt;br /&gt;
&lt;br /&gt;
[ $# -ne 2 ] &amp;amp;&amp;amp; usage&lt;br /&gt;
&lt;br /&gt;
infile=&amp;quot;$1&amp;quot;&lt;br /&gt;
outfile=&amp;quot;$2&amp;quot;&lt;br /&gt;
case $outfile in&lt;br /&gt;
	*.mp4|*.MP4) : ;;&lt;br /&gt;
	*) outfile=&amp;quot;$outfile.mp4&amp;quot; ;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
[ -r &amp;quot;$infile&amp;quot; ] || error &amp;quot;Can&#039;t read from $infile&amp;quot;&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$src,$aspect,$crop&amp;quot; in&lt;br /&gt;
	PAL,16:9,yes) sizestr=&amp;quot;cropleft=31,cropright=31,croptop=16,cropbottom=16,width=960,height=544&amp;quot; ;;&lt;br /&gt;
	PAL,4:3,yes)  sizestr=&amp;quot;cropleft=31,cropright=31,croptop=16,cropbottom=16,width=720,height=544&amp;quot; ;;&lt;br /&gt;
	NTSC,16:9,yes) sizestr=&amp;quot;cropleft=30,cropright=30,croptop=17,cropbottom=17,width=800,height=448&amp;quot; ;;&lt;br /&gt;
	NTSC,4:3,yes) sizestr=&amp;quot;cropleft=26,cropright=26,croptop=17,cropbottom=17,width=608,height=448&amp;quot; ;;&lt;br /&gt;
	PAL,16:9,no) sizestr=&amp;quot;width=1024,height=576&amp;quot; ;;&lt;br /&gt;
	PAL,4:3,no) sizestr=&amp;quot;width=768,height=576&amp;quot; ;;&lt;br /&gt;
	NTSC,16:9,no) sizestr=&amp;quot;width=800,height=448&amp;quot; ;;&lt;br /&gt;
	NTSC,4:3,no) sizestr=&amp;quot;width=608,height=448&amp;quot; ;;&lt;br /&gt;
	*) error &amp;quot;Could not handle $src,$aspect,$crop. This shouldn&#039;t happen!&amp;quot; ;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$deint&amp;quot; = &amp;quot;yes&amp;quot; ]; then&lt;br /&gt;
	deintstr=&amp;quot;,deinterlace=enable&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
	deintstr=&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Let&#039;s do it&lt;br /&gt;
echo &amp;quot;Input file: $infile&amp;quot;&lt;br /&gt;
echo &amp;quot;Output file: $outfile&amp;quot;&lt;br /&gt;
echo &amp;quot;Encoding at $bitrate+$arate kb/s, input $src, $aspect, cropping $crop, de-interlace $deint&amp;quot;&lt;br /&gt;
echo&lt;br /&gt;
echo &#039;&amp;gt;&amp;gt;&amp;gt;&#039; $VLC -I dummy &amp;quot;$infile&amp;quot; --sout &amp;quot;#transcode{$sizestr$deintstr,vcodec=h264,vb=$bitrate,acodec=mp4a,ab=$arate}:standard{mux=mp4,dst=\&amp;quot;$outfile\&amp;quot;,access=file}&amp;quot; vlc://quit&lt;br /&gt;
echo&lt;br /&gt;
$VLC -I dummy &amp;quot;$infile&amp;quot; --sout &amp;quot;#transcode{$sizestr$deintstr,vcodec=h264,vb=$bitrate,acodec=mp4a,ab=$arate}:standard{mux=mp4,dst=\&amp;quot;$outfile\&amp;quot;,access=file}&amp;quot; vlc://quit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Glossary]]&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Rip_a_DVD&amp;diff=19295</id>
		<title>VLC HowTo/Rip a DVD</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Rip_a_DVD&amp;diff=19295"/>
		<updated>2011-06-03T18:59:33Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: GUI cleanup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is an example. You&#039;ll need to type this at the command prompt (windows) or terminal (linux), all on one line. You may also need to give the full path to vlc (ie, replace vlc with &amp;quot;C:\Program Files\VideoLAN\vlc\vlc.exe&amp;quot;, or wherever you installed vlc)&lt;br /&gt;
&lt;br /&gt;
This is how to rip the &amp;quot;raw mpg&amp;quot; from a DVD, assuming you want to rip your DVD&#039;s title &amp;quot;1&amp;quot; to filename dvdout.mpg&lt;br /&gt;
&lt;br /&gt;
    $ vlc dvdsimple://d:\@1 --sout &amp;quot;#standard{access=file,mux=ts,dst=dvdout.mpg}&amp;quot; vlc://quit&lt;br /&gt;
&lt;br /&gt;
the vlc://quit at the end just tells it to start, complete the rip, then exit.  You can also add a --qt-start-minimized to that, if desired.&lt;br /&gt;
&lt;br /&gt;
Note that the above doesn&#039;t do any transcoding on the video stream, it just basically dumps a verbatim copy to your hard drive.&lt;br /&gt;
&lt;br /&gt;
You may have some luck ripping the DVD from [http://www.howtogeek.com/howto/2696/how-to-rip-dvds-with-vlc the GUI], as well, though this is a bit tricky [1].  See also note at bottom.  Using the GUI may be easier for if you want to both rip and [transcode] simultaneously, as the above commands only do a raw copy.  NB that if you use the GUI you will need to name your output filename with the correct extension for your mux type or VLC will silently ignore your desire to convert, and just display the video instead.  Silently, mind you.  (If it is working right it won&#039;t show you a video by default).  You will also need to check the &#039;no DVD menus&#039; option, which instructs it to use dvdsimple:// instead of dvd:// which [http://forum.videolan.org/viewtopic.php?f=2&amp;amp;t=52748 loops back] to the main menu after playing the title.&lt;br /&gt;
&lt;br /&gt;
If it stops halfway through, cleaning your disc might help.  If it still fails half-way through, it may work better to use dvd:// (in the GUI, that&#039;s not check &#039;no DVD menus&#039;) instead of dvdsimple:// but it will loop back to the main menu forever so you will have to stop it manually.&lt;br /&gt;
&lt;br /&gt;
   $ vlc dvd://d:\@1 --sout &amp;quot;#standard{access=file,mux=ts,dst=dvdout.mpg}&amp;quot; vlc://quit&lt;br /&gt;
&lt;br /&gt;
It might also help to set the cacheing value either higher or to 0 (in the GUI: under advanced options).&lt;br /&gt;
&lt;br /&gt;
== Further reading ==&lt;br /&gt;
&lt;br /&gt;
http://wiki.videolan.org/WindowsFAQ-1.1.x#Some_DVD_movies_don.27t_work_at_all_or_they_crash.2Ffreeze_to_menu_or_playback&lt;br /&gt;
&lt;br /&gt;
[http://handbrake.fr Handbrake] is a free user friendly open source tool for ripping DVD&#039;s.  Unfortunately it only transcodes from DVD to a file (not a raw rip), but it does it well.  It uses VLC by default for ripping if installed on OS X.  For windows users handbrake can use VLC&#039;s libdvdcss if you [https://forum.handbrake.fr/viewtopic.php?f=11&amp;amp;t=16670#p78021 install it].&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo&amp;diff=19294</id>
		<title>VLC HowTo</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo&amp;diff=19294"/>
		<updated>2011-06-03T18:50:15Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
Below are some handy guides for using {{VLC}}&lt;br /&gt;
&lt;br /&gt;
===Playing Video and Audio===&lt;br /&gt;
;How to...&lt;br /&gt;
* [[What can vlc do#How to enable/use subtitles|Use Subtitles]]&lt;br /&gt;
*: Playing movies with subtitles&lt;br /&gt;
* [[How to Use a Capture Card|Use a Capture Card]]&lt;br /&gt;
*: This explains how to watch TV or get video from your capture card.&lt;br /&gt;
* [[What can vlc do#Play DVD/SVCD/VCD iso&#039;s / Images|Play DVDs and Disks from the image file]]&lt;br /&gt;
*: This explains how to use movies encoded onto an ISO file.&lt;br /&gt;
&lt;br /&gt;
===Adjusting Settings===&lt;br /&gt;
;How to...&lt;br /&gt;
* [[What can vlc do#How to adjust picture brightness/colors/contrast..|Adjust Picture Brightness and Contrast]]&lt;br /&gt;
* [[What can vlc do#How to control the aspect ratio of the video|Edit the Aspect Ratio of a video]]&lt;br /&gt;
* [[Crop|Crop video]]&lt;br /&gt;
* [[How_to_disable_acceleration_in_Win32|Disable video acceleration in Win32]]&lt;br /&gt;
* [[How_to_save_bookmarks | Save bookmarks]]&lt;br /&gt;
* [[How_to_play_multiple_instances_of_VLC | How to play multiple instances]]&lt;br /&gt;
&lt;br /&gt;
===Remote Control for VLC===&lt;br /&gt;
;How to...&lt;br /&gt;
* [[Control VLC via a browser]]&lt;br /&gt;
*: This explains how to use the HTTP [[interface]]&lt;br /&gt;
* [[Control VLC via a widget]] on the Mac desktop&lt;br /&gt;
* [[Control VLC from an iPhone]]&lt;br /&gt;
* [[Control VLC from an Android Phone]]&lt;br /&gt;
* [[Control VLC from a Palm Web OS Phone]]&lt;br /&gt;
* [[How to Use Creative Remote]]&lt;br /&gt;
*: Explains how to control {{VLC}} with Creative brand remote controls&lt;br /&gt;
&lt;br /&gt;
===Transcoding and Streaming===&lt;br /&gt;
;How to...&lt;br /&gt;
* [[iPod Video Conversion Guide|Play videos on your iPod]]&lt;br /&gt;
*: This explains how to convert your videos so they play on your iPod.&lt;br /&gt;
* [[Play_on_Yan Micro|Play videos on your Play-Yan Micro]]&lt;br /&gt;
*: This explains how to convert your videos so they play on your Play-Yan Micro.&lt;br /&gt;
* [[Play_on_Xbox|Play videos on your XBox and XBox 360 ]]&lt;br /&gt;
*: This explains how to convert your videos so they play on your XBox.&lt;br /&gt;
* [[Play_on_Zune| Play video on your Zune]]&lt;br /&gt;
*: This explains how to convert your videos so they play on your Zune.&lt;br /&gt;
* [[Fixing .flv to .avi with Ffmpeg]]&lt;br /&gt;
*: This explains how to use ffmpeg to a convert broken .flv files to a perfectly good .avi file &#039;&#039;&#039;DEPRECATED&#039;&#039;&#039;&lt;br /&gt;
* [[Transcode_WM_to_Mov_or_MP4|Convert Windows Media audio/video files to MOV or .MP4]]&lt;br /&gt;
*: This explains how to convert Windows Media-encoded files to Quicktime or MPEG-4 files&lt;br /&gt;
* [[Streaming_to_ActiveX_for_Windows_Media_Player | Streaming from a webcam to an ActiveX embedded object page]]&lt;br /&gt;
* [[How_to_add_logo | Add a logo on your videos]]&lt;br /&gt;
* [[Mosaic| Create a Mosaic]]&lt;br /&gt;
*: This explains how to set up a mosaic from a few streams like a TV portal.&lt;br /&gt;
* [[How to DBox|Set up Video on Demand on a Dreambox]]&lt;br /&gt;
* [[How to Batch Encode]]&lt;br /&gt;
*: This explains how to set up a batch transcode with all files in a directory of a certain file extension being transcoded to a specified format.&lt;br /&gt;
* [[Transcode]]&lt;br /&gt;
*: This explains converting (transcoding) a file.&lt;br /&gt;
* [[How to merge and transcode multiple videos]]&lt;br /&gt;
*: This explains how to take several source videos and merge then transcode resulting in a single file output.&lt;br /&gt;
* [[Extract Audio From File]]&lt;br /&gt;
*: This explains how to extract the audio track from a file.&lt;br /&gt;
* [[Extract_audio]]&lt;br /&gt;
*: This explains how to extract the audio track from a DVD.&lt;br /&gt;
* [[Rip DVD]] &lt;br /&gt;
*: This explains how to rip a DVD using VLC&lt;br /&gt;
&lt;br /&gt;
===Using VLC in other Applications===&lt;br /&gt;
;How to...&lt;br /&gt;
* [[ActiveX]]&lt;br /&gt;
*: Specification for ActiveX control&lt;br /&gt;
* [[LibVLC|Use VLC&#039;s External API]]&lt;br /&gt;
*: Information for using libvlc&lt;br /&gt;
* [[Use in Media Center]]&lt;br /&gt;
* [[Useful Firefox Extensions]]&lt;br /&gt;
*: Information about extensions to view embedded videos in web pages using VLC&lt;br /&gt;
* [[GWT]]&lt;br /&gt;
*: Google WebToolkit&lt;br /&gt;
&lt;br /&gt;
===Other Stuff===&lt;br /&gt;
;How to...&lt;br /&gt;
* [[How to Create a DVD|Create a DVD]]&lt;br /&gt;
*: This explains how to make a DVD from your home videos&lt;br /&gt;
* [[ActiveX/Delphi|Use the ActiveX control with Borland&#039;s Delphi]]&lt;br /&gt;
*: Using the VLC ActiveX plug-in in your programs&lt;br /&gt;
* [[ActiveX/HTML|Use the ActiveX control within a webpage.]]&lt;br /&gt;
* [[HowTo_Integrate_VLC_plugin_in_your_webpage|Integrate ActiveX/Mozilla on your webpage]]&lt;br /&gt;
* [[Change the brightness or contrast of a video|Change a video]]&lt;br /&gt;
*: This explains how to edit a video and save the changes&lt;br /&gt;
* [[How to create thumbnails]]&lt;br /&gt;
* [[How to Use Lirc]]&lt;br /&gt;
* [[How to shut down computer]] when VLC playback is over...&lt;br /&gt;
* [[How to make VLC the default player]]&lt;br /&gt;
* [[How to use VLC for transcription in linux]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* &#039;&#039;&#039;See also [[:Category:How To]]&#039;&#039;&#039;&lt;br /&gt;
[[Category:How To]]&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Rip_a_DVD&amp;diff=19293</id>
		<title>VLC HowTo/Rip a DVD</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Rip_a_DVD&amp;diff=19293"/>
		<updated>2011-06-03T18:15:48Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is an example. You&#039;ll need to type this at the command prompt (windows) or terminal (linux), all on one line. You may also need to give the full path to vlc (ie, replace vlc with &amp;quot;C:\Program Files\VideoLAN\vlc\vlc.exe&amp;quot;, or wherever you installed vlc)&lt;br /&gt;
&lt;br /&gt;
This is how to rip the &amp;quot;raw mpg&amp;quot; from a DVD, assuming you want to rip your DVD&#039;s title &amp;quot;1&amp;quot; to filename dvdout.mpg&lt;br /&gt;
&lt;br /&gt;
    $ vlc dvdsimple://d:\@1 --sout &amp;quot;#standard{access=file,mux=ts,dst=dvdout.mpg}&amp;quot; vlc://quit&lt;br /&gt;
&lt;br /&gt;
the vlc://quit at the end just tells it to start, complete the rip, then exit.  You can also add a --qt-start-minimized to that, if desired.&lt;br /&gt;
&lt;br /&gt;
Note that the above doesn&#039;t do any transcoding on the video stream, it just basically dumps a verbatim copy to your hard drive.&lt;br /&gt;
&lt;br /&gt;
You may have some luck ripping the DVD from [http://www.howtogeek.com/howto/2696/how-to-rip-dvds-with-vlc the GUI], as well, though this is a bit tricky [1].  Using the GUI may be easier for if you want to rip and transcode it to something else at the same time, as the above is just a raw copy.  Sometimes the GUI seems to have bugs.&lt;br /&gt;
&lt;br /&gt;
If it doesn&#039;t work, it may work better to use dvd:// instead of dvdsimple://&lt;br /&gt;
&lt;br /&gt;
   $ vlc dvd://d:\@1 --sout &amp;quot;#standard{access=file,mux=ts,dst=dvdout.mpg}&amp;quot; vlc://quit&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
http://wiki.videolan.org/WindowsFAQ-1.1.x#Some_DVD_movies_don.27t_work_at_all_or_they_crash.2Ffreeze_to_menu_or_playback&lt;br /&gt;
&lt;br /&gt;
[http://handbrake.fr Handbrake] is a free user friendly open source tool for ripping DVD&#039;s.  Unfortunately it only transcodes from DVD to a file (not a raw rip), but it does it well.  It uses VLC by default for ripping if installed on OS X.  For windows users handbrake can use VLC&#039;s libdvdcss if you [https://forum.handbrake.fr/viewtopic.php?f=11&amp;amp;t=16670#p78021 install it].&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Rip_a_DVD&amp;diff=19292</id>
		<title>VLC HowTo/Rip a DVD</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Rip_a_DVD&amp;diff=19292"/>
		<updated>2011-06-03T18:04:08Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is an example. You&#039;ll need to type this at the command prompt (windows) or terminal (linux), all on one line. You may also need to give the full path to vlc (ie, replace vlc with &amp;quot;C:\Program Files\VideoLAN\vlc\vlc.exe&amp;quot;, or wherever you installed vlc)&lt;br /&gt;
&lt;br /&gt;
This is how to rip the &amp;quot;raw mpg&amp;quot; from a DVD, assuming you want to rip your DVD&#039;s title &amp;quot;1&amp;quot; to filename dvdout.mpg&lt;br /&gt;
&lt;br /&gt;
    $ vlc dvdsimple://d:\@1 --sout &amp;quot;#standard{access=file,mux=ts,dst=dvdout.mpg}&amp;quot; vlc://quit&lt;br /&gt;
&lt;br /&gt;
the vlc://quit at the end just tells it to start, complete the rip, then exit.  You can also add a --qt-start-minimized to that, if desired.&lt;br /&gt;
&lt;br /&gt;
Note that the above doesn&#039;t do any transcoding on the video stream, it just basically dumps a verbatim copy to your hard drive.&lt;br /&gt;
&lt;br /&gt;
You may have some luck ripping the DVD from the GUI, as well, though this is a bit tricky [1].  Using the GUI may be easier for if you want to rip and transcode it to something else at the same time, as the above is just a raw copy.&lt;br /&gt;
&lt;br /&gt;
If it doesn&#039;t work, it may work better to use dvd:// instead of dvdsimple://&lt;br /&gt;
&lt;br /&gt;
   $ vlc dvd://d:\@1 --sout &amp;quot;#standard{access=file,mux=ts,dst=dvdout.mpg}&amp;quot; vlc://quit&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
http://wiki.videolan.org/WindowsFAQ-1.1.x#Some_DVD_movies_don.27t_work_at_all_or_they_crash.2Ffreeze_to_menu_or_playback&lt;br /&gt;
&lt;br /&gt;
[1] http://www.howtogeek.com/howto/2696/how-to-rip-dvds-with-vlc GUI rip howto&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Rip_a_DVD&amp;diff=19291</id>
		<title>VLC HowTo/Rip a DVD</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Rip_a_DVD&amp;diff=19291"/>
		<updated>2011-06-03T18:02:17Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: initial commit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is an example. You&#039;ll need to type this at the command prompt (windows) or terminal (linux), all on one line. You may also need to give the full path to vlc (ie, replace vlc with &amp;quot;C:\Program Files\VideoLAN\vlc\vlc.exe&amp;quot;, or wherever you installed vlc)&lt;br /&gt;
&lt;br /&gt;
This is how to rip the &amp;quot;raw mpg&amp;quot; from a DVD, assuming you want to rip your DVD&#039;s title &amp;quot;1&amp;quot; to filename dvdout.mpg&lt;br /&gt;
&lt;br /&gt;
   $ vlc dvdsimple://d:\@1 --sout &amp;quot;#standard{access=file,mux=ts,dst=dvdout.mpg}&amp;quot; vlc://quit&lt;br /&gt;
&lt;br /&gt;
the vlc://quit at the end just tells it to start, complete the rip, then exit.  You can also add a --qt-start-minimized to that, if desired.&lt;br /&gt;
&lt;br /&gt;
Note that the above doesn&#039;t do any transcoding on the video stream, it just basically dumps a verbatim copy to your hard drive.&lt;br /&gt;
&lt;br /&gt;
You may have some luck ripping the DVD from the GUI, as well, though this is a bit tricky &amp;lt;ref&amp;gt;http://www.howtogeek.com/howto/2696/how-to-rip-dvds-with-vlc/&amp;lt;/ref&amp;gt;.  Using the GUI may be easier for if you want to rip and transcode it to something else at the same time, as the above is just a raw copy.&lt;br /&gt;
&lt;br /&gt;
If it doesn&#039;t work, it may work better to use dvd://&lt;br /&gt;
&lt;br /&gt;
   $ vlc dvd://d:\@1 --sout &amp;quot;#standard{access=file,mux=ts,dst=dvdout.mpg}&amp;quot; vlc://quit&lt;br /&gt;
&lt;br /&gt;
Though dvdsimple seems to work better for me [1]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
http://wiki.videolan.org/WindowsFAQ-1.1.x#Some_DVD_movies_don.27t_work_at_all_or_they_crash.2Ffreeze_to_menu_or_playback&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo&amp;diff=19288</id>
		<title>VLC HowTo</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo&amp;diff=19288"/>
		<updated>2011-06-03T17:52:04Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: /* Transcoding and Streaming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
Below are some handy guides for using {{VLC}}&lt;br /&gt;
&lt;br /&gt;
===Playing Video and Audio===&lt;br /&gt;
;How to...&lt;br /&gt;
* [[What can vlc do#How to enable/use subtitles|Use Subtitles]]&lt;br /&gt;
*: Playing movies with subtitles&lt;br /&gt;
* [[How to Use a Capture Card|Use a Capture Card]]&lt;br /&gt;
*: This explains how to watch TV or get video from your capture card.&lt;br /&gt;
* [[What can vlc do#Play DVD/SVCD/VCD iso&#039;s / Images|Play DVDs and Disks from the image file]]&lt;br /&gt;
*: This explains how to use movies encoded onto an ISO file.&lt;br /&gt;
&lt;br /&gt;
===Adjusting Settings===&lt;br /&gt;
;How to...&lt;br /&gt;
* [[What can vlc do#How to adjust picture brightness/colors/contrast..|Adjust Picture Brightness and Contrast]]&lt;br /&gt;
* [[What can vlc do#How to control the aspect ratio of the video|Edit the Aspect Ratio of a video]]&lt;br /&gt;
* [[Crop|Crop video]]&lt;br /&gt;
* [[How_to_disable_acceleration_in_Win32|Disable video acceleration in Win32]]&lt;br /&gt;
* [[How_to_save_bookmarks | Save bookmarks]]&lt;br /&gt;
* [[How_to_play_multiple_instances_of_VLC | How to play multiple instances]]&lt;br /&gt;
&lt;br /&gt;
===Remote Control for VLC===&lt;br /&gt;
;How to...&lt;br /&gt;
* [[Control VLC via a browser]]&lt;br /&gt;
*: This explains how to use the HTTP [[interface]]&lt;br /&gt;
* [[Control VLC via a widget]] on the Mac desktop&lt;br /&gt;
* [[Control VLC from an iPhone]]&lt;br /&gt;
* [[Control VLC from an Android Phone]]&lt;br /&gt;
* [[Control VLC from a Palm Web OS Phone]]&lt;br /&gt;
* [[How to Use Creative Remote]]&lt;br /&gt;
*: Explains how to control {{VLC}} with Creative brand remote controls&lt;br /&gt;
&lt;br /&gt;
===Transcoding and Streaming===&lt;br /&gt;
;How to...&lt;br /&gt;
* [[iPod Video Conversion Guide|Play videos on your iPod]]&lt;br /&gt;
*: This explains how to convert your videos so they play on your iPod.&lt;br /&gt;
* [[Play_on_Yan Micro|Play videos on your Play-Yan Micro]]&lt;br /&gt;
*: This explains how to convert your videos so they play on your Play-Yan Micro.&lt;br /&gt;
* [[Play_on_Xbox|Play videos on your XBox and XBox 360 ]]&lt;br /&gt;
*: This explains how to convert your videos so they play on your XBox.&lt;br /&gt;
* [[Play_on_Zune| Play video on your Zune]]&lt;br /&gt;
*: This explains how to convert your videos so they play on your Zune.&lt;br /&gt;
* [[Fixing .flv to .avi with Ffmpeg]]&lt;br /&gt;
*: This explains how to use ffmpeg to a convert broken .flv files to a perfectly good .avi file &#039;&#039;&#039;DEPRECATED&#039;&#039;&#039;&lt;br /&gt;
* [[Transcode_WM_to_Mov_or_MP4|Convert Windows Media audio/video files to MOV or .MP4]]&lt;br /&gt;
*: This explains how to convert Windows Media-encoded files to Quicktime or MPEG-4 files&lt;br /&gt;
* [[Streaming_to_ActiveX_for_Windows_Media_Player | Streaming from a webcam to an ActiveX embedded object page]]&lt;br /&gt;
* [[How_to_add_logo | Add a logo on your videos]]&lt;br /&gt;
* [[Mosaic| Create a Mosaic]]&lt;br /&gt;
*: This explains how to set up a mosaic from a few streams like a TV portal.&lt;br /&gt;
* [[How to DBox|Set up Video on Demand on a Dreambox]]&lt;br /&gt;
* [[How to Batch Encode]]&lt;br /&gt;
*: This explains how to set up a batch transcode with all files in a directory of a certain file extension being transcoded to a specified format.&lt;br /&gt;
* [[How to merge and transcode multiple videos]]&lt;br /&gt;
*: This explains how to take several source videos and merge then transcode resulting in a single file output.&lt;br /&gt;
* [[Extract Audio From File]]&lt;br /&gt;
*: This explains how to extract the audio track from a file.&lt;br /&gt;
* [[Extract_audio]]&lt;br /&gt;
*: This explains how to extract the audio track from a DVD.&lt;br /&gt;
* [[Rip DVD]] &lt;br /&gt;
*: This explains how to rip a DVD using VLC&lt;br /&gt;
&lt;br /&gt;
===Using VLC in other Applications===&lt;br /&gt;
;How to...&lt;br /&gt;
* [[ActiveX]]&lt;br /&gt;
*: Specification for ActiveX control&lt;br /&gt;
* [[LibVLC|Use VLC&#039;s External API]]&lt;br /&gt;
*: Information for using libvlc&lt;br /&gt;
* [[Use in Media Center]]&lt;br /&gt;
* [[Useful Firefox Extensions]]&lt;br /&gt;
*: Information about extensions to view embedded videos in web pages using VLC&lt;br /&gt;
* [[GWT]]&lt;br /&gt;
*: Google WebToolkit&lt;br /&gt;
&lt;br /&gt;
===Other Stuff===&lt;br /&gt;
;How to...&lt;br /&gt;
* [[How to Create a DVD|Create a DVD]]&lt;br /&gt;
*: This explains how to make a DVD from your home videos&lt;br /&gt;
* [[ActiveX/Delphi|Use the ActiveX control with Borland&#039;s Delphi]]&lt;br /&gt;
*: Using the VLC ActiveX plug-in in your programs&lt;br /&gt;
* [[ActiveX/HTML|Use the ActiveX control within a webpage.]]&lt;br /&gt;
* [[HowTo_Integrate_VLC_plugin_in_your_webpage|Integrate ActiveX/Mozilla on your webpage]]&lt;br /&gt;
* [[Change the brightness or contrast of a video|Change a video]]&lt;br /&gt;
*: This explains how to edit a video and save the changes&lt;br /&gt;
* [[How to create thumbnails]]&lt;br /&gt;
* [[How to Use Lirc]]&lt;br /&gt;
* [[How to shut down computer]] when VLC playback is over...&lt;br /&gt;
* [[How to make VLC the default player]]&lt;br /&gt;
* [[How to use VLC for transcription in linux]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* &#039;&#039;&#039;See also [[:Category:How To]]&#039;&#039;&#039;&lt;br /&gt;
[[Category:How To]]&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo&amp;diff=19287</id>
		<title>VLC HowTo</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo&amp;diff=19287"/>
		<updated>2011-06-03T17:51:36Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: /* Transcoding and Streaming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
Below are some handy guides for using {{VLC}}&lt;br /&gt;
&lt;br /&gt;
===Playing Video and Audio===&lt;br /&gt;
;How to...&lt;br /&gt;
* [[What can vlc do#How to enable/use subtitles|Use Subtitles]]&lt;br /&gt;
*: Playing movies with subtitles&lt;br /&gt;
* [[How to Use a Capture Card|Use a Capture Card]]&lt;br /&gt;
*: This explains how to watch TV or get video from your capture card.&lt;br /&gt;
* [[What can vlc do#Play DVD/SVCD/VCD iso&#039;s / Images|Play DVDs and Disks from the image file]]&lt;br /&gt;
*: This explains how to use movies encoded onto an ISO file.&lt;br /&gt;
&lt;br /&gt;
===Adjusting Settings===&lt;br /&gt;
;How to...&lt;br /&gt;
* [[What can vlc do#How to adjust picture brightness/colors/contrast..|Adjust Picture Brightness and Contrast]]&lt;br /&gt;
* [[What can vlc do#How to control the aspect ratio of the video|Edit the Aspect Ratio of a video]]&lt;br /&gt;
* [[Crop|Crop video]]&lt;br /&gt;
* [[How_to_disable_acceleration_in_Win32|Disable video acceleration in Win32]]&lt;br /&gt;
* [[How_to_save_bookmarks | Save bookmarks]]&lt;br /&gt;
* [[How_to_play_multiple_instances_of_VLC | How to play multiple instances]]&lt;br /&gt;
&lt;br /&gt;
===Remote Control for VLC===&lt;br /&gt;
;How to...&lt;br /&gt;
* [[Control VLC via a browser]]&lt;br /&gt;
*: This explains how to use the HTTP [[interface]]&lt;br /&gt;
* [[Control VLC via a widget]] on the Mac desktop&lt;br /&gt;
* [[Control VLC from an iPhone]]&lt;br /&gt;
* [[Control VLC from an Android Phone]]&lt;br /&gt;
* [[Control VLC from a Palm Web OS Phone]]&lt;br /&gt;
* [[How to Use Creative Remote]]&lt;br /&gt;
*: Explains how to control {{VLC}} with Creative brand remote controls&lt;br /&gt;
&lt;br /&gt;
===Transcoding and Streaming===&lt;br /&gt;
;How to...&lt;br /&gt;
* [[iPod Video Conversion Guide|Play videos on your iPod]]&lt;br /&gt;
*: This explains how to convert your videos so they play on your iPod.&lt;br /&gt;
* [[Play_on_Yan Micro|Play videos on your Play-Yan Micro]]&lt;br /&gt;
*: This explains how to convert your videos so they play on your Play-Yan Micro.&lt;br /&gt;
* [[Play_on_Xbox|Play videos on your XBox and XBox 360 ]]&lt;br /&gt;
*: This explains how to convert your videos so they play on your XBox.&lt;br /&gt;
* [[Play_on_Zune| Play video on your Zune]]&lt;br /&gt;
*: This explains how to convert your videos so they play on your Zune.&lt;br /&gt;
* [[Fixing .flv to .avi with Ffmpeg]]&lt;br /&gt;
*: This explains how to use ffmpeg to a convert broken .flv files to a perfectly good .avi file &#039;&#039;&#039;DEPRECATED&#039;&#039;&#039;&lt;br /&gt;
* [[Transcode_WM_to_Mov_or_MP4|Convert Windows Media audio/video files to MOV or .MP4]]&lt;br /&gt;
*: This explains how to convert Windows Media-encoded files to Quicktime or MPEG-4 files&lt;br /&gt;
* [[Streaming_to_ActiveX_for_Windows_Media_Player | Streaming from a webcam to an ActiveX embedded object page]]&lt;br /&gt;
* [[How_to_add_logo | Add a logo on your videos]]&lt;br /&gt;
* [[Mosaic| Create a Mosaic]]&lt;br /&gt;
*: This explains how to set up a mosaic from a few streams like a TV portal.&lt;br /&gt;
* [[How to DBox|Set up Video on Demand on a Dreambox]]&lt;br /&gt;
* [[How to Batch Encode]]&lt;br /&gt;
*: This explains how to set up a batch transcode with all files in a directory of a certain file extension being transcoded to a specified format.&lt;br /&gt;
* [[How to merge and transcode multiple videos]]&lt;br /&gt;
*: This explains how to take several source videos and merge then transcode resulting in a single file output.&lt;br /&gt;
* [[Extract Audio From File]]&lt;br /&gt;
*: This explains how to extract the audio track from a file.&lt;br /&gt;
* [[Extract_audio]]&lt;br /&gt;
*: This explains how to extract the audio track from a DVD.&lt;br /&gt;
* [[rip_dvd]] &lt;br /&gt;
*: This explains how to rip a DVD using VLC&lt;br /&gt;
&lt;br /&gt;
===Using VLC in other Applications===&lt;br /&gt;
;How to...&lt;br /&gt;
* [[ActiveX]]&lt;br /&gt;
*: Specification for ActiveX control&lt;br /&gt;
* [[LibVLC|Use VLC&#039;s External API]]&lt;br /&gt;
*: Information for using libvlc&lt;br /&gt;
* [[Use in Media Center]]&lt;br /&gt;
* [[Useful Firefox Extensions]]&lt;br /&gt;
*: Information about extensions to view embedded videos in web pages using VLC&lt;br /&gt;
* [[GWT]]&lt;br /&gt;
*: Google WebToolkit&lt;br /&gt;
&lt;br /&gt;
===Other Stuff===&lt;br /&gt;
;How to...&lt;br /&gt;
* [[How to Create a DVD|Create a DVD]]&lt;br /&gt;
*: This explains how to make a DVD from your home videos&lt;br /&gt;
* [[ActiveX/Delphi|Use the ActiveX control with Borland&#039;s Delphi]]&lt;br /&gt;
*: Using the VLC ActiveX plug-in in your programs&lt;br /&gt;
* [[ActiveX/HTML|Use the ActiveX control within a webpage.]]&lt;br /&gt;
* [[HowTo_Integrate_VLC_plugin_in_your_webpage|Integrate ActiveX/Mozilla on your webpage]]&lt;br /&gt;
* [[Change the brightness or contrast of a video|Change a video]]&lt;br /&gt;
*: This explains how to edit a video and save the changes&lt;br /&gt;
* [[How to create thumbnails]]&lt;br /&gt;
* [[How to Use Lirc]]&lt;br /&gt;
* [[How to shut down computer]] when VLC playback is over...&lt;br /&gt;
* [[How to make VLC the default player]]&lt;br /&gt;
* [[How to use VLC for transcription in linux]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* &#039;&#039;&#039;See also [[:Category:How To]]&#039;&#039;&#039;&lt;br /&gt;
[[Category:How To]]&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Python_bindings&amp;diff=19043</id>
		<title>Python bindings</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Python_bindings&amp;diff=19043"/>
		<updated>2011-05-04T19:55:03Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Python bindings =&lt;br /&gt;
&lt;br /&gt;
You can find two versions of python bindings: a up-to-date one, which is ctypes-based and is automatically generated.&lt;br /&gt;
You can also find an old one (see [[Old Python bindings]]), hand-written C-module, and deprecated. It will be removed in some future version.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
The new module features :&lt;br /&gt;
* a complete cover of the libvlc API, since it is automatically generated from the include files.&lt;br /&gt;
* no compilation hassle: the generated module is pure python.&lt;br /&gt;
* no versioning hassle: the same module works with multiple VLC versions.&lt;br /&gt;
* a [http://www.advene.org/download/python-ctypes/doc/ complete documentation].&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
You can download the [http://git.videolan.org/?p=vlc/bindings/python.git;a=tree;f=generated;b=HEAD vlc.py] module from the Git repository. It only depends on ctypes (standard module in python &amp;gt;= 2.5). Put the module in some place accessible by python (either next to your application, or in a directory from sys.path).&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can generate it by yourself using the generate.py program and accompanying files in the vlc source tree (see [http://git.videolan.org/?p=vlc/bindings/python.git;a=tree]).&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
The vlc.py file also contains a runnable example player application (see code at the end of the file, starting from the line &amp;quot;if __name__ == &#039;__main__&#039;). &lt;br /&gt;
&lt;br /&gt;
A set of helper examples [http://git.videolan.org/?p=vlc/bindings/python.git;a=tree;f=examples;hb=HEAD examples] provide a pyGtk, a pyQt and a pyWx player to ease integration.&lt;br /&gt;
&lt;br /&gt;
There is also a [http://git.videolan.org/?p=vlc/bindings/python.git;a=blob;f=README README]&lt;br /&gt;
&lt;br /&gt;
== Projects using this binding ==&lt;br /&gt;
&lt;br /&gt;
http://code.google.com/p/movie-content-editor/ See also [[LibVLC_Users]]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
===  Win32 initialization === &lt;br /&gt;
&lt;br /&gt;
If the vlc modules are not installed in their standard location (e.g. c:\\Program Files\\Videolan on Windows, or /usr/lib/vlc on linux), the VLC module cannot find them.  Add the location of libvlc.dll to your PATH first.&lt;br /&gt;
&lt;br /&gt;
When instanciating vlc.Instance() with no parameter, it tries to guess the location of the modules. However, if you pass any argument to vlc.Instance(), you will need to supply the appropriate &amp;quot;--plugin-path=/path/to/the/modules&amp;quot; yourself.&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=LibVLC_Tutorial&amp;diff=19017</id>
		<title>LibVLC Tutorial</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=LibVLC_Tutorial&amp;diff=19017"/>
		<updated>2011-05-02T19:07:24Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: /* LibVLC C Tutorial */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== LibVLC C Tutorial ==&lt;br /&gt;
&lt;br /&gt;
=== Installing the SDK ===&lt;br /&gt;
This code is written for [[LibVLC]] version 1.1.0 or later. It &#039;&#039;&#039;cannot&#039;&#039;&#039; be compiled with older versions.&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
VLC binary installers for Windows do not include the LibVLC SDK. It would be a waste of bandwidth and space for most users.&lt;br /&gt;
&lt;br /&gt;
You can find the SDK files, i.e. development headers and import libraries, from the plain ZIP packages in the &amp;lt;code&amp;gt;sdk&amp;lt;/code&amp;gt; directory. Alternatively, you can build VLC from source.&lt;br /&gt;
&lt;br /&gt;
See [[LibVLC_Tutorial_086c]] for some more instructions on getting the build working.&lt;br /&gt;
&lt;br /&gt;
==== Linux ====&lt;br /&gt;
You should find the necessary files (libvlc.so, libvlc.pc, header files...) in a binary package called libvlc-dev (Debian, Ubuntu...), libvlc-devel (RPM distros) or similar. Make sure that the version is recent enough before going forward.&lt;br /&gt;
&lt;br /&gt;
=== Linking against LibVLC ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cc example.c -lvlc -o example&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Linux/BSD, you may prefer to use pkg-config:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg-config --print-errors &#039;libvlc &amp;gt;= 1.1.0&#039;&lt;br /&gt;
cc -c example.c -o example.o $(pkg-config --cflags libvlc)&lt;br /&gt;
cc example.o -o example $(pkg-config --libs libvlc)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sample LibVLC Code ===&lt;br /&gt;
This sample code will (try to) play back an URL.&lt;br /&gt;
There is also an [[LibVLC SampleCode SDL|example using SDL for video output]].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;vlc/vlc.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main(int argc, char* argv[])&lt;br /&gt;
 {&lt;br /&gt;
     libvlc_instance_t * inst;&lt;br /&gt;
     libvlc_media_player_t *mp;&lt;br /&gt;
     libvlc_media_t *m;&lt;br /&gt;
     &lt;br /&gt;
     /* Load the VLC engine */&lt;br /&gt;
     inst = libvlc_new (0, NULL);&lt;br /&gt;
  &lt;br /&gt;
     /* Create a new item */&lt;br /&gt;
     m = libvlc_media_new_path (inst, &amp;quot;http://mycool.movie.com/test.mov&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
     /* Create a media player playing environement */&lt;br /&gt;
     mp = libvlc_media_player_new_from_media (m);&lt;br /&gt;
     &lt;br /&gt;
     /* No need to keep the media now */&lt;br /&gt;
     libvlc_media_release (m);&lt;br /&gt;
 &lt;br /&gt;
 #if 0&lt;br /&gt;
     /* This is a non working code that show how to hooks into a window,&lt;br /&gt;
      * if we have a window around */&lt;br /&gt;
      libvlc_media_player_set_xdrawable (mp, xdrawable);&lt;br /&gt;
     /* or on windows */&lt;br /&gt;
      libvlc_media_player_set_hwnd (mp, hwnd);&lt;br /&gt;
     /* or on mac os */&lt;br /&gt;
      libvlc_media_player_set_nsobject (mp, view);&lt;br /&gt;
  #endif&lt;br /&gt;
 &lt;br /&gt;
     /* play the media_player */&lt;br /&gt;
     libvlc_media_player_play (mp);&lt;br /&gt;
    &lt;br /&gt;
     sleep (10); /* Let it play a bit */&lt;br /&gt;
    &lt;br /&gt;
     /* Stop playing */&lt;br /&gt;
     libvlc_media_player_stop (mp);&lt;br /&gt;
 &lt;br /&gt;
     /* Free the media_player */&lt;br /&gt;
     libvlc_media_player_release (mp);&lt;br /&gt;
 &lt;br /&gt;
     libvlc_release (inst);&lt;br /&gt;
 &lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=LibVLC_Tutorial&amp;diff=19016</id>
		<title>LibVLC Tutorial</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=LibVLC_Tutorial&amp;diff=19016"/>
		<updated>2011-05-02T19:07:07Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== LibVLC C Tutorial ==&lt;br /&gt;
&lt;br /&gt;
=== Installing the SDK ===&lt;br /&gt;
This code is written for LibVLC version 1.1.0 or later. It &#039;&#039;&#039;cannot&#039;&#039;&#039; be compiled with older versions.&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
VLC binary installers for Windows do not include the LibVLC SDK. It would be a waste of bandwidth and space for most users.&lt;br /&gt;
&lt;br /&gt;
You can find the SDK files, i.e. development headers and import libraries, from the plain ZIP packages in the &amp;lt;code&amp;gt;sdk&amp;lt;/code&amp;gt; directory. Alternatively, you can build VLC from source.&lt;br /&gt;
&lt;br /&gt;
See [[LibVLC_Tutorial_086c]] for some more instructions on getting the build working.&lt;br /&gt;
&lt;br /&gt;
==== Linux ====&lt;br /&gt;
You should find the necessary files (libvlc.so, libvlc.pc, header files...) in a binary package called libvlc-dev (Debian, Ubuntu...), libvlc-devel (RPM distros) or similar. Make sure that the version is recent enough before going forward.&lt;br /&gt;
&lt;br /&gt;
=== Linking against LibVLC ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cc example.c -lvlc -o example&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Linux/BSD, you may prefer to use pkg-config:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg-config --print-errors &#039;libvlc &amp;gt;= 1.1.0&#039;&lt;br /&gt;
cc -c example.c -o example.o $(pkg-config --cflags libvlc)&lt;br /&gt;
cc example.o -o example $(pkg-config --libs libvlc)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sample LibVLC Code ===&lt;br /&gt;
This sample code will (try to) play back an URL.&lt;br /&gt;
There is also an [[LibVLC SampleCode SDL|example using SDL for video output]].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;vlc/vlc.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main(int argc, char* argv[])&lt;br /&gt;
 {&lt;br /&gt;
     libvlc_instance_t * inst;&lt;br /&gt;
     libvlc_media_player_t *mp;&lt;br /&gt;
     libvlc_media_t *m;&lt;br /&gt;
     &lt;br /&gt;
     /* Load the VLC engine */&lt;br /&gt;
     inst = libvlc_new (0, NULL);&lt;br /&gt;
  &lt;br /&gt;
     /* Create a new item */&lt;br /&gt;
     m = libvlc_media_new_path (inst, &amp;quot;http://mycool.movie.com/test.mov&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
     /* Create a media player playing environement */&lt;br /&gt;
     mp = libvlc_media_player_new_from_media (m);&lt;br /&gt;
     &lt;br /&gt;
     /* No need to keep the media now */&lt;br /&gt;
     libvlc_media_release (m);&lt;br /&gt;
 &lt;br /&gt;
 #if 0&lt;br /&gt;
     /* This is a non working code that show how to hooks into a window,&lt;br /&gt;
      * if we have a window around */&lt;br /&gt;
      libvlc_media_player_set_xdrawable (mp, xdrawable);&lt;br /&gt;
     /* or on windows */&lt;br /&gt;
      libvlc_media_player_set_hwnd (mp, hwnd);&lt;br /&gt;
     /* or on mac os */&lt;br /&gt;
      libvlc_media_player_set_nsobject (mp, view);&lt;br /&gt;
  #endif&lt;br /&gt;
 &lt;br /&gt;
     /* play the media_player */&lt;br /&gt;
     libvlc_media_player_play (mp);&lt;br /&gt;
    &lt;br /&gt;
     sleep (10); /* Let it play a bit */&lt;br /&gt;
    &lt;br /&gt;
     /* Stop playing */&lt;br /&gt;
     libvlc_media_player_stop (mp);&lt;br /&gt;
 &lt;br /&gt;
     /* Free the media_player */&lt;br /&gt;
     libvlc_media_player_release (mp);&lt;br /&gt;
 &lt;br /&gt;
     libvlc_release (inst);&lt;br /&gt;
 &lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Python_bindings&amp;diff=19015</id>
		<title>Python bindings</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Python_bindings&amp;diff=19015"/>
		<updated>2011-05-02T19:06:44Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: /* Projects using this binding */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Python bindings =&lt;br /&gt;
&lt;br /&gt;
You can find two versions of python bindings: a up-to-date one, which is ctypes-based and is automatically generated.&lt;br /&gt;
You can also find an old one (see [[Old Python bindings]]), hand-written C-module, and deprecated. It will be removed in some future version.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
The new module features :&lt;br /&gt;
* a complete cover of the libvlc API, since it is automatically generated from the include files.&lt;br /&gt;
* no compilation hassle: the generated module is pure python.&lt;br /&gt;
* no versioning hassle: the same module works with multiple VLC versions.&lt;br /&gt;
* a [http://www.advene.org/download/python-ctypes/doc/ complete documentation].&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
You can download the [http://git.videolan.org/?p=vlc/bindings/python.git;a=tree;f=generated;b=HEAD vlc.py] module from the Git repository. It only depends on ctypes (standard module in python &amp;gt;= 2.5). Put the module in some place accessible by python (either next to your application, or in a directory from sys.path).&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can generate it by yourself using the generate.py program and accompanying files in the vlc source tree (see [http://git.videolan.org/?p=vlc/bindings/python.git;a=tree]).&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
The vlc.py module also contains a runnable example player application (see code at the end of the module, starting from the line &amp;quot;if __name__ == &#039;__main__&#039;). &lt;br /&gt;
&lt;br /&gt;
A set of helper examples [http://git.videolan.org/?p=vlc/bindings/python.git;a=tree;f=examples;hb=HEAD examples] provide a pyGtk, a pyQt and a pyWx player to ease integration.&lt;br /&gt;
&lt;br /&gt;
There is also a [http://git.videolan.org/?p=vlc/bindings/python.git;a=blob;f=README README]&lt;br /&gt;
&lt;br /&gt;
== Projects using this binding ==&lt;br /&gt;
&lt;br /&gt;
http://code.google.com/p/movie-content-editor/ See also [[LibVLC_Users]]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
===  Win32 initialization === &lt;br /&gt;
&lt;br /&gt;
If the vlc modules are not installed in their standard location (e.g. c:\\Program Files\\Videolan on Windows, or /usr/lib/vlc on linux), the VLC module cannot find them.&lt;br /&gt;
&lt;br /&gt;
When instanciating vlc.Instance() with no parameter, it tries to guess the location of the modules. However, if you pass any argument to vlc.Instance(), you will need to supply the appropriate &amp;quot;--plugin-path=/path/to/the/modules&amp;quot; yourself.&lt;br /&gt;
&lt;br /&gt;
To run the file &amp;quot;vlc.py&amp;quot; from the command line, you&#039;ll need to pass it an argument, like &amp;quot;python vlc.py e:\&amp;quot; for it to play something.&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Git&amp;diff=18728</id>
		<title>Git</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Git&amp;diff=18728"/>
		<updated>2011-02-21T21:11:29Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: /* Getting VLC or x264 source code via Git */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://git-scm.com/ Git] is a free and open source [[wikipedia:Revision_control|version control system]]. It is used by programmers to keep track of the different versions of the files composing a software.&lt;br /&gt;
&lt;br /&gt;
= Basic Git usage =&lt;br /&gt;
&lt;br /&gt;
If you are using &#039;&#039;&#039;Windows&#039;&#039;&#039;, please read the [[Git_Windows]] page.&lt;br /&gt;
&lt;br /&gt;
== Getting VLC or x264 source code via Git ==&lt;br /&gt;
 &lt;br /&gt;
 $ git clone git://git.videolan.org/vlc.git&lt;br /&gt;
Voilà! The full VLC history should be on your hard disk in vlc/.&lt;br /&gt;
&lt;br /&gt;
 $ git clone git://git.videolan.org/x264.git&lt;br /&gt;
Voilà! The full x264 history should be on your hard disk in x264/.&lt;br /&gt;
&lt;br /&gt;
If you want only the last 3 VLC revisions:&lt;br /&gt;
 $ git clone git://git.videolan.org/vlc.git --depth 3&lt;br /&gt;
&lt;br /&gt;
Clones without the full revision set (--depth) can&#039;t be used for backporting (or make sure to that you&#039;re including at least commits up to the common fork point).&lt;br /&gt;
&lt;br /&gt;
You can also clone using http via our repo.or.cz mirror.&lt;br /&gt;
 $ git clone http://repo.or.cz/r/vlc.git&lt;br /&gt;
&lt;br /&gt;
See http://repo.or.cz/w/vlc.git (it&#039;s a mirror)&lt;br /&gt;
&lt;br /&gt;
=== After cloning ===&lt;br /&gt;
&lt;br /&gt;
 $ git log&lt;br /&gt;
to see the full log of the trunk.&lt;br /&gt;
 $ gitk&lt;br /&gt;
to see the log graphically.&lt;br /&gt;
&lt;br /&gt;
You can also browse the sources via [http://git.videolan.org/ gitweb].&lt;br /&gt;
&lt;br /&gt;
== Configure your global git config ==&lt;br /&gt;
May need to use &lt;br /&gt;
$ git repo-config {various options} &lt;br /&gt;
1.4.4.2 Requires the repo-config command rather than just config&lt;br /&gt;
&lt;br /&gt;
=== Personal Information ===&lt;br /&gt;
Tell git your name. (use mostly by git-commit)&lt;br /&gt;
 $ git config --global user.name &amp;quot;Your Name&amp;quot;&lt;br /&gt;
 $ git config --global user.email &amp;quot;me@example.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Using git with color (Tip) ===&lt;br /&gt;
If you want to use git with colored output use:&lt;br /&gt;
 $ git config --global color.ui true&lt;br /&gt;
&lt;br /&gt;
If you are using an old git version (prior to 1.5.5) and previous command didn&#039;t work, use:&lt;br /&gt;
 $ git config --global color.diff auto&lt;br /&gt;
 $ git config --global color.status auto&lt;br /&gt;
 $ git config --global color.branch auto&lt;br /&gt;
&lt;br /&gt;
=== Setting up &amp;quot;git up&amp;quot; (Tip) ===&lt;br /&gt;
If you want to be able to just keep in sync using &amp;quot;git up&amp;quot; use:&lt;br /&gt;
 $ git config --global alias.up &amp;quot;pull --rebase&amp;quot;&lt;br /&gt;
And if you like your tree to be messy and don&#039;t want git to complain (like in svn) use:&lt;br /&gt;
 $ git config --global alias.up &#039;!sh -c &amp;quot;git commit -a -m &amp;quot;Before rebase&amp;quot; &amp;amp;&amp;amp; git pull --rebase &amp;amp;&amp;amp; git reset head^&amp;quot;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Setting up &amp;quot;git wu&amp;quot; (Git What&#039;s Up) (Tip) ===&lt;br /&gt;
If you want to see what you are about to &amp;quot;git push&amp;quot;:&lt;br /&gt;
 $ git config --global alias.wu &amp;quot;log --stat origin..@{0}&amp;quot;&lt;br /&gt;
Now use:&lt;br /&gt;
 $ git wu&lt;br /&gt;
Note that this only works for the master branch.&lt;br /&gt;
&lt;br /&gt;
=== Setting up &amp;quot;git wup&amp;quot; (Git What&#039;s Up - with patch) (Tip) ===&lt;br /&gt;
If you want to see what you are about to &amp;quot;git push&amp;quot;, along with the diff:&lt;br /&gt;
 $ git config --global alias.wup &amp;quot;log -p origin..@{0}&amp;quot;&lt;br /&gt;
Now use:&lt;br /&gt;
 $ git wup&lt;br /&gt;
&lt;br /&gt;
== General GIT Workflow ==&lt;br /&gt;
1.  Make your file edits in your local repository.&lt;br /&gt;
&lt;br /&gt;
2.  &amp;quot;git commit&amp;quot;      the changes in your local repository&lt;br /&gt;
&lt;br /&gt;
3.  &amp;quot;git pull --rebase&amp;quot;  or &amp;quot;git up&amp;quot; (if you did &#039;&#039;git config --global alias.up &amp;quot;pull --rebase&amp;quot;&#039;&#039;) to bring the rest of your local repository up to date&lt;br /&gt;
&lt;br /&gt;
4.  &amp;quot;git log origin..master&amp;quot;    to check what you are going to commit&lt;br /&gt;
&lt;br /&gt;
4.  &amp;quot;git push&amp;quot;    to move your changes up to the master&lt;br /&gt;
&lt;br /&gt;
&amp;quot;git stash&amp;quot;    if you want to &amp;quot;hide&amp;quot; your changes.  Do this if you think there may be other commits against the same things you are working on and want to refresh your local checkout (using a git pull --rebase) from the master. Use &amp;quot;git stash apply&amp;quot; to get your stash back. &lt;br /&gt;
&lt;br /&gt;
&amp;quot;git checkout -f master&amp;quot;     if you think your tree is pretty hopeless, need a kill-and-fill to bring the master into your local repository.&lt;br /&gt;
&lt;br /&gt;
== List the local branch ==&lt;br /&gt;
You can now list your local branch by doing&lt;br /&gt;
 $ git branch&lt;br /&gt;
which should ouput&lt;br /&gt;
 $ git branch&lt;br /&gt;
 * master&lt;br /&gt;
&lt;br /&gt;
== List your local non committed changes ==&lt;br /&gt;
 $ git status | less&lt;br /&gt;
&lt;br /&gt;
== Commit ==&lt;br /&gt;
Now you can start to work on your tree. As soon as you feel you have reached a step in developement where you can commit your work &#039;&#039;&#039;locally&#039;&#039;&#039;, use&lt;br /&gt;
 $ git commit -a&lt;br /&gt;
or&lt;br /&gt;
 $ git commit &amp;lt;specific files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish to give credit to someone else&#039;s work (e.g. you are applying a third party patch):&lt;br /&gt;
 $ git commit &amp;lt;specific files&amp;gt; --author &amp;quot;Name Surname &amp;lt;user@domain.com&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== List your commits ==&lt;br /&gt;
 $ git log&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Keeping your local working branch in sync ==&lt;br /&gt;
 $ git pull --rebase&lt;br /&gt;
&lt;br /&gt;
To shorten up that command type&lt;br /&gt;
 $ git config --global alias.up &amp;quot;pull --rebase&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Now you can just type:&lt;br /&gt;
 $ git up&lt;br /&gt;
&lt;br /&gt;
== Use a graphical interface ==&lt;br /&gt;
 $ gitk          # Tree Browser&lt;br /&gt;
 $ qgit          # Tree Browser&lt;br /&gt;
 $ git-gui       # Commit/push/... editor&lt;br /&gt;
&lt;br /&gt;
== Submitting patches to the vlc-devel or x264-devel ==&lt;br /&gt;
&lt;br /&gt;
First make sure you have &#039;&#039;&#039;read&#039;&#039;&#039; our [[Sending Patches]] page. And that you&#039;ve &#039;&#039;&#039;read&#039;&#039;&#039; the [[Sending Patches#Check_List| Check List]].&lt;br /&gt;
&lt;br /&gt;
If you have been developing on vlc locally and (still) don&#039;t have write access, you can submit all your commits in one shot using:&lt;br /&gt;
 $ rm -Rf patches&lt;br /&gt;
 $ git format-patch -o patches origin&lt;br /&gt;
 $ git send-email --to vlc-devel@videolan.org patches&lt;br /&gt;
If you have multiple patch consider using:&lt;br /&gt;
 $ git send-email --compose --no-chain-reply-to --to vlc-devel@videolan.org patches&lt;br /&gt;
This will produce the patches for each local commit in the directory &amp;quot;patches&amp;quot; and send them.&lt;br /&gt;
Use --no-chain-reply-to make sure it doesn&#039;t reply.&lt;br /&gt;
&lt;br /&gt;
For x264, do the same with x264-devel@videolan.org&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- what does the following mean? --&amp;gt;&lt;br /&gt;
Don&#039;t do:&lt;br /&gt;
* [PATCH 0/m]&lt;br /&gt;
** [PATCH 1/m]&lt;br /&gt;
*** [PATCH 2/m]&lt;br /&gt;
**** ...&lt;br /&gt;
But do:&lt;br /&gt;
* [PATCH 0/m]&lt;br /&gt;
** [PATCH 1/m]&lt;br /&gt;
** [PATCH 2/m]&lt;br /&gt;
** ..&lt;br /&gt;
&lt;br /&gt;
= Advanced usage =&lt;br /&gt;
== Creating a secondary local branch ==&lt;br /&gt;
If you want to work on a specific project that could require a branch of the trunk, create a local branch of the current branch by doing:&lt;br /&gt;
 $ git branch mywork&lt;br /&gt;
and to actually use it do:&lt;br /&gt;
 $ git checkout mywork&lt;br /&gt;
Which could be summarized by:&lt;br /&gt;
 $ git checkout -b mywork&lt;br /&gt;
&lt;br /&gt;
Then do some commit on it... And you can go back to your original master branch by doing:&lt;br /&gt;
 $ git checkout master&lt;br /&gt;
&lt;br /&gt;
== Fetching a remote branch ==&lt;br /&gt;
To see the remote branch use:&lt;br /&gt;
 $ git branch -r&lt;br /&gt;
If the remote branch is named 0.8.6-bugfix&lt;br /&gt;
 $ git branch 0.8.6-bugfix origin/0.8.6-bugfix &lt;br /&gt;
 Branch 0.8.6-bugfix set up to track remote branch refs/remotes/origin/0.8.6-bugfix.&lt;br /&gt;
 $ git branch&lt;br /&gt;
  0.8.6-bugfix&lt;br /&gt;
  * master&lt;br /&gt;
To checkout that branch use:&lt;br /&gt;
 $ git checkout 0.8.6-bugfix&lt;br /&gt;
To stay up-to-date a simple&lt;br /&gt;
 $ git pull --rebase&lt;br /&gt;
Should be enough.&lt;br /&gt;
&lt;br /&gt;
If warnings appear that files still need updating:&lt;br /&gt;
 $ include/libvlc_internal.h: needs update&lt;br /&gt;
   include/mediacontrol_internal.h: needs update&lt;br /&gt;
   include/vlc/libvlc.h: needs update&lt;br /&gt;
   include/vlc_update.h: needs update&lt;br /&gt;
   modules/access/mms/mms.c: needs update&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
Then do a checkout -f to revert non committed local changes&lt;br /&gt;
 $ git checkout -f&lt;br /&gt;
&lt;br /&gt;
To stay up-to-date another&lt;br /&gt;
 $ git pull --rebase&lt;br /&gt;
Should give no more warnings.&lt;br /&gt;
&lt;br /&gt;
To push to the remote branch, use:&lt;br /&gt;
 $git push origin 0.8.6-bugfix:0.8.6-bugfix&lt;br /&gt;
&lt;br /&gt;
== Creating a remote branch ==&lt;br /&gt;
If the new remote branch is named 0.9.0-bugfix, and is based on the local master branch.&lt;br /&gt;
First make sure everything go as planned with the --dry-run option:&lt;br /&gt;
 $ git push --dry-run origin master:refs/heads/0.9.0-stable&lt;br /&gt;
 To git@git.videolan.org:vlc.git&lt;br /&gt;
 * [new branch]      master -&amp;gt; 0.9.0-stable&lt;br /&gt;
&lt;br /&gt;
Then push it:&lt;br /&gt;
 $ git push origin master:refs/heads/0.9.0-stable&lt;br /&gt;
 To git@git.videolan.org:vlc.git&lt;br /&gt;
 * [new branch]      master -&amp;gt; 0.9.0-stable&lt;br /&gt;
 $ git branch -r&lt;br /&gt;
  origin/0.9.0-stable&lt;br /&gt;
  origin/master&lt;br /&gt;
&lt;br /&gt;
To checkout that branch now see &#039;&#039;Fetching a remote branch&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Backporting commits ==&lt;br /&gt;
It is possible to &amp;quot;backport&amp;quot; commit between the master branch and a -bugfix branch. However since VDD&#039;09, the bugfix branches have been splitted to their own git repositories. This leaves us with 2 cases.&lt;br /&gt;
&lt;br /&gt;
=== Normal simple case ===&lt;br /&gt;
&lt;br /&gt;
Go to your -bugfix branch:&lt;br /&gt;
 $ git checkout 1.0-bugfix&lt;br /&gt;
&lt;br /&gt;
Backport the commit: &lt;br /&gt;
 $ git cherry-pick -x -s &amp;lt;sha-id of commit&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If git fails to do the backport by itself, you&#039;ll be presnted with the usual options in case of a failed merge or patching. Use &amp;quot;git status&amp;quot;, your favorite editor or &amp;quot;git mergetool&amp;quot; to resolve the situation. Then use &amp;quot;git add&amp;quot; and &amp;quot;git commit -c &amp;lt;sha-id of backported commit&amp;gt;&amp;quot;.&lt;br /&gt;
Then push your commit as usual.&lt;br /&gt;
&lt;br /&gt;
=== Case of VLC bugfix branches ===&lt;br /&gt;
Due to the number of commits in vlc.git and the amount of divergence between the master and 1.0-bugfix branches, they have been separated into two different git repositories. But that doesn&#039;t block you from backporting.&lt;br /&gt;
&lt;br /&gt;
Get the -bugfix git:&lt;br /&gt;
 $ git clone git://git.videolan.org/vlc/vlc-1.0.git vlc-bugfix&lt;br /&gt;
Add vlc.git as an additional remote:&lt;br /&gt;
 $ git remote add vlc-master git://git.videolan.org/vlc.git&lt;br /&gt;
Update the information from vlc-master&lt;br /&gt;
 $ git fetch vlc-master&lt;br /&gt;
Backport as normal&lt;br /&gt;
 $ git cherry-pick -x -s &amp;lt;sha-id of commit&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Publishing your own fork ==&lt;br /&gt;
Goto [http://repo.or.cz/w/vlc.git http://repo.or.cz/w/vlc.git] and click [http://repo.or.cz/m/regproj.cgi?name=vlc/ fork]. You will be able to publish your work there.&lt;br /&gt;
&lt;br /&gt;
Please don&#039;t forget to send a mail to the vlc-devel as soon as you create your fork.&lt;br /&gt;
&lt;br /&gt;
== Revert your non-committed local changes ==&lt;br /&gt;
 $ git checkout -f&lt;br /&gt;
&lt;br /&gt;
==Edit or undo not yet pushed commits ==&lt;br /&gt;
This will undo the last commit&lt;br /&gt;
 $ git reset HEAD^&lt;br /&gt;
which is the same as&lt;br /&gt;
 $ git reset master^&lt;br /&gt;
(if your checked-out copy of your tree is master)&lt;br /&gt;
And also the same as&lt;br /&gt;
 $ git reset a44a594 # note that there is no need to use the full sha id&lt;br /&gt;
&lt;br /&gt;
If you have a stack of patch that you have not yet committed you can delete one patch from the list using git rebase --interactive&lt;br /&gt;
 $ git rebase --interactive origin&lt;br /&gt;
  pick eacf185 test&lt;br /&gt;
  pick 56322eb VLMA owner is vlma prod.&lt;br /&gt;
 &lt;br /&gt;
  # Rebase 826757e..56322eb onto 826757e&lt;br /&gt;
  #&lt;br /&gt;
  # Commands:&lt;br /&gt;
  #  pick = use commit&lt;br /&gt;
  #  edit = use commit, but stop for amending&lt;br /&gt;
  #  squash = use commit, but meld into previous commit&lt;br /&gt;
&lt;br /&gt;
== Diff-ing ==&lt;br /&gt;
* You can diff between two branches using&lt;br /&gt;
 $ git diff branch1 branch2&lt;br /&gt;
* You can diff between the previous 10th commit and current using&lt;br /&gt;
 $ git diff HEAD~10 HEAD&lt;br /&gt;
* You can diff between the previous 10th commit and current of the branch &amp;quot;mywork&amp;quot; using&lt;br /&gt;
 $ git diff mywork~10 mywork&lt;br /&gt;
* Imagine that git log is like&lt;br /&gt;
 $ git log&lt;br /&gt;
 commit e0394f269305edd09843257e7c1d1a66aaf48ab3&lt;br /&gt;
 Author: jb &amp;lt;jb&amp;gt;&lt;br /&gt;
 Date:   Fri Apr 13 07:14:48 2007 +0000&lt;br /&gt;
    qt4 - Mousewheel (2)&lt;br /&gt;
 commit e80b339081aa6755f67c9bd8e2aacf93a9a79d95&lt;br /&gt;
 [..]&lt;br /&gt;
 commit ff7004b70fd239e4120deb160e2991bd5237b8df&lt;br /&gt;
 [..]&lt;br /&gt;
 commit a44a594898f981a145cfcace5f16f8973f9eb46f&lt;br /&gt;
 [..]&lt;br /&gt;
 commit 690df705c963cf6bf6f5746d54bc97a85ff91919&lt;br /&gt;
 [..]&lt;br /&gt;
 commit 679f8b1c3e0baa469efa970588b95a625c595d64&lt;br /&gt;
 [..]&lt;br /&gt;
&lt;br /&gt;
 $ git diff a44a594898f981a145cfcace5f16f8973f9eb46f~2 e80b339081aa6755f67c9bd8e2aacf93a9a79d95&lt;br /&gt;
Will be equivalent to:&lt;br /&gt;
 $ git diff ff7004b70fd239e4120deb160e2991bd5237b8df e80b339081aa6755f67c9bd8e2aacf93a9a79d95&lt;br /&gt;
And to:&lt;br /&gt;
 $ git diff HEAD~4 HEAD^&lt;br /&gt;
&lt;br /&gt;
* Remember that to produce a patch you should rather use git-format-patch than git-diff most of the time.&lt;br /&gt;
&lt;br /&gt;
== Patch-ing ==&lt;br /&gt;
* You can apply patches using&lt;br /&gt;
 $ git apply &amp;lt;patch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tracking regression ==&lt;br /&gt;
git has a great tool called [http://www.kernel.org/pub/software/scm/git/docs/git-bisect.html git-bisect] to help you to track a faulty commit. Imagine you are tracking a bug that is known to appear after 0.8.6 (assuming 0.8.6 is tagged):&lt;br /&gt;
 $ git bisect start&lt;br /&gt;
 $ git bisect bad # tell git current version has the bug you are tracking&lt;br /&gt;
 $ git bisect good 0.8.6 # tell git 0.8.6 didn&#039;t have the bug&lt;br /&gt;
And then git will checkout a certain revision, and ask you to test it. And you simply say whether this version has the bug.&lt;br /&gt;
If it has the bug:&lt;br /&gt;
 $ git bisect bad&lt;br /&gt;
if the bug is not present:&lt;br /&gt;
 $ git bisect good&lt;br /&gt;
And so on by bisection... At the end git will indicate the faulty commit. Most of the time this tool is really efficient to track regression.&lt;br /&gt;
&lt;br /&gt;
If you can provide a script that test the presence of the bug &lt;br /&gt;
 $ git bisect run &amp;lt;script_name&amp;gt;&lt;br /&gt;
will be able to track down the regression by itself. See [http://www.kernel.org/pub/software/scm/git/docs/git-bisect.html git-bisect Documentation].&lt;br /&gt;
&lt;br /&gt;
= Using Git to push to VideoLAN git =&lt;br /&gt;
== Initial requirements ==&lt;br /&gt;
* You must have credentials to push commits into the repository. For other contributors, please read upper [[Git#Submitting_patches_to_the_vlc-devel_or_x264-devel|Submitting patches to the vlc-devel or x264-devel]] paragraph.&lt;br /&gt;
* Make sure you&#039;ve set your name and email in your commits&lt;br /&gt;
 $ git config --global user.name &amp;quot;Your Name&amp;quot;&lt;br /&gt;
 $ git config --global user.email &amp;quot;me@example.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Convert your tree to use your ssh push commit access ==&lt;br /&gt;
 $ vi vlc/.git/config&lt;br /&gt;
And replace&lt;br /&gt;
 git://git.videolan.org/vlc.git&lt;br /&gt;
With&lt;br /&gt;
 git@git.videolan.org:vlc.git&lt;br /&gt;
&lt;br /&gt;
== Staying up to date ==&lt;br /&gt;
  $ git pull --rebase&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to have to type --rebase everytime you pull do:&lt;br /&gt;
 $ git config branch.master.rebase true&lt;br /&gt;
&lt;br /&gt;
This one creates a merge object which is not how SVN worked, so let&#039;s use the first version...&lt;br /&gt;
  $ git pull&lt;br /&gt;
&lt;br /&gt;
== Pushing your work ==&lt;br /&gt;
  $ git log origin..master     # Check what you are going to push&lt;br /&gt;
  $ git push&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- GSoC 2007&lt;br /&gt;
= Using Git to publish your work (for SoC student?) =&lt;br /&gt;
First get the official VLC &#039;&#039;&#039;Soc&#039;&#039;&#039; trunk&lt;br /&gt;
 $ git clone git://git.videolan.org/vlc-soc.git&lt;br /&gt;
 $ cd vlc-soc&lt;br /&gt;
Ask for write access to a branch (called your_name_branch). Now we will make git know that you want to publish on this branch&lt;br /&gt;
 $ git config remote.my_soc_public_branch.url ssh://your_name@altair.videolan.org/home/videolan/gitroot/vlc-soc.git&lt;br /&gt;
Now tell git that you want to automatically push the local master branch to the public your_name_branch:&lt;br /&gt;
 $ git config remote.my_soc_public_branch.push +master:your_name_branch # the &amp;quot;+&amp;quot; will tell git to force update ignoring conflicts&lt;br /&gt;
&lt;br /&gt;
Do some work and commit it to your master branch.&lt;br /&gt;
 $ git commit -a&lt;br /&gt;
You can also sync with the trunk (origin) as needed&lt;br /&gt;
 $ git pull --rebase origin&lt;br /&gt;
And don&#039;t forget to publish your changes:&lt;br /&gt;
 $ git push my_soc_public_branch&lt;br /&gt;
Now you should be able to see your latest changes in your branch via [http://git.videolan.org/ gitweb].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Documentation about git =&lt;br /&gt;
* [http://git.or.cz/ Official Git Website]&lt;br /&gt;
* [http://www.kernel.org/pub/software/scm/git/docs/tutorial.html Git Tutorial]&lt;br /&gt;
* [http://git.or.cz/course/svn.html Switching from SVN to git using cogito]&lt;br /&gt;
* [http://wiki.sourcemage.org/Git_Guide Very good Git guide]&lt;br /&gt;
&lt;br /&gt;
[[Category:Building]]&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Git&amp;diff=18727</id>
		<title>Git</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Git&amp;diff=18727"/>
		<updated>2011-02-21T21:08:30Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: /* Getting VLC or x264 source code via Git */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://git-scm.com/ Git] is a free and open source [[wikipedia:Revision_control|version control system]]. It is used by programmers to keep track of the different versions of the files composing a software.&lt;br /&gt;
&lt;br /&gt;
= Basic Git usage =&lt;br /&gt;
&lt;br /&gt;
If you are using &#039;&#039;&#039;Windows&#039;&#039;&#039;, please read the [[Git_Windows]] page.&lt;br /&gt;
&lt;br /&gt;
== Getting VLC or x264 source code via Git ==&lt;br /&gt;
 &lt;br /&gt;
 $ git clone git://git.videolan.org/vlc.git&lt;br /&gt;
Voilà! The full VLC history should be on your hard disk in vlc/.&lt;br /&gt;
&lt;br /&gt;
 $ git clone git://git.videolan.org/x264.git&lt;br /&gt;
Voilà! The full x264 history should be on your hard disk in x264/.&lt;br /&gt;
&lt;br /&gt;
If you want only the last 3 VLC revisions:&lt;br /&gt;
 $ git clone git://git.videolan.org/vlc.git --depth 3&lt;br /&gt;
&lt;br /&gt;
Clones without the full revision set (--depth) can&#039;t be used for backporting (or make sure to that you&#039;re including at least commits up to the common fork point).&lt;br /&gt;
&lt;br /&gt;
You can also clone using http via our repo.or.cz mirror.&lt;br /&gt;
 $ git clone http://repo.or.cz/r/vlc.git&lt;br /&gt;
&lt;br /&gt;
=== After cloning ===&lt;br /&gt;
&lt;br /&gt;
 $ git log&lt;br /&gt;
to see the full log of the trunk.&lt;br /&gt;
 $ gitk&lt;br /&gt;
to see the log graphically.&lt;br /&gt;
&lt;br /&gt;
You can also browse the sources via [http://git.videolan.org/ gitweb].&lt;br /&gt;
&lt;br /&gt;
== Configure your global git config ==&lt;br /&gt;
May need to use &lt;br /&gt;
$ git repo-config {various options} &lt;br /&gt;
1.4.4.2 Requires the repo-config command rather than just config&lt;br /&gt;
&lt;br /&gt;
=== Personal Information ===&lt;br /&gt;
Tell git your name. (use mostly by git-commit)&lt;br /&gt;
 $ git config --global user.name &amp;quot;Your Name&amp;quot;&lt;br /&gt;
 $ git config --global user.email &amp;quot;me@example.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Using git with color (Tip) ===&lt;br /&gt;
If you want to use git with colored output use:&lt;br /&gt;
 $ git config --global color.ui true&lt;br /&gt;
&lt;br /&gt;
If you are using an old git version (prior to 1.5.5) and previous command didn&#039;t work, use:&lt;br /&gt;
 $ git config --global color.diff auto&lt;br /&gt;
 $ git config --global color.status auto&lt;br /&gt;
 $ git config --global color.branch auto&lt;br /&gt;
&lt;br /&gt;
=== Setting up &amp;quot;git up&amp;quot; (Tip) ===&lt;br /&gt;
If you want to be able to just keep in sync using &amp;quot;git up&amp;quot; use:&lt;br /&gt;
 $ git config --global alias.up &amp;quot;pull --rebase&amp;quot;&lt;br /&gt;
And if you like your tree to be messy and don&#039;t want git to complain (like in svn) use:&lt;br /&gt;
 $ git config --global alias.up &#039;!sh -c &amp;quot;git commit -a -m &amp;quot;Before rebase&amp;quot; &amp;amp;&amp;amp; git pull --rebase &amp;amp;&amp;amp; git reset head^&amp;quot;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Setting up &amp;quot;git wu&amp;quot; (Git What&#039;s Up) (Tip) ===&lt;br /&gt;
If you want to see what you are about to &amp;quot;git push&amp;quot;:&lt;br /&gt;
 $ git config --global alias.wu &amp;quot;log --stat origin..@{0}&amp;quot;&lt;br /&gt;
Now use:&lt;br /&gt;
 $ git wu&lt;br /&gt;
Note that this only works for the master branch.&lt;br /&gt;
&lt;br /&gt;
=== Setting up &amp;quot;git wup&amp;quot; (Git What&#039;s Up - with patch) (Tip) ===&lt;br /&gt;
If you want to see what you are about to &amp;quot;git push&amp;quot;, along with the diff:&lt;br /&gt;
 $ git config --global alias.wup &amp;quot;log -p origin..@{0}&amp;quot;&lt;br /&gt;
Now use:&lt;br /&gt;
 $ git wup&lt;br /&gt;
&lt;br /&gt;
== General GIT Workflow ==&lt;br /&gt;
1.  Make your file edits in your local repository.&lt;br /&gt;
&lt;br /&gt;
2.  &amp;quot;git commit&amp;quot;      the changes in your local repository&lt;br /&gt;
&lt;br /&gt;
3.  &amp;quot;git pull --rebase&amp;quot;  or &amp;quot;git up&amp;quot; (if you did &#039;&#039;git config --global alias.up &amp;quot;pull --rebase&amp;quot;&#039;&#039;) to bring the rest of your local repository up to date&lt;br /&gt;
&lt;br /&gt;
4.  &amp;quot;git log origin..master&amp;quot;    to check what you are going to commit&lt;br /&gt;
&lt;br /&gt;
4.  &amp;quot;git push&amp;quot;    to move your changes up to the master&lt;br /&gt;
&lt;br /&gt;
&amp;quot;git stash&amp;quot;    if you want to &amp;quot;hide&amp;quot; your changes.  Do this if you think there may be other commits against the same things you are working on and want to refresh your local checkout (using a git pull --rebase) from the master. Use &amp;quot;git stash apply&amp;quot; to get your stash back. &lt;br /&gt;
&lt;br /&gt;
&amp;quot;git checkout -f master&amp;quot;     if you think your tree is pretty hopeless, need a kill-and-fill to bring the master into your local repository.&lt;br /&gt;
&lt;br /&gt;
== List the local branch ==&lt;br /&gt;
You can now list your local branch by doing&lt;br /&gt;
 $ git branch&lt;br /&gt;
which should ouput&lt;br /&gt;
 $ git branch&lt;br /&gt;
 * master&lt;br /&gt;
&lt;br /&gt;
== List your local non committed changes ==&lt;br /&gt;
 $ git status | less&lt;br /&gt;
&lt;br /&gt;
== Commit ==&lt;br /&gt;
Now you can start to work on your tree. As soon as you feel you have reached a step in developement where you can commit your work &#039;&#039;&#039;locally&#039;&#039;&#039;, use&lt;br /&gt;
 $ git commit -a&lt;br /&gt;
or&lt;br /&gt;
 $ git commit &amp;lt;specific files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish to give credit to someone else&#039;s work (e.g. you are applying a third party patch):&lt;br /&gt;
 $ git commit &amp;lt;specific files&amp;gt; --author &amp;quot;Name Surname &amp;lt;user@domain.com&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== List your commits ==&lt;br /&gt;
 $ git log&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Keeping your local working branch in sync ==&lt;br /&gt;
 $ git pull --rebase&lt;br /&gt;
&lt;br /&gt;
To shorten up that command type&lt;br /&gt;
 $ git config --global alias.up &amp;quot;pull --rebase&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Now you can just type:&lt;br /&gt;
 $ git up&lt;br /&gt;
&lt;br /&gt;
== Use a graphical interface ==&lt;br /&gt;
 $ gitk          # Tree Browser&lt;br /&gt;
 $ qgit          # Tree Browser&lt;br /&gt;
 $ git-gui       # Commit/push/... editor&lt;br /&gt;
&lt;br /&gt;
== Submitting patches to the vlc-devel or x264-devel ==&lt;br /&gt;
&lt;br /&gt;
First make sure you have &#039;&#039;&#039;read&#039;&#039;&#039; our [[Sending Patches]] page. And that you&#039;ve &#039;&#039;&#039;read&#039;&#039;&#039; the [[Sending Patches#Check_List| Check List]].&lt;br /&gt;
&lt;br /&gt;
If you have been developing on vlc locally and (still) don&#039;t have write access, you can submit all your commits in one shot using:&lt;br /&gt;
 $ rm -Rf patches&lt;br /&gt;
 $ git format-patch -o patches origin&lt;br /&gt;
 $ git send-email --to vlc-devel@videolan.org patches&lt;br /&gt;
If you have multiple patch consider using:&lt;br /&gt;
 $ git send-email --compose --no-chain-reply-to --to vlc-devel@videolan.org patches&lt;br /&gt;
This will produce the patches for each local commit in the directory &amp;quot;patches&amp;quot; and send them.&lt;br /&gt;
Use --no-chain-reply-to make sure it doesn&#039;t reply.&lt;br /&gt;
&lt;br /&gt;
For x264, do the same with x264-devel@videolan.org&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- what does the following mean? --&amp;gt;&lt;br /&gt;
Don&#039;t do:&lt;br /&gt;
* [PATCH 0/m]&lt;br /&gt;
** [PATCH 1/m]&lt;br /&gt;
*** [PATCH 2/m]&lt;br /&gt;
**** ...&lt;br /&gt;
But do:&lt;br /&gt;
* [PATCH 0/m]&lt;br /&gt;
** [PATCH 1/m]&lt;br /&gt;
** [PATCH 2/m]&lt;br /&gt;
** ..&lt;br /&gt;
&lt;br /&gt;
= Advanced usage =&lt;br /&gt;
== Creating a secondary local branch ==&lt;br /&gt;
If you want to work on a specific project that could require a branch of the trunk, create a local branch of the current branch by doing:&lt;br /&gt;
 $ git branch mywork&lt;br /&gt;
and to actually use it do:&lt;br /&gt;
 $ git checkout mywork&lt;br /&gt;
Which could be summarized by:&lt;br /&gt;
 $ git checkout -b mywork&lt;br /&gt;
&lt;br /&gt;
Then do some commit on it... And you can go back to your original master branch by doing:&lt;br /&gt;
 $ git checkout master&lt;br /&gt;
&lt;br /&gt;
== Fetching a remote branch ==&lt;br /&gt;
To see the remote branch use:&lt;br /&gt;
 $ git branch -r&lt;br /&gt;
If the remote branch is named 0.8.6-bugfix&lt;br /&gt;
 $ git branch 0.8.6-bugfix origin/0.8.6-bugfix &lt;br /&gt;
 Branch 0.8.6-bugfix set up to track remote branch refs/remotes/origin/0.8.6-bugfix.&lt;br /&gt;
 $ git branch&lt;br /&gt;
  0.8.6-bugfix&lt;br /&gt;
  * master&lt;br /&gt;
To checkout that branch use:&lt;br /&gt;
 $ git checkout 0.8.6-bugfix&lt;br /&gt;
To stay up-to-date a simple&lt;br /&gt;
 $ git pull --rebase&lt;br /&gt;
Should be enough.&lt;br /&gt;
&lt;br /&gt;
If warnings appear that files still need updating:&lt;br /&gt;
 $ include/libvlc_internal.h: needs update&lt;br /&gt;
   include/mediacontrol_internal.h: needs update&lt;br /&gt;
   include/vlc/libvlc.h: needs update&lt;br /&gt;
   include/vlc_update.h: needs update&lt;br /&gt;
   modules/access/mms/mms.c: needs update&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
Then do a checkout -f to revert non committed local changes&lt;br /&gt;
 $ git checkout -f&lt;br /&gt;
&lt;br /&gt;
To stay up-to-date another&lt;br /&gt;
 $ git pull --rebase&lt;br /&gt;
Should give no more warnings.&lt;br /&gt;
&lt;br /&gt;
To push to the remote branch, use:&lt;br /&gt;
 $git push origin 0.8.6-bugfix:0.8.6-bugfix&lt;br /&gt;
&lt;br /&gt;
== Creating a remote branch ==&lt;br /&gt;
If the new remote branch is named 0.9.0-bugfix, and is based on the local master branch.&lt;br /&gt;
First make sure everything go as planned with the --dry-run option:&lt;br /&gt;
 $ git push --dry-run origin master:refs/heads/0.9.0-stable&lt;br /&gt;
 To git@git.videolan.org:vlc.git&lt;br /&gt;
 * [new branch]      master -&amp;gt; 0.9.0-stable&lt;br /&gt;
&lt;br /&gt;
Then push it:&lt;br /&gt;
 $ git push origin master:refs/heads/0.9.0-stable&lt;br /&gt;
 To git@git.videolan.org:vlc.git&lt;br /&gt;
 * [new branch]      master -&amp;gt; 0.9.0-stable&lt;br /&gt;
 $ git branch -r&lt;br /&gt;
  origin/0.9.0-stable&lt;br /&gt;
  origin/master&lt;br /&gt;
&lt;br /&gt;
To checkout that branch now see &#039;&#039;Fetching a remote branch&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Backporting commits ==&lt;br /&gt;
It is possible to &amp;quot;backport&amp;quot; commit between the master branch and a -bugfix branch. However since VDD&#039;09, the bugfix branches have been splitted to their own git repositories. This leaves us with 2 cases.&lt;br /&gt;
&lt;br /&gt;
=== Normal simple case ===&lt;br /&gt;
&lt;br /&gt;
Go to your -bugfix branch:&lt;br /&gt;
 $ git checkout 1.0-bugfix&lt;br /&gt;
&lt;br /&gt;
Backport the commit: &lt;br /&gt;
 $ git cherry-pick -x -s &amp;lt;sha-id of commit&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If git fails to do the backport by itself, you&#039;ll be presnted with the usual options in case of a failed merge or patching. Use &amp;quot;git status&amp;quot;, your favorite editor or &amp;quot;git mergetool&amp;quot; to resolve the situation. Then use &amp;quot;git add&amp;quot; and &amp;quot;git commit -c &amp;lt;sha-id of backported commit&amp;gt;&amp;quot;.&lt;br /&gt;
Then push your commit as usual.&lt;br /&gt;
&lt;br /&gt;
=== Case of VLC bugfix branches ===&lt;br /&gt;
Due to the number of commits in vlc.git and the amount of divergence between the master and 1.0-bugfix branches, they have been separated into two different git repositories. But that doesn&#039;t block you from backporting.&lt;br /&gt;
&lt;br /&gt;
Get the -bugfix git:&lt;br /&gt;
 $ git clone git://git.videolan.org/vlc/vlc-1.0.git vlc-bugfix&lt;br /&gt;
Add vlc.git as an additional remote:&lt;br /&gt;
 $ git remote add vlc-master git://git.videolan.org/vlc.git&lt;br /&gt;
Update the information from vlc-master&lt;br /&gt;
 $ git fetch vlc-master&lt;br /&gt;
Backport as normal&lt;br /&gt;
 $ git cherry-pick -x -s &amp;lt;sha-id of commit&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Publishing your own fork ==&lt;br /&gt;
Goto [http://repo.or.cz/w/vlc.git http://repo.or.cz/w/vlc.git] and click [http://repo.or.cz/m/regproj.cgi?name=vlc/ fork]. You will be able to publish your work there.&lt;br /&gt;
&lt;br /&gt;
Please don&#039;t forget to send a mail to the vlc-devel as soon as you create your fork.&lt;br /&gt;
&lt;br /&gt;
== Revert your non-committed local changes ==&lt;br /&gt;
 $ git checkout -f&lt;br /&gt;
&lt;br /&gt;
==Edit or undo not yet pushed commits ==&lt;br /&gt;
This will undo the last commit&lt;br /&gt;
 $ git reset HEAD^&lt;br /&gt;
which is the same as&lt;br /&gt;
 $ git reset master^&lt;br /&gt;
(if your checked-out copy of your tree is master)&lt;br /&gt;
And also the same as&lt;br /&gt;
 $ git reset a44a594 # note that there is no need to use the full sha id&lt;br /&gt;
&lt;br /&gt;
If you have a stack of patch that you have not yet committed you can delete one patch from the list using git rebase --interactive&lt;br /&gt;
 $ git rebase --interactive origin&lt;br /&gt;
  pick eacf185 test&lt;br /&gt;
  pick 56322eb VLMA owner is vlma prod.&lt;br /&gt;
 &lt;br /&gt;
  # Rebase 826757e..56322eb onto 826757e&lt;br /&gt;
  #&lt;br /&gt;
  # Commands:&lt;br /&gt;
  #  pick = use commit&lt;br /&gt;
  #  edit = use commit, but stop for amending&lt;br /&gt;
  #  squash = use commit, but meld into previous commit&lt;br /&gt;
&lt;br /&gt;
== Diff-ing ==&lt;br /&gt;
* You can diff between two branches using&lt;br /&gt;
 $ git diff branch1 branch2&lt;br /&gt;
* You can diff between the previous 10th commit and current using&lt;br /&gt;
 $ git diff HEAD~10 HEAD&lt;br /&gt;
* You can diff between the previous 10th commit and current of the branch &amp;quot;mywork&amp;quot; using&lt;br /&gt;
 $ git diff mywork~10 mywork&lt;br /&gt;
* Imagine that git log is like&lt;br /&gt;
 $ git log&lt;br /&gt;
 commit e0394f269305edd09843257e7c1d1a66aaf48ab3&lt;br /&gt;
 Author: jb &amp;lt;jb&amp;gt;&lt;br /&gt;
 Date:   Fri Apr 13 07:14:48 2007 +0000&lt;br /&gt;
    qt4 - Mousewheel (2)&lt;br /&gt;
 commit e80b339081aa6755f67c9bd8e2aacf93a9a79d95&lt;br /&gt;
 [..]&lt;br /&gt;
 commit ff7004b70fd239e4120deb160e2991bd5237b8df&lt;br /&gt;
 [..]&lt;br /&gt;
 commit a44a594898f981a145cfcace5f16f8973f9eb46f&lt;br /&gt;
 [..]&lt;br /&gt;
 commit 690df705c963cf6bf6f5746d54bc97a85ff91919&lt;br /&gt;
 [..]&lt;br /&gt;
 commit 679f8b1c3e0baa469efa970588b95a625c595d64&lt;br /&gt;
 [..]&lt;br /&gt;
&lt;br /&gt;
 $ git diff a44a594898f981a145cfcace5f16f8973f9eb46f~2 e80b339081aa6755f67c9bd8e2aacf93a9a79d95&lt;br /&gt;
Will be equivalent to:&lt;br /&gt;
 $ git diff ff7004b70fd239e4120deb160e2991bd5237b8df e80b339081aa6755f67c9bd8e2aacf93a9a79d95&lt;br /&gt;
And to:&lt;br /&gt;
 $ git diff HEAD~4 HEAD^&lt;br /&gt;
&lt;br /&gt;
* Remember that to produce a patch you should rather use git-format-patch than git-diff most of the time.&lt;br /&gt;
&lt;br /&gt;
== Patch-ing ==&lt;br /&gt;
* You can apply patches using&lt;br /&gt;
 $ git apply &amp;lt;patch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tracking regression ==&lt;br /&gt;
git has a great tool called [http://www.kernel.org/pub/software/scm/git/docs/git-bisect.html git-bisect] to help you to track a faulty commit. Imagine you are tracking a bug that is known to appear after 0.8.6 (assuming 0.8.6 is tagged):&lt;br /&gt;
 $ git bisect start&lt;br /&gt;
 $ git bisect bad # tell git current version has the bug you are tracking&lt;br /&gt;
 $ git bisect good 0.8.6 # tell git 0.8.6 didn&#039;t have the bug&lt;br /&gt;
And then git will checkout a certain revision, and ask you to test it. And you simply say whether this version has the bug.&lt;br /&gt;
If it has the bug:&lt;br /&gt;
 $ git bisect bad&lt;br /&gt;
if the bug is not present:&lt;br /&gt;
 $ git bisect good&lt;br /&gt;
And so on by bisection... At the end git will indicate the faulty commit. Most of the time this tool is really efficient to track regression.&lt;br /&gt;
&lt;br /&gt;
If you can provide a script that test the presence of the bug &lt;br /&gt;
 $ git bisect run &amp;lt;script_name&amp;gt;&lt;br /&gt;
will be able to track down the regression by itself. See [http://www.kernel.org/pub/software/scm/git/docs/git-bisect.html git-bisect Documentation].&lt;br /&gt;
&lt;br /&gt;
= Using Git to push to VideoLAN git =&lt;br /&gt;
== Initial requirements ==&lt;br /&gt;
* You must have credentials to push commits into the repository. For other contributors, please read upper [[Git#Submitting_patches_to_the_vlc-devel_or_x264-devel|Submitting patches to the vlc-devel or x264-devel]] paragraph.&lt;br /&gt;
* Make sure you&#039;ve set your name and email in your commits&lt;br /&gt;
 $ git config --global user.name &amp;quot;Your Name&amp;quot;&lt;br /&gt;
 $ git config --global user.email &amp;quot;me@example.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Convert your tree to use your ssh push commit access ==&lt;br /&gt;
 $ vi vlc/.git/config&lt;br /&gt;
And replace&lt;br /&gt;
 git://git.videolan.org/vlc.git&lt;br /&gt;
With&lt;br /&gt;
 git@git.videolan.org:vlc.git&lt;br /&gt;
&lt;br /&gt;
== Staying up to date ==&lt;br /&gt;
  $ git pull --rebase&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to have to type --rebase everytime you pull do:&lt;br /&gt;
 $ git config branch.master.rebase true&lt;br /&gt;
&lt;br /&gt;
This one creates a merge object which is not how SVN worked, so let&#039;s use the first version...&lt;br /&gt;
  $ git pull&lt;br /&gt;
&lt;br /&gt;
== Pushing your work ==&lt;br /&gt;
  $ git log origin..master     # Check what you are going to push&lt;br /&gt;
  $ git push&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- GSoC 2007&lt;br /&gt;
= Using Git to publish your work (for SoC student?) =&lt;br /&gt;
First get the official VLC &#039;&#039;&#039;Soc&#039;&#039;&#039; trunk&lt;br /&gt;
 $ git clone git://git.videolan.org/vlc-soc.git&lt;br /&gt;
 $ cd vlc-soc&lt;br /&gt;
Ask for write access to a branch (called your_name_branch). Now we will make git know that you want to publish on this branch&lt;br /&gt;
 $ git config remote.my_soc_public_branch.url ssh://your_name@altair.videolan.org/home/videolan/gitroot/vlc-soc.git&lt;br /&gt;
Now tell git that you want to automatically push the local master branch to the public your_name_branch:&lt;br /&gt;
 $ git config remote.my_soc_public_branch.push +master:your_name_branch # the &amp;quot;+&amp;quot; will tell git to force update ignoring conflicts&lt;br /&gt;
&lt;br /&gt;
Do some work and commit it to your master branch.&lt;br /&gt;
 $ git commit -a&lt;br /&gt;
You can also sync with the trunk (origin) as needed&lt;br /&gt;
 $ git pull --rebase origin&lt;br /&gt;
And don&#039;t forget to publish your changes:&lt;br /&gt;
 $ git push my_soc_public_branch&lt;br /&gt;
Now you should be able to see your latest changes in your branch via [http://git.videolan.org/ gitweb].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Documentation about git =&lt;br /&gt;
* [http://git.or.cz/ Official Git Website]&lt;br /&gt;
* [http://www.kernel.org/pub/software/scm/git/docs/tutorial.html Git Tutorial]&lt;br /&gt;
* [http://git.or.cz/course/svn.html Switching from SVN to git using cogito]&lt;br /&gt;
* [http://wiki.sourcemage.org/Git_Guide Very good Git guide]&lt;br /&gt;
&lt;br /&gt;
[[Category:Building]]&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Python_bindings&amp;diff=17148</id>
		<title>Python bindings</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Python_bindings&amp;diff=17148"/>
		<updated>2010-09-30T16:48:54Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: add ext. link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Python bindings =&lt;br /&gt;
&lt;br /&gt;
You can find two versions of python bindings: an old one (see [[Old Python bindings]]), hand-written C-module, and a new one, which is ctypes-based and automatically generated.&lt;br /&gt;
The old version of the bindings is now deprecated and will be removed in some future version.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
The new module features :&lt;br /&gt;
* a complete cover of the libvlc API, since it is automatically generated from the include files.&lt;br /&gt;
* no compilation hassle: the generated module is pure python.&lt;br /&gt;
* no versioning hassle: the same module works with multiple VLC versions.&lt;br /&gt;
* a [http://www.advene.org/download/python-ctypes/doc/ complete documentation].&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
You can download the [http://git.videolan.org/?p=vlc/bindings/python.git;a=tree;f=generated;b=HEAD vlc.py] module from the Git repository. It only depends on ctypes (standard module in python &amp;gt;= 2.5). Put the module in some place accessible by python (either next to your application, or in a directory from sys.path).&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can generate it by yourself using the generate.py program and accompanying files in the vlc source tree (see [http://git.videolan.org/?p=vlc/bindings/python.git;a=tree]).&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
The vlc.py module also contains a runnable example player application (see code at the end of the module, starting from the line &amp;quot;if __name__ == &#039;__main__&#039;). &lt;br /&gt;
&lt;br /&gt;
A helper module [http://git.videolan.org/?p=vlc.git;a=blob;f=bindings/python-ctypes/vlcwidget.py;hb=HEAD vlcwidget.py] provides a pygtk VLCWidget() to ease integration.&lt;br /&gt;
&lt;br /&gt;
Note that you&#039;ll need to pass it an argument, like &amp;quot;e:\&amp;quot; for it to play.&lt;br /&gt;
&lt;br /&gt;
== Projects using this binding ==&lt;br /&gt;
&lt;br /&gt;
http://code.google.com/p/movie-content-editor/&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
===  Win32 initialization === &lt;br /&gt;
&lt;br /&gt;
If the vlc modules are not installed in their standard location (e.g. c:\\Program Files\\Videolan on Windows, or /usr/lib/vlc on linux), the VLC module cannot find them.&lt;br /&gt;
&lt;br /&gt;
When instanciating vlc.Instance() with no parameter, it tries to guess the location of the modules. However, if you pass any argument to vlc.Instance(), you will need to supply the appropriate &amp;quot;--plugin-path=/path/to/the/modules&amp;quot; yourself.&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Win32CompileMSYSTroubleShooting&amp;diff=17118</id>
		<title>Win32CompileMSYSTroubleShooting</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Win32CompileMSYSTroubleShooting&amp;diff=17118"/>
		<updated>2010-09-23T16:16:35Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of various errors that have occurred &amp;quot;over the years&amp;quot; during [[Win32CompileMSYSNew|building VLC with windows]], with their resolutions.   Of course, if it&#039;s not here, google is your friend.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;unix2dos&amp;quot; command not found:  this meant &amp;quot;you forgot to install mingw-utils&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*It doesn&#039;t link, and complains about missing gcc symbols: You missed this line in the instructions:&lt;br /&gt;
&lt;br /&gt;
Use text editor to change MinGW\lib\gcc\mingw32\4.4.0\libstdc++.la file (line should be library_names=&#039;&#039;) due to bug in latest MinGW.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Originally, there was apparently a bug with 4.4.0 GCC (not 4.4.1), fixed thus (except that in reality, you must use TDM, not vanilla GCC, because you need sljl exception handling):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Then, update Mingw GCC to 4.4.0 by downloading http://sourceforge.net/projects/mingw/files/GCC%20Version%204/gcc-full-4.4.0-mingw32-bin-2.tar.lzma/download and extracting it to C:\Mingw (replacing files when asked). Finally, you&#039;ll gave to fix the file C:\MinGW\lib\gcc\mingw32\4.4.0\libstdc++.la by opening it and changing the line defining library_names so that it reads &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;library_names=&#039;&#039;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Compilation stops early, after configure was complaining about mismatched quotes:&lt;br /&gt;
&lt;br /&gt;
Check the VLC_COMPILE_HOST variable in your config.h - if it&#039;s &#039;&#039;Option f is not valid&#039;&#039; then &#039;&#039;hostname -f&#039;&#039; fails (on Windows, there is no such option as -f). In configure.ac change &lt;br /&gt;
&amp;lt;pre&amp;gt;AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, &amp;quot;`hostname -f 2&amp;amp;gt; /dev/null || hostname`&amp;quot;, [host which ran configure])&amp;lt;/pre&amp;gt; &lt;br /&gt;
to &lt;br /&gt;
&amp;lt;pre&amp;gt;AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, &amp;quot;`hostname`&amp;quot;, [host which ran configure])&amp;lt;/pre&amp;gt; &lt;br /&gt;
*If compile complains about a config.h and pthread.h not found problem, just delete config.h&lt;br /&gt;
*If building self-contained packages fails with &#039;&#039;make: zip: Command not found&#039;&#039; then download the following file and extract it to C:\Msys\1.0 :&lt;br /&gt;
*http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/m/project/mi/mingw/MSYS/zip/zip-3.0-1/zip-3.0-1-msys-1.0.14-bin.tar.lzma&lt;br /&gt;
*If building self-contained packages fails with &#039;&#039;make: 7z: Command not found&#039;&#039; then copy 7z.exe from C:\Program Files\7-Zip in to C:\Msys\1.0\bin&lt;br /&gt;
*If building self-contained packages fails with &#039;&#039;Error: cannot locate makensis tool&#039;&#039; then use:&lt;br /&gt;
&amp;lt;pre&amp;gt;PATH=/c/Program\ Files/NSIS/:$PATH make package-win32&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Win32CompileMSYSTroubleShooting&amp;diff=17117</id>
		<title>Win32CompileMSYSTroubleShooting</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Win32CompileMSYSTroubleShooting&amp;diff=17117"/>
		<updated>2010-09-22T22:55:09Z</updated>

		<summary type="html">&lt;p&gt;Rogerdpack: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of various errors that have occurred &amp;quot;over the years&amp;quot; during [[Win32CompileMSYSNew|building VLC with windows]], with their resolutions.   Of course, if it&#039;s not here, google is your friend.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*It doesn&#039;t link, and complains about missing gcc symbols: You missed this line in the instructions:&lt;br /&gt;
&lt;br /&gt;
Use text editor to change MinGW\lib\gcc\mingw32\4.4.0\libstdc++.la file (line should be library_names=&#039;&#039;) due to bug in latest MinGW.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Originally, there was apparently a bug with 4.4.0 GCC, fixed thus (except that in reality, you must use TDM, not vanilla GCC, because you need sljl exception handling):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Then, update Mingw GCC to 4.4.0 by downloading http://sourceforge.net/projects/mingw/files/GCC%20Version%204/gcc-full-4.4.0-mingw32-bin-2.tar.lzma/download and extracting it to C:\Mingw (replacing files when asked). Finally, you&#039;ll gave to fix the file C:\MinGW\lib\gcc\mingw32\4.4.0\libstdc++.la by opening it and changing the line defining library_names so that it reads &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;library_names=&#039;&#039;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Compilation stops early, after configure was complaining about mismatched quotes:&lt;br /&gt;
&lt;br /&gt;
Check the VLC_COMPILE_HOST variable in your config.h - if it&#039;s &#039;&#039;Option f is not valid&#039;&#039; then &#039;&#039;hostname -f&#039;&#039; fails (on Windows, there is no such option as -f). In configure.ac change &lt;br /&gt;
&amp;lt;pre&amp;gt;AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, &amp;quot;`hostname -f 2&amp;amp;gt; /dev/null || hostname`&amp;quot;, [host which ran configure])&amp;lt;/pre&amp;gt; &lt;br /&gt;
to &lt;br /&gt;
&amp;lt;pre&amp;gt;AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, &amp;quot;`hostname`&amp;quot;, [host which ran configure])&amp;lt;/pre&amp;gt; &lt;br /&gt;
*If compile complains about a config.h and pthread.h not found problem, just delete config.h&lt;br /&gt;
*If building self-contained packages fails with &#039;&#039;make: zip: Command not found&#039;&#039; then download the following file and extract it to C:\Msys\1.0 :&lt;br /&gt;
*http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/m/project/mi/mingw/MSYS/zip/zip-3.0-1/zip-3.0-1-msys-1.0.14-bin.tar.lzma&lt;br /&gt;
*If building self-contained packages fails with &#039;&#039;make: 7z: Command not found&#039;&#039; then copy 7z.exe from C:\Program Files\7-Zip in to C:\Msys\1.0\bin&lt;br /&gt;
*If building self-contained packages fails with &#039;&#039;Error: cannot locate makensis tool&#039;&#039; then use:&lt;br /&gt;
&amp;lt;pre&amp;gt;PATH=/c/Program\ Files/NSIS/:$PATH make package-win32&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rogerdpack</name></author>
	</entry>
</feed>