<?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=Ivoire</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=Ivoire"/>
	<link rel="alternate" type="text/html" href="https://wiki.videolan.org/Special:Contributions/Ivoire/"/>
	<updated>2026-11-04T15:55:28Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2011&amp;diff=18776</id>
		<title>SoC 2011</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2011&amp;diff=18776"/>
		<updated>2011-03-07T20:48:41Z</updated>

		<summary type="html">&lt;p&gt;Ivoire: /* Key ideas for VLC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Google Summer of Code 2011.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
This wiki page covers the attempt by the [[VideoLAN]] project to act as a mentoring organization for [http://code.google.com/soc/ Google Summer of Code], in order to improve {{VLC}}, [[X264]], the H.264 video encoder, and VLMC. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Introduction &amp;amp;amp; Information  ==&lt;br /&gt;
&lt;br /&gt;
This wiki page covers the attempt by the [[VideoLAN]] project to act as a mentoring organization for [http://code.google.com/soc/ Google Summer of Code], in order to improve {{VLC}} and [[X264]], the H.264 video encoder. &lt;br /&gt;
&lt;br /&gt;
[[VideoLAN]] was a mentoring organization in [[SoC 2007|2007]], [[SoC 2008|2008]], [[SoC 2009|2009]] and [[SoC 2010|2010]]. &lt;br /&gt;
&lt;br /&gt;
*This page list the ideas for VLC and VLMC &lt;br /&gt;
*There is also a separate page for project ideas for [[X264]]: &#039;&#039;&#039;[[SoC x264 2011]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you are a &#039;&#039;&#039;student&#039;&#039;&#039;, please read [[SoC 2011 Rules|the rules and advice]]. &lt;br /&gt;
&lt;br /&gt;
=== VLC media player  ===&lt;br /&gt;
&lt;br /&gt;
{{VLC}} is a cross-platform multimedia player, encoder and streamer application. It is one of the most successful open-source projects without any professional structure underneath. &lt;br /&gt;
&lt;br /&gt;
{{VLC}} is downloaded at an approximate monthly rate of 5 millions from the main website and that&#039;s not including third-party distributions (Linux)! &lt;br /&gt;
&lt;br /&gt;
You can find more information on [http://en.wikipedia.org/wiki/VLC_media_player VLC on Wikipedia] or on this [[Main Page|wiki]]. &lt;br /&gt;
&lt;br /&gt;
=== x264  ===&lt;br /&gt;
&lt;br /&gt;
{{x264}} is probably the most popular open source video compression software, used worldwide for applications such as web video, television broadcast, and Blu-ray authoring. It outclasses practically all commercial implementations both speed and compression-wise. While not actually part of VLC or ffmpeg, it is a major library used by both, licensed under the GPL. Due to its popularity in the commercial world (for example, Youtube and Facebook rely on it), many companies have offered bounties in the past for features and improvements that they found useful. &lt;br /&gt;
&lt;br /&gt;
=== Summer of Code  ===&lt;br /&gt;
&lt;br /&gt;
If selected and developed, SoC projects for VLC will be included in later releases; SoC projects for x264 will be included in the main tree of the project. &lt;br /&gt;
&lt;br /&gt;
All projects are covered by the GPL licence. (v2+) &lt;br /&gt;
&lt;br /&gt;
=== Ideas for VLC and VLMC  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Read this&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
This page is split in three lists of ideas: &lt;br /&gt;
&lt;br /&gt;
#The &#039;&#039;main ideas&#039;&#039; are what seem to be &#039;&#039;key projects&#039;&#039; for VLC and should be more &#039;&#039;thrilling&#039;&#039; than the other ones; we have assigned a potential mentor to each of these. &lt;br /&gt;
#Phonon ideas, for KDE/Phonon work. &lt;br /&gt;
#The other ideas are less detailed but could be good ideas too. &lt;br /&gt;
#VLMC ideas &lt;br /&gt;
#[[Mini Projects]] are short-span projects which can be given as Qualification tasks or extended to be Full Summer of Code project.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Original good ideas will be valued&#039;&#039;&#039;. Last year, half of the ideas were given by students. We don&#039;t want to impose anything. This is free and Open Source software.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to apply for SoC but want other ideas to develop on, check the [[Mini Projects]] page! &lt;br /&gt;
&lt;br /&gt;
And on the IRC channel, you can have even more ideas. &lt;br /&gt;
&lt;br /&gt;
=== Ideas for x264  ===&lt;br /&gt;
&lt;br /&gt;
For x264 ideas, please see [[SoC x264 2011]]. &lt;br /&gt;
&lt;br /&gt;
== Key ideas for VLC  ==&lt;br /&gt;
&lt;br /&gt;
=== Audio Filters  ===&lt;br /&gt;
&lt;br /&gt;
We are looking for a skilled audiophile that knows a lot about audio theory and practice: &lt;br /&gt;
&lt;br /&gt;
*to create or implement new algorithms, like SRS WoW or other 3D effects &lt;br /&gt;
*to work on channels mixing, &lt;br /&gt;
*to work on tracks mixing, &lt;br /&gt;
*to create scriptable new audio filters in lua and enable users to create whatever audio filtering function they want in a Lua script. &lt;br /&gt;
*LADSPA or other libraries integration will be interesting.&lt;br /&gt;
&lt;br /&gt;
This project needs some good audio knowledge and good C experience. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: [[User:Geal|geal]]&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== UPNP DLNA Server and Client  ===&lt;br /&gt;
&lt;br /&gt;
Provide SD module for DLNA shares being compliant with DLNA specification as well as software (say, mediatomb, xbmc, etc) and hardware implementations. &lt;br /&gt;
&lt;br /&gt;
Provide DLNA plugin for DLNA server compliant with opensource (xbmc, djmount, etc) and proprietary (PS3, xbox360, etc) DLNA clients. &lt;br /&gt;
&lt;br /&gt;
Be smart enough to provide &amp;quot;presets&amp;quot; for known DLNA media clients with limited features (PS3, for instance) which require additional quirks or hacks or items to be transcoded. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: ivoire or Meuuh&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Assembly optimizations in VLC  ===&lt;br /&gt;
&lt;br /&gt;
If you are fond of writing ASM and you are fluent in MMX/SSE2/SSE4, there are many interesting things in VLC to speed up. &lt;br /&gt;
&lt;br /&gt;
*Profiling VLC. &lt;br /&gt;
*memcpy implementations in SSE* and MMX (see modules/misc/memcpy/fastmemcpy.h) &lt;br /&gt;
*video filters ASM speedups (see modules/video_filter/blend.c) &lt;br /&gt;
*audio filters ASM speedups (see modules/audio_filter/equalizer.c) &lt;br /&gt;
*Porting other ASM video filters to VLC.&lt;br /&gt;
&lt;br /&gt;
This project needs some good ASM knowledge and good C experience. &lt;br /&gt;
&lt;br /&gt;
*Stuff to read: http://www.agner.org/optimize/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: [[User:J-b|jb]]&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== VLC Test Suite  ===&lt;br /&gt;
&lt;br /&gt;
This project aims at making automatic tests to improve VLC quality. &lt;br /&gt;
&lt;br /&gt;
*Write a series of tests for vlc-internal &lt;br /&gt;
*Integrate a framework for automated plugins testing with the automake build system &lt;br /&gt;
*Automate the different codec playback/mux/etc tests &lt;br /&gt;
*Automate the subtitles tests &lt;br /&gt;
*Write tests for the different bindings: Mac OS X Framework/Python Bindings... etc.&lt;br /&gt;
&lt;br /&gt;
This project is a code project, require good knowledge of C &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: Rémi&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== VLC Personnal Cloud Project 2.0  ===&lt;br /&gt;
&lt;br /&gt;
The personal cloud project is a simple project to allow people to play their media files anywhere in the world. &lt;br /&gt;
&lt;br /&gt;
Through the http interface of VLC, a user can: &lt;br /&gt;
&lt;br /&gt;
*list the medias from the Media Library, &lt;br /&gt;
*play those medias, &lt;br /&gt;
*those medias get transcoded and streamed in: &lt;br /&gt;
**Flash &lt;br /&gt;
**Silverlight &lt;br /&gt;
**iPhone format &lt;br /&gt;
**Android format &lt;br /&gt;
**html5 &lt;br /&gt;
**A VLC webplugin&lt;br /&gt;
&lt;br /&gt;
A good example of the aim is http://www.vodobox.c.la/ &lt;br /&gt;
&lt;br /&gt;
This project has to work on the configuration and NAT traversal. &lt;br /&gt;
&lt;br /&gt;
This projects needs knowledge in HTML and JS; it might require C coding. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: dionoea&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== VLC for Anime  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: jb&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== SVCD/VCD improvements  ===&lt;br /&gt;
&lt;br /&gt;
Menus and such needs to be improvements and fixed. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Automatic LibVLC bindings generation ===&lt;br /&gt;
&lt;br /&gt;
LibVLC can be used from several programming languages like Java or python to embbed VLC feature inside another application. Anyway, maintaining these binding is power consuming.&lt;br /&gt;
VLC needs a way to automatically generate theses binding for a large set of programming languages and keep them up-to-date easily.&lt;br /&gt;
We advice to use Swig (from http://www.swig.org/) but any other tool is accepted too.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: ivoire&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== VLC&amp;amp;nbsp;Student Proposals&amp;lt;br&amp;gt;  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== Mobile Remote Control  ===&lt;br /&gt;
&lt;br /&gt;
(proposed by akashm1990)&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The aim is to make a mobile remote control application for VLC running on the PC. This would be a native application.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The application will run on a mobile phone connected to the local network over WiFi.(probably using the http interface)&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
In addition to the usual remote control functionalities such as play,pause, open new file,volume control,etc. the application aims to implement 2 specific functionalities:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*On receiving an incoming call, if a video is playing on the PC, it will pause, or if music is playing, the volume may reduce. (user configurable)&amp;lt;br&amp;gt; &lt;br /&gt;
*On receiving an incoming text message, the video playing on screen is paused and the text is displayed onscreen. After a predetermined period of time, the video starts playing again.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Target Platforms: Android, Symbian(QT)&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
A video showing the auto pause functionality using Android emulators and the VLC Python API is shown here: &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
http://www.youtube.com/watch?v=ou5prh-EoBs&lt;br /&gt;
&lt;br /&gt;
== VLMC  ==&lt;br /&gt;
&lt;br /&gt;
VLMC is a non-linear cross-platform video editor based on VLC. We&#039;re looking for student(s) with good C++ skills and some experience with Qt with lots of passion of hacking. &lt;br /&gt;
&lt;br /&gt;
Hang with us at #vlmc or #videolan on irc.freenode.net and talk to the developers directly! &lt;br /&gt;
&lt;br /&gt;
To get selected: &lt;br /&gt;
&lt;br /&gt;
1. [http://wiki.videolan.org/Building_VLMC Download and build] VLMC and start playing with it. &lt;br /&gt;
&lt;br /&gt;
2. Implement some feature(s) or fix some bug(s), search VLMC&#039;s [http://trac.videolan.org/vlmc/report bug tracker]. &lt;br /&gt;
&lt;br /&gt;
3. Send your patch to vlmc-devel@videolan.org for evaluation and work on your GSoC proposal. &lt;br /&gt;
&lt;br /&gt;
4. Get selected and work on your project! &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; You&#039;ll be greatly appreciated if you complete any of the proposed qualification tasks: (in increasing level of difficulty) &lt;br /&gt;
&lt;br /&gt;
1. [http://trac.videolan.org/vlmc/ticket/134 Bug 134]: Update labels and strings when locale is changed. &lt;br /&gt;
&lt;br /&gt;
2. [http://trac.videolan.org/vlmc/ticket/61 Bug 61]: Improve project timeline widget to have clip thumbnail. &lt;br /&gt;
&lt;br /&gt;
3. [http://trac.videolan.org/vlmc/ticket/237 Bug 237]: Fix Detached Video Widget on Mac OS when a file is played. &lt;br /&gt;
&lt;br /&gt;
4. [http://trac.videolan.org/vlmc/ticket/145 Bug 145]: Project preview has no sound on Windows. &lt;br /&gt;
&lt;br /&gt;
5. [http://trac.videolan.org/vlmc/ticket/196 Bug 196]: Fix distorted audio playback in project preview. &lt;br /&gt;
&lt;br /&gt;
6. [http://trac.videolan.org/vlmc/ticket/144 Bug 144]: On some platforms, rendered video file has no sound. Identify the problem and fix it. &lt;br /&gt;
&lt;br /&gt;
=== GUI Improvements  ===&lt;br /&gt;
&lt;br /&gt;
Difficulty: Medium &lt;br /&gt;
&lt;br /&gt;
Proposed mentor: etix &lt;br /&gt;
&lt;br /&gt;
VLMC needs a GUI make over, using Qt APIs such as graphics view, animation, states etc. Correcting those widgets such as the import window, provide alternative widget so VLMC better fits with the video editing needs. &lt;br /&gt;
&lt;br /&gt;
Many widgets can be rewritten&amp;amp;nbsp;: Import, Library, Clip property... be creative&amp;amp;nbsp;! &lt;br /&gt;
&lt;br /&gt;
=== Quality Improvements: Writing Tests and fixing LibVLC APIs  ===&lt;br /&gt;
&lt;br /&gt;
Difficulty: Hard &lt;br /&gt;
&lt;br /&gt;
Proposed mentor:&amp;amp;nbsp;? (needs a VLC developer to mentor this one) &lt;br /&gt;
&lt;br /&gt;
While rendering preview and project, VLMC may sometimes crash due to bugs in the libVLC. The project will consist of; writing (unit) tests/test-cases for VLMC/libVLC APIs, and identify what&#039;s causing the crashes and fixing the bugs. The major area is rendering. Testing should be verified on at least two of the OSs: Linux, Windows and Mac. This project can help VLMC have stable releases and better quality control. &lt;br /&gt;
&lt;br /&gt;
=== Plugin Architecture for VLMC  ===&lt;br /&gt;
&lt;br /&gt;
Difficulty: Hard &lt;br /&gt;
&lt;br /&gt;
Proposed mentor:&amp;amp;nbsp;? &lt;br /&gt;
&lt;br /&gt;
VLMC uses frei0r plugins to add special effects. The project consists of designing and implementing a plugin architecture that can take in lua/python/compiled-plugins(.so) plugins.&lt;/div&gt;</summary>
		<author><name>Ivoire</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Git&amp;diff=14850</id>
		<title>Git</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Git&amp;diff=14850"/>
		<updated>2009-10-24T16:30:44Z</updated>

		<summary type="html">&lt;p&gt;Ivoire: /* Convert your tree to use your ssh push commit access */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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;
