<?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=Underground78</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=Underground78"/>
	<link rel="alternate" type="text/html" href="https://wiki.videolan.org/Special:Contributions/Underground78/"/>
	<updated>2026-11-04T14:51:50Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Release_changes&amp;diff=15340</id>
		<title>Release changes</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Release_changes&amp;diff=15340"/>
		<updated>2010-01-12T06:30:25Z</updated>

		<summary type="html">&lt;p&gt;Underground78: Vadalism Undo revision 15320&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To see the current changes under development, read [[Next changes]].&lt;br /&gt;
&lt;br /&gt;
{{:Changelog/0.8.6i}}&lt;br /&gt;
&lt;br /&gt;
{{:Changelog/0.8.6h}}&lt;br /&gt;
&lt;br /&gt;
{{:Changelog/0.8.6g}}&lt;br /&gt;
&lt;br /&gt;
{{:Changelog/0.8.6f}}&lt;br /&gt;
&lt;br /&gt;
{{:Changelog/0.8.6e}}&lt;br /&gt;
&lt;br /&gt;
{{:Changelog/0.8.6d}}&lt;br /&gt;
&lt;br /&gt;
{{:Changelog/0.8.6c}}&lt;br /&gt;
&lt;br /&gt;
{{:Changelog/0.8.6b}}&lt;br /&gt;
&lt;br /&gt;
= Changes between 0.8.6 and 0.8.6a =&lt;br /&gt;
&lt;br /&gt;
== CDDA / VCDX plugins ==&lt;br /&gt;
* Security updates ([http://www.videolan.org/sa0701.html VideoLAN-SA-0701], {{CVE|2007-0017}})&lt;br /&gt;
&lt;br /&gt;
== Mac OS X Interface ==&lt;br /&gt;
* Fullscreen controller improvements&lt;br /&gt;
&lt;br /&gt;
= Changes between 0.8.5 and 0.8.6 =&lt;br /&gt;
&lt;br /&gt;
== Playlist ==&lt;br /&gt;
* Shoutcast TV listings support&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
* Support for RTSP authentication&lt;br /&gt;
* Support for adding subtitles on the fly&lt;br /&gt;
* Fixed MPEG-PS duration calculation&lt;br /&gt;
* ATSC support for DVB input&lt;br /&gt;
* Partial reading support for DVR-ms recordings&lt;br /&gt;
* Partial reading support for MXF and GXF fileformat&lt;br /&gt;
* Improved support for Flash Video files&lt;br /&gt;
&lt;br /&gt;
== Decoders ==&lt;br /&gt;
* Native WMV9/VC-1 support&lt;br /&gt;
* WMA Speech support (through binary codecs)&lt;br /&gt;
* VP5/VP6 - Flash Video support (not VP61)&lt;br /&gt;
* The True Audio Lossless codec support&lt;br /&gt;
* Matroska WavPack support&lt;br /&gt;
* Improved H.264 support (interlaced, speed improvements etc but no PAFF)&lt;br /&gt;
* Fixed a problem with MPEG2 field pictures&lt;br /&gt;
* Fixed swapped colors on DVB subtitles&lt;br /&gt;
 &lt;br /&gt;
== Video output ==&lt;br /&gt;
* Additional OpenGL effects (cylinder, torus, sphere, ...)&lt;br /&gt;
* Experimental Direct3D 9 video output (win32). Best served on Vista :)&lt;br /&gt;
* Improved libcaca support&lt;br /&gt;
&lt;br /&gt;
== Interfaces ==&lt;br /&gt;
* All&lt;br /&gt;
** New hotkeys for crop and zoom&lt;br /&gt;
** Support for snapshots from the HTTP interface&lt;br /&gt;
* Windows&lt;br /&gt;
** Systray support in skins&lt;br /&gt;
* OS X&lt;br /&gt;
** Support for Apple Remote control&lt;br /&gt;
** Fullscreen controller panel (artwork by Simon Damkjær Andersen)&lt;br /&gt;
** New playmode buttons (artwork by Simon Damkjær Andersen)&lt;br /&gt;
** right/ctrl-click menu in video outputs&lt;br /&gt;
** Main Menu uses autohide when playing videos in fullscreen mode&lt;br /&gt;
* Linux&lt;br /&gt;
** Notifications using notification-daemon&lt;br /&gt;
&lt;br /&gt;
== Windows port ==&lt;br /&gt;
* Support for Unicode filenames (Windows NT and above)&lt;br /&gt;
*:Windows 9x/ME users: &lt;br /&gt;
*:* Please note that these versions of Windows are not officially supported&lt;br /&gt;
*:* Unicode support for Windows 9x/ME applications is available through the&lt;br /&gt;
*:*: Microsoft Layer for Unicode available from the following location: http://www.microsoft.com.nsatc.net/globaldev/handson/dev/mslu_announce.mspx&lt;br /&gt;
*:*: Download the MSLU package (unicows) and extract the content into the folder C:\Windows\System&lt;br /&gt;
* Fixed IPv6 support on the client side&lt;br /&gt;
* Fixed disable screensaver (Direct3D and DirectX video output)&lt;br /&gt;
&lt;br /&gt;
== Localization ==&lt;br /&gt;
* Add Czech&lt;br /&gt;
* Add Slovak&lt;br /&gt;
* Add Malay&lt;br /&gt;
* Add Slovenian&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;br /&gt;
* Updates to the libvlc API&lt;br /&gt;
* Fixes for the mozilla and activeX plugins&lt;/div&gt;</summary>
		<author><name>Underground78</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VLC_HowTo/Transcode_multiple_videos&amp;diff=15338</id>
		<title>VLC HowTo/Transcode multiple videos</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VLC_HowTo/Transcode_multiple_videos&amp;diff=15338"/>
		<updated>2010-01-12T06:30:04Z</updated>

		<summary type="html">&lt;p&gt;Underground78: Vadalism Undo revision 15319&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Idea ==&lt;br /&gt;
The idea is to use VLC to do some batch work to encode or transcode multiple files one after each other, without having to care about it. &lt;br /&gt;
&lt;br /&gt;
You may want to transcode all your videotheque to another format to play them on an [[IPod]], a [[Play on Zune|Zune]], a PS3 or a [[Play on Xbox|Xbox]].&lt;br /&gt;
&lt;br /&gt;
== Codecs / Muxers ==&lt;br /&gt;
&lt;br /&gt;
You have to choose the correct codecs for the device you want to transcode for.&lt;br /&gt;
&lt;br /&gt;
We choose here [[H.264]] with [[AAC]] in a [[MPEG-2#TS|MPEG-2/TS]] muxer as an example.&lt;br /&gt;
&lt;br /&gt;
== Command Lines ==&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
 for %%a in (*.VOB) do &amp;quot;C:\Program Files\VideoLAN\VLC\vlc&amp;quot; -I dummy -vvv %%a --sout=#transcode{vcodec=h264,vb=1024,acodec=mp4a,ab=192,channels=2,deinterlace}:standard{access=file,mux=ts,dst=%%a.mpg} vlc://quit&lt;br /&gt;
&lt;br /&gt;
For example, to transcode a batch of m4a files (potentially in multiple subdirectories of a single common root directory) to mp3 files (512kb/s encoding with 44100 sampling frequency) you could use the following code in a Windows XP command prompt:&lt;br /&gt;
 @ECHO OFF&lt;br /&gt;
 REM ########################################################################&lt;br /&gt;
 REM # A Windows XP cmd.com script to batch convert m4a files to mp3.       #&lt;br /&gt;
 REM #                                                                      #&lt;br /&gt;
 REM # Copyright (C) 2008 Andrew Boden                                      #&lt;br /&gt;
 REM # (boden@graduate.uwa.edu.au)                                          #&lt;br /&gt;
 REM #                                                                      #&lt;br /&gt;
 REM # This program is free software: you can redistribute it and/or modify #&lt;br /&gt;
 REM # it under the terms of the GNU General Public License as published by #&lt;br /&gt;
 REM # the Free Software Foundation, either version 3 of the License, or    #&lt;br /&gt;
 REM # (at your option) any later version.                                  # &lt;br /&gt;
 REM #                                                                      #&lt;br /&gt;
 REM # This program is distributed in the hope that it will be useful,      #&lt;br /&gt;
 REM # but WITHOUT ANY WARRANTY; without even the implied warranty of       #&lt;br /&gt;
 REM # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        #&lt;br /&gt;
 REM # GNU General Public License for more details.                         #&lt;br /&gt;
 REM #                                                                      #&lt;br /&gt;
 REM # You should have received a copy of the GNU General Public License    #&lt;br /&gt;
 REM # along with this program.  If not, see &amp;lt;http://www.gnu.org/licenses/&amp;gt;.#&lt;br /&gt;
 REM #                                                                      #&lt;br /&gt;
 REM # Version 1.0 (June 27th 2008)                                         #&lt;br /&gt;
 REM # Uses VideoLAN VLC 0.8.6h (www.videolan.org)                          #&lt;br /&gt;
 REM # Gracefully handles commas and apostrophes in file names.             #&lt;br /&gt;
 REM # Not aware of any other characters needing graceful handling.         #&lt;br /&gt;
 REM # 512kbps encoding with 44100 sampling.                                #&lt;br /&gt;
 REM ########################################################################&lt;br /&gt;
 &lt;br /&gt;
 FOR /R %%G IN (*.m4a) DO (CALL :SUB_VLC &amp;quot;%%G&amp;quot;)&lt;br /&gt;
 FOR /R %%G IN (*.m4a.mp*) DO (CALL :SUB_RENAME &amp;quot;%%G&amp;quot;)&lt;br /&gt;
 GOTO :eof&lt;br /&gt;
 &lt;br /&gt;
 :SUB_VLC&lt;br /&gt;
  SET _firstbit=%1&lt;br /&gt;
  SET _qt=&amp;quot;&lt;br /&gt;
  CALL SET _newnm=%%_firstbit:%_qt%=%%&lt;br /&gt;
  SET _commanm=%_newnm:,=_COMMA_%&lt;br /&gt;
  REM echo %_commanm%&lt;br /&gt;
  CALL &amp;quot;C:\Program Files\VideoLAN\VLC\vlc&amp;quot; -I dummy -vvv %1 --sout=#transcode{acodec=&amp;quot;mpga&amp;quot;,ab=&amp;quot;512&amp;quot;,&amp;quot;channels=2&amp;quot;,samplerate=&amp;quot;44100&amp;quot;}:standard{access=&amp;quot;file&amp;quot;,mux=&amp;quot;mpeg1&amp;quot;,dst=&amp;quot;%_commanm%.mp3&amp;quot;} vlc:quit&lt;br /&gt;
 GOTO :eof&lt;br /&gt;
 &lt;br /&gt;
 :SUB_RENAME&lt;br /&gt;
  SET _origfnm=%1&lt;br /&gt;
  SET _endbit=%_origfnm:*.m4a=%&lt;br /&gt;
  CALL SET _newfilenm=%%_origfnm:.m4a%_endbit%=.mp3%%&lt;br /&gt;
  SET _newfilenm=%_newfilenm:_COMMA_=,%&lt;br /&gt;
  COPY %1 %_newfilenm%&lt;br /&gt;
  DEL %1&lt;br /&gt;
 GOTO :eof&lt;br /&gt;
 &lt;br /&gt;
 :eof&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The same as above, for vlc &amp;gt;= 0.9:&lt;br /&gt;
 @ECHO OFF&lt;br /&gt;
 FOR /R %%G IN (*.m4a) DO (CALL :SUB_VLC &amp;quot;%%G&amp;quot;)&lt;br /&gt;
 FOR /R %%G IN (*.m4a.mp*) DO (CALL :SUB_RENAME &amp;quot;%%G&amp;quot;)&lt;br /&gt;
 GOTO :eof&lt;br /&gt;
 &lt;br /&gt;
 :SUB_VLC&lt;br /&gt;
  SET _firstbit=%1&lt;br /&gt;
  SET _qt=&amp;quot;&lt;br /&gt;
  CALL SET _newnm=%%_firstbit:%_qt%=%%&lt;br /&gt;
  SET _commanm=%_newnm:,=_COMMA_%&lt;br /&gt;
  REM echo %_commanm%&lt;br /&gt;
  CALL &amp;quot;C:\Program Files\VideoLAN\VLC\vlc&amp;quot; -I dummy -vvv %1 --sout=#transcode{acodec=&amp;quot;mp3&amp;quot;,ab=&amp;quot;512&amp;quot;,&amp;quot;channels=2&amp;quot;}:standard{access=&amp;quot;file&amp;quot;,mux=&amp;quot;raw&amp;quot;,dst=&amp;quot;%_commanm%.mp3&amp;quot;} vlc://quit&lt;br /&gt;
 GOTO :eof&lt;br /&gt;
 &lt;br /&gt;
 :SUB_RENAME&lt;br /&gt;
  SET _origfnm=%1&lt;br /&gt;
  SET _endbit=%_origfnm:*.m4a=%&lt;br /&gt;
  CALL SET _newfilenm=%%_origfnm:.m4a%_endbit%=.mp3%%&lt;br /&gt;
  SET _newfilenm=%_newfilenm:_COMMA_=,%&lt;br /&gt;
  COPY %1 %_newfilenm%&lt;br /&gt;
  DEL %1&lt;br /&gt;
 GOTO :eof&lt;br /&gt;
 &lt;br /&gt;
 :eof&lt;br /&gt;
 &lt;br /&gt;
=== Unix / Linux ===&lt;br /&gt;
&lt;br /&gt;
 vcodec=&amp;quot;h264&amp;quot;&lt;br /&gt;
 acodec=&amp;quot;mp4a&amp;quot;&lt;br /&gt;
 bitrate=&amp;quot;1024&amp;quot;&lt;br /&gt;
 arate=&amp;quot;192&amp;quot;&lt;br /&gt;
 ext=&amp;quot;mpg&amp;quot;&lt;br /&gt;
 mux=&amp;quot;ts&amp;quot;&lt;br /&gt;
 vlc=&amp;quot;/usr/bin/vlc&amp;quot;&lt;br /&gt;
 fmt=&amp;quot;VOB&amp;quot;&lt;br /&gt;
 dst=&amp;quot;/home/user/&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 for a in *$fmt; do&lt;br /&gt;
 $vlc -I dummy -vvv &amp;quot;./$a&amp;quot; --sout &amp;quot;#transcode{vcodec=$vcodec,vb=$bitrate,acodec=$acodec,ab=$arate,channels=6}:standard{mux=$mux,dst=\&amp;quot;$dst$a.$ext\&amp;quot;,access=file}&amp;quot; vlc://quit&lt;br /&gt;
 done&lt;/div&gt;</summary>
		<author><name>Underground78</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=LibVLC_Tutorial_086c&amp;diff=15337</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=15337"/>
		<updated>2010-01-12T06:29:22Z</updated>

		<summary type="html">&lt;p&gt;Underground78: Vadalism Undo revision 15318&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 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 untar the sources distribution.  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&amp;quot; in a relatively standard installation.  This is so Windows can find the 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&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>Underground78</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=TCP&amp;diff=15336</id>
		<title>TCP</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=TCP&amp;diff=15336"/>
		<updated>2010-01-12T06:29:01Z</updated>

		<summary type="html">&lt;p&gt;Underground78: Vadalism Undo revision 15315&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TCP stands for Transmission Control Protocol. It is a connection-oriented, reliable delivery byte-stream transport layer communication protocol, currently documented in IETF RFC 793. During the data transfer phase, a number of key mechanisms determine TCP&#039;s reliability and robustness. These include using sequence numbers for ordering received TCP segments and detecting duplicate data, checksums for segment error detection, and acknowledgements and timers for detecting and adjusting to loss or delay.&lt;br /&gt;
&lt;br /&gt;
TCP is not appropriate for many applications as for example, real-time applications. They often don&#039;t need, and will suffer from TCP&#039;s reliable delivery mechanisms. In those types of applications it is often better to deal with some loss, errors or congestion than to try to adjust for them. Example applications that do not typically use TCP include multimedia streaming, real-time multiplayer games and voice over IP (VoIP). In many cases, the User Datagram Protocol (UDP) may be used in place of TCP when just application multiplexing services are required.&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
[http://blog.eukhost.com/2006/06/08/tcp TCP general Information]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://blog.webhosting.uk.com/2006/11/27/tcpip-application-protocols/ TCP/IP Application Protocols]&lt;br /&gt;
&lt;br /&gt;
[[Category:Protocols]]&lt;/div&gt;</summary>
		<author><name>Underground78</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=MPEG&amp;diff=15335</id>
		<title>MPEG</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=MPEG&amp;diff=15335"/>
		<updated>2010-01-12T06:28:48Z</updated>

		<summary type="html">&lt;p&gt;Underground78: Vadalism Undo revision 15314&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{wikipedia|MPEG}}&lt;br /&gt;
MPEG refers to a set of standards created by the [http://www.chiariglione.org/mpeg/ Moving Picture Experts Group]. MPEG refers to several video, audio and [[container]] formats; see the full list at the [[Codec]] page.&lt;br /&gt;
&lt;br /&gt;
An MPEG file is a file using an MPEG container (these are called &#039;&#039;mpeg1&#039;&#039;, &#039;&#039;ts&#039;&#039;, &#039;&#039;ps&#039;&#039;, and &#039;&#039;mp4&#039;&#039; for MPEG-4). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creating an MPEG File with VLC ==&lt;br /&gt;
To make an MPEG file, you need to:&lt;br /&gt;
* Pick a container (see [[#Container_formats|below]])&lt;br /&gt;
* Transcode the audio and video to formats able to be held in the container: in general this is the MPEG video and audio formats only. Check the [http://www.videolan.org/streaming/features.html compatibility information] in the official documentation, but be warned that while vlc allows any codec and mux, most other players support only a few combinations!&lt;br /&gt;
&lt;br /&gt;
== MPEG-1 and 2 ==&lt;br /&gt;
{{wikipedia|MPEG-1}}&lt;br /&gt;
{{wikipedia|MPEG-2}}&lt;br /&gt;
&lt;br /&gt;
* Muxer: &#039;&#039;&#039;ts&#039;&#039;&#039;, &#039;&#039;&#039;ps&#039;&#039;&#039;, &#039;&#039;&#039;mpeg1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
MPEG-1 is a video and audio compression format, used in [[Video CD]]s. It is compatible with a large number of software and hardware devices.&lt;br /&gt;
&lt;br /&gt;
Here is an example of how to transcode an AVI into a portable MPEG-1 video from the [[command prompt]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
vlc &#039;&#039;file.avi&#039;&#039; --sout=&#039;#transcode{vcodec=mp1v, acodec=mpga}:std{access=file, mux=mpeg1,url=&#039;&#039;file.mpg&#039;&#039;}&#039;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MPEG-2 is used in digital television and [[DVB]]. It is also used as the format for [[DVD]]s.  The biggest advantage of this format over MPEG-1 is in its support for interlaced pictures; MPEG-2 can cleanly compress interlaced video, while MPEG-1 internally only works on progressive-scan video, so interlacing must be faked.&lt;br /&gt;
&lt;br /&gt;
Here is an example of how to transcode an AVI into an MPEG-2 video from the [[command prompt]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
vlc &#039;&#039;file.avi&#039;&#039; --sout=&#039;#transcode{vcodec=mp2v, acodec=mpga}:std{access=file, mux=ps,url=&#039;&#039;file.mpg&#039;&#039;}&#039;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
{{codec video|id=mp1v}}&lt;br /&gt;
{{codec video|id=mp2v|altid=mpgv}}&lt;br /&gt;
Codecs for MPEG-1 and MPEG-2 Video&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
{{codec audio|id=mpga|info=MP2 audio.}}&lt;br /&gt;
{{codec audio|id=mp3|info=[[MP3]] audio.}}&lt;br /&gt;
Codecs for MPEG Layer 1/2 audio and MPEG Layer 3 audio.&lt;br /&gt;
&lt;br /&gt;
=== Container formats ===&lt;br /&gt;
MPEG-2 specified 2 [[container]] formats, ts and ps. Containers hold video and audio information in them, and package them up so it can be sent over a network or stored on disk.&lt;br /&gt;
* &#039;&#039;&#039;ts&#039;&#039;&#039; (Transport Stream) should be used to store or send data where data loss will probably occur, such as over a network.&lt;br /&gt;
* &#039;&#039;&#039;ps&#039;&#039;&#039; (Program Stream) should be used to store or send data where data loss is not likely, such as on a DVD.&lt;br /&gt;
&lt;br /&gt;
Both ps and ts can transport MPEG-4 Video, but only ts can send MPEG-4 Audio. In addition, MPEG-4 specifies it&#039;s own container format, &#039;&#039;&#039;mp4&#039;&#039;&#039; (see [[MPEG-4]])&lt;br /&gt;
&lt;br /&gt;
==== TS ====&lt;br /&gt;
{{mux|id=ts|encoder=y}}&lt;br /&gt;
&lt;br /&gt;
===== Module options =====&lt;br /&gt;
* --ts-extra-pmt ([[string]])&lt;br /&gt;
*: Extra PMT. Allows a user to specify an extra pmt (pmt_pid=pid:stream_type[,...]).&lt;br /&gt;
* --ts-es-id-pid&amp;quot; ([[boolean]])&lt;br /&gt;
Set the internal ID of each elementary stream handled by VLC to the same value as the PID in the TS stream, instead of 1, 2, 3, etc. Useful to do &#039;#duplicate{..., select=&amp;quot;es=&amp;lt;pid&amp;gt;&amp;quot;}&#039;.&amp;quot;). Default is true.&lt;br /&gt;
* --ts-out ([[string]])&lt;br /&gt;
*: Fast [[UDP]] streaming. Sends TS to specific ip:port by udp (you must know what you are doing). Default off.&lt;br /&gt;
* --ts-out-mtu ([[integer]])&lt;br /&gt;
*: MTU for out mode. Default 1500.&lt;br /&gt;
* --ts-csa-ck ([[string]])&lt;br /&gt;
*: Control word for the CSA encryption algorithm.&lt;br /&gt;
* --ts-csa-pkt ([[integer]])&lt;br /&gt;
*: Default: 188&lt;br /&gt;
* --ts-silent ([[boolean]])&lt;br /&gt;
*: Supresses complaints for encrypted PES. Default false.&lt;br /&gt;
* --ts-dump-file (file name)&lt;br /&gt;
*: A filename do dump ts into.&lt;br /&gt;
* --ts-dump-append ([[boolean]])&lt;br /&gt;
*: Append data to the dump file. Default is false, which overwrites the file.&lt;br /&gt;
* --ts-dump-size ([[integer]])&lt;br /&gt;
*: The size of the buffer for reading/writing an integer number of packets. Default: 16384 bytes.&lt;br /&gt;
&lt;br /&gt;
===== Accepted video codecs =====&lt;br /&gt;
* [[mpgv]]: MPEG-1 or MPEG-2 video&lt;br /&gt;
* [[mp4v]]: MPEG 4 video&lt;br /&gt;
* [[h264]]&lt;br /&gt;
* [[jpeg]]&lt;br /&gt;
* [[ms]]: MS codecs (nonstandard?)&lt;br /&gt;
&lt;br /&gt;
===== Accepted audio codecs =====&lt;br /&gt;
* [[MP1]], [[MP2]], [[MP3]]&lt;br /&gt;
* [[mp4a]]: MPEG-4 Audio (MP4)&lt;br /&gt;
* [[a52]]&lt;br /&gt;
* [[lpcm]]&lt;br /&gt;
* [[dts]]&lt;br /&gt;
&lt;br /&gt;
===== Accepted subtitle codecs =====&lt;br /&gt;
* [[spu]]&lt;br /&gt;
* [[subt]]&lt;br /&gt;
* [[telx]]&lt;br /&gt;
&lt;br /&gt;
==== PS ====&lt;br /&gt;
{{mux|id=ps|encoder=y}}&lt;br /&gt;
&lt;br /&gt;
===== Module options =====&lt;br /&gt;
* --ps-trust-timestamps ([[boolean]])&lt;br /&gt;
*: Turns on or off trusting the timestamps in the file. Set as false to work it out from the [[bitrate]]s. Default true.&lt;br /&gt;
&lt;br /&gt;
===== Accepted video codecs =====&lt;br /&gt;
* [[mpgv]]: MPEG-1 or MPEG2&lt;br /&gt;
* [[mp4v]]: MPEG-4&lt;br /&gt;
&lt;br /&gt;
===== Accepted audio codecs =====&lt;br /&gt;
* [[mpga]]: MP1, MP2 or MP3&lt;br /&gt;
* [[mp4a]]: MPEG-4 (MP4)&lt;br /&gt;
* [[dts]]&lt;br /&gt;
* [[a52]]&lt;br /&gt;
* [[lpcm]]&lt;br /&gt;
===== Accepted subtitle codecs =====&lt;br /&gt;
* [[spu]]&lt;br /&gt;
* [[ogt]]&lt;br /&gt;
* [[cvd]]&lt;br /&gt;
&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== MPEG-3 ==&lt;br /&gt;
{{wikipedia|MPEG-3}}&lt;br /&gt;
A largely unused audio and video compression format.&lt;br /&gt;
* Note that the amazingly common [[MP3]] audio files are actually &#039;&#039;&#039;MPEG-1 Layer 3&#039;&#039;&#039; audio, not MPEG-3.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== MPEG-4 ==&lt;br /&gt;
&#039;&#039;See &#039;&#039;&#039;[[MPEG-4]]&#039;&#039;&#039;.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Source code ==&lt;br /&gt;
{{file|modules/mux/mp4.c|output muxer}}&lt;br /&gt;
{{file|modules/demux/ps.c|input demuxer}}&lt;br /&gt;
{{file|modules/demux/ts.c|input demuxer}}&lt;br /&gt;
{{file|modules/demux/ps.h|input demuxer}}&lt;/div&gt;</summary>
		<author><name>Underground78</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VideoLAN_in_the_news&amp;diff=15334</id>
		<title>VideoLAN in the news</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VideoLAN_in_the_news&amp;diff=15334"/>
		<updated>2010-01-12T06:28:23Z</updated>

		<summary type="html">&lt;p&gt;Underground78: Vadalism Undo revision 15312&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;infobox&amp;quot;&lt;br /&gt;
| [http://news.google.co.uk/news?as_q=&amp;amp;svnum=10&amp;amp;as_scoring=r&amp;amp;hl=en&amp;amp;tab=wn&amp;amp;ie=UTF-8&amp;amp;btnG=Google+Search&amp;amp;as_epq=&amp;amp;as_oq=VLC+VideoLAN&amp;amp;as_eq=&amp;amp;as_nsrc=&amp;amp;as_nloc=&amp;amp;as_occt=any&amp;amp;as_drrb=q&amp;amp;as_qdr=&amp;amp;as_mind=9&amp;amp;as_minm=9&amp;amp;as_maxd=9&amp;amp;as_maxm=10 Search Google News] for the latest on VLC ([http://news.google.co.uk/news?svnum=10&amp;amp;as_scoring=r&amp;amp;hl=en&amp;amp;tab=wn&amp;amp;ie=UTF-8&amp;amp;as_drrb=q&amp;amp;as_qdr=&amp;amp;as_mind=9&amp;amp;as_minm=9&amp;amp;as_maxd=9&amp;amp;as_maxm=10&amp;amp;q=VLC+OR+VideoLAN&amp;amp;output=rss RSS feed])&lt;br /&gt;
|}&lt;br /&gt;
List of articles related to VideoLAN / VLC media player. Please add those which are missing.&lt;br /&gt;
&lt;br /&gt;
== 2009 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|July 22||[http://www.nytimes.com/external/gigaom/2009/07/22/22gigaom-4-free-open-source-tools-for-working-with-video-a-34611.html nytimes/gigaom: 4 Free Open-Source Tools for Working With Video and Audio]&lt;br /&gt;
|-&lt;br /&gt;
|July 7||[http://news.cnet.com/8301-13505_3-10280845-16.html cnet: VideoLAN releases VLC 1.0.0: Your media will never be the same]&lt;br /&gt;
|-&lt;br /&gt;
|June 4||[http://www.pcwelt.de/start/software_os/audio_video_foto/praxis/191079/alle_video_formate_mit_vlc_player_abspielen/index.html PCWELT Video und Musik: Alle Video-Formate mit VLC Player abspielen]||(german)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 2007 ==&lt;br /&gt;
&lt;br /&gt;
[http://articles.techrepublic.com.com/2415-7343_11-175865.html SolutionBase: Overcome multimedia hurdles in Linux]&lt;br /&gt;
&lt;br /&gt;
== 2006 ==&lt;br /&gt;
&lt;br /&gt;
[http://software.newsforge.com/article.pl?sid=06/04/19/1711245&amp;amp;from=rss &amp;quot;NewsForge, Transcoding and streaming DVD films with VLC media player&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
[http://www.lesechos.fr/journal20061004/lec2_innovation/4475889.htm Les Echos (France), &amp;quot;Le lecteur multimédia français VLC téléchargé 18 millions de fois&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
[http://www.m2x.nl/mambo/index.php?option=content&amp;amp;task=view&amp;amp;id=124&amp;amp;Itemid=27 M2X Article and NLUUG talk (Netherlands) &amp;quot;Streaming networks with VLC&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
== 2005 ==&lt;br /&gt;
[http://www.01net.com/article/284013.html 01net.com (France)]&lt;br /&gt;
&lt;br /&gt;
[http://blogs.zdnet.fr/index.php/2005/06/28/vlc-un-lecteur-multimedia-tres-courtise/ ZDNet (France), &amp;quot;VLC: un lecteur multimedia très courtisé&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
[http://solutions.journaldunet.com/0506/050613_videolan.shtml solutions.journaldunet.com (France)]&lt;br /&gt;
&lt;br /&gt;
[http://www.theregister.co.uk/2005/09/02/dvd_jon_mediaplayer/ The Register (UK), &amp;quot;DVD Jon hacks Media Player file encryption&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
[http://www.source21.nl/2005/12/27/linuxworld-videolan-en-vlc Source21.nl (Netherlands), &amp;quot;LinuxWorld: VideoLAN en VLC (Interview with Jean-Paul Saman)&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
[http://www.macplus.net/magplus/chronique-9311-interview-de-christophe-massiot MacPlus (France), &amp;quot;Interview de Christophe Massiot&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
[http://home.planet.nl/~jpsaman/linux/downloads/vlc_open_source_multimedia.sxi LinuxWorld (Netherlands), &amp;quot;Open Source multimedia by Jean-Paul Saman&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
== 2004 ==&lt;br /&gt;
&lt;br /&gt;
[http://builder.com.com/5100-6375-5136135.html Builder.com (USA?), &amp;quot;Open Source Awards 2004: VideoLAN&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
[http://www.streamingmedia.com/article.asp?id=9000&amp;amp;page=1&amp;amp;c= streamingmedia.com (USA?), &amp;quot;VideoLAN&#039;s Piece de Resistance&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
[http://home.planet.nl/~jpsaman/linux/downloads/videolan-fosdem-2004.pdf FOSDEM (Belgium) &amp;quot;VideoLAN VLC presentation at FOSDEM by Jean-Paul Saman&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
== 2002 ==&lt;br /&gt;
&lt;br /&gt;
[http://download.videolan.org/images/macworld0-doublepage.jpg Mac World, &amp;quot;Les petits princes du MPEG-2&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
[http://www.mac4ever.com/articles/humeur/336/interview_de_christophe_massiot_de_vlc/ Mac4ever (France), &amp;quot;Interview de Christophe Massiot de VLC&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
[[Category:About VideoLAN]]&lt;/div&gt;</summary>
		<author><name>Underground78</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=DBus-spec&amp;diff=15333</id>
		<title>DBus-spec</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=DBus-spec&amp;diff=15333"/>
		<updated>2010-01-12T06:28:00Z</updated>

		<summary type="html">&lt;p&gt;Underground78: Vadalism Undo revision 15311&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Specification for a Common, Desktop neutral, Media Player D-Bus interface&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please note this document is not specific to VLC and is a work in progress.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; font-weight: bold&amp;quot;&amp;gt;OBSOLETE, KEPT FOR HISTORICAL REASONS&lt;br /&gt;
&lt;br /&gt;
MPRIS discussion is at http://wiki.xmms2.xmms.se/index.php/Media_Player_Interfaces&lt;br /&gt;
&lt;br /&gt;
MPRIS specification is at http://wiki.xmms2.xmms.se/index.php/MPRIS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
What follows has been largely stolen from http://bmpx.beep-media-player.org/site/MPRIS_Interfacing_Specification&lt;br /&gt;
&lt;br /&gt;
This is an attempt to create a specification for media players to use, for &#039;&#039;&#039;YOUR&#039;&#039;&#039; applications to be able to interact with &#039;&#039;&#039;ANY&#039;&#039;&#039; Media Player &#039;&#039;&#039;YOU&#039;&#039;&#039; want to use on &#039;&#039;&#039;ANY&#039;&#039;&#039; desktop &#039;&#039;&#039;YOU&#039;&#039;&#039; want to use.&lt;br /&gt;
&lt;br /&gt;
This is in the spirit of http://www.freedesktop.org and uses code and ideas from this project, most notably D-Bus : http://dbus.freedesktop.org and uses ideas from http://www.musicbrainz.org&lt;br /&gt;
&lt;br /&gt;
= Other players =&lt;br /&gt;
&lt;br /&gt;
How other &amp;quot;Media Players&amp;quot; interact with D-Bus&lt;br /&gt;
&lt;br /&gt;
== bmpx ==&lt;br /&gt;
&lt;br /&gt;
http://bmpx.beep-media-player.org/site/MPRIS_Interfacing_Specification&lt;br /&gt;
&lt;br /&gt;
== banshee ==&lt;br /&gt;
&lt;br /&gt;
http://cvs.gnome.org/viewcvs/*checkout*/banshee/src/Banshee.Base/DBusPlayer.cs&lt;br /&gt;
&lt;br /&gt;
== rhythmbox ==&lt;br /&gt;
&lt;br /&gt;
http://cvs.gnome.org/viewcvs/rhythmbox/remote/dbus/rb-client.c?view=markup&lt;br /&gt;
&lt;br /&gt;
== muine ==&lt;br /&gt;
&lt;br /&gt;
http://cvs.gnome.org/viewcvs/muine/DBusLib/Player.cs?view=markup&lt;br /&gt;
&lt;br /&gt;
== amarok ==&lt;br /&gt;
&lt;br /&gt;
http://amarok.kde.org/wiki/DCOP_Functions&lt;br /&gt;
(D-Bus will replace DCOP in KDE4, Amarok 2.0)&lt;br /&gt;
&lt;br /&gt;
== xmms 2 ==&lt;br /&gt;
&lt;br /&gt;
http://wiki.xmms2.xmms.se/index.php/MPRIS&lt;br /&gt;
&lt;br /&gt;
= Definitions =&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Media Player&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
An application, either with GUI or GUI-less (or which allows for both modes of operation) which is capable of playing back audio/video streams. The means by which it does accomplish that (e.g. which audio backend to use, and which output method) is out of the scope of this document.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Media Player&amp;quot; &#039;&#039;&#039;must&#039;&#039;&#039;:&lt;br /&gt;
* Be able to play back at least local storage file streams.&lt;br /&gt;
* Be able to play back at least one stream at a time.&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Client&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
The Client is an unspecified application that will interact with the &amp;quot;Media Player&amp;quot; using D-Bus protocol.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* A softphone, that pauses, or step the volume down, when a call is being received.&lt;br /&gt;
* An applet that nicely integrates in your desktop environment, to control your &amp;quot;Media Player&amp;quot;.&lt;br /&gt;
* An instant messaging client which informs your buddies of what you&#039;re listening to.&lt;br /&gt;
* A monitor that stores in a database what you are listening to, for statistics purpose.&lt;br /&gt;
* A video editing software that calls an external &amp;quot;Media Player&amp;quot; to preview your work.&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Tracklist&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
A list of media files which resides within the &amp;quot;Media Player&amp;quot;, and whose implementation is opaque to the remote interface.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Tracklist&amp;quot; &#039;&#039;&#039;must&#039;&#039;&#039;:&lt;br /&gt;
* Hold an ordered list of locations of the media files as URIs (e.g. file:// or &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;). The implementation of this can be opaque, which means, it does not neccesarily need to store URIs, but upon remote request, it must be able to return an URI for a given media file.&lt;br /&gt;
* Keep the list in an ordered fashion. The order can be changed at any time trough e.g. sorting algorithms, in which case the &amp;quot;Media Player&amp;quot; must send information about the reordering trough it&#039;s remote interface&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Tracklist&amp;quot; &#039;&#039;&#039;can&#039;&#039;&#039;, but does not &#039;&#039;&#039;need&#039;&#039;&#039; to:&lt;br /&gt;
* Hold &amp;quot;Metadata&amp;quot; about media files&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Metadata&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Metadata&amp;quot; is data that the files carry within themselves as a means of self-identification (commonly known as &amp;quot;tags&amp;quot;), or data that has been retrieved about the files trough other means, e.g. an internet service that provides additional data about particular media files.&lt;br /&gt;
&amp;quot;Metadata&amp;quot; is an array of dict entries, like (&amp;quot;length&amp;quot;, 253), (&amp;quot;name&amp;quot;, &amp;quot;Bolero&amp;quot;), (&amp;quot;video-codec&amp;quot;, &amp;quot;DIVX&amp;quot;). The dict entry is in the form (string, variant) eg: {sv}.&lt;br /&gt;
&lt;br /&gt;
Furthermore, &amp;quot;Metadata&amp;quot; can be split into two categories:&lt;br /&gt;
&lt;br /&gt;
1) Technical metadata:&lt;br /&gt;
* &amp;quot;URI&amp;quot;:&amp;quot;s&amp;quot;&lt;br /&gt;
* &amp;quot;length&amp;quot;:&amp;quot;i&amp;quot; (length in seconds)&lt;br /&gt;
* &amp;quot;video-codec&amp;quot;:&amp;quot;s&amp;quot; (video codec as a fourcc)&lt;br /&gt;
* &amp;quot;audio-codec&amp;quot;:&amp;quot;s&amp;quot; (audio codec as a fourcc)&lt;br /&gt;
* &amp;quot;video-bitrate&amp;quot;:&amp;quot;i&amp;quot; video bitrate&lt;br /&gt;
* &amp;quot;audio-bitrate&amp;quot;:&amp;quot;i&amp;quot; audio bitrate&lt;br /&gt;
* &amp;quot;audio-samplerate&amp;quot;:&amp;quot;i&amp;quot; (audio samplerate)&lt;br /&gt;
&lt;br /&gt;
2) Informational metadata&lt;br /&gt;
* &amp;quot;name&amp;quot;:&amp;quot;s&amp;quot;&lt;br /&gt;
* &amp;quot;artist&amp;quot;:&amp;quot;s&amp;quot;&lt;br /&gt;
* &amp;quot;album&amp;quot;:&amp;quot;s&amp;quot;&lt;br /&gt;
* &amp;quot;unique-id&amp;quot;:&amp;quot;s&amp;quot; : Musicbrainz Track Identifier as specified on http://musicbrainz.org/docs/specs/metadata_tags.html&lt;br /&gt;
* &amp;quot;genre&amp;quot;:&amp;quot;s&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This list is informative, and can be extended up to your needs, for example: &amp;quot;age of the captain&amp;quot;:&amp;quot;i&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Only Required fields are: &amp;quot;URI&amp;quot; and &amp;quot;length&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= D-Bus =&lt;br /&gt;
&lt;br /&gt;
== The Service ==&lt;br /&gt;
&lt;br /&gt;
org.freedesktop.MediaPlayer&lt;br /&gt;
&lt;br /&gt;
All &amp;quot;Media Players&amp;quot; &#039;&#039;&#039;must&#039;&#039;&#039; request this name and do not let other &amp;quot;Media Players&amp;quot; &#039;steal&#039; this name.&lt;br /&gt;
Using libdbus, that would be:&lt;br /&gt;
&lt;br /&gt;
 DBusConnection *dbus_connection;&lt;br /&gt;
 DBusError dbus_error;&lt;br /&gt;
 dbus_bus_request_name( dbus_connection, &amp;quot;org.freedesktop.MediaPlayer&amp;quot;, 0, &amp;amp;dbus_error );&lt;br /&gt;
&lt;br /&gt;
To be able to request the name, and so, be able to communicate via D-Bus, no &amp;quot;Media Player&amp;quot; must be running. The &amp;quot;Media Player&amp;quot; may call the Quit method, and wait till the name is unregistered, to ensure this is the case.&lt;br /&gt;
&lt;br /&gt;
: I think this is a bad idea, it&#039;s not the place for a interop Spec to force single instance behaviour without a good reason (i run amarok all the time and use vlc to play videos or streams...). Why not suggest that mediaplayers register with the well known service name (&amp;quot;org.freedesktop.MediaPlayer&amp;quot;) with the options QueueService and suggest the media player should register an application specific service in addition?&lt;br /&gt;
&lt;br /&gt;
: if done that way we gain the feature to query the dbus daemon for all clients queued for that dbus name, so enumerating all current musicplayers that support the Spec is not problem. Contacting the players is not problem to because every client on dbus has a unique name anyway. DBus signal do AFAIK carry the dbus service name of the sending client, so there is no trouble knowing which player send a signal. [[User:textshell|textshell]]&lt;br /&gt;
&lt;br /&gt;
== The Object Hierarchy ==&lt;br /&gt;
&lt;br /&gt;
* / : Media Player identification&lt;br /&gt;
&lt;br /&gt;
* /Player : Playback control&lt;br /&gt;
&lt;br /&gt;
* /TrackList : TrackList management&lt;br /&gt;
&lt;br /&gt;
== The interface ==&lt;br /&gt;
&lt;br /&gt;
All methods must be accessed through the interface org.freedesktop.MediaPlayer&lt;br /&gt;
&lt;br /&gt;
i.e. calling Quit with qdbus would be:&lt;br /&gt;
 $ qdbus org.freedesktop.MediaPlayer /Player org.freedesktop.MediaPlayer.Quit&lt;br /&gt;
&lt;br /&gt;
== The Methods ==&lt;br /&gt;
&lt;br /&gt;
What&#039;s missing: we could use musicbrainz unique identifier to identify current element in the playlist&lt;br /&gt;
From fd.o : GetTrackList (using xspf?), ClearTrackList&lt;br /&gt;
&lt;br /&gt;
* /&lt;br /&gt;
&lt;br /&gt;
Identity : Identify the &amp;quot;Media Player&amp;quot; as in &amp;quot;VLC 0.9.0&amp;quot;, &amp;quot;bmpx 0.34.9&amp;quot;, &amp;quot;Totem 2.16.2&amp;quot; ...&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;method name=&amp;quot;Identity&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;arg type=&amp;quot;s&amp;quot; direction=&amp;quot;out&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* /TrackList&lt;br /&gt;
&lt;br /&gt;
GetMetadata : Gives all meta data available for element at given position in the &amp;quot;TrackList&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;method name=&amp;quot;GetMetadata&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;arg type=&amp;quot;i&amp;quot; direction=&amp;quot;in&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;arg type=&amp;quot;a{sv}&amp;quot; direction=&amp;quot;out&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GetCurrentTrack : Position of Current URI in the &amp;quot;TrackList&amp;quot;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;method name=&amp;quot;GetCurrentTrack&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;arg type=&amp;quot;i&amp;quot; direction=&amp;quot;out&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GetLength : Number of elements in the &amp;quot;TrackList&amp;quot;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;method name=&amp;quot;GetLength&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;arg type=&amp;quot;i&amp;quot; direction=&amp;quot;out&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AddTrack : Appends an URI in the &amp;quot;TrackList&amp;quot;, play it immediately if the 2nd argument is TRUE&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;method name=&amp;quot;AddTrack&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;arg type=&amp;quot;s&amp;quot; /&amp;gt;&lt;br /&gt;
     &amp;lt;arg type=&amp;quot;b&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
DelTrack : Removes an URI from the &amp;quot;TrackList&amp;quot;, given its position&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;method name=&amp;quot;DelTrack&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;arg type=&amp;quot;i&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* /Player&lt;br /&gt;
&lt;br /&gt;
Next : Goes to the next element (what if we&#039;re at the end?)&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;method name=&amp;quot;Next&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prev : Goes to the previous element (what if we&#039;re at the beginning?)&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;method name=&amp;quot;Prev&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pause : If playing : pause. If paused : unpause. If stopped : start playing&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;method name=&amp;quot;Pause&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Stop : Stop playing.&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;method name=&amp;quot;Stop&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Play : If playing : rewind to the beginning of current track, else : start playing.&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;method name=&amp;quot;Play&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quit : Makes the &amp;quot;Media Player&amp;quot; exit.&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;method name=&amp;quot;Quit&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GetStatus : Return the status of &amp;quot;Media Player&amp;quot;: 0 = Playing, 1 = Paused, 2 = Stopped.&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;method name=&amp;quot;GetStatus&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;arg type=&amp;quot;i&amp;quot; direction=&amp;quot;out&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
VolumeSet : Sets the volume (argument must be in [0;100])&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;method name=&amp;quot;VolumeSet&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;arg type=&amp;quot;i&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GetVolume : Returns the current volume (must be in [0;100])&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;method name=&amp;quot;VolumeGet&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;arg type=&amp;quot;i&amp;quot; direction=&amp;quot;out&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PositionSet : Sets the playing position (argument must be in [0;100])&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;method name=&amp;quot;PositionSet&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;arg type=&amp;quot;i&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PositionGet : Returns the playing position (must be in [0;100])&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;method name=&amp;quot;PositionGet&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;arg type=&amp;quot;i&amp;quot; direction=&amp;quot;out&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The signals ==&lt;br /&gt;
&lt;br /&gt;
TrackChange : Signal is emitted when the &amp;quot;Media Player&amp;quot; plays another &amp;quot;Track&amp;quot;. Argument of the signal is the metadata attached to the new &amp;quot;Track&amp;quot;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;signal name=&amp;quot;TrackChange&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;arg type=&amp;quot;a{sv}&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/signal&amp;gt;&lt;br /&gt;
&lt;br /&gt;
StatusChange : Signal is emitted when the status of the &amp;quot;Media Player&amp;quot; change. The argument has the same meaning than the value returned by GetStatus.&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;signal name=&amp;quot;StatusChange&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;arg type=&amp;quot;i&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/signal&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CapabilityChange : [TODO] Signal is emitted when the &amp;quot;Media Player&amp;quot; changes capabilities, Flags are CAN_GO_NEXT CAN_GO_PREV CAN_PAUSE CAN_PLAY CAN_SEEK CAN_PROVIDE_METADATA PROVIDES_TIMING&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;signal name=&amp;quot;CapabilityChange&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;arg type=TODO /&amp;gt;&lt;br /&gt;
   &amp;lt;/signal&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= See Also =&lt;br /&gt;
* [http://bmpx.beep-media-player.org/site/MPRIS_Interfacing_Specification MPRIS Interfacing Specification] (BMPx wiki)&lt;br /&gt;
* [http://wiki.xmms2.xmms.se/index.php/Media_Player_Interfaces Media Player Interfaces] (XMMS2 wiki)&lt;/div&gt;</summary>
		<author><name>Underground78</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2007_projects&amp;diff=15332</id>
		<title>SoC 2007 projects</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2007_projects&amp;diff=15332"/>
		<updated>2010-01-12T06:27:28Z</updated>

		<summary type="html">&lt;p&gt;Underground78: Vadalism Undo revision 15310&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is a list of the accepted projects for the [[SoC 2007|Google Summer of Code 2007]].&lt;br /&gt;
&lt;br /&gt;
== List of current projects ==&lt;br /&gt;
&lt;br /&gt;
=== Advanced subtitle support for VLC ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC 2007 Project Advanced Subtitle Support|Advanced Subtitle Support]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: Philip David Lamparter&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: Sigmund Augdal&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
: Nowadays, with international shipping and multi-cultural nations, an increasing number of people prefers to watch videos with the original audio track. However, since most people wouldn&#039;t be fluent with all the source languages they come across, subtitles are in widespread use to overcome this.&lt;br /&gt;
&lt;br /&gt;
: The set of subtitling formats supported by the VLC player currently covers simple formats. One of the rather widely used formats, SSA/ASS, is not properly supported though - probably due to its capabilities for advanced styling, animation effects, and even drawing commands.&lt;br /&gt;
&lt;br /&gt;
: My goal for this Summer of Code project is to provide VLC with rendering capabilities for this format. Ultimately, I&#039;m desiring 99% compatibility with what&#039;s considered the reference for it: the Windows renderer &amp;quot;VSFilter&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
: To achieve this goals, I already started implementing a standalone filter for this purpose, called asa. Therefore, a rough outline of my plans is:&lt;br /&gt;
: 1. Create bindings between VLC and asa.&lt;br /&gt;
: 2. Fix the remaining bugs and missings in asa.&lt;br /&gt;
: 3. Look for and cover extended usage cases in both VLC and asa (subtitle picture streaming, drawing mode, OpenType glyph substitution support)&lt;br /&gt;
&lt;br /&gt;
=== VLC Mac OS X Framework Implementation ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC 2007 Project Mac OS X Framework|Mac OS X Framework]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:Pdherbemont|Pierre d&#039;Herbemont]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: [[User:Fkuehne|Felix Paul Kühne]]&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
: Proposition: Write a Cocoa Mac OS X (and possibly GNUStep) Framework that would serve as a foundation to the 2 differents Mac OS X VLC binaries.&lt;br /&gt;
&lt;br /&gt;
: Those binaries are the standard VLC.app executable, and the VLC web browser plugin.&lt;br /&gt;
&lt;br /&gt;
: This Framework could also be used as a library for other applications that need a video output.&lt;br /&gt;
&lt;br /&gt;
=== Matroska Muxer for VLC ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC 2007 Project Matroska Muxer|Matroska Muxer]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: Hugo de Jesús Garza Gómez&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: Steve Lhomme&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
: In recent years the digital video industry has seen a boom in the number of users; thanks originally to the DVD for bring digital video in mass quantities, but more recently to innovative websites such as YouTube and peer to peer applications where users can share their videos. The reason that these applications are successful is because their users use a standard container for video files which for years has been the AVI container. However as time went on the AVI container was outgrown by the rapid pace of change and the needs of the consumer. To satisfy these needs new containers were created with more features such as menus, chapters, and multiple audio streams.&lt;br /&gt;
&lt;br /&gt;
: The AVI format was originally created by Microsoft as an extension to the RIFF format for its video for windows technology thus establishing it as the standard format for distributing video files. In recent years newer audio and video codecs have been released which brought to light many deficiencies in the AVI format. As a solution to this problem the matroska container was created to be an opensource flexible and cross-platform Audio/Video container format. In order to play matroska streams it is necessary to use a media player capable of reproducing them, such as VLC by the VideLAN project. VLC is a cross-platform media player, but is unique in that it supports a large number of multimedia formats without the need for additional codecs. One of the major strength of VLC is also that it can receive and broadcast videos streams, which is where Matroska could find a new use.&lt;br /&gt;
&lt;br /&gt;
: The proposal for this project is to create a matroska muxer for the VLC media player in C++ using the libmatroska library which would allow the creation of new matroska streams and modification of existing streams. The muxer would support various audio/video codecs and most of the features of the matroska spec: multiple audio streams and multiple subtitles.&lt;br /&gt;
&lt;br /&gt;
=== RTSP Streaming Server in VLC ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC 2007 Project RTSP Streaming Server|RTSP Streaming Server]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: Sourav Pal&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: [[User:Jpsaman|Jean-Paul Saman]]&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
: The main goal as mentioned in the project listing is to enable VLC with RTCP features, interleave RTP stream over RTSP when firewall is encountered, perform rtsp tunneling over http and perform per account options. If time permits follow-up with a performance evaluation of the streaming server code and pinpoint bottleneck issues.&lt;br /&gt;
&lt;br /&gt;
=== Fullscreen Controller and Advanced Subtitle Support on VLC media player ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC 2007 Project Fullscreen Controller and Advanced Subtitle Support|Fullscreen Controller and Advanced Subtitle Support]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: Richard Guo&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: [[User:Yoann|Yoann Peronneau]]&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
: VLC is known as a lightweight media player that shines in playing files regardless of format. However, its UI is underdeveloped in comparison to competitors. While a revamped UI might not be first and foremost on the developers&#039; minds, adding a basic control interface in fullscreen mode would greatly enhance VLC&#039;s adoption.&lt;br /&gt;
&lt;br /&gt;
: From a usability standpoint, it is a hassle for users to exit fullscreen mode just to operate the controls controlling pause, play, fast forward, and the position of playback. Power users and developers usually have customized keybindings for use in fullscreen mode, but the vast majority of users expect a controller in fullscreen mode. Moreover, it is inconsistent to support fullscreen controls on the Mac OSX version but not on *nix or Windows.&lt;br /&gt;
&lt;br /&gt;
: The second proposal concerns displaying and rendering subtitles. VLC&#039;s current subtitle capabilities is rather rudimentary. Work on this aspect of VLC will consist of three parts: detection of subtitle streams (either with DVD input on disc or in a file in the same directory as the video), automated parsing (must handle all formats and errors in syntax), and display (smart rendering, advance rendering, positioning, size, shape, font, colour, HTML tags, etc.).&lt;br /&gt;
&lt;br /&gt;
=== Audio Extensions for VLC media player ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC 2007 Project Audio Extensions|Audio Extensions]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: Biodun Osunkunle&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: Derk-Jan Hartman&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
: The VLC media player&#039;s audio post processing capabilities can be improved. Currently, preset equalizer values, an option for a graphic equalizer with the extended GUI, and a headphone virtualization option.&lt;br /&gt;
&lt;br /&gt;
: The goal of this project is to extend these audio capabilities to include such features as Dolby Prologic 2 like features, (psycho acoustic audio processing), and other effects such as artificial reverberation.&lt;br /&gt;
&lt;br /&gt;
=== Overlay Video Filter for VLC ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC 2007 Project Dynamic Video Overlays|Dynamic Video Overlays]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:Avacore|Søren Bøg]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: [[User:Dionoea|Antoine Cellerier]]&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
: The goal for this project to develop a video filter for VLC to allow third party applications to overlay static and dynamic alpha-blended images ontop of a VLC video. The idea here is to provide VLC with a video filter that is comparable to what bmovl and bmovl2 provide for MPLayer. What that is, is a video filter that enables third party applications to get access to a piece of shared memory or similar, in which the third party application can draw something. The third party application can then notify VLC that the shared memory has been updated, and VLC will then composite the image into subsequent frames.&lt;br /&gt;
&lt;br /&gt;
[[Category:Activities]]&lt;/div&gt;</summary>
		<author><name>Underground78</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=GenerateLibFromDll&amp;diff=15331</id>
		<title>GenerateLibFromDll</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=GenerateLibFromDll&amp;diff=15331"/>
		<updated>2010-01-12T06:27:12Z</updated>

		<summary type="html">&lt;p&gt;Underground78: Vadalism Undo revision 15309&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;from: [http://www.coderetard.com/2009/01/21/generate-a-lib-from-a-dll-with-visual-studio/ http://www.coderetard.com/2009/01/21/generate-a-lib-from-a-dll-with-visual-studio/]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
To avoid installing and fighting against MSYS and Cygwin, you can just extract&lt;br /&gt;
exported symbols from libvlc.dll to generate a .lib (libvlc.lib) and link your program against it.&lt;br /&gt;
And all of this using only with Microsoft Visual Studio Tools!&lt;br /&gt;
&lt;br /&gt;
In case you don&#039;t have Visual Studio you can download the free version here [http://www.microsoft.com/express/download Visual Studio Express].&lt;br /&gt;
&lt;br /&gt;
== Open a Command Prompt ==&lt;br /&gt;
&lt;br /&gt;
It can be found within the Visual Studio Tools menu entry: Start / Program Files / Microsoft Visual Studio / Visual Studio Tools / Visual Studio Command Prompt.&lt;br /&gt;
&lt;br /&gt;
== Extract Symbols ==&lt;br /&gt;
&lt;br /&gt;
Within the command prompt type:&lt;br /&gt;
&lt;br /&gt;
 dumpbin /exports &amp;quot;C:\Program Files\VideoLAN\VLC\libvlc.dll&amp;quot; &amp;gt; &amp;quot;C:\Program Files\VideoLAN\VLC\libvlc.def&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Edit the libvlc.def file and modify it to get something like this:&lt;br /&gt;
&lt;br /&gt;
 EXPORTS&lt;br /&gt;
 libvlc_add_intf&lt;br /&gt;
 libvlc_audio_get_channel&lt;br /&gt;
 libvlc_audio_get_mute&lt;br /&gt;
 libvlc_audio_get_track&lt;br /&gt;
 libvlc_audio_get_track_count&lt;br /&gt;
 libvlc_audio_get_track_description&lt;br /&gt;
 libvlc_audio_get_volume&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
== Generate the .lib ==&lt;br /&gt;
&lt;br /&gt;
Still within the command prompt type:&lt;br /&gt;
&lt;br /&gt;
 lib /def:&amp;quot;C:\Program Files\VideoLAN\VLC\libvlc.def&amp;quot; /out:&amp;quot;C:\Program Files\VideoLAN\VLC\libvlc.lib&amp;quot; /machine:x86&lt;br /&gt;
&lt;br /&gt;
Of course, you&#039;ll need to adapt the path according to your configuration.&lt;br /&gt;
&lt;br /&gt;
Et voila! You have it, now you can link against libvlc.lib in your program &amp;lt;nowiki&amp;gt;:-)&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Underground78</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=MPEG-4&amp;diff=15329</id>
		<title>MPEG-4</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=MPEG-4&amp;diff=15329"/>
		<updated>2010-01-12T06:26:23Z</updated>

		<summary type="html">&lt;p&gt;Underground78: Vadalism Undo revision 15321&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{wikipedia|MPEG-4}}&lt;br /&gt;
{{mmwiki|ISO MPEG-4|ISO_MPEG-4}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MPEG-4&#039;&#039;&#039; is a form of &#039;&#039;&#039;[[MPEG]]&#039;&#039;&#039; encoding. It is a flexible audio and video compression format. The format describes audio and video compression, with a container format for streaming across networks and saving to disk. It also contains optional extra features, including [[DRM]] and [[subtitles]]. These extra features are only included in software if needed.  MPEG-4 can provide better quality than MPEG-2 at low bitrates.&lt;br /&gt;
&lt;br /&gt;
Here is an example of how to transcode an AVI into an MPEG-4 video from the [[command prompt]]&lt;br /&gt;
 {{%}} vlc &#039;&#039;file.avi&#039;&#039; --[[sout]]=&#039;#[[transcode]]{vcodec=mp4v,acodec=mp4a}:std{access=file,mux=mp4,dst=&#039;&#039;file.m4v&#039;&#039;}&#039;&lt;br /&gt;
&lt;br /&gt;
MPEG-4 audio is an advanced, complicated audio format. It includes AAC for high bitrates, multilingual tracks, text-to-speech modes for very low bitrates, the ability to synthesize instrumental sounds (similar to MIDI), and more. See also the [http://www.tnt.uni-hannover.de/project/mpeg/audio/faq/mpeg4.html MPEG-4 Audio FAQ].&lt;br /&gt;
&lt;br /&gt;
== Codecs ==&lt;br /&gt;
{{codec audio|id=mp4a|altid=m4a|mod=ffmpeg|for=MPEG-4}}&lt;br /&gt;
{{codec video|id=mp4v|altid=m4v|mod=ffmpeg|for=MPEG-4}}&lt;br /&gt;
&lt;br /&gt;
MPEG-4 specifies a range of codecs&lt;br /&gt;
&lt;br /&gt;
The [[fourcc]]s of MPEG-4 codecs are:&lt;br /&gt;
* DivX Codecs&lt;br /&gt;
** DIV1, div1, DIVX, divx, DX50, dx50, XVID, XviD, xvid&lt;br /&gt;
* [[FFMPEG]] MPEG-4&lt;br /&gt;
** FMP4, fmp4&lt;br /&gt;
* 3IV2, 3iv2&lt;br /&gt;
* BLZ0&lt;br /&gt;
* DXGM&lt;br /&gt;
* HDX4, hdx4&lt;br /&gt;
* M4S2, m4s2&lt;br /&gt;
* MP4S, mp4s&lt;br /&gt;
* MP4V, mp4v&lt;br /&gt;
* RMP4&lt;br /&gt;
* SEDG&lt;br /&gt;
* SMP4&lt;br /&gt;
* UMP4&lt;br /&gt;
* WV1F&lt;br /&gt;
* XVIX&lt;br /&gt;
&lt;br /&gt;
== File extension ==&lt;br /&gt;
MP4 (&#039;&#039;&#039;.mp4&#039;&#039;&#039;) is the global file extension for the official container format defined in the [[MPEG]]-4 standard (ISO 14496-14).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;.mp4&#039;&#039;&#039;: the only official extension; used for both audio and video files (and advanced content)&lt;br /&gt;
* &#039;&#039;&#039;.m4a&#039;&#039;&#039;: introduced by Apple for aac/alac &#039;&#039;audio-only&#039;&#039; files. &lt;br /&gt;
&lt;br /&gt;
NOTE: .m4a files can safely be renamed to .mp4 -- but the distinction between audio (m4a) and video (mp4) may be useful if you are going to share files, or if you tend to forget what files you have.&lt;br /&gt;
&lt;br /&gt;
For complete details on MP4, see the following link:&lt;br /&gt;
&lt;br /&gt;
*http://forum.doom9.org/showthread.php?s=&amp;amp;threadid=62723&lt;br /&gt;
&lt;br /&gt;
=== .mp4 audio ===&lt;br /&gt;
&#039;&#039;&#039;.m4a&#039;&#039;&#039; is the [[file extension]] attached to names of files containing [[MPEG-4]] Audio. Generally, MPEG-4 files are have the &#039;&#039;&#039;.mp4&#039;&#039;&#039; file extension.&lt;br /&gt;
&lt;br /&gt;
The .m4a file extension has been popularized by Apple, which started using the .m4a file extension in their [[iTunes]] software and [[iPod]] music players to distinguish between MPEG-4 Video and Audio files. Currently, most software that supports MPEG-4 Audio also supports the .m4a extension. The most common type of .m4a files available are those using the AAC ([[Advanced Audio Coding]]) audio format, but other formats such as [[Apple Lossless]] and even [[mp3]] files may be put inside a .m4a container file. You can normally safely rename the file extension of an .mp4 file containing only audio to .m4a or vice versa to get the file to properly play in your favorite audio player.&lt;br /&gt;
&lt;br /&gt;
====Protected MPEG-4 Audio====&lt;br /&gt;
When these files have [[digital rights management]] (DRM) restrictions applied to them, their extension are often changed to &#039;&#039;&#039;.m4p&#039;&#039;&#039;, the &#039;&#039;p&#039;&#039; standing for &#039;&#039;protected&#039;&#039;. Music files purchased from the [[iTunes Music Store]], for example, have this extension.&lt;br /&gt;
&lt;br /&gt;
====Audiobooks====&lt;br /&gt;
When they contain audiobook data, MPEG-4 files have a &#039;&#039;&#039;.m4b&#039;&#039;&#039; extension.&lt;br /&gt;
&lt;br /&gt;
== Container ==&lt;br /&gt;
{{mux|id=mp4|encoder=y|altid=mov|altid2=3gp}}&lt;br /&gt;
&lt;br /&gt;
=== Accepted video codecs ===&lt;br /&gt;
* &#039;&#039;&#039;mp4v&#039;&#039;&#039;, including all the codecs described above&lt;br /&gt;
* [[mpgv]]&lt;br /&gt;
* [[MJPG]]&lt;br /&gt;
* [[mjpb]]&lt;br /&gt;
* [[SVQ1]]&lt;br /&gt;
* [[SVQ3]]&lt;br /&gt;
* [[H263]]&lt;br /&gt;
* [[h264]]&lt;br /&gt;
&lt;br /&gt;
=== Accepted audio codecs ===&lt;br /&gt;
* [[mp4a]] (is [[aac]])&lt;br /&gt;
* [[mpga]]&lt;br /&gt;
* [[samr]]&lt;br /&gt;
* [[sawb]]&lt;br /&gt;
&lt;br /&gt;
=== Accepted subtitle codec ===&lt;br /&gt;
* [[subt]]&lt;br /&gt;
&lt;br /&gt;
== Decoding libraries ==&lt;br /&gt;
&lt;br /&gt;
In addition to [[FFMPEG]], there is [[MPEG4IP]] that can decode MPEG-4 streams.&lt;br /&gt;
&lt;br /&gt;
== Source code ==&lt;br /&gt;
{{file|modules/mux/mp4.c|output muxer}}&lt;br /&gt;
{{file|modules/demux/mp4|input demuxer}}&lt;/div&gt;</summary>
		<author><name>Underground78</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=QtIntfMockups-DericksIdea&amp;diff=15327</id>
		<title>QtIntfMockups-DericksIdea</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=QtIntfMockups-DericksIdea&amp;diff=15327"/>
		<updated>2010-01-12T06:25:30Z</updated>

		<summary type="html">&lt;p&gt;Underground78: Vadalism Undo revision 15323&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is [[User:Zephyrxero|Derick Eisenhardt&#039;s]] concept for how VLC 0.9&#039;s new interface should look.&lt;br /&gt;
&lt;br /&gt;
I think there are a few slight changes that would help VLC look better and be more usable. What I have done here is simply move around the buttons a bit, and made a quick and dirty mock-up for layout&#039;s sake. I can make a pretty version of it later if you guys like this button layout.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://farm1.static.flickr.com/140/341949646_a69b4ccbdb_o.png[http://www.flickr.com/photo_zoom.gne?id=341949646&amp;amp;size=o]&lt;br /&gt;
*Play/pause has been moved to the far left and enlarged because it is the most commonly used button&lt;br /&gt;
*Playlist button has been moved to the far right for easy access&lt;br /&gt;
*FastForward and Rewind Buttons have been moved to the sides of the progress bar&lt;br /&gt;
*The volume bar and mute button are also now right justified&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://farm1.static.flickr.com/149/341949651_514218be74_o.png[http://www.flickr.com/photo_zoom.gne?id=341949651&amp;amp;size=o]&lt;br /&gt;
*All buttons (besides the standard File/Main Menu) have been moved to reside below the video portion&lt;br /&gt;
*A fullscreen button has been added right after the new position of the eject button&lt;br /&gt;
**do note there is a spacer on both sides of the eject button&lt;br /&gt;
**the fullscreen button can either be &amp;quot;grey&#039;d out&amp;quot; or completely removed when there is no video&lt;br /&gt;
*The text box with the current play speed has been removed to save space and can easily be replaced with an icon overlayed on top of video just as you would see when pressing pause&lt;br /&gt;
*Also in the text box I think it would be great (if possible) to have the media file&#039;s title scroll when too long to fit into the box (ala WinAmp and XMMS).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Modification idea for this concept (video only) (by [[User:atomas|Thomas Seifried]]):&lt;br /&gt;
&lt;br /&gt;
http://www.detonation.org/~atomas/vlc-mod.png[http://www.detonation.org/~atomas/vlc-mod.png]&lt;br /&gt;
* Move the full screen button to the upper right side (into the menu). So its near to the maximize button.&lt;br /&gt;
* Insert a audio and subtitle stream switcher (drop down boxes) in the empty space between file open and volume control&lt;br /&gt;
* Another idea would be to have a drop down box on the forward / backward buttons, that opens the navigation in chapters (if someone holds the button for some time)&lt;br /&gt;
&lt;br /&gt;
[[Category:Activities]]&lt;/div&gt;</summary>
		<author><name>Underground78</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Changelog/0.8.6e&amp;diff=15326</id>
		<title>Changelog/0.8.6e</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Changelog/0.8.6e&amp;diff=15326"/>
		<updated>2010-01-12T06:24:50Z</updated>

		<summary type="html">&lt;p&gt;Underground78: Vadalism Undo revision 15324&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--{{BasedOnRev|rev=25364|file=branches/0.8.6-bugfix/NEWS}}--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Changes between 0.8.6d and 0.8.6e =&lt;br /&gt;
&lt;br /&gt;
== Various bugfixes ==&lt;br /&gt;
* Resume playback for viewing content over [[Documentation:Modules/ftp|FTP]]&lt;br /&gt;
* Fixed XShm detection with remote [[Documentation:Modules/x11|X11]]&lt;br /&gt;
&lt;br /&gt;
== Security updates ==&lt;br /&gt;
* [[Subtitle]] demuxers overflow ({{CVE|2007-6681}})&lt;br /&gt;
* [[Documentation:Modules/http_intf|HTTP listener]] format string injection ({{CVE|2007-6682}})&lt;br /&gt;
* Fixed buffer overflow in the [[Documentation:Modules/sdl_vout|SDL_image]] library ({{CVE|2006-4484}})&lt;br /&gt;
* Real [[RTSP]] overflows ({{CVE|2008-0225}}, {{CVE|2008-0295}}, {{CVE|2008-0296}}, {{VideoLAN-SA|0801}})&lt;br /&gt;
* Arbitrary memory overwrite in the [[MP4]] demuxer ([http://www.coresecurity.com/?action=item&amp;amp;id=2147 CORE-2008-0130], {{VideoLAN-SA|0802}})&lt;br /&gt;
&lt;br /&gt;
== Audio filter ==&lt;br /&gt;
* Fixed [[DTS]] to S/PDIF converter&lt;br /&gt;
&lt;br /&gt;
== Audio output ==&lt;br /&gt;
* Fixed 5.1 audio on ALSA&lt;br /&gt;
&lt;br /&gt;
== Access ==&lt;br /&gt;
* Fixed some [[RTSP]] hanging and user/password passing through [[RTSP]] URLs&lt;br /&gt;
&lt;br /&gt;
== Stream output ==&lt;br /&gt;
* Fixed waiting for SPS/PPS problem in [[H.264]] packetizer&lt;br /&gt;
&lt;br /&gt;
== Encoders ==&lt;br /&gt;
* Improved compatibility for creating [[H.264]] video files playable on iPhones&lt;br /&gt;
* Improved detection of optimal amount of threads for multi-threaded [[H.264]] encoding on multi-cpu systems&lt;br /&gt;
** Note that this is used when [[transcode]] threads is set to 0 (default)&lt;br /&gt;
** Not supported on Windows (multiple threads require manual configuration)&lt;br /&gt;
&lt;br /&gt;
== Mac OS X Interface &amp;amp; Port ==&lt;br /&gt;
* Restored compatibility with Mac OS X 10.3.9&lt;br /&gt;
* Corrected behavior of the [[Preferences]] panel&lt;br /&gt;
* VLC no longer crashes on quit while playing&lt;br /&gt;
&lt;br /&gt;
== Localization ==&lt;br /&gt;
* Updated Romanian and Polish translations&lt;/div&gt;</summary>
		<author><name>Underground78</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2009/Weighted_P-frame_Prediction&amp;diff=15325</id>
		<title>SoC 2009/Weighted P-frame Prediction</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2009/Weighted_P-frame_Prediction&amp;diff=15325"/>
		<updated>2010-01-12T06:23:07Z</updated>

		<summary type="html">&lt;p&gt;Underground78: Vadalism Undo revision 15317 by Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SoCProject|year=2009|student=Dylan Yudaken|mentor=Jason Garrett-Glaser}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
x264 is a highly popular h264 encoder. It currently does not implement the entire spec of h264. Currently weighted P-frames are not used to assist in prediction. If implemented this would give huge benefits in cases where the scene fades or where there are flashes. I am proposing to implement an implementation of this that is good enough and fast enough to warrant inclusion in most video encodings.&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
My patches (and codebase) are [http://repo.or.cz/w/x264/x264-p-frames.git?a=shortlog;h=refs/heads/gsoc here] for now, but they may soon move to videolan&#039;s server&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! No. !! Task Description !! Status !! Comment&lt;br /&gt;
|-&lt;br /&gt;
|1 || Build weighting framework || style=&amp;quot;background: #00ff00&amp;quot;|done || .&lt;br /&gt;
|-&lt;br /&gt;
|2 || Brute Force Optimal Weights||style=&amp;quot;background: #00ff00&amp;quot;|done || &lt;br /&gt;
|-&lt;br /&gt;
|3 || Try use these new weights for some interesting things to improve quality||style=&amp;quot;background: #00ff00&amp;quot;|done || &lt;br /&gt;
|-&lt;br /&gt;
|4 || Find Optimal Weights in a fast way (probably based on the findings in 3.) ||style=&amp;quot;background: #00ff00&amp;quot;|done ||&lt;br /&gt;
|-&lt;br /&gt;
|5 || DSP Functions ||style=&amp;quot;background: #00ff00&amp;quot;|Done ||&lt;br /&gt;
|-&lt;br /&gt;
|6 || Try duplicating reference frames ||style=&amp;quot;background: #00ff00&amp;quot;|Done|| &lt;br /&gt;
|-&lt;br /&gt;
|7 || Other weird uses ||style=&amp;quot;background: #00ff00&amp;quot;|done || Implemented a k-means cluster algorithm to find a number (k) of good weights and use them &lt;br /&gt;
|-&lt;br /&gt;
|8 || Finish off small things ||style=&amp;quot;background: #00aa00&amp;quot;|Working || Todo: Finish multipass, cleanup k-means a bit&lt;br /&gt;
|-&lt;br /&gt;
|9 || Optimize algorithms and test like crazy || Not started || &lt;br /&gt;
|-&lt;br /&gt;
|10 || Cleanup and code review || Not started || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Current Issues===&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
This is an estimation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;March 20th or so - April 3&#039;&#039;&#039; Qualifying task. Was a first attempt at goal 1.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;April 20&#039;&#039;&#039; Students announce&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;April 21 - May&#039;&#039;&#039; Goal 1 redone better and acceptably.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;May 1 - May 20&#039;&#039;&#039; Work on goal 2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; May 23&#039;&#039;&#039; Program Starts&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; May 26 - June 12 &#039;&#039;&#039; Exams&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; June 13 - July 13&#039;&#039;&#039; Code&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; July 13&#039;&#039;&#039; Mid Term deadline. Goals for here have not been set but personally I would like to have goal 2 &amp;amp; 4 finished with goal 3 having a decent chunk of work done. This weird out of order thing is because goal 3 can be worked on continuously as it is not really set, more the trying of ideas.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; July 13 - August 17&#039;&#039;&#039; Code&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;August 17&#039;&#039;&#039; Program end&lt;/div&gt;</summary>
		<author><name>Underground78</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2009/Weighted_P-frame_Prediction&amp;diff=14640</id>
		<title>SoC 2009/Weighted P-frame Prediction</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2009/Weighted_P-frame_Prediction&amp;diff=14640"/>
		<updated>2009-08-22T21:23:51Z</updated>

		<summary type="html">&lt;p&gt;Underground78: correct link for git repo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SoCProject|year=2009|student=Dylan Yudaken|mentor=Jason Garrett-Glaser}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
x264 is a highly popular h264 encoder. It currently does not implement the entire spec of h264. Currently weighted P-frames are not used to assist in prediction. If implemented this would give huge benefits in cases where the scene fades or where there are flashes. I am proposing to implement an implementation of this that is good enough and fast enough to warrant inclusion in most video encodings.&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
My patches (and codebase) are [http://repo.or.cz/w/x264/x264-p-frames.git?a=shortlog;h=refs/heads/gsoc here] for now, but they may soon move to videolan&#039;s server&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! No. !! Task Description !! Status !! Comment&lt;br /&gt;
|-&lt;br /&gt;
|1 || Build weighting framework || style=&amp;quot;background: #00ff00&amp;quot;|done || .&lt;br /&gt;
|-&lt;br /&gt;
|2 || Brute Force Optimal Weights||style=&amp;quot;background: #00ff00&amp;quot;|done || &lt;br /&gt;
|-&lt;br /&gt;
|3 || Try use these new weights for some interesting things to improve quality||style=&amp;quot;background: #00ff00&amp;quot;|done || &lt;br /&gt;
|-&lt;br /&gt;
|4 || Find Optimal Weights in a fast way (probably based on the findings in 3.) ||style=&amp;quot;background: #00ff00&amp;quot;|done ||&lt;br /&gt;
|-&lt;br /&gt;
|5 || DSP Functions ||style=&amp;quot;background: #00ff00&amp;quot;|Done ||&lt;br /&gt;
|-&lt;br /&gt;
|6 || Try duplicating reference frames ||style=&amp;quot;background: #00ff00&amp;quot;|Done|| &lt;br /&gt;
|-&lt;br /&gt;
|7 || Other weird uses ||style=&amp;quot;background: #00ff00&amp;quot;|done || Implemented a k-means cluster algorithm to find a number (k) of good weights and use them &lt;br /&gt;
|-&lt;br /&gt;
|8 || Finish off small things ||style=&amp;quot;background: #00aa00&amp;quot;|Working || Todo: Finish multipass, cleanup k-means a bit&lt;br /&gt;
|-&lt;br /&gt;
|9 || Optimize algorithms and test like crazy || Not started || &lt;br /&gt;
|-&lt;br /&gt;
|10 || Cleanup and code review || Not started || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Current Issues===&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
This is an estimation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;March 20th or so - April 3&#039;&#039;&#039; Qualifying task. Was a first attempt at goal 1.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;April 20&#039;&#039;&#039; Students announce&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;April 21 - May&#039;&#039;&#039; Goal 1 redone better and acceptably.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;May 1 - May 20&#039;&#039;&#039; Work on goal 2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; May 23&#039;&#039;&#039; Program Starts&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; May 26 - June 12 &#039;&#039;&#039; Exams&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; June 13 - July 13&#039;&#039;&#039; Code&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; July 13&#039;&#039;&#039; Mid Term deadline. Goals for here have not been set but personally I would like to have goal 2 &amp;amp; 4 finished with goal 3 having a decent chunk of work done. This weird out of order thing is because goal 3 can be worked on continuously as it is not really set, more the trying of ideas.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; July 13 - August 17&#039;&#039;&#039; Code&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;August 17&#039;&#039;&#039; Program end&lt;/div&gt;</summary>
		<author><name>Underground78</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=LibVLC_SampleCode_Qt&amp;diff=14630</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=14630"/>
		<updated>2009-08-17T20:08:10Z</updated>

		<summary type="html">&lt;p&gt;Underground78: /* 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 &#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;
== 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;
    QFrame *_videoWidget;&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;
    _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);&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;
        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;
    #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=(newPosition)/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;/div&gt;</summary>
		<author><name>Underground78</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2009_projects&amp;diff=14610</id>
		<title>SoC 2009 projects</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2009_projects&amp;diff=14610"/>
		<updated>2009-08-12T11:01:50Z</updated>

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