<?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=Chrisberov</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=Chrisberov"/>
	<link rel="alternate" type="text/html" href="https://wiki.videolan.org/Special:Contributions/Chrisberov/"/>
	<updated>2026-11-04T15:55:39Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:Play_HowTo/Basic_Use/Interface_Windows&amp;diff=20294</id>
		<title>Documentation:Play HowTo/Basic Use/Interface Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:Play_HowTo/Basic_Use/Interface_Windows&amp;diff=20294"/>
		<updated>2011-11-28T18:14:01Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;VLC 1.2 Windows 7 Interface Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The first look when you open VLC player, showing the functions of the buttons:&#039;&#039;&#039;&lt;br /&gt;
*Play/pause        - Plays or Pauses the VLC&lt;br /&gt;
*Backward          - Previous media or skip backward when key-pressed&lt;br /&gt;
*Stop              - Stops the playback&lt;br /&gt;
*Forward           - Next media or skip forward when key-pressed&lt;br /&gt;
*Toggle Fullscreen - Switch to Fullscreen&lt;br /&gt;
*Extended settings - Opens the adjustments and effects menu&lt;br /&gt;
*Playlist          - Opens the playlist&lt;br /&gt;
*Repeat            - Turn on/off the repeat function&lt;br /&gt;
*Random            - Turn on/off the random playback&lt;br /&gt;
*Volume            - You can control the volume of the sound&lt;br /&gt;
&lt;br /&gt;
[[File:VLC_first_look2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The next screenshot shows how does the Fullscreen looks like:&#039;&#039;&#039;&lt;br /&gt;
*Slower          - Slowers the playback&lt;br /&gt;
*Faster          - Fasters the playback&lt;br /&gt;
*Exit Fullscreen - press Esc to exit Fullscreen&lt;br /&gt;
*Elapsed Time    - You can switch beside elapsed time and remaining time&lt;br /&gt;
&lt;br /&gt;
[[File:VLC_Fullscr2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;In that image you can see what you can do in the Playlist(called with Ctrl+L or View/Playlist):&#039;&#039;&#039;&lt;br /&gt;
Add media into the playlist with the Drag-and-drop function right where you want it to be!&lt;br /&gt;
Some quick places you can browse directly from the player.&lt;br /&gt;
Change the view of your playlist however you want by picking one of the views.&lt;br /&gt;
&lt;br /&gt;
[[File:VLC_Playlist2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You can change the settings the way you like it from Interface to some usefull hotkeys:&#039;&#039;&#039;&lt;br /&gt;
Everything you want to change or configure is placed in the Preferences menu (Ctrl + P or Tools/Preferences).&lt;br /&gt;
&lt;br /&gt;
[[File:VLC_Preferences2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This image shows an example for the visualizations that you can turn on:&#039;&#039;&#039;&lt;br /&gt;
When playing music you can turn on the visualizations from Audio/Visualizations and pick the one you like:&lt;br /&gt;
&lt;br /&gt;
[[File:VLC_Visualization2.jpg]]&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:Play_HowTo/Basic_Use/Interface_Windows&amp;diff=20293</id>
		<title>Documentation:Play HowTo/Basic Use/Interface Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:Play_HowTo/Basic_Use/Interface_Windows&amp;diff=20293"/>
		<updated>2011-11-28T18:12:54Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;VLC 1.2 Windows 7 Interface Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The first look when you open VLC player, showing the functions of the buttons:&#039;&#039;&#039;&lt;br /&gt;
Play/pause        - Plays or Pauses the VLC&lt;br /&gt;
Backward          - Previous media or skip backward when key-pressed&lt;br /&gt;
Stop              - Stops the playback&lt;br /&gt;
Forward           - Next media or skip forward when key-pressed&lt;br /&gt;
Toggle Fullscreen - Switch to Fullscreen&lt;br /&gt;
Extended settings - Opens the adjustments and effects menu&lt;br /&gt;
Playlist          - Opens the playlist&lt;br /&gt;
Repeat            - Turn on/off the repeat function&lt;br /&gt;
Random            - Turn on/off the random playback&lt;br /&gt;
Volume            - You can control the volume of the sound&lt;br /&gt;
&lt;br /&gt;
[[File:VLC_first_look2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The next screenshot shows how does the Fullscreen looks like:&#039;&#039;&#039;&lt;br /&gt;
Slower          - Slowers the playback&lt;br /&gt;
Faster          - Fasters the playback&lt;br /&gt;
Exit Fullscreen - press Esc to exit Fullscreen&lt;br /&gt;
Elapsed Time    - You can switch beside elapsed time and remaining time&lt;br /&gt;
&lt;br /&gt;
[[File:VLC_Fullscr2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;In that image you can see what you can do in the Playlist(called with Ctrl+L or View/Playlist):&#039;&#039;&#039;&lt;br /&gt;
Add media into the playlist with the Drag-and-drop function right where you want it to be!&lt;br /&gt;
Some quick places you can browse directly from the player.&lt;br /&gt;
Change the view of your playlist however you want by picking one of the views.&lt;br /&gt;
&lt;br /&gt;
[[File:VLC_Playlist2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You can change the settings the way you like it from Interface to some usefull hotkeys:&#039;&#039;&#039;&lt;br /&gt;
Everything you want to change or configure is placed in the Preferences menu (Ctrl + P or Tools/Preferences).&lt;br /&gt;
&lt;br /&gt;
[[File:VLC_Preferences2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This image shows an example for the visualizations that you can turn on:&#039;&#039;&#039;&lt;br /&gt;
When playing music you can turn on the visualizations from Audio/Visualizations and pick the one you like:&lt;br /&gt;
&lt;br /&gt;
[[File:VLC_Visualization2.jpg]]&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=File:VLC_Visualization2.jpg&amp;diff=20292</id>
		<title>File:VLC Visualization2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=File:VLC_Visualization2.jpg&amp;diff=20292"/>
		<updated>2011-11-28T17:54:29Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=File:VLC_Preferences2.jpg&amp;diff=20291</id>
		<title>File:VLC Preferences2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=File:VLC_Preferences2.jpg&amp;diff=20291"/>
		<updated>2011-11-28T17:54:16Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=File:VLC_Playlist2.jpg&amp;diff=20290</id>
		<title>File:VLC Playlist2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=File:VLC_Playlist2.jpg&amp;diff=20290"/>
		<updated>2011-11-28T17:54:03Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=File:VLC_Fullscr2.jpg&amp;diff=20289</id>
		<title>File:VLC Fullscr2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=File:VLC_Fullscr2.jpg&amp;diff=20289"/>
		<updated>2011-11-28T17:53:51Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=File:VLC_first_look2.jpg&amp;diff=20288</id>
		<title>File:VLC first look2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=File:VLC_first_look2.jpg&amp;diff=20288"/>
		<updated>2011-11-28T17:53:36Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:Play_HowTo/Basic_Use/Interface_Windows&amp;diff=20287</id>
		<title>Documentation:Play HowTo/Basic Use/Interface Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:Play_HowTo/Basic_Use/Interface_Windows&amp;diff=20287"/>
		<updated>2011-11-28T17:53:19Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;VLC 1.2 Windows 7 Interface Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The first look when you open VLC player, showing the functions of the buttons:&lt;br /&gt;
[[File:VLC_first_look2.jpg]]&lt;br /&gt;
&lt;br /&gt;
The next screenshot shows how does the Fullscreen looks like:&lt;br /&gt;
[[File:VLC_Fullscr2.jpg]]&lt;br /&gt;
&lt;br /&gt;
In that image you can see what you can do in the Playlist(called with Ctrl+L or View/Playlist):&lt;br /&gt;
[[File:VLC_Playlist2.jpg]]&lt;br /&gt;
&lt;br /&gt;
You can change the settings the way you like it from Interface to some usefull hotkeys:&lt;br /&gt;
[[File:VLC_Preferences2.jpg]]&lt;br /&gt;
&lt;br /&gt;
This image shows an example for the visualizations that you can turn on:&lt;br /&gt;
[[File:VLC_Visualization2.jpg]]&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:Play_HowTo/Basic_Use/Interface_Windows&amp;diff=20286</id>
		<title>Documentation:Play HowTo/Basic Use/Interface Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:Play_HowTo/Basic_Use/Interface_Windows&amp;diff=20286"/>
		<updated>2011-11-28T17:38:24Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;VLC 1.2 Windows 7 Interface Documentation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The first look when you open VLC player, showing the functions of the buttons:&lt;br /&gt;
[[File:VLC_first_look.jpg]]&lt;br /&gt;
&lt;br /&gt;
The next screenshot shows how does the Fullscreen looks like:&lt;br /&gt;
[[File:VLC_Fullscr.jpg]]&lt;br /&gt;
&lt;br /&gt;
In that image you can see what you can do in the Playlist(called with Ctrl+L or View/Playlist):&lt;br /&gt;
[[File:VLC_Playlist.jpg]]&lt;br /&gt;
&lt;br /&gt;
You can change the settings the way you like it from Interface to some usefull hotkeys:&lt;br /&gt;
[[File:VLC_Preferences.jpg]]&lt;br /&gt;
&lt;br /&gt;
This image shows an example for the visualizations that you can turn on:&lt;br /&gt;
[[File:VLC_Visualization.jpg]]&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=File:VLC_Visualization.jpg&amp;diff=20285</id>
		<title>File:VLC Visualization.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=File:VLC_Visualization.jpg&amp;diff=20285"/>
		<updated>2011-11-28T17:34:40Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=File:VLC_Preferences.jpg&amp;diff=20284</id>
		<title>File:VLC Preferences.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=File:VLC_Preferences.jpg&amp;diff=20284"/>
		<updated>2011-11-28T17:34:29Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=File:VLC_Playlist.jpg&amp;diff=20283</id>
		<title>File:VLC Playlist.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=File:VLC_Playlist.jpg&amp;diff=20283"/>
		<updated>2011-11-28T17:34:15Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=File:VLC_Fullscr.jpg&amp;diff=20282</id>
		<title>File:VLC Fullscr.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=File:VLC_Fullscr.jpg&amp;diff=20282"/>
		<updated>2011-11-28T17:34:04Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:Play_HowTo/Basic_Use/Interface_Windows&amp;diff=20281</id>
		<title>Documentation:Play HowTo/Basic Use/Interface Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:Play_HowTo/Basic_Use/Interface_Windows&amp;diff=20281"/>
		<updated>2011-11-28T17:33:49Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: Created page with &amp;quot;VLC 1.2 Windows 7 Interface Documentation  The first look when you open VLC player, showing the functions of the buttons: File:VLC_first_look.jpg  The next screenshot shows h…&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;VLC 1.2 Windows 7 Interface Documentation&lt;br /&gt;
&lt;br /&gt;
The first look when you open VLC player, showing the functions of the buttons:&lt;br /&gt;
[[File:VLC_first_look.jpg]]&lt;br /&gt;
&lt;br /&gt;
The next screenshot shows how does the Fullscreen looks like:&lt;br /&gt;
[[File:VLC_Fullscr.jpg]]&lt;br /&gt;
&lt;br /&gt;
In that image you can see what you can do in the Playlist(called with Ctrl+L or View/Playlist):&lt;br /&gt;
[[File:VLC_Playlist.jpg]]&lt;br /&gt;
&lt;br /&gt;
You can change the settings the way you like it from Interface to some usefull hotkeys:&lt;br /&gt;
[[File:VLC_Preferences.jpg]]&lt;br /&gt;
&lt;br /&gt;
This image shows an example for the visualizations that you can turn on:&lt;br /&gt;
[[File:VLC_Visualization.jpg]]&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=File:VLC_first_look.jpg&amp;diff=20280</id>
		<title>File:VLC first look.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=File:VLC_first_look.jpg&amp;diff=20280"/>
		<updated>2011-11-28T17:23:44Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:User_Guide&amp;diff=20279</id>
		<title>Documentation:User Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:User_Guide&amp;diff=20279"/>
		<updated>2011-11-28T17:21:52Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{RightMenu|documentation play howto toc}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This document is the complete user guide for the VLC media player.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039; &#039;&#039;&#039;Note&#039;&#039;&#039; that  most of the documentation is for versions older than 0.9&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
User documentation for everyone. &lt;br /&gt;
&lt;br /&gt;
*[[Documentation:Play HowTo/Introduction to VLC|Introduction to VideoLAN and VLC]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; Overview and history of the VideoLAN project.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*[[Documentation:Play HowTo/Installing VLC|Installation]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; Installation instructions for a variety of computers.&#039;&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*[[Documentation:Play HowTo/Basic Use|VLC Usage]] &lt;br /&gt;
**[[Documentation:Play_HowTo/Basic_Use/Open|Open Media]]&lt;br /&gt;
***How to play audio/video materials with the VLC media player. (For versions 0.9 and newer) &lt;br /&gt;
**[[Documentation:Play HowTo/Basic Use/Interface|Interface]]&lt;br /&gt;
***[[Documentation:Play_HowTo/Basic_Use/Interface_OSX|OSX 1.2 Interface]]&lt;br /&gt;
***[[Documentation:Play_HowTo/Basic_Use/Interface_Windows|Windows 7 1.2 Interface]]&lt;br /&gt;
***Short introduction to the interface of the VLC Media Player&lt;br /&gt;
**[[Documentation:Play HowTo/Basic Use/Audio|Audio]] &lt;br /&gt;
***Playing audio (e.g. visualization, selection of devices) &lt;br /&gt;
**[[Documentation:Play HowTo/Basic Use/Video|Video]] &lt;br /&gt;
***Playing video (e.g. cropping, screen-/snapshots) &lt;br /&gt;
**[[Documentation:Play HowTo/Basic Use/Playback|Playback]] &lt;br /&gt;
***Navigation through media files (e.g. chapters, bookmarks) &lt;br /&gt;
**[[Documentation:Play HowTo/Basic Use/Playlist|Playlist]] &lt;br /&gt;
***Creating and managing playlists &lt;br /&gt;
**[[Documentation:Play HowTo/Basic Use/Subtitles|Subtitles]] &lt;br /&gt;
***Selection of subtitles &lt;br /&gt;
**[[Documentation:Play HowTo/Basic Use/Video and Audio Filters|Video and Audio Filters]] &lt;br /&gt;
***Usage of VLC&#039;s filters (equalizer, video filters) &lt;br /&gt;
**[[Documentation:Play HowTo/Basic Use/Snapshots|Snapshots]] &lt;br /&gt;
***How to create snap-/screenshots &lt;br /&gt;
**[[Documentation:Play HowTo/Basic Use/Hotkeys|Hotkeys]] &lt;br /&gt;
***Configuration of VLC&#039;s hotkeys &lt;br /&gt;
**[[Documentation:Play HowTo/Basic Use/Basic troubleshooting|Troubleshooting]] &lt;br /&gt;
***Solutions for some common problems &lt;br /&gt;
*[[Documentation:Play HowTo/Advanced Use of VLC|Advanced Use]] &lt;br /&gt;
**Advanced instruction on streams, filters, plug-ins and more. &lt;br /&gt;
*[[Documentation:WebPlugin|Using VLC inside a webpage]] &lt;br /&gt;
**How to build webpages that use the VLC Web plugin. &lt;br /&gt;
*[[VLC Uninstall|Uninstallation]] &lt;br /&gt;
**Uninstallation instructions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Documentation:Play HowTo/Basic Use 0.8| VLC Usage 0.8]]. (versions older than 0.9)&lt;br /&gt;
&lt;br /&gt;
===Authors===&lt;br /&gt;
* Alexis de Lattre&lt;br /&gt;
* Johan Bilien&lt;br /&gt;
* Anil Daoud&lt;br /&gt;
* Clément Stenac&lt;br /&gt;
* Jean-Paul Saman&lt;br /&gt;
* Jean-Baptiste Kempf&lt;br /&gt;
&lt;br /&gt;
Copyright (c) 2002-2009 the VideoLAN project&lt;br /&gt;
&lt;br /&gt;
{{GPL}}&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Documentation:Play_HowTo/Building Pages for the HTTP Interface|Building Pages for the HTTP Interface]]&lt;br /&gt;
*[[Documentation:Play_HowTo/Format String|Format String]]&lt;br /&gt;
*[[Documentation:Play_HowTo/Building Lua Playlist Scripts|Building Lua Playlist Scripts]]&lt;br /&gt;
&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&lt;br /&gt;
Copyright &amp;amp;copy; 2002-2009 the VideoLAN project.&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=LibVLC_Users&amp;diff=20270</id>
		<title>LibVLC Users</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=LibVLC_Users&amp;diff=20270"/>
		<updated>2011-11-28T12:40:56Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What applications use [[LibVLC|LibVLC]]?&lt;br /&gt;
&lt;br /&gt;
* [http://code.google.com/p/freetuxtv/ FreeTuxTV]&lt;br /&gt;
* [http://www.kde-apps.org/content/show.php?content=111750 Kamoso]&lt;br /&gt;
* [http://www.getmiro.com/ Miro]&lt;br /&gt;
* [http://code.google.com/p/sopcast-player SopCast Player]&lt;br /&gt;
* [http://tdpmedia.tdpe.co.uk/ TDPMedia Player]&lt;br /&gt;
* [http://git.videolan.org/?p=MobileVLC.git;a=summary VLC for iOS]&lt;br /&gt;
* [http://vlmc.org/ VideoLAN Movie Creator]&lt;br /&gt;
* [http://www.sally-project.org/ Sally Project Touchscreen-MediaCenter]&lt;br /&gt;
&lt;br /&gt;
Add your application above in alphabetical order.&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=LibVLC_Tutorial_086c&amp;diff=20269</id>
		<title>LibVLC Tutorial 086c</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=LibVLC_Tutorial_086c&amp;diff=20269"/>
		<updated>2011-11-28T12:40:32Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: /* Compile/link */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Tutorial for libVLC for version 0.8.6c ===&lt;br /&gt;
&lt;br /&gt;
Tested on cygwin with gcc 3.4, windows xp; instructions also for linux with small code change.&lt;br /&gt;
You will want to change the plugin path to where you actually have vlc installed.  And you will want to change the video filename to one which actually exists on your system.  This will initialize vlc and play the video for ten seconds.  After you get this to work, then you will want to look up the external API documentation to see how to use the other interfaces.  Note there are two interfaces documented in the &lt;br /&gt;
external API page; the first one is the &amp;quot;old&amp;quot; legacy one using calls such as VLC_Init.  The second one&lt;br /&gt;
is the &amp;quot;current&amp;quot; one using calls such as libvlc_new, which is used in the following code.&lt;br /&gt;
&lt;br /&gt;
=== Code ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;vlc/libvlc.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 static void quit_on_exception (libvlc_exception_t *excp) {&lt;br /&gt;
    if (libvlc_exception_raised (excp)) {&lt;br /&gt;
       fprintf(stderr, &amp;quot;error: %s\n&amp;quot;, libvlc_exception_get_message(excp));&lt;br /&gt;
       exit(-1);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int main(int argc, char **argv) {&lt;br /&gt;
    libvlc_exception_t excp;&lt;br /&gt;
    libvlc_instance_t *inst;&lt;br /&gt;
    int item;&lt;br /&gt;
    char *myarg0 = &amp;quot;-I&amp;quot;;  char *myarg1 = &amp;quot;dummy&amp;quot;;&lt;br /&gt;
    char *myarg2 = &amp;quot;--plugin-path=c:\\program files\\videolan\\plugins&amp;quot;;&lt;br /&gt;
    char *myargs[4] = {myarg0, myarg1, myarg2, NULL};&lt;br /&gt;
    char *filename = &amp;quot;c:\\video\\main\\Everybody_Hates_Chris_Feb_26.mpg&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
    libvlc_exception_init (&amp;amp;excp);&lt;br /&gt;
    inst = libvlc_new (3, myargs, &amp;amp;excp);&lt;br /&gt;
    quit_on_exception (&amp;amp;excp);&lt;br /&gt;
    item = libvlc_playlist_add (inst, filename, NULL, &amp;amp;excp); &lt;br /&gt;
    quit_on_exception (&amp;amp;excp);&lt;br /&gt;
    libvlc_playlist_play (inst, item, 0, NULL, &amp;amp;excp); &lt;br /&gt;
    quit_on_exception (&amp;amp;excp);&lt;br /&gt;
    Sleep (10000);&lt;br /&gt;
    libvlc_destroy (inst);&lt;br /&gt;
    return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Compile/link ===&lt;br /&gt;
&lt;br /&gt;
You can use [[LibVLC|LibVLC]] without compiling your own copy of the VLC source code.  You can use the libvlc.dll which comes in the standard end user installation.  But, to access the include files, you will need to download and extract the source code.  You only need to untar it; you do not even need to run the configure script.  &lt;br /&gt;
Set your %PATH% to include the directory which contains libvlc.dll and the plugins directory.  For example, add &amp;quot;C:\Program files\VideoLAN\VLC&amp;quot; in a relatively standard installation.  This way the compiler can find libvlc.dll.  Otherwise you have to copy the dll to your current directory.  &lt;br /&gt;
Use the following Makefile:&lt;br /&gt;
&lt;br /&gt;
 VLC_INST = &amp;quot;C:\Program files\VideoLAN\VLC&amp;quot;&lt;br /&gt;
 VLC_SRC = &amp;quot;C:\tools\vlc-0.8.6c\&amp;quot;&lt;br /&gt;
 demo: demo.c&lt;br /&gt;
    gcc -o demo demo.c -I$(VLC_SRC)/include \&lt;br /&gt;
    -L$(VLC_INST) -llibvlc&lt;br /&gt;
&lt;br /&gt;
=== Code for Linux ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;vlc/libvlc.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 static void quit_on_exception (libvlc_exception_t *excp) {&lt;br /&gt;
    if (libvlc_exception_raised (excp)) {&lt;br /&gt;
       fprintf(stderr, &amp;quot;error: %s\n&amp;quot;, libvlc_exception_get_message(excp));&lt;br /&gt;
       exit(-1);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int main(int argc, char **argv) {&lt;br /&gt;
    libvlc_exception_t excp;&lt;br /&gt;
    libvlc_instance_t *inst;&lt;br /&gt;
    int item;&lt;br /&gt;
    char *filename = &amp;quot;/tmp/WorldOfPadman_Intro.avi&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
    libvlc_exception_init (&amp;amp;excp);&lt;br /&gt;
    inst = libvlc_new (argc, argv, &amp;amp;excp);&lt;br /&gt;
    quit_on_exception (&amp;amp;excp);&lt;br /&gt;
    item = libvlc_playlist_add (inst, filename, NULL, &amp;amp;excp); &lt;br /&gt;
    quit_on_exception (&amp;amp;excp);&lt;br /&gt;
    libvlc_playlist_play (inst, item, 0, NULL, &amp;amp;excp); &lt;br /&gt;
    quit_on_exception (&amp;amp;excp);&lt;br /&gt;
    usleep (10000000);&lt;br /&gt;
    libvlc_destroy (inst);&lt;br /&gt;
    return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
See [http://files.filefront.com/WorldOfPadman+Introavi/;6089800;/fileinfo.html] for &#039;&#039;WorldOfPadman_Intro.avi&#039;&#039;. (You can, of course, substitute any video you like.)&lt;br /&gt;
&lt;br /&gt;
=== Compile/Link/Run for Linux ===&lt;br /&gt;
&lt;br /&gt;
 $ export VLC_SRC=/tmp/vlc-0.8.6c&lt;br /&gt;
 $ gcc -I ${VLC_SRC}/include/ -lvlc -L ${VLC_SRC}/src/.libs/ demo.c -o demo&lt;br /&gt;
 $ export LD_LIBRARY_PATH=${VLC_SRC}/src/.libs/ &lt;br /&gt;
 $ ./demo --plugin-path ${VLC_SRC}&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=LibVLC_SampleCode_Qt&amp;diff=20268</id>
		<title>LibVLC SampleCode Qt</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=LibVLC_SampleCode_Qt&amp;diff=20268"/>
		<updated>2011-11-28T12:39:22Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: /* How to use? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This sample code will render a video into a  Qt QWidget. &lt;br /&gt;
&lt;br /&gt;
This was tested with vlc-0.9.9 and Qt 4.5.1 on WinXP and Linux&lt;br /&gt;
&lt;br /&gt;
== How to use? ==&lt;br /&gt;
&lt;br /&gt;
	 &lt;br /&gt;
You need [[LibVLC|&#039;&#039;libvlc headers&#039;&#039;]] and &#039;&#039;Qt headers&#039;&#039;.Take those 3 files, put them in a folder.&lt;br /&gt;
Run &lt;br /&gt;
 qmake -project&lt;br /&gt;
&lt;br /&gt;
Edit the .pro file and add&lt;br /&gt;
 LIBS += -L*path to vlc lib* #if you are at windows os&lt;br /&gt;
 LIBS += -lvlc&lt;br /&gt;
&lt;br /&gt;
Run&lt;br /&gt;
 qmake&lt;br /&gt;
and then&lt;br /&gt;
 make or mingw32-make under a Windows OS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On win os you have to use the zip file. the lib and the header files are located in the sdk-folder.&lt;br /&gt;
&lt;br /&gt;
== VLC 1.1.5 and Ubutnu Lucid ==&lt;br /&gt;
[Ondrej Spilka 20101201] slightly modified for the modest versions...&lt;br /&gt;
- tested ok&lt;br /&gt;
- X11 embed container have to be used, therefore QX11EmbedContainer rather than QFrame have to be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Files ==&lt;br /&gt;
&lt;br /&gt;
main.cpp:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/* libVLC and Qt sample code&lt;br /&gt;
 * Copyright © 2009 Alexander Maringer &amp;lt;maringer@maringer-it.de&amp;gt;&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;vlc_on_qt.h&amp;quot;&lt;br /&gt;
#include &amp;lt;QtGui/QApplication&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char *argv[])&lt;br /&gt;
{&lt;br /&gt;
    QApplication a(argc, argv);&lt;br /&gt;
    Player p;&lt;br /&gt;
    p.resize(640,480);&lt;br /&gt;
    p.playFile(&amp;quot;rtp://@:2626&amp;quot;); // Replace with what you want to play&lt;br /&gt;
    p.show();&lt;br /&gt;
    return a.exec();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
vlc_on_qt.h:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/* libVLC and Qt sample code&lt;br /&gt;
 * Copyright © 2009 Alexander Maringer &amp;lt;maringer@maringer-it.de&amp;gt;&lt;br /&gt;
 */&lt;br /&gt;
#ifndef VLC_ON_QT_H&lt;br /&gt;
#define VLC_ON_QT_H&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;vlc/vlc.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QWidget&amp;gt;&lt;br /&gt;
&lt;br /&gt;
class QVBoxLayout;&lt;br /&gt;
class QPushButton;&lt;br /&gt;
class QTimer;&lt;br /&gt;
class QFrame;&lt;br /&gt;
class QSlider;&lt;br /&gt;
&lt;br /&gt;
#define POSITION_RESOLUTION 10000&lt;br /&gt;
&lt;br /&gt;
class Player : public QWidget&lt;br /&gt;
{&lt;br /&gt;
    Q_OBJECT&lt;br /&gt;
    QSlider *_positionSlider;&lt;br /&gt;
    QSlider *_volumeSlider;&lt;br /&gt;
    // [20101201 Ondra Spilka] &lt;br /&gt;
    // on Linux/Ubuntu Lucid and VLC &amp;gt;= 1.0 (at least 1.1.5 was tested) XWindow handle have to be passed&lt;br /&gt;
    // therefore QX11EmbedContainer have to be used instead of QFrame&lt;br /&gt;
#ifdef Q_WS_X11    &lt;br /&gt;
    QX11EmbedContainer *_videoWidget;&lt;br /&gt;
#else&lt;br /&gt;
    QFrame *_videoWidget;&lt;br /&gt;
#endif   &lt;br /&gt;
    QTimer *poller;&lt;br /&gt;
    bool _isPlaying;&lt;br /&gt;
    libvlc_exception_t _vlcexcep;&lt;br /&gt;
    libvlc_instance_t *_vlcinstance;&lt;br /&gt;
    libvlc_media_player_t *_mp;&lt;br /&gt;
    libvlc_media_t *_m;&lt;br /&gt;
&lt;br /&gt;
public:&lt;br /&gt;
    Player();&lt;br /&gt;
    ~Player();&lt;br /&gt;
    void raise(libvlc_exception_t * ex);&lt;br /&gt;
&lt;br /&gt;
public slots:&lt;br /&gt;
    void playFile(QString file);&lt;br /&gt;
    void updateInterface();&lt;br /&gt;
    void changeVolume(int newVolume);&lt;br /&gt;
    void changePosition(int newPosition);&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
vlc_on_qt.cpp:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/* libVLC and Qt sample code&lt;br /&gt;
 * Copyright © 2009 Alexander Maringer &amp;lt;maringer@maringer-it.de&amp;gt;&lt;br /&gt;
 */&lt;br /&gt;
#include &amp;quot;vlc_on_qt.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QVBoxLayout&amp;gt;&lt;br /&gt;
#include &amp;lt;QPushButton&amp;gt;&lt;br /&gt;
#include &amp;lt;QSlider&amp;gt;&lt;br /&gt;
#include &amp;lt;QTimer&amp;gt;&lt;br /&gt;
#include &amp;lt;QFrame&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Player::Player()&lt;br /&gt;
: QWidget()&lt;br /&gt;
{&lt;br /&gt;
    //preparation of the vlc command&lt;br /&gt;
    const char * const vlc_args[] = {&lt;br /&gt;
              &amp;quot;-I&amp;quot;, &amp;quot;dummy&amp;quot;, /* Don&#039;t use any interface */&lt;br /&gt;
              &amp;quot;--ignore-config&amp;quot;, /* Don&#039;t use VLC&#039;s config */&lt;br /&gt;
              &amp;quot;--extraintf=logger&amp;quot;, //log anything&lt;br /&gt;
              &amp;quot;--verbose=2&amp;quot;, //be much more verbose then normal for debugging purpose&lt;br /&gt;
              &amp;quot;--plugin-path=C:\\vlc-0.9.9-win32\\plugins\\&amp;quot; };&lt;br /&gt;
&lt;br /&gt;
#ifdef Q_WS_X11    &lt;br /&gt;
    QX11EmbedContainer *_videoWidget;&lt;br /&gt;
#else&lt;br /&gt;
    _videoWidget=new QFrame(this);&lt;br /&gt;
#endif   &lt;br /&gt;
&lt;br /&gt;
    _volumeSlider=new QSlider(Qt::Horizontal,this);&lt;br /&gt;
    _volumeSlider-&amp;gt;setMaximum(100); //the volume is between 0 and 100&lt;br /&gt;
    _volumeSlider-&amp;gt;setToolTip(&amp;quot;Audio slider&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    // Note: if you use streaming, there is no ability to use the position slider&lt;br /&gt;
    _positionSlider=new QSlider(Qt::Horizontal,this); &lt;br /&gt;
    _positionSlider-&amp;gt;setMaximum(POSITION_RESOLUTION);&lt;br /&gt;
&lt;br /&gt;
    QVBoxLayout *layout = new QVBoxLayout;&lt;br /&gt;
    layout-&amp;gt;addWidget(_videoWidget);&lt;br /&gt;
    layout-&amp;gt;addWidget(_positionSlider);&lt;br /&gt;
    layout-&amp;gt;addWidget(_volumeSlider);&lt;br /&gt;
    setLayout(layout);&lt;br /&gt;
&lt;br /&gt;
    _isPlaying=false;&lt;br /&gt;
    poller=new QTimer(this);&lt;br /&gt;
&lt;br /&gt;
    //Initialize an instance of vlc&lt;br /&gt;
    //a structure for the exception is neede for this initalization&lt;br /&gt;
    libvlc_exception_init(&amp;amp;_vlcexcep);&lt;br /&gt;
&lt;br /&gt;
    //create a new libvlc instance&lt;br /&gt;
    _vlcinstance=libvlc_new(sizeof(vlc_args) / sizeof(vlc_args[0]), vlc_args,&amp;amp;_vlcexcep);  //tricky calculation of the char space used&lt;br /&gt;
    raise (&amp;amp;_vlcexcep);&lt;br /&gt;
    &lt;br /&gt;
    // Create a media player playing environement &lt;br /&gt;
    _mp = libvlc_media_player_new (_vlcinstance, &amp;amp;_vlcexcep);&lt;br /&gt;
    raise (&amp;amp;_vlcexcep);&lt;br /&gt;
&lt;br /&gt;
    //connect the two sliders to the corresponding slots (uses Qt&#039;s signal / slots technology)&lt;br /&gt;
    connect(poller, SIGNAL(timeout()), this, SLOT(updateInterface()));&lt;br /&gt;
    connect(_positionSlider, SIGNAL(sliderMoved(int)), this, SLOT(changePosition(int)));&lt;br /&gt;
    connect(_volumeSlider, SIGNAL(sliderMoved(int)), this, SLOT(changeVolume(int)));&lt;br /&gt;
&lt;br /&gt;
    poller-&amp;gt;start(100); //start timer to trigger every 100 ms the updateInterface slot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//desctructor&lt;br /&gt;
Player::~Player()&lt;br /&gt;
{&lt;br /&gt;
    /* Stop playing */&lt;br /&gt;
    libvlc_media_player_stop (_mp, &amp;amp;_vlcexcep);&lt;br /&gt;
&lt;br /&gt;
    /* Free the media_player */&lt;br /&gt;
    libvlc_media_player_release (_mp);&lt;br /&gt;
&lt;br /&gt;
    libvlc_release (_vlcinstance);&lt;br /&gt;
    raise (&amp;amp;_vlcexcep);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void Player::playFile(QString file)&lt;br /&gt;
{&lt;br /&gt;
    //the file has to be in one of the following formats /perhaps a little bit outdated)&lt;br /&gt;
    /*&lt;br /&gt;
    [file://]filename              Plain media file&lt;br /&gt;
    http://ip:port/file            HTTP URL&lt;br /&gt;
    ftp://ip:port/file             FTP URL&lt;br /&gt;
    mms://ip:port/file             MMS URL&lt;br /&gt;
    screen://                      Screen capture&lt;br /&gt;
    [dvd://][device][@raw_device]  DVD device&lt;br /&gt;
    [vcd://][device]               VCD device&lt;br /&gt;
    [cdda://][device]              Audio CD device&lt;br /&gt;
    udp:[[&amp;lt;source address&amp;gt;]@[&amp;lt;bind address&amp;gt;][:&amp;lt;bind port&amp;gt;]]&lt;br /&gt;
    */&lt;br /&gt;
&lt;br /&gt;
    /* Create a new LibVLC media descriptor */&lt;br /&gt;
    _m = libvlc_media_new (_vlcinstance, file.toAscii(), &amp;amp;_vlcexcep);&lt;br /&gt;
    raise(&amp;amp;_vlcexcep);&lt;br /&gt;
    &lt;br /&gt;
    libvlc_media_player_set_media (_mp, _m, &amp;amp;_vlcexcep);&lt;br /&gt;
    raise(&amp;amp;_vlcexcep);&lt;br /&gt;
&lt;br /&gt;
    // /!\ Please note /!\&lt;br /&gt;
    //&lt;br /&gt;
    // passing the widget to the lib shows vlc at which position it should show up&lt;br /&gt;
    // vlc automatically resizes the video to the ´given size of the widget&lt;br /&gt;
    // and it even resizes it, if the size changes at the playing&lt;br /&gt;
    &lt;br /&gt;
    /* Get our media instance to use our window */&lt;br /&gt;
    #if defined(Q_OS_WIN)&lt;br /&gt;
        libvlc_media_player_set_drawable(_mp, reinterpret_cast&amp;lt;unsigned int&amp;gt;(_videoWidget-&amp;gt;winId()), &amp;amp;_vlcexcep );&lt;br /&gt;
        //libvlc_media_player_set_hwnd(_mp, _videoWidget-&amp;gt;winId(), &amp;amp;_vlcexcep ); // for vlc 1.0&lt;br /&gt;
    #elif defined(Q_OS_MAC)&lt;br /&gt;
        libvlc_media_player_set_drawable(_mp, _videoWidget-&amp;gt;winId(), &amp;amp;_vlcexcep );&lt;br /&gt;
        //libvlc_media_player_set_agl (_mp, _videoWidget-&amp;gt;winId(), &amp;amp;_vlcexcep); // for vlc 1.0&lt;br /&gt;
    #else //Linux&lt;br /&gt;
        //[20101201 Ondrej Spilka] obsolete call on libVLC &amp;gt;=1.1.5 &lt;br /&gt;
        //libvlc_media_player_set_drawable(_mp, _videoWidget-&amp;gt;winId(), &amp;amp;_vlcexcep );&lt;br /&gt;
        //libvlc_media_player_set_xwindow(_mp, _videoWidget-&amp;gt;winId(), &amp;amp;_vlcexcep ); // for vlc 1.0&lt;br /&gt;
&lt;br /&gt;
     /* again note X11 handle on Linux is needed&lt;br /&gt;
        winID() returns X11 handle when QX11EmbedContainer us used */&lt;br /&gt;
     &lt;br /&gt;
        int windid = _videoWidget-&amp;gt;winId();&lt;br /&gt;
        libvlc_media_player_set_xwindow (mp, windid );&lt;br /&gt;
&lt;br /&gt;
    #endif&lt;br /&gt;
    raise(&amp;amp;_vlcexcep);&lt;br /&gt;
&lt;br /&gt;
    /* Play */&lt;br /&gt;
    libvlc_media_player_play (_mp, &amp;amp;_vlcexcep );&lt;br /&gt;
    raise(&amp;amp;_vlcexcep);&lt;br /&gt;
&lt;br /&gt;
    _isPlaying=true;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void Player::changeVolume(int newVolume)&lt;br /&gt;
{&lt;br /&gt;
    libvlc_exception_clear(&amp;amp;_vlcexcep);&lt;br /&gt;
    libvlc_audio_set_volume (_vlcinstance,newVolume , &amp;amp;_vlcexcep);&lt;br /&gt;
    raise(&amp;amp;_vlcexcep);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void Player::changePosition(int newPosition)&lt;br /&gt;
{&lt;br /&gt;
    libvlc_exception_clear(&amp;amp;_vlcexcep);&lt;br /&gt;
    // It&#039;s possible that the vlc doesn&#039;t play anything&lt;br /&gt;
    // so check before&lt;br /&gt;
    libvlc_media_t *curMedia = libvlc_media_player_get_media (_mp, &amp;amp;_vlcexcep);&lt;br /&gt;
    libvlc_exception_clear(&amp;amp;_vlcexcep);&lt;br /&gt;
    if (curMedia == NULL)&lt;br /&gt;
        return;&lt;br /&gt;
&lt;br /&gt;
    float pos=(float)(newPosition)/(float)POSITION_RESOLUTION;&lt;br /&gt;
    libvlc_media_player_set_position (_mp, pos, &amp;amp;_vlcexcep);&lt;br /&gt;
    raise(&amp;amp;_vlcexcep);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void Player::updateInterface()&lt;br /&gt;
{&lt;br /&gt;
    if(!_isPlaying)&lt;br /&gt;
        return;&lt;br /&gt;
&lt;br /&gt;
    // It&#039;s possible that the vlc doesn&#039;t play anything&lt;br /&gt;
    // so check before&lt;br /&gt;
    libvlc_media_t *curMedia = libvlc_media_player_get_media (_mp, &amp;amp;_vlcexcep);&lt;br /&gt;
    libvlc_exception_clear(&amp;amp;_vlcexcep);&lt;br /&gt;
    if (curMedia == NULL)&lt;br /&gt;
        return;&lt;br /&gt;
&lt;br /&gt;
    float pos=libvlc_media_player_get_position (_mp, &amp;amp;_vlcexcep);&lt;br /&gt;
    int siderPos=(int)(pos*(float)(POSITION_RESOLUTION));&lt;br /&gt;
    _positionSlider-&amp;gt;setValue(siderPos);&lt;br /&gt;
    int volume=libvlc_audio_get_volume (_vlcinstance,&amp;amp;_vlcexcep);&lt;br /&gt;
    _volumeSlider-&amp;gt;setValue(volume);&lt;br /&gt;
}&lt;br /&gt;
void Player::raise(libvlc_exception_t * ex)&lt;br /&gt;
{&lt;br /&gt;
    if (libvlc_exception_raised (ex))&lt;br /&gt;
    {&lt;br /&gt;
         fprintf (stderr, &amp;quot;error: %s\n&amp;quot;, libvlc_exception_get_message(ex));&lt;br /&gt;
         exit (-1);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VLC 1.2 and OpenSuse 11.3 ==&lt;br /&gt;
[Jofre Guevara 20101215] Modifications of original template based on new VLC version.&lt;br /&gt;
[Ondrej Spilka 20101201] slightly modified for the modest versions...&lt;br /&gt;
- tested ok&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Files ==&lt;br /&gt;
&lt;br /&gt;
main.cpp:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/* libVLC and Qt sample code&lt;br /&gt;
 * Copyright © 2009 Alexander Maringer &amp;lt;maringer@maringer-it.de&amp;gt;&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;vlc_on_qt.h&amp;quot;&lt;br /&gt;
#include &amp;lt;QtGui/QApplication&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char *argv[])&lt;br /&gt;
{&lt;br /&gt;
    QApplication a(argc, argv);&lt;br /&gt;
    Player p;&lt;br /&gt;
    p.resize(640,480);&lt;br /&gt;
    p.playFile(&amp;quot;rtp://@:2626&amp;quot;); // Replace with what you want to play&lt;br /&gt;
    p.show();&lt;br /&gt;
    return a.exec();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
vlc_on_qt.h:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/* libVLC and Qt sample code&lt;br /&gt;
 * Copyright © 2009 Alexander Maringer &amp;lt;maringer@maringer-it.de&amp;gt;&lt;br /&gt;
 */&lt;br /&gt;
#ifndef VLC_ON_QT_H&lt;br /&gt;
#define VLC_ON_QT_H&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;vlc/vlc.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QWidget&amp;gt;&lt;br /&gt;
&lt;br /&gt;
class QVBoxLayout;&lt;br /&gt;
class QPushButton;&lt;br /&gt;
class QTimer;&lt;br /&gt;
class QFrame;&lt;br /&gt;
class QSlider;&lt;br /&gt;
&lt;br /&gt;
#define POSITION_RESOLUTION 10000&lt;br /&gt;
&lt;br /&gt;
class Player : public QWidget&lt;br /&gt;
{&lt;br /&gt;
    Q_OBJECT&lt;br /&gt;
    QSlider *_positionSlider;&lt;br /&gt;
    QSlider *_volumeSlider;&lt;br /&gt;
    // [20101215 JG]&lt;br /&gt;
    // Tested on Linux OpenSuse and VLC 1.2.0. This version of VLC is not completely compatible with previous versions of VLC.&lt;br /&gt;
    // [20101201 Ondra Spilka]&lt;br /&gt;
    // on Linux/Ubuntu Lucid and VLC &amp;gt;= 1.0 (at least 1.1.5 was tested) XWindow handle have to be passed&lt;br /&gt;
    // therefore QX11EmbedContainer have to be used instead of QFrame&lt;br /&gt;
#ifdef Q_WS_X11&lt;br /&gt;
    QX11EmbedContainer *_videoWidget;&lt;br /&gt;
#else&lt;br /&gt;
    QFrame *_videoWidget;&lt;br /&gt;
#endif&lt;br /&gt;
    // [20101215 JG] If KDE is used like unique desktop environment, only use QFrame *_videoWidget;&lt;br /&gt;
    QTimer *poller;&lt;br /&gt;
    bool _isPlaying;&lt;br /&gt;
    //libvlc_exception_t _vlcexcep; // [20101215 JG] Used for versions prior to VLC 1.2.0.&lt;br /&gt;
    libvlc_instance_t *_vlcinstance;&lt;br /&gt;
    libvlc_media_player_t *_mp;&lt;br /&gt;
    libvlc_media_t *_m;&lt;br /&gt;
&lt;br /&gt;
public:&lt;br /&gt;
    Player();&lt;br /&gt;
    ~Player();&lt;br /&gt;
    //void raise(libvlc_exception_t * ex); // [20101215 JG] Used for versions prior to VLC 1.2.0.&lt;br /&gt;
&lt;br /&gt;
public slots:&lt;br /&gt;
    void playFile(QString file);&lt;br /&gt;
    void updateInterface();&lt;br /&gt;
    void changeVolume(int newVolume);&lt;br /&gt;
    void changePosition(int newPosition);&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
vlc_on_qt.cpp:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/* libVLC and Qt sample code&lt;br /&gt;
 * Copyright © 2009 Alexander Maringer &amp;lt;maringer@maringer-it.de&amp;gt;&lt;br /&gt;
 */&lt;br /&gt;
#include &amp;quot;vlc_on_qt.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QVBoxLayout&amp;gt;&lt;br /&gt;
#include &amp;lt;QPushButton&amp;gt;&lt;br /&gt;
#include &amp;lt;QSlider&amp;gt;&lt;br /&gt;
#include &amp;lt;QTimer&amp;gt;&lt;br /&gt;
#include &amp;lt;QFrame&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Player::Player()&lt;br /&gt;
: QWidget()&lt;br /&gt;
{&lt;br /&gt;
    //preparation of the vlc command&lt;br /&gt;
    const char * const vlc_args[] = {&lt;br /&gt;
              &amp;quot;-I&amp;quot;, &amp;quot;dummy&amp;quot;, /* Don&#039;t use any interface */&lt;br /&gt;
              &amp;quot;--ignore-config&amp;quot;, /* Don&#039;t use VLC&#039;s config */&lt;br /&gt;
              &amp;quot;--extraintf=logger&amp;quot;, //log anything&lt;br /&gt;
              &amp;quot;--verbose=2&amp;quot;, //be much more verbose then normal for debugging purpose&lt;br /&gt;
              &amp;quot;--plugin-path=C:\\vlc-0.9.9-win32\\plugins\\&amp;quot; };&lt;br /&gt;
&lt;br /&gt;
#ifdef Q_WS_X11&lt;br /&gt;
    QX11EmbedContainer *_videoWidget;&lt;br /&gt;
#else&lt;br /&gt;
    _videoWidget=new QFrame(this);&lt;br /&gt;
#endif&lt;br /&gt;
    // [20101215 JG] If KDE is used like unique desktop environment, only use _videoWidget=new QFrame(this);&lt;br /&gt;
&lt;br /&gt;
    _volumeSlider=new QSlider(Qt::Horizontal,this);&lt;br /&gt;
    _volumeSlider-&amp;gt;setMaximum(100); //the volume is between 0 and 100&lt;br /&gt;
    _volumeSlider-&amp;gt;setToolTip(&amp;quot;Audio slider&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    // Note: if you use streaming, there is no ability to use the position slider&lt;br /&gt;
    _positionSlider=new QSlider(Qt::Horizontal,this);&lt;br /&gt;
    _positionSlider-&amp;gt;setMaximum(POSITION_RESOLUTION);&lt;br /&gt;
&lt;br /&gt;
    QVBoxLayout *layout = new QVBoxLayout;&lt;br /&gt;
    layout-&amp;gt;addWidget(_videoWidget);&lt;br /&gt;
    layout-&amp;gt;addWidget(_positionSlider);&lt;br /&gt;
    layout-&amp;gt;addWidget(_volumeSlider);&lt;br /&gt;
    setLayout(layout);&lt;br /&gt;
&lt;br /&gt;
    _isPlaying=false;&lt;br /&gt;
    poller=new QTimer(this);&lt;br /&gt;
&lt;br /&gt;
    //Initialize an instance of vlc&lt;br /&gt;
    //a structure for the exception is neede for this initalization&lt;br /&gt;
    //libvlc_exception_init(&amp;amp;_vlcexcep); // [20101215 JG] Used for versions prior to VLC 1.2.0.&lt;br /&gt;
&lt;br /&gt;
    //create a new libvlc instance&lt;br /&gt;
    _vlcinstance=libvlc_new(sizeof(vlc_args) / sizeof(vlc_args[0]), vlc_args);  //tricky calculation of the char space used&lt;br /&gt;
    //_vlcinstance=libvlc_new(sizeof(vlc_args) / sizeof(vlc_args[0]), vlc_args,&amp;amp;_vlcexcep); // [20101215 JG] Used for versions prior to VLC 1.2.0.&lt;br /&gt;
    //raise (&amp;amp;_vlcexcep); // [20101215 JG] Used for versions prior to VLC 1.2.0.&lt;br /&gt;
&lt;br /&gt;
    // Create a media player playing environement&lt;br /&gt;
    _mp = libvlc_media_player_new (_vlcinstance);&lt;br /&gt;
    //_mp = libvlc_media_player_new (_vlcinstance, &amp;amp;_vlcexcep); // [20101215 JG] Used for versions prior to VLC 1.2.0.&lt;br /&gt;
    //raise (&amp;amp;_vlcexcep); // [20101215 JG] Used for versions prior to VLC 1.2.0.&lt;br /&gt;
&lt;br /&gt;
    //connect the two sliders to the corresponding slots (uses Qt&#039;s signal / slots technology)&lt;br /&gt;
    connect(poller, SIGNAL(timeout()), this, SLOT(updateInterface()));&lt;br /&gt;
    connect(_positionSlider, SIGNAL(sliderMoved(int)), this, SLOT(changePosition(int)));&lt;br /&gt;
    connect(_volumeSlider, SIGNAL(sliderMoved(int)), this, SLOT(changeVolume(int)));&lt;br /&gt;
&lt;br /&gt;
    poller-&amp;gt;start(100); //start timer to trigger every 100 ms the updateInterface slot&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//desctructor&lt;br /&gt;
Player::~Player()&lt;br /&gt;
{&lt;br /&gt;
    /* Stop playing */&lt;br /&gt;
    libvlc_media_player_stop (_mp);&lt;br /&gt;
    //libvlc_media_player_stop (_mp, &amp;amp;_vlcexcep); // [20101215 JG] Used for versions prior to VLC 1.2.0.&lt;br /&gt;
&lt;br /&gt;
    /* Free the media_player */&lt;br /&gt;
    libvlc_media_player_release (_mp);&lt;br /&gt;
&lt;br /&gt;
    libvlc_release (_vlcinstance);&lt;br /&gt;
    //raise (&amp;amp;_vlcexcep); // [20101215 JG] Used for versions prior to VLC 1.2.0.&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void Player::playFile(QString file)&lt;br /&gt;
{&lt;br /&gt;
    //the file has to be in one of the following formats /perhaps a little bit outdated)&lt;br /&gt;
    /*&lt;br /&gt;
    [file://]filename              Plain media file&lt;br /&gt;
    http://ip:port/file            HTTP URL&lt;br /&gt;
    ftp://ip:port/file             FTP URL&lt;br /&gt;
    mms://ip:port/file             MMS URL&lt;br /&gt;
    screen://                      Screen capture&lt;br /&gt;
    [dvd://][device][@raw_device]  DVD device&lt;br /&gt;
    [vcd://][device]               VCD device&lt;br /&gt;
    [cdda://][device]              Audio CD device&lt;br /&gt;
    udp:[[&amp;lt;source address&amp;gt;]@[&amp;lt;bind address&amp;gt;][:&amp;lt;bind port&amp;gt;]]&lt;br /&gt;
    */&lt;br /&gt;
&lt;br /&gt;
    /* Create a new LibVLC media descriptor */&lt;br /&gt;
    _m = libvlc_media_new_path(_vlcinstance, file.toAscii());&lt;br /&gt;
    //_m = libvlc_media_new (_vlcinstance, file.toAscii(), &amp;amp;_vlcexcep); // [20101215 JG] Used for versions prior to VLC 1.2.0.&lt;br /&gt;
    //raise(&amp;amp;_vlcexcep); // [20101215 JG] Used for versions prior to VLC 1.2.0.&lt;br /&gt;
&lt;br /&gt;
    libvlc_media_player_set_media (_mp, _m);&lt;br /&gt;
    //libvlc_media_player_set_media (_mp, _m, &amp;amp;_vlcexcep); // [20101215 JG] Used for versions prior to VLC 1.2.0.&lt;br /&gt;
    //raise(&amp;amp;_vlcexcep); // [20101215 JG] Used for versions prior to VLC 1.2.0.&lt;br /&gt;
&lt;br /&gt;
    // /!\ Please note /!\&lt;br /&gt;
    //&lt;br /&gt;
    // passing the widget to the lib shows vlc at which position it should show up&lt;br /&gt;
    // vlc automatically resizes the video to the ´given size of the widget&lt;br /&gt;
    // and it even resizes it, if the size changes at the playing&lt;br /&gt;
&lt;br /&gt;
    /* Get our media instance to use our window */&lt;br /&gt;
    #if defined(Q_OS_WIN)&lt;br /&gt;
        libvlc_media_player_set_drawable(_mp, reinterpret_cast&amp;lt;unsigned int&amp;gt;(_videoWidget-&amp;gt;winId()));&lt;br /&gt;
        //libvlc_media_player_set_drawable(_mp, reinterpret_cast&amp;lt;unsigned int&amp;gt;(_videoWidget-&amp;gt;winId()), &amp;amp;_vlcexcep ); // [20101215 JG] Used for versions prior to VLC 1.2.0.&lt;br /&gt;
        //libvlc_media_player_set_hwnd(_mp, _videoWidget-&amp;gt;winId(), &amp;amp;_vlcexcep ); // for vlc 1.0&lt;br /&gt;
    #elif defined(Q_OS_MAC)&lt;br /&gt;
        libvlc_media_player_set_drawable(_mp, _videoWidget-&amp;gt;winId());&lt;br /&gt;
        //libvlc_media_player_set_drawable(_mp, _videoWidget-&amp;gt;winId(), &amp;amp;_vlcexcep ); // [20101215 JG] Used for versions prior to VLC 1.2.0.&lt;br /&gt;
        //libvlc_media_player_set_agl (_mp, _videoWidget-&amp;gt;winId(), &amp;amp;_vlcexcep); // for vlc 1.0&lt;br /&gt;
    #else //Linux&lt;br /&gt;
        //[20101201 Ondrej Spilka] obsolete call on libVLC &amp;gt;=1.1.5&lt;br /&gt;
        //libvlc_media_player_set_drawable(_mp, _videoWidget-&amp;gt;winId(), &amp;amp;_vlcexcep );&lt;br /&gt;
        //libvlc_media_player_set_xwindow(_mp, _videoWidget-&amp;gt;winId(), &amp;amp;_vlcexcep ); // for vlc 1.0&lt;br /&gt;
&lt;br /&gt;
     /* again note X11 handle on Linux is needed&lt;br /&gt;
        winID() returns X11 handle when QX11EmbedContainer us used */&lt;br /&gt;
&lt;br /&gt;
        int windid = _videoWidget-&amp;gt;winId();&lt;br /&gt;
        libvlc_media_player_set_xwindow (_mp, windid );&lt;br /&gt;
&lt;br /&gt;
    #endif&lt;br /&gt;
    //raise(&amp;amp;_vlcexcep); // [20101215 JG] Used for versions prior to VLC 1.2.0.&lt;br /&gt;
&lt;br /&gt;
    /* Play */&lt;br /&gt;
    libvlc_media_player_play (_mp);&lt;br /&gt;
    //libvlc_media_player_play (_mp, &amp;amp;_vlcexcep ); // [20101215 JG] Used for versions prior to VLC 1.2.0.&lt;br /&gt;
    //raise(&amp;amp;_vlcexcep); // [20101215 JG] Used for versions prior to VLC 1.2.0.&lt;br /&gt;
&lt;br /&gt;
    _isPlaying=true;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void Player::changeVolume(int newVolume)&lt;br /&gt;
{&lt;br /&gt;
    //libvlc_exception_clear(&amp;amp;_vlcexcep); // [20101215 JG] Used for versions prior to VLC 1.2.0.&lt;br /&gt;
    libvlc_audio_set_volume (_mp,newVolume);&lt;br /&gt;
    //libvlc_audio_set_volume (_vlcinstance,newVolume , &amp;amp;_vlcexcep); // [20101215 JG] Used for versions prior to VLC 1.2.0.&lt;br /&gt;
    //raise(&amp;amp;_vlcexcep); // [20101215 JG] Used for versions prior to VLC 1.2.0.&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void Player::changePosition(int newPosition)&lt;br /&gt;
{&lt;br /&gt;
    //libvlc_exception_clear(&amp;amp;_vlcexcep); // [20101215 JG] Used for versions prior to VLC 1.2.0.&lt;br /&gt;
    // It&#039;s possible that the vlc doesn&#039;t play anything&lt;br /&gt;
    // so check before&lt;br /&gt;
    libvlc_media_t *curMedia = libvlc_media_player_get_media (_mp);&lt;br /&gt;
    //libvlc_media_t *curMedia = libvlc_media_player_get_media (_mp, &amp;amp;_vlcexcep); // [20101215 JG] Used for versions prior to VLC 1.2.0.&lt;br /&gt;
    //libvlc_exception_clear(&amp;amp;_vlcexcep); // [20101215 JG] Used for versions prior to VLC 1.2.0.&lt;br /&gt;
    if (curMedia == NULL)&lt;br /&gt;
        return;&lt;br /&gt;
&lt;br /&gt;
    float pos=(float)(newPosition)/(float)POSITION_RESOLUTION;&lt;br /&gt;
    libvlc_media_player_set_position (_mp, pos);&lt;br /&gt;
    //libvlc_media_player_set_position (_mp, pos, &amp;amp;_vlcexcep); // [20101215 JG] Used for versions prior to VLC 1.2.0.&lt;br /&gt;
    //raise(&amp;amp;_vlcexcep); // [20101215 JG] Used for versions prior to VLC 1.2.0.&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void Player::updateInterface()&lt;br /&gt;
{&lt;br /&gt;
    if(!_isPlaying)&lt;br /&gt;
        return;&lt;br /&gt;
&lt;br /&gt;
    // It&#039;s possible that the vlc doesn&#039;t play anything&lt;br /&gt;
    // so check before&lt;br /&gt;
    libvlc_media_t *curMedia = libvlc_media_player_get_media (_mp);&lt;br /&gt;
    //libvlc_media_t *curMedia = libvlc_media_player_get_media (_mp, &amp;amp;_vlcexcep); // [20101215 JG] Used for versions prior to VLC 1.2.0.&lt;br /&gt;
    //libvlc_exception_clear(&amp;amp;_vlcexcep); // [20101215 JG] Used for versions prior to VLC 1.2.0.&lt;br /&gt;
    if (curMedia == NULL)&lt;br /&gt;
        return;&lt;br /&gt;
&lt;br /&gt;
    float pos=libvlc_media_player_get_position (_mp);&lt;br /&gt;
    //float pos=libvlc_media_player_get_position (_mp, &amp;amp;_vlcexcep); // [20101215 JG] Used for versions prior to VLC 1.2.0.&lt;br /&gt;
    int siderPos=(int)(pos*(float)(POSITION_RESOLUTION));&lt;br /&gt;
    _positionSlider-&amp;gt;setValue(siderPos);&lt;br /&gt;
    int volume=libvlc_audio_get_volume (_mp);&lt;br /&gt;
    //int volume=libvlc_audio_get_volume (_vlcinstance,&amp;amp;_vlcexcep); // [20101215 JG] Used for versions prior to VLC 1.2.0.&lt;br /&gt;
    _volumeSlider-&amp;gt;setValue(volume);&lt;br /&gt;
}&lt;br /&gt;
/*void Player::raise(libvlc_exception_t * ex)&lt;br /&gt;
{&lt;br /&gt;
    if (libvlc_exception_raised (ex))&lt;br /&gt;
    {&lt;br /&gt;
         fprintf (stderr, &amp;quot;error: %s\n&amp;quot;, libvlc_exception_get_message(ex));&lt;br /&gt;
         exit (-1);&lt;br /&gt;
    }&lt;br /&gt;
}*/  // [20101215 JG] Used for versions prior to VLC 1.2.0.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=LibVLC_Memory_Management&amp;diff=20267</id>
		<title>LibVLC Memory Management</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=LibVLC_Memory_Management&amp;diff=20267"/>
		<updated>2011-11-28T12:38:07Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: /* Reference Counting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Reference Counting ==&lt;br /&gt;
&lt;br /&gt;
[[LibVLC|LibVLC]] uses a certain number of objects.  Each one maintains a references count, which is used to know when the object must be released.  The three related functions are:&lt;br /&gt;
&lt;br /&gt;
* libvlc_object_name_&#039;&#039;&#039;new&#039;&#039;&#039;()  &#039;&#039;Create an object with a refcount equal to 1.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* libvlc_object_name_&#039;&#039;&#039;retain&#039;&#039;&#039;()  &#039;&#039;Increment the object refcount by 1.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* libvlc_object_name_&#039;&#039;&#039;release&#039;&#039;&#039;()  &#039;&#039;Decrement the refcount by 1, and release the object if the new refcount is less than zero.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
 libvlc_exception_t e;&lt;br /&gt;
 libvlc_exception_init( &amp;amp;e );&lt;br /&gt;
 &lt;br /&gt;
 libvlc_media_list_t * p_ml = libvlc_media_list_new( libvlc_inst, &amp;amp;e)&lt;br /&gt;
 &lt;br /&gt;
 /* Free the memory used by media_list release */&lt;br /&gt;
 libvlc_media_list_release( p_ml );&lt;br /&gt;
&lt;br /&gt;
=== Objects that don&#039;t follow this rule ===&lt;br /&gt;
&lt;br /&gt;
* libvlc_exception_t: Those are not pointers&lt;br /&gt;
* libvlc_event_manager_t: Those are supposed to be accessed only during the life of their parent libvlc_* object.&lt;br /&gt;
&lt;br /&gt;
== Getters and Setters ==&lt;br /&gt;
&lt;br /&gt;
Usually object properties are set through getters and setters.&lt;br /&gt;
&lt;br /&gt;
* Usually getters are in the form:&lt;br /&gt;
libvlc_&#039;&#039;object_name&#039;&#039;_&#039;&#039;object&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Setters are:&lt;br /&gt;
libvlc_&#039;&#039;object_name&#039;&#039;_&#039;&#039;set_object&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Variations:&lt;br /&gt;
** Setter: libvlc_media_list_add_media_descriptor&lt;br /&gt;
** Getter: libvlc_media_list_item_at_index&lt;br /&gt;
&lt;br /&gt;
For setters and getters the memory management rules are:&lt;br /&gt;
* Getters internally &#039;&#039;&#039;retain&#039;&#039;&#039; the object before returning it, so is means you must &#039;&#039;&#039;release&#039;&#039;&#039; the object after use.&lt;br /&gt;
* Setters internally &#039;&#039;&#039;retain&#039;&#039;&#039; the object, so basically you never need to keep the object around.&lt;br /&gt;
(This also applies to strings where retain is &#039;&#039;&#039;strdup&#039;&#039;&#039; and release is &#039;&#039;&#039;free&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
Notable exceptions to those rules are:&lt;br /&gt;
* libvlc_&#039;&#039;object_name&#039;&#039;_&#039;&#039;&#039;event_manager&#039;&#039;&#039;: This getter never retains the object prior returning it.  That means you &#039;&#039;&#039;mustn&#039;t release&#039;&#039;&#039; it.&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=LibVLC_Media_List_Management&amp;diff=20266</id>
		<title>LibVLC Media List Management</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=LibVLC_Media_List_Management&amp;diff=20266"/>
		<updated>2011-11-28T12:37:15Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: /* Global Description of the available objects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Global Description of the available objects ==&lt;br /&gt;
The atomic item that represent a media that you can play is a &#039;&#039;&#039;libvlc_media&#039;&#039;&#039; in [[LibVLC|LibVLC]].&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;media_list&#039;&#039;&#039; is an object that contains several &#039;&#039;libvlc_media&#039;&#039;. You can add items to that media_list.&lt;br /&gt;
&lt;br /&gt;
You can play a media_list using a &#039;&#039;&#039;media_list_player&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== A media descriptor can contain a media list ==&lt;br /&gt;
A playlist downloaded from Google video has a corresponding &#039;&#039;libvlc_media&#039;&#039;. This &#039;&#039;libvlc_media&#039;&#039; has several subitems. You can access them through libvlc_media_subitems() which returns a media_list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This explains how a media_list can be hierarchical. To browse it you&#039;ll use libvlc_media_list_hierarchy_view(). To view the all the item without hierarchy use libvlc_media_list_flat_view().&lt;br /&gt;
&lt;br /&gt;
== Sample Code ==&lt;br /&gt;
&lt;br /&gt;
 void play_media(libvlc_instance_t *vlc, libvlc_drawable_t window)&lt;br /&gt;
 {&lt;br /&gt;
&lt;br /&gt;
     libvlc_media_list_t *ml;&lt;br /&gt;
     libvlc_media_list_player_t *mlp;&lt;br /&gt;
     libvlc_media_player_t *mp;&lt;br /&gt;
     libvlc_media_descriptor_t *md1, *md2;&lt;br /&gt;
  &lt;br /&gt;
     ml = libvlc_media_list_new(vlc);&lt;br /&gt;
    &lt;br /&gt;
     md1 = libvlc_media_new(vlc, &amp;quot;http://mycool.com/movie1.avi&amp;quot;);&lt;br /&gt;
     md2 = libvlc_media_new(vlc, &amp;quot;http://mycool.com/movie2.avi&amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
     libvlc_media_list_add(ml, md1);&lt;br /&gt;
     libvlc_media_list_add(ml, md2);&lt;br /&gt;
  &lt;br /&gt;
     libvlc_media_release(md1);&lt;br /&gt;
     libvlc_media_release(md2);&lt;br /&gt;
  &lt;br /&gt;
     mlp = libvlc_media_list_player_new(vlc);&lt;br /&gt;
  &lt;br /&gt;
     mp = libvlc_media_player_new(vlc);&lt;br /&gt;
  &lt;br /&gt;
     /* Use our media list */&lt;br /&gt;
     libvlc_media_list_player_set_media_list(mlp, ml);&lt;br /&gt;
&lt;br /&gt;
     /* Use a given media player */&lt;br /&gt;
     libvlc_media_list_player_set_media_player(mlp, p_mp);&lt;br /&gt;
  &lt;br /&gt;
     /* Get our media instance to use our window */&lt;br /&gt;
     libvlc_media_player_set_drawable(mlp, window);&lt;br /&gt;
  &lt;br /&gt;
     /* Play */&lt;br /&gt;
     libvlc_media_list_player_play(mlp);&lt;br /&gt;
  &lt;br /&gt;
     /* Let it play forever */&lt;br /&gt;
     while(1) sleep(300);&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VSG:ResetPrefs&amp;diff=20265</id>
		<title>VSG:ResetPrefs</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VSG:ResetPrefs&amp;diff=20265"/>
		<updated>2011-11-28T12:35:57Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: /* Deleting the files manually */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Many problems with VLC are due to wrong settings or broken cache. You can solve these through deleting VLC&#039;s preferences and cache.&lt;br /&gt;
&lt;br /&gt;
= On Windows =&lt;br /&gt;
&lt;br /&gt;
== Using the shortcut in the start menu ==&lt;br /&gt;
If you installed VLC properly you can delete the preferences and cache by simply opening the shortcut you can find in your start menu: &#039;&#039;All programs &amp;gt; VideoLAN &amp;gt; Reset VLC media player preferences and cache files&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Deleting the files manually ==&lt;br /&gt;
Open the explorer and type &#039;&#039;%APPDATA%&#039;&#039; into the address bar and hit enter. This should lead you to the AppData folder of your user. Therein you should find a folder named &#039;&#039;vlc&#039;&#039;. Delete that folder and your done.&lt;br /&gt;
* More of [[VLC HowTo|VLC HowTo]]&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Make_VLC_the_default_player&amp;diff=20264</id>
		<title>VLC HowTo/Make VLC the default player</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Make_VLC_the_default_player&amp;diff=20264"/>
		<updated>2011-11-28T12:35:35Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In Windows after installation of VLC player(version 1.1) it can be made default by following way,&lt;br /&gt;
&lt;br /&gt;
Open  VLC player, Click on Tools in menu, Select &amp;quot;preferences&amp;quot;,&lt;br /&gt;
single left Click &amp;quot;interface&amp;quot; button,on left side, single left Click on &amp;quot;setup associations&amp;quot;&lt;br /&gt;
Select types of files from the list that appears, and anyone need to use with VLC player as default, or &amp;quot;select all&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
&lt;br /&gt;
[1]&lt;br /&gt;
&lt;br /&gt;
On any folder with a toolbar, click on &#039;&#039;Tools&#039;&#039; then &#039;&#039;Folder Options&#039;&#039;. Select the &#039;&#039;File Types&#039;&#039; tab. &lt;br /&gt;
One can select and set any default program for any registered file type from that section.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;E.g.&#039;&#039;, if there is a &amp;quot;DVD Video&amp;quot; in the list as there is for MS Windows XP, select it then click the &#039;&#039;Advanced&#039;&#039; button. &lt;br /&gt;
&lt;br /&gt;
A new window, &#039;&#039;Edit File Type&#039;&#039;, will open and the list of known, compatible executable programs will be presented. &lt;br /&gt;
&lt;br /&gt;
Select the one desired, in this case, &#039;&#039;Play with VLC media player&#039;&#039;, and then click the &#039;&#039;Set Default&#039;&#039; button. &lt;br /&gt;
&lt;br /&gt;
Next, click &#039;&#039;OK&#039;&#039; and then &#039;&#039;Close&#039;&#039; to close the &#039;&#039;Edit File Type&#039;&#039; window.&lt;br /&gt;
&lt;br /&gt;
One can repeat that for as many files as needed before clicking the &amp;quot;Close&amp;quot; button. E.g., perhaps the &amp;quot;AudioCD&amp;quot; would be useful to set for VLC.&lt;br /&gt;
&lt;br /&gt;
( Please note that this &#039;&#039;File Types&#039;&#039; location is *&#039;&#039;&#039;&#039;&#039;not&#039;&#039;&#039;&#039;&#039;* a place to play.  Change what is needed and only that. I.e., one can look but do not touch unless you intend to buy it, :). )&lt;br /&gt;
&lt;br /&gt;
[2]&lt;br /&gt;
&lt;br /&gt;
Perhaps the easiest way is to set the VLC player as the default &#039;&#039;during the installation&#039;&#039; of VLC. As odd as it might sound, removing VLC from programs and then re-installing it will be the safest method for many people. All the file types are automatically selected, which you can change as desired.  &lt;br /&gt;
&lt;br /&gt;
During installation just make certain that you clear any box that would cause the installer to delete your preferences and cache. &lt;br /&gt;
&lt;br /&gt;
If for some reason the installer fails to set the correct file types or gets overwritten by MS during an upgrade(or some other program), try [1] to fix it.&lt;br /&gt;
&lt;br /&gt;
== Mac ==&lt;br /&gt;
Right click on the type of file you want to always open in VLC. Click &#039;Get Info&#039;. In the &#039;Open With&#039; section, select VLC from the drop down menu. To apply this change to all files of this type, click the &#039;Change All&#039; button. If you&#039;re having some problems with it try to search at [http://www.mac-how.net Mac How]&lt;br /&gt;
&lt;br /&gt;
== Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Fedora ===&lt;br /&gt;
&lt;br /&gt;
==== GNOME ====&lt;br /&gt;
&lt;br /&gt;
Gnome uses two lists (located at &#039;&#039;&#039;&#039;&#039;/usr/share/applications/&#039;&#039;&#039;&#039;&#039;) &#039;&#039;&#039;mimeinfo.cache&#039;&#039;&#039; and &#039;&#039;&#039;defaults.list&#039;&#039;&#039;, to register applications to file types.&amp;lt;br/&amp;gt;&lt;br /&gt;
So you could either edit it manually or use the tools that GNOME has for this.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Instructions on how to do it in GNOME. =====&lt;br /&gt;
&lt;br /&gt;
===== Changing the default application for videos using menus(the easy way): =====&lt;br /&gt;
&lt;br /&gt;
Using Nautilus 2.30.1, from the top menu bar choose Places then Home Folder -&amp;gt; Edit menu -&amp;gt; Preferences -&amp;gt; choose Media tab -&amp;gt; in drop down list next to &amp;quot;DVD Video&amp;quot; choose &amp;quot;Open VLC media player&amp;quot;.  Voila.&lt;br /&gt;
&lt;br /&gt;
Alternatively try: System -&amp;gt; Preferences -&amp;gt; Personal -&amp;gt; Preferred Applications -&amp;gt; Multimedia -&amp;gt; Custom -&amp;gt; Type this: vlc %U&lt;br /&gt;
&lt;br /&gt;
ps: this alternative not tested yet.&lt;br /&gt;
&lt;br /&gt;
===== Changing the default application for videos using menus(the not so easy way): =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| * Right-click on the video file that you want VLC to open.&amp;lt;br/&amp;gt;* Choose properties.&amp;lt;br/&amp;gt;* Now in the properties window click on the tab named &#039;&#039;&#039;&#039;&#039;Open With&#039;&#039;&#039;&#039;&#039;.&amp;lt;br/&amp;gt;http://upload.wikimedia.org/wikipedia/commons/thumb/5/59/Properties_window.png/800px-Properties_window.png&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;br/&amp;gt;* In the tab &#039;&#039;&#039;&#039;&#039;Open With&#039;&#039;&#039;&#039;&#039; just choose VLC as your player for that type of file.&amp;lt;br/&amp;gt;Just remember that you will have to do this for each an every type of video/audio file(&#039;&#039;&#039;ex:&#039;&#039;&#039; mpg, avi, rm, mkv, ogg, mp3 etc)&amp;lt;br/&amp;gt;http://upload.wikimedia.org/wikipedia/commons/thumb/6/6b/Open_with_tab.png/800px-Open_with_tab.png&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;br/&amp;gt;* If the VLC icon don&#039;t show up on the &#039;&#039;&#039;&#039;&#039;Open With&#039;&#039;&#039;&#039;&#039; tab, click on the &#039;&#039;&#039;&#039;&#039;add&#039;&#039;&#039;&#039;&#039; button in the lower corner to the right of the window&amp;lt;br/&amp;gt;tha has a plus sign, and locate VLC on the window tha pops up that is called Add Application.&amp;lt;br/&amp;gt;http://upload.wikimedia.org/wikipedia/commons/5/51/Add_app.png&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Changing the default application for videos manually(the hard way): =====&lt;br /&gt;
&lt;br /&gt;
In Fedora 10 the path /usr/share/applications/ will take you to these 2 files that configure what application open a type of file.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;defaults.list&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;mimeinfo.cache&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ps: &lt;br /&gt;
Both files will point to a Desktop Entry file([name of the file].desktop) that is inside the &#039;&#039;applications&#039;&#039; folder, and the 2 important things inside that file are the configurations for what MIME Types the application can handle and how to launch the application.&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;Desktop Entry&#039;&#039; file is a data file that provides information about an item in a menu.&lt;br /&gt;
The desktop entry specification describes desktop entries as files describing information about an application such as the name, MIME Types it handles, icon, and description. These files are used for application launchers and for creating menus of applications that can be launched.&amp;lt;br/&amp;gt;&lt;br /&gt;
If you don&#039;t have the VLC &#039;&#039;Desktop Entry&#039;&#039; file or it disapear for some reason you will have to make one. Look [http://library.gnome.org/admin/system-admin-guide/stable/menustructure-desktopentry.html.en here] for some pointers.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You only need to modify &#039;&#039;&#039;mimeinfo.cache&#039;&#039;&#039;, I hope. It works here if It don&#039;t work for you please edit this.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So what you have to do is:&lt;br /&gt;
&lt;br /&gt;
# Open &#039;&#039;mimeinfo.cache&#039;&#039; as root.&lt;br /&gt;
# Search for the MIME Types for video.&lt;br /&gt;
# Change all of them to use VLC.&lt;br /&gt;
&lt;br /&gt;
ex:&amp;lt;br/&amp;gt;&lt;br /&gt;
Registry of MIME Type (video/quicktime) in &#039;&#039;mimeinfo.cache&#039;&#039; to use VLC.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
video/quicktime=livna-vlc.desktop;totem.desktop;miro.desktop;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
The format is:&amp;lt;br/&amp;gt;&lt;br /&gt;
[MIME Type]=[Name of the Desktop Entry file]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; You can put more then one &#039;&#039;Desktop Entry&#039;&#039; but they need to be separated by a semi-colon (;), see the example above.&amp;lt;br/&amp;gt;&lt;br /&gt;
Those extra entries will appear as options when you right-click on the video file and go to the &#039;&#039;Open With&#039;&#039; submenu.&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Tip:&#039;&#039;&#039; Nautilus don&#039;t show the real names of the &#039;&#039;Desktop Entry&#039;&#039; files. Either drag and drop it on gedit so you see the name on the tab or use &#039;&#039;&#039;ls&#039;&#039;&#039; to list the files on the command line.&lt;br /&gt;
&lt;br /&gt;
In Ubuntu 11.04, the default applications for different mimes can be defined in ~/.local/share/applications/mimeapps.list as follows. Under [Default Applications] add all the mimes you would like the VLC to be default for:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Default Applications]&lt;br /&gt;
application/x-cd-image=vlc.desktop&lt;br /&gt;
video/x-flv=vlc.desktop&lt;br /&gt;
video/x-avi=vlc.desktop&lt;br /&gt;
x-content/video-dvd=vlc.desktop&lt;br /&gt;
video/quicktime=vlc.desktop&lt;br /&gt;
video/mpeg=vlc.desktop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== References =====&lt;br /&gt;
&lt;br /&gt;
[http://library.gnome.org/admin/system-admin-guide/stable/menustructure-desktopentry.html.en Desktop Entry Files]&lt;br /&gt;
&lt;br /&gt;
[http://library.gnome.org/admin/system-admin-guide/stable/mimetypes-registering.html.en Registering Applications for MIME Types] (Editing defaults.list and mimeinfo.cache)&lt;br /&gt;
&lt;br /&gt;
* More of [[VLC HowTo|VLC HowTo]]&lt;br /&gt;
&lt;br /&gt;
==== KDE ====&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Use_for_transcription_(Linux)&amp;diff=20263</id>
		<title>VLC HowTo/Use for transcription (Linux)</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Use_for_transcription_(Linux)&amp;diff=20263"/>
		<updated>2011-11-28T12:34:59Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;OVERVIEW:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The purpose of this howto is to show you how to configure vlc and use the script below to enable you to control vlc with scripted commands and, most importantly, take a timestamp from vlc and automatically type it into whatever document you are working on, without ever needing to shift focus away from the document. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; There are other ways to achieve what I&#039;ve done with this, many of them likely better than what is here. But this works, and works well.&amp;amp;nbsp; This script was written for linux, but might have some useful information for anyone trying to do this on other platforms.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &#039;&#039;&#039;PREREQUISITES:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
First, you need to have [http://www.videolan.org/vlc/ VLC] (obviously), [http://www.python.org/ python] 2 OR 3, [http://hoopajoo.net/projects/xautomation.html xautomation] OR a version of [http://www.semicomplete.com/projects/xdotool/ xdotool] (newer than august 2010), and you need the openbsd implementation of [http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/nc/ netcat]--&#039;&#039;&#039;Note:&#039;&#039;&#039; see below for a version that uses the more readily available [http://www.dest-unreach.org/socat/ socat] package. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; The openbsd version of netcat is in the repositories of most major linux distirbutions these days. This script is written for use in Archlinux, so it&#039;s likely that you will need to change the command used by netcat in the script. Arch uses nc.openbsd, just replace it with whatever you need. Unfortunately, the GNU implementation of netcat, which is the default in most distributions, does not seem to support UNIX&amp;amp;nbsp;sockets (the -U switch for nc.openbsd). If you run slackware and can&#039;t find it, check [http://www.slackbuilds.org slackbuilds].&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; xautomation will almost certainly be in your repos, and xdotool might be. xautomation seems to be the better choice if you&#039;re only concerned about how quickly it does the job, but xdotool is nice as well if you&#039;re doing fancier things with it. However, if you do choose to try xdotool, you&#039;ll need a build done later than August 2010, as some of the features used in this script are not in the older versions available in most repositories. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &#039;&#039;&#039;SETUP:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
This setup is window manager agnostic. It shouldn&#039;t make much difference which environment you run it in, the only practical difference will be in how you set up your control keys. I won&#039;t go over how to set up window environment here, but I will try to give you a few pointers below. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; To set up vlc to use this script, go to tools-&amp;amp;gt;preferences and click on &amp;quot;show settings-&amp;amp;gt;all&amp;quot; at the bottom. From that menu, select &amp;quot;Interface-&amp;amp;gt;Main Interfaces&amp;quot;, and check the &amp;quot;Remote Control Interface&amp;quot; box. Next, select &amp;quot;Interface-&amp;amp;gt;Main Interfaces-&amp;amp;gt;RC&amp;quot;, check the &amp;quot;Fake TTY&#039; box, and enter &#039;home/YOURNAME/vlc.sock&#039;in the &amp;quot;UNIX socket command input&amp;quot; field. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; You probably also want to adjust the &amp;quot;Very short jump length&amp;quot; located in &amp;quot;Interface-&amp;amp;gt;Hotkeys settings&amp;quot;. This script assumes that it is set for 5 seconds rather than the default of 3 seconds. It won&#039;t affect the script if you don&#039;t change this value, as it uses the &#039;very short jump&#039; command rather than jogging a specific number of seconds. If you poke around the vlc docs, you&#039;ll see a seek command, but that is to go to a certain point in a file rather than going forward or backward a certain number of seconds. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; Hit &amp;quot;Save&amp;quot;. Restart VLC, and check to see if it creates &amp;quot;vlc.sock&amp;quot; in your home directory. This should be created automatically when vlc starts. If it doesn&#039;t, check your socket path and try again. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; Next, you need to set up your control keys for your window environment. Remember to check to make sure that whichever control keys you wish to use are not already used by your window manager. Redefine these control keys or the defaults as necessary. I didn&#039;t have any luck with the global hotkeys settings within VLC but, personally, I like having these commands in the script. You may have better results with some experimentation. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; I set my control keys up like this: &lt;br /&gt;
&lt;br /&gt;
F1 = ~/vlccontrol.py jogbackward &lt;br /&gt;
&lt;br /&gt;
F2 = ~/vlccontrol.py pause &lt;br /&gt;
&lt;br /&gt;
F3 = ~/vlccontrol.py pause (no need for two, just habit) &lt;br /&gt;
&lt;br /&gt;
F4 = ~/vlccontrol.py jogforward &lt;br /&gt;
&lt;br /&gt;
F5 = ~/vlccontrol.py timestamp &lt;br /&gt;
&lt;br /&gt;
Shift+F1 = ~/vlccontrol.py slower &lt;br /&gt;
&lt;br /&gt;
Shift+F3 = ~/vlccontrol.py normal &lt;br /&gt;
&lt;br /&gt;
Shift+F4 = ~/vlccontrol.py faster &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; If you use gnome+metacity, you can edit your keybindings in gconf-editor. Go to apps-&amp;amp;gt;metacity-&amp;amp;gt;global_keybindings and assign a command number to control key you want. Then go to app-&amp;amp;gt;metacity-&amp;amp;gt;keybinding_commands and assign the appropriate commands to the command numbers. So, for my keybindings, in &#039;global_keybindings&#039; you would set run_command_1 to F1. Then go to &#039;keybinding_commands&#039; and set command_1 to /home/YOURNAME/vlccontrol.py jogbackward. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; If you use kde4, open system settings, click on &#039;Shortcuts and Gestures&#039;, then choose &#039;Custom Shortcuts&#039;. In the second pane, under name, choose an appropriate group to put your new bindings (it might be a good idea to create a new group for these under &#039;Preset Actions&#039;, choose &#039;New Group&#039; from the &#039;Edit&#039; menu below the second pane.) Click on &#039;Edit&#039;, go to New-&amp;amp;gt;Global Shortcut-&amp;amp;gt;Command/URL, and name the action. While the new action is selected, click the &#039;Trigger&#039; tab in the right hand pane, click shortcut box and hit the key you wish to bind to the action (F1). Then go to action and enter in the command for that action (/home/YOURNAME/vlccontrol.py jogbackward.) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; In any window manager which utilizes an rc.xml file for it&#039;s keybindings, like OpenBox, edit the rc.xml in a text editor and go down to the &#039;keybindings&#039; section. Just follow along with the other keybind examples in the file, it&#039;s fairly straightfoward, but your first entry should look something like this, although you will need to put in appropriate symbols around the keywords: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;/code&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;    keybind key=&amp;quot;F1&amp;quot;&lt;br /&gt;
      action name=&amp;quot;execute&amp;quot;&lt;br /&gt;
        execute /home/delwin/vlccontrol.py jogbackward /execute&lt;br /&gt;
      /action&lt;br /&gt;
    /keybind&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VLCCONTROL.PY:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; Finally, here is the vlccontrol.py script. Copy the script below and paste it into a file named &#039;vlccontrol.py&#039;. Save it to your home directory and make it executable with the command &#039;chmod 700 vlccontrol.py&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;/code&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;#!/usr/bin/env python&lt;br /&gt;
#### licensing nonsense - short version: New BSD License&lt;br /&gt;
#Copyright (c) 2010, Derek Barnett, Skyehaven Transcription&lt;br /&gt;
#Contact: derek at skyehaven.net&lt;br /&gt;
#All rights reserved.&lt;br /&gt;
#Redistribution and use in source and binary forms, with or &lt;br /&gt;
#without modification, are permitted provided that the following &lt;br /&gt;
#conditions are met:&lt;br /&gt;
#&lt;br /&gt;
#    * Redistributions of source code must retain the above &lt;br /&gt;
#copyright notice, this list of conditions and the following &lt;br /&gt;
#disclaimer.&lt;br /&gt;
#    * Redistributions in binary form must reproduce the above &lt;br /&gt;
#copyright notice, this list of conditions and the following &lt;br /&gt;
#disclaimer in the documentation and/or other materials provided &lt;br /&gt;
#with the distribution.&lt;br /&gt;
#    * Neither the name of the Skyehaven Transcription nor the &lt;br /&gt;
#names of its contributors may be used to endorse or promote &lt;br /&gt;
#products derived from this software without specific prior &lt;br /&gt;
#written permission.&lt;br /&gt;
#&lt;br /&gt;
#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND &lt;br /&gt;
#CONTRIBUTORS &amp;quot;AS IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, &lt;br /&gt;
#INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF &lt;br /&gt;
#MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE &lt;br /&gt;
#DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR &lt;br /&gt;
#CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, &lt;br /&gt;
#SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT &lt;br /&gt;
#LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF &lt;br /&gt;
#USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED &lt;br /&gt;
#AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT &lt;br /&gt;
#LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING &lt;br /&gt;
#IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF &lt;br /&gt;
#THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
#####&lt;br /&gt;
&lt;br /&gt;
##### useful notes&lt;br /&gt;
#vlc control script, compatible with python 2 or 3&lt;br /&gt;
#&lt;br /&gt;
#this script requires the openbsd version of netcat. gnu&#039;s version&lt;br /&gt;
#does not appear to support unix sockets as of this time. it will &lt;br /&gt;
#almost certainly be in the repos of your distribution. you may need&lt;br /&gt;
#to adjust this script to change the name of the binary to whatever&lt;br /&gt;
#format your distribution uses (change &#039;nc.openbsd&#039; below to whatever &lt;br /&gt;
#you need.)&lt;br /&gt;
#&lt;br /&gt;
#it also requires either xautomation (for it&#039;s xte tool) or xdotool&lt;br /&gt;
#xautomation is used by default, as it&#039;s currently a bit faster&lt;br /&gt;
#if you use xdotool, ensure that it&#039;s a version later than aug 2010&lt;br /&gt;
#&lt;br /&gt;
#to set up vlc to use this script, go to tools-&amp;amp;gt;preferences and &lt;br /&gt;
#click on &amp;quot;show settings-&amp;amp;gt;all&amp;quot; at the bottom. from that menu, &lt;br /&gt;
#select &amp;quot;Interface-&amp;amp;gt;Main Interfaces&amp;quot;, and check the &amp;quot;Remote Control &lt;br /&gt;
#Interface&amp;quot; box. Next, select &amp;quot;Interface-&amp;amp;gt;Main Interfaces-&amp;amp;gt;RC&amp;quot;,&lt;br /&gt;
#check the &amp;quot;Fake TTY&#039; box, and enter &#039;home/YOURNAME/vlc.sock&#039;in&lt;br /&gt;
#the &amp;quot;UNIX socket command input&amp;quot; field.  &lt;br /&gt;
#&lt;br /&gt;
#You probably also want to adjust the &amp;quot;Very short jump length&amp;quot; located&lt;br /&gt;
#in &amp;quot;Interface-&amp;amp;gt;Hotkeys settings&amp;quot;. This script assumes that it is set&lt;br /&gt;
#for 5 seconds rather than the default of 3 seconds. It won&#039;t affect the&lt;br /&gt;
#script if you don&#039;t change this value, as it uses the &#039;very short jump&#039;&lt;br /&gt;
#command rather than jogging a specific number of seconds. If you poke &lt;br /&gt;
#around the vlc docs, you&#039;ll see a seek command, but that is to go to a&lt;br /&gt;
#certain point in a file rather than going forward or backward a certain&lt;br /&gt;
#number of seconds.&lt;br /&gt;
#&lt;br /&gt;
#Hit &amp;quot;Save&amp;quot;. Restart VLC, and check to see if it creates &amp;quot;vlc.sock&amp;quot; &lt;br /&gt;
#in your home directory. This should be created automatically when vlc &lt;br /&gt;
#starts. If it doesn&#039;t, check your socket path and try again.&lt;br /&gt;
#&lt;br /&gt;
#Next, you need to set up your hotkeys for your window environment.&lt;br /&gt;
#This should work equally well in any window manger, so pick whichever&lt;br /&gt;
#you like. Remember to check to make sure that whichever hotkeys you wish&lt;br /&gt;
#to use are not already used by your windowmanager. Redefine these&lt;br /&gt;
#hotkeys or the defaults as necessary.&lt;br /&gt;
#&lt;br /&gt;
#note: vlc supposedly support global hotkeys, but I didn&#039;t have any luck &lt;br /&gt;
#with them, which is why i went this route with the control script. Your&lt;br /&gt;
#mileage may vary.&lt;br /&gt;
#&lt;br /&gt;
#I personally set it up like this:&lt;br /&gt;
#F1 = ~/vlccontrol.py jogbackward&lt;br /&gt;
#F2 = ~/vlccontrol.py pause (no need to have this twice, just habit)&lt;br /&gt;
#F3 = ~/vlccontrol.py pause&lt;br /&gt;
#F4 = ~/vlccontrol.py jogforward&lt;br /&gt;
#F5 = ~/vlccontrol.py timestamp&lt;br /&gt;
#Shift+F1 = ~/vlccontrol.py slower&lt;br /&gt;
#Shift+F3 = ~/vlccontrol.py normal&lt;br /&gt;
#Shift+F4 = ~/vlccontrol.py faster&lt;br /&gt;
##### end of rambling, on to business&lt;br /&gt;
&lt;br /&gt;
import sys&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
#feed command to vlc socket to get the time played in seconds&lt;br /&gt;
workingdir = os.path.join(os.path.expanduser(&#039;~&#039;))&lt;br /&gt;
vlcin = os.path.join(workingdir,&#039;vlc.sock&#039;)&lt;br /&gt;
vlcout = os.path.join(workingdir,&#039;vlc.out&#039;)&lt;br /&gt;
&lt;br /&gt;
#accept argument when running script, e.g. &#039;./vlctimestamp.py timestamp&#039;&lt;br /&gt;
args = sys.argv[1:]&lt;br /&gt;
i = &amp;quot;normal&amp;quot;&lt;br /&gt;
if args:&lt;br /&gt;
    i = str.lower(args[0])&lt;br /&gt;
&lt;br /&gt;
#acceptable arguments: help, --help, pause, jogforward, +5, jogbackward, -5,&lt;br /&gt;
#faster, slower, normal, timestamp. no argument assumes &#039;normal&#039;&lt;br /&gt;
if i == &amp;quot;help&amp;quot; or i == &amp;quot;-help&amp;quot; or i == &amp;quot;--help&amp;quot;:&lt;br /&gt;
    print(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
             &#039;help&#039; or &#039;--help&#039; returns this help&lt;br /&gt;
             &#039;pause&#039; is a play/pause toggle&lt;br /&gt;
             &#039;jogforward&#039; or &#039;+5&#039; jumps forward 5 seconds&lt;br /&gt;
             &#039;jogbackward&#039; or &#039;-5&#039; jumps backward 5 seconds&lt;br /&gt;
             &#039;faster&#039; increases the tempo without increasing pitch&lt;br /&gt;
             &#039;slower&#039; decreases the tempo without decreasing pitch&lt;br /&gt;
              no argument or &#039;normal&#039; returns vlc to normal speed&lt;br /&gt;
              &#039;timestamp&#039; types a hh:mm:ss coded timestamp into &lt;br /&gt;
                          active window. see comments within this&lt;br /&gt;
                          script if you need to change the timestamp&lt;br /&gt;
                          string, offset the timestamp for a video&lt;br /&gt;
                          timecode, or if you&#039;ve made tempo changes&lt;br /&gt;
                          in an audio file outside of vlc&lt;br /&gt;
             &amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
elif i == &amp;quot;jogforward&amp;quot; or i == &amp;quot;+5&amp;quot;:&lt;br /&gt;
    os.system(&#039;echo &amp;quot;key key-jump+extrashort&amp;quot; | nc.openbsd -U &#039; + vlcin)&lt;br /&gt;
&lt;br /&gt;
elif i == &amp;quot;jogbackward&amp;quot; or i == &amp;quot;-5&amp;quot;:&lt;br /&gt;
    os.system(&#039;echo &amp;quot;key key-jump-extrashort&amp;quot; | nc.openbsd -U &#039; + vlcin)&lt;br /&gt;
&lt;br /&gt;
elif i == &amp;quot;pause&amp;quot;:&lt;br /&gt;
    os.system(&#039;echo &amp;quot;pause&amp;quot; | nc.openbsd -U &#039; + vlcin)&lt;br /&gt;
&lt;br /&gt;
elif i == &amp;quot;faster&amp;quot;:&lt;br /&gt;
    os.system(&#039;echo &amp;quot;key key-rate-faster-fine&amp;quot; | nc.openbsd -U &#039; + vlcin)&lt;br /&gt;
&lt;br /&gt;
elif i == &amp;quot;slower&amp;quot;:&lt;br /&gt;
    os.system(&#039;echo &amp;quot;key key-rate-slower-fine&amp;quot; | nc.openbsd -U &#039; + vlcin)&lt;br /&gt;
&lt;br /&gt;
elif i == &amp;quot;normal&amp;quot;:&lt;br /&gt;
    os.system(&#039;echo &amp;quot;normal&amp;quot; | nc.openbsd -U &#039; + vlcin)&lt;br /&gt;
&lt;br /&gt;
elif i == &amp;quot;timestamp&amp;quot;:&lt;br /&gt;
    #have vlc post the time ~/vlc.out&lt;br /&gt;
    os.system(&#039;echo &amp;quot;get_time&amp;quot; | nc.openbsd -U &#039; + vlcin + &#039; &amp;amp;gt; &#039; + vlcout)&lt;br /&gt;
    &lt;br /&gt;
    #read vlc.out and report time played in seconds&lt;br /&gt;
    f = open(vlcout, &#039;r&#039;)&lt;br /&gt;
    f_list = f.read().split(&amp;quot;\n&amp;quot;)&lt;br /&gt;
    if len(f_list) &amp;amp;gt; 2:&lt;br /&gt;
        sec = f_list[1]&lt;br /&gt;
    else:&lt;br /&gt;
        sec = f_list[0]&lt;br /&gt;
    sec = int(sec)&lt;br /&gt;
    &lt;br /&gt;
    #tempo - if you&#039;ve adjusted the tempo of an audio file, in &lt;br /&gt;
    #        audacity for instance, then you can use the tempo&lt;br /&gt;
    #        variable to give output for a timestamp postion in &lt;br /&gt;
    #        original file. tempo is the percent playback speed&lt;br /&gt;
    #        of the modified file. 80 = -20% tempo change, etc.&lt;br /&gt;
    #        default is 100&lt;br /&gt;
    tempo = 100&lt;br /&gt;
    &lt;br /&gt;
    #don&#039;t change this. if you need an offset, take care of it below&lt;br /&gt;
    offset = 0&lt;br /&gt;
&lt;br /&gt;
    #change offsetneeded to True if, for instance, you need to &lt;br /&gt;
    #use a timecode embedded into a video rather than the playtime&lt;br /&gt;
    #of the file&lt;br /&gt;
    offsetneeded = False&lt;br /&gt;
    &lt;br /&gt;
    if offsetneeded == True:&lt;br /&gt;
    &lt;br /&gt;
    #If an offset is needed:&lt;br /&gt;
    #Pick a spot on the video and pause it (not the beginning). Enter the appropriate values below:&lt;br /&gt;
    #vtch = hours on video time code, vtcm = minutes, vtcs = seconds&lt;br /&gt;
        vtch = 0&lt;br /&gt;
        vtcm = 0&lt;br /&gt;
        vtcs = 0&lt;br /&gt;
        vtc = (vtch * 3600) + (vtcm * 60) + vtcs&lt;br /&gt;
    #atch = hours in actual playtime, atcm = minutes, &lt;br /&gt;
    #atcs = seconds            &lt;br /&gt;
        atch = 0&lt;br /&gt;
        atcm = 0&lt;br /&gt;
        atcs = 0&lt;br /&gt;
        atc = ((((atch * 3600) + (atcm * 60) + atcs) * tempo) / 100)&lt;br /&gt;
        offset = vtc - atc&lt;br /&gt;
    &lt;br /&gt;
    #get the values for hh:mm:ss formatting&lt;br /&gt;
    sec = ((sec * tempo) / 100) + offset&lt;br /&gt;
    th = sec/3600&lt;br /&gt;
    tm = (sec&amp;amp;nbsp;% 3600)/60&lt;br /&gt;
    ts = sec&amp;amp;nbsp;% 60&lt;br /&gt;
    &lt;br /&gt;
    #format the timestamp, default looks like &#039;##Inaudible 00:01:10## &#039;&lt;br /&gt;
    #the timestamp in hours:minutes:seconds                    &lt;br /&gt;
    t = &amp;quot;%02d:%02d:%02d&amp;quot;&amp;amp;nbsp;% (th,tm,ts)    &lt;br /&gt;
    &lt;br /&gt;
    #string to append before timestamp&lt;br /&gt;
    #for no prefix, set prefix = &amp;quot;&amp;quot;&lt;br /&gt;
    prefix = &amp;quot;##Inaudible &amp;quot;&lt;br /&gt;
    #string to append after timestamp&lt;br /&gt;
    #for no suffix, set suffix = &amp;quot;&amp;quot;&lt;br /&gt;
    suffix = &amp;quot;## &amp;quot;                           &lt;br /&gt;
        &lt;br /&gt;
    #xdotool command to execute, uncomment next line to use xdotool&lt;br /&gt;
    #dropstamp = str(&amp;quot;xdotool type --delay 0 --clearmodifiers &#039;&amp;quot; + prefix + t + suffix + &amp;quot;&#039;&amp;quot;)&lt;br /&gt;
    #    &lt;br /&gt;
    #drop the timestamp string into active window, uncomment next line to use xdotool&lt;br /&gt;
    #os.system(dropstamp)&lt;br /&gt;
    #        &lt;br /&gt;
    #use xte from the xautomation package if you don&#039;t have a version of &lt;br /&gt;
    #xdotool newer than august 2010&lt;br /&gt;
    os.system(&#039;xte &amp;quot;str &#039; + prefix + t + suffix + &#039;&amp;quot;&#039;)       &lt;br /&gt;
&lt;br /&gt;
#if we don&#039;t feed an argument to the script, normalize the play speed of vlc&lt;br /&gt;
else:&lt;br /&gt;
    os.system(&#039;echo &amp;quot;normal&amp;quot; | nc.openbsd -U &#039; + vlcin)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VLCCONTROL-SOCAT.PY:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; Below you&#039;ll find a version of the original script that was modified to use socat, instead of the OpenBSD netcat build. This should, hopefully, make the script readily available to more people, quicker. The same instructions--make it executable with the command &#039;chmod 700 vlccontrol-socat.py&#039;--apply. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;code&amp;gt;&amp;lt;/code&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;#!/usr/bin/env python&lt;br /&gt;
#### licensing nonsense - short version: New BSD License&lt;br /&gt;
#Copyright (c) 2010, Derek Barnett, Skyehaven Transcription&lt;br /&gt;
#Contact: derek at skyehaven.net&lt;br /&gt;
#All rights reserved.&lt;br /&gt;
#Redistribution and use in source and binary forms, with or &lt;br /&gt;
#without modification, are permitted provided that the following &lt;br /&gt;
#conditions are met:&lt;br /&gt;
#&lt;br /&gt;
#    * Redistributions of source code must retain the above &lt;br /&gt;
#copyright notice, this list of conditions and the following &lt;br /&gt;
#disclaimer.&lt;br /&gt;
#    * Redistributions in binary form must reproduce the above &lt;br /&gt;
#copyright notice, this list of conditions and the following &lt;br /&gt;
#disclaimer in the documentation and/or other materials provided &lt;br /&gt;
#with the distribution.&lt;br /&gt;
#    * Neither the name of the Skyehaven Transcription nor the &lt;br /&gt;
#names of its contributors may be used to endorse or promote &lt;br /&gt;
#products derived from this software without specific prior &lt;br /&gt;
#written permission.&lt;br /&gt;
#&lt;br /&gt;
#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND &lt;br /&gt;
#CONTRIBUTORS &amp;quot;AS IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, &lt;br /&gt;
#INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF &lt;br /&gt;
#MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE &lt;br /&gt;
#DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR &lt;br /&gt;
#CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, &lt;br /&gt;
#SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT &lt;br /&gt;
#LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF &lt;br /&gt;
#USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED &lt;br /&gt;
#AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT &lt;br /&gt;
#LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING &lt;br /&gt;
#IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF &lt;br /&gt;
#THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
#####&lt;br /&gt;
&lt;br /&gt;
##### useful notes&lt;br /&gt;
#vlc control script, compatible with python 2 or 3&lt;br /&gt;
#&lt;br /&gt;
#this script requires the openbsd version of netcat. gnu&#039;s version&lt;br /&gt;
#does not appear to support unix sockets as of this time. it will &lt;br /&gt;
#almost certainly be in the repos of your distribution. you may need&lt;br /&gt;
#to adjust this script to change the name of the binary to whatever&lt;br /&gt;
#format your distribution uses (change &#039;nc.openbsd&#039; below to whatever &lt;br /&gt;
#you need.)&lt;br /&gt;
#&lt;br /&gt;
#it also requires either xautomation (for it&#039;s xte tool) or xdotool&lt;br /&gt;
#xautomation is used by default, as it&#039;s currently a bit faster&lt;br /&gt;
#if you use xdotool, ensure that it&#039;s a version later than aug 2010&lt;br /&gt;
#&lt;br /&gt;
#to set up vlc to use this script, go to tools-&amp;amp;gt;preferences and &lt;br /&gt;
#click on &amp;quot;show settings-&amp;amp;gt;all&amp;quot; at the bottom. from that menu, &lt;br /&gt;
#select &amp;quot;Interface-&amp;amp;gt;Main Interfaces&amp;quot;, and check the &amp;quot;Remote Control &lt;br /&gt;
#Interface&amp;quot; box. Next, select &amp;quot;Interface-&amp;amp;gt;Main Interfaces-&amp;amp;gt;RC&amp;quot;,&lt;br /&gt;
#check the &amp;quot;Fake TTY&#039; box, and enter &#039;home/YOURNAME/vlc.sock&#039;in&lt;br /&gt;
#the &amp;quot;UNIX socket command input&amp;quot; field.  &lt;br /&gt;
#&lt;br /&gt;
#You probably also want to adjust the &amp;quot;Very short jump length&amp;quot; located&lt;br /&gt;
#in &amp;quot;Interface-&amp;amp;gt;Hotkeys settings&amp;quot;. This script assumes that it is set&lt;br /&gt;
#for 5 seconds rather than the default of 3 seconds. It won&#039;t affect the&lt;br /&gt;
#script if you don&#039;t change this value, as it uses the &#039;very short jump&#039;&lt;br /&gt;
#command rather than jogging a specific number of seconds. If you poke &lt;br /&gt;
#around the vlc docs, you&#039;ll see a seek command, but that is to go to a&lt;br /&gt;
#certain point in a file rather than going forward or backward a certain&lt;br /&gt;
#number of seconds.&lt;br /&gt;
#&lt;br /&gt;
#Hit &amp;quot;Save&amp;quot;. Restart VLC, and check to see if it creates &amp;quot;vlc.sock&amp;quot; &lt;br /&gt;
#in your home directory. This should be created automatically when vlc &lt;br /&gt;
#starts. If it doesn&#039;t, check your socket path and try again.&lt;br /&gt;
#&lt;br /&gt;
#Next, you need to set up your hotkeys for your window environment.&lt;br /&gt;
#This should work equally well in any window manger, so pick whichever&lt;br /&gt;
#you like. Remember to check to make sure that whichever hotkeys you wish&lt;br /&gt;
#to use are not already used by your windowmanager. Redefine these&lt;br /&gt;
#hotkeys or the defaults as necessary.&lt;br /&gt;
#&lt;br /&gt;
#note: vlc supposedly support global hotkeys, but I didn&#039;t have any luck &lt;br /&gt;
#with them, which is why i went this route with the control script. Your&lt;br /&gt;
#mileage may vary.&lt;br /&gt;
#&lt;br /&gt;
#I personally set it up like this:&lt;br /&gt;
#F1 = ~/vlccontrol-socat.py jogbackward&lt;br /&gt;
#F2 = ~/vlccontrol-socat.py pause (no need to have this twice, just habit)&lt;br /&gt;
#F3 = ~/vlccontrol-socat.py pause&lt;br /&gt;
#F4 = ~/vlccontrol-socat.py jogforward&lt;br /&gt;
#F5 = ~/vlccontrol-socat.py timestamp&lt;br /&gt;
#Shift+F1 = ~/vlccontrol-socat.py slower&lt;br /&gt;
#Shift+F3 = ~/vlccontrol-socat.py normal&lt;br /&gt;
#Shift+F4 = ~/vlccontrol-socat.py faster&lt;br /&gt;
##### end of rambling, on to business...&lt;br /&gt;
&lt;br /&gt;
#Not quite... (Anoter quick note from the person who modified the script for socat): If you&lt;br /&gt;
#look closely, I&#039;ve added a couple extra controls to this, namely medium jumps forward&lt;br /&gt;
#and backward.  VLC actually offers a range of commands for you to play with.  If you&#039;d&lt;br /&gt;
#like to add additional controls to the script, simply do an on-page search for &amp;quot;Hot Keys&amp;quot;&lt;br /&gt;
#here: [http://wiki.videolan.org/VLC_command-line_help] &lt;br /&gt;
&lt;br /&gt;
import sys&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
#feed command to vlc socket to get the time played in seconds&lt;br /&gt;
workingdir = os.path.join(os.path.expanduser(&#039;~&#039;))&lt;br /&gt;
vlcin = os.path.join(workingdir,&#039;vlc.sock&#039;)&lt;br /&gt;
vlcout = os.path.join(workingdir,&#039;vlc.out&#039;)&lt;br /&gt;
&lt;br /&gt;
#accept argument when running script, e.g. &#039;./vlctimestamp.py timestamp&#039;&lt;br /&gt;
args = sys.argv[1:]&lt;br /&gt;
i = &amp;quot;normal&amp;quot;&lt;br /&gt;
if args:&lt;br /&gt;
    i = str.lower(args[0])&lt;br /&gt;
&lt;br /&gt;
#acceptable arguments: help, --help, pause, jogforward, +5, jogbackward, -5,&lt;br /&gt;
#faster, slower, normal, timestamp. no argument assumes &#039;normal&#039;&lt;br /&gt;
if i == &amp;quot;help&amp;quot; or i == &amp;quot;-help&amp;quot; or i == &amp;quot;--help&amp;quot;:&lt;br /&gt;
    print(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
             &#039;help&#039; or &#039;--help&#039; returns this help&lt;br /&gt;
             &#039;pause&#039; is a play/pause toggle&lt;br /&gt;
             &#039;jogforward&#039; or &#039;+5&#039; jumps forward 5 seconds&lt;br /&gt;
             &#039;jogbackward&#039; or &#039;-5&#039; jumps backward 5 seconds&lt;br /&gt;
             &#039;faster&#039; increases the tempo without increasing pitch&lt;br /&gt;
             &#039;slower&#039; decreases the tempo without decreasing pitch&lt;br /&gt;
              no argument or &#039;normal&#039; returns vlc to normal speed&lt;br /&gt;
              &#039;timestamp&#039; types a hh:mm:ss coded timestamp into &lt;br /&gt;
                          active window. see comments within this&lt;br /&gt;
                          script if you need to change the timestamp&lt;br /&gt;
                          string, offset the timestamp for a video&lt;br /&gt;
                          timecode, or if you&#039;ve made tempo changes&lt;br /&gt;
                          in an audio file outside of vlc&lt;br /&gt;
             &amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
elif i == &amp;quot;jogforward&amp;quot; or i == &amp;quot;+5&amp;quot;:&lt;br /&gt;
    os.system(&#039;echo &amp;quot;key key-jump+extrashort&amp;quot; | socat - unix:&#039; + vlcin)&lt;br /&gt;
&lt;br /&gt;
elif i == &amp;quot;jogbackward&amp;quot; or i == &amp;quot;-5&amp;quot;:&lt;br /&gt;
    os.system(&#039;echo &amp;quot;key key-jump-extrashort&amp;quot; | socat - unix:&#039; + vlcin)&lt;br /&gt;
&lt;br /&gt;
elif i == &amp;quot;jumpforward&amp;quot; or i == &amp;quot;+10&amp;quot;:&lt;br /&gt;
    os.system(&#039;echo &amp;quot;key key-jump+medium&amp;quot; | socat - unix:&#039; + vlcin)&lt;br /&gt;
&lt;br /&gt;
elif i == &amp;quot;jumpbackward&amp;quot; or i == &amp;quot;-10&amp;quot;:&lt;br /&gt;
    os.system(&#039;echo &amp;quot;key key-jump-medium&amp;quot; | socat - unix:&#039; + vlcin)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
elif i == &amp;quot;pause&amp;quot;:&lt;br /&gt;
    os.system(&#039;echo &amp;quot;pause&amp;quot; | socat - unix:&#039; + vlcin)&lt;br /&gt;
&lt;br /&gt;
elif i == &amp;quot;faster&amp;quot;:&lt;br /&gt;
    os.system(&#039;echo &amp;quot;key key-rate-faster-fine&amp;quot; | socat - unix:&#039; + vlcin)&lt;br /&gt;
&lt;br /&gt;
elif i == &amp;quot;slower&amp;quot;:&lt;br /&gt;
    os.system(&#039;echo &amp;quot;key key-rate-slower-fine&amp;quot; | socat - unix:&#039; + vlcin)&lt;br /&gt;
&lt;br /&gt;
elif i == &amp;quot;normal&amp;quot;:&lt;br /&gt;
    os.system(&#039;echo &amp;quot;normal&amp;quot; | socat - unix:&#039; + vlcin)&lt;br /&gt;
&lt;br /&gt;
elif i == &amp;quot;timestamp&amp;quot;:&lt;br /&gt;
    #have vlc post the time ~/vlc.out&lt;br /&gt;
    os.system(&#039;echo &amp;quot;get_time&amp;quot; | socat - unix:&#039; + vlcin + &#039; &amp;amp;gt; &#039; + vlcout)&lt;br /&gt;
    &lt;br /&gt;
    #read vlc.out and report time played in seconds&lt;br /&gt;
    f = open(vlcout, &#039;r&#039;)&lt;br /&gt;
    f_list = f.read().split(&amp;quot;\n&amp;quot;)&lt;br /&gt;
    if len(f_list) &amp;amp;gt; 2:&lt;br /&gt;
        sec = f_list[1]&lt;br /&gt;
    else:&lt;br /&gt;
        sec = f_list[0]&lt;br /&gt;
    sec = int(sec)&lt;br /&gt;
    &lt;br /&gt;
    #tempo - if you&#039;ve adjusted the tempo of an audio file, in &lt;br /&gt;
    #        audacity for instance, then you can use the tempo&lt;br /&gt;
    #        variable to give output for a timestamp postion in &lt;br /&gt;
    #        original file. tempo is the percent playback speed&lt;br /&gt;
    #        of the modified file. 80 = -20% tempo change, etc.&lt;br /&gt;
    #        default is 100&lt;br /&gt;
    tempo = 100&lt;br /&gt;
    &lt;br /&gt;
    #don&#039;t change this. if you need an offset, take care of it below&lt;br /&gt;
    offset = 0&lt;br /&gt;
&lt;br /&gt;
    #change offsetneeded to True if, for instance, you need to &lt;br /&gt;
    #use a timecode embedded into a video rather than the playtime&lt;br /&gt;
    #of the file&lt;br /&gt;
    offsetneeded = False&lt;br /&gt;
    &lt;br /&gt;
    if offsetneeded == True:&lt;br /&gt;
    &lt;br /&gt;
    #If an offset is needed:&lt;br /&gt;
    #Pick a spot on the video and pause it (not the beginning). Enter the appropriate values below:&lt;br /&gt;
    #vtch = hours on video time code, vtcm = minutes, vtcs = seconds&lt;br /&gt;
        vtch = 0&lt;br /&gt;
        vtcm = 0&lt;br /&gt;
        vtcs = 10&lt;br /&gt;
        vtc = (vtch * 3600) + (vtcm * 60) + vtcs&lt;br /&gt;
    #atch = hours in actual playtime, atcm = minutes, &lt;br /&gt;
    #atcs = seconds            &lt;br /&gt;
        atch = 0&lt;br /&gt;
        atcm = 0&lt;br /&gt;
        atcs = 0&lt;br /&gt;
        atc = ((((atch * 3600) + (atcm * 60) + atcs) * tempo) / 100)&lt;br /&gt;
        offset = vtc - atc&lt;br /&gt;
    &lt;br /&gt;
    #get the values for hh:mm:ss formatting&lt;br /&gt;
    sec = ((sec * tempo) / 100) + offset&lt;br /&gt;
    th = sec/3600&lt;br /&gt;
    tm = (sec&amp;amp;nbsp;% 3600)/60&lt;br /&gt;
    ts = sec&amp;amp;nbsp;% 60&lt;br /&gt;
    &lt;br /&gt;
    #format the timestamp, default looks like &#039;##Inaudible 00:01:10## &#039;&lt;br /&gt;
    #the timestamp in hours:minutes:seconds                    &lt;br /&gt;
    t = &amp;quot;%02d:%02d:%02d&amp;quot;&amp;amp;nbsp;% (th,tm,ts)    &lt;br /&gt;
    &lt;br /&gt;
    #string to append before timestamp&lt;br /&gt;
    #for no prefix, set prefix = &amp;quot;&amp;quot;&lt;br /&gt;
    prefix = &amp;quot;[&amp;quot;&lt;br /&gt;
    #string to append after timestamp&lt;br /&gt;
    #for no suffix, set suffix = &amp;quot;&amp;quot;&lt;br /&gt;
    suffix = &amp;quot;] &amp;quot;                           &lt;br /&gt;
        &lt;br /&gt;
    #xdotool command to execute, uncomment next line to use xdotool&lt;br /&gt;
    #dropstamp = str(&amp;quot;xdotool type --delay 0 --clearmodifiers &#039;&amp;quot; + prefix + t + suffix + &amp;quot;&#039;&amp;quot;)&lt;br /&gt;
    #    &lt;br /&gt;
    #drop the timestamp string into active window, uncomment next line to use xdotool&lt;br /&gt;
    #os.system(dropstamp)&lt;br /&gt;
    #        &lt;br /&gt;
    #use xte from the xautomation package if you don&#039;t have a version of &lt;br /&gt;
    #xdotool newer than august 2010&lt;br /&gt;
    os.system(&#039;xte &amp;quot;str &#039; + prefix + t + suffix + &#039;&amp;quot;&#039;)       &lt;br /&gt;
&lt;br /&gt;
#if we don&#039;t feed an argument to the script, normalize the play speed of vlc&lt;br /&gt;
else:&lt;br /&gt;
    os.system(&#039;echo &amp;quot;normal&amp;quot; | socat - unix:&#039; + vlcin)&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &#039;&#039;&#039;OTHER THINGS YOU MIGHT CARE TO KNOW IF YOU&#039;VE MADE IT THIS FAR:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
There are a couple of things in the script which you ought to know about if you do transcription regularly enough to care about these sorts of things. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; Within the script, you&#039;ll find settings for &#039;tempo&#039; and &#039;offset&#039;. Most people aren&#039;t going to need to worry about either of these and can just leave them as they sit. However, if you do alot of transcription, it&#039;s likely you&#039;ll find these to be of some value. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; The tempo setting does not refer to VLC&#039;s speed adjustment, rather it&#039;s is used if you have edited an audio file in an external editor, like audacity, and changed the tempo of the audio and created a new audio file based on that. The &#039;tempo&#039; variable is a percentage of the original audio, so at full speed, you&#039;ll want &#039;tempo = 100&#039;. If you slow it down 20%, you&#039;ll want &#039;tempo = 80&#039;, or &#039;tempo = 175&#039; if you&#039;ve sped it up 75%. By using this, you can get a timestamp for the spot in the full speed audio file, and won&#039;t need to go back through it later and correct your timestamps (it&#039;s always a good idea to do a couple of spot checks, just in case.) You DO NOT need to change this tempo variable if you are only adjusting the speed within VLC, it takes care of itself. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; The &#039;offset&#039; section is useful if you are editing a video file which has an OSD timecode which you need to timestamp, rather than the playtime of the file. Again, this is not something you should need to mess with unless you have a specific use for it. If you do have a use for it, keep in mind that occasionally there will be edits that have been made to the video which will throw off your offest, so to speak. Unfortunately there&#039;s no real easy way to deal with this problem that I&#039;m aware of, you simply have to keep an eye on the difference and adjust it as needed. Again, spot checks are always a good idea. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; In order to set the script up to properly offset your video, pick a spot somewhere in the video which is not at the beginning, and then enter in the appropriate values. For instance, if we have a video file which at 01:23:45 play time on the file has an OSD timecode of 12:34:56, you&#039;ll enter the values like this: &lt;br /&gt;
&lt;br /&gt;
    offsetneeded = True&lt;br /&gt;
 vtch = 12 &amp;amp;lt;--hours on the video timecode&lt;br /&gt;
 vtcm = 34 &amp;amp;lt;--minutes on the video timecode&lt;br /&gt;
 vtcs = 56 &amp;amp;lt;--seconds on the video timecode&lt;br /&gt;
&lt;br /&gt;
        atch = 1  &amp;amp;lt;---don&#039;t use a leading 0, or the script will puke&lt;br /&gt;
 atcm = 23 &amp;amp;lt;--minutes on the playback time&lt;br /&gt;
 atcs = 45 &amp;amp;lt;--seconds on the playback time&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; You can use offset with the tempo settings. Don&#039;t use the video timecode at 00:00:00 on the playback time, or the calculation will be off. Check the difference between the video timecode and the playback time at the beginning and end of your file to see if it&#039;s consistent, as that will tell you if there have been any edits made. If there are edits, just change the offset numbers when you get to those points. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; Finally, variable bit rates are a pain for transcription. You&#039;ll get files which simply won&#039;t behave in a useful manner when you try and jog backward, et cetera. You can try converting those files to ogg format, and that generally solves the problem. &lt;br /&gt;
&lt;br /&gt;
* More of [[VLC HowTo|VLC HowTo]]&lt;br /&gt;
&amp;lt;br&amp;gt; If you have any questions about this, I can be reached at derek at skyehaven.net. &lt;br /&gt;
&lt;br /&gt;
[[Category:How_To]]&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=HowTo_Integrate_VLC_plugin_in_your_webpage&amp;diff=20261</id>
		<title>HowTo Integrate VLC plugin in your webpage</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=HowTo_Integrate_VLC_plugin_in_your_webpage&amp;diff=20261"/>
		<updated>2011-11-28T12:32:37Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: /* Embedding the VLC plugin in your webpage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Embedding the VLC plugin in your webpage  ==&lt;br /&gt;
&lt;br /&gt;
The VLC plugin can be directly embedded in your webpage : &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot; name=&amp;quot;player&amp;quot; autoplay=&amp;quot;no&amp;quot; loop=&amp;quot;no&amp;quot; target=&amp;quot;udp:@239.255.12.42&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then have to use the official Mozilla/ActiveX api documented here : http://wiki.videolan.org/Documentation:WebPlugin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
But, if you need &#039;&#039;&#039;controls&#039;&#039;&#039; (buttons, slidebar...), you have to use the &#039;&#039;&#039;open source revolunet VLCcontrols&#039;&#039;&#039; library.&lt;br /&gt;
&lt;br /&gt;
* the code resides @github : https://github.com/revolunet/VLCcontrols&lt;br /&gt;
* you have some demo here : http://revolunet.github.com/VLCcontrols&lt;br /&gt;
&lt;br /&gt;
Usage exemple : &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- include jquery + source --&amp;gt;&lt;br /&gt;
    &amp;lt;script language=&amp;quot;javascript&amp;quot; src=&amp;quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt; &lt;br /&gt;
    &amp;lt;script language=&amp;quot;javascript&amp;quot; src=&amp;quot;http://revolunet.github.com/VLCcontrols/src/jquery-vlc.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt; &lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;http://revolunet.github.com/VLCcontrols/src/styles.css&amp;quot; /&amp;gt; &lt;br /&gt;
    &amp;lt;!-- embed the player and play a file --&amp;gt;&lt;br /&gt;
    &amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
        var player = VLCobject.embedPlayer(&#039;vlc1&#039;, 400, 300);&lt;br /&gt;
        player.play(&#039;http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_480p_surround-fix.avi&#039;);&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note the fullscreen is currently broken in VLC plugin itself (VLC&amp;gt;1.1)&lt;br /&gt;
&lt;br /&gt;
* More of [[VLC HowTo|VLC HowTo]]&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Hacker_Guide/Audio_Filters&amp;diff=20260</id>
		<title>Hacker Guide/Audio Filters</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Hacker_Guide/Audio_Filters&amp;diff=20260"/>
		<updated>2011-11-28T12:18:20Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
* [[Hacker Guide|Back to Hacker Guide]]&lt;br /&gt;
&lt;br /&gt;
=Writing an audio filter=&lt;br /&gt;
&lt;br /&gt;
==Module descriptor==&lt;br /&gt;
 static int  Open     ( [http://www.videolan.org/developers/vlc/doc/doxygen/html/structvlc__object__t.html vlc_object_t] *p_this );&lt;br /&gt;
 static void Close    ( [http://www.videolan.org/developers/vlc/doc/doxygen/html/structvlc__object__t.html vlc_object_t] *p_this );&lt;br /&gt;
 static void DoWork   ( [http://www.videolan.org/developers/vlc/doc/doxygen/html/structaout__instance__t.html aout_instance_t] *p_aout, [http://www.videolan.org/developers/vlc/doc/doxygen/html/structaout__filter__t.html aout_filter_t] *p_filter, [http://www.videolan.org/developers/vlc/doc/doxygen/html/structaout__buffer__t.html aout_buffer_t] *p_in_buf, [http://www.videolan.org/developers/vlc/doc/doxygen/html/structaout__buffer__t.html aout_buffer_t] *p_out_buf );&lt;br /&gt;
 &lt;br /&gt;
 vlc_module_begin()&lt;br /&gt;
     set_description( N_(&amp;quot;audio filter x&amp;quot;) )&lt;br /&gt;
     set_shortname( N_(&amp;quot;audio filter x&amp;quot;) )&lt;br /&gt;
     set_category( CAT_AUDIO )&lt;br /&gt;
     set_subcategory( SUBCAT_AUDIO_AFILTER )&lt;br /&gt;
     add_shortcut( &amp;quot;afx&amp;quot; )&lt;br /&gt;
     set_capability( &amp;quot;audio filter&amp;quot;, 0 )&lt;br /&gt;
     set_callbacks( Open, Close )&lt;br /&gt;
 vlc_module_end()&lt;br /&gt;
&lt;br /&gt;
==Mandatory structures==&lt;br /&gt;
*aout_filter_sys_t&lt;br /&gt;
&lt;br /&gt;
==I/O Buffers==&lt;br /&gt;
Data comes in and out the plugin in an [http://www.videolan.org/developers/vlc/doc/doxygen/html/structaout__buffer__t.html aout_buffer_t], one sample at a time, and in each sample, one block by channel.&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|data stream&lt;br /&gt;
| ch 1&lt;br /&gt;
| ch 2&lt;br /&gt;
| ch 1&lt;br /&gt;
| ch 2&lt;br /&gt;
| ch 1&lt;br /&gt;
| ch 2&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sample 1&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sample 2&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sample 3&lt;br /&gt;
| ...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An audio filter module is constituted of a constructor, a destructor, and a p_filter-&amp;gt;pf_do_work function. The constructor is passed a p_filter structure, and it returns 0 if it is able to do the whole transformation between p_filter-&amp;gt;input and p_filter-&amp;gt;output. If you can do only part of the transformation, say you can&#039;t do it (if the aout core doesn&#039;t find a fitting filter, it will split the transformation and ask you again).&lt;br /&gt;
&lt;br /&gt;
==Note==&lt;br /&gt;
&lt;br /&gt;
Audio filters can be of three types :&lt;br /&gt;
&lt;br /&gt;
*Converters : change i_format (for instance from float32 to s16).&lt;br /&gt;
*Resamplers : change i_rate (for instance from 48 kHz to 44.1 kHz).&lt;br /&gt;
*Channel mixers : change i_physical_channels/i_original_channels (for instance from 5.1 to stereo). &lt;br /&gt;
&lt;br /&gt;
Audio filters can also combine any of these types. For instance you can have an audio filter which transforms A/52 5.1 to float32 stereo.&lt;br /&gt;
&lt;br /&gt;
The constructor must also set p_filter-&amp;gt;b_in_place. If it&#039;s 0, the aout core will allocate a new buffer for the output. If it&#039;s 1, when you write a byte in the output buffer, it destroys the same byte in the input buffer (they share the same memory area). Some filters can work in place because they just do a linear transformation (like float32-&amp;gt;s16), but most filters will want b_in_place = 0. The filter can allocate private data in p_filter-&amp;gt;p_sys. Do not forget to deallocate it in the destructor.&lt;br /&gt;
&lt;br /&gt;
The p_filter-&amp;gt;pf_do_work gets an input and an output buffer as arguments, and process them. At the end of the processing, do not forget to set p_out_buf-&amp;gt;i_nb_samples and p_out_buf-&amp;gt;i_nb_bytes, since they aren&#039;t inited by the aout core (their values can change between input and output and it&#039;s not quite predictible).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Writing an audio mixer=&lt;br /&gt;
&lt;br /&gt;
Writing an audio mixer is very similar to writing an audio filter. The only difference is that you have to deal with the input buffers yourself, and request for new buffers when you need to. Between two calls to pf_do_work, the position in the buffer is remembered in p_input-&amp;gt;p_first_byte_to_mix (it isn&#039;t always the start of the buffer, since input and output buffers can be of different length). It is your job to set this pointer at the end of pf_do_work.&lt;br /&gt;
&lt;br /&gt;
For more details, please have a look at the float32 mixer. It&#039;s much more understandable than lines of documentation.&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Hacker_Guide/Audio_Filters&amp;diff=20259</id>
		<title>Hacker Guide/Audio Filters</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Hacker_Guide/Audio_Filters&amp;diff=20259"/>
		<updated>2011-11-28T12:16:37Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
* [[Hacker Guide|Hacker Guide]]&lt;br /&gt;
&lt;br /&gt;
=Writing an audio filter=&lt;br /&gt;
&lt;br /&gt;
==Module descriptor==&lt;br /&gt;
 static int  Open     ( [http://www.videolan.org/developers/vlc/doc/doxygen/html/structvlc__object__t.html vlc_object_t] *p_this );&lt;br /&gt;
 static void Close    ( [http://www.videolan.org/developers/vlc/doc/doxygen/html/structvlc__object__t.html vlc_object_t] *p_this );&lt;br /&gt;
 static void DoWork   ( [http://www.videolan.org/developers/vlc/doc/doxygen/html/structaout__instance__t.html aout_instance_t] *p_aout, [http://www.videolan.org/developers/vlc/doc/doxygen/html/structaout__filter__t.html aout_filter_t] *p_filter, [http://www.videolan.org/developers/vlc/doc/doxygen/html/structaout__buffer__t.html aout_buffer_t] *p_in_buf, [http://www.videolan.org/developers/vlc/doc/doxygen/html/structaout__buffer__t.html aout_buffer_t] *p_out_buf );&lt;br /&gt;
 &lt;br /&gt;
 vlc_module_begin()&lt;br /&gt;
     set_description( N_(&amp;quot;audio filter x&amp;quot;) )&lt;br /&gt;
     set_shortname( N_(&amp;quot;audio filter x&amp;quot;) )&lt;br /&gt;
     set_category( CAT_AUDIO )&lt;br /&gt;
     set_subcategory( SUBCAT_AUDIO_AFILTER )&lt;br /&gt;
     add_shortcut( &amp;quot;afx&amp;quot; )&lt;br /&gt;
     set_capability( &amp;quot;audio filter&amp;quot;, 0 )&lt;br /&gt;
     set_callbacks( Open, Close )&lt;br /&gt;
 vlc_module_end()&lt;br /&gt;
&lt;br /&gt;
==Mandatory structures==&lt;br /&gt;
*aout_filter_sys_t&lt;br /&gt;
&lt;br /&gt;
==I/O Buffers==&lt;br /&gt;
Data comes in and out the plugin in an [http://www.videolan.org/developers/vlc/doc/doxygen/html/structaout__buffer__t.html aout_buffer_t], one sample at a time, and in each sample, one block by channel.&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|data stream&lt;br /&gt;
| ch 1&lt;br /&gt;
| ch 2&lt;br /&gt;
| ch 1&lt;br /&gt;
| ch 2&lt;br /&gt;
| ch 1&lt;br /&gt;
| ch 2&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sample 1&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sample 2&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sample 3&lt;br /&gt;
| ...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An audio filter module is constituted of a constructor, a destructor, and a p_filter-&amp;gt;pf_do_work function. The constructor is passed a p_filter structure, and it returns 0 if it is able to do the whole transformation between p_filter-&amp;gt;input and p_filter-&amp;gt;output. If you can do only part of the transformation, say you can&#039;t do it (if the aout core doesn&#039;t find a fitting filter, it will split the transformation and ask you again).&lt;br /&gt;
&lt;br /&gt;
==Note==&lt;br /&gt;
&lt;br /&gt;
Audio filters can be of three types :&lt;br /&gt;
&lt;br /&gt;
*Converters : change i_format (for instance from float32 to s16).&lt;br /&gt;
*Resamplers : change i_rate (for instance from 48 kHz to 44.1 kHz).&lt;br /&gt;
*Channel mixers : change i_physical_channels/i_original_channels (for instance from 5.1 to stereo). &lt;br /&gt;
&lt;br /&gt;
Audio filters can also combine any of these types. For instance you can have an audio filter which transforms A/52 5.1 to float32 stereo.&lt;br /&gt;
&lt;br /&gt;
The constructor must also set p_filter-&amp;gt;b_in_place. If it&#039;s 0, the aout core will allocate a new buffer for the output. If it&#039;s 1, when you write a byte in the output buffer, it destroys the same byte in the input buffer (they share the same memory area). Some filters can work in place because they just do a linear transformation (like float32-&amp;gt;s16), but most filters will want b_in_place = 0. The filter can allocate private data in p_filter-&amp;gt;p_sys. Do not forget to deallocate it in the destructor.&lt;br /&gt;
&lt;br /&gt;
The p_filter-&amp;gt;pf_do_work gets an input and an output buffer as arguments, and process them. At the end of the processing, do not forget to set p_out_buf-&amp;gt;i_nb_samples and p_out_buf-&amp;gt;i_nb_bytes, since they aren&#039;t inited by the aout core (their values can change between input and output and it&#039;s not quite predictible).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Writing an audio mixer=&lt;br /&gt;
&lt;br /&gt;
Writing an audio mixer is very similar to writing an audio filter. The only difference is that you have to deal with the input buffers yourself, and request for new buffers when you need to. Between two calls to pf_do_work, the position in the buffer is remembered in p_input-&amp;gt;p_first_byte_to_mix (it isn&#039;t always the start of the buffer, since input and output buffers can be of different length). It is your job to set this pointer at the end of pf_do_work.&lt;br /&gt;
&lt;br /&gt;
For more details, please have a look at the float32 mixer. It&#039;s much more understandable than lines of documentation.&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=DVD&amp;diff=20258</id>
		<title>DVD</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=DVD&amp;diff=20258"/>
		<updated>2011-11-28T12:11:46Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{wikipedia|DVD}}&lt;br /&gt;
&#039;&#039;&#039;DVD&#039;&#039;&#039; is an acronym for &#039;&#039;&#039;Digital Video Disc&#039;&#039;&#039;, a 12cm plastic disc which contains audio and video content in optically-readable digital form. [[VLC media player|VLC]] has extensive capabilities to read and master DVDs.&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2011&amp;diff=20257</id>
		<title>SoC 2011</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2011&amp;diff=20257"/>
		<updated>2011-11-28T12:00:59Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: /* Automatic LibVLC bindings generation */&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;
&lt;br /&gt;
[[Category:SoC_2011_Project|Accepted projects]] can be found on a [[Category:SoC_2011_Project|separate page]].&lt;br /&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;
* [[SoC 2011/Generator of libVLC bindings for other languages|Generator of libVLC bindings for other languages]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: ivoire&#039;&#039;&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;
*add &#039;unminimise&#039; command to the fullscreen command&lt;br /&gt;
**the current fullscreen command just sets the bool value of fullscreen in VLC. However if vlc is minimised on Ubuntu (possibly windows), then fullscreen does nothing. To work as the user would expect, the command=fullscreen should a) set fullscreen b) unminimise VLC&lt;br /&gt;
*add ability to control picture controls (brightness, contrast, etc)&lt;br /&gt;
*implement pl_delete on luahttp&lt;br /&gt;
*allow user to get drives list on windows (in oldHttp, user can browse to c:/..)&lt;br /&gt;
&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>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Talk:Modules_source_tree&amp;diff=20256</id>
		<title>Talk:Modules source tree</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Talk:Modules_source_tree&amp;diff=20256"/>
		<updated>2011-11-28T11:33:48Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: Redirected page to Talk:Hacker Guide/Modules source tree&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Talk:Hacker Guide/Modules source tree]]&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation_Talk:Hacker%27s_Guide/Module_Writers_Guide&amp;diff=20255</id>
		<title>Documentation Talk:Hacker&#039;s Guide/Module Writers Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation_Talk:Hacker%27s_Guide/Module_Writers_Guide&amp;diff=20255"/>
		<updated>2011-11-28T11:33:33Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: Redirected page to Talk:Hacker Guide/How To Write a Module&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[ Talk:Hacker Guide/How To Write a Module]]&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Talk:Hacker_Guide/Module_Writers_Guide&amp;diff=20254</id>
		<title>Talk:Hacker Guide/Module Writers Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Talk:Hacker_Guide/Module_Writers_Guide&amp;diff=20254"/>
		<updated>2011-11-28T11:33:14Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: Redirected page to Talk:Hacker Guide/How To Write a Module&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[ Talk:Hacker Guide/How To Write a Module]]&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Modules_source_tree&amp;diff=20253</id>
		<title>Modules source tree</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Modules_source_tree&amp;diff=20253"/>
		<updated>2011-11-28T11:32:55Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: Redirected page to Hacker Guide/Modules source tree&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[ Hacker Guide/Modules source tree]]&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLM_Internals&amp;diff=20252</id>
		<title>VLM Internals</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLM_Internals&amp;diff=20252"/>
		<updated>2011-11-28T11:32:37Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: Redirected page to Hacker Guide/VLM Internals&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[ Hacker Guide/VLM Internals]]&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:Hacker%27s_Guide/Module_Writers_Guide&amp;diff=20251</id>
		<title>Documentation:Hacker&#039;s Guide/Module Writers Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:Hacker%27s_Guide/Module_Writers_Guide&amp;diff=20251"/>
		<updated>2011-11-28T11:32:18Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: Redirected page to Hacker Guide/How To Write a Module&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[ Hacker Guide/How To Write a Module]]&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Module_Writers_Guide&amp;diff=20250</id>
		<title>Module Writers Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Module_Writers_Guide&amp;diff=20250"/>
		<updated>2011-11-28T11:31:58Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: Redirected page to Hacker Guide/How To Write a Module&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Hacker Guide/How To Write a Module]]&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Plugin_Writers_Guide&amp;diff=20249</id>
		<title>Plugin Writers Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Plugin_Writers_Guide&amp;diff=20249"/>
		<updated>2011-11-28T11:31:43Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: Redirected page to Hacker Guide/How To Write a Module&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Hacker Guide/How To Write a Module]]&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=LibVLCcore&amp;diff=20248</id>
		<title>LibVLCcore</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=LibVLCcore&amp;diff=20248"/>
		<updated>2011-11-28T11:31:25Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: Redirected page to Hacker Guide/Core&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect[[ Hacker Guide/Core]]&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:Hacker%27s_Guide/Audio_Mixers&amp;diff=20247</id>
		<title>Documentation:Hacker&#039;s Guide/Audio Mixers</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:Hacker%27s_Guide/Audio_Mixers&amp;diff=20247"/>
		<updated>2011-11-28T11:31:07Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: Redirected page to Hacker Guide/Audio Filters&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect[[Hacker Guide/Audio Filters]]&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:Hackers_Guide&amp;diff=20246</id>
		<title>Documentation:Hackers Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:Hackers_Guide&amp;diff=20246"/>
		<updated>2011-11-28T11:30:26Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: Redirected page to Hacker Guide&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect[[ Hacker Guide]]&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:Hacker%27s_Guide/Introduction&amp;diff=20245</id>
		<title>Documentation:Hacker&#039;s Guide/Introduction</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:Hacker%27s_Guide/Introduction&amp;diff=20245"/>
		<updated>2011-11-28T11:30:11Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: Redirected page to Hacker Guide&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[ Hacker Guide]]&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Talk:Mini_Projects&amp;diff=20244</id>
		<title>Talk:Mini Projects</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Talk:Mini_Projects&amp;diff=20244"/>
		<updated>2011-11-28T11:29:39Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: Redirected page to Talk:VLC Dev Projects&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[ Talk:VLC Dev Projects]]&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation_Talk:Hacker%27s_Guide/Module_Writers_Guide&amp;diff=20243</id>
		<title>Documentation Talk:Hacker&#039;s Guide/Module Writers Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation_Talk:Hacker%27s_Guide/Module_Writers_Guide&amp;diff=20243"/>
		<updated>2011-11-28T11:28:51Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: Redirected page to Documentation Talk:Hacker&amp;#039;s Guide/How To Write a Module&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Documentation Talk:Hacker&#039;s Guide/How To Write a Module]]&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Mini_Projects&amp;diff=20242</id>
		<title>Mini Projects</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Mini_Projects&amp;diff=20242"/>
		<updated>2011-11-28T11:28:26Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: Redirected page to VLC Dev Projects&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[VLC Dev Projects]]&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Module&amp;diff=20240</id>
		<title>Module</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Module&amp;diff=20240"/>
		<updated>2011-11-28T11:27:45Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: Redirected page to Documentation:Modules&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect[[‎Documentation:Modules]]&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Containers&amp;diff=20238</id>
		<title>Containers</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Containers&amp;diff=20238"/>
		<updated>2011-11-28T11:26:47Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: Redirected page to Category:Container&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect[[Category:Container]]&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Container_format&amp;diff=20237</id>
		<title>Container format</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Container_format&amp;diff=20237"/>
		<updated>2011-11-28T11:26:27Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: Redirected page to Category:Container&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect [[Category:Container]]&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Demuxer&amp;diff=20236</id>
		<title>Demuxer</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Demuxer&amp;diff=20236"/>
		<updated>2011-11-28T11:26:04Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: Redirected page to Category:Container&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect [[Category:Container]]&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Mux&amp;diff=20235</id>
		<title>Mux</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Mux&amp;diff=20235"/>
		<updated>2011-11-28T11:25:43Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: Redirected page to Category:Container&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect [[Category:Container]]&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Muxer&amp;diff=20234</id>
		<title>Muxer</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Muxer&amp;diff=20234"/>
		<updated>2011-11-28T11:25:18Z</updated>

		<summary type="html">&lt;p&gt;Chrisberov: Redirected page to Category:Container&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect [[Category:Container]]&lt;/div&gt;</summary>
		<author><name>Chrisberov</name></author>
	</entry>
</feed>