&lt;br /&gt;
&lt;br /&gt;
You can also clone using http with our repo.or.cz mirror.&lt;br /&gt;
 $ git clone http://repo.or.cz/r/vlc.git&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;
&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;
== 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 has 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 requirement ==&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;
 ssh://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>Ivoire</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2009/p2p_projectM&amp;diff=14366</id>
		<title>SoC 2009/p2p projectM</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2009/p2p_projectM&amp;diff=14366"/>
		<updated>2009-06-17T12:21:59Z</updated>

		<summary type="html">&lt;p&gt;Ivoire: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SoCProject|year=2009|student=[[User:ivoire|Rémi Duraffort]]|mentor=[[User:thresh|Pavlov Konstantin]]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
The goal of this Google Summer of Code is to implement two feature that are missing in vlc:&lt;br /&gt;
* visualisations using libprojectM librairie.&lt;br /&gt;
* p2p access capability&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! May 26&lt;br /&gt;
| Begining of the GSoC but work mainly on vlc next release (a lot of bugs fixed)&lt;br /&gt;
|-&lt;br /&gt;
| June 17&lt;br /&gt;
| libprojectM module mostly finished, code the p2p access&lt;br /&gt;
|-&lt;br /&gt;
| July 6-12&lt;br /&gt;
| Mid-term evaluation&lt;br /&gt;
|-&lt;br /&gt;
| August 24&lt;br /&gt;
| Final evaluation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Actually ==&lt;br /&gt;
The projectM module is mostly finished and give good results. You can try it (tested only under linux for the moment) from [http://git.videolan.org/?p=vlc-ivoire.git my git repository] and compiling vlc with the --enable-projectm configure option. You will need libprojectm-dev and an opengl provider module.&lt;/div&gt;</summary>
		<author><name>Ivoire</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2009_projects&amp;diff=14293</id>
		<title>SoC 2009 projects</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2009_projects&amp;diff=14293"/>
		<updated>2009-05-31T14:44:41Z</updated>

		<summary type="html">&lt;p&gt;Ivoire: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is a list of the accepted projects for Google Summer of Code 2OO9.&lt;br /&gt;
&lt;br /&gt;
= List of current VLC projects =&lt;br /&gt;
&lt;br /&gt;
== QuickTimeVR Playback ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC 2009/QuickTimeVR Playback]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:Leonox|León Moctezuma]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: [[User:Dionoea|Antoine Cellerier]]&lt;br /&gt;
* &#039;&#039;&#039;Comentor&#039;&#039;&#039;: Yuval Levy&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
:  VLC is a cross platform media player widely used and FreePV is a panoramic viewer that was initially developed due to the lack of an implementation of QuickTime and Shockwave for Linux, both work with QuickTime files and the problem arise from that, since video and vr share the mime type, to solve this, the main goal is to integrate the FreePV library into VLC to enable it to play QuickTimeVR contents, the second goal is to explore the use of wiimote as an advance interaction method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Media Library==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC 2009/Media Library]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:jetru|Srikanth Raju]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: [[User:J-Peg|Jean-Philippe Andre]]&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
:  The project is about extending the Media Library(ML) for VLC Player. The media library will allow users to manage all their local and network media. The project will use the basic structure that already exists for the ML and will focus on extending the features. New features include Search, Smart playlists, Annotations and &amp;quot;Just play music&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lua Services Discovery==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC 2009/Lua Services Discovery]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:Sephiroth87|Fabio Ritrovato]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: [[User:J-Peg|Jean-Philippe Andre]]&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
:The main goal of this project will be giving VideoLAN a Lua framework to load scriptable services discovery, to make them easier to write, if they don&#039;t require C complexity.&lt;br /&gt;
:Second goal will be giving VideoLAN access to a great number of online music and video services, like Jamendo, Magnatune, youtube, Dailymotion, etc..., using the new Lua modules.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==A Media Center Interface for VLC==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC 2009/Media Center Interface for VLC]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:barrywardell|Barry Wardell]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: [[User:ILEoo|Ilkka Ollakka]]&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
:While it is easy to use and functional, the existing default, Qt based GUI for VLC is quite minimal and basic. I propose to develop a new &amp;quot;Media Center&amp;quot; style GUI. This GUI will be based on Qt/OpenGL and will aim to be aesthetically pleasing, while remaining easy to use and functional. It will draw on many nice features of other popular media center software such as Front Row, Windows Media Center and XBMC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qt Interface Improvements==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC 2009/Qt Interface Improvements]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:cyril7|Cyril Nikolaev]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: [[User:J-b|Jean-Baptiste Kempf]]&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
:Though existing Qt interface offers the user extensive control over VLC functionality, there is much to do from a usability point of view. The project aims to streamline the interface, deliver it from pointless elements and integrate neatly the uncoordinated dilog boxes (like Adjustments or Playlist) into main interface. Reorganization of the interface would reduce user efforts (and mouse click) needed to access desired feature.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==DXVA integration==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC 2009/DXVA integration]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:Geal|Geoffroy Couprie]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: Jérôme Decoodt&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
:The Windows DXVA API gives access to video decoding and processing in the graphic card. Decoding with the GPU will reduce the load on the CPU and (hopefully) speed up the decoding. This project aims at creating a MPEG2 and H.264 decoder for VLC using this API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==RTMP Flash Streaming==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC 2009/RTMP Flash Streaming]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:zhigang|Zhigang Wang]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: [[User:Courmisch|Remi Denis-Courmont]]&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
:This project is about to implement the RTMP Streaming function for VLC media player. It includes RTMP input and output parts(Fix bugs in RTMP input module and total rewrite the RTMP output module). while Adobe is about to publish the RTMP protocol spec in the first half of this year, It&#039;s the time to do this job.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Audio Filters in lua ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC_2009/Audio_Filter_Improvement]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: Xiang Wang&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: [[User:Dionoea|Antoine Cellerier]]&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
:Lua script language has been used successfully to VLC.First I&#039;ll try to create scriptable new audio filters in lua and enable users to create whatever audio filtering function they want in a Lua script. The second task is to implement new algorithm for 3D effects of VLC filters.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GPU Decoding ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC_2009/GPU_Decoding_Support]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:Sterops|Etienne Membrives]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: [[User:jpsaman|Jean-Paul Saman]]&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
:The Video Acceleration API is an API designed to provide hardware acceleration for graphic application using the processing power of graphic cards. Drivers exists for Intel graphic cards. This project aims to implement a decoder and the corresponding video output for VLC, using the power of VA API to reduce CPU consumption while reading h.264, VC-1 and MPEG-4 videos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== libprojectM and p2p access ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC_2009/p2p_projectM]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:ivoire|Rémi Duraffort]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: [[User:thresh|Pavlov Konstantin]]&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
:The first goal of this project is to integrate libprojectM, an audio visualization library, into VLC. The second goal is to make VLC able to directly access to p2p content. This approach is a first step for the intagration of on-demand p2p streaming into VLC media player.&lt;br /&gt;
&lt;br /&gt;
= List of current x264 projects =&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= List of current VLMC projects =&lt;br /&gt;
==Enhancing VLMC==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC 2009/Enhancing VLMC]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:chouquette|Hugo Beauzee-Luyssen]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: Ludovic &#039;etix&#039; Fauvet&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
:The aim of this student project is to provide a functionnal video generation workflow for the video editing tool &#039;VLMC&#039;. It includes an effect and a transition API, in order to allow developpers to create new modules for this application. This project will be developped closely with VLMC team, so they can add required features, such as the timeline, a previsualisation widget, and many others...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:SoC_2009_Project]][[Category:SoC]]&lt;/div&gt;</summary>
		<author><name>Ivoire</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2009/p2p_projectM&amp;diff=14110</id>
		<title>SoC 2009/p2p projectM</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2009/p2p_projectM&amp;diff=14110"/>
		<updated>2009-05-16T20:39:45Z</updated>

		<summary type="html">&lt;p&gt;Ivoire: New page: {{SoCProject|year=2009|student=Rémi Duraffort|mentor=Pavlov Konstantin}}   == Abstract == The goal of this Google Summer of Code is to implement two featur...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SoCProject|year=2009|student=[[User:ivoire|Rémi Duraffort]]|mentor=[[User:thresh|Pavlov Konstantin]]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
