<?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=Magsoft</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=Magsoft"/>
	<link rel="alternate" type="text/html" href="https://wiki.videolan.org/Special:Contributions/Magsoft/"/>
	<updated>2026-11-04T18:37:19Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2020&amp;diff=62018</id>
		<title>SoC 2020</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2020&amp;diff=62018"/>
		<updated>2020-02-24T09:32:40Z</updated>

		<summary type="html">&lt;p&gt;Magsoft: /* GPU shader filters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Google Summer of Code 2020}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;float: right;&amp;quot;&amp;gt;&lt;br /&gt;
https://developers.google.com/open-source/gsoc/images/gsoc2016-sun-373x373.png&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page summarizes the current list of ideas for VideoLAN project, for [https://summerofcode.withgoogle.com Google Summer Of Code 2020].&lt;br /&gt;
&lt;br /&gt;
The list is not exhaustive, and is not limitative. Feel free to apply with &#039;&#039;&#039;your own idea!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Introduction &amp;amp;amp; Information  ==&lt;br /&gt;
[[File:Asterix VLC.svg|frameless|right]]&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]], [[VLMC]] and [https://code.videolan.org/videolan/dav1d dav1d] (or the [[libVLC]] engine) and their dependencies.&lt;br /&gt;
&lt;br /&gt;
We have projects in &#039;&#039;&#039;C&#039;&#039;&#039;, &#039;&#039;&#039;C++&#039;&#039;&#039;, &#039;&#039;&#039;ASM&#039;&#039;&#039;, &#039;&#039;&#039;JS&#039;&#039;&#039;, &#039;&#039;&#039;Go&#039;&#039;&#039;, &#039;&#039;&#039;Obj-C&#039;&#039;&#039;, &#039;&#039;&#039;GPU Shaders&#039;&#039;&#039;, &#039;&#039;&#039;C#&#039;&#039;&#039;, &#039;&#039;&#039;Java/Kotlin&#039;&#039;&#039; and &#039;&#039;&#039;Swift&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Summer of Code ===&lt;br /&gt;
&lt;br /&gt;
Google Summer of Code is a way for &#039;&#039;&#039;university students&#039;&#039;&#039; to have a paid &#039;&#039;&#039;internship&#039;&#039;&#039; by &#039;&#039;&#039;Google&#039;&#039;&#039; to work on open source projects and become top developers!&lt;br /&gt;
&lt;br /&gt;
[[VideoLAN]] was a &#039;&#039;Google Summer of Code&#039;&#039; mentoring organization in [[SoC 2007|2007]], [[SoC 2008|2008]], [[SoC 2009|2009]], [[SoC 2010|2010]], [[SoC 2011|2011]], [[SoC 2013|2013]], [[SoC 2016|2016]], [[SoC_2017|2017]], [[SoC_2018|2018]] and [[SoC_2019|2019]].&lt;br /&gt;
&lt;br /&gt;
This page lists some ideas for Summer of Code projects on dav1d, VLMC, libVLC and {{VLC}}.&lt;br /&gt;
&lt;br /&gt;
=== VLC &amp;amp; libVLC  ===&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 25 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;
The engine of VLC is &#039;&#039;&#039;libVLC&#039;&#039;&#039;, and is used by &#039;&#039;&#039;VLMC&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== dav1d ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;dav1d&#039;&#039;&#039; is the reference AV1 decoder that is shipped inside VLC, Chrome and Firefox.&lt;br /&gt;
&lt;br /&gt;
It&#039;s a very low-level codec, mostly written in C and assembly.&lt;br /&gt;
&lt;br /&gt;
=== VideoLAN Movie Creator ===&lt;br /&gt;
[[VLMC]] is a cross-platform non-linear video editing software based on libVLC technology. It was started as a final year student project at the French IT school [http://www.epitech.eu EPITECH].&lt;br /&gt;
&lt;br /&gt;
[[VLMC]] currently awaits a transition to the current libvlc API and it&#039;s actual 1.0 release!&lt;br /&gt;
&lt;br /&gt;
=== Summer of Code rules ===&lt;br /&gt;
&lt;br /&gt;
If selected and developed, SoC projects for VLMC and VLC will be included in later releases.&lt;br /&gt;
&lt;br /&gt;
All projects are covered by the GPL (v2+) or LGPL (v2.1+) licenses depending on the module.&lt;br /&gt;
&lt;br /&gt;
== How to Start ==&lt;br /&gt;
=== Find an idea ===&lt;br /&gt;
First, you need to find an idea.&lt;br /&gt;
&lt;br /&gt;
This current page gives you a list of ideas. Those ideas are &#039;&#039;&#039;NOT exhaustive&#039;&#039;&#039;: you can bring your own idea! Some of the best ideas we&#039;ve ever had were &#039;&#039;&#039;custom&#039;&#039;&#039; ideas!&lt;br /&gt;
&lt;br /&gt;
=== Submit your idea ===&lt;br /&gt;
You need to submit your idea on the &#039;&#039;Google Summer of Code&#039;&#039; platform.&lt;br /&gt;
&lt;br /&gt;
You should do so, very quickly, even before having finished compilation and the next steps, so that we can give you early feedback.&lt;br /&gt;
&lt;br /&gt;
=== Compile libVLC or VLMC ===&lt;br /&gt;
This may sound trivial, but it&#039;s harder than many expect. See https://wiki.videolan.org/Category:Building/ for more informations.&lt;br /&gt;
&lt;br /&gt;
You should come on [[IRC]] to get help to compile.&lt;br /&gt;
&lt;br /&gt;
=== Provide a small patch ===&lt;br /&gt;
To demonstrate your skills, share a small patch with us. This will let you become familiar with [[Git]], in case you don&#039;t know it already and our process on [[Sending Patches VLC|merging patches]].&lt;br /&gt;
&lt;br /&gt;
=== Let&#039;s get in touch ===&lt;br /&gt;
&lt;br /&gt;
If you have a doubt, are not sure about anything or want clarification, please get in touch with us.&lt;br /&gt;
&lt;br /&gt;
We have 3 major communication channels:&lt;br /&gt;
* Our [https://mailman.videolan.org/mailman/listinfo mailing-lists] to discuss patches and further development related topics;&lt;br /&gt;
* Furthermore, we have our [http://forum.videolan.org web forums] for VLC-related end-user support - a VLMC section will be created once the product is published.&lt;br /&gt;
* Finally, there is our IRC channel &#039;&#039;#videolan&#039;&#039; (for libVLC) and &#039;&#039;#vlmc&#039;&#039; on the &#039;&#039;Freenode&#039;&#039; network. It&#039;s open to any kind of discussion. Usage issues, questions how to compile VLC/VLMC, getting to know the fellow developers, etc.&lt;br /&gt;
&lt;br /&gt;
= Ideas for VLC &amp;amp; libVLC =&lt;br /&gt;
== Advanced Audio Filters ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Project Description&#039;&#039;&#039;:&lt;br /&gt;
We are looking for a skilled audiophile that knows a lot about audio theory and practice to work on new audio filters for VLC.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tasks to do&#039;&#039;&#039;:&lt;br /&gt;
* SRS WoW like or other 3D effects;&lt;br /&gt;
* channels mixing, notably upmixing, like Prologic-II;&lt;br /&gt;
* tracks mixing, and transitions;&lt;br /&gt;
* 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. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;: &lt;br /&gt;
This project needs some good audio knowledge and good C experience.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Qualification task:&#039;&#039;&#039;&lt;br /&gt;
Port any audio filter from MPlayer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: unidan &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== VLC Qt interface work ==&lt;br /&gt;
&#039;&#039;&#039;Project Description&#039;&#039;&#039;:&lt;br /&gt;
The VLC interface is quite outdated on Linux and Windows. It has a lot of features, but some are not properly exposed.&lt;br /&gt;
&lt;br /&gt;
We are currently reworking the interface, but we need help.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scope of the tasks to do&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
The idea is to get closer to what the WinRT/UWP interface looks like &#039;&#039;(search on google image to get an idea)&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The WinRT interface is simpler, more user friendly, and has a better &amp;quot;media center&amp;quot; feel into it.&lt;br /&gt;
&lt;br /&gt;
It would require integration with the media library and with the current interface.&lt;br /&gt;
&lt;br /&gt;
Qml is the preferred way of improving the current UI.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;: &lt;br /&gt;
This project requires &#039;&#039;&#039;Qt/C++&#039;&#039;&#039; knowledge, and qml would be a nice plus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: Pierre&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== VLC.js ==&lt;br /&gt;
&#039;&#039;&#039;Project Description&#039;&#039;&#039;:&lt;br /&gt;
We&#039;re currently porting VLC to the web, using WebAssembly. This is a current work in progress, so we need a lot of help to improve it&lt;br /&gt;
&lt;br /&gt;
This requires working close to the toolchain, compilation and the web browsers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scope of the tasks to do&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
There are lots of things to do (not all of them need to be done by the same person:&lt;br /&gt;
* Improving compilation of the VLC core to Wasm,&lt;br /&gt;
* Improving compilation of VLC 3rd party libraries,&lt;br /&gt;
* Fixing the VLC core to support the Web platform,&lt;br /&gt;
* Implement WebCodec inside VLC,&lt;br /&gt;
* Improve audio pipeline inside VLC,&lt;br /&gt;
* Improve emscripten :)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;: &lt;br /&gt;
This project requires &#039;&#039;&#039;C&#039;&#039;&#039; knowledge, and compilation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: JB&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== VLC macOS interface  redesign ==&lt;br /&gt;
&#039;&#039;&#039;Project Description&#039;&#039;&#039;:&lt;br /&gt;
The VLC interface is quite outdated on macOS and we are currently in the process of re-writing it to give it a modern feel, but also to integrate recent additions to libvlc regarding playback control and library management.&lt;br /&gt;
&lt;br /&gt;
This project for the summer is to rework heavily this interface to make it beautiful and useful again.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scope of the tasks to do&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
There is a full design already done and tested. The major hurdle is to actually implement it the way we want it to be. The iOS/tvTV interface is simpler, more user friendly, and has a better &amp;quot;media center&amp;quot; feel into it, which influenced what we want to achieve on the Mac. Note that the objective is to use AppKit. UIKit (aka &amp;quot;Marzipan&amp;quot;) will not be part of this project.&lt;br /&gt;
&lt;br /&gt;
Iterating from the current UI and closely collaborating with the team currently working on it is a requirement.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;: &lt;br /&gt;
This project requires &#039;&#039;&#039;Obj-C&#039;&#039;&#039; knowledge, a thorough understanding of OOP and proven previous Mac development experience. You cannot use swift for this project.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: David Fuhrmann, Felix Paul Kühne&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GPU shader filters ==&lt;br /&gt;
&#039;&#039;&#039;Project Description&#039;&#039;&#039;:&lt;br /&gt;
VLC is using OpenGL and Direct3D11 on modern machines. It is now possible to do all kinds of video processing that was done in the CPU directly in the GPU.&lt;br /&gt;
&lt;br /&gt;
This project for the summer is to port some of the existing CPU filters to the GPU using shaders.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scope of the tasks to do&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
The first task will be to identify all the video filters in VLC and identify the ones that could be done as shaders. Then implement them. Either in OpenGL shaders, Direct3D11 shaders, both and maybe Vulkan.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;: &lt;br /&gt;
This project requires &#039;&#039;&#039;OpenGL&#039;&#039;&#039; or &#039;&#039;&#039;Direct3D11&#039;&#039;&#039; shaders knowledge as well as knowledge on video filters in general.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: Steve Lhomme, unidan&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== VLC iOS new UI ==&lt;br /&gt;
&#039;&#039;&#039;Project Description&#039;&#039;&#039;:&lt;br /&gt;
We&#039;re currently in the process of rewriting and updating the entire UI for VLC iOS &lt;br /&gt;
&lt;br /&gt;
There is a lot of components that need refactoring and need to get an updated UI. Like for example the network navigation section.&lt;br /&gt;
&lt;br /&gt;
Further more tests should be written for these components to ensure that we don&#039;t break features on old or new devices.&lt;br /&gt;
&lt;br /&gt;
The project for this summer is to write these components in Swift with updated UI and make sure the app becomes and stays stable.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tasks to do&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
*Get an overview of the current App and components that need an update &lt;br /&gt;
*Refactor and give the appropriate components a new look&lt;br /&gt;
*Writing tests for these components to ensure that functionality works on all supported devices&lt;br /&gt;
*Rewriting the first start screens &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;: &lt;br /&gt;
This project requires &#039;&#039;&#039;Obj-C&#039;&#039;&#039; and &#039;&#039;&#039;Swift&#039;&#039;&#039; knowledge and ideally knowledge of writing tests for iOS but this can be learned.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: Soomin Lee, Felix Paul Kühne &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Open Source Fuzzing platform ==&lt;br /&gt;
&lt;br /&gt;
The idea of this project is to develop a new web platform to support fuzzing or code analysis, like oss_fuzz, but open source.&amp;lt;br /&amp;gt;&lt;br /&gt;
That would allow to see the defects, to be able to act on them.&lt;br /&gt;
&lt;br /&gt;
It should be adaptable for clang-analyser or other similar tools.&lt;br /&gt;
&lt;br /&gt;
It can be based on gitlab, if needed, but should be developed in Go.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;: &lt;br /&gt;
This project requires &#039;&#039;&#039;Go&#039;&#039;&#039; knowledge and ideally knowledge of &#039;&#039;&#039;JS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: Hugo Beauzée-Luyssen&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Interactive movie support ==&lt;br /&gt;
&lt;br /&gt;
The idea is to add support for interactive movies inside VLC using the matroska.org mkv format. An interactive movie is like a gamebook but for movies.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tasks to do&#039;&#039;&#039;:&lt;br /&gt;
* Extend the MKV spec to add support for titles, menus, that will be used by interactive movies&lt;br /&gt;
* Improve a MKV muxing tool (ffmpeg, mkvtoolnix) to support the extended spec&lt;br /&gt;
* Add interactive movies support inside VLC&#039;s MKV module&lt;br /&gt;
&lt;br /&gt;
Those will be done in &#039;&#039;&#039;C&#039;&#039;&#039; and &#039;&#039;&#039;C++&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: Thomas Guillem, Steve Lhomme&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Develop a MPD server inside VLC ==&lt;br /&gt;
&lt;br /&gt;
The idea is to add support for VLC to act as a MPD server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tasks to do&#039;&#039;&#039;:&lt;br /&gt;
* study the MPD protocol&lt;br /&gt;
* code a MPD server as a control module&lt;br /&gt;
* connect to the medialibrary&lt;br /&gt;
* implement advanced MPD features&lt;br /&gt;
&lt;br /&gt;
Those will be done in &#039;&#039;&#039;C&#039;&#039;&#039; and &#039;&#039;&#039;C++&#039;&#039;&#039;, and it requires familiarity with an MPD client&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: Thomas Guillem&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Improve the web interface of VLC in Vue.js ==&lt;br /&gt;
&lt;br /&gt;
The idea is to improve the new web interface of VLC, that is currently in &#039;&#039;&#039;Vue.JS&#039;&#039;&#039;. It requires significant improvements&lt;br /&gt;
&lt;br /&gt;
* Review the current code&lt;br /&gt;
* Clean and improve the modularity&lt;br /&gt;
* Adapt to the new playlist code&lt;br /&gt;
* Connect to the new medialibrary&lt;br /&gt;
* Improve the look&lt;br /&gt;
&lt;br /&gt;
Those will be done in &#039;&#039;&#039;C&#039;&#039;&#039; and &#039;&#039;&#039;C++&#039;&#039;&#039;, and it requires familiarity with an MPD client&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: David&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Improve VLCKit Objective-C - Swift interoperability == &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Project description&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Currently VLCKit is not very &#039;&#039;&#039;Swift&#039;&#039;&#039; friendly.&lt;br /&gt;
Indeed, it will be beneficial for VLCKit to have a better &#039;&#039;&#039;Swift&#039;&#039;&#039; interoperability interface than one generated by default.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tasks to do&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Study exposed VLCKit methods&lt;br /&gt;
* Improve Objective-C - Swift interop&lt;br /&gt;
* Make a test Swift project to test the interoperability&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;: This project requires &#039;&#039;&#039;Objective-C&#039;&#039;&#039; and &#039;&#039;&#039;Swift&#039;&#039;&#039; knowledge.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Proposed mentor&#039;&#039;&#039;: Felix Paul Kühne, Soomin Lee&lt;br /&gt;
&lt;br /&gt;
== Other ideas for VLC &amp;amp; libVLC ==&lt;br /&gt;
&lt;br /&gt;
Those ideas are not detailed, but they are ideas that we could help to spring new ideas.&lt;br /&gt;
We can help work with you to make those more detailed.&lt;br /&gt;
&lt;br /&gt;
* Integrate &#039;&#039;&#039;Rust&#039;&#039;&#039; inside VLC, as a demuxer or a parser&lt;br /&gt;
* Improve Vulkan output for VLC, including HDR support&lt;br /&gt;
* Improve id3 tag and metadata handling in VLC&lt;br /&gt;
* Support NVDec decoding inside VLC&lt;br /&gt;
* Work on emscripten version of VLC, aka VLC.js&lt;br /&gt;
* Bridge module for GMI&#039;C or other video filters&lt;br /&gt;
* Automated Testing Environment like ffmpeg Fate (port ?) for demuxing, non-hw decoding&lt;br /&gt;
* Integrate libavfilter in VLC&lt;br /&gt;
* Improve the libVLCSharp bindings for VLC in &#039;&#039;&#039;C#&#039;&#039;&#039;&lt;br /&gt;
* Provide setups for popular streaming services / sout templates (ui ?)&lt;br /&gt;
&lt;br /&gt;
= Ideas for VLMC =&lt;br /&gt;
&lt;br /&gt;
== Port to Android ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Project Description&#039;&#039;&#039;: &lt;br /&gt;
VLMC is now working on the desktop. It would be nice to port it also to the mobile world, starting by Android.&lt;br /&gt;
&lt;br /&gt;
This project would require to adapt to smaller screens, and simplify the UI to fit the Android workflow.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tasks to do&#039;&#039;&#039;:&lt;br /&gt;
# Fix the VLMC build for Android. As libVLC works fine on Android, this is more focused on compiling the Qt part for Android.&lt;br /&gt;
# Split more parts of the UI in components that are reusable on mobile.&lt;br /&gt;
# Change the components to fit the small resolutions of the Android devices.&lt;br /&gt;
# Rewrite some UI components in QML.&lt;br /&gt;
# Write a simpler timeline widget for Mobile workflows.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;: This project requires &#039;&#039;&#039;C++/Qt/qml&#039;&#039;&#039; knowledge, and access to Android devices.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentors: Geoffrey/Hugo&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Port to iOS ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Project Description&#039;&#039;&#039;: &lt;br /&gt;
VLMC is now working on the desktop. It would be nice to port it also to the mobile world, also on iOS.&lt;br /&gt;
&lt;br /&gt;
This project would require to adapt to smaller screens, and simplify the UI to fit the iOS workflow.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tasks to do&#039;&#039;&#039;:&lt;br /&gt;
# Fix the VLMC build for iOS. As libVLC works fine on iOS, this is more focused on compiling the Qt part for iOS.&lt;br /&gt;
# Split more parts of the UI in components that are reusable on mobile.&lt;br /&gt;
# Change the components to fit the small resolutions of the iOS devices.&lt;br /&gt;
# Rewrite some UI components in QML.&lt;br /&gt;
# Write a simpler timeline widget for Mobile workflows.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;: This project requires &#039;&#039;&#039;C++/Qt/qml&#039;&#039;&#039; knowledge, and access to iOS devices. Previous iOS development experience is preferred.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentors: Felix/Hugo&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Media Workflow rework ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Project Description&#039;&#039;&#039;:&lt;br /&gt;
VLMC is now working on the desktop, but the media workflow is quite slow and is missing some common use cases.&lt;br /&gt;
&lt;br /&gt;
This should be fixed in [https://github.com/mltframework/mlt MLT] framework backend for libVLC and is the continuation from the work from the previous Summer of Code.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tasks to do&#039;&#039;&#039;:&lt;br /&gt;
# Understand the MLT libVLC backend codebase,&lt;br /&gt;
# Clean the backend and port it to a cleaner code state in C++,&lt;br /&gt;
# Benchmark the code and make it more efficient,&lt;br /&gt;
# Work to merge this backend upstream,&lt;br /&gt;
# Implement all the missing features in libVLC.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;: This project requires &#039;&#039;&#039;C/C++&#039;&#039;&#039; knowledge, and understanding of multimedia concepts is a good positive point.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentors: Hugo&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Workflow audio filters ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Project Description&#039;&#039;&#039;:&lt;br /&gt;
VLMC is now working on the desktop, but we need to have a good setup of audio filters to make it usable for most people.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tasks to do&#039;&#039;&#039;:&lt;br /&gt;
# Understand the VLMC and MLT codebase interactions,&lt;br /&gt;
# Add audio filters on the MLT framework backend using the [https://en.wikipedia.org/wiki/LADSPA LADSPA]/[http://lv2plug.in/ LV2] library or a similar open source library,&lt;br /&gt;
# Code the interface corresponding to those filters, and their options,&lt;br /&gt;
# Prepare visualizations, and notably for soundwave filters,&lt;br /&gt;
# Integrate those inside the timeline UI,&lt;br /&gt;
# Optimize.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;: This project requires &#039;&#039;&#039;C++/Qt/qml&#039;&#039;&#039; knowledge, and enough understanding of audio.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentors: J-B&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Workflow video filters ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Project Description&#039;&#039;&#039;:&lt;br /&gt;
VLMC is now working on the desktop, but we need to have a good setup of video filters to make it usable for most people.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tasks to do&#039;&#039;&#039;:&lt;br /&gt;
# Understand the VLMC and MLT codebase interactions,&lt;br /&gt;
# Add video filters on the MLT framework backend using the [https://git.sesse.net/?p=movit;a=summary movit] library or a similar open source library,&lt;br /&gt;
# Code the interface corresponding to those filters, and their options,&lt;br /&gt;
# Add transitions between clips&lt;br /&gt;
# Code the interface to manage those transitions,&lt;br /&gt;
# Optimize the code.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;: This project requires &#039;&#039;&#039;C/C++&#039;&#039;&#039; knowledge.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentors: Felix&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Improve multiplatform support ==&lt;br /&gt;
VLMC is aiming at being fully cross platform, but drifted a bit from that goal. While most VLMC&#039;s code is cross platform, and can be easily built targeting platforms, some dependencies might prove more difficult to build or compose with VLMC.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tasks to do&#039;&#039;&#039;:&lt;br /&gt;
# Fix MLT cross compilation for Windows (This will most likely require patching directly inside MLT, all contributions must be sent upstream). &lt;br /&gt;
# Fix medialibrary code &amp;amp; build process on macOS (and potentially iOS). The medialibrary misses some platform specific code to be able to list all connected drives (hard drives &amp;amp; USB removable storage, mostly) along with filesystem browsing&lt;br /&gt;
# Update the documentation along the way&lt;br /&gt;
# Create jenkins build configuration to have nightly builds on jenkins.videolan.org &amp;amp; nightlies.videolan.org for all supported platforms&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;: This project requires buildsystems/toolchains knowledge, basic system programming on macOS &amp;amp; Windows&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentors: Hugo&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Remote UI ==&lt;br /&gt;
&lt;br /&gt;
We would like to have a way to use VLMC from a web browser. You can easily imagine having a nice, shiny &amp;amp; simple UI for minimal movie edition, which would go hand in hand with the cloud storage feature.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tasks to do&#039;&#039;&#039;:&lt;br /&gt;
This task aims toward the uncoupling of the rendering backend &amp;amp; UI, as the renderer will run server side, while the UI runs on the client side.&lt;br /&gt;
&lt;br /&gt;
The idea is to be able to have a UI interacting with the renderer without having to be in the same process, or even machine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;: This project requires &#039;&#039;&#039;C++&#039;&#039;&#039; and &#039;&#039;&#039;JS&#039;&#039;&#039; knowledge.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor&#039;&#039;: jb, chouquette, fkuehne&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Ideas for dav1d =&lt;br /&gt;
&lt;br /&gt;
== dav1d ARM NEON optimization ==&lt;br /&gt;
&lt;br /&gt;
Improving the performance of the AV1 decoder is very important for VLC and the whole ecosystem.&lt;br /&gt;
&lt;br /&gt;
It requires to:&lt;br /&gt;
* Profiling to identify hotspots of the new libdav1d video decoder on arm64 across common test files&lt;br /&gt;
* Analysis of potential benefits of NEON SIMD for these hotspots&lt;br /&gt;
* Write arm64 NEON optimization using directly written assembly code&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;: This project requires &#039;&#039;&#039;C&#039;&#039;&#039; and &#039;&#039;&#039;ASM&#039;&#039;&#039; knowledge, as well as system programming skills&lt;br /&gt;
&lt;br /&gt;
Contact &#039;j-b&#039;&lt;br /&gt;
&lt;br /&gt;
== dav1d GPU Compute Shaders ==&lt;br /&gt;
&lt;br /&gt;
Improving the performance of the AV1 decoder is very important for VLC and the whole ecosystem.&lt;br /&gt;
&lt;br /&gt;
This project requires to port one of the filter, like SGR or Wiener to one of the Shader languages. iPhones or Xbox One would be a good target.&lt;br /&gt;
&lt;br /&gt;
This is a tricky project, but is doable during the summer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;: This project requires &#039;&#039;&#039;C&#039;&#039;&#039; and &#039;&#039;&#039;GPU Shaders&#039;&#039;&#039; knowledge, as well as system programming skills&lt;br /&gt;
&lt;br /&gt;
Contact &#039;j-b&#039;&lt;br /&gt;
&lt;br /&gt;
== dav1d statistics extractions ==&lt;br /&gt;
&lt;br /&gt;
The [https://code.videolan.org/videolan/dav1d dav1d] AV1 decoder is a new high performance AV1 decoder by &lt;br /&gt;
VideoLAN.&lt;br /&gt;
&lt;br /&gt;
Current open source tools for AV1 analysis use instrumentation in the reference decoder [https://aomedia.googlesource.com/aom libaom] to extract decode-time metadata for display and reporting, but support for sophisticated analysis is lacking.&lt;br /&gt;
&lt;br /&gt;
To speed development of AV1 tools like the rav1e, it would be helpful to add similar decoder metadata extraction APIs to the dav1d decoder so that rapid testing of encoder algorithms is easier.  This includes the ability to quickly produce statistics, visualizations and other &lt;br /&gt;
reporting that can be used for tuning encoder parameters or guiding development.  Advanced ideas include adding similar encoder metadata API to rav1e that add encode-time visualizations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;: This project requires &#039;&#039;&#039;C&#039;&#039;&#039; knowledge.&lt;br /&gt;
&lt;br /&gt;
Contact &#039;unlord&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Ideas for VLC dependencies =&lt;br /&gt;
&lt;br /&gt;
== libmicrodns refactoring ==&lt;br /&gt;
&lt;br /&gt;
Our current mDNS discoverer is working, but is not so respectful of the RFC.&lt;br /&gt;
Possible improvements include:&lt;br /&gt;
* Device TTL support&lt;br /&gt;
* Device removal detection&lt;br /&gt;
* Better request pacing&lt;br /&gt;
* Delegate socket interactions to the caller&lt;br /&gt;
* Unit testing&lt;br /&gt;
* Fuzzing&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;: This project require &#039;&#039;&#039;C&#039;&#039;&#039; knowledge, as well as system programming skills&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor&#039;&#039;: chouquette, tguillem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== rav1e, the AV1 encoder in Rust ==&lt;br /&gt;
&lt;br /&gt;
The [https://github.com/xiph/rav1e rav1e] project aims to create a new AV1 encoder implementation in &lt;br /&gt;
Rust.&lt;br /&gt;
&lt;br /&gt;
To support this we need better AV1 analysis tools that give detailed information about AV1 streams including:&lt;br /&gt;
&lt;br /&gt;
* bit rate across the frame&lt;br /&gt;
* frame allocation within a scene&lt;br /&gt;
* display of frame data (block partitioning, mode decisions, motion vectors, etc)&lt;br /&gt;
* objective quality over time&lt;br /&gt;
* average rate (for streaming)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;: This project requires &#039;&#039;&#039;Rust&#039;&#039;&#039; knowledge.&lt;br /&gt;
&lt;br /&gt;
Contact &#039;unlord&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{GSoC}}&lt;br /&gt;
[[Category:SoC]]&lt;/div&gt;</summary>
		<author><name>Magsoft</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VDD19/Sponsor_Policy&amp;diff=61886</id>
		<title>VDD19/Sponsor Policy</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VDD19/Sponsor_Policy&amp;diff=61886"/>
		<updated>2019-10-13T19:19:44Z</updated>

		<summary type="html">&lt;p&gt;Magsoft: /* Who can be sponsored? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{VDD}}&lt;br /&gt;
= VDD 2019 Travel Sponsor Policy =&lt;br /&gt;
&lt;br /&gt;
Since [[VDD19]] is in Tokyo, it will cost a lot more money for [[VideoLAN]]. Remember that the non-profit is paying all this from donations.&lt;br /&gt;
&lt;br /&gt;
Therefore, there are a few rules for sponsorship, that will be enforced.&lt;br /&gt;
&lt;br /&gt;
= Who can be sponsored? =&lt;br /&gt;
&lt;br /&gt;
People who are part of the development communities, that are not paid by a corporation to work on multimedia, can be sponsored.&lt;br /&gt;
&lt;br /&gt;
This includes all the development communities around VLC or FFmpeg or Kodi.&lt;br /&gt;
&lt;br /&gt;
If you were sponsored in the past, you should be able to be sponsored this year.&lt;br /&gt;
&lt;br /&gt;
If you are a member of the VideoLAN non-profit organization, you should be sponsored.&lt;br /&gt;
&lt;br /&gt;
If you are not part of a development community, but you really want to come, talk to us.&lt;br /&gt;
&lt;br /&gt;
However, if you are an unactive developer, this might be a bit more tricky.&lt;br /&gt;
&lt;br /&gt;
= Cost =&lt;br /&gt;
&lt;br /&gt;
* Please try to keep your cost of flights to a minimum.&lt;br /&gt;
* Don&#039;t make it insane, like 15hours stop or 3 stops to come to Tokyo.&lt;br /&gt;
* If you find something under 750€ from Europe, or 900€ from the US, take it directly.&lt;br /&gt;
* Else, you can ask on IRC &#039;&#039;(or mail)&#039;&#039; to jb or TypX.&lt;br /&gt;
* If you find an expensive flight that you really want, we might be able to cover part of it only. Talk to us for more information.&lt;br /&gt;
&lt;br /&gt;
If you need help with airfares, you can solicit advice on the Freenode IRC #libav-travel channel.&lt;/div&gt;</summary>
		<author><name>Magsoft</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VDD19/Sponsor_Policy&amp;diff=61885</id>
		<title>VDD19/Sponsor Policy</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VDD19/Sponsor_Policy&amp;diff=61885"/>
		<updated>2019-10-13T19:19:20Z</updated>

		<summary type="html">&lt;p&gt;Magsoft: /* Who can be sponsored? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{VDD}}&lt;br /&gt;
= VDD 2019 Travel Sponsor Policy =&lt;br /&gt;
&lt;br /&gt;
Since [[VDD19]] is in Tokyo, it will cost a lot more money for [[VideoLAN]]. Remember that the non-profit is paying all this from donations.&lt;br /&gt;
&lt;br /&gt;
Therefore, there are a few rules for sponsorship, that will be enforced.&lt;br /&gt;
&lt;br /&gt;
= Who can be sponsored? =&lt;br /&gt;
&lt;br /&gt;
People who are part of the development communities, that are not paid by a corporation to work on multimedia, can be sponsored.&lt;br /&gt;
&lt;br /&gt;
This includes all the development communities around VLC or FFmpeg or Kodi.&lt;br /&gt;
&lt;br /&gt;
If you were sponsored in the past, you should be able to be sponsored this year.&lt;br /&gt;
&lt;br /&gt;
If you are part of the VideoLAN non-profit organization, you should be sponsored.&lt;br /&gt;
&lt;br /&gt;
If you are not part of a development community, but you really want to come, talk to us.&lt;br /&gt;
&lt;br /&gt;
However, if you are an unactive developer, this might be a bit more tricky.&lt;br /&gt;
&lt;br /&gt;
= Cost =&lt;br /&gt;
&lt;br /&gt;
* Please try to keep your cost of flights to a minimum.&lt;br /&gt;
* Don&#039;t make it insane, like 15hours stop or 3 stops to come to Tokyo.&lt;br /&gt;
* If you find something under 750€ from Europe, or 900€ from the US, take it directly.&lt;br /&gt;
* Else, you can ask on IRC &#039;&#039;(or mail)&#039;&#039; to jb or TypX.&lt;br /&gt;
* If you find an expensive flight that you really want, we might be able to cover part of it only. Talk to us for more information.&lt;br /&gt;
&lt;br /&gt;
If you need help with airfares, you can solicit advice on the Freenode IRC #libav-travel channel.&lt;/div&gt;</summary>
		<author><name>Magsoft</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VDD19/Sponsor_Policy&amp;diff=61884</id>
		<title>VDD19/Sponsor Policy</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VDD19/Sponsor_Policy&amp;diff=61884"/>
		<updated>2019-10-13T19:19:07Z</updated>

		<summary type="html">&lt;p&gt;Magsoft: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{VDD}}&lt;br /&gt;
= VDD 2019 Travel Sponsor Policy =&lt;br /&gt;
&lt;br /&gt;
Since [[VDD19]] is in Tokyo, it will cost a lot more money for [[VideoLAN]]. Remember that the non-profit is paying all this from donations.&lt;br /&gt;
&lt;br /&gt;
Therefore, there are a few rules for sponsorship, that will be enforced.&lt;br /&gt;
&lt;br /&gt;
= Who can be sponsored? =&lt;br /&gt;
&lt;br /&gt;
People who are part of the development communities, that are not paid by a corporation to work on multimedia, can be sponsored.&lt;br /&gt;
&lt;br /&gt;
This includes all the development communities around VLC or FFmpeg or Kodi.&lt;br /&gt;
&lt;br /&gt;
If you were sponsored in the past, you should be able to be sponsored this year.&lt;br /&gt;
&lt;br /&gt;
If you are part of the VideoLAN non-profit orgaization, you should be sponsored.&lt;br /&gt;
&lt;br /&gt;
If you are not part of a development community, but you really want to come, talk to us.&lt;br /&gt;
&lt;br /&gt;
However, if you are an unactive developer, this might be a bit more tricky.&lt;br /&gt;
&lt;br /&gt;
= Cost =&lt;br /&gt;
&lt;br /&gt;
* Please try to keep your cost of flights to a minimum.&lt;br /&gt;
* Don&#039;t make it insane, like 15hours stop or 3 stops to come to Tokyo.&lt;br /&gt;
* If you find something under 750€ from Europe, or 900€ from the US, take it directly.&lt;br /&gt;
* Else, you can ask on IRC &#039;&#039;(or mail)&#039;&#039; to jb or TypX.&lt;br /&gt;
* If you find an expensive flight that you really want, we might be able to cover part of it only. Talk to us for more information.&lt;br /&gt;
&lt;br /&gt;
If you need help with airfares, you can solicit advice on the Freenode IRC #libav-travel channel.&lt;/div&gt;</summary>
		<author><name>Magsoft</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Contact_VideoLAN&amp;diff=33403</id>
		<title>Contact VideoLAN</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Contact_VideoLAN&amp;diff=33403"/>
		<updated>2017-07-12T08:02:31Z</updated>

		<summary type="html">&lt;p&gt;Magsoft: /* E-mail */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are several ways to contact [[VideoLAN]].&lt;br /&gt;