The goal of this Google Summer of Code is to implement two feature that are missing in vlc:&lt;br /&gt;
* visualisations using libprojectM librairie.&lt;br /&gt;
* p2p access capability&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! May 26&lt;br /&gt;
| Begining of the GSoC&lt;br /&gt;
|-&lt;br /&gt;
| June 15&lt;br /&gt;
| libprojectM module finished, code the p2p access&lt;br /&gt;
|-&lt;br /&gt;
| July 6-12&lt;br /&gt;
| Mid-term evaluation&lt;br /&gt;
|-&lt;br /&gt;
| August 24&lt;br /&gt;
| Final evaluation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Actually ==&lt;br /&gt;
Trying to fix bugs on vlc 1.0.&lt;/div&gt;</summary>
		<author><name>Ivoire</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2009&amp;diff=13740</id>
		<title>SoC 2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2009&amp;diff=13740"/>
		<updated>2009-03-23T20:14:43Z</updated>

		<summary type="html">&lt;p&gt;Ivoire: I&amp;#039;m a student not a mentor&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Google Summer of Code 2009.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This wiki page covers the attempt by the [[VideoLAN]] project to act as a mentoring organization for [http://code.google.com/soc/ Google Summer of Code], in order to improve {{VLC}} and [[x264]], the H.264 video encoder.&lt;br /&gt;
&lt;br /&gt;
== Introduction &amp;amp; Information ==&lt;br /&gt;
&lt;br /&gt;
This wiki page covers the attempt by the [[VideoLAN]] project to act as a mentoring organization for [http://code.google.com/soc/ Google Summer of Code], in order to improve {{VLC}} and [[x264]], the H.264 video encoder.&lt;br /&gt;
&lt;br /&gt;
* This page list the ideas for VLC.&lt;br /&gt;
* There is also a separate page for project ideas for the [[x264]]: &#039;&#039;&#039;[[SoC x264 2009]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you are a &#039;&#039;&#039;student&#039;&#039;&#039;, please read the [[SoC_2009_Rules|rules]] and [[SoC_2009_Rules#Advices|advices]].&lt;br /&gt;
&lt;br /&gt;
=== VLC media player ===&lt;br /&gt;
{{VLC}} is a cross-platform multimedia player, encoder and streamer application.&lt;br /&gt;
It is one of the most successful open-source projects without any professional structure underneath.&lt;br /&gt;
&lt;br /&gt;
{{VLC}} is downloaded at an approximate monthly rate of 5 millions from the main website and that&#039;s not including third-party distributions (Linux)!&lt;br /&gt;
&lt;br /&gt;
You can find more information on [http://en.wikipedia.org/wiki/VLC_media_player VLC on Wikipedia] or on this [[Main_Page|wiki]].&lt;br /&gt;
&lt;br /&gt;
=== Summer of Code ===&lt;br /&gt;
&lt;br /&gt;
If selected and developed, SoC projects for VLC will be included in the VLC 1.1 or any later version release.&lt;br /&gt;
&lt;br /&gt;
SoC projects for x264 will be included in the main tree of the project.&lt;br /&gt;
&lt;br /&gt;
All projects are covered by the GPL licence. (v2+)&lt;br /&gt;
&lt;br /&gt;
=== Ideas for VLC ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Read this&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This page is split in three lists of ideas:&lt;br /&gt;
# The &#039;&#039;main ideas&#039;&#039; are what seem to be &#039;&#039;key projects&#039;&#039; for VLC and should be more &#039;&#039;thrilling&#039;&#039; than the other ones; we have assigned a potential mentor to each of these.&lt;br /&gt;
# The other ideas are less detailed but could be good ideas too.&lt;br /&gt;
# [[Mini_Projects]] has some ideas too.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Original good ideas will be valued&#039;&#039;&#039;. Last year, half of the ideas were given by students.  We don&#039;t want to impose anything. This is free and Open Source software.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to apply for SoC but want other ideas to develop on, check the [[Mini Projects]] page!&lt;br /&gt;
&lt;br /&gt;
And on IRC channel, you can have even more ideas.&lt;br /&gt;
&lt;br /&gt;
===Ideas for x264===&lt;br /&gt;
For x264 ideas, please see [[SoC x264 2009]].&lt;br /&gt;
&lt;br /&gt;
== Main ideas ==&lt;br /&gt;
&lt;br /&gt;
=== Qt pimping ===&lt;br /&gt;
&lt;br /&gt;
Improve Qt interface, used on linux and windows with use of Qt-Kinetic or plasma.&lt;br /&gt;
&lt;br /&gt;
The basic interface is good but could be improved in many ways.&lt;br /&gt;
&lt;br /&gt;
Try to borrow the best ideas for amarok, iTunes, WMP and integrate them into VLC.&lt;br /&gt;
&lt;br /&gt;
Look at other Qt applications or KDE applications.&lt;br /&gt;
&lt;br /&gt;
* You need some Qt and C++ knowlegde and a lot of creativity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: [[User:J-b|jb]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== QuickTimeVR Playback ===&lt;br /&gt;
This project deals with integration QuickTimeVR inside VLC using work from [http://freepv.sf.net FreePV] (SoC 2007).&lt;br /&gt;
&lt;br /&gt;
Other panoramic data inputs include video surveillance cameras with a 360° lens, regular images, etc.&lt;br /&gt;
&lt;br /&gt;
This project is likely to require some modification of the VLC image handling code.&lt;br /&gt;
&lt;br /&gt;
* Interests in photography is strongly suggested.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: dionoea&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Assembly optimizations in VLC ===&lt;br /&gt;
&lt;br /&gt;
If you are fond of writing ASM and you are fluent in MMX/SSE2, there are many interesting things in VLC to speed up.&lt;br /&gt;
* memcpy implementations in SSE2&lt;br /&gt;
* video filters ASM speedups&lt;br /&gt;
* audio filters ASM speedups&lt;br /&gt;
* Porting other ASM video filters to VLC.&lt;br /&gt;
* Profiling VLC.&lt;br /&gt;
&lt;br /&gt;
This project needs some good ASM knowledge and good C experience.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: [[User:J-b|jb]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Audio Filters ===&lt;br /&gt;
&lt;br /&gt;
We are looking for a skilled audiophile that knows a lot about audio theory and practice:&lt;br /&gt;
* to create or implement new algorithms, like SRS WoW or other 3D effects&lt;br /&gt;
* to work on channels mixing,&lt;br /&gt;
* to work on tracks mixing,&lt;br /&gt;
* to create scriptable new audio filters in lua and enable users to create whatever audio filtering function they want in a Lua script.&lt;br /&gt;
&lt;br /&gt;
This project needs some good audio knowledge and good C experience.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: [[User:Geal|geal]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Test Suite ===&lt;br /&gt;
This project aims at making automatic tests to improve VLC quality.&lt;br /&gt;
&lt;br /&gt;
* Write a series of tests for vlc-internal&lt;br /&gt;
* Integrate a framework for automated plugins testing with the automake build system&lt;br /&gt;
* Automate the different codec playback/mux/etc tests&lt;br /&gt;
* Automate the subtitles tests&lt;br /&gt;
* Write tests for the different bindings: Mac OS X Framework/Python Bindings... etc.&lt;br /&gt;
&lt;br /&gt;
This project is a code project, require good knowledge of C&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: Rémi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Media Library work ===&lt;br /&gt;
This project is about working on the media library in SQL.&lt;br /&gt;
&lt;br /&gt;
Modern media applications deal with a lot of huge quantity of data, and it can be difficult to deal with it.&lt;br /&gt;
This can mean:&lt;br /&gt;
* Smart Folders&lt;br /&gt;
* Smart Playlists&lt;br /&gt;
* IMDB integration&lt;br /&gt;
* Integrated and saved bookmarks&lt;br /&gt;
* MetaData searching and editing&lt;br /&gt;
* Voting and external data integration&lt;br /&gt;
&lt;br /&gt;
See http://jpeg.dinauz.org/VideoLAN/gsoc/&lt;br /&gt;
&lt;br /&gt;
Proposed mentor: &#039;&#039;jpeg&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Services Discovery, like Jamendo integration ===&lt;br /&gt;
&lt;br /&gt;
Jamendo, Last.fm and other online music and video services would be great to integrate into VLC.&lt;br /&gt;
&lt;br /&gt;
This project deals with this integration.&lt;br /&gt;
&lt;br /&gt;
* This needs lua, C and C++ programming skills.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: ?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== More Ideas ==&lt;br /&gt;
&lt;br /&gt;
=== QTKit access ===&lt;br /&gt;
Build a QTKit-based access module for OS X (allowing input from USB / FireWire cameras, audio devices, camcorders, tape recorders [, ...your favourite here] ). This access module will also need a nice component GUI.&lt;br /&gt;
&lt;br /&gt;
This project requires knowlege of C and preferably also Objective C, and interest in video/audio capture devices. Obviously, the student is required to own at a least a Mac with a (embedded) webcam and an audio input facility for development. Knowledge of the QuickTime APIs and previous experience with Cocoa are strong pluses.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: thedj&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===  GUI interfaces for the browsers plug-ins ===&lt;br /&gt;
This project focuses on adding interfaces to our browser plug-ins, in order to have, in the web pages embedded mode, buttons to control {{VLC}} as in WMP or Youtube player. These buttons need to be cross-platform and cross-browsers. A right-click context menu with basic commands might be a nice way to get started.&lt;br /&gt;
&lt;br /&gt;
The second part of this project aims to provide a replacement for all preconfigured media players embedded in web pages, if possible. For example, when a webpage asks for WMP embedded plugin, youtube player, quicktime player or any other, VLC would detect the stream and display it. This would mean less CPU needed than Flash based players.&lt;br /&gt;
&lt;br /&gt;
This project may need to work in concert with some improvements on the cache handling module access.&lt;br /&gt;
&lt;br /&gt;
The look of the interface should not be a problem. There is a proof of concept and a better design can be added later on.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: jpsaman and jpd&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Qt embedded interface ===&lt;br /&gt;
&lt;br /&gt;
VLC uses Qt for its main interfaces on desktop systems. It would be nice to have the same type of UI on systems like Maemo or Windows Mobile.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: ILEoo&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== OpenMAX AL bindings for LibVLC ===&lt;br /&gt;
&lt;br /&gt;
OpenMAX is a portable framework for handling audio, video and pictures.&lt;br /&gt;
&lt;br /&gt;
OpenMAX AL is an API designed to create and control media players, and make them communicate with devices such as audio inputs and outputs, cameras, LEDs, etc. In this project, the student would integrate LibVLC, the VLC framework with OpenMAX.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: Rémi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== DXVA Integration ===&lt;br /&gt;
Since Windows Vista, some nice APIs are available, and you can do fun things like GPU-based decoding. Some good work could be done here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: geal&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Linux GPU Acceleration Integration ===&lt;br /&gt;
Some nice APIs are available like VAAPI and like XvBA, and you can do fun things like GPU-based decoding.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: jpsaman&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Automated threading error detection ===&lt;br /&gt;
VLC is heavily multithreaded.&lt;br /&gt;
&lt;br /&gt;
This project would involve extending the VLC threading APIs to provide better run-time consistency checks, and possibly proof of correctness.&lt;br /&gt;
&lt;br /&gt;
This could be similar to the lock consistency checking in the Linux kernel, albeit more simple - VLC does not have to deal with interruptions neither atomic operation and has fewer thread and synchronisation constructs.&lt;br /&gt;
&lt;br /&gt;
This project requires working knowledge of the C programming language and POSIX threads.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;proposed mentor: ?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Skins improvements ===&lt;br /&gt;
&lt;br /&gt;
Better video output integration.&lt;br /&gt;
&lt;br /&gt;
Better skin support.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: ?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== SVCD handling ===&lt;br /&gt;
&lt;br /&gt;
Make SVCD&#039;s work. Menu selection, navigation and hot spots. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: ?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Mini Projects - More ideas ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Original&#039;&#039;&#039; ideas will be &#039;&#039;&#039;rewarded.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We have a more general page for ideas for Project in {{VLC}}, that could give you ideas: [[Mini_Projects]].&lt;br /&gt;
&lt;br /&gt;
* Visualisation improvements (libprojectM implementation ? )&lt;br /&gt;
&lt;br /&gt;
== Questions? Contact us? ==&lt;br /&gt;
If you need to contact us for any questions, you can:&lt;br /&gt;
* use this [[Talk:SoC_2009| Talk page]], &lt;br /&gt;
* use the [http://www.videolan.org/developers/lists.html vlc-devel] mailing list,&lt;br /&gt;
* come on IRC irc://irc.videolan.org #videolan&lt;br /&gt;
* contact one of the mentors or the backup mentors,&lt;br /&gt;
* or contact [[User:J-b| Jean-Baptiste Kempf]]&lt;br /&gt;
&lt;br /&gt;
=== Mentors ===&lt;br /&gt;
The proposed mentors are:&lt;br /&gt;
* jpeg&lt;br /&gt;
* remi&lt;br /&gt;
* xtophe&lt;br /&gt;
* jb&lt;br /&gt;
* dionoea&lt;br /&gt;
* jpsaman&lt;br /&gt;
* jpd&lt;br /&gt;
&lt;br /&gt;
=== Administrators ===&lt;br /&gt;
* jb&lt;br /&gt;
* xtophe&lt;br /&gt;
&lt;br /&gt;
[[Category:Activities]] [[Category:SoC]]&lt;/div&gt;</summary>
		<author><name>Ivoire</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=DirectFB_Compile&amp;diff=10909</id>
		<title>DirectFB Compile</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=DirectFB_Compile&amp;diff=10909"/>
		<updated>2008-03-09T09:12:46Z</updated>

		<summary type="html">&lt;p&gt;Ivoire: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This HOWTO explains howto build and install DirectFB for use with the VLC directfb plugin.&lt;br /&gt;
&lt;br /&gt;
For more details on DirectFB and its requirements you need to check the Internet site of [http://www.directfb.org/ DirectFB].&lt;br /&gt;
&lt;br /&gt;
== Building DirectFB on Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
Download the following DirectFB tarballs:&lt;br /&gt;
&lt;br /&gt;
* Mandatory tarballs:&lt;br /&gt;
** DirectFB-0.9.24.tar.gz&lt;br /&gt;
** linux-fusion-1.1.tar.gz&lt;br /&gt;
&lt;br /&gt;
* Optional tarballs:&lt;br /&gt;
** DirectFBGL-0.9.23.tar.gz&lt;br /&gt;
** FusionSound-0.9.23.tar.gz&lt;br /&gt;
&lt;br /&gt;
Read the DirectFB documentation carefully. You will need it to properly configure your system for use with DirectFB.&lt;br /&gt;
&lt;br /&gt;
Unpack DirectFB-0.9.24.tar.gz:&lt;br /&gt;
 $&amp;gt; tar -xzvf DirectFB-0.9.24.tar.gz -C directory_where_to_unpack&lt;br /&gt;
&lt;br /&gt;
=== Build Driver ===&lt;br /&gt;
Build Fusion DirectFB driver&lt;br /&gt;
&lt;br /&gt;
To build the fusion device driver the source for the Linux kernel your system is running must be installed. &lt;br /&gt;
If this is the case then continue with the following sequence of actions. If not then skip this chapter and continue with building DirectFB itself.&lt;br /&gt;
&lt;br /&gt;
Unpack Linux Fusion driver (linux-fusion-1.1.tar.gz):&lt;br /&gt;
 $&amp;gt; tar -xzvf linux-fusion-1.1.tar.gz -C directory_where_to_unpack&lt;br /&gt;
&lt;br /&gt;
Build the DirectFB&#039;s fusion driver:&lt;br /&gt;
 $&amp;gt; cd /linux-fusion-1.1/&lt;br /&gt;
 $&amp;gt; make&lt;br /&gt;
&lt;br /&gt;
And as root (hint: su - root):&lt;br /&gt;
 $&amp;gt; make install&lt;br /&gt;
&lt;br /&gt;
Copy fusion.h into /usr/include/linux directory:&lt;br /&gt;
 $&amp;gt; cp linux/include/linux/fusion.h /usr/include/linux&lt;br /&gt;
&lt;br /&gt;
=== Build DirectFB ===&lt;br /&gt;
&lt;br /&gt;
Unpack DirectFB-0.9.24.tar.gz:&lt;br /&gt;
 $&amp;gt; tar -xzvf DirectFB-0.9.24.tar.gz -C directory_where_to_unpack&lt;br /&gt;
&lt;br /&gt;
Configure DirectFB:&lt;br /&gt;
 $&amp;gt; cd /DirectFB-0.9.24/&lt;br /&gt;
&lt;br /&gt;
If the Fusion DirectFB driver has been compiled and installed against your running version of the Linux kernel, then the DirectFB configure-line looks like this: (If not the --enable-multi can be omitted.)&lt;br /&gt;
 $&amp;gt; ./configure --enable-multi&lt;br /&gt;
 $&amp;gt; make&lt;br /&gt;
&lt;br /&gt;
== Compiling VideoLAN VLC ==&lt;br /&gt;
&lt;br /&gt;
Checkout the [[Git]] version from the trunk directory or download one of the nightly snapshots. Then configure VLC using the following commandline:&lt;br /&gt;
 $&amp;gt; ./bootstrap&lt;br /&gt;
 $&amp;gt; ./configure --prefix=/usr --enable-directfb --with-directfb=directory_where_to_unpack/DirectFB-0.9.24&lt;br /&gt;
 $&amp;gt; make&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
This HOWTO has been written by [mailto:jpsaman_at_videolan_dot_org Jean-Paul Saman].&lt;br /&gt;
It has been adapted to this wiki by [[User:J-b| Jean-Baptiste Kempf]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Building]] [[Category:Coding]]&lt;/div&gt;</summary>
		<author><name>Ivoire</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Configure&amp;diff=10908</id>
		<title>Configure</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Configure&amp;diff=10908"/>
		<updated>2008-03-09T09:07:28Z</updated>

		<summary type="html">&lt;p&gt;Ivoire: We now use git instead of svn&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;configure&#039;&#039;&#039; (also known as &#039;&#039;&#039;./configure&#039;&#039;&#039;) is a [[wikipedia:bash|BASH script]] used to gather information about your computer and select options on what to link to and how. Before running [[make]] (which compiles vlc), you should run configure.&lt;br /&gt;
&lt;br /&gt;
If you are compiling source from [[Git]], then you should run ./bootstrap before running configure.&lt;br /&gt;
&lt;br /&gt;
You can run configure like this:&lt;br /&gt;
 ./configure --options&lt;br /&gt;
&lt;br /&gt;
== Options ==&lt;br /&gt;
Below are some common options for configure:&lt;br /&gt;
{|&lt;br /&gt;
! option !! meaning&lt;br /&gt;
|-&lt;br /&gt;
| --prefix=&#039;&#039;/home/user/vlc/&#039;&#039; || Sets the location of where to install vlc&lt;br /&gt;
|-&lt;br /&gt;
| --enable-flac || Turns on support for [[FLAC]] audio files&lt;br /&gt;
|-&lt;br /&gt;
| --enable-ffmpeg || Links with [[ffmpeg]]&lt;br /&gt;
|-&lt;br /&gt;
| --with-ffmpeg-tree=&#039;&#039;/home/user/ffmpeg&#039;&#039; || Location of ffmpeg source code&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
See `./configure --help&#039; for more information.&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
 ./configure --enable-x11 --enable-xvideo --disable-gtk \&lt;br /&gt;
 --enable-sdl --enable-ffmpeg --with-ffmpeg-mp3lame \&lt;br /&gt;
 --enable-mad --enable-libdvbpsi --enable-a52 --enable-dts \&lt;br /&gt;
 --enable-libmpeg2 --enable-dvdnav --enable-faad \&lt;br /&gt;
 --enable-vorbis --enable-ogg --enable-theora --enable-faac\&lt;br /&gt;
 --enable-mkv --enable-freetype --enable-fribidi \&lt;br /&gt;
 --enable-speex --enable-flac --enable-livedotcom \&lt;br /&gt;
 --with-livedotcom-tree=/usr/lib/live --enable-caca \&lt;br /&gt;
 --enable-skins --enable-skins2 --enable-alsa --disable-kde\&lt;br /&gt;
 --disable-qt --enable-wxwindows --enable-ncurses \&lt;br /&gt;
 --enable-release &lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&#039;&#039;From http://developers.videolan.org/vlc/vlc/INSTALL.win32&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you are cross-compiling from Debian, you can use something along those lines:&lt;br /&gt;
&lt;br /&gt;
  ./bootstrap &amp;amp;&amp;amp; \&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=i586-mingw32msvc-gcc CXX=i586-mingw32msvc-g++ \&lt;br /&gt;
  ./configure --host=i586-mingw32msvc --build=i386-linux \&lt;br /&gt;
      --disable-[[gtk]] \&lt;br /&gt;
      --enable-[[nls]] --enable-[[sdl]] --with-sdl-config-path=/usr/win32/bin \&lt;br /&gt;
      --enable-[[ffmpeg]] --with-ffmpeg-mp3lame --with-ffmpeg-[[faac]] \&lt;br /&gt;
      --with-ffmpeg-[[zlib]] --enable-[[faad]] --enable-[[flac]] --enable-[[theora]] \&lt;br /&gt;
      --with-[[wx]]-config-path=/usr/win32/bin \&lt;br /&gt;
      --with-[[freetype]]-config-path=/usr/win32/bin \&lt;br /&gt;
      --with-[[fribidi]]-config-path=/usr/win32/bin \&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-[[xml2]]-config-path=/usr/win32/bin \&lt;br /&gt;
      --with-[[dvdnav]]-config-path=/usr/win32/bin \&lt;br /&gt;
      --disable-[[cddax]] --disable-[[vcdx]] --enable-[[goom]] \&lt;br /&gt;
      --enable-[[twolame]] --enable-[[dvdread]] \&lt;br /&gt;
      --enable-[[debug]]&lt;br /&gt;
&lt;br /&gt;
If you are using cygwin, you can build VLC with or without the POSIX emulation layer. Without is usually better and with POSIX emulation hasn&#039;t been tested in about a year or so. So to build without the emulation layer, use something like this:&lt;br /&gt;
&lt;br /&gt;
  ./bootstrap &amp;amp;&amp;amp; \&lt;br /&gt;
  PKG_CONFIG_PATH=/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;
      --disable-gtk \&lt;br /&gt;
      --enable-nls --enable-sdl --with-sdl-config-path=/usr/win32/bin \&lt;br /&gt;
      --enable-ffmpeg --with-ffmpeg-mp3lame --with-ffmpeg-faac \&lt;br /&gt;
      --with-ffmpeg-zlib --enable-faad --enable-flac --enable-theora \&lt;br /&gt;
      --with-wx-config-path=/usr/win32/bin \&lt;br /&gt;
      --with-freetype-config-path=/usr/win32/bin \&lt;br /&gt;
      --with-fribidi-config-path=/usr/win32/bin \&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-xml2-config-path=/usr/win32/bin \&lt;br /&gt;
      --with-dvdnav-config-path=/usr/win32/bin \&lt;br /&gt;
      --disable-cddax --disable-vcdx --enable-goom \&lt;br /&gt;
      --enable-twolame --enable-dvdread \&lt;br /&gt;
      --enable-debug&lt;br /&gt;
&lt;br /&gt;
If you want to use the emulation layer, then just omit the CC=&amp;quot;gcc -mno-cygwin&amp;quot; CXX=&amp;quot;g++ -mno-cygwin&amp;quot; line. You&#039;re on your own though.&lt;br /&gt;
&lt;br /&gt;
If you are compiling with MSYS/MINGW, then you can use something along those lines:&lt;br /&gt;
  ./bootstrap &amp;amp;&amp;amp; \&lt;br /&gt;
  PKG_CONFIG_PATH=/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;
  ./configure \&lt;br /&gt;
      --disable-gtk \&lt;br /&gt;
      --enable-nls --enable-sdl --with-sdl-config-path=/usr/win32/bin \&lt;br /&gt;
      --enable-ffmpeg --with-ffmpeg-mp3lame --with-ffmpeg-faac \&lt;br /&gt;
      --with-ffmpeg-zlib --enable-faad --enable-flac --enable-theora \&lt;br /&gt;
      --with-wx-config-path=/usr/win32/bin \&lt;br /&gt;
      --with-freetype-config-path=/usr/win32/bin \&lt;br /&gt;
      --with-fribidi-config-path=/usr/win32/bin \&lt;br /&gt;
      --enable-caca --with-caca-config-path=/usr/win32/bin \&lt;br /&gt;
      --with-xml2-config-path=/usr/win32/bin \&lt;br /&gt;
      --with-dvdnav-config-path=/usr/win32/bin \&lt;br /&gt;
      --disable-cddax --disable-vcdx --enable-goom \&lt;br /&gt;
      --enable-twolame --enable-dvdread \&lt;br /&gt;
      --disable-[[mkv]] \&lt;br /&gt;
      --enable-debug&lt;br /&gt;
&lt;br /&gt;
If you have used the &amp;quot;extras/contrib&amp;quot; way, you don&#039;t need to precise the CFLAGS, LDFLAGS and --with-foo-config-path=.&lt;br /&gt;
 ./bootstrap &amp;amp;&amp;amp; \&lt;br /&gt;
  ./configure \&lt;br /&gt;
      --disable-gtk \&lt;br /&gt;
      --enable-nls --enable-sdl \&lt;br /&gt;
      --enable-ffmpeg --enable-faad --enable-flac --enable-theora \&lt;br /&gt;
      --disable-cddax --disable-vcdx --enable-goom \&lt;br /&gt;
      --enable-twolame --enable-dvdread \&lt;br /&gt;
      --enable-mkv --enable-caca --enable-live555\&lt;br /&gt;
      --enable-debug&lt;br /&gt;
&lt;br /&gt;
[[Category:Building]]&lt;/div&gt;</summary>
		<author><name>Ivoire</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=UnixCompile&amp;diff=10907</id>
		<title>UnixCompile</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=UnixCompile&amp;diff=10907"/>
		<updated>2008-03-09T09:03:04Z</updated>

		<summary type="html">&lt;p&gt;Ivoire: We now use git instead of svn&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Prepare your environment==&lt;br /&gt;
VLC uses gcc, automake, autoconf and friends for compilation. Make sure they are up to date and usable for your system.&lt;br /&gt;
&lt;br /&gt;
==Get the source==&lt;br /&gt;
Start by [[GetTheSource| getting the source]], using FTP for releases, or using [[Git]] for development.&lt;br /&gt;
&lt;br /&gt;
If your are using the release, download source code and extract the archive and go into your VLC directory.&lt;br /&gt;
 cd /path/to/your/vlc/folder/&lt;br /&gt;
&lt;br /&gt;
If you are using the [[Git]] version, start by bootstraping your VLC.&lt;br /&gt;
 cd /path/to/your/vlc/folder/&lt;br /&gt;
 ./bootstrap&lt;br /&gt;
&lt;br /&gt;
== Get the 3rd party libs ==&lt;br /&gt;
Now you can start to configure VLC. Remember to first take a look at ./configure --help. Take a good look at that enormous list of options. &lt;br /&gt;
&lt;br /&gt;
=== General info ===&lt;br /&gt;
It is very important that you install and enable all the 3rd party libraries that you will be needing and let me tell you that that are a lot. If you don&#039;t install them you will end up with an application that well..... essentially doesn&#039;t do a thing.&lt;br /&gt;
You can have the full list [[Contrib_Status|here]].&lt;br /&gt;
&lt;br /&gt;
There are some very important dependancies. gettext (nls) for international support (required), libdvbpsi for mpeg files and streams support, libmad for mp3 decoding, libmpeg2 for mpeg 1 and 2 video support, ffmpeg for support of mpeg4 and many other types of video, liba52 for dolby (AC3) sound, alsa for proper audio output, xvideo for proper video output, wxWidgets (wxGTK) for proper GUI support and libdvd* for DVD support.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be careful!&#039;&#039;&#039; Some of the libraries are better not to be installed (at all, beware of old installations) and should be linked to directly. These are mostly ffmpeg and liveMedia. &lt;br /&gt;
&lt;br /&gt;
There are also some libraries that are no longer being maintained and which we advise not to use. These include the gtk, gnome and kde GUIs, the glide and mga modules.&lt;br /&gt;
&lt;br /&gt;
===Get&#039;em===&lt;br /&gt;
There are a few ways to get those libs. You should use only one method at the time:&lt;br /&gt;
&lt;br /&gt;
* Using your distribution or portage system, in order to get all the needed libs (preferred method) :&lt;br /&gt;
By example on Debian or Ubuntu:&lt;br /&gt;
 # apt-get build-dep vlc;&lt;br /&gt;
&lt;br /&gt;
* Using the contribs system in VLC&#039;s sources&lt;br /&gt;
  % cd extras/contrib;&lt;br /&gt;
  % ./bootstrap;&lt;br /&gt;
  % make;&lt;br /&gt;
&lt;br /&gt;
This should download and build a lot of those libs for you.&lt;br /&gt;
&lt;br /&gt;
* Read the [[Contrib_Status|list]], then and do it by hand.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
You need to tweak your configure line.&lt;br /&gt;
&lt;br /&gt;
./configure is used to check that your system is able to compile VLC.&lt;br /&gt;
It&#039;s also now that you choose the functionalities of your build of VLC.&lt;br /&gt;
 % ./configure --help&lt;br /&gt;
will show you the various options&lt;br /&gt;
&lt;br /&gt;
===Special libs ===&lt;br /&gt;
Use --with-ffmpeg-tree=path/to/ffmpeg/source/tree and --with-livedotcom-path=path/to/livemedia/source/tree in connection with  --enable-ffmpeg and --enable-livedotcom&lt;br /&gt;
For ffmpeg it is also important to tell VLC if you compiled ffmpeg with faac and/or lame support. Use the --with-ffmpeg-faac and --with-ffmpeg-mp3lame configure flags.&lt;br /&gt;
&lt;br /&gt;
=== Final configuration ===&lt;br /&gt;
If you want to install VLC into another directory, run&lt;br /&gt;
 % ./configure --prefix=/path/to/install/folder/&lt;br /&gt;
&lt;br /&gt;
This is an example of a typical VLC configure line. &lt;br /&gt;
 % ./configure --enable-x11 --enable-xvideo --disable-gtk --enable-sdl --enable-ffmpeg --with-ffmpeg-mp3lame --enable-mad --enable-libdvbpsi --enable-a52&lt;br /&gt;
 --enable-dts --enable-libmpeg2 --enable-dvdnav --enable-faad --enable-vorbis --enable-ogg --enable-theora --enable-faac --enable-mkv --enable-freetype&lt;br /&gt;
 --enable-fribidi --enable-speex --enable-flac --enable-livedotcom --with-livedotcom-tree=/usr/lib/live --enable-caca --enable-skins --enable-skins2 &lt;br /&gt;
 --enable-alsa --disable-kde --enable-qt --enable-wxwindows --enable-ncurses --enable-release&lt;br /&gt;
&lt;br /&gt;
[[User:J-b#My VLC|Here]] is another.&lt;br /&gt;
&lt;br /&gt;
== Compilation ==&lt;br /&gt;
Compile VLC:&lt;br /&gt;
 % make&lt;br /&gt;
&lt;br /&gt;
As root (type &amp;quot;su&amp;quot; to change to root account):&lt;br /&gt;
 # make install&lt;br /&gt;
&lt;br /&gt;
To remove files created during the compile (optional) type:&lt;br /&gt;
 % make clean&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
=== Cygwin ===&lt;br /&gt;
Compiling on [[Win32CompileCygwin|Cygwin]] may be broken from time to time.&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Debian users who want to compile VLC should install the packages below. &lt;br /&gt;
Note: if you just want to &#039;&#039;use&#039;&#039; VLC media player then simply install the package vlc (apt-get install vlc) - the unstable version is normally very up-to-date (and stable is, er, stable ;-)&lt;br /&gt;
* [http://packages.debian.org/unstable/libdevel/libavcodec-dev libavcodec-dev]&lt;br /&gt;
* [http://packages.debian.org/unstable/libdevel/libpostproc-dev libpostproc-dev]&lt;br /&gt;
* [http://packages.debian.org/unstable/libdevel/libmpeg2-4-dev libmpeg2-4-dev]&lt;br /&gt;
&lt;br /&gt;
== Version ==&lt;br /&gt;
This HOWTO has been originally written by [mailto:hartman_at_videolan_dot_org Derk-Jan Hartman].&lt;br /&gt;
It has been modified and updated by [[User:J-b| Jean-Baptiste Kempf]].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* http://www.slacky.eu/repository/slackware-11.0/multimedia/vlc/0.8.6a/src/vlc.SlackBuild&lt;br /&gt;
[[Category:Building]]&lt;/div&gt;</summary>
		<author><name>Ivoire</name></author>
	</entry>
</feed>