&lt;br /&gt;
== Before contacting VideoLAN ==&lt;br /&gt;
Are you sure you can&#039;t answer the question yourself?&lt;br /&gt;
Please check:&lt;br /&gt;
* [[Documentation:Documentation | Documentation]]&lt;br /&gt;
* The [[Common Problems]] checklist&lt;br /&gt;
* [http://www.videolan.org/support/ Support]&lt;br /&gt;
* Ask on the mailing lists for problem using the software [http://www.videolan.org/support/lists.html Lists]&lt;br /&gt;
* Search on the [http://forum.videolan.org forum]&lt;br /&gt;
* Search this [[Special:Search|wiki]].&lt;br /&gt;
&lt;br /&gt;
== E-mail ==&lt;br /&gt;
To contact us by e-mail, please use [mailto:videolan@REMOVETHIS@videolan.org videolan@REMOVETHIS@videolan.org] and write in French, German or English.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
The IRC channel is also a good way to contact and speak to the team.&lt;br /&gt;
&lt;br /&gt;
Using an IRC client, connect to [irc://irc.videolan.org irc.videolan.org] or [irc://irc.freenode.net irc.freenode.net] and go on the &#039;&#039;&#039;#videolan&#039;&#039;&#039; channel.&lt;br /&gt;
&lt;br /&gt;
If you are in a location without direct IRC access, please try the [http://webchat.freenode.net/?channels=videolan Freenode Webchat].&lt;br /&gt;
&lt;br /&gt;
== Mail ==&lt;br /&gt;
If, for some reason, you really need to send postal mail, please mail to &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VideoLAN&lt;br /&gt;
18, rue Charcot&lt;br /&gt;
75013 Paris&lt;br /&gt;
France&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:About VideoLAN]]&lt;/div&gt;</summary>
		<author><name>Magsoft</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Contact_VideoLAN&amp;diff=33402</id>
		<title>Contact VideoLAN</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Contact_VideoLAN&amp;diff=33402"/>
		<updated>2017-07-12T08:01:42Z</updated>

		<summary type="html">&lt;p&gt;Magsoft: /* E-mail */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are several ways to contact [[VideoLAN]].&lt;br /&gt;
&lt;br /&gt;
== Before contacting VideoLAN ==&lt;br /&gt;
Are you sure you can&#039;t answer the question yourself?&lt;br /&gt;
Please check:&lt;br /&gt;
* [[Documentation:Documentation | Documentation]]&lt;br /&gt;
* The [[Common Problems]] checklist&lt;br /&gt;
* [http://www.videolan.org/support/ Support]&lt;br /&gt;
* Ask on the mailing lists for problem using the software [http://www.videolan.org/support/lists.html Lists]&lt;br /&gt;
* Search on the [http://forum.videolan.org forum]&lt;br /&gt;
* Search this [[Special:Search|wiki]].&lt;br /&gt;
&lt;br /&gt;
== E-mail ==&lt;br /&gt;
To contact us by e-mail, please use [mailto:videolan@REMOVETHIS@videolan.org] and write in French, German or English.&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
The IRC channel is also a good way to contact and speak to the team.&lt;br /&gt;
&lt;br /&gt;
Using an IRC client, connect to [irc://irc.videolan.org irc.videolan.org] or [irc://irc.freenode.net irc.freenode.net] and go on the &#039;&#039;&#039;#videolan&#039;&#039;&#039; channel.&lt;br /&gt;
&lt;br /&gt;
If you are in a location without direct IRC access, please try the [http://webchat.freenode.net/?channels=videolan Freenode Webchat].&lt;br /&gt;
&lt;br /&gt;
== Mail ==&lt;br /&gt;
If, for some reason, you really need to send postal mail, please mail to &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VideoLAN&lt;br /&gt;
18, rue Charcot&lt;br /&gt;
75013 Paris&lt;br /&gt;
France&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:About VideoLAN]]&lt;/div&gt;</summary>
		<author><name>Magsoft</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Win32Compile&amp;diff=31999</id>
		<title>Win32Compile</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Win32Compile&amp;diff=31999"/>
		<updated>2017-05-15T13:15:42Z</updated>

		<summary type="html">&lt;p&gt;Magsoft: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will help you to compile {{VLC}} for [[Windows]].&lt;br /&gt;
&lt;br /&gt;
== Building Methods ==&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;MinGW on Linux&#039;&#039;&#039; &lt;br /&gt;
| [[Win32Compile#Obtaining_the_toolchain|Obtaining the toolchain]]&lt;br /&gt;
| &#039;&#039;&#039;Preferred&#039;&#039;&#039; method involving cross-compilation from Linux. On computers running Microsoft Windows, a virtual machine is necessary to run Linux.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;[http://www.mingw.org MSYS+MinGW]&#039;&#039;&#039; on Windows&lt;br /&gt;
| [[Win32CompileMSYS|Compile with MSys]] &lt;br /&gt;
| &#039;&#039;&#039;Native&#039;&#039;&#039; compilation method. MSYS is a minimal build environment to compile Unix-style projects directly on Microsoft Windows. This is &#039;&#039;&#039;not officially supported&#039;&#039;&#039; by VideoLAN. Best of luck.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Cygwin&#039;&#039;&#039; on Windows&lt;br /&gt;
| [[Win32CompileCygwinNew|Compile with Cygwin]] &lt;br /&gt;
| Cygwin method. Cygwin emulates a POSIX environment to compile on Microsoft Windows. This is &#039;&#039;&#039;error&#039;&#039;&#039;-prone and &#039;&#039;&#039;slow&#039;&#039;&#039; and therefore not recommended.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Obtaining the cross-compilation toolchain  ==&lt;br /&gt;
All this howto is focused on  &#039;&#039;&#039;Debian/Ubuntu&#039;&#039;&#039;. For other distribution, please find the related package names, but they should be very similar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ubuntu 14.04&#039;&#039;&#039; is too old to compile VLC.&lt;br /&gt;
&lt;br /&gt;
=== Host triplet ===&lt;br /&gt;
A number of commands below include the toolchain identifier, called the &#039;&#039;host triplet&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
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;
The exact value depends on your installation of the toolchain.&lt;br /&gt;
&lt;br /&gt;
Notably on Debian/Ubuntu, these values must be used:&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;
&lt;br /&gt;
Please make sure that you replace the keywords &#039;&#039;HOST-TRIPLET&#039;&#039; with either &#039;&#039;i686-w64-mingw32&#039;&#039; or &#039;&#039;x86_64-w64-mingw32&#039;&#039; adapted to your target Windows version (32-bit or 64-bit, respectively)&lt;br /&gt;
&lt;br /&gt;
=== Compiler and binary toolchain ===&lt;br /&gt;
&lt;br /&gt;
==== Mingw-w64 ====&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;
For the 32-bit version, run this:&lt;br /&gt;
 # apt-get install gcc-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64-tools&lt;br /&gt;
&lt;br /&gt;
For the 64-bit version, this becomes:&lt;br /&gt;
 # apt-get install gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64-tools&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NB:&#039;&#039;&#039; you need mingw-w64 version 5.0.1 to compile it.&lt;br /&gt;
&lt;br /&gt;
=== Development tools ===&lt;br /&gt;
You will also need:&lt;br /&gt;
* lua (5.2)&lt;br /&gt;
* all autotools: libtool, automake, autoconf, autopoint, make, gettext, pkg-config&lt;br /&gt;
* qt4-dev-tools, qt5-default (or qt4-default if qt plugin build fails)&lt;br /&gt;
* git, subversion cmake, cvs if you want to rebuild contribs&lt;br /&gt;
* wine-dev for creating Win32 packages&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;
&#039;&#039;&#039;Run:&#039;&#039;&#039;&lt;br /&gt;
 # apt-get install lua5.2 libtool automake autoconf autopoint make gettext pkg-config&lt;br /&gt;
 # apt-get install qt4-dev-tools qt5-default git subversion cmake cvs &lt;br /&gt;
 # apt-get install wine64-development-tools libwine-dev zip p7zip nsis bzip2&lt;br /&gt;
 # apt-get install yasm ragel ant default-jdk protobuf-compiler dos2unix&lt;br /&gt;
&lt;br /&gt;
== Get the source code ==&lt;br /&gt;
 $ git clone http://git.videolan.org/git/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;
VLC depends on a sizable number of third party libraries. Before compiling VLC, you need to obtain compiled versions of those. There are two ways to achieve that:&lt;br /&gt;
* The &#039;&#039;prebuilt&#039;&#039; approach is much faster and easier, but only works with a narrow set of VLC versions.&lt;br /&gt;
* The &#039;&#039;manual build&#039;&#039; approach takes a lot of time and disk space, and somewhat error-prone.&lt;br /&gt;
&lt;br /&gt;
Please note that the prebuilt library versions are intended for the latest current &#039;&#039;stable release&#039;&#039; of VLC. It is not compatible with old VLC versions, nor with newer or future versions.&lt;br /&gt;
&lt;br /&gt;
At the time of writing (late 2016), the prebuilt libraries work with VLC 2.2.x &#039;&#039;&#039;only&#039;&#039;&#039;. To compile the VLC 3.0.x development branch, &#039;&#039;&#039;DO NOT USE&#039;&#039;&#039; the prebuilt libraries.&lt;br /&gt;
&lt;br /&gt;
=== Prebuilt (fast) ===&lt;br /&gt;
  $ mkdir -p contrib/win32&lt;br /&gt;
  $ cd contrib/win32&lt;br /&gt;
  $ ../bootstrap --host=HOST-TRIPLET&lt;br /&gt;
  $ make prebuilt&lt;br /&gt;
&lt;br /&gt;
=== Manually built (slow) ===&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 ragel autopoint&lt;br /&gt;
&lt;br /&gt;
  $ mkdir -p contrib/win32&lt;br /&gt;
  $ cd contrib/win32&lt;br /&gt;
  $ ../bootstrap --host=HOST-TRIPLET&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 ../i686-w64-mingw32/bin/moc ../i686-w64-mingw32/bin/uic ../i686-w64-mingw32/bin/rcc&lt;br /&gt;
&lt;br /&gt;
=== Fix your contrib path ===&lt;br /&gt;
&lt;br /&gt;
If your host triplet is not &#039;&#039;&#039;i686-w64-mingw32&#039;&#039;&#039; (you are &#039;&#039;not&#039;&#039; compiling for Debian or Ubuntu), create a symlink to contribs:&lt;br /&gt;
 $ ln -sf &#039;&#039;&#039;&#039;HOST-TRIPLET&#039;&#039;&#039;&#039; ../i686-w64-mingw32&lt;br /&gt;
Notice that there is no &amp;lt;code&amp;gt;../&amp;lt;/code&amp;gt; before the host triplet. This is intentional, and if done properly, you should see a functioning symbolic link created in the parent directory (try &amp;lt;code&amp;gt;ls -l ..&amp;lt;/code&amp;gt; and you should see &amp;lt;code&amp;gt;i686-w64-mingw32 -&amp;gt; x86_64-w64-mingw32/&amp;lt;/code&amp;gt;).&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;
Set your PKG_CONFIG_LIBDIR (Adapt the path to reflect your local setup)&lt;br /&gt;
  $ export PKG_CONFIG_LIBDIR=$HOME/vlc/contrib/HOST-TRIPLET/lib/pkgconfig&lt;br /&gt;
  $ export PKG_CONFIG_PATH_CUSTOM=$PKG_CONFIG_LIBDIR (for Archlinux only)&lt;br /&gt;
&lt;br /&gt;
Execute the build configuration script:&lt;br /&gt;
 $ ../extras/package/win32/configure.sh --host=HOST-TRIPLET --build=x86_64-pc-linux-gnu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;N.B.&#039;&#039;&#039;:&lt;br /&gt;
Use the host and build tuples respectively corresponding to &#039;&#039;&#039;your&#039;&#039;&#039; cross-compilation toolchain and build system respectively. The example above assumes you are compiling for &#039;&#039;Windows&#039;&#039; OS and &#039;&#039;Intel 686&#039;&#039; architecture, and the build system is &#039;&#039;GNU/Linux&#039;&#039; OS and &#039;&#039;x86 64-bits&#039;&#039; architecture. See [[#Host_triplet|above]] for list of common values.&lt;br /&gt;
&lt;br /&gt;
Also, if you have a problem here (such as an error about Library dvdread), see the [[Talk:Win32Compile|Talk]] page.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can run configure manually:&lt;br /&gt;
 $ ../configure --host=HOST-TRIPLET --build=x86_64-pc-linux-gnu&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;&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;
== Extra information ==&lt;br /&gt;
&lt;br /&gt;
=== Static compilation of plugins ===&lt;br /&gt;
You might want to use the following script to enforce static compilation.&lt;br /&gt;
Run as root, and use at your own risk.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # This script enforces statically linking of libgcc, libstdc++-6, and libpthread,&lt;br /&gt;
 # without needing to rebuild gcc and mingw-w64 from scratch.&lt;br /&gt;
 # -static-libgcc -static-libstdc++ flags can not be used in a libtool build system,&lt;br /&gt;
 # as libtool removes flags that it doesn&#039;t understand.&lt;br /&gt;
 &lt;br /&gt;
 move() {&lt;br /&gt;
     [ -f $1 ] || return 1&lt;br /&gt;
     mkdir -p old/&lt;br /&gt;
     mv -v $* old/&lt;br /&gt;
     return 0&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 for x in i686 x86_64&lt;br /&gt;
 do&lt;br /&gt;
     library_path_list=`$x-w64-mingw32-gcc -v /dev/null 2&amp;gt;&amp;amp;1 | grep ^LIBRARY_PATH|cut -d= -f2|sort|uniq`&lt;br /&gt;
     IFS=&#039;:&#039;&lt;br /&gt;
     for i in $library_path_list&lt;br /&gt;
     do&lt;br /&gt;
         cd $i&lt;br /&gt;
         move libstdc++-6.dll libstdc++.dll.a libgcc_s.a libgcc_s_sjlj-1.dll &amp;amp;&amp;amp; ln -s libgcc_eh.a libgcc_s.a&lt;br /&gt;
         move libpthread.dll.a libwinpthread.dll.a&lt;br /&gt;
         move libwinpthread-1.dll&lt;br /&gt;
         [ -d ../bin ] &amp;amp;&amp;amp; cd ../bin &amp;amp;&amp;amp; move libwinpthread-1.dll&lt;br /&gt;
     done&lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
=== Mingw32 ===&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;
&lt;br /&gt;
[[Category:Building]]&lt;/div&gt;</summary>
		<author><name>Magsoft</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=AndroidCompile&amp;diff=31754</id>
		<title>AndroidCompile</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=AndroidCompile&amp;diff=31754"/>
		<updated>2017-01-10T14:11:17Z</updated>

		<summary type="html">&lt;p&gt;Magsoft: /* Setup Gradle build system */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is an introduction to the compilation of &#039;&#039;&#039;VLC for Android&#039;&#039;&#039; on Linux. &lt;br /&gt;
&lt;br /&gt;
==Android Studio, SDK and NDK installation==&lt;br /&gt;
&lt;br /&gt;
=== Requirements  ===&lt;br /&gt;
* You &#039;&#039;&#039;MUST&#039;&#039;&#039; build on Linux (or OSX if you know what you are doing).&lt;br /&gt;
* The following packages &#039;&#039;&#039;MUST&#039;&#039;&#039; must be installed:&lt;br /&gt;
** the GNU autotools: &#039;&#039;autoconf&#039;&#039;, &#039;&#039;libtool&#039;&#039;, &#039;&#039;automake&#039;&#039; and &#039;&#039;make&#039;&#039; (a.k.a. &#039;&#039;gmake&#039;&#039;)&lt;br /&gt;
** ...and their dependencies: &#039;&#039;m4&#039;&#039; and &#039;&#039;gawk&#039;&#039;, &#039;&#039;mawk&#039;&#039; or &#039;&#039;nawk&#039;&#039;,&lt;br /&gt;
** the GNU C and C++ compilers a.k.a. &#039;&#039;gcc&#039;&#039; and &#039;&#039;g++&#039;&#039;,&lt;br /&gt;
** some GNU build utilities: &#039;&#039;pkg-config&#039;&#039; and &#039;&#039;patch&#039;&#039;,&lt;br /&gt;
** the following other build utilities: &#039;&#039;Apache Ant&#039;&#039; (or &#039;&#039;Ant&#039;&#039;), &#039;&#039;cmake&#039;&#039;, &#039;&#039;protobuf&#039;&#039;, &#039;&#039;ragel&#039;&#039;,&lt;br /&gt;
** the Subversion and Git version control systems&lt;br /&gt;
** &#039;&#039;unzip&#039;&#039; and either &#039;&#039;curl&#039;&#039; or &#039;&#039;wget&#039;&#039; for retreiving sources.&lt;br /&gt;
* Very recent versions of some of those tools may be required. At the time of writing, notably gettext 0.19.3 or later is required.&lt;br /&gt;
* If any of the above is missing, expect the build to fail at some point.&lt;br /&gt;
* If targeting an Android-x86 device, &#039;&#039;yasm&#039;&#039; must be installed too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #ff0000&amp;quot;&amp;gt;&#039;&#039;&#039;64-bit users&#039;&#039;&#039;&amp;lt;/span&amp;gt;: You must install these 32-bit libs as specified here: [[AndroidCompile#Can.27t_run_aapt_or_adb_on_Linux_64-bit]]&lt;br /&gt;
&lt;br /&gt;
==== Example on Ubuntu ====&lt;br /&gt;
Install the packages as follow:&lt;br /&gt;
 sudo apt-get install automake ant autopoint cmake build-essential libtool \&lt;br /&gt;
      patch pkg-config protobuf-compiler ragel subversion unzip git&lt;br /&gt;
&lt;br /&gt;
=== SDK &amp;amp; Android Studio ===&lt;br /&gt;
# Go to [http://developer.android.com/sdk/index.html Android SDK page].&lt;br /&gt;
# Follow instructions to install latest version of Android SDK.&lt;br /&gt;
# Android Studio is recommended, but not mandatory!&lt;br /&gt;
&lt;br /&gt;
You can have [http://developer.android.com/sdk/installing.html more details], if needed.&lt;br /&gt;
&lt;br /&gt;
===Android NDK===&lt;br /&gt;
# Check that the SDK installation is correct. &lt;br /&gt;
# Go to the [http://developer.android.com/sdk/ndk/index.html Android NDK page] and download the &#039;&#039;&#039;NDK r13&#039;&#039;&#039; for Linux. &lt;br /&gt;
# Decompress it to install&lt;br /&gt;
&lt;br /&gt;
== Environment setup  ==&lt;br /&gt;
Set &#039;&#039;&#039;$ANDROID_SDK&#039;&#039;&#039; to point to your Android SDK directory &lt;br /&gt;
&lt;br /&gt;
 export ANDROID_SDK=/path/to/android-sdk&lt;br /&gt;
&lt;br /&gt;
Set &#039;&#039;&#039;$ANDROID_NDK&#039;&#039;&#039; to point to your Android NDK directory &lt;br /&gt;
&lt;br /&gt;
 export ANDROID_NDK=/path/to/android-ndk&lt;br /&gt;
&lt;br /&gt;
Add some useful binaries to your &#039;&#039;&#039;$PATH&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
 export PATH=$PATH:$ANDROID_SDK/platform-tools:$ANDROID_SDK/tools&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
=== Get VLC Source ===&lt;br /&gt;
Clone the source from the VLC git!&lt;br /&gt;
&lt;br /&gt;
In your &#039;&#039;android&#039;&#039; source folder, run: &lt;br /&gt;
&lt;br /&gt;
 git clone https://code.videolan.org/videolan/vlc-android.git&lt;br /&gt;
&lt;br /&gt;
==== Setup Gradle build system ====&lt;br /&gt;
&lt;br /&gt;
Before using Android studio to compile the app, you must run &#039;&#039;&#039;compile.sh&#039;&#039;&#039; once to set up gradle build system.&lt;br /&gt;
&lt;br /&gt;
It should automatically populate mandatory local.properties and gradle.properties files with:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;local.properties&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 sdk.dir=&amp;lt;SDK path from $ANDROID_SDK&amp;gt;&lt;br /&gt;
 ndk.dir=&amp;lt;NDK path from $ANDROID_NDK&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;gradle.properties&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 keyStoreFile=/home/&#039;&#039;user&#039;&#039;/.android/debug.keystore&lt;br /&gt;
 storealias=androiddebugkey&lt;br /&gt;
 storepwd=android&lt;br /&gt;
&lt;br /&gt;
This sets up gradle to build with correct SDK/NDK and sign builds with your personal debug key.&lt;br /&gt;
&lt;br /&gt;
Once this first compilation has succeeded, you can build from Android Studio with the &#039;&#039;&#039;Run&#039;&#039;&#039; command.&lt;br /&gt;
&lt;br /&gt;
=== Devices ===&lt;br /&gt;
&lt;br /&gt;
Find the ABI for the target device.&lt;br /&gt;
&lt;br /&gt;
* For a normal (2012-2015 consumer phone or tablet) device (e.g. Cortex-A8 or Cortex-A9)&lt;br /&gt;
 &amp;lt;code&amp;gt;armeabi-v7a&amp;lt;/code&amp;gt;&lt;br /&gt;
* For a Tegra2 device (no [[wikipedia:ARM_architecture#Advanced_SIMD_.28NEON.29|NEON]])&lt;br /&gt;
 &amp;lt;code&amp;gt;armeabi-v7a&amp;lt;/code&amp;gt;&lt;br /&gt;
* For an ARMv6 device&lt;br /&gt;
 &amp;lt;code&amp;gt;armeabi&amp;lt;/code&amp;gt;&lt;br /&gt;
* For an ARMv6 device that does not support FPU&lt;br /&gt;
 &amp;lt;code&amp;gt;armeabi-nofpu&amp;lt;/code&amp;gt;&lt;br /&gt;
* For an ARMv5 device or the Android Emulator&lt;br /&gt;
 &amp;lt;code&amp;gt;armeabi-v5&amp;lt;/code&amp;gt;&lt;br /&gt;
* For a x86 device (e.g. Android-x86, Google TV, Logitech TV, Android x86 smartphones, etc)&lt;br /&gt;
 &amp;lt;code&amp;gt;x86&amp;lt;/code&amp;gt;&lt;br /&gt;
* For a MIPS device (i.e. Ainol Novo tablets):&lt;br /&gt;
 &amp;lt;code&amp;gt;mips&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This value must be passed to the compile.sh script&lt;br /&gt;
&lt;br /&gt;
==== Compile ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Read&#039;&#039;&#039; compile.sh first, as it contains some very useful and important information. Then run it:&lt;br /&gt;
 sh compile.sh -a &amp;lt;ABI&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; At this point, you will get an auto-generated debug APK in the vlc-android/build/outputs/apk folder, signed with a debug key.&lt;br /&gt;
&lt;br /&gt;
In order to build a non-debug (release) package:&lt;br /&gt;
 sh compile.sh release&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; At this point, you will get an release APK in the same folder.&lt;br /&gt;
&lt;br /&gt;
=== Run ===&lt;br /&gt;
Run it and enjoy!&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
==== Compilation error on Dependencies ====&lt;br /&gt;
Sometimes, especially when gradle dependencies have been upgraded, the &#039;&#039;compile.sh&#039;&#039; will fail to refetch dependencies. Just close Android Studio and re-run the script to fix this issue.&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
Here are some helpful links if you wish to debug VLC on Android:&lt;br /&gt;
* [http://developer.android.com/guide/developing/debugging/ddms.html DDMS] &lt;br /&gt;
* [http://developer.android.com/guide/developing/tools/logcat.html Logcat]&lt;br /&gt;
&lt;br /&gt;
===Native debugging===&lt;br /&gt;
If you run VLC Android and you get a crash that looks something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
I/DEBUG   (  958): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***&lt;br /&gt;
I/DEBUG   (  958): Build fingerprint: &#039;MOTO/MBTCA/sesame/XT300:2.1-update1/SESLA_U3_01.71.0/110110:user/release-keys&#039;&lt;br /&gt;
I/DEBUG   (  958): pid: 1733, tid: 1733 &amp;gt;&amp;gt;&amp;gt; org.videolan.vlc &amp;lt;&amp;lt;&amp;lt;&lt;br /&gt;
I/DEBUG   (  958): signal 11 (SIGSEGV), fault addr 4237be3c&lt;br /&gt;
I/DEBUG   (  958):  r0 423640a0  r1 7ece77ac  r2 42bccdac  r3 4237be38&lt;br /&gt;
I/DEBUG   (  958):  r4 00000000  r5 42bccdac  r6 002ed088  r7 002ed018&lt;br /&gt;
I/DEBUG   (  958):  r8 7ece78e8  r9 2bafa844  10 0000000e  fp 7ece794c&lt;br /&gt;
I/DEBUG   (  958):  ip 00002ba0  sp 7ece7784  lr 423652e4  pc 4237be3c  cpsr 60000010&lt;br /&gt;
I/DEBUG   (  958):          #00  pc 0037be3c  /data/data/org.videolan.vlc/lib/libvlcjni.so&lt;br /&gt;
I/DEBUG   (  958):          #01  lr 423652e4  /data/data/org.videolan.vlc/lib/libvlcjni.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You have a &#039;&#039;&#039;native crash&#039;&#039;&#039;. To debug it, you need to have compiled VLC as above and installed it on your device. Once your compiled VLC build is on your device, you can find the &#039;&#039;&#039;backtrace&#039;&#039;&#039; as follows:&lt;br /&gt;
&lt;br /&gt;
# Make sure you are in the directory that you checked out VLC-Android in.&lt;br /&gt;
# Migrate the libvlc folders. (Do this every time the code is recompiled)&lt;br /&gt;
## cp -r libvlc/jni vlc-android&lt;br /&gt;
## cp -r libvlc/libs vlc-android&lt;br /&gt;
## cp -r libvlc/obj vlc-android&lt;br /&gt;
## (This is because the libvlc and VLC for Android folders were split yet the debugger needs the object files from both.)&lt;br /&gt;
# cd vlc-android&lt;br /&gt;
# $ANDROID_NDK/ndk-gdb --verbose --force --start&lt;br /&gt;
At this point, lots of stuff will appear:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Android NDK installation path: /opt/android-ndk-r8c&lt;br /&gt;
Using default adb command: /opt/android-sdk-linux_x86/platform-tools/adb&lt;br /&gt;
ADB version found: Android Debug Bridge version 1.0.29&lt;br /&gt;
Using ADB flags: &lt;br /&gt;
Using auto-detected project path: .&lt;br /&gt;
Found package name: org.videolan.vlc&lt;br /&gt;
...bunch of stuff skipped...&lt;br /&gt;
GNU gdb (GDB) 7.3.1-gg2&lt;br /&gt;
Copyright (C) 2011 Free Software Foundation, Inc.&lt;br /&gt;
License GPLv3+: GNU GPL version 3 or later &amp;lt;http://gnu.org/licenses/gpl.html&amp;gt;&lt;br /&gt;
This is free software: you are free to change and redistribute it.&lt;br /&gt;
There is NO WARRANTY, to the extent permitted by law.  Type &amp;quot;show copying&amp;quot;&lt;br /&gt;
and &amp;quot;show warranty&amp;quot; for details.&lt;br /&gt;
This GDB was configured as &amp;quot;--host=x86_64-linux-gnu --target=arm-linux-android&amp;quot;.&lt;br /&gt;
For bug reporting instructions, please see:&lt;br /&gt;
&amp;lt;http://www.gnu.org/software/gdb/bugs/&amp;gt;.&lt;br /&gt;
Remote debugging from host 0.0.0.0&lt;br /&gt;
...bunch of stuff skipped...&lt;br /&gt;
libthread_db:td_ta_new: Victory: We can debug theads!&lt;br /&gt;
warning: Breakpoint address adjusted from 0x400deaa5 to 0x400deaa4.&lt;br /&gt;
0x40107a40 in epoll_wait () from /media/data/vlc_android/vlc-android/obj/local/armeabi/libc.so&lt;br /&gt;
(gdb)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;ol start=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;At this point, type in &amp;quot;continue&amp;quot; and press Enter.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Perform the actions you did to make it crash. It will spit out something like this:&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Program received signal SIGSEGV, Segmentation fault.&lt;br /&gt;
0x401120ae in ?? () from /media/data/vlc_android/vlc-android/obj/local/armeabi/libc.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;ol start=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now, just type in &amp;quot;&#039;&#039;&#039;bt full&#039;&#039;&#039;&amp;quot; (excluding the quotation marks) and press Enter. That is your backtrace that you should give to the developers when they ask for it (possibly on a [http://paste.kde.org/ pastebin], too).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(gdb) bt full&lt;br /&gt;
#0  0x401120ae in ?? () from /media/data/vlc_android/vlc-android/obj/local/armeabi/libc.so&lt;br /&gt;
No symbol table info available.&lt;br /&gt;
#1  0x40107bd8 in abort () from /media/data/vlc_android/vlc-android/obj/local/armeabi/libc.so&lt;br /&gt;
No symbol table info available.&lt;br /&gt;
#2  0x40118e6a in __assert2 () from /media/data/vlc_android/vlc-android/obj/local/armeabi/libc.so&lt;br /&gt;
No symbol table info available.&lt;br /&gt;
#3  0x5e0cdfdc in var_SetChecked (p_this=0x40134b94, psz_name=0x5ea2fcb8 &amp;quot;rate&amp;quot;, expected_type=80, val=...) at ../../src/misc/variables.c:711&lt;br /&gt;
        i_ret = 0&lt;br /&gt;
        p_var = &amp;lt;optimized out&amp;gt;&lt;br /&gt;
        oldval = {i_int = 4742037487051810480, b_bool = 176, f_float = 2.27765068e+14, psz_string = 0x574f26b0 &amp;quot;X\270|B\001\001&amp;quot;, p_address = 0x574f26b0, &lt;br /&gt;
          p_object = 0x574f26b0, p_list = 0x574f26b0, i_time = 4742037487051810480, coords = {x = 1464805040, y = 1104091640}}&lt;br /&gt;
        __func__ = &amp;quot;var_SetChecked&amp;quot;&lt;br /&gt;
        p_priv = &amp;lt;optimized out&amp;gt;&lt;br /&gt;
#4  0x5e06dd9c in var_SetFloat (f=1.41421354, psz_name=0x5ea2fcb8 &amp;quot;rate____sample_backtrace&amp;quot;, p_obj=0x0) at ../../include/vlc_variables.h:262&lt;br /&gt;
        val = &amp;lt;optimized out&amp;gt;&lt;br /&gt;
#5  libvlc_media_player_set_rate (p_mi=0x0, rate=1.41421354) at ../../lib/media_player.c:1252&lt;br /&gt;
        p_input_thread = &amp;lt;optimized out&amp;gt;&lt;br /&gt;
#6  0x5de7bd18 in Java_org_videolan_vlc_LibVLC_setRate (env=0x41cf0470, thiz=0x8ab00021, rate=1.41421354) at jni/libvlcjni.c:678&lt;br /&gt;
        mp = 0x0&lt;br /&gt;
#7  0x4076de34 in ?? ()&lt;br /&gt;
No symbol table info available.&lt;br /&gt;
#8  0x4076de34 in ?? ()&lt;br /&gt;
No symbol table info available.&lt;br /&gt;
Backtrace stopped: previous frame identical to this frame (corrupt stack?)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Outdated Awk ===&lt;br /&gt;
If you receive the error message while building:&lt;br /&gt;
&lt;br /&gt;
 Android NDK: Host &#039;awk&#039; tool is outdated. Please define HOST_AWK to point to Gawk or Nawk !    &lt;br /&gt;
&lt;br /&gt;
The prebuilt version of Awk that comes with the Android NDK is outdated. Defining HOST_AWK in your environment does nothing as the system still tries to just the one that comes with the Android NDK. To get around this issue, simply rename or delete the Awk binary that comes with the Android NDK. For example to move it:&lt;br /&gt;
&lt;br /&gt;
 mv $ANDROID_NDK/prebuilt/linux-x86/bin/awk $ANDROID_NDK/prebuilt/linux-x86/bin/awk.old&lt;br /&gt;
&lt;br /&gt;
=== Can&#039;t find Ant ===&lt;br /&gt;
If you&#039;re new to Ant, please be aware that some Linux distributions don&#039;t install it in the usual spot as with other programs. Try checking to see if the directory /usr/share/java/apache-ant/bin exists and add it to your path.&lt;br /&gt;
&lt;br /&gt;
===Outdated autotools-dev===&lt;br /&gt;
If you get the following error message you may have have an outdated version of autotools-dev:&lt;br /&gt;
  Invalid configuration `arm-linux-androideabi&#039;: system `androideabi&#039; not recognized&lt;br /&gt;
You may first want to check if your distribution has any available updates for this package.  Alternatively, you can manually update your config.guess and config.sub files from here: [http://git.savannah.gnu.org/gitweb/?p=config.git;a=tree].  These files are typically located in /usr/share/misc on Debian based distributions.&lt;br /&gt;
&lt;br /&gt;
===autoreconf: automake failed with exit status: 1===&lt;br /&gt;
 automake: warnings are treated as errors&lt;br /&gt;
 configure.ac:41: warning: The &#039;AM_PROG_MKDIR_P&#039; macro is deprecated, and will soon be removed.&lt;br /&gt;
 configure.ac:41: You should use the Autoconf-provided &#039;AC_PROG_MKDIR_P&#039; macro instead,&lt;br /&gt;
 configure.ac:41: and use &#039;$(MKDIR_P)&#039; instead of &#039;$(mkdir_p)&#039;in your Makefile.am files.&lt;br /&gt;
&lt;br /&gt;
If you are using Automake 1.13 or higher, you must remove -Werror from vlc/contrib/android/gnutls/configure.ac to continue. (First reported in [http://forum.videolan.org/viewtopic.php?f=35&amp;amp;t=108927])&lt;br /&gt;
&lt;br /&gt;
===autoreconf: automake failed with exit status: 1 ===&lt;br /&gt;
 make: *** [dvdnav] Error 1&lt;br /&gt;
 ...&lt;br /&gt;
 ... error: possibly undefined macro: AM_PROG_LIBTOOL&lt;br /&gt;
&lt;br /&gt;
This error may occur when compiling with an older Linux distribution, such as Ubuntu 12.04, that doesn&#039;t meet bootstrap prerequisites. As of 2014-08-09, the master branch for vlc-ports/android.git [http://git.videolan.org/?p=vlc-ports/android.git;a=summary] lacks patch 5199 [https://patches.videolan.org/patch/5199/]. Without the patch, compile.sh builds out dated automake and autoconf that may not access libtool despite presence of a current libtool binary amongst supporting tools and a similar or more recent binary present as part of the OS.&lt;br /&gt;
&lt;br /&gt;
To work around this error, patch the master branch or update the prerequisites. For Ubuntu 12.04, upgrade autoconf, automake, and cmake as dictated by vlc/extras/tools/bootstrap.&lt;br /&gt;
&lt;br /&gt;
===Can&#039;t run aapt or adb on Linux 64-bit===&lt;br /&gt;
You must install the 32-bit libraries of the following libraries, as the precompiled Google binaries depend on them: &#039;&#039;libc6&#039;&#039;, &#039;&#039;libstdc++6&#039;&#039;, and &#039;&#039;zlib&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
New versions of Debian and/or Ubuntu require you to install i386 versions of packages:&lt;br /&gt;
 sudo dpkg --add-architecture i386&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install zlib1g:i386 libstdc++6:i386 libc6:i386&lt;br /&gt;
&lt;br /&gt;
If you are under &#039;&#039;old versions&#039;&#039; of Ubuntu, install ia32-libs can help you solve this issue.&lt;br /&gt;
 sudo apt-get install ia32-libs&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Android Report bugs]] - Bug reporting guide for VLC-Android.&lt;br /&gt;
&lt;br /&gt;
[[Category:Building]] [[Category:Android]]&lt;/div&gt;</summary>
		<author><name>Magsoft</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=AndroidCompile&amp;diff=31753</id>
		<title>AndroidCompile</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=AndroidCompile&amp;diff=31753"/>
		<updated>2017-01-10T14:09:43Z</updated>

		<summary type="html">&lt;p&gt;Magsoft: /* Setup Gradle build system */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is an introduction to the compilation of &#039;&#039;&#039;VLC for Android&#039;&#039;&#039; on Linux. &lt;br /&gt;
&lt;br /&gt;
==Android Studio, SDK and NDK installation==&lt;br /&gt;
&lt;br /&gt;
=== Requirements  ===&lt;br /&gt;
* You &#039;&#039;&#039;MUST&#039;&#039;&#039; build on Linux (or OSX if you know what you are doing).&lt;br /&gt;
* The following packages &#039;&#039;&#039;MUST&#039;&#039;&#039; must be installed:&lt;br /&gt;
** the GNU autotools: &#039;&#039;autoconf&#039;&#039;, &#039;&#039;libtool&#039;&#039;, &#039;&#039;automake&#039;&#039; and &#039;&#039;make&#039;&#039; (a.k.a. &#039;&#039;gmake&#039;&#039;)&lt;br /&gt;
** ...and their dependencies: &#039;&#039;m4&#039;&#039; and &#039;&#039;gawk&#039;&#039;, &#039;&#039;mawk&#039;&#039; or &#039;&#039;nawk&#039;&#039;,&lt;br /&gt;
** the GNU C and C++ compilers a.k.a. &#039;&#039;gcc&#039;&#039; and &#039;&#039;g++&#039;&#039;,&lt;br /&gt;
** some GNU build utilities: &#039;&#039;pkg-config&#039;&#039; and &#039;&#039;patch&#039;&#039;,&lt;br /&gt;
** the following other build utilities: &#039;&#039;Apache Ant&#039;&#039; (or &#039;&#039;Ant&#039;&#039;), &#039;&#039;cmake&#039;&#039;, &#039;&#039;protobuf&#039;&#039;, &#039;&#039;ragel&#039;&#039;,&lt;br /&gt;
** the Subversion and Git version control systems&lt;br /&gt;
** &#039;&#039;unzip&#039;&#039; and either &#039;&#039;curl&#039;&#039; or &#039;&#039;wget&#039;&#039; for retreiving sources.&lt;br /&gt;
* Very recent versions of some of those tools may be required. At the time of writing, notably gettext 0.19.3 or later is required.&lt;br /&gt;
* If any of the above is missing, expect the build to fail at some point.&lt;br /&gt;
* If targeting an Android-x86 device, &#039;&#039;yasm&#039;&#039; must be installed too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #ff0000&amp;quot;&amp;gt;&#039;&#039;&#039;64-bit users&#039;&#039;&#039;&amp;lt;/span&amp;gt;: You must install these 32-bit libs as specified here: [[AndroidCompile#Can.27t_run_aapt_or_adb_on_Linux_64-bit]]&lt;br /&gt;
&lt;br /&gt;
==== Example on Ubuntu ====&lt;br /&gt;
Install the packages as follow:&lt;br /&gt;
 sudo apt-get install automake ant autopoint cmake build-essential libtool \&lt;br /&gt;
      patch pkg-config protobuf-compiler ragel subversion unzip git&lt;br /&gt;
&lt;br /&gt;
=== SDK &amp;amp; Android Studio ===&lt;br /&gt;
# Go to [http://developer.android.com/sdk/index.html Android SDK page].&lt;br /&gt;
# Follow instructions to install latest version of Android SDK.&lt;br /&gt;
# Android Studio is recommended, but not mandatory!&lt;br /&gt;
&lt;br /&gt;
You can have [http://developer.android.com/sdk/installing.html more details], if needed.&lt;br /&gt;
&lt;br /&gt;
===Android NDK===&lt;br /&gt;
# Check that the SDK installation is correct. &lt;br /&gt;
# Go to the [http://developer.android.com/sdk/ndk/index.html Android NDK page] and download the &#039;&#039;&#039;NDK r13&#039;&#039;&#039; for Linux. &lt;br /&gt;
# Decompress it to install&lt;br /&gt;
&lt;br /&gt;
== Environment setup  ==&lt;br /&gt;
Set &#039;&#039;&#039;$ANDROID_SDK&#039;&#039;&#039; to point to your Android SDK directory &lt;br /&gt;
&lt;br /&gt;
 export ANDROID_SDK=/path/to/android-sdk&lt;br /&gt;
&lt;br /&gt;
Set &#039;&#039;&#039;$ANDROID_NDK&#039;&#039;&#039; to point to your Android NDK directory &lt;br /&gt;
&lt;br /&gt;
 export ANDROID_NDK=/path/to/android-ndk&lt;br /&gt;
&lt;br /&gt;
Add some useful binaries to your &#039;&#039;&#039;$PATH&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
 export PATH=$PATH:$ANDROID_SDK/platform-tools:$ANDROID_SDK/tools&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
=== Get VLC Source ===&lt;br /&gt;
Clone the source from the VLC git!&lt;br /&gt;
&lt;br /&gt;
In your &#039;&#039;android&#039;&#039; source folder, run: &lt;br /&gt;
&lt;br /&gt;
 git clone https://code.videolan.org/videolan/vlc-android.git&lt;br /&gt;
&lt;br /&gt;
==== Setup Gradle build system ====&lt;br /&gt;
&lt;br /&gt;
Before using Android studio to compile the app, you must run &#039;&#039;&#039;compile.sh&#039;&#039;&#039; once to set up gradle build system.&lt;br /&gt;
&lt;br /&gt;
It should automatically populate mandatory local.properties and gradle.properties files with:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;local.properties&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 sdk.dir=&amp;lt;SDK path from $ANDROID_SDK&amp;gt;&lt;br /&gt;
 ndk.dir=&amp;lt;NDK path from $ANDROID_NDK&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;gradle.properties&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 keyStoreFile=/home/&#039;&#039;user&#039;&#039;/.android/debug.keystore&lt;br /&gt;
 storealias=androiddebugkey&lt;br /&gt;
 storepwd=android&lt;br /&gt;
&lt;br /&gt;
This sets up gradle to build with correct SDK/NDK and sign builds with your personal debug key.&lt;br /&gt;
&lt;br /&gt;
Now you can build from Android Studio with the &#039;&#039;&#039;Run&#039;&#039;&#039; command&lt;br /&gt;
&lt;br /&gt;
=== Devices ===&lt;br /&gt;
&lt;br /&gt;
Find the ABI for the target device.&lt;br /&gt;
&lt;br /&gt;
* For a normal (2012-2015 consumer phone or tablet) device (e.g. Cortex-A8 or Cortex-A9)&lt;br /&gt;
 &amp;lt;code&amp;gt;armeabi-v7a&amp;lt;/code&amp;gt;&lt;br /&gt;
* For a Tegra2 device (no [[wikipedia:ARM_architecture#Advanced_SIMD_.28NEON.29|NEON]])&lt;br /&gt;
 &amp;lt;code&amp;gt;armeabi-v7a&amp;lt;/code&amp;gt;&lt;br /&gt;
* For an ARMv6 device&lt;br /&gt;
 &amp;lt;code&amp;gt;armeabi&amp;lt;/code&amp;gt;&lt;br /&gt;
* For an ARMv6 device that does not support FPU&lt;br /&gt;
 &amp;lt;code&amp;gt;armeabi-nofpu&amp;lt;/code&amp;gt;&lt;br /&gt;
* For an ARMv5 device or the Android Emulator&lt;br /&gt;
 &amp;lt;code&amp;gt;armeabi-v5&amp;lt;/code&amp;gt;&lt;br /&gt;
* For a x86 device (e.g. Android-x86, Google TV, Logitech TV, Android x86 smartphones, etc)&lt;br /&gt;
 &amp;lt;code&amp;gt;x86&amp;lt;/code&amp;gt;&lt;br /&gt;
* For a MIPS device (i.e. Ainol Novo tablets):&lt;br /&gt;
 &amp;lt;code&amp;gt;mips&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This value must be passed to the compile.sh script&lt;br /&gt;
&lt;br /&gt;
==== Compile ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Read&#039;&#039;&#039; compile.sh first, as it contains some very useful and important information. Then run it:&lt;br /&gt;
 sh compile.sh -a &amp;lt;ABI&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; At this point, you will get an auto-generated debug APK in the vlc-android/build/outputs/apk folder, signed with a debug key.&lt;br /&gt;
&lt;br /&gt;
In order to build a non-debug (release) package:&lt;br /&gt;
 sh compile.sh release&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; At this point, you will get an release APK in the same folder.&lt;br /&gt;
&lt;br /&gt;
=== Run ===&lt;br /&gt;
Run it and enjoy!&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
==== Compilation error on Dependencies ====&lt;br /&gt;
Sometimes, especially when gradle dependencies have been upgraded, the &#039;&#039;compile.sh&#039;&#039; will fail to refetch dependencies. Just close Android Studio and re-run the script to fix this issue.&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
Here are some helpful links if you wish to debug VLC on Android:&lt;br /&gt;
* [http://developer.android.com/guide/developing/debugging/ddms.html DDMS] &lt;br /&gt;
* [http://developer.android.com/guide/developing/tools/logcat.html Logcat]&lt;br /&gt;
&lt;br /&gt;
===Native debugging===&lt;br /&gt;
If you run VLC Android and you get a crash that looks something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
I/DEBUG   (  958): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***&lt;br /&gt;
I/DEBUG   (  958): Build fingerprint: &#039;MOTO/MBTCA/sesame/XT300:2.1-update1/SESLA_U3_01.71.0/110110:user/release-keys&#039;&lt;br /&gt;
I/DEBUG   (  958): pid: 1733, tid: 1733 &amp;gt;&amp;gt;&amp;gt; org.videolan.vlc &amp;lt;&amp;lt;&amp;lt;&lt;br /&gt;
I/DEBUG   (  958): signal 11 (SIGSEGV), fault addr 4237be3c&lt;br /&gt;
I/DEBUG   (  958):  r0 423640a0  r1 7ece77ac  r2 42bccdac  r3 4237be38&lt;br /&gt;
I/DEBUG   (  958):  r4 00000000  r5 42bccdac  r6 002ed088  r7 002ed018&lt;br /&gt;
I/DEBUG   (  958):  r8 7ece78e8  r9 2bafa844  10 0000000e  fp 7ece794c&lt;br /&gt;
I/DEBUG   (  958):  ip 00002ba0  sp 7ece7784  lr 423652e4  pc 4237be3c  cpsr 60000010&lt;br /&gt;
I/DEBUG   (  958):          #00  pc 0037be3c  /data/data/org.videolan.vlc/lib/libvlcjni.so&lt;br /&gt;
I/DEBUG   (  958):          #01  lr 423652e4  /data/data/org.videolan.vlc/lib/libvlcjni.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You have a &#039;&#039;&#039;native crash&#039;&#039;&#039;. To debug it, you need to have compiled VLC as above and installed it on your device. Once your compiled VLC build is on your device, you can find the &#039;&#039;&#039;backtrace&#039;&#039;&#039; as follows:&lt;br /&gt;
&lt;br /&gt;
# Make sure you are in the directory that you checked out VLC-Android in.&lt;br /&gt;
# Migrate the libvlc folders. (Do this every time the code is recompiled)&lt;br /&gt;
## cp -r libvlc/jni vlc-android&lt;br /&gt;
## cp -r libvlc/libs vlc-android&lt;br /&gt;
## cp -r libvlc/obj vlc-android&lt;br /&gt;
## (This is because the libvlc and VLC for Android folders were split yet the debugger needs the object files from both.)&lt;br /&gt;
# cd vlc-android&lt;br /&gt;
# $ANDROID_NDK/ndk-gdb --verbose --force --start&lt;br /&gt;
At this point, lots of stuff will appear:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Android NDK installation path: /opt/android-ndk-r8c&lt;br /&gt;
Using default adb command: /opt/android-sdk-linux_x86/platform-tools/adb&lt;br /&gt;
ADB version found: Android Debug Bridge version 1.0.29&lt;br /&gt;
Using ADB flags: &lt;br /&gt;
Using auto-detected project path: .&lt;br /&gt;
Found package name: org.videolan.vlc&lt;br /&gt;
...bunch of stuff skipped...&lt;br /&gt;
GNU gdb (GDB) 7.3.1-gg2&lt;br /&gt;
Copyright (C) 2011 Free Software Foundation, Inc.&lt;br /&gt;
License GPLv3+: GNU GPL version 3 or later &amp;lt;http://gnu.org/licenses/gpl.html&amp;gt;&lt;br /&gt;
This is free software: you are free to change and redistribute it.&lt;br /&gt;
There is NO WARRANTY, to the extent permitted by law.  Type &amp;quot;show copying&amp;quot;&lt;br /&gt;
and &amp;quot;show warranty&amp;quot; for details.&lt;br /&gt;
This GDB was configured as &amp;quot;--host=x86_64-linux-gnu --target=arm-linux-android&amp;quot;.&lt;br /&gt;
For bug reporting instructions, please see:&lt;br /&gt;
&amp;lt;http://www.gnu.org/software/gdb/bugs/&amp;gt;.&lt;br /&gt;
Remote debugging from host 0.0.0.0&lt;br /&gt;
...bunch of stuff skipped...&lt;br /&gt;
libthread_db:td_ta_new: Victory: We can debug theads!&lt;br /&gt;
warning: Breakpoint address adjusted from 0x400deaa5 to 0x400deaa4.&lt;br /&gt;
0x40107a40 in epoll_wait () from /media/data/vlc_android/vlc-android/obj/local/armeabi/libc.so&lt;br /&gt;
(gdb)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;ol start=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;At this point, type in &amp;quot;continue&amp;quot; and press Enter.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Perform the actions you did to make it crash. It will spit out something like this:&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Program received signal SIGSEGV, Segmentation fault.&lt;br /&gt;
0x401120ae in ?? () from /media/data/vlc_android/vlc-android/obj/local/armeabi/libc.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;ol start=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now, just type in &amp;quot;&#039;&#039;&#039;bt full&#039;&#039;&#039;&amp;quot; (excluding the quotation marks) and press Enter. That is your backtrace that you should give to the developers when they ask for it (possibly on a [http://paste.kde.org/ pastebin], too).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(gdb) bt full&lt;br /&gt;
#0  0x401120ae in ?? () from /media/data/vlc_android/vlc-android/obj/local/armeabi/libc.so&lt;br /&gt;
No symbol table info available.&lt;br /&gt;
#1  0x40107bd8 in abort () from /media/data/vlc_android/vlc-android/obj/local/armeabi/libc.so&lt;br /&gt;
No symbol table info available.&lt;br /&gt;
#2  0x40118e6a in __assert2 () from /media/data/vlc_android/vlc-android/obj/local/armeabi/libc.so&lt;br /&gt;
No symbol table info available.&lt;br /&gt;
#3  0x5e0cdfdc in var_SetChecked (p_this=0x40134b94, psz_name=0x5ea2fcb8 &amp;quot;rate&amp;quot;, expected_type=80, val=...) at ../../src/misc/variables.c:711&lt;br /&gt;
        i_ret = 0&lt;br /&gt;
        p_var = &amp;lt;optimized out&amp;gt;&lt;br /&gt;
        oldval = {i_int = 4742037487051810480, b_bool = 176, f_float = 2.27765068e+14, psz_string = 0x574f26b0 &amp;quot;X\270|B\001\001&amp;quot;, p_address = 0x574f26b0, &lt;br /&gt;
          p_object = 0x574f26b0, p_list = 0x574f26b0, i_time = 4742037487051810480, coords = {x = 1464805040, y = 1104091640}}&lt;br /&gt;
        __func__ = &amp;quot;var_SetChecked&amp;quot;&lt;br /&gt;
        p_priv = &amp;lt;optimized out&amp;gt;&lt;br /&gt;
#4  0x5e06dd9c in var_SetFloat (f=1.41421354, psz_name=0x5ea2fcb8 &amp;quot;rate____sample_backtrace&amp;quot;, p_obj=0x0) at ../../include/vlc_variables.h:262&lt;br /&gt;
        val = &amp;lt;optimized out&amp;gt;&lt;br /&gt;
#5  libvlc_media_player_set_rate (p_mi=0x0, rate=1.41421354) at ../../lib/media_player.c:1252&lt;br /&gt;
        p_input_thread = &amp;lt;optimized out&amp;gt;&lt;br /&gt;
#6  0x5de7bd18 in Java_org_videolan_vlc_LibVLC_setRate (env=0x41cf0470, thiz=0x8ab00021, rate=1.41421354) at jni/libvlcjni.c:678&lt;br /&gt;
        mp = 0x0&lt;br /&gt;
#7  0x4076de34 in ?? ()&lt;br /&gt;
No symbol table info available.&lt;br /&gt;
#8  0x4076de34 in ?? ()&lt;br /&gt;
No symbol table info available.&lt;br /&gt;
Backtrace stopped: previous frame identical to this frame (corrupt stack?)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Outdated Awk ===&lt;br /&gt;
If you receive the error message while building:&lt;br /&gt;
&lt;br /&gt;
 Android NDK: Host &#039;awk&#039; tool is outdated. Please define HOST_AWK to point to Gawk or Nawk !    &lt;br /&gt;
&lt;br /&gt;
The prebuilt version of Awk that comes with the Android NDK is outdated. Defining HOST_AWK in your environment does nothing as the system still tries to just the one that comes with the Android NDK. To get around this issue, simply rename or delete the Awk binary that comes with the Android NDK. For example to move it:&lt;br /&gt;
&lt;br /&gt;
 mv $ANDROID_NDK/prebuilt/linux-x86/bin/awk $ANDROID_NDK/prebuilt/linux-x86/bin/awk.old&lt;br /&gt;
&lt;br /&gt;
=== Can&#039;t find Ant ===&lt;br /&gt;
If you&#039;re new to Ant, please be aware that some Linux distributions don&#039;t install it in the usual spot as with other programs. Try checking to see if the directory /usr/share/java/apache-ant/bin exists and add it to your path.&lt;br /&gt;
&lt;br /&gt;
===Outdated autotools-dev===&lt;br /&gt;
If you get the following error message you may have have an outdated version of autotools-dev:&lt;br /&gt;
  Invalid configuration `arm-linux-androideabi&#039;: system `androideabi&#039; not recognized&lt;br /&gt;
You may first want to check if your distribution has any available updates for this package.  Alternatively, you can manually update your config.guess and config.sub files from here: [http://git.savannah.gnu.org/gitweb/?p=config.git;a=tree].  These files are typically located in /usr/share/misc on Debian based distributions.&lt;br /&gt;
&lt;br /&gt;
===autoreconf: automake failed with exit status: 1===&lt;br /&gt;
 automake: warnings are treated as errors&lt;br /&gt;
 configure.ac:41: warning: The &#039;AM_PROG_MKDIR_P&#039; macro is deprecated, and will soon be removed.&lt;br /&gt;
 configure.ac:41: You should use the Autoconf-provided &#039;AC_PROG_MKDIR_P&#039; macro instead,&lt;br /&gt;
 configure.ac:41: and use &#039;$(MKDIR_P)&#039; instead of &#039;$(mkdir_p)&#039;in your Makefile.am files.&lt;br /&gt;
&lt;br /&gt;
If you are using Automake 1.13 or higher, you must remove -Werror from vlc/contrib/android/gnutls/configure.ac to continue. (First reported in [http://forum.videolan.org/viewtopic.php?f=35&amp;amp;t=108927])&lt;br /&gt;
&lt;br /&gt;
===autoreconf: automake failed with exit status: 1 ===&lt;br /&gt;
 make: *** [dvdnav] Error 1&lt;br /&gt;
 ...&lt;br /&gt;
 ... error: possibly undefined macro: AM_PROG_LIBTOOL&lt;br /&gt;
&lt;br /&gt;
This error may occur when compiling with an older Linux distribution, such as Ubuntu 12.04, that doesn&#039;t meet bootstrap prerequisites. As of 2014-08-09, the master branch for vlc-ports/android.git [http://git.videolan.org/?p=vlc-ports/android.git;a=summary] lacks patch 5199 [https://patches.videolan.org/patch/5199/]. Without the patch, compile.sh builds out dated automake and autoconf that may not access libtool despite presence of a current libtool binary amongst supporting tools and a similar or more recent binary present as part of the OS.&lt;br /&gt;
&lt;br /&gt;
To work around this error, patch the master branch or update the prerequisites. For Ubuntu 12.04, upgrade autoconf, automake, and cmake as dictated by vlc/extras/tools/bootstrap.&lt;br /&gt;
&lt;br /&gt;
===Can&#039;t run aapt or adb on Linux 64-bit===&lt;br /&gt;
You must install the 32-bit libraries of the following libraries, as the precompiled Google binaries depend on them: &#039;&#039;libc6&#039;&#039;, &#039;&#039;libstdc++6&#039;&#039;, and &#039;&#039;zlib&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
New versions of Debian and/or Ubuntu require you to install i386 versions of packages:&lt;br /&gt;
 sudo dpkg --add-architecture i386&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install zlib1g:i386 libstdc++6:i386 libc6:i386&lt;br /&gt;
&lt;br /&gt;
If you are under &#039;&#039;old versions&#039;&#039; of Ubuntu, install ia32-libs can help you solve this issue.&lt;br /&gt;
 sudo apt-get install ia32-libs&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Android Report bugs]] - Bug reporting guide for VLC-Android.&lt;br /&gt;
&lt;br /&gt;
[[Category:Building]] [[Category:Android]]&lt;/div&gt;</summary>
		<author><name>Magsoft</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=AndroidCompile&amp;diff=31752</id>
		<title>AndroidCompile</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=AndroidCompile&amp;diff=31752"/>
		<updated>2017-01-10T14:09:20Z</updated>

		<summary type="html">&lt;p&gt;Magsoft: /* Setup Gradle build system */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is an introduction to the compilation of &#039;&#039;&#039;VLC for Android&#039;&#039;&#039; on Linux. &lt;br /&gt;
&lt;br /&gt;
==Android Studio, SDK and NDK installation==&lt;br /&gt;
&lt;br /&gt;
=== Requirements  ===&lt;br /&gt;
* You &#039;&#039;&#039;MUST&#039;&#039;&#039; build on Linux (or OSX if you know what you are doing).&lt;br /&gt;
* The following packages &#039;&#039;&#039;MUST&#039;&#039;&#039; must be installed:&lt;br /&gt;
** the GNU autotools: &#039;&#039;autoconf&#039;&#039;, &#039;&#039;libtool&#039;&#039;, &#039;&#039;automake&#039;&#039; and &#039;&#039;make&#039;&#039; (a.k.a. &#039;&#039;gmake&#039;&#039;)&lt;br /&gt;
** ...and their dependencies: &#039;&#039;m4&#039;&#039; and &#039;&#039;gawk&#039;&#039;, &#039;&#039;mawk&#039;&#039; or &#039;&#039;nawk&#039;&#039;,&lt;br /&gt;
** the GNU C and C++ compilers a.k.a. &#039;&#039;gcc&#039;&#039; and &#039;&#039;g++&#039;&#039;,&lt;br /&gt;
** some GNU build utilities: &#039;&#039;pkg-config&#039;&#039; and &#039;&#039;patch&#039;&#039;,&lt;br /&gt;
** the following other build utilities: &#039;&#039;Apache Ant&#039;&#039; (or &#039;&#039;Ant&#039;&#039;), &#039;&#039;cmake&#039;&#039;, &#039;&#039;protobuf&#039;&#039;, &#039;&#039;ragel&#039;&#039;,&lt;br /&gt;
** the Subversion and Git version control systems&lt;br /&gt;
** &#039;&#039;unzip&#039;&#039; and either &#039;&#039;curl&#039;&#039; or &#039;&#039;wget&#039;&#039; for retreiving sources.&lt;br /&gt;
* Very recent versions of some of those tools may be required. At the time of writing, notably gettext 0.19.3 or later is required.&lt;br /&gt;
* If any of the above is missing, expect the build to fail at some point.&lt;br /&gt;
* If targeting an Android-x86 device, &#039;&#039;yasm&#039;&#039; must be installed too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #ff0000&amp;quot;&amp;gt;&#039;&#039;&#039;64-bit users&#039;&#039;&#039;&amp;lt;/span&amp;gt;: You must install these 32-bit libs as specified here: [[AndroidCompile#Can.27t_run_aapt_or_adb_on_Linux_64-bit]]&lt;br /&gt;
&lt;br /&gt;
==== Example on Ubuntu ====&lt;br /&gt;
Install the packages as follow:&lt;br /&gt;
 sudo apt-get install automake ant autopoint cmake build-essential libtool \&lt;br /&gt;
      patch pkg-config protobuf-compiler ragel subversion unzip git&lt;br /&gt;
&lt;br /&gt;
=== SDK &amp;amp; Android Studio ===&lt;br /&gt;
# Go to [http://developer.android.com/sdk/index.html Android SDK page].&lt;br /&gt;
# Follow instructions to install latest version of Android SDK.&lt;br /&gt;
# Android Studio is recommended, but not mandatory!&lt;br /&gt;
&lt;br /&gt;
You can have [http://developer.android.com/sdk/installing.html more details], if needed.&lt;br /&gt;
&lt;br /&gt;
===Android NDK===&lt;br /&gt;
# Check that the SDK installation is correct. &lt;br /&gt;
# Go to the [http://developer.android.com/sdk/ndk/index.html Android NDK page] and download the &#039;&#039;&#039;NDK r13&#039;&#039;&#039; for Linux. &lt;br /&gt;
# Decompress it to install&lt;br /&gt;
&lt;br /&gt;
== Environment setup  ==&lt;br /&gt;
Set &#039;&#039;&#039;$ANDROID_SDK&#039;&#039;&#039; to point to your Android SDK directory &lt;br /&gt;
&lt;br /&gt;
 export ANDROID_SDK=/path/to/android-sdk&lt;br /&gt;
&lt;br /&gt;
Set &#039;&#039;&#039;$ANDROID_NDK&#039;&#039;&#039; to point to your Android NDK directory &lt;br /&gt;
&lt;br /&gt;
 export ANDROID_NDK=/path/to/android-ndk&lt;br /&gt;
&lt;br /&gt;
Add some useful binaries to your &#039;&#039;&#039;$PATH&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
 export PATH=$PATH:$ANDROID_SDK/platform-tools:$ANDROID_SDK/tools&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
=== Get VLC Source ===&lt;br /&gt;
Clone the source from the VLC git!&lt;br /&gt;
&lt;br /&gt;
In your &#039;&#039;android&#039;&#039; source folder, run: &lt;br /&gt;
&lt;br /&gt;
 git clone https://code.videolan.org/videolan/vlc-android.git&lt;br /&gt;
&lt;br /&gt;
==== Setup Gradle build system ====&lt;br /&gt;
&lt;br /&gt;
Before use Android studio to compile it, you must run &#039;&#039;&#039;compile.sh&#039;&#039;&#039; once to set up gradle build system.&lt;br /&gt;
&lt;br /&gt;
It should automatically populate mandatory local.properties and gradle.properties files with:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;local.properties&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 sdk.dir=&amp;lt;SDK path from $ANDROID_SDK&amp;gt;&lt;br /&gt;
 ndk.dir=&amp;lt;NDK path from $ANDROID_NDK&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;gradle.properties&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 keyStoreFile=/home/&#039;&#039;user&#039;&#039;/.android/debug.keystore&lt;br /&gt;
 storealias=androiddebugkey&lt;br /&gt;
 storepwd=android&lt;br /&gt;
&lt;br /&gt;
This sets up gradle to build with correct SDK/NDK and sign builds with your personal debug key.&lt;br /&gt;
&lt;br /&gt;
Now you can build from Android Studio with the &#039;&#039;&#039;Run&#039;&#039;&#039; command&lt;br /&gt;
&lt;br /&gt;
=== Devices ===&lt;br /&gt;
&lt;br /&gt;
Find the ABI for the target device.&lt;br /&gt;
&lt;br /&gt;
* For a normal (2012-2015 consumer phone or tablet) device (e.g. Cortex-A8 or Cortex-A9)&lt;br /&gt;
 &amp;lt;code&amp;gt;armeabi-v7a&amp;lt;/code&amp;gt;&lt;br /&gt;
* For a Tegra2 device (no [[wikipedia:ARM_architecture#Advanced_SIMD_.28NEON.29|NEON]])&lt;br /&gt;
 &amp;lt;code&amp;gt;armeabi-v7a&amp;lt;/code&amp;gt;&lt;br /&gt;
* For an ARMv6 device&lt;br /&gt;
 &amp;lt;code&amp;gt;armeabi&amp;lt;/code&amp;gt;&lt;br /&gt;
* For an ARMv6 device that does not support FPU&lt;br /&gt;
 &amp;lt;code&amp;gt;armeabi-nofpu&amp;lt;/code&amp;gt;&lt;br /&gt;
* For an ARMv5 device or the Android Emulator&lt;br /&gt;
 &amp;lt;code&amp;gt;armeabi-v5&amp;lt;/code&amp;gt;&lt;br /&gt;
* For a x86 device (e.g. Android-x86, Google TV, Logitech TV, Android x86 smartphones, etc)&lt;br /&gt;
 &amp;lt;code&amp;gt;x86&amp;lt;/code&amp;gt;&lt;br /&gt;
* For a MIPS device (i.e. Ainol Novo tablets):&lt;br /&gt;
 &amp;lt;code&amp;gt;mips&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This value must be passed to the compile.sh script&lt;br /&gt;
&lt;br /&gt;
==== Compile ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Read&#039;&#039;&#039; compile.sh first, as it contains some very useful and important information. Then run it:&lt;br /&gt;
 sh compile.sh -a &amp;lt;ABI&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; At this point, you will get an auto-generated debug APK in the vlc-android/build/outputs/apk folder, signed with a debug key.&lt;br /&gt;
&lt;br /&gt;
In order to build a non-debug (release) package:&lt;br /&gt;
 sh compile.sh release&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; At this point, you will get an release APK in the same folder.&lt;br /&gt;
&lt;br /&gt;
=== Run ===&lt;br /&gt;
Run it and enjoy!&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
==== Compilation error on Dependencies ====&lt;br /&gt;
Sometimes, especially when gradle dependencies have been upgraded, the &#039;&#039;compile.sh&#039;&#039; will fail to refetch dependencies. Just close Android Studio and re-run the script to fix this issue.&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
Here are some helpful links if you wish to debug VLC on Android:&lt;br /&gt;
* [http://developer.android.com/guide/developing/debugging/ddms.html DDMS] &lt;br /&gt;
* [http://developer.android.com/guide/developing/tools/logcat.html Logcat]&lt;br /&gt;
&lt;br /&gt;
===Native debugging===&lt;br /&gt;
If you run VLC Android and you get a crash that looks something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
I/DEBUG   (  958): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***&lt;br /&gt;
I/DEBUG   (  958): Build fingerprint: &#039;MOTO/MBTCA/sesame/XT300:2.1-update1/SESLA_U3_01.71.0/110110:user/release-keys&#039;&lt;br /&gt;
I/DEBUG   (  958): pid: 1733, tid: 1733 &amp;gt;&amp;gt;&amp;gt; org.videolan.vlc &amp;lt;&amp;lt;&amp;lt;&lt;br /&gt;
I/DEBUG   (  958): signal 11 (SIGSEGV), fault addr 4237be3c&lt;br /&gt;
I/DEBUG   (  958):  r0 423640a0  r1 7ece77ac  r2 42bccdac  r3 4237be38&lt;br /&gt;
I/DEBUG   (  958):  r4 00000000  r5 42bccdac  r6 002ed088  r7 002ed018&lt;br /&gt;
I/DEBUG   (  958):  r8 7ece78e8  r9 2bafa844  10 0000000e  fp 7ece794c&lt;br /&gt;
I/DEBUG   (  958):  ip 00002ba0  sp 7ece7784  lr 423652e4  pc 4237be3c  cpsr 60000010&lt;br /&gt;
I/DEBUG   (  958):          #00  pc 0037be3c  /data/data/org.videolan.vlc/lib/libvlcjni.so&lt;br /&gt;
I/DEBUG   (  958):          #01  lr 423652e4  /data/data/org.videolan.vlc/lib/libvlcjni.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You have a &#039;&#039;&#039;native crash&#039;&#039;&#039;. To debug it, you need to have compiled VLC as above and installed it on your device. Once your compiled VLC build is on your device, you can find the &#039;&#039;&#039;backtrace&#039;&#039;&#039; as follows:&lt;br /&gt;
&lt;br /&gt;
# Make sure you are in the directory that you checked out VLC-Android in.&lt;br /&gt;
# Migrate the libvlc folders. (Do this every time the code is recompiled)&lt;br /&gt;
## cp -r libvlc/jni vlc-android&lt;br /&gt;
## cp -r libvlc/libs vlc-android&lt;br /&gt;
## cp -r libvlc/obj vlc-android&lt;br /&gt;
## (This is because the libvlc and VLC for Android folders were split yet the debugger needs the object files from both.)&lt;br /&gt;
# cd vlc-android&lt;br /&gt;
# $ANDROID_NDK/ndk-gdb --verbose --force --start&lt;br /&gt;
At this point, lots of stuff will appear:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Android NDK installation path: /opt/android-ndk-r8c&lt;br /&gt;
Using default adb command: /opt/android-sdk-linux_x86/platform-tools/adb&lt;br /&gt;
ADB version found: Android Debug Bridge version 1.0.29&lt;br /&gt;
Using ADB flags: &lt;br /&gt;
Using auto-detected project path: .&lt;br /&gt;
Found package name: org.videolan.vlc&lt;br /&gt;
...bunch of stuff skipped...&lt;br /&gt;
GNU gdb (GDB) 7.3.1-gg2&lt;br /&gt;
Copyright (C) 2011 Free Software Foundation, Inc.&lt;br /&gt;
License GPLv3+: GNU GPL version 3 or later &amp;lt;http://gnu.org/licenses/gpl.html&amp;gt;&lt;br /&gt;
This is free software: you are free to change and redistribute it.&lt;br /&gt;
There is NO WARRANTY, to the extent permitted by law.  Type &amp;quot;show copying&amp;quot;&lt;br /&gt;
and &amp;quot;show warranty&amp;quot; for details.&lt;br /&gt;
This GDB was configured as &amp;quot;--host=x86_64-linux-gnu --target=arm-linux-android&amp;quot;.&lt;br /&gt;
For bug reporting instructions, please see:&lt;br /&gt;
&amp;lt;http://www.gnu.org/software/gdb/bugs/&amp;gt;.&lt;br /&gt;
Remote debugging from host 0.0.0.0&lt;br /&gt;
...bunch of stuff skipped...&lt;br /&gt;
libthread_db:td_ta_new: Victory: We can debug theads!&lt;br /&gt;
warning: Breakpoint address adjusted from 0x400deaa5 to 0x400deaa4.&lt;br /&gt;
0x40107a40 in epoll_wait () from /media/data/vlc_android/vlc-android/obj/local/armeabi/libc.so&lt;br /&gt;
(gdb)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;ol start=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;At this point, type in &amp;quot;continue&amp;quot; and press Enter.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Perform the actions you did to make it crash. It will spit out something like this:&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Program received signal SIGSEGV, Segmentation fault.&lt;br /&gt;
0x401120ae in ?? () from /media/data/vlc_android/vlc-android/obj/local/armeabi/libc.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;ol start=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now, just type in &amp;quot;&#039;&#039;&#039;bt full&#039;&#039;&#039;&amp;quot; (excluding the quotation marks) and press Enter. That is your backtrace that you should give to the developers when they ask for it (possibly on a [http://paste.kde.org/ pastebin], too).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(gdb) bt full&lt;br /&gt;
#0  0x401120ae in ?? () from /media/data/vlc_android/vlc-android/obj/local/armeabi/libc.so&lt;br /&gt;
No symbol table info available.&lt;br /&gt;
#1  0x40107bd8 in abort () from /media/data/vlc_android/vlc-android/obj/local/armeabi/libc.so&lt;br /&gt;
No symbol table info available.&lt;br /&gt;
#2  0x40118e6a in __assert2 () from /media/data/vlc_android/vlc-android/obj/local/armeabi/libc.so&lt;br /&gt;
No symbol table info available.&lt;br /&gt;
#3  0x5e0cdfdc in var_SetChecked (p_this=0x40134b94, psz_name=0x5ea2fcb8 &amp;quot;rate&amp;quot;, expected_type=80, val=...) at ../../src/misc/variables.c:711&lt;br /&gt;
        i_ret = 0&lt;br /&gt;
        p_var = &amp;lt;optimized out&amp;gt;&lt;br /&gt;
        oldval = {i_int = 4742037487051810480, b_bool = 176, f_float = 2.27765068e+14, psz_string = 0x574f26b0 &amp;quot;X\270|B\001\001&amp;quot;, p_address = 0x574f26b0, &lt;br /&gt;
          p_object = 0x574f26b0, p_list = 0x574f26b0, i_time = 4742037487051810480, coords = {x = 1464805040, y = 1104091640}}&lt;br /&gt;
        __func__ = &amp;quot;var_SetChecked&amp;quot;&lt;br /&gt;
        p_priv = &amp;lt;optimized out&amp;gt;&lt;br /&gt;
#4  0x5e06dd9c in var_SetFloat (f=1.41421354, psz_name=0x5ea2fcb8 &amp;quot;rate____sample_backtrace&amp;quot;, p_obj=0x0) at ../../include/vlc_variables.h:262&lt;br /&gt;
        val = &amp;lt;optimized out&amp;gt;&lt;br /&gt;
#5  libvlc_media_player_set_rate (p_mi=0x0, rate=1.41421354) at ../../lib/media_player.c:1252&lt;br /&gt;
        p_input_thread = &amp;lt;optimized out&amp;gt;&lt;br /&gt;
#6  0x5de7bd18 in Java_org_videolan_vlc_LibVLC_setRate (env=0x41cf0470, thiz=0x8ab00021, rate=1.41421354) at jni/libvlcjni.c:678&lt;br /&gt;
        mp = 0x0&lt;br /&gt;
#7  0x4076de34 in ?? ()&lt;br /&gt;
No symbol table info available.&lt;br /&gt;
#8  0x4076de34 in ?? ()&lt;br /&gt;
No symbol table info available.&lt;br /&gt;
Backtrace stopped: previous frame identical to this frame (corrupt stack?)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Outdated Awk ===&lt;br /&gt;
If you receive the error message while building:&lt;br /&gt;
&lt;br /&gt;
 Android NDK: Host &#039;awk&#039; tool is outdated. Please define HOST_AWK to point to Gawk or Nawk !    &lt;br /&gt;
&lt;br /&gt;
The prebuilt version of Awk that comes with the Android NDK is outdated. Defining HOST_AWK in your environment does nothing as the system still tries to just the one that comes with the Android NDK. To get around this issue, simply rename or delete the Awk binary that comes with the Android NDK. For example to move it:&lt;br /&gt;
&lt;br /&gt;
 mv $ANDROID_NDK/prebuilt/linux-x86/bin/awk $ANDROID_NDK/prebuilt/linux-x86/bin/awk.old&lt;br /&gt;
&lt;br /&gt;
=== Can&#039;t find Ant ===&lt;br /&gt;
If you&#039;re new to Ant, please be aware that some Linux distributions don&#039;t install it in the usual spot as with other programs. Try checking to see if the directory /usr/share/java/apache-ant/bin exists and add it to your path.&lt;br /&gt;
&lt;br /&gt;
===Outdated autotools-dev===&lt;br /&gt;
If you get the following error message you may have have an outdated version of autotools-dev:&lt;br /&gt;
  Invalid configuration `arm-linux-androideabi&#039;: system `androideabi&#039; not recognized&lt;br /&gt;
You may first want to check if your distribution has any available updates for this package.  Alternatively, you can manually update your config.guess and config.sub files from here: [http://git.savannah.gnu.org/gitweb/?p=config.git;a=tree].  These files are typically located in /usr/share/misc on Debian based distributions.&lt;br /&gt;
&lt;br /&gt;
===autoreconf: automake failed with exit status: 1===&lt;br /&gt;
 automake: warnings are treated as errors&lt;br /&gt;
 configure.ac:41: warning: The &#039;AM_PROG_MKDIR_P&#039; macro is deprecated, and will soon be removed.&lt;br /&gt;
 configure.ac:41: You should use the Autoconf-provided &#039;AC_PROG_MKDIR_P&#039; macro instead,&lt;br /&gt;
 configure.ac:41: and use &#039;$(MKDIR_P)&#039; instead of &#039;$(mkdir_p)&#039;in your Makefile.am files.&lt;br /&gt;
&lt;br /&gt;
If you are using Automake 1.13 or higher, you must remove -Werror from vlc/contrib/android/gnutls/configure.ac to continue. (First reported in [http://forum.videolan.org/viewtopic.php?f=35&amp;amp;t=108927])&lt;br /&gt;
&lt;br /&gt;
===autoreconf: automake failed with exit status: 1 ===&lt;br /&gt;
 make: *** [dvdnav] Error 1&lt;br /&gt;
 ...&lt;br /&gt;
 ... error: possibly undefined macro: AM_PROG_LIBTOOL&lt;br /&gt;
&lt;br /&gt;
This error may occur when compiling with an older Linux distribution, such as Ubuntu 12.04, that doesn&#039;t meet bootstrap prerequisites. As of 2014-08-09, the master branch for vlc-ports/android.git [http://git.videolan.org/?p=vlc-ports/android.git;a=summary] lacks patch 5199 [https://patches.videolan.org/patch/5199/]. Without the patch, compile.sh builds out dated automake and autoconf that may not access libtool despite presence of a current libtool binary amongst supporting tools and a similar or more recent binary present as part of the OS.&lt;br /&gt;
&lt;br /&gt;
To work around this error, patch the master branch or update the prerequisites. For Ubuntu 12.04, upgrade autoconf, automake, and cmake as dictated by vlc/extras/tools/bootstrap.&lt;br /&gt;
&lt;br /&gt;
===Can&#039;t run aapt or adb on Linux 64-bit===&lt;br /&gt;
You must install the 32-bit libraries of the following libraries, as the precompiled Google binaries depend on them: &#039;&#039;libc6&#039;&#039;, &#039;&#039;libstdc++6&#039;&#039;, and &#039;&#039;zlib&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
New versions of Debian and/or Ubuntu require you to install i386 versions of packages:&lt;br /&gt;
 sudo dpkg --add-architecture i386&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install zlib1g:i386 libstdc++6:i386 libc6:i386&lt;br /&gt;
&lt;br /&gt;
If you are under &#039;&#039;old versions&#039;&#039; of Ubuntu, install ia32-libs can help you solve this issue.&lt;br /&gt;
 sudo apt-get install ia32-libs&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Android Report bugs]] - Bug reporting guide for VLC-Android.&lt;br /&gt;
&lt;br /&gt;
[[Category:Building]] [[Category:Android]]&lt;/div&gt;</summary>
		<author><name>Magsoft</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Win32Compile&amp;diff=26957</id>
		<title>Win32Compile</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Win32Compile&amp;diff=26957"/>
		<updated>2014-08-13T08:22:09Z</updated>

		<summary type="html">&lt;p&gt;Magsoft: /* Configure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will help you to compile {{VLC}} for [[Windows]].&lt;br /&gt;
&lt;br /&gt;
== Building Methods ==&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;MinGW on Linux&#039;&#039;&#039; &lt;br /&gt;
| [[Win32Compile#Obtaining_the_toolchain|Obtaining the toolchain]]&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;[http://www.mingw.org MSYS+MinGW]&#039;&#039;&#039; on Windows&lt;br /&gt;
| [[Win32CompileMSYS|Compile with MSys]] &lt;br /&gt;
| &#039;&#039;&#039;Native&#039;&#039;&#039; compilation method. Note: This is not supported. MSYS is a minimal build environment to compile Unixish projects under Microsoft Windows. Good luck.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Cygwin&#039;&#039;&#039; on Windows&lt;br /&gt;
| [[Win32CompileCygwinNew|Compile with Cygwin]] &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;
== Obtaining the cross-compilation toolchain  ==&lt;br /&gt;
&lt;br /&gt;
=== Compiler and binary toolchain ===&lt;br /&gt;
&lt;br /&gt;
==== Mingw-w64 ====&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 g++-mingw-w64-i686 mingw-w64-tools&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;
You might want to use the following script to enforce static compilation.&lt;br /&gt;
Run as root, and use at your own risk.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # This script enforces statically linking of libgcc, libstdc++-6, and libpthread,&lt;br /&gt;
 # without needing to rebuild gcc and mingw-w64 from scratch.&lt;br /&gt;
 # -static-libgcc -static-libstdc++ flags can not be used in a libtool build system,&lt;br /&gt;
 # as libtool removes flags that it doesn&#039;t understand.&lt;br /&gt;
 &lt;br /&gt;
 move() {&lt;br /&gt;
     [ -f $1 ] || return 1&lt;br /&gt;
     mkdir -p old/&lt;br /&gt;
     mv -v $* old/&lt;br /&gt;
     return 0&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 for x in i686 x86_64&lt;br /&gt;
 do&lt;br /&gt;
     library_path_list=`$x-w64-mingw32-gcc -v /dev/null 2&amp;gt;&amp;amp;1 | grep ^LIBRARY_PATH|cut -d= -f2|sort|uniq`&lt;br /&gt;
     IFS=&#039;:&#039;&lt;br /&gt;
     for i in $library_path_list&lt;br /&gt;
     do&lt;br /&gt;
         cd $i&lt;br /&gt;
         move libstdc++-6.dll libstdc++.dll.a libgcc_s.a libgcc_s_sjlj-1.dll &amp;amp;&amp;amp; ln -s libgcc_eh.a libgcc_s.a&lt;br /&gt;
         move libpthread.dll.a libwinpthread.dll.a&lt;br /&gt;
         move libwinpthread-1.dll&lt;br /&gt;
         [ -d ../bin ] &amp;amp;&amp;amp; cd ../bin &amp;amp;&amp;amp; move libwinpthread-1.dll&lt;br /&gt;
     done&lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
==== Mingw32 ====&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;
&lt;br /&gt;
=== Development tools ===&lt;br /&gt;
You will also need:&lt;br /&gt;
* lua (5.1 or 5.2)&lt;br /&gt;
* all autotools: libtool, automake, autoconf, autopoint, make, gettext&lt;br /&gt;
* pkg-config&lt;br /&gt;
* qt4-dev-tools&lt;br /&gt;
* git&lt;br /&gt;
* subversion&lt;br /&gt;
* cmake, cvs if you want to rebuild contribs&lt;br /&gt;
* wine-dev for creating Win32 packages&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=i686-w64-mingw32&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=i686-w64-mingw32&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 ../i686-w64-mingw32/bin/moc ../i686-w64-mingw32/bin/uic ../i686-w64-mingw32/bin/rcc&lt;br /&gt;
&lt;br /&gt;
=== Fix your contrib path ===&lt;br /&gt;
&lt;br /&gt;
If your Mingw prefix is not &#039;&#039;i686-w64-mingw32&#039;&#039; (you are NOT on Debian or Ubuntu), create a symlink to contribs:&lt;br /&gt;
  $ ln -sf ../i686-w64-mingw32 ../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;
Set your PKG_CONFIG_LIBDIR&lt;br /&gt;
  $ export PKG_CONFIG_LIBDIR={your_root_path}/vlc/contrib/i686-w64-mingw32/lib/pkgconfig&lt;br /&gt;
&lt;br /&gt;
Use the standard configuration: &lt;br /&gt;
 $ ../extras/package/win32/configure.sh --host=i686-w64-mingw32&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=i686-w64-mingw32&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;&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>Magsoft</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:Android&amp;diff=26675</id>
		<title>Documentation:Android</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:Android&amp;diff=26675"/>
		<updated>2014-03-31T12:03:16Z</updated>

		<summary type="html">&lt;p&gt;Magsoft: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Mobile Device]]&lt;br /&gt;
&lt;br /&gt;
Here is the documentation of the Android port of VLC media player.&lt;/div&gt;</summary>
		<author><name>Magsoft</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2011&amp;diff=18960</id>
		<title>SoC 2011</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2011&amp;diff=18960"/>
		<updated>2011-04-12T11:38:42Z</updated>

		<summary type="html">&lt;p&gt;Magsoft: /* VLC Android Port */&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 work of the [[VideoLAN]] project 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 ==&lt;br /&gt;
=== 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;
#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;
&lt;br /&gt;
&lt;br /&gt;
== Key ideas for VLC  ==&lt;br /&gt;
&lt;br /&gt;
=== New Audio Filters  ===&lt;br /&gt;
&lt;br /&gt;
We are looking for a skilled &#039;&#039;&#039;audiophile&#039;&#039;&#039; 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;
&lt;br /&gt;
&#039;&#039;Qualification task&#039;&#039;: port any audio filter from MPlayer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: [[User:Geal|geal]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Porting Audio Filters  ===&lt;br /&gt;
&lt;br /&gt;
We are looking for a skilled &#039;&#039;&#039;audiophile&#039;&#039;&#039; that knows a lot about audio theory and practice: &lt;br /&gt;
* to port open source algorithm for audio filters to VLC.&lt;br /&gt;
&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;
&lt;br /&gt;
=== UPNP DLNA Server and Client  ===&lt;br /&gt;
&lt;br /&gt;
Test and fix service discovery module for UPNP/DLNA shares done by software (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. Some of the work is already done by previous SoC students.&lt;br /&gt;
&lt;br /&gt;
The plugin must be smart enough to provide &amp;quot;presets&amp;quot; for known DLNA media clients with limited features (PS3 or XBOX360 for starters) which require additional quirks or hacks or items to be transcoded or streamed.&lt;br /&gt;
&lt;br /&gt;
Requires some VLC knowledge as the project will involve using Media Library (arriving in vlc 1.2) and transcoding with VLC API.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: thresh&#039;&#039; &lt;br /&gt;
&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;
&lt;br /&gt;
=== VLC Android Port ===&lt;br /&gt;
&lt;br /&gt;
Improve current VLC [http://git.videolan.org/?p=vlc/vlc-android.git;a=summary android port], improve/add native/java interfaces and design and implement a GUI.&lt;br /&gt;
The project can be broken into:&lt;br /&gt;
&lt;br /&gt;
* Build libvlc jni, understand LibVlc.&lt;br /&gt;
* Design and implement a cool GUI with gestures and using LibVlc implement callbacks, map user events etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentors: ivoire&#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;
&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: jb&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== VLC for Anime  ===&lt;br /&gt;
&lt;br /&gt;
We are looking for a skilled &#039;&#039;&#039;anime fan&#039;&#039;&#039; that knows a lot about anime theory and practice to work on the optimisation of VLC for anime.&lt;br /&gt;
Ideas include:&lt;br /&gt;
&lt;br /&gt;
* Improvement of MKV demuxer for special anime needs&lt;br /&gt;
* Subtitles display improvements&lt;br /&gt;
* video filters that make sense for anime&lt;br /&gt;
* metadata and extensions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: jb&#039;&#039; &lt;br /&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;
Proposed mentor: &amp;quot;fenrir&amp;quot;&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;
&lt;br /&gt;
=== OMA/Atrac improvements ===&lt;br /&gt;
&lt;br /&gt;
We need to improve the oma demuxer to support more features and work on the ATRAC3+ decoder in libavcodec, so people can play their files from MiniDiscs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentors: Adrian, Michael or other people from linux-minidisc&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Playlist improvements ===&lt;br /&gt;
&lt;br /&gt;
We need to reinforce the media library capabilities and its integration with external metadata sources, notably for TV shows.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: jetru&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== AirTune streaming ===&lt;br /&gt;
&lt;br /&gt;
We need to be able to stream everything to your iPhone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Proposed mentor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== BD-J / BD-Live ===&lt;br /&gt;
&lt;br /&gt;
This is a project to go on the work of last year on Blu-Ray Menus&lt;br /&gt;
&lt;br /&gt;
This project requires Java knowledge&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: jb&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Http interface improvements ===&lt;br /&gt;
&lt;br /&gt;
This is a project to fix and extend the http inteface (also called oldhttp) &lt;br /&gt;
&lt;br /&gt;
The http interface is used by many remote control apps on various platforms. This project would improve the capability of the interface - and thus enable more features in the various remotes that use it.&lt;br /&gt;
&lt;br /&gt;
* get the album art working&lt;br /&gt;
**the interface is supposed to return the current album art at /art (assuming &#039;export album art&#039; is enabled)&lt;br /&gt;
**at the moment, this simply doesn&#039;t work.&lt;br /&gt;
*enable playlist re-ordering&lt;br /&gt;
**at the moment, there is no way in the http interface for the playlist order to be changed&lt;br /&gt;
*enable access to the graphical equaliser&lt;br /&gt;
**should provide a list of presets available&lt;br /&gt;
**should provide info on each slider&lt;br /&gt;
**should allow user to select a preset&lt;br /&gt;
**should allow user to adjust a slider&lt;br /&gt;
*speed control&lt;br /&gt;
**allow speed to be set in the form host:8080/requests/status.xml?command=speed&amp;amp;val=&amp;lt;someVal&amp;gt;&lt;br /&gt;
**show current speed as part of the status.xml response&lt;br /&gt;
*subtitle delay control&lt;br /&gt;
**(similar to speed control)&lt;br /&gt;
*audio delay control&lt;br /&gt;
**(similar to speed control)&lt;br /&gt;
*enable selection of a subtitle file (by path)&lt;br /&gt;
&lt;br /&gt;
*and lots more...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: confusedVorlon&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Other Ideas for VLC  ==&lt;br /&gt;
&lt;br /&gt;
=== WTV support ===&lt;br /&gt;
Wtv format support&lt;br /&gt;
&#039;&#039;Proposed mentor: Laurent&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== DVD audio support ===&lt;br /&gt;
Very difficult project for Audio fans&lt;br /&gt;
&#039;&#039;Proposed mentor: jb&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Device synchronisation===&lt;br /&gt;
Sync your mp3 player with the media library&lt;br /&gt;
&#039;&#039;Proposed mentor: jetru&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== HD DVD support ===&lt;br /&gt;
Very difficult project for someone having the right hardware&lt;br /&gt;
&#039;&#039;Proposed mentor: jb&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Multi-Angle DVD support ===&lt;br /&gt;
We need multi-angle DVD support&lt;br /&gt;
&#039;&#039;Proposed mentor: Meuuh&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== VLC&amp;amp;nbsp;Student Proposals ==&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(primary), Symbian-QT (If time permits) &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/145 Bug 145]: Project preview has no sound on Windows. &lt;br /&gt;
&lt;br /&gt;
4. [http://trac.videolan.org/vlmc/ticket/196 Bug 196]: Fix distorted audio playback in project preview. &lt;br /&gt;
&lt;br /&gt;
5. [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>Magsoft</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Win32CompileMSYSNew&amp;diff=15687</id>
		<title>Win32CompileMSYSNew</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Win32CompileMSYSNew&amp;diff=15687"/>
		<updated>2010-03-15T21:27:48Z</updated>

		<summary type="html">&lt;p&gt;Magsoft: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
MSYS is a helper environment for MinGW, the compiler chain for Windows based on GCC. It is the fastest way to build VLC natively on Windows.&lt;br /&gt;
&lt;br /&gt;
This howto was re-created by [[User:J-b|Jean-Baptiste Kempf]] and updated in  June 2009.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Install MinGW ==&lt;br /&gt;
&lt;br /&gt;
Use the main installer 5.1.4 found at&lt;br /&gt;
http://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/MinGW%205.1.4/MinGW-5.1.4.exe/download&lt;br /&gt;
&lt;br /&gt;
Go through the wizard, selecting &amp;quot;Downloading and Install&amp;quot; and using the candidate release. Select gcc, g++ and MinGW make. It should download automatically:&lt;br /&gt;
*mingwrt-3.15&lt;br /&gt;
*w32api-3.12&lt;br /&gt;
*binutils-2.18&lt;br /&gt;
*gcc-core-3.4.5&lt;br /&gt;
*gcc-g++-3.4.5&lt;br /&gt;
*mingw32-make-3.81&lt;br /&gt;
&lt;br /&gt;
== Notes from December 2009 ==&lt;br /&gt;
&lt;br /&gt;
Currently the MinGW installer adds mingwrt-3.17 which is not compatible with the precompiled contribs mentioned below.  You should manually download and install 3.15 found at&lt;br /&gt;
http://sourceforge.net/projects/mingw/files/MinGW%20Runtime/mingwrt-3.15.2/mingwrt-3.15.2-mingw32-dev.tar.gz/download&lt;br /&gt;
&lt;br /&gt;
The precompiled contribs also require gcc 4.2.1 found at&lt;br /&gt;
http://sourceforge.net/projects/mingw/files/GCC%20Version%204/Previous%20Testing_%20gcc-4.2.1-sjlj%20-2/gcc-core-4.2.1-sjlj-2.tar.gz/download&lt;br /&gt;
http://sourceforge.net/projects/mingw/files/GCC%20Version%204/Previous%20Testing_%20gcc-4.2.1-sjlj%20-2/gcc-g%2B%2B-4.2.1-sjlj-2.tar.gz/download&lt;br /&gt;
&lt;br /&gt;
After downloading and unpacking those two files you can switch MinGW to use the new version with&lt;br /&gt;
 mv /mingw/bin/c++.exe /mingw/bin/c++.345.exe&lt;br /&gt;
 mv /mingw/bin/g++.exe /mingw/bin/g++.345.exe&lt;br /&gt;
 mv /mingw/bin/gcc.exe /mingw/bin/gcc.345.exe&lt;br /&gt;
 mv /mingw/bin/g++-sjlj.exe /mingw/bin/g++.exe&lt;br /&gt;
 mv /mingw/bin/c++-sjlj.exe /mingw/bin/c++.exe&lt;br /&gt;
 mv /mingw/bin/gcc-sjlj.exe /mingw/bin/gcc.exe&lt;br /&gt;
&lt;br /&gt;
It also needs&lt;br /&gt;
http://sourceforge.net/projects/mingw/files/GCC%20Version%204/Current%20Release_%20gcc-4.4.0/gcc-core-4.4.0-mingw32-dll.tar.gz/download&lt;br /&gt;
to be installed otherwise there are warnings about a libgcc_s_dw2-1.dll missing when it comes to compiling the qt4 interface.&lt;br /&gt;
&lt;br /&gt;
== Notes from January 2010 ==&lt;br /&gt;
&lt;br /&gt;
Now You can build VLC using GCC 4.4.2 and mingw runtime 3.17 using minor patches:&lt;br /&gt;
* Before installing of MSys (after installing of latest mingw) rename MinGW/bin/mingw32-make.exe  to mingw/bin/make.exe. It will be renamed back by post install script.&lt;br /&gt;
* Install full GCC 4.4.2, and change MinGW\lib\gcc\mingw32\4.4.2\libstdc++.la (&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;library_names=&#039;&#039;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;) due to bug in latest MinGW.&lt;br /&gt;
&lt;br /&gt;
== Install MSYS ==&lt;br /&gt;
&lt;br /&gt;
* Install 7-zip and Mozilla Firefox&lt;br /&gt;
* Install MSys 1.0.11-rc1 with the exe: http://sourceforge.net/project/downloading.php?group_id=2435&amp;amp;filename=MSYS-1.0.11.exe&lt;br /&gt;
 Accept Post Install: [y]&lt;br /&gt;
 MinGW Installed? :   [y]&lt;br /&gt;
 path to MinGW:       [c:/MinGW]&lt;br /&gt;
* Install MSys Developer Tooltkit: http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe&lt;br /&gt;
&lt;br /&gt;
=== AutoTools ===&lt;br /&gt;
&lt;br /&gt;
Update your autoconf, automake and libtool by downloading and installing them, keeping in mind that you need to extract the content of the usr folder in C:\Msys&lt;br /&gt;
* http://sourceforge.net/projects/mingw/files/MSYS%20autoconf/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%20automake/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%20libtool/libtool-2.2.7a-1/libtool-2.2.7a-1-msys-1.0.11-bin.tar.lzma/download&lt;br /&gt;
&lt;br /&gt;
You can also compile them according to:&lt;br /&gt;
* http://wiki.enlightenment.org/index.php/EFL_Windows_XP&lt;br /&gt;
* http://www.mingw.org/wiki/msys&lt;br /&gt;
&lt;br /&gt;
== Install other tools ==&lt;br /&gt;
&lt;br /&gt;
http://prdownloads.sourceforge.net/mingw/libcrypt-1.1_1-2-msys-1.0.11-dll-0.tar.lzma&lt;br /&gt;
&lt;br /&gt;
Installing mingw-utils is recommended: http://prdownloads.sourceforge.net/mingw/mingw-utils-0.3.tar.gz, extract it to mingw/bin.&lt;br /&gt;
&lt;br /&gt;
Installation of wget too: http://prdownloads.sourceforge.net/mingw/wget-1.9.1-mingwPORT.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Although this is a mingwPORT package it already has a precompiled wget on board.&lt;br /&gt;
Extract the .tar.bz2 file. It contains wget.exe in the bin subfolder, extract it to mingw/bin.&lt;br /&gt;
&lt;br /&gt;
=== Install Git and checkout VLC ===&lt;br /&gt;
&lt;br /&gt;
See [[Git_Windows]].&lt;br /&gt;
&lt;br /&gt;
You can also retrieve the source code from [http://www.videolan.org/vlc/download-sources.html VideoLAN Project: VLC media player source code]&lt;br /&gt;
&lt;br /&gt;
=== PKG-CONFIG ===&lt;br /&gt;
&lt;br /&gt;
pkg-config is a mess, this is not NEWS... And you cannot compile it from Windows because of a few bugs...&lt;br /&gt;
&lt;br /&gt;
Get Glib from GNOME: http://ftp.gnome.org/pub/GNOME/binaries/win32/glib/2.18/glib_2.18.2-1_win32.zip &lt;br /&gt;
Unzip it to C:\Msys.&lt;br /&gt;
&lt;br /&gt;
Get PKG-CONFIG from GNOME: ftp://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.23-3_win32.zip&lt;br /&gt;
and ftp://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config-dev_0.23-3_win32.zip&lt;br /&gt;
Unzip them to C:\Msys.&lt;br /&gt;
&lt;br /&gt;
== Contribs ==&lt;br /&gt;
&lt;br /&gt;
Take the precompiled contribs from:&lt;br /&gt;
 http://people.videolan.org/~jb/Contribs/&lt;br /&gt;
&lt;br /&gt;
Copy them in your ~&lt;br /&gt;
 tar xvjf contrib-20090813-win32-bin-gcc-4.2.1-sjlj-runtime-3.15.2-only.tar.bz2 -C /&lt;br /&gt;
 rm -v /usr/win32/bin/moc /usr/win32/bin/uic /usr/win32/bin/rcc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bootstrap VLC ==&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;
It should warn about gettext... Just ignore.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configure ==&lt;br /&gt;
&lt;br /&gt;
 sh extras/package/win32/configure-msys.sh&lt;br /&gt;
* If you downloaded a VLC source code tarball, retrieve &#039;&#039;configure-msys.sh&#039;&#039; and &#039;&#039;configure-common.sh&#039;&#039; from [[http://git.videolan.org/?p=vlc.git;a=summary vlc.git]] / extras / package / win32 /&lt;br /&gt;
* If Your user name starts from &amp;quot;u&amp;quot; or &amp;quot;x&amp;quot; characters, change config.h (double all backslashes in COMPILED_BY constant to avoid compilation errors) after configuring.&lt;br /&gt;
&lt;br /&gt;
== Compile ==&lt;br /&gt;
&lt;br /&gt;
 PATH=/usr/win32/bin:$PATH make&lt;br /&gt;
If you have Cygwin and others tools installed, try using a shorter PATH inside MSYS shell i.e.&lt;br /&gt;
 $ echo $PATH&lt;br /&gt;
 .:/usr/local/bin:/mingw/bin:/bin&lt;br /&gt;
&lt;br /&gt;
==Creating self-contained packages==&lt;br /&gt;
&lt;br /&gt;
Once the compilation is done, 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;
== Random bootstrap, configure, and make errors ==&lt;br /&gt;
&lt;br /&gt;
There have been reports of random msys errors during bootstrap, configure, and make. They usually don&#039;t repeat themselves between runs. Rule out that your mingw-msys installation is at fault by building in windows safe mode. Even if this works, it may then be more practical to try a cross-compilation build.&lt;/div&gt;</summary>
		<author><name>Magsoft</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Win32CompileCygwinNew&amp;diff=10904</id>
		<title>Win32CompileCygwinNew</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Win32CompileCygwinNew&amp;diff=10904"/>
		<updated>2008-03-07T16:51:04Z</updated>

		<summary type="html">&lt;p&gt;Magsoft: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a new version of the Win32CompileCygwin written by Jean-Baptiste Kempf&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This version ONLY works for 0.9.x.&#039;&#039;&#039;&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&lt;br /&gt;
   expat&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;
   libtool1.5&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&lt;br /&gt;
 &lt;br /&gt;
 Editor&lt;br /&gt;
   vim&lt;br /&gt;
&lt;br /&gt;
 Lib&lt;br /&gt;
   libgcrypt&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;
&lt;br /&gt;
==Cygwin environment==&lt;br /&gt;
&lt;br /&gt;
Start Cygwin from the icon on your desktop. If it runs for the first time it will automatically create a home\&amp;quot;username&amp;quot; folder in the Cygwin environment; user being the currently logged on Windows user. Assuming this is the &#039;Administrator&#039; user it will create the following folder:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\home\Administrator (example)&lt;br /&gt;
&lt;br /&gt;
NOTE: On your desktop, you can rightclick the Cygwin icon and (in the Options field of the Cygwin Properties) set the Command history Buffer size to as large as possible: 999. This setting will make it possible to scroll back further in the Cygwin environment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=VLC source code=&lt;br /&gt;
&lt;br /&gt;
== 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;
== Snapshots ==&lt;br /&gt;
&lt;br /&gt;
You can do the same by using the snapshots in the nightly builds site.&lt;br /&gt;
&lt;br /&gt;
=Bootstrap=&lt;br /&gt;
&lt;br /&gt;
Open the configure.ac file, and modify the requirement for gettext 0.16.1 to 0.15.&lt;br /&gt;
&lt;br /&gt;
 cd vlc-trunk&lt;br /&gt;
 ./bootstrap&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;
== Win32 &amp;quot;contrib&amp;quot; package ==&lt;br /&gt;
&lt;br /&gt;
A package with most of these libraries already compiled so it&#039;s actually really easy to compile a full-featured version of vlc can be found here:&lt;br /&gt;
&lt;br /&gt;
http://download.videolan.org/pub/testing/win32/&lt;br /&gt;
&lt;br /&gt;
Download the latest version of a &amp;quot;contrib&amp;quot; package for win32:&lt;br /&gt;
&lt;br /&gt;
 contrib-20060730-win32-bin-gcc-3.4.5-only.tar.bz2 (example)&lt;br /&gt;
&lt;br /&gt;
Those days, you should use&lt;br /&gt;
 http://people.videolan.org/~jb/Contribs/contrib-20080215-win32-bin-gcc-4.2.1-sjlj-runtime-3.13-only.tar.bz2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It&#039;s a good idea to check the INSTALL.Win32 file in the VLC source directory for the appropriate contrib download file.&lt;br /&gt;
&lt;br /&gt;
Save it into your download location:&lt;br /&gt;
&lt;br /&gt;
 C:\VLC\Downloads\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installing the Win32 &amp;quot;contrib&amp;quot; package in Cygwin==&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell:&lt;br /&gt;
&lt;br /&gt;
 cd /cygdrive/c/VLC/Downloads&lt;br /&gt;
 tar xf contrib-20080215-win32-bin-gcc-4.2.1-sjlj-runtime-3.13-only.tar.bz2 -C /&lt;br /&gt;
&lt;br /&gt;
Replace with your version of the &amp;quot;contrib&amp;quot; file and DON&#039;T FORGET THE / (slash)&lt;br /&gt;
at the end.&lt;br /&gt;
&lt;br /&gt;
This will extract the contents of the file into usr/win32 folder within your Cygwin environment.&lt;br /&gt;
&lt;br /&gt;
NOTE: Make sure to DELETE your old version instead of extracting a new version on top of it.&lt;br /&gt;
&lt;br /&gt;
==Keeping the Win32 &amp;quot;contrib&amp;quot; package up-to-date==&lt;br /&gt;
&lt;br /&gt;
For maintenance purposes periodically check:&lt;br /&gt;
&lt;br /&gt;
http://download.videolan.org/pub/testing/win32/&lt;br /&gt;
&lt;br /&gt;
to see if a newer &amp;quot;contrib&amp;quot; is available. If that is the case you should DELETE the existing directory structure which is for the precompiled &amp;quot;contrib&amp;quot; package:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\usr\win32 (example)&lt;br /&gt;
&lt;br /&gt;
Download the newer file and follow the installation instructions the same as before so you will end up with the most up-to-date version.&lt;br /&gt;
&lt;br /&gt;
NOTE: Make sure to DELETE your old version instead of extracting a new version on top of it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Configure=&lt;br /&gt;
&lt;br /&gt;
In order to make our lives just a bit easier the following section describes what commandline options should be used for compiling and those commands will then be put into a &amp;quot;script&amp;quot; that can be executed (rather than having to copy and paste all the time).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configure script for compiling VLC==&lt;br /&gt;
&lt;br /&gt;
Create a new text document with the following lines:&lt;br /&gt;
&lt;br /&gt;
  PATH=/usr/win32/bin:$PATH \&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;
      --host=i686-pc-mingw32 \&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  --enable-dca&lt;br /&gt;
&lt;br /&gt;
NOTE: The following options are added for debug purposes and makes the final package a bit larger but the advantage is it&#039;s easier to debug in case of crash reports:&lt;br /&gt;
&lt;br /&gt;
 --disable-optimizations&lt;br /&gt;
 --enable-debug&lt;br /&gt;
&lt;br /&gt;
If you want to report a crash bug to the VLC team, it is necessary that you provide a stack backtrace. Unfortunately, Windows automatic crash reporter cannot generate such a backtrace as debug symbols used by GCC compiler aren&#039;t understood by Windows, therefore we suggest that you install Dr. MinGW (http://jrfonseca.dyndns.org/projects/gnu-win32/software/drmingw/) which will extend Windows Just-In-Time Debugger and provide the necessary debug information.&lt;br /&gt;
&lt;br /&gt;
NOTE: The following options is needed for Qt4 support:&lt;br /&gt;
&lt;br /&gt;
 --enable-qt4&lt;br /&gt;
&lt;br /&gt;
As of version 0.9.0 VLC will include the Qt interface. More information can be found about QT here: http://www.trolltech.com&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Win32 contrib package&amp;quot; at present 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 linues executables have to be &#039;&#039;&#039;deleted&#039;&#039;&#039; from the contrib folder:&lt;br /&gt;
&lt;br /&gt;
 C:\cygwin\usr\win32\bin\moc (example)&lt;br /&gt;
 C:\cygwin\usr\win32\bin\rcc (example)&lt;br /&gt;
 C:\cygwin\usr\win32\bin\uic (example)&lt;br /&gt;
&lt;br /&gt;
Save as filename in your &amp;quot;scripts&amp;quot; folder at your download/install location:&lt;br /&gt;
&lt;br /&gt;
 configure-vlc.sh&lt;br /&gt;
&lt;br /&gt;
NOTE: Save using &amp;quot;All files&amp;quot; and not &amp;quot;Text files&amp;quot; otherwise Windows might append the extension .txt&lt;br /&gt;
&lt;br /&gt;
Copy the file into your home directory:&lt;br /&gt;
 &lt;br /&gt;
 C:\cygwin\home\Administrator&lt;br /&gt;
&lt;br /&gt;
Start Cygwin and enter the following command in your shell: &lt;br /&gt;
&lt;br /&gt;
 dos2unix configure-vlc.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===POSIX emulation layer===&lt;br /&gt;
&lt;br /&gt;
VLC can be built with or without the so called POSIX emulation layer. Without is the default and is usually better (and with hasn&#039;t been tested for quite some time). If you do want to use the emulation layer, then just leave out the line with the following options:&lt;br /&gt;
&lt;br /&gt;
 CC=&amp;quot;gcc -mno-cygwin&amp;quot; CXX=&amp;quot;g++ -mno-cygwin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=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-trunk&lt;br /&gt;
&lt;br /&gt;
(you can check with the pwd command to see in which folder you are and with just the cd&lt;br /&gt;
command without any additional parameters you can change back to your home directory).&lt;br /&gt;
&lt;br /&gt;
NOTE: The following line is optional, only use that if you have problems compiling.&lt;br /&gt;
&lt;br /&gt;
 ./toolbox --distclean&lt;br /&gt;
&lt;br /&gt;
(This will have removed everything except code related stuff).&lt;br /&gt;
&lt;br /&gt;
 ../configure-vlc.sh&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Cross your fingers...&lt;br /&gt;
&lt;br /&gt;
NOTE: ./ means you run an application/script from the &amp;quot;current folder&amp;quot; (which is vlc-trunk) and ../ points to &amp;quot;one directory up&amp;quot; (which is where configure-vlc.sh is).&lt;br /&gt;
&lt;br /&gt;
==Creating self contained packages==&lt;br /&gt;
&lt;br /&gt;
Once the compilation is done, you can either run VLC directly from the source tree or you can build self-contained VLC packages with the following &amp;quot;make&amp;quot; commands:&lt;br /&gt;
&lt;br /&gt;
 make package-win32-base&lt;br /&gt;
&lt;br /&gt;
(This will create a subdirectory named vlc-x.x.x with all the binaries &amp;quot;stripped&amp;quot; without any debugging symbols).&lt;br /&gt;
&lt;br /&gt;
 make package-win32-zip&lt;br /&gt;
&lt;br /&gt;
(Same as above but will package the directory in a zip file).&lt;br /&gt;
&lt;br /&gt;
 make package-win32&lt;br /&gt;
&lt;br /&gt;
(Same as above but will also create an auto-installer package. You will need to have NSIS installed in its default location for this to work).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Advanced usage=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Updating Cygwin package versions==&lt;br /&gt;
&lt;br /&gt;
If you need to update or install additional packages you can just run the Cygwin setup.exe from your download location:&lt;br /&gt;
&lt;br /&gt;
 C:\Downloads\cygwin\setup.exe          (example)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==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.&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&lt;br /&gt;
&lt;br /&gt;
20080307 Added --host=i686-pc-mingw32 option to the configure script&lt;br /&gt;
&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:Coding]]&lt;/div&gt;</summary>
		<author><name>Magsoft</name></author>
	</entry>
</feed>