<?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=Etix</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=Etix"/>
	<link rel="alternate" type="text/html" href="https://wiki.videolan.org/Special:Contributions/Etix/"/>
	<updated>2026-11-04T16:41:28Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Mirrors&amp;diff=56357</id>
		<title>Mirrors</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Mirrors&amp;diff=56357"/>
		<updated>2018-02-12T10:27:51Z</updated>

		<summary type="html">&lt;p&gt;Etix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mirrors =&lt;br /&gt;
&lt;br /&gt;
Our mirrors are kindly operated by sponsors, you can find the complete list [http://www.videolan.org/videolan/mirrors.html here]. If you would like to provide a mirror to the VideoLAN project please read the following sections.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* A public mirror in &#039;&#039;&#039;HTTPS&#039;&#039;&#039; (we won&#039;t accept new mirrors in HTTP)&lt;br /&gt;
* About 70 GB of disk space at this time&lt;br /&gt;
* At least 1 Gbps connectivity&lt;br /&gt;
* At &#039;&#039;&#039;least&#039;&#039;&#039; 4 rsync per day (once every hour is better!)&lt;br /&gt;
* Either an rsync or FTP server access to scan the actual state of your mirror (rsync is preferred)&lt;br /&gt;
&lt;br /&gt;
== Setting up a mirror ==&lt;br /&gt;
&lt;br /&gt;
The first step is to clone the rsync repository using the following command:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;rsync --verbose --recursive --times --links --hard-links --perms --stats --delete-after --timeout=300 rsync://rsync.videolan.org/videolan-ftp &#039;&#039;/path/to/repository/destination&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Edit your crontab (crontab -e) to sync the cron every hour:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;11 * * * * sleep $(($RANDOM/1024)); rsync --verbose --recursive --times --links --hard-links --perms --stats --delete-after --timeout=300 rsync://rsync.videolan.org/videolan-ftp &#039;&#039;/path/to/repository/destination&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Setup a web server to serve the repository preferably with [http://wiki.nginx.org/ nginx] or [http://httpd.apache.org/ Apache].&lt;br /&gt;
&lt;br /&gt;
Finally setup a read-only rsync daemon using a similar configuration:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[videolan]&lt;br /&gt;
    path = /path/to/repository/destination&lt;br /&gt;
    comment = VideoLAN repository&lt;br /&gt;
    uid = nobody&lt;br /&gt;
    gid = nogroup&lt;br /&gt;
    read only = yes&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally make sure the rsync server daemon is started during system startup!&lt;br /&gt;
&lt;br /&gt;
NOTE: if you&#039;re using a CDN in front of the repository be sure to clear the cache at least once a day!&lt;br /&gt;
&lt;br /&gt;
== How do we manage mirrors ==&lt;br /&gt;
&lt;br /&gt;
On the VideoLAN side, in order to provide the best service to our users we&#039;re running [https://github.com/etix/mirrorbits Mirrorbits], a mirror management software that will transparently redirect users to the closest mirror.&lt;br /&gt;
&lt;br /&gt;
It is also in charge of scanning the mirrors, ensuring they are up and running and it knows which files are served by your mirror. The system will automatically scan you mirror (using rsync or FTP) every now and then and do some health checks on the HTTP side every minute. If you have any concern related to a high bandwidth usage please tell us, we will reduce the weight of your mirror.&lt;br /&gt;
&lt;br /&gt;
== Contact us ==&lt;br /&gt;
&lt;br /&gt;
Once your mirror is setup, please [mailto:mirrors@videolan.org contact us] and be sure to send:&lt;br /&gt;
* A name and contact email address&lt;br /&gt;
* HTTP, FTP (if applicable) and rsync URLs to the file tree on your server&lt;br /&gt;
* The name, URL and logo of the operator / organization / sponsor you represent (preferably in 137x54)&lt;br /&gt;
&lt;br /&gt;
After reviewing your application your mirror will be added to our load balancer.&lt;br /&gt;
&lt;br /&gt;
[[Category:About VideoLAN]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Mirrors&amp;diff=33420</id>
		<title>Mirrors</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Mirrors&amp;diff=33420"/>
		<updated>2017-07-24T11:02:07Z</updated>

		<summary type="html">&lt;p&gt;Etix: HTTPS requirement&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mirrors =&lt;br /&gt;
&lt;br /&gt;
Our mirrors are kindly operated by sponsors, you can find the complete list [http://www.videolan.org/videolan/mirrors.html here]. If you would like to provide a mirror to the VideoLAN project please read the following sections.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* A public mirror in &#039;&#039;&#039;HTTPS&#039;&#039;&#039; (we won&#039;t accept new mirrors in HTTP)&lt;br /&gt;
* About 45 GB of disk space at this time&lt;br /&gt;
* At least 1 Gbps connectivity&lt;br /&gt;
* At &#039;&#039;&#039;least&#039;&#039;&#039; 4 rsync per day (once every hour is better!)&lt;br /&gt;
* Either an rsync or FTP server access to scan the actual state of your mirror (rsync is preferred)&lt;br /&gt;
&lt;br /&gt;
== Setting up a mirror ==&lt;br /&gt;
&lt;br /&gt;
The first step is to clone the rsync repository using the following command:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;rsync --verbose --recursive --times --links --hard-links --perms --stats --delete-after --timeout=300 rsync://rsync.videolan.org/videolan-ftp &#039;&#039;/path/to/repository/destination&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Edit your crontab (crontab -e) to sync the cron every hour:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;11 * * * * sleep $(($RANDOM/1024)); rsync --verbose --recursive --times --links --hard-links --perms --stats --delete-after --timeout=300 rsync://rsync.videolan.org/videolan-ftp &#039;&#039;/path/to/repository/destination&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Setup a web server to serve the repository preferably with [http://wiki.nginx.org/ nginx] or [http://httpd.apache.org/ Apache].&lt;br /&gt;
&lt;br /&gt;
Finally setup a read-only rsync daemon using a similar configuration:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[videolan]&lt;br /&gt;
    path = /path/to/repository/destination&lt;br /&gt;
    comment = VideoLAN repository&lt;br /&gt;
    uid = nobody&lt;br /&gt;
    gid = nogroup&lt;br /&gt;
    read only = yes&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally make sure the rsync server daemon is started during system startup!&lt;br /&gt;
&lt;br /&gt;
NOTE: if you&#039;re using a CDN in front of the repository be sure to clear the cache at least once a day!&lt;br /&gt;
&lt;br /&gt;
== How do we manage mirrors ==&lt;br /&gt;
&lt;br /&gt;
On the VideoLAN side, in order to provide the best service to our users we&#039;re running [https://github.com/etix/mirrorbits Mirrorbits], a mirror management software that will transparently redirect users to the closest mirror.&lt;br /&gt;
&lt;br /&gt;
It is also in charge of scanning the mirrors, ensuring they are up and running and it knows which files are served by your mirror. The system will automatically scan you mirror (using rsync or FTP) every now and then and do some health checks on the HTTP side every minute. If you have any concern related to a high bandwidth usage please tell us, we will reduce the weight of your mirror.&lt;br /&gt;
&lt;br /&gt;
== Contact us ==&lt;br /&gt;
&lt;br /&gt;
Once your mirror is setup, please [mailto:mirrors@videolan.org contact us] and be sure to send:&lt;br /&gt;
* A name and contact email address&lt;br /&gt;
* HTTP, FTP (if applicable) and rsync URLs to the file tree on your server&lt;br /&gt;
* The name, URL and logo of the operator / organization / sponsor you represent (preferably in 137x54)&lt;br /&gt;
&lt;br /&gt;
After reviewing your application your mirror will be added to our load balancer.&lt;br /&gt;
&lt;br /&gt;
[[Category:About VideoLAN]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Mirrors&amp;diff=33388</id>
		<title>Mirrors</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Mirrors&amp;diff=33388"/>
		<updated>2017-07-05T14:53:26Z</updated>

		<summary type="html">&lt;p&gt;Etix: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mirrors =&lt;br /&gt;
&lt;br /&gt;
Our mirrors are kindly operated by sponsors, you can find the complete list [http://www.videolan.org/videolan/mirrors.html here]. If you would like to provide a mirror to the VideoLAN project please read the following sections.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* A public mirror available in HTTP&lt;br /&gt;
* About 45 GB of disk space at this time&lt;br /&gt;
* At least 1 Gbps connectivity&lt;br /&gt;
* At &#039;&#039;&#039;least&#039;&#039;&#039; 4 rsync per day (once every hour is better!)&lt;br /&gt;
* Either an rsync or FTP server access to scan the actual state of your mirror (rsync is preferred)&lt;br /&gt;
&lt;br /&gt;
== Setting up a mirror ==&lt;br /&gt;
&lt;br /&gt;
The first step is to clone the rsync repository using the following command:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;rsync --verbose --recursive --times --links --hard-links --perms --stats --delete-after --timeout=300 rsync://rsync.videolan.org/videolan-ftp &#039;&#039;/path/to/repository/destination&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Edit your crontab (crontab -e) to sync the cron every hour:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;11 * * * * sleep $(($RANDOM/1024)); rsync --verbose --recursive --times --links --hard-links --perms --stats --delete-after --timeout=300 rsync://rsync.videolan.org/videolan-ftp &#039;&#039;/path/to/repository/destination&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Setup a web server to serve the repository preferably with [http://wiki.nginx.org/ nginx] or [http://httpd.apache.org/ Apache].&lt;br /&gt;
&lt;br /&gt;
Finally setup a read-only rsync daemon using a similar configuration:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[videolan]&lt;br /&gt;
    path = /path/to/repository/destination&lt;br /&gt;
    comment = VideoLAN repository&lt;br /&gt;
    uid = nobody&lt;br /&gt;
    gid = nogroup&lt;br /&gt;
    read only = yes&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally make sure the rsync server daemon is started during system startup!&lt;br /&gt;
&lt;br /&gt;
NOTE: if you&#039;re using a CDN in front of the repository be sure to clear the cache at least once a day!&lt;br /&gt;
&lt;br /&gt;
== How do we manage mirrors ==&lt;br /&gt;
&lt;br /&gt;
On the VideoLAN side, in order to provide the best service to our users we&#039;re running [https://github.com/etix/mirrorbits Mirrorbits], a mirror management software that will transparently redirect users to the closest mirror.&lt;br /&gt;
&lt;br /&gt;
It is also in charge of scanning the mirrors, ensuring they are up and running and it knows which files are served by your mirror. The system will automatically scan you mirror (using rsync or FTP) every now and then and do some health checks on the HTTP side every minute. If you have any concern related to a high bandwidth usage please tell us, we will reduce the weight of your mirror.&lt;br /&gt;
&lt;br /&gt;
== Contact us ==&lt;br /&gt;
&lt;br /&gt;
Once your mirror is setup, please [mailto:mirrors@videolan.org contact us] and be sure to send:&lt;br /&gt;
* A name and contact email address&lt;br /&gt;
* HTTP, FTP (if applicable) and rsync URLs to the file tree on your server&lt;br /&gt;
* The name, URL and logo of the operator / organization / sponsor you represent (preferably in 137x54)&lt;br /&gt;
&lt;br /&gt;
After reviewing your application your mirror will be added to our load balancer.&lt;br /&gt;
&lt;br /&gt;
[[Category:About VideoLAN]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Mirrors&amp;diff=31989</id>
		<title>Mirrors</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Mirrors&amp;diff=31989"/>
		<updated>2017-04-27T10:02:47Z</updated>

		<summary type="html">&lt;p&gt;Etix: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mirrors =&lt;br /&gt;
&lt;br /&gt;
Our mirrors are kindly operated by sponsors, you can find the complete list [http://www.videolan.org/videolan/mirrors.html here]. If you would like to provide a mirror to the VideoLAN project please read the following sections.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* A public mirror available in HTTP&lt;br /&gt;
* About 45 GB of disk space at this time&lt;br /&gt;
* At least 1 Gbps connectivity&lt;br /&gt;
* At &#039;&#039;&#039;least&#039;&#039;&#039; 4 rsync per day (more is better!)&lt;br /&gt;
* Either an rsync or FTP server access to scan the actual state of your mirror (rsync is preferred)&lt;br /&gt;
&lt;br /&gt;
== Setting up a mirror ==&lt;br /&gt;
&lt;br /&gt;
The first step is to clone the rsync repository using the following command:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;rsync --verbose --recursive --times --links --hard-links --perms --stats --delete-after --timeout=300 rsync://rsync.videolan.org/videolan-ftp &#039;&#039;/path/to/repository/destination&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Edit your crontab (crontab -e) to sync the cron every hour:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;11 * * * * sleep $(($RANDOM/1024)); rsync --verbose --recursive --times --links --hard-links --perms --stats --delete-after --timeout=300 rsync://rsync.videolan.org/videolan-ftp &#039;&#039;/path/to/repository/destination&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Setup a web server to serve the repository preferably with [http://wiki.nginx.org/ nginx] or [http://httpd.apache.org/ Apache].&lt;br /&gt;
&lt;br /&gt;
Finally setup a read-only rsync daemon using a similar configuration:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[videolan]&lt;br /&gt;
    path = /path/to/repository/destination&lt;br /&gt;
    comment = VideoLAN repository&lt;br /&gt;
    uid = nobody&lt;br /&gt;
    gid = nogroup&lt;br /&gt;
    read only = yes&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally make sure the rsync server daemon is started during system startup!&lt;br /&gt;
&lt;br /&gt;
NOTE: if you&#039;re using a CDN in front of the repository be sure to clear the cache at least once a day!&lt;br /&gt;
&lt;br /&gt;
== How do we manage mirrors ==&lt;br /&gt;
&lt;br /&gt;
On the VideoLAN side, in order to provide the best service to our users we&#039;re running [https://github.com/etix/mirrorbits Mirrorbits], a mirror management software that will transparently redirect users to the closest mirror.&lt;br /&gt;
&lt;br /&gt;
It is also in charge of scanning the mirrors, ensuring they are up and running and it knows which files are served by your mirror. The system will automatically scan you mirror (using rsync or FTP) every now and then and do some health checks on the HTTP side every minute. If you have any concern related to a high bandwidth usage please tell us, we will reduce the weight of your mirror.&lt;br /&gt;
&lt;br /&gt;
== Contact us ==&lt;br /&gt;
&lt;br /&gt;
Once your mirror is setup, please [mailto:mirrors@videolan.org contact us] and be sure to send:&lt;br /&gt;
* A name and contact email address&lt;br /&gt;
* HTTP, FTP (if applicable) and rsync URLs to the file tree on your server&lt;br /&gt;
* The name, URL and logo of the operator / organization / sponsor you represent (preferably in 137x54)&lt;br /&gt;
&lt;br /&gt;
After reviewing your application your mirror will be added to our load balancer.&lt;br /&gt;
&lt;br /&gt;
[[Category:About VideoLAN]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Mirrors&amp;diff=31917</id>
		<title>Mirrors</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Mirrors&amp;diff=31917"/>
		<updated>2017-02-27T14:09:11Z</updated>

		<summary type="html">&lt;p&gt;Etix: /* Setting up a mirror */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mirrors =&lt;br /&gt;
&lt;br /&gt;
Our mirrors are kindly operated by sponsors, you can find the complete list [http://www.videolan.org/videolan/mirrors.html here]. If you would like to provide a mirror to the VideoLAN project please read the following sections.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* A public mirror available in HTTP&lt;br /&gt;
* About 30 GB of disk space at this time&lt;br /&gt;
* At least 1 Gbps connectivity&lt;br /&gt;
* At &#039;&#039;&#039;least&#039;&#039;&#039; 4 rsync per day (more is better!)&lt;br /&gt;
* Either an rsync or FTP server access to scan the actual state of your mirror (rsync is preferred)&lt;br /&gt;
&lt;br /&gt;
== Setting up a mirror ==&lt;br /&gt;
&lt;br /&gt;
The first step is to clone the rsync repository using the following command:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;rsync --verbose --recursive --times --links --hard-links --perms --stats --delete-after --timeout=300 rsync://rsync.videolan.org/videolan-ftp &#039;&#039;/path/to/repository/destination&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Edit your crontab (crontab -e) to sync the cron every hour:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;11 * * * * sleep $(($RANDOM/1024)); rsync --verbose --recursive --times --links --hard-links --perms --stats --delete-after --timeout=300 rsync://rsync.videolan.org/videolan-ftp &#039;&#039;/path/to/repository/destination&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Setup a web server to serve the repository preferably with [http://wiki.nginx.org/ nginx] or [http://httpd.apache.org/ Apache].&lt;br /&gt;
&lt;br /&gt;
Finally setup a read-only rsync daemon using a similar configuration:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[videolan]&lt;br /&gt;
    path = /path/to/repository/destination&lt;br /&gt;
    comment = VideoLAN repository&lt;br /&gt;
    uid = nobody&lt;br /&gt;
    gid = nogroup&lt;br /&gt;
    read only = yes&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally make sure the rsync server daemon is started during system startup!&lt;br /&gt;
&lt;br /&gt;
NOTE: if you&#039;re using a CDN in front of the repository be sure to clear the cache at least once a day!&lt;br /&gt;
&lt;br /&gt;
== How do we manage mirrors ==&lt;br /&gt;
&lt;br /&gt;
On the VideoLAN side, in order to provide the best service to our users we&#039;re running [https://github.com/etix/mirrorbits Mirrorbits], a mirror management software that will transparently redirect users to the closest mirror.&lt;br /&gt;
&lt;br /&gt;
It is also in charge of scanning the mirrors, ensuring they are up and running and it knows which files are served by your mirror. The system will automatically scan you mirror (using rsync or FTP) every now and then and do some health checks on the HTTP side every minute. If you have any concern related to a high bandwidth usage please tell us, we will reduce the weight of your mirror.&lt;br /&gt;
&lt;br /&gt;
== Contact us ==&lt;br /&gt;
&lt;br /&gt;
Once your mirror is setup, please [mailto:mirrors@videolan.org contact us] and be sure to send:&lt;br /&gt;
* A name and contact email address&lt;br /&gt;
* HTTP, FTP (if applicable) and rsync URLs to the file tree on your server&lt;br /&gt;
* The name, URL and logo of the operator / organization / sponsor you represent (preferably in 137x54)&lt;br /&gt;
&lt;br /&gt;
After reviewing your application your mirror will be added to our load balancer.&lt;br /&gt;
&lt;br /&gt;
[[Category:About VideoLAN]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=User:Etix&amp;diff=31852</id>
		<title>User:Etix</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=User:Etix&amp;diff=31852"/>
		<updated>2017-02-09T20:21:40Z</updated>

		<summary type="html">&lt;p&gt;Etix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi, I&#039;m Ludovic Fauvet aka etix.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Email || etix at videolan org&lt;br /&gt;
|-&lt;br /&gt;
| Blog  || http://blog.l0cal.com&lt;br /&gt;
|-&lt;br /&gt;
| IRC || etix on #videolan (Freenode network)&lt;br /&gt;
|-&lt;br /&gt;
| Twitter || [http://twitter.com/etixxx etixxx]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2017&amp;diff=31851</id>
		<title>SoC 2017</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2017&amp;diff=31851"/>
		<updated>2017-02-09T18:54:04Z</updated>

		<summary type="html">&lt;p&gt;Etix: crypto updates&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Google Summer of Code 2017}}&lt;br /&gt;
&lt;br /&gt;
This page summarize the current list of ideas for VideoLAN project, for [https://summerofcode.withgoogle.com Google Summer Of Code 2017]. The list is not exhaustive, and is not limitative. Feel free to apply with your own idea!&lt;br /&gt;
&lt;br /&gt;
== Introduction &amp;amp;amp; Information  ==&lt;br /&gt;
&lt;br /&gt;
This wiki page covers the attempt by the [[VideoLAN]] project to act as a mentoring organization for [http://code.google.com/soc/ Google Summer of Code], in order to improve [[VLMC]] and {{VLC}}.&lt;br /&gt;
&lt;br /&gt;
[[VideoLAN]] was a mentoring organization in [[SoC 2007|2007]], [[SoC 2008|2008]], [[SoC 2009|2009]], [[SoC 2010|2010]], [[SoC 2011|2011]], [[SoC 2013|2013]] and [[SoC 2016|2016]]. &lt;br /&gt;
&lt;br /&gt;
This page list the ideas for VLMC and VLC.&lt;br /&gt;
&lt;br /&gt;
=== VideoLAN Movie Creator ===&lt;br /&gt;
[[VLMC]] is a cross-platform non-linear video editing software based on VLC technology. It was started as a final year student project at the French IT school [http://www.epitech.eu EPITECH].&lt;br /&gt;
&lt;br /&gt;
[[VLMC]] currently awaits a transition to the current libvlc API and it&#039;s actual 1.0 release!&lt;br /&gt;
&lt;br /&gt;
=== libVLC  ===&lt;br /&gt;
&lt;br /&gt;
{{VLC}} is a cross-platform multimedia player, encoder and streamer application. It is one of the most successful open-source projects without any professional structure underneath. &lt;br /&gt;
&lt;br /&gt;
{{VLC}} is downloaded at an approximate monthly rate of 23 millions from the main website and that&#039;s not including third-party distributions (Linux)! &lt;br /&gt;
&lt;br /&gt;
You can find more information on [http://en.wikipedia.org/wiki/VLC_media_player VLC on Wikipedia] or on this [[Main Page|wiki]].&lt;br /&gt;
&lt;br /&gt;
The engine of VLC is libVLC, and is used by VLMC.&lt;br /&gt;
&lt;br /&gt;
=== Summer of Code  ===&lt;br /&gt;
&lt;br /&gt;
If selected and developed, SoC projects for VLMC and VLC will be included in later releases.&lt;br /&gt;
&lt;br /&gt;
All projects are covered by the GPL (v2+) or LGPL (v2.1+) licenses depending on the module.&lt;br /&gt;
&lt;br /&gt;
=== Compile libVLC or VLMC ===&lt;br /&gt;
This may sound trivial, but it&#039;s harder than many expect. See https://wiki.videolan.org/Category:Building/ for more informations.&lt;br /&gt;
&lt;br /&gt;
=== Provide a small patch ===&lt;br /&gt;
To demonstrate your skills, share a small patch with us. This will let you become familiar with [[Git]], in case you don&#039;t know it already and our process on [[Sending Patches VLC|merging patches]].&lt;br /&gt;
&lt;br /&gt;
=== Let&#039;s get in touch ===&lt;br /&gt;
We have 3 major communication channels: Our [https://mailman.videolan.org/mailman/listinfo mailing-lists] to discuss patches and further development related topics. Furthermore, we have our [http://forum.videolan.org web forums] for VLC-related end-user support - a VLMC section will be created once the product is published. Finally, there is our IRC channel &#039;&#039;#videolan&#039;&#039; (for libVLC) and &#039;&#039;#vlmc&#039;&#039; on the &#039;&#039;Freenode&#039;&#039; network. It&#039;s open to any kind of discussion. Usage issues, questions how to compile VLC/VLMC, getting to know the fellow developers, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Key ideas for VLMC ==&lt;br /&gt;
&lt;br /&gt;
=== Port to Android ===&lt;br /&gt;
&lt;br /&gt;
VLMC is now working on the desktop. It would be nice to port it also to the mobile world, starting by Android.&lt;br /&gt;
&lt;br /&gt;
This project would require to adapt to smaller screens, and simplify the UI to fit the Android workflow.&lt;br /&gt;
&lt;br /&gt;
This project requires &#039;&#039;&#039;C++/Qt/qml&#039;&#039;&#039; knowledge, and access to Android devices.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentors: Geoffrey/Hugo&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workflow rework ===&lt;br /&gt;
&lt;br /&gt;
VLMC is now working on the desktop, but it is quite slow and missing some use cases.&lt;br /&gt;
&lt;br /&gt;
This should be fixed in MLT framework backend for libVLC. See the work from the previous Summer of Code.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentors: Hugo&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workflow audio filters ===&lt;br /&gt;
&lt;br /&gt;
VLMC is now working on the desktop, but it is missing several audio and video filters.&lt;br /&gt;
&lt;br /&gt;
This project would add audio filters on the MLT framework backend using the LADSPA library or a similar open source library.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentors: J-B&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workflow video filters ===&lt;br /&gt;
&lt;br /&gt;
VLMC is now working on the desktop, but it is missing several audio and video filters.&lt;br /&gt;
&lt;br /&gt;
This project would add video filters on the MLT framework backend using the lv2 library or a similar open source library.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentors: Felix&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Key ideas for libVLC ==&lt;br /&gt;
&lt;br /&gt;
=== Fuzz libVLC with LibFuzzer ===&lt;br /&gt;
&lt;br /&gt;
libFuzzer ((http://llvm.org/docs/LibFuzzer.html).) is a library for coverage-guided fuzz testing.&lt;br /&gt;
&lt;br /&gt;
* The first step of this GSoC project is to implement Fuzz Targets (http://llvm.org/docs/LibFuzzer.html#fuzz-target) to test various parts of the libVLC project. The non exhaustive parts will be the following libVLC modules API: &amp;quot;decoder&amp;quot;, &amp;quot;encoder, &amp;quot;access&amp;quot;, &amp;quot;packetizer&amp;quot;, &amp;quot;demuxer&amp;quot;. For each parts, the student will have to understand the module API in order to effectively implement the target.&lt;br /&gt;
&lt;br /&gt;
* The second step is to find valid corpus (http://llvm.org/docs/LibFuzzer.html#corpus) for every module types and for every modules (mkv input for mkv demuxer, mp4 input for mp4 demuxer, h264 input for h264 decoder...).&lt;br /&gt;
&lt;br /&gt;
* The third step is to host and run the fuzzer. It&#039;s not decided yet if the fuzzer will be hosted by google (https://github.com/google/oss-fuzz) or by the VideoLan association.&lt;br /&gt;
&lt;br /&gt;
* If there is enough time, the fourth and final step is to fix the issues that has emerged during the previous steps.&lt;br /&gt;
&lt;br /&gt;
This project requires &#039;&#039;&#039;C&#039;&#039;&#039; and &#039;&#039;&#039;C++&#039;&#039;&#039; knowledge.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: tguillem&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== libVLC AirPlay support ===&lt;br /&gt;
&lt;br /&gt;
libVLC is now able to send video to the ChromeCast devices. We want to be able to do the same using the Airplay protocol, for Apple devices.&lt;br /&gt;
&lt;br /&gt;
We want to be able to do that from any device, including Android or Windows machines.&lt;br /&gt;
&lt;br /&gt;
This will use the new renderer APIs added in libVLC 3.0.&lt;br /&gt;
&lt;br /&gt;
This project requires &#039;&#039;&#039;C&#039;&#039;&#039; knowledge.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: steve&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== libVLC UPnP renderer support ===&lt;br /&gt;
&lt;br /&gt;
libVLC is now able to send video to the ChromeCast devices. We want to be able to do the same using the UPnP Renderer protocol, for all the connected TV devices that support this protocol.&lt;br /&gt;
&lt;br /&gt;
We want to be able to do that from any device, including Android, iOS or Windows machines.&lt;br /&gt;
&lt;br /&gt;
This will use the new renderer APIs added in libVLC 3.0.&lt;br /&gt;
&lt;br /&gt;
This project requires &#039;&#039;&#039;C&#039;&#039;&#039; knowledge.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: tguillem&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== VLC web interface modern look ===&lt;br /&gt;
&lt;br /&gt;
The Web interface of VLC is a very ugly player and we want to improve that quite a bit.&lt;br /&gt;
&lt;br /&gt;
This can be done in React, RxJS or Vue.JS to achieve a modern look, with transparency and cross-platform support.&lt;br /&gt;
&lt;br /&gt;
This project requires &#039;&#039;&#039;JavaScript&#039;&#039;&#039; knowledge and experience. The choice of the Framework can be changed if needed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: David Loiret&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== libVLC 3D video support ===&lt;br /&gt;
&lt;br /&gt;
libVLC is able to play most 2D and Side-By-Side videos, but the support of 3D is very limited.&lt;br /&gt;
&lt;br /&gt;
Because of 360 and VR support, the attention about 3D is getting very popular those days. We need to support that in libVLC.&lt;br /&gt;
&lt;br /&gt;
This project requires &#039;&#039;&#039;C&#039;&#039;&#039; knowledge.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: adrien&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== libVLC VR support ===&lt;br /&gt;
&lt;br /&gt;
libVLC is able to play most 2D and 360 videos, but the support of VR is very limited.&lt;br /&gt;
&lt;br /&gt;
Because of 360 and VR support, the attention about VR is getting very popular those days. We need to support that in libVLC.&lt;br /&gt;
&lt;br /&gt;
This project is mostly connecting a new headset to libVLC to get support in all libVLC applications.&lt;br /&gt;
&lt;br /&gt;
This project requires &#039;&#039;&#039;C&#039;&#039;&#039; knowledge.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: adrien&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== VLC macOS interface rework ===&lt;br /&gt;
&lt;br /&gt;
The VLC interface is quite outdated on macOS.&lt;br /&gt;
&lt;br /&gt;
This project for the summer is to rework heavily this interface to make it beautiful and useful again.&lt;br /&gt;
&lt;br /&gt;
This project requires &#039;&#039;&#039;Obj-C&#039;&#039;&#039; knowledge.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: David F&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== VLC Qt interface rework ===&lt;br /&gt;
&lt;br /&gt;
The VLC interface is quite outdated on Linux and Windows&lt;br /&gt;
&lt;br /&gt;
This project for the summer is to rework heavily this interface to make it beautiful and useful again.&lt;br /&gt;
&lt;br /&gt;
This project requires &#039;&#039;&#039;Qt/C++&#039;&#039;&#039; knowledge.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: J-B&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== VLC cryptographic updates ===&lt;br /&gt;
&lt;br /&gt;
VLC is already using GPG signatures to achieve secure updates on the Windows platform. But the updates are currently signed&lt;br /&gt;
with a single master key which is pinned into the source code and VLCs in the wild aren&#039;t able to check for revocations of this key.&lt;br /&gt;
&lt;br /&gt;
Therefore we would like to improve this situation by:&lt;br /&gt;
&lt;br /&gt;
* being able to sign developers&#039; keys that can sign VLC binaries on behalf of this master key&lt;br /&gt;
* support revocations of these developer&#039;s key&lt;br /&gt;
* provide a master key upgrade path&lt;br /&gt;
&lt;br /&gt;
This project requires solid notions of &#039;&#039;&#039;C and Crypto&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: ???&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{GSoC}}&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Win32Compile&amp;diff=31388</id>
		<title>Win32Compile</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Win32Compile&amp;diff=31388"/>
		<updated>2016-11-03T09:56:52Z</updated>

		<summary type="html">&lt;p&gt;Etix: /* Prepare 3rd party libraries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will help you to compile {{VLC}} for [[Windows]].&lt;br /&gt;
&lt;br /&gt;
== Building Methods ==&lt;br /&gt;
&lt;br /&gt;
If you want to build VLC from source, you have several choices: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method &lt;br /&gt;
! Documentation &lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;MinGW on Linux&#039;&#039;&#039; &lt;br /&gt;
| [[Win32Compile#Obtaining_the_toolchain|Obtaining the toolchain]]&lt;br /&gt;
| &#039;&#039;&#039;Preferred&#039;&#039;&#039; method involving cross-compilation from Linux. On computers running Microsoft Windows, a virtual machine is necessary to run Linux.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;[http://www.mingw.org MSYS+MinGW]&#039;&#039;&#039; on Windows&lt;br /&gt;
| [[Win32CompileMSYS|Compile with MSys]] &lt;br /&gt;
| &#039;&#039;&#039;Native&#039;&#039;&#039; compilation method. MSYS is a minimal build environment to compile Unix-style projects directly on Microsoft Windows. This is &#039;&#039;&#039;not officially supported&#039;&#039;&#039; by VideoLAN. Best of luck.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Cygwin&#039;&#039;&#039; on Windows&lt;br /&gt;
| [[Win32CompileCygwinNew|Compile with Cygwin]] &lt;br /&gt;
| Cygwin method. Cygwin emulates a POSIX environment to compile on Microsoft Windows. This is &#039;&#039;&#039;error&#039;&#039;&#039;-prone and &#039;&#039;&#039;slow&#039;&#039;&#039; and therefore not recommended.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Obtaining the cross-compilation toolchain  ==&lt;br /&gt;
All this howto is focused on  &#039;&#039;&#039;Debian/Ubuntu&#039;&#039;&#039;. For other distribution, please find the related package names, but they should be very similar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ubuntu 14.04&#039;&#039;&#039; is too old to compile VLC.&lt;br /&gt;
&lt;br /&gt;
=== Compiler and binary toolchain ===&lt;br /&gt;
&lt;br /&gt;
==== Mingw-w64 ====&lt;br /&gt;
To compile VLC for Windows (32-bits or 64-bits), the Mingw-w64 toolchain is required:&lt;br /&gt;
&lt;br /&gt;
For the 32-bit version, run this:&lt;br /&gt;
 # apt-get install gcc-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64-tools&lt;br /&gt;
&lt;br /&gt;
For the 64-bit version, this becomes:&lt;br /&gt;
 # apt-get install gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64-tools&lt;br /&gt;
&lt;br /&gt;
=== Development tools ===&lt;br /&gt;
You will also need:&lt;br /&gt;
* lua (5.2)&lt;br /&gt;
* all autotools: libtool, automake, autoconf, autopoint, make, gettext, pkg-config&lt;br /&gt;
* qt4-dev-tools, qt5-default (or qt4-default if qt plugin build fails)&lt;br /&gt;
* git, subversion cmake, cvs if you want to rebuild contribs&lt;br /&gt;
* wine-dev for creating Win32 packages&lt;br /&gt;
* zip [for creating .zip package], p7zip [for .7z package], nsis [for .exe auto-installer], bzip2 [for &#039;make prebuild]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Run:&#039;&#039;&#039;&lt;br /&gt;
 # apt-get install lua5.2 libtool automake autoconf autopoint make gettext pkg-config&lt;br /&gt;
 # apt-get install qt4-dev-tools qt5-default git subversion cmake cvs &lt;br /&gt;
 # apt-get install wine64-development-tools zip p7zip nsis bzip2&lt;br /&gt;
 # apt-get install yasm ragel ant default-jdk protobuf-compiler dos2unix&lt;br /&gt;
&lt;br /&gt;
=== Host triplet ===&lt;br /&gt;
A number of example commands below include the toolchain identifier, called the &#039;&#039;host triplet&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This value is &#039;&#039;&#039;essential&#039;&#039;&#039;: it instructs the build system to use the correct toolchain and compile the program for Windows.&lt;br /&gt;
Without the value, the build system will perform a native compilation for Linux (or whatever your computer runs). With an incorrect value, the build will fail.&lt;br /&gt;
&lt;br /&gt;
The exact value depends on your installation of the toolchain.&lt;br /&gt;
&lt;br /&gt;
Notably on Debian/Ubuntu, these values must be used:&lt;br /&gt;
* &#039;&#039;i686-w64-mingw32&#039;&#039; for Windows 32-bits, using the Mingw-w64 toolchain&lt;br /&gt;
* &#039;&#039;x86_64-w64-mingw32&#039;&#039; for Windows 64-bits, using the Mingw-w64 toolchain&lt;br /&gt;
&lt;br /&gt;
== Get the source code ==&lt;br /&gt;
 $ git clone http://git.videolan.org/git/vlc.git vlc&lt;br /&gt;
&lt;br /&gt;
See [[Git]] for more information.&lt;br /&gt;
&lt;br /&gt;
== Go into the VLC directory ==&lt;br /&gt;
 $ cd vlc&lt;br /&gt;
&lt;br /&gt;
== Prepare [[Contrib Status|3rd party libraries]]  ==&lt;br /&gt;
&lt;br /&gt;
Before compiling VLC, you need lots of other libraries. Here is how to get them: &lt;br /&gt;
  $ mkdir -p contrib/win32&lt;br /&gt;
  $ cd contrib/win32&lt;br /&gt;
  $ ../bootstrap --host=i686-w64-mingw32&lt;br /&gt;
  $ make prebuilt&lt;br /&gt;
&lt;br /&gt;
or, if you want to compile the contribs yourself and are feeling adventurous and have lots of time to burn,&lt;br /&gt;
  # apt-get install subversion yasm cvs cmake ragel autopoint&lt;br /&gt;
&lt;br /&gt;
  $ mkdir -p contrib/win32&lt;br /&gt;
  $ cd contrib/win32&lt;br /&gt;
  $ ../bootstrap --host=i686-w64-mingw32&lt;br /&gt;
  $ make fetch&lt;br /&gt;
  $ make&lt;br /&gt;
&lt;br /&gt;
=== Linux 64-bit ===&lt;br /&gt;
&lt;br /&gt;
If you are on Linux &#039;&#039;&#039;64-bit&#039;&#039;&#039;, you &#039;&#039;&#039;SHOULD&#039;&#039;&#039; remove some files, or install the lib32 packages (ia32-libs, multilibs, etc...)&lt;br /&gt;
&lt;br /&gt;
  $ rm -f ../i686-w64-mingw32/bin/moc ../i686-w64-mingw32/bin/uic ../i686-w64-mingw32/bin/rcc&lt;br /&gt;
&lt;br /&gt;
=== Fix your contrib path ===&lt;br /&gt;
&lt;br /&gt;
If your host triplet is not &#039;&#039;&#039;i686-w64-mingw32&#039;&#039;&#039; (you are &#039;&#039;not&#039;&#039; compiling for Debian or Ubuntu), create a symlink to contribs:&lt;br /&gt;
 $ ln -sf &#039;&#039;&#039;&#039;&#039;insert_your_host_triplet_here&#039;&#039;&#039;&#039;&#039; ../i686-w64-mingw32&lt;br /&gt;
So, for example:&lt;br /&gt;
 $ ln -sf x86_64-w64-mingw32 ../i686-w64-mingw32&lt;br /&gt;
Notice that there is no &amp;lt;code&amp;gt;../&amp;lt;/code&amp;gt; before the host triplet. This is intentional, and if done properly, you should see a functioning symbolic link created in the parent directory (try &amp;lt;code&amp;gt;ls -l ..&amp;lt;/code&amp;gt; and you should see &amp;lt;code&amp;gt;i686-w64-mingw32 -&amp;gt; x86_64-w64-mingw32/&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Go Back  ===&lt;br /&gt;
&lt;br /&gt;
Go back to the VLC source directory: &lt;br /&gt;
&lt;br /&gt;
  $ cd -&lt;br /&gt;
&lt;br /&gt;
== Configuring the build  ==&lt;br /&gt;
&lt;br /&gt;
=== Bootstrap ===&lt;br /&gt;
First, prepare the tree:&lt;br /&gt;
  $ ./bootstrap&lt;br /&gt;
&lt;br /&gt;
=== Configure ===&lt;br /&gt;
Then you can to configure the build with the &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; script. &lt;br /&gt;
&lt;br /&gt;
Create a subfolder:&lt;br /&gt;
  $ mkdir win32 &amp;amp;&amp;amp; cd win32&lt;br /&gt;
&lt;br /&gt;
Set your PKG_CONFIG_LIBDIR&lt;br /&gt;
  $ export PKG_CONFIG_LIBDIR=$HOME/vlc/contrib/i686-w64-mingw32/lib/pkgconfig&lt;br /&gt;
  $ export PKG_CONFIG_PATH_CUSTOM=$PKG_CONFIG_LIBDIR (for Archlinux only)&lt;br /&gt;
&lt;br /&gt;
Execute the build configuration script:&lt;br /&gt;
 $ ../extras/package/win32/configure.sh --host=i686-w64-mingw32 --build=x86_64-pc-linux-gnu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;N.B.&#039;&#039;&#039;:&lt;br /&gt;
Use the host and build tuples respectively corresponding to &#039;&#039;&#039;your&#039;&#039;&#039; cross-compilation toolchain and build system respectively. The example above assumes you are compiling for &#039;&#039;Windows&#039;&#039; OS and &#039;&#039;Intel 686&#039;&#039; architecture, and the build system is &#039;&#039;GNU/Linux&#039;&#039; OS and &#039;&#039;x86 64-bits&#039;&#039; architecture. See [[#Host_triplet|above]] for list of common values.&lt;br /&gt;
&lt;br /&gt;
Also, if you have a problem here (such as an error about Library dvdread), see the [[Talk:Win32Compile|Talk]] page.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can run configure manually:&lt;br /&gt;
 $ ../configure --host=i686-w64-mingw32 --build=x86_64-pc-linux-gnu&lt;br /&gt;
See &amp;lt;code&amp;gt;&#039;../configure --help&#039;&amp;lt;/code&amp;gt; for more information.&lt;br /&gt;
&lt;br /&gt;
== Building VLC  ==&lt;br /&gt;
&lt;br /&gt;
Once configured, to build VLC, just run:&lt;br /&gt;
  $ make&lt;br /&gt;
&lt;br /&gt;
== Packaging VLC ==&lt;br /&gt;
Once the compilation is done, you can build self-contained VLC packages with the following &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; rules: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command &lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win-common&amp;lt;/code&amp;gt;&lt;br /&gt;
| Creates a subdirectory named &amp;lt;code&amp;gt;vlc-x.x.x&amp;lt;/code&amp;gt; with all the binaries. You can run VLC directly from this directory.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win-strip&amp;lt;/code&amp;gt;&lt;br /&gt;
| Same as above but will create &#039;stripped&#039; binaries (that is, smallest size, unusable with a debugger).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win32-7zip&amp;lt;/code&amp;gt;&lt;br /&gt;
| Same as above but will package the directory in a 7z file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win32-zip&amp;lt;/code&amp;gt;&lt;br /&gt;
| Same as above but will package the directory in a zip file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win32&amp;lt;/code&amp;gt;&lt;br /&gt;
| Same as above but will also create an auto-installer package. You must have NSIS installed in its default location for this to work.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Well done—you&#039;re ready to use VLC!&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
== Extra information ==&lt;br /&gt;
&lt;br /&gt;
=== Static compilation of plugins ===&lt;br /&gt;
You might want to use the following script to enforce static compilation.&lt;br /&gt;
Run as root, and use at your own risk.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # This script enforces statically linking of libgcc, libstdc++-6, and libpthread,&lt;br /&gt;
 # without needing to rebuild gcc and mingw-w64 from scratch.&lt;br /&gt;
 # -static-libgcc -static-libstdc++ flags can not be used in a libtool build system,&lt;br /&gt;
 # as libtool removes flags that it doesn&#039;t understand.&lt;br /&gt;
 &lt;br /&gt;
 move() {&lt;br /&gt;
     [ -f $1 ] || return 1&lt;br /&gt;
     mkdir -p old/&lt;br /&gt;
     mv -v $* old/&lt;br /&gt;
     return 0&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 for x in i686 x86_64&lt;br /&gt;
 do&lt;br /&gt;
     library_path_list=`$x-w64-mingw32-gcc -v /dev/null 2&amp;gt;&amp;amp;1 | grep ^LIBRARY_PATH|cut -d= -f2|sort|uniq`&lt;br /&gt;
     IFS=&#039;:&#039;&lt;br /&gt;
     for i in $library_path_list&lt;br /&gt;
     do&lt;br /&gt;
         cd $i&lt;br /&gt;
         move libstdc++-6.dll libstdc++.dll.a libgcc_s.a libgcc_s_sjlj-1.dll &amp;amp;&amp;amp; ln -s libgcc_eh.a libgcc_s.a&lt;br /&gt;
         move libpthread.dll.a libwinpthread.dll.a&lt;br /&gt;
         move libwinpthread-1.dll&lt;br /&gt;
         [ -d ../bin ] &amp;amp;&amp;amp; cd ../bin &amp;amp;&amp;amp; move libwinpthread-1.dll&lt;br /&gt;
     done&lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
=== Mingw32 ===&lt;br /&gt;
Up to versions 2.0.x, VLC was compiled with the older mingw32 toolchain, which only supports 32-bits Windows. If you have problems with mingw-w64, you can try mingw32 instead:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Debian/Ubuntu&#039;&#039;&#039;: run &amp;lt;code&amp;gt;apt-get install gcc-mingw32 mingw32-binutils&amp;lt;/code&amp;gt;. Note that at least version 3.17 of Mingw32 is required, which Debian does not provide. You may obtain mingw32-runtime-3.17 [http://people.videolan.org/~jb/debian/mingw32-runtime_3.17.0-0videolan_all.deb here].&lt;br /&gt;
* &#039;&#039;&#039;Gentoo&#039;&#039;&#039; users can &amp;lt;code&amp;gt;emerge crossdev &amp;amp;amp;&amp;amp;amp; crossdev mingw32&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;ArchLinux&#039;&#039;&#039; users can &amp;lt;code&amp;gt;pacman -S mingw32-gcc&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Fedora&#039;&#039;&#039; users should read [[Win32Compile Under Fedora]]&lt;br /&gt;
* Other &#039;&#039;&#039;Linux&#039;&#039;&#039; systems may attempt http://www.mingw.org/wiki/LinuxCrossMinGW&lt;br /&gt;
&lt;br /&gt;
[[Category:Building]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Mirrors&amp;diff=31245</id>
		<title>Mirrors</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Mirrors&amp;diff=31245"/>
		<updated>2016-10-19T09:13:21Z</updated>

		<summary type="html">&lt;p&gt;Etix: Crontab: change the minutes given as example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mirrors =&lt;br /&gt;
&lt;br /&gt;
Our mirrors are kindly operated by sponsors, you can find the complete list [http://www.videolan.org/videolan/mirrors.html here]. If you would like to provide a mirror to the VideoLAN project please read the following sections.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* A public mirror available in HTTP&lt;br /&gt;
* About 30 GB of disk space at this time&lt;br /&gt;
* At least 1 Gbps connectivity&lt;br /&gt;
* At &#039;&#039;&#039;least&#039;&#039;&#039; 4 rsync per day (more is better!)&lt;br /&gt;
* Either an rsync or FTP server access to scan the actual state of your mirror (rsync is preferred)&lt;br /&gt;
&lt;br /&gt;
== Setting up a mirror ==&lt;br /&gt;
&lt;br /&gt;
The first step is to clone the rsync repository using the following command:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;rsync --verbose --recursive --times --links --hard-links --perms --stats --delete-after --timeout=300 rsync://rsync.videolan.org/videolan-ftp &#039;&#039;/path/to/repository/destination&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Edit your crontab (crontab -e) to sync the cron every hour:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;11 * * * * sleep $(($RANDOM/1024)); rsync --verbose --recursive --times --links --hard-links --perms --stats --delete-after --timeout=300 rsync://rsync.videolan.org/videolan-ftp &#039;&#039;/path/to/repository/destination&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Setup a web server to serve the repository preferably with [http://wiki.nginx.org/ nginx] or [http://httpd.apache.org/ Apache].&lt;br /&gt;
&lt;br /&gt;
Finally setup a read-only rsync daemon using a similar configuration:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[videolan]&lt;br /&gt;
    path = /path/to/repository/destination&lt;br /&gt;
    comment = VideoLAN repository&lt;br /&gt;
    uid = nobody&lt;br /&gt;
    gid = nogroup&lt;br /&gt;
    read only = yes&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: if you&#039;re using a CDN in front of the repository be sure to clear the cache at least once a day!&lt;br /&gt;
&lt;br /&gt;
== How do we manage mirrors ==&lt;br /&gt;
&lt;br /&gt;
On the VideoLAN side, in order to provide the best service to our users we&#039;re running [https://github.com/etix/mirrorbits Mirrorbits], a mirror management software that will transparently redirect users to the closest mirror.&lt;br /&gt;
&lt;br /&gt;
It is also in charge of scanning the mirrors, ensuring they are up and running and it knows which files are served by your mirror. The system will automatically scan you mirror (using rsync or FTP) every now and then and do some health checks on the HTTP side every minute. If you have any concern related to a high bandwidth usage please tell us, we will reduce the weight of your mirror.&lt;br /&gt;
&lt;br /&gt;
== Contact us ==&lt;br /&gt;
&lt;br /&gt;
Once your mirror is setup, please [mailto:mirrors@videolan.org contact us] and be sure to send:&lt;br /&gt;
* A name and contact email address&lt;br /&gt;
* HTTP, FTP (if applicable) and rsync URLs to the file tree on your server&lt;br /&gt;
* The name, URL and logo of the operator / organization / sponsor you represent (preferably in 137x54)&lt;br /&gt;
&lt;br /&gt;
After reviewing your application your mirror will be added to our load balancer.&lt;br /&gt;
&lt;br /&gt;
[[Category:About VideoLAN]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Win32Compile&amp;diff=31098</id>
		<title>Win32Compile</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Win32Compile&amp;diff=31098"/>
		<updated>2016-03-24T14:31:32Z</updated>

		<summary type="html">&lt;p&gt;Etix: Update for Archlinux&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will help you to compile {{VLC}} for [[Windows]].&lt;br /&gt;
&lt;br /&gt;
== Building Methods ==&lt;br /&gt;
&lt;br /&gt;
If you want to build VLC from source, you have several choices: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Method &lt;br /&gt;
! Documentation &lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;MinGW on Linux&#039;&#039;&#039; &lt;br /&gt;
| [[Win32Compile#Obtaining_the_toolchain|Obtaining the toolchain]]&lt;br /&gt;
| &#039;&#039;&#039;Preferred&#039;&#039;&#039; method involving cross-compilation from Linux. On computers running Microsoft Windows, a virtual machine is necessary to run Linux.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;[http://www.mingw.org MSYS+MinGW]&#039;&#039;&#039; on Windows&lt;br /&gt;
| [[Win32CompileMSYS|Compile with MSys]] &lt;br /&gt;
| &#039;&#039;&#039;Native&#039;&#039;&#039; compilation method. MSYS is a minimal build environment to compile Unix-style projects directly on Microsoft Windows. This is &#039;&#039;&#039;not officially supported&#039;&#039;&#039; by VideoLAN. Best of luck.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Cygwin&#039;&#039;&#039; on Windows&lt;br /&gt;
| [[Win32CompileCygwinNew|Compile with Cygwin]] &lt;br /&gt;
| Cygwin method. Cygwin emulates a POSIX environment to compile on Microsoft Windows. This is &#039;&#039;&#039;error&#039;&#039;&#039;-prone and &#039;&#039;&#039;slow&#039;&#039;&#039; and therefore not recommended.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Obtaining the cross-compilation toolchain  ==&lt;br /&gt;
&lt;br /&gt;
=== Compiler and binary toolchain ===&lt;br /&gt;
&lt;br /&gt;
==== Mingw-w64 ====&lt;br /&gt;
To compile VLC for Windows (32-bits or 64-bits), the Mingw-w64 toolchain is required:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Debian/Ubuntu&#039;&#039;&#039;: run &amp;lt;code&amp;gt;apt-get install gcc-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
For the 64-bit version, this becomes &amp;lt;code&amp;gt;apt-get install gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(on Debian you must be on wheezy or above to find this package)&lt;br /&gt;
&lt;br /&gt;
You might want to use the following script to enforce static compilation.&lt;br /&gt;
Run as root, and use at your own risk.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 # This script enforces statically linking of libgcc, libstdc++-6, and libpthread,&lt;br /&gt;
 # without needing to rebuild gcc and mingw-w64 from scratch.&lt;br /&gt;
 # -static-libgcc -static-libstdc++ flags can not be used in a libtool build system,&lt;br /&gt;
 # as libtool removes flags that it doesn&#039;t understand.&lt;br /&gt;
 &lt;br /&gt;
 move() {&lt;br /&gt;
     [ -f $1 ] || return 1&lt;br /&gt;
     mkdir -p old/&lt;br /&gt;
     mv -v $* old/&lt;br /&gt;
     return 0&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 for x in i686 x86_64&lt;br /&gt;
 do&lt;br /&gt;
     library_path_list=`$x-w64-mingw32-gcc -v /dev/null 2&amp;gt;&amp;amp;1 | grep ^LIBRARY_PATH|cut -d= -f2|sort|uniq`&lt;br /&gt;
     IFS=&#039;:&#039;&lt;br /&gt;
     for i in $library_path_list&lt;br /&gt;
     do&lt;br /&gt;
         cd $i&lt;br /&gt;
         move libstdc++-6.dll libstdc++.dll.a libgcc_s.a libgcc_s_sjlj-1.dll &amp;amp;&amp;amp; ln -s libgcc_eh.a libgcc_s.a&lt;br /&gt;
         move libpthread.dll.a libwinpthread.dll.a&lt;br /&gt;
         move libwinpthread-1.dll&lt;br /&gt;
         [ -d ../bin ] &amp;amp;&amp;amp; cd ../bin &amp;amp;&amp;amp; move libwinpthread-1.dll&lt;br /&gt;
     done&lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
==== Mingw32 ====&lt;br /&gt;
Up to versions 2.0.x, VLC was compiled with the older mingw32 toolchain, which only supports 32-bits Windows. If you have problems with mingw-w64, you can try mingw32 instead:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Debian/Ubuntu&#039;&#039;&#039;: run &amp;lt;code&amp;gt;apt-get install gcc-mingw32 mingw32-binutils&amp;lt;/code&amp;gt;. Note that at least version 3.17 of Mingw32 is required, which Debian does not provide. You may obtain mingw32-runtime-3.17 [http://people.videolan.org/~jb/debian/mingw32-runtime_3.17.0-0videolan_all.deb here].&lt;br /&gt;
* &#039;&#039;&#039;Gentoo&#039;&#039;&#039; users can &amp;lt;code&amp;gt;emerge crossdev &amp;amp;amp;&amp;amp;amp; crossdev mingw32&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;ArchLinux&#039;&#039;&#039; users can &amp;lt;code&amp;gt;pacman -S mingw32-gcc&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Fedora&#039;&#039;&#039; users should read [[Win32Compile Under Fedora]]&lt;br /&gt;
* Other &#039;&#039;&#039;Linux&#039;&#039;&#039; systems may attempt http://www.mingw.org/wiki/LinuxCrossMinGW&lt;br /&gt;
&lt;br /&gt;
=== Development tools ===&lt;br /&gt;
You will also need:&lt;br /&gt;
* lua (5.1 or 5.2)&lt;br /&gt;
* all autotools: libtool, automake, autoconf, autopoint, make, gettext&lt;br /&gt;
* pkg-config&lt;br /&gt;
* qt4-dev-tools, qt5-default (or qt4-default if qt plugin build fails)&lt;br /&gt;
* git&lt;br /&gt;
* subversion&lt;br /&gt;
* cmake, cvs if you want to rebuild contribs&lt;br /&gt;
* wine-dev for creating Win32 packages&lt;br /&gt;
* zip [for creating .zip package], p7zip [for .7z package], nsis [for .exe auto-installer], bzip2 [for &#039;make prebuild]&lt;br /&gt;
&lt;br /&gt;
=== Host triplet ===&lt;br /&gt;
A number of example commands below include the identifier of the toolchain. This value is &#039;&#039;&#039;essential&#039;&#039;&#039;: it instructs the build system to use the correct toolchain and compile the program for Windows. Without the value, the build system will perform a native compilation for Linux (or whatever your computer runs). With an incorrect value, the build will fail.&lt;br /&gt;
&lt;br /&gt;
This is known as the &#039;&#039;host triplet&#039;&#039;, although it&#039;s more of a pair than a triplet in the case of Mingw. The exact value depends on your installation of the toolchain. Notably on Debian/Ubuntu, these values must be used:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;i686-w64-mingw32&#039;&#039; for Windows 32-bits, using the Mingw-w64 toolchain&lt;br /&gt;
* &#039;&#039;x86_64-w64-mingw32&#039;&#039; for Windows 64-bits, using the Mingw-w64 toolchain&lt;br /&gt;
* &#039;&#039;i586-mingw32msvc&#039;&#039; for Windows 32-bits, using the Mingw32 toolchain&lt;br /&gt;
&lt;br /&gt;
Again, you &#039;&#039;&#039;MUST&#039;&#039;&#039; substitute the value in the following command snippets.&lt;br /&gt;
&lt;br /&gt;
== Get the source code ==&lt;br /&gt;
 $ git clone http://git.videolan.org/git/vlc.git vlc&lt;br /&gt;
&lt;br /&gt;
See [[Git]] for more information.&lt;br /&gt;
&lt;br /&gt;
== Go into the VLC directory ==&lt;br /&gt;
 $ cd vlc&lt;br /&gt;
&lt;br /&gt;
== Prepare [[Contrib Status|3rd party libraries]]  ==&lt;br /&gt;
&lt;br /&gt;
Before compiling VLC, you need lots of other libraries. Here is how to get them: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ubuntu 14.04 LTS&#039;&#039;&#039; Mingw32-w64 toolchain has an issue with accepting explicit PKG_CONFIG_PATH.&lt;br /&gt;
Patch mentioned in  https://bugs.launchpad.net/ubuntu/+source/mingw-w64/+bug/1327242&lt;br /&gt;
needs to be applied to /usr/share/pkg-config-crosswrapper&lt;br /&gt;
&lt;br /&gt;
  $ mkdir -p contrib/win32&lt;br /&gt;
  $ cd contrib/win32&lt;br /&gt;
  $ ../bootstrap --host=i686-w64-mingw32&lt;br /&gt;
  $ make prebuilt&lt;br /&gt;
&lt;br /&gt;
or, if you want to compile the contribs yourself and are feeling adventurous and have lots of time to burn,&lt;br /&gt;
  # apt-get install subversion yasm cvs cmake ragel&lt;br /&gt;
&lt;br /&gt;
  $ mkdir -p contrib/win32&lt;br /&gt;
  $ cd contrib/win32&lt;br /&gt;
  $ ../bootstrap --host=i686-w64-mingw32&lt;br /&gt;
  $ make fetch&lt;br /&gt;
  $ make&lt;br /&gt;
&lt;br /&gt;
=== Linux 64-bit ===&lt;br /&gt;
&lt;br /&gt;
If you are on Linux &#039;&#039;&#039;64-bit&#039;&#039;&#039;, you &#039;&#039;&#039;SHOULD&#039;&#039;&#039; remove some files, or install the lib32 packages (ia32-libs, multilibs, etc...)&lt;br /&gt;
&lt;br /&gt;
  $ rm -f ../i686-w64-mingw32/bin/moc ../i686-w64-mingw32/bin/uic ../i686-w64-mingw32/bin/rcc&lt;br /&gt;
&lt;br /&gt;
=== Fix your contrib path ===&lt;br /&gt;
&lt;br /&gt;
If your host triplet is not &#039;&#039;&#039;i686-w64-mingw32&#039;&#039;&#039; (you are &#039;&#039;not&#039;&#039; compiling for Debian or Ubuntu), create a symlink to contribs:&lt;br /&gt;
 $ ln -sf &#039;&#039;&#039;&#039;&#039;insert_your_host_triplet_here&#039;&#039;&#039;&#039;&#039; ../i686-w64-mingw32&lt;br /&gt;
So, for example:&lt;br /&gt;
 $ ln -sf x86_64-w64-mingw32 ../i686-w64-mingw32&lt;br /&gt;
Notice that there is no &amp;lt;code&amp;gt;../&amp;lt;/code&amp;gt; before the host triplet. This is intentional, and if done properly, you should see a functioning symbolic link created in the parent directory (try &amp;lt;code&amp;gt;ls -l ..&amp;lt;/code&amp;gt; and you should see &amp;lt;code&amp;gt;i686-w64-mingw32 -&amp;gt; x86_64-w64-mingw32/&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Go Back  ===&lt;br /&gt;
&lt;br /&gt;
Go back to the VLC source directory: &lt;br /&gt;
&lt;br /&gt;
  $ cd -&lt;br /&gt;
&lt;br /&gt;
== Configuring the build  ==&lt;br /&gt;
&lt;br /&gt;
=== Bootstrap ===&lt;br /&gt;
First, prepare the tree:&lt;br /&gt;
  $ ./bootstrap&lt;br /&gt;
&lt;br /&gt;
=== Configure ===&lt;br /&gt;
Then you can to configure the build with the &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; script. &lt;br /&gt;
&lt;br /&gt;
Create a subfolder:&lt;br /&gt;
  $ mkdir win32 &amp;amp;&amp;amp; cd win32&lt;br /&gt;
&lt;br /&gt;
Set your PKG_CONFIG_LIBDIR&lt;br /&gt;
  $ export PKG_CONFIG_LIBDIR=$HOME/vlc/contrib/i686-w64-mingw32/lib/pkgconfig&lt;br /&gt;
  $ export PKG_CONFIG_PATH_CUSTOM=$PKG_CONFIG_LIBDIR (for Archlinux only)&lt;br /&gt;
&lt;br /&gt;
Use the standard configuration: &lt;br /&gt;
 $ ../extras/package/win32/configure.sh --host=i686-w64-mingw32&lt;br /&gt;
&#039;&#039;&#039;NB&#039;&#039;&#039;: use &#039;&#039;&#039;YOUR&#039;&#039;&#039; cross-compiling prefix here, like &#039;&#039;i486-mingw32&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Also, if you have a problem here (such as an error about Library dvdread), see the [[Talk:Win32Compile|Talk]] page.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can run configure manually:&lt;br /&gt;
 $ ../configure --host=i686-w64-mingw32&lt;br /&gt;
See &amp;lt;code&amp;gt;&#039;../configure --help&#039;&amp;lt;/code&amp;gt; for more information.&lt;br /&gt;
&lt;br /&gt;
== Building VLC  ==&lt;br /&gt;
&lt;br /&gt;
Once configured, to build VLC, just run:&lt;br /&gt;
  $ make&lt;br /&gt;
&lt;br /&gt;
== Packaging VLC ==&lt;br /&gt;
Once the compilation is done, you can build self-contained VLC packages with the following &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; rules: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command &lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win-common&amp;lt;/code&amp;gt;&lt;br /&gt;
| Creates a subdirectory named &amp;lt;code&amp;gt;vlc-x.x.x&amp;lt;/code&amp;gt; with all the binaries. You can run VLC directly from this directory.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win-strip&amp;lt;/code&amp;gt;&lt;br /&gt;
| Same as above but will create &#039;stripped&#039; binaries (that is, smallest size, unusable with a debugger).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win32-7zip&amp;lt;/code&amp;gt;&lt;br /&gt;
| Same as above but will package the directory in a 7z file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win32-zip&amp;lt;/code&amp;gt;&lt;br /&gt;
| Same as above but will package the directory in a zip file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;make package-win32&amp;lt;/code&amp;gt;&lt;br /&gt;
| Same as above but will also create an auto-installer package. You must have NSIS installed in its default location for this to work.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Well done—you&#039;re ready to use VLC!&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[[Category:Building]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Outreachy_May_2016&amp;diff=30743</id>
		<title>Outreachy May 2016</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Outreachy_May_2016&amp;diff=30743"/>
		<updated>2016-02-15T17:44:48Z</updated>

		<summary type="html">&lt;p&gt;Etix: Remove proposal from last year&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page covers the work of the [[VideoLAN]] project as a mentoring organization for [https://wiki.gnome.org/Outreachy Outreachy the successor of the Outreach Program for Women], in order to improve {{VLC}} and [[VLMC]]. &lt;br /&gt;
&lt;br /&gt;
To find generic information about the Outreachy program, please see the &#039;&#039;&#039;[https://wiki.gnome.org/Outreachy official website]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== VLC media player  ===&lt;br /&gt;
&lt;br /&gt;
{{VLC}} is a cross-platform multimedia player, encoder and streamer application. It is one of the most successful [http://www.videolan.org/videolan/ open-source projects without any professional structure] underneath. &lt;br /&gt;
&lt;br /&gt;
{{VLC}} is downloaded at an approximate monthly rate of 40 millions from the main website and that&#039;s not including third-party distributions (like Linux, BSD, Android or iOS)! &lt;br /&gt;
&lt;br /&gt;
You can find more information on [http://en.wikipedia.org/wiki/VLC_media_player VLC on Wikipedia] or on this [[Main Page|wiki]].&lt;br /&gt;
&lt;br /&gt;
=== VideoLAN Movie Creator ===&lt;br /&gt;
[[VLMC]] is a cross-platform non-linear video editing software based on VLC technology. It was started as a final year student project at the French IT school [http://www.epitech.eu EPITECH].&lt;br /&gt;
&lt;br /&gt;
[[VLMC]] currently awaits a transition to the current libvlc API and it&#039;s actual 1.0 release!&lt;br /&gt;
&lt;br /&gt;
=== Outreachy May 2016  ===&lt;br /&gt;
&lt;br /&gt;
If selected and developed, Outreachy projects for VLC or VLMC will be included in later releases.&lt;br /&gt;
&lt;br /&gt;
All projects are covered by the GPL (v2+) or LGPL (v2.1+) licenses depending on the module.&lt;br /&gt;
&lt;br /&gt;
=== VLC and VLMC Idea categories ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; You should really read this&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
This page is split in three lists of ideas: &lt;br /&gt;
&lt;br /&gt;
#The &#039;&#039;main ideas&#039;&#039; are what seem to be &#039;&#039;key projects&#039;&#039; for VLC or VLMC and should be more &#039;&#039;thrilling&#039;&#039; than the other ones; we have assigned a potential mentor to each of these. &lt;br /&gt;
#The other ideas are less detailed but could be good ideas too. &lt;br /&gt;
#[[Mini Projects]] are short-span projects which can be given as Qualification tasks or extended to be a full project.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Original good ideas will be valued&#039;&#039;&#039;. We don&#039;t want to impose anything. This is Free and Open Source software.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to apply for Outreachy but want other ideas to develop on, check the [[Mini Projects]] page! &lt;br /&gt;
&lt;br /&gt;
And on the IRC channel &#039;&#039;#videolan&#039;&#039; on the &#039;&#039;Freenode Network&#039;&#039;, you can have even more ideas.&lt;br /&gt;
&lt;br /&gt;
== Getting started  ==&lt;br /&gt;
&lt;br /&gt;
=== Compile VLC or VLMC ===&lt;br /&gt;
This may sound trivial, but it&#039;s harder than many expect. VLC&#039;s and VLMC&#039;s compilation chains are different for every operating system. They don&#039;t really use the default toolchains on Windows or OS X, but a simple *nix like ./configure &amp;amp;&amp;amp; make doesn&#039;t really do the trick either. We have plenty of information available on this wiki and we will happily provide help on our IRC channel.&lt;br /&gt;
&lt;br /&gt;
=== Provide a small patch ===&lt;br /&gt;
To demonstrate your skills, share a small patch with us. This will let you become familiar with [[Git]], in case you don&#039;t know it already and our process on [[Sending Patches VLC|merging patches]].&lt;br /&gt;
&lt;br /&gt;
=== Let&#039;s get in touch ===&lt;br /&gt;
We have 3 major communication channels at VideoLAN. Our [https://mailman.videolan.org/mailman/listinfo mailing-lists] to discuss patches and further development related topics. Furthermore, we have our [http://forum.videolan.org web forums] for end-user support. This means 2 things: 1) people using VLC media player on any operating system 2) people using libvlc or the VLC web plugin in their own applications or installations. Finally, there is our IRC channel &#039;&#039;#videolan&#039;&#039; on the &#039;&#039;Freenode&#039;&#039; network. It&#039;s open to any kind of discussion. Usage issues, questions how to compile VLC or VLMC, getting to know the fellow developers, etc.&lt;br /&gt;
&lt;br /&gt;
=== How to apply? ===&lt;br /&gt;
The application process for the May 2016 rout will open on February 16, 2015 and &#039;&#039;&#039;application deadline&#039;&#039;&#039; is &#039;&#039;&#039;March 22&#039;&#039;&#039; (no exceptions!). Please submit your application on the [https://outreachy.gnome.org official program website]. Previously, please check the [https://wiki.gnome.org/Outreachy#Eligibility eligibility requirements] :-)&lt;br /&gt;
&lt;br /&gt;
== Key ideas for VLMC  ==&lt;br /&gt;
&lt;br /&gt;
=== Implement a real Audio/Video sync ===&lt;br /&gt;
&lt;br /&gt;
So far, the lip-syncing strategy used by VLMC is pretty much &amp;quot;hope it works&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
As you would think, this quite often leads to desync, and thus makes VLMC unusable.&lt;br /&gt;
&lt;br /&gt;
We need to come up with a real synchronization strategy, quite likely based on an abstract clock &amp;amp; PTS&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: chouquette&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Plug-in new libvlcpp &amp;amp; medialibrary ===&lt;br /&gt;
&lt;br /&gt;
VLMC uses a from-sratch C++ binding to libvlc, which is stuck a few years in the past.&lt;br /&gt;
Meanwhile, a new binding got written (https://code.videolan.org/videolan/libvlcpp/tree/master), and needs to be plugged in.&lt;br /&gt;
&lt;br /&gt;
We also started working on a cross-platform media library, to replace the low-featured one, present in VLMC.&lt;br /&gt;
&lt;br /&gt;
This media library will handle discovering media for the used, instead of having to manually importing every single file. This should also allow us to kill some of the &amp;quot;Backend&amp;quot; code, as a fair share of it is designed to create thumbnails. This is now done by the medialibrary, and can go away from the VLMC source code.&lt;br /&gt;
&lt;br /&gt;
This probably requires a good C++ knowledge, as both libvlcpp &amp;amp; medialibrary make a heavy use of C++11 &amp;amp; templates meta-programming.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: chouquette&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Key ideas for VLC  ==&lt;br /&gt;
&lt;br /&gt;
=== Assembly optimizations in VLC  ===&lt;br /&gt;
&lt;br /&gt;
If you are fond of writing ASM and you are fluent in MMX/SSE2/SSE4, there are many interesting things in VLC to speed up. &lt;br /&gt;
&lt;br /&gt;
* Profiling VLC&lt;br /&gt;
* video filters ASM speedups (see modules/video_filter/blend.c) &lt;br /&gt;
* audio filters ASM speedups (see modules/audio_filter/equalizer.c) &lt;br /&gt;
* Porting other ASM video filters to VLC.&lt;br /&gt;
&lt;br /&gt;
This project needs some good ASM knowledge and good C experience. &lt;br /&gt;
&lt;br /&gt;
*Stuff to read: http://www.agner.org/optimize/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: [[User:J-b|jb]], flx42&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Advanced Audio Filters  ===&lt;br /&gt;
&lt;br /&gt;
We are looking for a skilled &#039;&#039;&#039;audiophile&#039;&#039;&#039; that knows a lot about audio theory and practice to work on new audio filters.&lt;br /&gt;
&lt;br /&gt;
Notably:&lt;br /&gt;
* SRS WoW like or other 3D effects;&lt;br /&gt;
* channels mixing, notably upmixing, like Prologic-II;&lt;br /&gt;
* tracks mixing, and transitions;&lt;br /&gt;
* scriptable new audio filters in lua and enable users to create whatever audio filtering function they want in a Lua script;&lt;br /&gt;
* LADSPA or other libraries integration.&lt;br /&gt;
&lt;br /&gt;
This project needs some good audio knowledge and good C experience. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Qualification task&#039;&#039;: port any audio filter from MPlayer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: [[User:Geal|geal]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== VLC Test Suite  ===&lt;br /&gt;
&lt;br /&gt;
This project aims at making automatic tests to improve VLC quality. &lt;br /&gt;
&lt;br /&gt;
*Write a series of tests for vlc-internal &lt;br /&gt;
*Integrate a framework for automated plugins testing with the automake build system &lt;br /&gt;
*Automate the different codec playback/mux/etc tests &lt;br /&gt;
*Automate the subtitles tests &lt;br /&gt;
*Write tests for the different bindings: Mac OS X Framework/Python Bindings... etc.&lt;br /&gt;
&lt;br /&gt;
This project is a code project, require good knowledge of C &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: Rémi&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== VLC Personal Cloud Project 2.0  ===&lt;br /&gt;
&lt;br /&gt;
The personal cloud project is a simple project to allow people to play their media files anywhere in the world. &lt;br /&gt;
&lt;br /&gt;
Through the http interface of VLC, a user can: &lt;br /&gt;
&lt;br /&gt;
*list the medias from the Media Library, &lt;br /&gt;
*play those medias, &lt;br /&gt;
*those medias get transcoded and streamed in: &lt;br /&gt;
**Flash &lt;br /&gt;
**Silverlight &lt;br /&gt;
**iPhone format &lt;br /&gt;
**Android format &lt;br /&gt;
**html5 &lt;br /&gt;
**A VLC webplugin&lt;br /&gt;
&lt;br /&gt;
A good example of the aim is http://www.vodobox.c.la/ &lt;br /&gt;
&lt;br /&gt;
This project has to work on the configuration and NAT traversal. &lt;br /&gt;
&lt;br /&gt;
This projects needs knowledge in HTML and JS; it might require C coding. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: [[User:J-b|jb]]&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Playlist improvements ===&lt;br /&gt;
&lt;br /&gt;
We need to reinforce the media library capabilities and its integration with external metadata sources, notably for TV shows.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: ??&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== AirPlay streaming ===&lt;br /&gt;
&lt;br /&gt;
We need to be able to stream everything to your  Google TV, Apple TV or raspberrypi powered shairport service. Airport is an non-open protocol that allows wireless streaming of audio, video, multimedia to supported devices.&lt;br /&gt;
&lt;br /&gt;
The tasks would consist of:&lt;br /&gt;
* Understanding how AirPlay works, try with any device if available.&lt;br /&gt;
* Configure a test setup using raspberrypi or your own computer or any TV device if available, play with couple of available players who support AirPlay. This is just to get a feel of what it is you will be trying to implement for vlc-android.&lt;br /&gt;
* Study couple of opensource implementations like shairport&lt;br /&gt;
* Run/test/deploy VLC on simulator or android device&lt;br /&gt;
* Implement an AirPlay aout that would stream audio to your AirPlay supported device (shairport with rpi/computer or Apple TV or Google TV)&lt;br /&gt;
* Test with couple of android devices if available, ask mentors and community to test, report bugs, suggestions&lt;br /&gt;
* Study how video works, vout for vlc works, if have time implement video streaming as well.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: ??&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== VLC Sync Play across devices ===&lt;br /&gt;
By leveraging zeroconf and rtsp make possible to decode in sync in multiple devices a video stored in one.&lt;br /&gt;
Tasks:&lt;br /&gt;
* Implement a simple protocol for discovery and announce&lt;br /&gt;
* Implement the discovery system&lt;br /&gt;
* At least one of the following&lt;br /&gt;
** Provide a UI for Qt (Windows / Linux)&lt;br /&gt;
** Provide a UI for Android&lt;br /&gt;
** Provide a UI for OS X&lt;br /&gt;
&#039;&#039;Proposed mentor: lu_zero&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Port VLC&#039;s NPAPI web plugin to PPAPI ===&lt;br /&gt;
We need to support the PPAPI interfaces this summer to keep playback support within Google Chrome, since they dropped the existing NPAPI architecture. A proof-of-concept was developed already, but needs refactoring, polishing and testing.&lt;br /&gt;
&lt;br /&gt;
Requires good C or/and C++ knowledge and a basic understanding of web browser internals. The ability to test on more than one platform would be a very strong plus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed Mentor: [[User:Fkuehne|feepk]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Add Owncloud, MEGA and Yandex.Disk cloud support to VLC for iOS ===&lt;br /&gt;
Following the success of our native integration with Google Drive, Dropbox, OneDrive and Box, we want to integrate with Owncloud, MEGA and Yandex.disk, which are the last remaining major cloud services left to add! :)&lt;br /&gt;
&lt;br /&gt;
Requires good Objective-C and optionally swift knowledge as well as a basic understanding of cloud services and network programming. Additionally, requires a Mac running OS X 10.10 or later.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed Mentor: [[User:Fkuehne|feepk]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Add proper audio playback UI to VLC for iOS ===&lt;br /&gt;
VLC for iOS is a recognized and well known video player. Few people know that it is actually capable of playing music and podcasts, too and there is a reason for that. The UI is not really suitable for it. Make it so!&lt;br /&gt;
&lt;br /&gt;
Requires good Objective-C and optionally swift knowledge as well as basic design skills. Additionally, requires a Mac running OS X 10.10 or later.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed Mentor: [[User:Fkuehne|feepk]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Other Ideas for VLC  ==&lt;br /&gt;
&lt;br /&gt;
=== DVD audio support ===&lt;br /&gt;
Very difficult project for Audio fans&lt;br /&gt;
&#039;&#039;Proposed mentor: [[User:J-b|jb]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Device synchronisation===&lt;br /&gt;
Sync your mp3 player with the media library&lt;br /&gt;
&#039;&#039;Proposed mentor: ???&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== HD DVD support ===&lt;br /&gt;
Very difficult project for someone having the right hardware&lt;br /&gt;
&#039;&#039;Proposed mentor: [[User:J-b|jb]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Multi-Angle DVD support ===&lt;br /&gt;
We need multi-angle DVD support&lt;br /&gt;
&#039;&#039;Proposed mentor: Meuuh&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Mirrors&amp;diff=30540</id>
		<title>Mirrors</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Mirrors&amp;diff=30540"/>
		<updated>2015-12-18T09:44:19Z</updated>

		<summary type="html">&lt;p&gt;Etix: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mirrors =&lt;br /&gt;
&lt;br /&gt;
Our mirrors are kindly operated by sponsors, you can find the complete list [http://www.videolan.org/videolan/mirrors.html here]. If you would like to provide a mirror to the VideoLAN project please read the following sections.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* A public mirror available in HTTP&lt;br /&gt;
* About 30 GB of disk space at this time&lt;br /&gt;
* At least 1 Gbps connectivity&lt;br /&gt;
* At &#039;&#039;&#039;least&#039;&#039;&#039; 4 rsync per day (more is better!)&lt;br /&gt;
* Either an rsync or FTP server access to scan the actual state of your mirror (rsync is preferred)&lt;br /&gt;
&lt;br /&gt;
== Setting up a mirror ==&lt;br /&gt;
&lt;br /&gt;
The first step is to clone the rsync repository using the following command:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;rsync --verbose --recursive --times --links --hard-links --perms --stats --delete-after --timeout=300 rsync://rsync.videolan.org/videolan-ftp &#039;&#039;/path/to/repository/destination&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Edit your crontab (crontab -e) to sync the cron every hour:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;31 * * * * sleep $(($RANDOM/1024)); rsync --verbose --recursive --times --links --hard-links --perms --stats --delete-after --timeout=300 rsync://rsync.videolan.org/videolan-ftp &#039;&#039;/path/to/repository/destination&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Setup a web server to serve the repository preferably with [http://wiki.nginx.org/ nginx] or [http://httpd.apache.org/ Apache].&lt;br /&gt;
&lt;br /&gt;
Finally setup a read-only rsync daemon using a similar configuration:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[videolan]&lt;br /&gt;
    path = /path/to/repository/destination&lt;br /&gt;
    comment = VideoLAN repository&lt;br /&gt;
    uid = nobody&lt;br /&gt;
    gid = nogroup&lt;br /&gt;
    read only = yes&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: if you&#039;re using a CDN in front of the repository be sure to clear the cache at least once a day!&lt;br /&gt;
&lt;br /&gt;
== How do we manage mirrors ==&lt;br /&gt;
&lt;br /&gt;
On the VideoLAN side, in order to provide the best service to our users we&#039;re running [https://github.com/etix/mirrorbits Mirrorbits], a mirror management software that will transparently redirect users to the closest mirror.&lt;br /&gt;
&lt;br /&gt;
It is also in charge of scanning the mirrors, ensuring they are up and running and it knows which files are served by your mirror. The system will automatically scan you mirror (using rsync or FTP) every now and then and do some health checks on the HTTP side every minute. If you have any concern related to a high bandwidth usage please tell us, we will reduce the weight of your mirror.&lt;br /&gt;
&lt;br /&gt;
== Contact us ==&lt;br /&gt;
&lt;br /&gt;
Once your mirror is setup, please [mailto:mirrors@videolan.org contact us] and be sure to send:&lt;br /&gt;
* A name and contact email address&lt;br /&gt;
* HTTP, FTP (if applicable) and rsync URLs to the file tree on your server&lt;br /&gt;
* The name, URL and logo of the operator / organization / sponsor you represent (preferably in 137x54)&lt;br /&gt;
&lt;br /&gt;
After reviewing your application your mirror will be added to our load balancer.&lt;br /&gt;
&lt;br /&gt;
[[Category:About VideoLAN]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Mirrors&amp;diff=30539</id>
		<title>Mirrors</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Mirrors&amp;diff=30539"/>
		<updated>2015-12-18T09:41:44Z</updated>

		<summary type="html">&lt;p&gt;Etix: Add mention of mirrorbits&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mirrors =&lt;br /&gt;
&lt;br /&gt;
Our mirrors are kindly operated by sponsors, you can find the complete list [http://www.videolan.org/videolan/mirrors.html here]. If you would like to provide a mirror to the VideoLAN project please read the following sections.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* A public mirror available in HTTP&lt;br /&gt;
* About 30 GB of disk space at this time&lt;br /&gt;
* At least 1 Gbps connectivity&lt;br /&gt;
* At &#039;&#039;&#039;least&#039;&#039;&#039; 4 rsync per day (more is better!)&lt;br /&gt;
* Either rsync or FTP access to scan the actual state of the mirror&lt;br /&gt;
&lt;br /&gt;
== Setting up a mirror ==&lt;br /&gt;
&lt;br /&gt;
The first step is to clone the rsync repository using the following command:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;rsync --verbose --recursive --times --links --hard-links --perms --stats --delete-after --timeout=300 rsync://rsync.videolan.org/videolan-ftp &#039;&#039;/path/to/repository/destination&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Edit your crontab (crontab -e) to sync the cron every hour:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;31 * * * * sleep $(($RANDOM/1024)); rsync --verbose --recursive --times --links --hard-links --perms --stats --delete-after --timeout=300 rsync://rsync.videolan.org/videolan-ftp &#039;&#039;/path/to/repository/destination&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Setup a web server to serve the repository preferably with [http://wiki.nginx.org/ nginx] or [http://httpd.apache.org/ Apache].&lt;br /&gt;
&lt;br /&gt;
Finally setup a read-only rsync daemon using a similar configuration:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[videolan]&lt;br /&gt;
    path = /path/to/repository/destination&lt;br /&gt;
    comment = VideoLAN repository&lt;br /&gt;
    uid = nobody&lt;br /&gt;
    gid = nogroup&lt;br /&gt;
    read only = yes&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: if you&#039;re using a CDN in front of the repository be sure to clear the cache at least once a day!&lt;br /&gt;
&lt;br /&gt;
== How do we manage mirrors ==&lt;br /&gt;
&lt;br /&gt;
On the VideoLAN side, in order to provide the best service to our users we&#039;re running [https://github.com/etix/mirrorbits Mirrorbits], a mirror management software that will transparently redirect users to the closest mirror.&lt;br /&gt;
&lt;br /&gt;
It is also in charge of scanning the mirrors, ensuring they are up and running and it knows which files are served by your mirror. The system will automatically scan you mirror (using rsync or FTP) every now and then and do some health checks on the HTTP side every minute. If you have any concern related to a high bandwidth usage please tell us, we will reduce the weight of your mirror.&lt;br /&gt;
&lt;br /&gt;
== Contact us ==&lt;br /&gt;
&lt;br /&gt;
Once your mirror is setup, please [mailto:mirrors@videolan.org contact us] and be sure to send:&lt;br /&gt;
* A name and contact email address&lt;br /&gt;
* HTTP, FTP (if applicable) and rsync URLs to the file tree on your server&lt;br /&gt;
* The name, URL and logo of the operator / organization / sponsor you represent (preferably in 137x54)&lt;br /&gt;
&lt;br /&gt;
After reviewing your application your mirror will be added to our load balancer.&lt;br /&gt;
&lt;br /&gt;
[[Category:About VideoLAN]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=MirrorManagement&amp;diff=26779</id>
		<title>MirrorManagement</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=MirrorManagement&amp;diff=26779"/>
		<updated>2014-05-09T16:45:13Z</updated>

		<summary type="html">&lt;p&gt;Etix: Created page with &amp;quot;= Infrastructure =  The current infrastructure is made of: * The master rsync server * The distribution server (aka the redirector) * The actual mirrors (few dozens)  The mast...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Infrastructure =&lt;br /&gt;
&lt;br /&gt;
The current infrastructure is made of:&lt;br /&gt;
* The master rsync server&lt;br /&gt;
* The distribution server (aka the redirector)&lt;br /&gt;
* The actual mirrors (few dozens)&lt;br /&gt;
&lt;br /&gt;
The master rsync server always contains all the latest version of each file available.&lt;br /&gt;
&lt;br /&gt;
The distribution server replicates the master server via rsync every 15 minutes and also scan the content of each mirrors and their current state every so often.&lt;br /&gt;
&lt;br /&gt;
The mirrors are configured to scan the master at regular interval (at least 4th times a day for most of them).&lt;br /&gt;
&lt;br /&gt;
== Requests handling ==&lt;br /&gt;
&lt;br /&gt;
As soon as a request hits the distribution server, a mirror is chosen depending on the IP address of the client. The selected mirror must contain the latest version of the file and be up at the moment of the request to be selected. The distribution server then issues a 3xx redirection code to the client.&lt;br /&gt;
&lt;br /&gt;
== List of mirrors ==&lt;br /&gt;
&lt;br /&gt;
The most recent list of mirrors can be accessed [https://www.videolan.org/videolan/mirrors.html here]. It is updated after any modification of the mirror list on the distribution server.&lt;br /&gt;
&lt;br /&gt;
= Statistics =&lt;br /&gt;
&lt;br /&gt;
== Files availability ==&lt;br /&gt;
&lt;br /&gt;
You can access the current file availability on each mirror by appending &#039;&#039;&#039;?mirrorlist&#039;&#039;&#039; to any URL of a file served by the get.videolan.org domain.&lt;br /&gt;
&lt;br /&gt;
For instance the following link will return the list of mirrors handling this file sorted by the most appropriate for the caller (you!).&lt;br /&gt;
&lt;br /&gt;
https://get.videolan.org/vlc/2.1.3/win32/vlc-2.1.3-win32.exe?mirrorlist&lt;br /&gt;
&lt;br /&gt;
To get the view from any other IP address append &#039;&#039;&#039;&amp;amp;fromip=x.x.x.x&#039;&#039;&#039; to the last URL.&lt;br /&gt;
&lt;br /&gt;
https://get.videolan.org/vlc/2.1.3/win32/vlc-2.1.3-win32.exe?mirrorlist&amp;amp;fromip=80.237.216.0&lt;br /&gt;
&lt;br /&gt;
This will return the same list as the previous call but from the point of view of the &#039;&#039;80.237.216.0&#039;&#039; network (located somewhere in Germany).&lt;br /&gt;
&lt;br /&gt;
== Mirrors statistics ==&lt;br /&gt;
&lt;br /&gt;
A global map of all mirrors, the number of downloads and the total size served by each mirror can be accessed on the following URL:&lt;br /&gt;
&lt;br /&gt;
https://get.videolan.org/?mirrorstats (Beware: URL subject to change)&lt;br /&gt;
&lt;br /&gt;
== Downloads statistics ==&lt;br /&gt;
&lt;br /&gt;
Downloads statistics for each file are available as &#039;&#039;json&#039;&#039; by appending &#039;&#039;&#039;?stats&#039;&#039;&#039; to any URL of a file served by the get.videolan.org domain.&lt;br /&gt;
&lt;br /&gt;
You can even specify a period if you&#039;d like to:&lt;br /&gt;
&lt;br /&gt;
https://get.videolan.org/vlc/2.1.3/win32/vlc-2.1.3-win32.exe?stats=2014 (for the whole 2014 year)&amp;lt;br/&amp;gt;&lt;br /&gt;
https://get.videolan.org/vlc/2.1.3/win32/vlc-2.1.3-win32.exe?stats=2014-03 (for March 2014)&amp;lt;br/&amp;gt;&lt;br /&gt;
https://get.videolan.org/vlc/2.1.3/win32/vlc-2.1.3-win32.exe?stats=2014-03-01 (for the 1st of March 2014)&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Bounties&amp;diff=25730</id>
		<title>Bounties</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Bounties&amp;diff=25730"/>
		<updated>2013-10-15T15:03:19Z</updated>

		<summary type="html">&lt;p&gt;Etix: Remove the bounty Opus Encoder since it&amp;#039;s done&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= WIP =&lt;br /&gt;
This is a &#039;&#039;&#039;&amp;lt;big&amp;gt;Work In Progress&amp;lt;/big&amp;gt;&#039;&#039;&#039;. It is NOT a definitive list, nor are the prices!&lt;br /&gt;
&lt;br /&gt;
= Rules =&lt;br /&gt;
One must contact us before starting a bounty.&lt;br /&gt;
&lt;br /&gt;
Sending a reasonable patch on a public mailing-list gives a temporary lock for the task.&lt;br /&gt;
&lt;br /&gt;
== Payment ==&lt;br /&gt;
The bounties are paid to a legal entity that can create an &#039;&#039;&#039;invoice&#039;&#039;&#039;. It can be done by an independent worker too.&lt;br /&gt;
&lt;br /&gt;
Money is paid by the VideoLAN non-profit organization in &#039;&#039;&#039;Euros&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Money is paid on code &#039;&#039;&#039;merge&#039;&#039;&#039; in the relevant project.&lt;br /&gt;
&lt;br /&gt;
== Join our effort ==&lt;br /&gt;
If you feel like adding some money to a special bounty, please [http://www.videolan.org/contact.html Contact us].&lt;br /&gt;
&lt;br /&gt;
= List of bounties =&lt;br /&gt;
== VLC bugs ==&lt;br /&gt;
&lt;br /&gt;
=== Screencast ===&lt;br /&gt;
==== Audio Loopback for Mac ====&lt;br /&gt;
{{Price|300}}&lt;br /&gt;
To record the desktop sounds.&lt;br /&gt;
&lt;br /&gt;
* It also requires to &#039;&#039;check that all input are using mdate()-based PTS&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Audio Loopback for Windows ====&lt;br /&gt;
{{Price|300}}&lt;br /&gt;
To record the desktop sounds.&lt;br /&gt;
&lt;br /&gt;
* It also requires to &#039;&#039;check that all input are using mdate()-based PTS&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== UI for better screencasting ====&lt;br /&gt;
{{Price|200}}&lt;br /&gt;
See [https://trac.videolan.org/vlc/ticket/4535 #4535] and [https://trac.videolan.org/vlc/ticket/5988 #5988].&lt;br /&gt;
&lt;br /&gt;
=== HTTP/AVI seeking ===&lt;br /&gt;
{{Price|500}}&lt;br /&gt;
VLC behaves poorly with AVI over http connections. &lt;br /&gt;
MPlayer does it way better.&lt;br /&gt;
&lt;br /&gt;
See [https://trac.videolan.org/vlc/ticket/2151 #2151]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NB&#039;&#039;&#039;: A separate bounty of a similar amount can be made for MP4 over HTTP: [https://trac.videolan.org/vlc/ticket/7186 #7186]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== RTSP/UDP issue ===&lt;br /&gt;
{{Price|2000}}&lt;br /&gt;
Fix the RTSP output so that the UDP transfers work across client NATs (android clients). This will require interleaving support.&lt;br /&gt;
&lt;br /&gt;
== VLC Features ==&lt;br /&gt;
=== libVLC API for filters ===&lt;br /&gt;
{{Price|1000}}&lt;br /&gt;
This task consist on doing a &#039;&#039;&#039;correct&#039;&#039;&#039; set of libVLC API for audio filters and video filters.&lt;br /&gt;
&lt;br /&gt;
This should include equalizer configuration.&lt;br /&gt;
&lt;br /&gt;
This would be useful for phonon, tomahawk and other libVLC application.&lt;br /&gt;
&lt;br /&gt;
=== libVLC API for sout and smem ===&lt;br /&gt;
{{Price|2000}}&lt;br /&gt;
Create a libVLC API to be able to use smem. This will include a libVLC API for sout.&lt;br /&gt;
&lt;br /&gt;
=== libVLC API for imem ===&lt;br /&gt;
{{Price|200}}&lt;br /&gt;
Create a libVLC API for imem to map to a libvlc_media_t object, in order to use it like the rest of libVLC.&lt;br /&gt;
&lt;br /&gt;
=== Local resampling ===&lt;br /&gt;
{{Price|1500}}&lt;br /&gt;
Stop resampling the audio when playing local files.&lt;br /&gt;
&lt;br /&gt;
=== RTP packetization ===&lt;br /&gt;
{{Price|Each item: 200}}&lt;br /&gt;
Do the packetization of ONE of those items:&lt;br /&gt;
* Opus&lt;br /&gt;
* VP8&lt;br /&gt;
* WMA&lt;br /&gt;
* WMV&lt;br /&gt;
* VC-1&lt;br /&gt;
* JPEG&lt;br /&gt;
* GSM&lt;br /&gt;
* Raw video for I420 and RGB24&lt;br /&gt;
&lt;br /&gt;
See [https://trac.videolan.org/vlc/ticket/1289 #1289], [https://trac.videolan.org/vlc/ticket/1323 #1323],  and [https://trac.videolan.org/vlc/ticket/6505 #6505].&lt;br /&gt;
&lt;br /&gt;
=== libVLCcore SD API and Upnp ===&lt;br /&gt;
{{Price|800}}&lt;br /&gt;
The Upnp SD is very slow because it needs to fetch recusively all nodes. This needs to change.&lt;br /&gt;
&lt;br /&gt;
This task will likely need a change of API for the Service Discoveries.&lt;br /&gt;
&lt;br /&gt;
See [https://trac.videolan.org/vlc/ticket/4437 #4437].&lt;br /&gt;
&lt;br /&gt;
=== DVB scanning ===&lt;br /&gt;
{{Price|1000}}&lt;br /&gt;
In order to compete with TV software, we need some DVB scanning, working on one platform using the DTV module.&lt;br /&gt;
&lt;br /&gt;
See [https://trac.videolan.org/vlc/ticket/7248 #7248].&lt;br /&gt;
&lt;br /&gt;
See http://nate.dynalias.net/dev/scanchannelsbda.rails and http://nate.deepcreek.org.au/svn/ScanChannelsBDA/trunk/&lt;br /&gt;
&lt;br /&gt;
==== DVB Scanning² ====&lt;br /&gt;
{{Price|300}}&lt;br /&gt;
Extending the DVB scan to another platform than the main one.&lt;br /&gt;
&lt;br /&gt;
=== HDMI pass-through ===&lt;br /&gt;
{{Price|2000}}&lt;br /&gt;
Notably for other codecs than the ones we have over S/PDIF.&lt;br /&gt;
&lt;br /&gt;
We need:&lt;br /&gt;
* DTS, AC/3 over HDMI?&lt;br /&gt;
* DTS extensions over HDMI, notably DTS HD MA&lt;br /&gt;
* E-AC3&lt;br /&gt;
* MPGA&lt;br /&gt;
* Dolby TrueHD&lt;br /&gt;
&lt;br /&gt;
The price is for all of those?&lt;br /&gt;
&lt;br /&gt;
See [https://trac.videolan.org/vlc/ticket/4940 #4940] and other.&lt;br /&gt;
&lt;br /&gt;
=== Preferences for LUA extensions ===&lt;br /&gt;
{{Price|2500}}&lt;br /&gt;
Be able to add preferences for LUA extensions.&lt;br /&gt;
&lt;br /&gt;
=== Downloader for LUA extensions from addons.v.o ===&lt;br /&gt;
{{Price|1000}}&lt;br /&gt;
See libattica.&lt;br /&gt;
&lt;br /&gt;
=== Auto-Rotation of the screen ===&lt;br /&gt;
{{Price|2000}}&lt;br /&gt;
As many MP4 videos and JPEG files we need to rotate those when we detect it.&lt;br /&gt;
&lt;br /&gt;
So far, the demuxer has the info, but that is it.&lt;br /&gt;
&lt;br /&gt;
We should ask the vout if it can transform (OpenGL) else load the right transform filter.&lt;br /&gt;
&lt;br /&gt;
See [https://trac.videolan.org/vlc/ticket/2882 #2882].&lt;br /&gt;
&lt;br /&gt;
=== ARM optimizations ===&lt;br /&gt;
ARM optimisation for core and important filters. This is TBD.&lt;br /&gt;
&lt;br /&gt;
Ideas:&lt;br /&gt;
* Audio conversions&lt;br /&gt;
* Chroma conversions&lt;br /&gt;
* Transform filter&lt;br /&gt;
&lt;br /&gt;
=== Add RTP with FEC ===&lt;br /&gt;
{{Price|2000}}&lt;br /&gt;
Input and output modules (SMPTE 2022).&lt;br /&gt;
&lt;br /&gt;
=== Smooth Streaming output ===&lt;br /&gt;
{{Price|1000}}&lt;br /&gt;
Write a VLC Smooth Streaming output module&lt;br /&gt;
&lt;br /&gt;
== Libavcodec bugs ==&lt;br /&gt;
=== VC-1 interlaced ===&lt;br /&gt;
{{Price|1000}}&lt;br /&gt;
Fix VC-1 interlaced and adding missing B-frames support in libavcodec.&lt;br /&gt;
See [https://trac.videolan.org/vlc/ticket/5887 #5887].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Libavcodec features ==&lt;br /&gt;
&lt;br /&gt;
=== G2M ===&lt;br /&gt;
{{Price|1000}}&lt;br /&gt;
Add a G2M2/G2M3/G2M4 Decoder in libavcodec.&lt;br /&gt;
See [https://trac.videolan.org/vlc/ticket/2327 #2327].&lt;br /&gt;
&lt;br /&gt;
=== VoxWare ===&lt;br /&gt;
{{Price|500}}&lt;br /&gt;
Add a VoxWare MetaSound Decoder in libavcodec.&lt;br /&gt;
&lt;br /&gt;
=== DTS-HD Master Audio ===&lt;br /&gt;
{{Price|3000}}&lt;br /&gt;
Add a [[DTS|DTS-HD Master Audio Decoder]].&lt;br /&gt;
&lt;br /&gt;
This can be either in libavcodec or in libdca, but it must work in VLC in the end, including 8 channels. This is probably the XLL extension to code.&lt;br /&gt;
&lt;br /&gt;
=== AAC ===&lt;br /&gt;
{{Price|?}}&lt;br /&gt;
Add a native AAC encoder matching the quality of existing implementations by Apple (QuickTime) or Nero (libfaac). Adding support for more channels than just 2.0 is supposed to be covered by an additional bounty.&lt;br /&gt;
&lt;br /&gt;
=== Fallback on multi-threaded decoding if hardware decoding fails ===&lt;br /&gt;
{{Price|1000}}&lt;br /&gt;
At present, libavcodec will fall back on single-threaded decoding if hardware decoding is enabled and fails during its initialization due to unsupported pixel formats, profiles, etc.. Add support to fallback on multi-threaded decoding if supported by the respective codec.&lt;br /&gt;
&lt;br /&gt;
== BD+ ==&lt;br /&gt;
{{Price|2000}}&lt;br /&gt;
Work on libbdplus to play BD+ BD in libbluray.&lt;br /&gt;
&lt;br /&gt;
= Past bounties =&lt;br /&gt;
&lt;br /&gt;
=== AC-3 Volume ===&lt;br /&gt;
{{Price|1000}}&lt;br /&gt;
&lt;br /&gt;
Fix correctly the AC-3 volume issue. See [https://trac.videolan.org/vlc/ticket/3994 #3994].&lt;br /&gt;
&lt;br /&gt;
The issue can come from a mis-integration with liba52, or could come from some channels being wrongly discarded.&lt;br /&gt;
&lt;br /&gt;
This &#039;&#039;&#039;must&#039;&#039;&#039; work on Windows.&lt;br /&gt;
&lt;br /&gt;
=== Bug -mt on Mpeg-4 video ===&lt;br /&gt;
{{Price|500}}&lt;br /&gt;
Fix the Mpeg-4 resolution change for -mt in libavcodec.&lt;br /&gt;
See [https://trac.videolan.org/vlc/ticket/6579 #6579] and [https://trac.videolan.org/vlc/ticket/6533 #6533].&lt;br /&gt;
&lt;br /&gt;
=== Bug -mt on H.264 video ===&lt;br /&gt;
{{Price|500}}&lt;br /&gt;
Fix the H.264 resolution change for -mt in libavcodec.&lt;br /&gt;
See [https://trac.videolan.org/vlc/ticket/7306 #7306].&lt;br /&gt;
&lt;br /&gt;
=== Support OGG length calculation ===&lt;br /&gt;
{{Price|???}}&lt;br /&gt;
See [https://trac.videolan.org/vlc/ticket/6983 #6983].&lt;br /&gt;
&lt;br /&gt;
=== MSS2 ===&lt;br /&gt;
{{Price|1000}}&lt;br /&gt;
Add a MSS2 Decoder in libavcodec.&lt;br /&gt;
See [https://trac.videolan.org/vlc/ticket/750 #750].&lt;br /&gt;
&lt;br /&gt;
[[Category:Coding]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Mirrors&amp;diff=25704</id>
		<title>Mirrors</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Mirrors&amp;diff=25704"/>
		<updated>2013-10-07T15:41:09Z</updated>

		<summary type="html">&lt;p&gt;Etix: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mirrors =&lt;br /&gt;
&lt;br /&gt;
Our mirrors are kindly operated by sponsors, you can find the complete list [http://www.videolan.org/videolan/mirrors.html here]. If you would like to provide a mirror to the VideoLAN project please read the following sections.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* A public mirror available in HTTP&lt;br /&gt;
* About 30 GB of disk space at this time&lt;br /&gt;
* At least 1 Gbps connectivity&lt;br /&gt;
* At &#039;&#039;&#039;least&#039;&#039;&#039; 4 rsync per day (more is better!)&lt;br /&gt;
* Either rsync or FTP access to scan the actual state of the mirror&lt;br /&gt;
&lt;br /&gt;
== Setting up a mirror ==&lt;br /&gt;
&lt;br /&gt;
The first step is to clone the rsync repository using the following command:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;rsync --verbose --recursive --times --links --hard-links --perms --stats --delete-after --timeout=300 rsync://rsync.videolan.org/videolan-ftp &#039;&#039;/path/to/repository/destination&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Edit your crontab (crontab -e) to sync the cron every hour:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;31 * * * * sleep $(($RANDOM/1024)); rsync --verbose --recursive --times --links --hard-links --perms --stats --delete-after --timeout=300 rsync://rsync.videolan.org/videolan-ftp &#039;&#039;/path/to/repository/destination&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Setup a web server to serve the repository preferably with [http://wiki.nginx.org/ nginx] or [http://httpd.apache.org/ Apache].&lt;br /&gt;
&lt;br /&gt;
Finally setup a read-only rsync daemon using a similar configuration:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[videolan]&lt;br /&gt;
    path = /path/to/repository/destination&lt;br /&gt;
    comment = VideoLAN repository&lt;br /&gt;
    uid = nobody&lt;br /&gt;
    gid = nogroup&lt;br /&gt;
    read only = yes&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: if you&#039;re using a CDN in front of the repository be sure to clear the cache at least once a day!&lt;br /&gt;
&lt;br /&gt;
== Contact us ==&lt;br /&gt;
&lt;br /&gt;
Once your mirror is setup, please [mailto:mirrors@videolan.org contact us] and be sure to send:&lt;br /&gt;
* A name and contact email address&lt;br /&gt;
* HTTP, FTP (if applicable) and rsync URLs to the file tree on your server&lt;br /&gt;
* The name, URL and logo of the operator / organization / sponsor you represent (preferably in 137x54)&lt;br /&gt;
&lt;br /&gt;
After reviewing your application your mirror will be added to our load balancer.&lt;br /&gt;
&lt;br /&gt;
[[Category:About VideoLAN]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:Modules/clone&amp;diff=25313</id>
		<title>Documentation:Modules/clone</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:Modules/clone&amp;diff=25313"/>
		<updated>2013-09-27T16:04:26Z</updated>

		<summary type="html">&lt;p&gt;Etix: Add category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Module|name=clone|type=Video output filter|description=Clone the video output window}}&lt;br /&gt;
&lt;br /&gt;
You can use this module to play the video in more than one window to test different video outputs or display the same video on multiple screens on the same computer.&lt;br /&gt;
&lt;br /&gt;
== Options ==&lt;br /&gt;
&lt;br /&gt;
{{Option&lt;br /&gt;
|name=clone-count&lt;br /&gt;
|value=integer&lt;br /&gt;
|default=2&lt;br /&gt;
|description=Specifies the number of clones}}&lt;br /&gt;
&lt;br /&gt;
{{Option&lt;br /&gt;
|name=clone-vout-list&lt;br /&gt;
|value=string&lt;br /&gt;
|default=&amp;quot;&amp;quot;&lt;br /&gt;
|description=Comma seperated list of video output modules to use for each clone}}&lt;br /&gt;
&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Video Splitters]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:Modules/wall&amp;diff=25310</id>
		<title>Documentation:Modules/wall</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:Modules/wall&amp;diff=25310"/>
		<updated>2013-09-27T15:59:40Z</updated>

		<summary type="html">&lt;p&gt;Etix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Module|name=wall|type=Video output splitter|description=Splits the video output in several windows}}&lt;br /&gt;
&lt;br /&gt;
You can use this module to split a video output in several small windows. This is especially useful if you want to display parts of the same video on several computers to make a big video wall.&lt;br /&gt;
&lt;br /&gt;
== Options ==&lt;br /&gt;
&lt;br /&gt;
{{Option&lt;br /&gt;
|name=wall-cols&lt;br /&gt;
|value=integer&lt;br /&gt;
|default=3&lt;br /&gt;
|description=Specifies the number of colums in the video wall}}&lt;br /&gt;
&lt;br /&gt;
{{Option&lt;br /&gt;
|name=wall-rows&lt;br /&gt;
|value=integer&lt;br /&gt;
|default=3&lt;br /&gt;
|description=Specifies the number of rows in the video wall}}&lt;br /&gt;
&lt;br /&gt;
{{Option&lt;br /&gt;
|name=wall-active&lt;br /&gt;
|value=integer list&lt;br /&gt;
|default=all&lt;br /&gt;
|description=comma-separated list of active windows}}&lt;br /&gt;
&lt;br /&gt;
{{Option&lt;br /&gt;
|name=wall-element-aspect&lt;br /&gt;
|value=string&lt;br /&gt;
|default=4:3&lt;br /&gt;
|description=Aspect ratio of the individual displays building the wall}}&lt;br /&gt;
&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Video Splitters]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:Modules/wall&amp;diff=25309</id>
		<title>Documentation:Modules/wall</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:Modules/wall&amp;diff=25309"/>
		<updated>2013-09-27T15:59:20Z</updated>

		<summary type="html">&lt;p&gt;Etix: Filter -&amp;gt; Splitter&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Module|name=wall|type=Video output filter|description=Splits the video output in several windows}}&lt;br /&gt;
&lt;br /&gt;
You can use this module to split a video output in several small windows. This is especially useful if you want to display parts of the same video on several computers to make a big video wall.&lt;br /&gt;
&lt;br /&gt;
== Options ==&lt;br /&gt;
&lt;br /&gt;
{{Option&lt;br /&gt;
|name=wall-cols&lt;br /&gt;
|value=integer&lt;br /&gt;
|default=3&lt;br /&gt;
|description=Specifies the number of colums in the video wall}}&lt;br /&gt;
&lt;br /&gt;
{{Option&lt;br /&gt;
|name=wall-rows&lt;br /&gt;
|value=integer&lt;br /&gt;
|default=3&lt;br /&gt;
|description=Specifies the number of rows in the video wall}}&lt;br /&gt;
&lt;br /&gt;
{{Option&lt;br /&gt;
|name=wall-active&lt;br /&gt;
|value=integer list&lt;br /&gt;
|default=all&lt;br /&gt;
|description=comma-separated list of active windows}}&lt;br /&gt;
&lt;br /&gt;
{{Option&lt;br /&gt;
|name=wall-element-aspect&lt;br /&gt;
|value=string&lt;br /&gt;
|default=4:3&lt;br /&gt;
|description=Aspect ratio of the individual displays building the wall}}&lt;br /&gt;
&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Video Splitters]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Mirrors&amp;diff=25028</id>
		<title>Mirrors</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Mirrors&amp;diff=25028"/>
		<updated>2013-09-17T09:17:58Z</updated>

		<summary type="html">&lt;p&gt;Etix: Fix email&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mirrors =&lt;br /&gt;
&lt;br /&gt;
Our mirrors are kindly operated by sponsors, you can find the complete list [http://www.videolan.org/videolan/mirrors.html here]. If you would like to provide a mirror to the VideoLAN project please read the following sections.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* A public mirror available in HTTP&lt;br /&gt;
* About 30 GB of disk space at this time&lt;br /&gt;
* At least 1 Gbps connectivity&lt;br /&gt;
* At least 4 rsync per day (more is better!)&lt;br /&gt;
* Either rsync or FTP access to scan the actual state of the mirror&lt;br /&gt;
&lt;br /&gt;
== Setting up a mirror ==&lt;br /&gt;
&lt;br /&gt;
The first step is to clone the rsync repository using the following command:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;rsync --verbose --recursive --times --links --hard-links --perms --stats --delete-after --timeout=300 rsync://rsync.videolan.org/videolan-ftp &#039;&#039;/path/to/repository/destination&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Edit your crontab (crontab -e) to sync the cron every hour:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;31 * * * * sleep $(($RANDOM/1024)); rsync --verbose --recursive --times --links --hard-links --perms --stats --delete-after --timeout=300 rsync://rsync.videolan.org/videolan-ftp &#039;&#039;/path/to/repository/destination&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Setup a web server to serve the repository preferably with [http://wiki.nginx.org/ nginx] or [http://httpd.apache.org/ Apache].&lt;br /&gt;
&lt;br /&gt;
Finally setup a read-only rsync daemon using a similar configuration:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[videolan]&lt;br /&gt;
    path = /path/to/repository/destination&lt;br /&gt;
    comment = VideoLAN repository&lt;br /&gt;
    uid = nobody&lt;br /&gt;
    gid = nogroup&lt;br /&gt;
    read only = yes&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: if you&#039;re using a CDN in front of the repository be sure to clear the cache at least once a day!&lt;br /&gt;
&lt;br /&gt;
== Contact us ==&lt;br /&gt;
&lt;br /&gt;
Once your mirror is setup, please [mailto:mirrors@videolan.org contact us] and be sure to send:&lt;br /&gt;
* A name and contact email address&lt;br /&gt;
* HTTP, FTP (if applicable) and rsync URLs to the file tree on your server&lt;br /&gt;
* The name, URL and logo of the operator / organization / sponsor you represent (preferably in 137x54)&lt;br /&gt;
&lt;br /&gt;
After reviewing your application your mirror will be added to our load balancer.&lt;br /&gt;
&lt;br /&gt;
[[Category:About VideoLAN]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VDD13&amp;diff=24677</id>
		<title>VDD13</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VDD13&amp;diff=24677"/>
		<updated>2013-08-28T09:07:05Z</updated>

		<summary type="html">&lt;p&gt;Etix: /* Hotel Ibis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= VideoLAN Dev Days &#039;13 =&lt;br /&gt;
&#039;&#039;&#039;The Multimedia Conference that frees the cone in you!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a technical un-conference, please bring laptops, cords, RJ45 cables, and a good mood with you.&lt;br /&gt;
&lt;br /&gt;
=== Nota Bene ===&lt;br /&gt;
* The hotel is the [http://www.ibishotel.com/gb/hotel-5543-ibis-paris-avenue-d-italie-13eme/index.shtml Ibis] Avenue d&#039;Italie.&lt;br /&gt;
&lt;br /&gt;
* If you expect us to refund your travel, please bring a printed copy of your tickets, one that shows the total cost. If you are not in our reimbursement database, bring a printed IBAN too.&lt;br /&gt;
 &lt;br /&gt;
* On Saturday and Sunday, enter the Free HQ by the &#039;&#039;&#039;16 Rue de la Ville-l&#039;Évêque&#039;&#039;&#039; ([http://goo.gl/EKHWEc plan]).&lt;br /&gt;
** There will be a smoking area inside the building, as the entrance cannot be used once inside the building for security reasons.&lt;br /&gt;
&lt;br /&gt;
* There will be a WiFi connection.&amp;lt;!-- under the &#039;&#039;&#039;???????&#039;&#039;&#039; ESSID. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Schedule =&lt;br /&gt;
== Friday, August 30th 2013 ==&lt;br /&gt;
[[Image:Asterix VLC.svg|right|270px]]&lt;br /&gt;
Friday is an &#039;&#039;&#039;&amp;lt;u&amp;gt;optional&amp;lt;/u&amp;gt;&#039;&#039;&#039; day in the Asterix amusement park to bind together our community. If you wish to attend, the meeting in front of the hotel is at 8:30.&lt;br /&gt;
There will be a bus that will be responsible for bringing everyone to and back from the park. More details on the park are available below.&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* that bus and park entrance fees are paid by us, so there are NO costs with the exception of food and drinks&lt;br /&gt;
* do not burden yourself too much with unneeded stuff and particularly &#039;&#039;&#039;don&#039;t bring your laptop&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! Place !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 8h30 || [http://www.ibishotel.com/gb/hotel-5543-ibis-paris-avenue-d-italie-13eme/index.shtml Hotel] || Meeting point in front of the hotel&lt;br /&gt;
|-&lt;br /&gt;
| 10h00 – 18h00 || Visit to Asterix park&lt;br /&gt;
|-&lt;br /&gt;
| 21h00 || Meeting at a local bar, for the brave... || NB: VideoLAN will not pay for expenses at the bar...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you cannot be present at the meeting point, you will be able to join us directly there, but you &#039;&#039;&#039;MUST&#039;&#039;&#039; tell us. For reference here are directions to the park: Take RER B3 from Paris Gare du Nord, platform 43 and get off at “Aéroport Charles De Gaulle Terminal 1, Terminal 3”. Go to the “Parcs de Loisirs” counter and board the Parc Astérix shuttle buses.&lt;br /&gt;
&lt;br /&gt;
== Saturday, August 31st 2013 ==&lt;br /&gt;
All the meetings happen in the &#039;&#039;&#039;auditorium&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Morning ===&lt;br /&gt;
Schedule information is not currently available.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 9h30 – 10h00 || Welcome, registration, coffee, juice and croissants&lt;br /&gt;
|-&lt;br /&gt;
| 10h00 – 10h15 || Welcome, VideoLAN, VLC&lt;br /&gt;
|-&lt;br /&gt;
| 10h20 – 10h45 || TBA&amp;lt;!-- VP9 --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 10h45 – 11h15 || VLC and DCP&lt;br /&gt;
|-&lt;br /&gt;
| 11h15 – 11h30 || &#039;&#039;&#039;Coffee Break&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 11h30 – 11h45 || x265&lt;br /&gt;
|-&lt;br /&gt;
| 11h45 – 12h05 || TBA&amp;lt;!-- VLC DCP --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 12h05 – 12h30 || VLC 2.1.0 and next&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Lunch ===&lt;br /&gt;
Individual tray meal (chicken, salmon, vegetarian or beef) with dessert and drinks.&lt;br /&gt;
&lt;br /&gt;
=== UnConference ===&lt;br /&gt;
[[wikipedia:Unconference|What is an UnConference?]]&lt;br /&gt;
&lt;br /&gt;
UnConference schedule to be published...&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! B559 !! B555 !! B551 !! B549 !! B567 !! B312&lt;br /&gt;
|-&lt;br /&gt;
| 14h00 - 15h00 || TBA&amp;lt;!-- VLC technical discussion --&amp;gt; || TBA&amp;lt;!-- libav technical discussion --&amp;gt; || TBA&amp;lt;!-- FFmpeg --&amp;gt; || || HACKING ROOM || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 15h00 - 16h00 || TBA&amp;lt;!-- VLC technical discussion --&amp;gt; || TBA&amp;lt;!-- libav technical discussion --&amp;gt; ||  ||  || HACKING ROOM || N/A &lt;br /&gt;
|-&lt;br /&gt;
| 16h00 - 17h00  || TBA&amp;lt;!-- Mac OS X --&amp;gt; || &amp;lt;!-- ffmpeg vs libav --&amp;gt; || TBA&amp;lt;!-- Android --&amp;gt;  ||  || HACKING ROOM || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 17h00 - 18h00  ||  || TBA&amp;lt;!-- Chromium / libav --&amp;gt; || TBA&amp;lt;!-- Android --&amp;gt; ||  || HACKING ROOM || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 18h00 - 19h00 ||  || TBA&amp;lt;!-- Licensing --&amp;gt; || TBA&amp;lt;!-- Android --&amp;gt; ||  || HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Dinner ===&lt;br /&gt;
[http://www.tripadvisor.fr/Restaurant_Review-g187147-d2459770-Reviews-Restaurant_Du_Paradis-Paris_Ile_de_France.html Restaurant du Paradis]&amp;lt;br /&amp;gt;&lt;br /&gt;
66 Rue du Faubourg Poissonniere&amp;lt;br /&amp;gt;&lt;br /&gt;
75010 Paris&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Metro: Line 7, Poissonière&lt;br /&gt;
&lt;br /&gt;
Starting at 20h00, dinner will consist of 2 special menus prepared by the chef. (drinks included - wine and non-alcoholic)&lt;br /&gt;
&lt;br /&gt;
The menu will consist of 4 choices for starters, principal meal and deserts. There is also a vegan menu available.&lt;br /&gt;
&lt;br /&gt;
== Sunday, September 1st 2013 ==&lt;br /&gt;
=== Morning ===&lt;br /&gt;
Schedule to be posted.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! B559 !! B555 !! B551 !! B549 !! B567 !! B312&lt;br /&gt;
|-&lt;br /&gt;
| 9h30 - 11h00  || TBD&amp;lt;!-- VideoLAN association meeting --&amp;gt; || TBD&amp;lt;!-- FFmtech meeting. --&amp;gt; ||  || || HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 11h00 - 12h00  || TBD&amp;lt;!-- Videolan cont. --&amp;gt; || TBD &amp;lt;!-- SOC --&amp;gt; ||  ||  ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 12h00 - 13h00  || TBD&amp;lt;!-- Bounties --&amp;gt; ||  ||  ||  ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=== Lunch ===&lt;br /&gt;
Location: Cafeteria of Free HQ (a really beautiful and spacious place!)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sandwiches&#039;&#039;&#039; with coleslaw or crisps and choices of drinks (including Dr Pepper) + desserts (Pecan pies, Oreo pies, lemon pies, or cheese cakes).&lt;br /&gt;
&lt;br /&gt;
=== Afternoon ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! B559 !! B555 !! B551 !! B549 !! B567 !! B312&lt;br /&gt;
|-&lt;br /&gt;
| 14h00 - 15h00  || TBD&amp;lt;!-- ARM --&amp;gt; ||  ||  ||  ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 15h00 - 16h00  || Hack || TBD&amp;lt;!-- Broadcasting --&amp;gt; || TBD&amp;lt;!-- MSVC --&amp;gt;  || ||  HACKING ROOM  || N/A &lt;br /&gt;
|-&lt;br /&gt;
| 16h00 - 17h00  || Hack  || TBD&amp;lt;!-- Captions --&amp;gt; || Hack || Hack ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 17h00 - 18h00  || Hack  || TBD&amp;lt;!-- FOMS info --&amp;gt; || Hack || Hack ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Places =&lt;br /&gt;
&lt;br /&gt;
== Asterix Park ==&lt;br /&gt;
60128 Plailly, France&amp;lt;br /&amp;gt;&lt;br /&gt;
Metro / RER: &#039;&#039;&#039;B3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
http://www.parcasterix.fr/&lt;br /&gt;
&lt;br /&gt;
== Free HQ ==&lt;br /&gt;
16 Rue de la Ville-l&#039;Évêque&amp;lt;br /&amp;gt;&lt;br /&gt;
75008 Paris, France ([http://goo.gl/EKHWEc plan])&lt;br /&gt;
&lt;br /&gt;
Metro 8: Madeleine&amp;lt;br /&amp;gt;&lt;br /&gt;
Metro 12: Madeleine&amp;lt;br /&amp;gt;&lt;br /&gt;
Metro 14: Madeleine&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From CDG airport, take:&amp;lt;br /&amp;gt;&lt;br /&gt;
the RER B (Paris by train) to Châtelet-les-Halles&amp;lt;br /&amp;gt;&lt;br /&gt;
then Metro line 14 to Madeleine.&lt;br /&gt;
&lt;br /&gt;
http://www.free.fr/&lt;br /&gt;
&lt;br /&gt;
== Hotel Ibis ==&lt;br /&gt;
[http://www.ibishotel.com/gb/hotel-5543-ibis-paris-avenue-d-italie-13eme/index.shtml Hotel IBIS Paris Avenue d&#039;Italie]&amp;lt;br /&amp;gt;&lt;br /&gt;
15 bis Avenue d&#039;Italie&amp;lt;br /&amp;gt;&lt;br /&gt;
75013 Paris ([http://goo.gl/MKmwjx plan])&lt;br /&gt;
&lt;br /&gt;
== Emergencies ==&lt;br /&gt;
&lt;br /&gt;
* In case of emergency you can call the European emergency number 112.&lt;br /&gt;
* To place a call most credit cards can be used directly in public phones.&lt;br /&gt;
&lt;br /&gt;
[[Category:About VideoLAN]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VDD13&amp;diff=24676</id>
		<title>VDD13</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VDD13&amp;diff=24676"/>
		<updated>2013-08-28T09:05:58Z</updated>

		<summary type="html">&lt;p&gt;Etix: Plan&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= VideoLAN Dev Days &#039;13 =&lt;br /&gt;
&#039;&#039;&#039;The Multimedia Conference that frees the cone in you!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a technical un-conference, please bring laptops, cords, RJ45 cables, and a good mood with you.&lt;br /&gt;
&lt;br /&gt;
=== Nota Bene ===&lt;br /&gt;
* The hotel is the [http://www.ibishotel.com/gb/hotel-5543-ibis-paris-avenue-d-italie-13eme/index.shtml Ibis] Avenue d&#039;Italie.&lt;br /&gt;
&lt;br /&gt;
* If you expect us to refund your travel, please bring a printed copy of your tickets, one that shows the total cost. If you are not in our reimbursement database, bring a printed IBAN too.&lt;br /&gt;
 &lt;br /&gt;
* On Saturday and Sunday, enter the Free HQ by the &#039;&#039;&#039;16 Rue de la Ville-l&#039;Évêque&#039;&#039;&#039; ([http://goo.gl/EKHWEc plan]).&lt;br /&gt;
** There will be a smoking area inside the building, as the entrance cannot be used once inside the building for security reasons.&lt;br /&gt;
&lt;br /&gt;
* There will be a WiFi connection.&amp;lt;!-- under the &#039;&#039;&#039;???????&#039;&#039;&#039; ESSID. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Schedule =&lt;br /&gt;
== Friday, August 30th 2013 ==&lt;br /&gt;
[[Image:Asterix VLC.svg|right|270px]]&lt;br /&gt;
Friday is an &#039;&#039;&#039;&amp;lt;u&amp;gt;optional&amp;lt;/u&amp;gt;&#039;&#039;&#039; day in the Asterix amusement park to bind together our community. If you wish to attend, the meeting in front of the hotel is at 8:30.&lt;br /&gt;
There will be a bus that will be responsible for bringing everyone to and back from the park. More details on the park are available below.&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* that bus and park entrance fees are paid by us, so there are NO costs with the exception of food and drinks&lt;br /&gt;
* do not burden yourself too much with unneeded stuff and particularly &#039;&#039;&#039;don&#039;t bring your laptop&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! Place !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 8h30 || [http://www.ibishotel.com/gb/hotel-5543-ibis-paris-avenue-d-italie-13eme/index.shtml Hotel] || Meeting point in front of the hotel&lt;br /&gt;
|-&lt;br /&gt;
| 10h00 – 18h00 || Visit to Asterix park&lt;br /&gt;
|-&lt;br /&gt;
| 21h00 || Meeting at a local bar, for the brave... || NB: VideoLAN will not pay for expenses at the bar...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you cannot be present at the meeting point, you will be able to join us directly there, but you &#039;&#039;&#039;MUST&#039;&#039;&#039; tell us. For reference here are directions to the park: Take RER B3 from Paris Gare du Nord, platform 43 and get off at “Aéroport Charles De Gaulle Terminal 1, Terminal 3”. Go to the “Parcs de Loisirs” counter and board the Parc Astérix shuttle buses.&lt;br /&gt;
&lt;br /&gt;
== Saturday, August 31st 2013 ==&lt;br /&gt;
All the meetings happen in the &#039;&#039;&#039;auditorium&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Morning ===&lt;br /&gt;
Schedule information is not currently available.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 9h30 – 10h00 || Welcome, registration, coffee, juice and croissants&lt;br /&gt;
|-&lt;br /&gt;
| 10h00 – 10h15 || Welcome, VideoLAN, VLC&lt;br /&gt;
|-&lt;br /&gt;
| 10h20 – 10h45 || TBA&amp;lt;!-- VP9 --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 10h45 – 11h15 || VLC and DCP&lt;br /&gt;
|-&lt;br /&gt;
| 11h15 – 11h30 || &#039;&#039;&#039;Coffee Break&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 11h30 – 11h45 || x265&lt;br /&gt;
|-&lt;br /&gt;
| 11h45 – 12h05 || TBA&amp;lt;!-- VLC DCP --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 12h05 – 12h30 || VLC 2.1.0 and next&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Lunch ===&lt;br /&gt;
Individual tray meal (chicken, salmon, vegetarian or beef) with dessert and drinks.&lt;br /&gt;
&lt;br /&gt;
=== UnConference ===&lt;br /&gt;
[[wikipedia:Unconference|What is an UnConference?]]&lt;br /&gt;
&lt;br /&gt;
UnConference schedule to be published...&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! B559 !! B555 !! B551 !! B549 !! B567 !! B312&lt;br /&gt;
|-&lt;br /&gt;
| 14h00 - 15h00 || TBA&amp;lt;!-- VLC technical discussion --&amp;gt; || TBA&amp;lt;!-- libav technical discussion --&amp;gt; || TBA&amp;lt;!-- FFmpeg --&amp;gt; || || HACKING ROOM || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 15h00 - 16h00 || TBA&amp;lt;!-- VLC technical discussion --&amp;gt; || TBA&amp;lt;!-- libav technical discussion --&amp;gt; ||  ||  || HACKING ROOM || N/A &lt;br /&gt;
|-&lt;br /&gt;
| 16h00 - 17h00  || TBA&amp;lt;!-- Mac OS X --&amp;gt; || &amp;lt;!-- ffmpeg vs libav --&amp;gt; || TBA&amp;lt;!-- Android --&amp;gt;  ||  || HACKING ROOM || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 17h00 - 18h00  ||  || TBA&amp;lt;!-- Chromium / libav --&amp;gt; || TBA&amp;lt;!-- Android --&amp;gt; ||  || HACKING ROOM || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 18h00 - 19h00 ||  || TBA&amp;lt;!-- Licensing --&amp;gt; || TBA&amp;lt;!-- Android --&amp;gt; ||  || HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Dinner ===&lt;br /&gt;
[http://www.tripadvisor.fr/Restaurant_Review-g187147-d2459770-Reviews-Restaurant_Du_Paradis-Paris_Ile_de_France.html Restaurant du Paradis]&amp;lt;br /&amp;gt;&lt;br /&gt;
66 Rue du Faubourg Poissonniere&amp;lt;br /&amp;gt;&lt;br /&gt;
75010 Paris&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Metro: Line 7, Poissonière&lt;br /&gt;
&lt;br /&gt;
Starting at 20h00, dinner will consist of 2 special menus prepared by the chef. (drinks included - wine and non-alcoholic)&lt;br /&gt;
&lt;br /&gt;
The menu will consist of 4 choices for starters, principal meal and deserts. There is also a vegan menu available.&lt;br /&gt;
&lt;br /&gt;
== Sunday, September 1st 2013 ==&lt;br /&gt;
=== Morning ===&lt;br /&gt;
Schedule to be posted.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! B559 !! B555 !! B551 !! B549 !! B567 !! B312&lt;br /&gt;
|-&lt;br /&gt;
| 9h30 - 11h00  || TBD&amp;lt;!-- VideoLAN association meeting --&amp;gt; || TBD&amp;lt;!-- FFmtech meeting. --&amp;gt; ||  || || HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 11h00 - 12h00  || TBD&amp;lt;!-- Videolan cont. --&amp;gt; || TBD &amp;lt;!-- SOC --&amp;gt; ||  ||  ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 12h00 - 13h00  || TBD&amp;lt;!-- Bounties --&amp;gt; ||  ||  ||  ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=== Lunch ===&lt;br /&gt;
Location: Cafeteria of Free HQ (a really beautiful and spacious place!)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sandwiches&#039;&#039;&#039; with coleslaw or crisps and choices of drinks (including Dr Pepper) + desserts (Pecan pies, Oreo pies, lemon pies, or cheese cakes).&lt;br /&gt;
&lt;br /&gt;
=== Afternoon ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! B559 !! B555 !! B551 !! B549 !! B567 !! B312&lt;br /&gt;
|-&lt;br /&gt;
| 14h00 - 15h00  || TBD&amp;lt;!-- ARM --&amp;gt; ||  ||  ||  ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 15h00 - 16h00  || Hack || TBD&amp;lt;!-- Broadcasting --&amp;gt; || TBD&amp;lt;!-- MSVC --&amp;gt;  || ||  HACKING ROOM  || N/A &lt;br /&gt;
|-&lt;br /&gt;
| 16h00 - 17h00  || Hack  || TBD&amp;lt;!-- Captions --&amp;gt; || Hack || Hack ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 17h00 - 18h00  || Hack  || TBD&amp;lt;!-- FOMS info --&amp;gt; || Hack || Hack ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Places =&lt;br /&gt;
&lt;br /&gt;
== Asterix Park ==&lt;br /&gt;
60128 Plailly, France&amp;lt;br /&amp;gt;&lt;br /&gt;
Metro / RER: &#039;&#039;&#039;B3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
http://www.parcasterix.fr/&lt;br /&gt;
&lt;br /&gt;
== Free HQ ==&lt;br /&gt;
16 Rue de la Ville-l&#039;Évêque&amp;lt;br /&amp;gt;&lt;br /&gt;
75008 Paris, France ([http://goo.gl/EKHWEc plan])&lt;br /&gt;
&lt;br /&gt;
Metro 8: Madeleine&amp;lt;br /&amp;gt;&lt;br /&gt;
Metro 12: Madeleine&amp;lt;br /&amp;gt;&lt;br /&gt;
Metro 14: Madeleine&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From CDG airport, take:&amp;lt;br /&amp;gt;&lt;br /&gt;
the RER B (Paris by train) to Châtelet-les-Halles&amp;lt;br /&amp;gt;&lt;br /&gt;
then Metro line 14 to Madeleine.&lt;br /&gt;
&lt;br /&gt;
http://www.free.fr/&lt;br /&gt;
&lt;br /&gt;
== Hotel Ibis ==&lt;br /&gt;
[http://www.ibishotel.com/gb/hotel-5543-ibis-paris-avenue-d-italie-13eme/index.shtml Hotel IBIS Paris Avenue d&#039;Italie]&amp;lt;br /&amp;gt;&lt;br /&gt;
15 bis Avenue d&#039;Italie&amp;lt;br /&amp;gt;&lt;br /&gt;
75013 Paris&lt;br /&gt;
&lt;br /&gt;
== Emergencies ==&lt;br /&gt;
&lt;br /&gt;
* In case of emergency you can call the European emergency number 112.&lt;br /&gt;
* To place a call most credit cards can be used directly in public phones.&lt;br /&gt;
&lt;br /&gt;
[[Category:About VideoLAN]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VDD13&amp;diff=24675</id>
		<title>VDD13</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VDD13&amp;diff=24675"/>
		<updated>2013-08-28T09:05:35Z</updated>

		<summary type="html">&lt;p&gt;Etix: Add a plan&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= VideoLAN Dev Days &#039;13 =&lt;br /&gt;
&#039;&#039;&#039;The Multimedia Conference that frees the cone in you!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a technical un-conference, please bring laptops, cords, RJ45 cables, and a good mood with you.&lt;br /&gt;
&lt;br /&gt;
=== Nota Bene ===&lt;br /&gt;
* The hotel is the [http://www.ibishotel.com/gb/hotel-5543-ibis-paris-avenue-d-italie-13eme/index.shtml Ibis] Avenue d&#039;Italie.&lt;br /&gt;
&lt;br /&gt;
* If you expect us to refund your travel, please bring a printed copy of your tickets, one that shows the total cost. If you are not in our reimbursement database, bring a printed IBAN too.&lt;br /&gt;
 &lt;br /&gt;
* On Saturday and Sunday, enter the Free HQ by the &#039;&#039;&#039;16 Rue de la Ville-l&#039;Évêque&#039;&#039;&#039;.&lt;br /&gt;
** There will be a smoking area inside the building, as the entrance cannot be used once inside the building for security reasons.&lt;br /&gt;
&lt;br /&gt;
* There will be a WiFi connection.&amp;lt;!-- under the &#039;&#039;&#039;???????&#039;&#039;&#039; ESSID. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Schedule =&lt;br /&gt;
== Friday, August 30th 2013 ==&lt;br /&gt;
[[Image:Asterix VLC.svg|right|270px]]&lt;br /&gt;
Friday is an &#039;&#039;&#039;&amp;lt;u&amp;gt;optional&amp;lt;/u&amp;gt;&#039;&#039;&#039; day in the Asterix amusement park to bind together our community. If you wish to attend, the meeting in front of the hotel is at 8:30.&lt;br /&gt;
There will be a bus that will be responsible for bringing everyone to and back from the park. More details on the park are available below.&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* that bus and park entrance fees are paid by us, so there are NO costs with the exception of food and drinks&lt;br /&gt;
* do not burden yourself too much with unneeded stuff and particularly &#039;&#039;&#039;don&#039;t bring your laptop&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! Place !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 8h30 || [http://www.ibishotel.com/gb/hotel-5543-ibis-paris-avenue-d-italie-13eme/index.shtml Hotel] || Meeting point in front of the hotel&lt;br /&gt;
|-&lt;br /&gt;
| 10h00 – 18h00 || Visit to Asterix park&lt;br /&gt;
|-&lt;br /&gt;
| 21h00 || Meeting at a local bar, for the brave... || NB: VideoLAN will not pay for expenses at the bar...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you cannot be present at the meeting point, you will be able to join us directly there, but you &#039;&#039;&#039;MUST&#039;&#039;&#039; tell us. For reference here are directions to the park: Take RER B3 from Paris Gare du Nord, platform 43 and get off at “Aéroport Charles De Gaulle Terminal 1, Terminal 3”. Go to the “Parcs de Loisirs” counter and board the Parc Astérix shuttle buses.&lt;br /&gt;
&lt;br /&gt;
== Saturday, August 31st 2013 ==&lt;br /&gt;
All the meetings happen in the &#039;&#039;&#039;auditorium&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Morning ===&lt;br /&gt;
Schedule information is not currently available.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 9h30 – 10h00 || Welcome, registration, coffee, juice and croissants&lt;br /&gt;
|-&lt;br /&gt;
| 10h00 – 10h15 || Welcome, VideoLAN, VLC&lt;br /&gt;
|-&lt;br /&gt;
| 10h20 – 10h45 || TBA&amp;lt;!-- VP9 --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 10h45 – 11h15 || VLC and DCP&lt;br /&gt;
|-&lt;br /&gt;
| 11h15 – 11h30 || &#039;&#039;&#039;Coffee Break&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 11h30 – 11h45 || x265&lt;br /&gt;
|-&lt;br /&gt;
| 11h45 – 12h05 || TBA&amp;lt;!-- VLC DCP --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 12h05 – 12h30 || VLC 2.1.0 and next&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Lunch ===&lt;br /&gt;
Individual tray meal (chicken, salmon, vegetarian or beef) with dessert and drinks.&lt;br /&gt;
&lt;br /&gt;
=== UnConference ===&lt;br /&gt;
[[wikipedia:Unconference|What is an UnConference?]]&lt;br /&gt;
&lt;br /&gt;
UnConference schedule to be published...&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! B559 !! B555 !! B551 !! B549 !! B567 !! B312&lt;br /&gt;
|-&lt;br /&gt;
| 14h00 - 15h00 || TBA&amp;lt;!-- VLC technical discussion --&amp;gt; || TBA&amp;lt;!-- libav technical discussion --&amp;gt; || TBA&amp;lt;!-- FFmpeg --&amp;gt; || || HACKING ROOM || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 15h00 - 16h00 || TBA&amp;lt;!-- VLC technical discussion --&amp;gt; || TBA&amp;lt;!-- libav technical discussion --&amp;gt; ||  ||  || HACKING ROOM || N/A &lt;br /&gt;
|-&lt;br /&gt;
| 16h00 - 17h00  || TBA&amp;lt;!-- Mac OS X --&amp;gt; || &amp;lt;!-- ffmpeg vs libav --&amp;gt; || TBA&amp;lt;!-- Android --&amp;gt;  ||  || HACKING ROOM || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 17h00 - 18h00  ||  || TBA&amp;lt;!-- Chromium / libav --&amp;gt; || TBA&amp;lt;!-- Android --&amp;gt; ||  || HACKING ROOM || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 18h00 - 19h00 ||  || TBA&amp;lt;!-- Licensing --&amp;gt; || TBA&amp;lt;!-- Android --&amp;gt; ||  || HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Dinner ===&lt;br /&gt;
[http://www.tripadvisor.fr/Restaurant_Review-g187147-d2459770-Reviews-Restaurant_Du_Paradis-Paris_Ile_de_France.html Restaurant du Paradis]&amp;lt;br /&amp;gt;&lt;br /&gt;
66 Rue du Faubourg Poissonniere&amp;lt;br /&amp;gt;&lt;br /&gt;
75010 Paris&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Metro: Line 7, Poissonière&lt;br /&gt;
&lt;br /&gt;
Starting at 20h00, dinner will consist of 2 special menus prepared by the chef. (drinks included - wine and non-alcoholic)&lt;br /&gt;
&lt;br /&gt;
The menu will consist of 4 choices for starters, principal meal and deserts. There is also a vegan menu available.&lt;br /&gt;
&lt;br /&gt;
== Sunday, September 1st 2013 ==&lt;br /&gt;
=== Morning ===&lt;br /&gt;
Schedule to be posted.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! B559 !! B555 !! B551 !! B549 !! B567 !! B312&lt;br /&gt;
|-&lt;br /&gt;
| 9h30 - 11h00  || TBD&amp;lt;!-- VideoLAN association meeting --&amp;gt; || TBD&amp;lt;!-- FFmtech meeting. --&amp;gt; ||  || || HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 11h00 - 12h00  || TBD&amp;lt;!-- Videolan cont. --&amp;gt; || TBD &amp;lt;!-- SOC --&amp;gt; ||  ||  ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 12h00 - 13h00  || TBD&amp;lt;!-- Bounties --&amp;gt; ||  ||  ||  ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=== Lunch ===&lt;br /&gt;
Location: Cafeteria of Free HQ (a really beautiful and spacious place!)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sandwiches&#039;&#039;&#039; with coleslaw or crisps and choices of drinks (including Dr Pepper) + desserts (Pecan pies, Oreo pies, lemon pies, or cheese cakes).&lt;br /&gt;
&lt;br /&gt;
=== Afternoon ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! B559 !! B555 !! B551 !! B549 !! B567 !! B312&lt;br /&gt;
|-&lt;br /&gt;
| 14h00 - 15h00  || TBD&amp;lt;!-- ARM --&amp;gt; ||  ||  ||  ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 15h00 - 16h00  || Hack || TBD&amp;lt;!-- Broadcasting --&amp;gt; || TBD&amp;lt;!-- MSVC --&amp;gt;  || ||  HACKING ROOM  || N/A &lt;br /&gt;
|-&lt;br /&gt;
| 16h00 - 17h00  || Hack  || TBD&amp;lt;!-- Captions --&amp;gt; || Hack || Hack ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 17h00 - 18h00  || Hack  || TBD&amp;lt;!-- FOMS info --&amp;gt; || Hack || Hack ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Places =&lt;br /&gt;
&lt;br /&gt;
== Asterix Park ==&lt;br /&gt;
60128 Plailly, France&amp;lt;br /&amp;gt;&lt;br /&gt;
Metro / RER: &#039;&#039;&#039;B3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
http://www.parcasterix.fr/&lt;br /&gt;
&lt;br /&gt;
== Free HQ ==&lt;br /&gt;
16 Rue de la Ville-l&#039;Évêque&amp;lt;br /&amp;gt;&lt;br /&gt;
75008 Paris, France ([http://goo.gl/EKHWEc plan])&lt;br /&gt;
&lt;br /&gt;
Metro 8: Madeleine&amp;lt;br /&amp;gt;&lt;br /&gt;
Metro 12: Madeleine&amp;lt;br /&amp;gt;&lt;br /&gt;
Metro 14: Madeleine&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From CDG airport, take:&amp;lt;br /&amp;gt;&lt;br /&gt;
the RER B (Paris by train) to Châtelet-les-Halles&amp;lt;br /&amp;gt;&lt;br /&gt;
then Metro line 14 to Madeleine.&lt;br /&gt;
&lt;br /&gt;
http://www.free.fr/&lt;br /&gt;
&lt;br /&gt;
== Hotel Ibis ==&lt;br /&gt;
[http://www.ibishotel.com/gb/hotel-5543-ibis-paris-avenue-d-italie-13eme/index.shtml Hotel IBIS Paris Avenue d&#039;Italie]&amp;lt;br /&amp;gt;&lt;br /&gt;
15 bis Avenue d&#039;Italie&amp;lt;br /&amp;gt;&lt;br /&gt;
75013 Paris&lt;br /&gt;
&lt;br /&gt;
== Emergencies ==&lt;br /&gt;
&lt;br /&gt;
* In case of emergency you can call the European emergency number 112.&lt;br /&gt;
* To place a call most credit cards can be used directly in public phones.&lt;br /&gt;
&lt;br /&gt;
[[Category:About VideoLAN]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VDD13&amp;diff=24674</id>
		<title>VDD13</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VDD13&amp;diff=24674"/>
		<updated>2013-08-28T09:00:01Z</updated>

		<summary type="html">&lt;p&gt;Etix: Emergencies&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= VideoLAN Dev Days &#039;13 =&lt;br /&gt;
&#039;&#039;&#039;The Multimedia Conference that frees the cone in you!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a technical un-conference, please bring laptops, cords, RJ45 cables, and a good mood with you.&lt;br /&gt;
&lt;br /&gt;
=== Nota Bene ===&lt;br /&gt;
* The hotel is the [http://www.ibishotel.com/gb/hotel-5543-ibis-paris-avenue-d-italie-13eme/index.shtml Ibis] Avenue d&#039;Italie.&lt;br /&gt;
&lt;br /&gt;
* If you expect us to refund your travel, please bring a printed copy of your tickets, one that shows the total cost. If you are not in our reimbursement database, bring a printed IBAN too.&lt;br /&gt;
 &lt;br /&gt;
* On Saturday and Sunday, enter the Free HQ by the &#039;&#039;&#039;16 Rue de la Ville-l&#039;Évêque&#039;&#039;&#039;.&lt;br /&gt;
** There will be a smoking area inside the building, as the entrance cannot be used once inside the building for security reasons.&lt;br /&gt;
&lt;br /&gt;
* There will be a WiFi connection.&amp;lt;!-- under the &#039;&#039;&#039;???????&#039;&#039;&#039; ESSID. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Schedule =&lt;br /&gt;
== Friday, August 30th 2013 ==&lt;br /&gt;
[[Image:Asterix VLC.svg|right|270px]]&lt;br /&gt;
Friday is an &#039;&#039;&#039;&amp;lt;u&amp;gt;optional&amp;lt;/u&amp;gt;&#039;&#039;&#039; day in the Asterix amusement park to bind together our community. If you wish to attend, the meeting in front of the hotel is at 8:30.&lt;br /&gt;
There will be a bus that will be responsible for bringing everyone to and back from the park. More details on the park are available below.&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* that bus and park entrance fees are paid by us, so there are NO costs with the exception of food and drinks&lt;br /&gt;
* do not burden yourself too much with unneeded stuff and particularly &#039;&#039;&#039;don&#039;t bring your laptop&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! Place !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 8h30 || [http://www.ibishotel.com/gb/hotel-5543-ibis-paris-avenue-d-italie-13eme/index.shtml Hotel] || Meeting point in front of the hotel&lt;br /&gt;
|-&lt;br /&gt;
| 10h00 – 18h00 || Visit to Asterix park&lt;br /&gt;
|-&lt;br /&gt;
| 21h00 || Meeting at a local bar, for the brave... || NB: VideoLAN will not pay for expenses at the bar...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you cannot be present at the meeting point, you will be able to join us directly there, but you &#039;&#039;&#039;MUST&#039;&#039;&#039; tell us. For reference here are directions to the park: Take RER B3 from Paris Gare du Nord, platform 43 and get off at “Aéroport Charles De Gaulle Terminal 1, Terminal 3”. Go to the “Parcs de Loisirs” counter and board the Parc Astérix shuttle buses.&lt;br /&gt;
&lt;br /&gt;
== Saturday, August 31st 2013 ==&lt;br /&gt;
All the meetings happen in the &#039;&#039;&#039;auditorium&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Morning ===&lt;br /&gt;
Schedule information is not currently available.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 9h30 – 10h00 || Welcome, registration, coffee, juice and croissants&lt;br /&gt;
|-&lt;br /&gt;
| 10h00 – 10h15 || Welcome, VideoLAN, VLC&lt;br /&gt;
|-&lt;br /&gt;
| 10h20 – 10h45 || TBA&amp;lt;!-- VP9 --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 10h45 – 11h15 || VLC and DCP&lt;br /&gt;
|-&lt;br /&gt;
| 11h15 – 11h30 || &#039;&#039;&#039;Coffee Break&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 11h30 – 11h45 || x265&lt;br /&gt;
|-&lt;br /&gt;
| 11h45 – 12h05 || TBA&amp;lt;!-- VLC DCP --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 12h05 – 12h30 || VLC 2.1.0 and next&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Lunch ===&lt;br /&gt;
Individual tray meal (chicken, salmon, vegetarian or beef) with dessert and drinks.&lt;br /&gt;
&lt;br /&gt;
=== UnConference ===&lt;br /&gt;
[[wikipedia:Unconference|What is an UnConference?]]&lt;br /&gt;
&lt;br /&gt;
UnConference schedule to be published...&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! B559 !! B555 !! B551 !! B549 !! B567 !! B312&lt;br /&gt;
|-&lt;br /&gt;
| 14h00 - 15h00 || TBA&amp;lt;!-- VLC technical discussion --&amp;gt; || TBA&amp;lt;!-- libav technical discussion --&amp;gt; || TBA&amp;lt;!-- FFmpeg --&amp;gt; || || HACKING ROOM || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 15h00 - 16h00 || TBA&amp;lt;!-- VLC technical discussion --&amp;gt; || TBA&amp;lt;!-- libav technical discussion --&amp;gt; ||  ||  || HACKING ROOM || N/A &lt;br /&gt;
|-&lt;br /&gt;
| 16h00 - 17h00  || TBA&amp;lt;!-- Mac OS X --&amp;gt; || &amp;lt;!-- ffmpeg vs libav --&amp;gt; || TBA&amp;lt;!-- Android --&amp;gt;  ||  || HACKING ROOM || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 17h00 - 18h00  ||  || TBA&amp;lt;!-- Chromium / libav --&amp;gt; || TBA&amp;lt;!-- Android --&amp;gt; ||  || HACKING ROOM || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 18h00 - 19h00 ||  || TBA&amp;lt;!-- Licensing --&amp;gt; || TBA&amp;lt;!-- Android --&amp;gt; ||  || HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Dinner ===&lt;br /&gt;
[http://www.tripadvisor.fr/Restaurant_Review-g187147-d2459770-Reviews-Restaurant_Du_Paradis-Paris_Ile_de_France.html Restaurant du Paradis]&amp;lt;br /&amp;gt;&lt;br /&gt;
66 Rue du Faubourg Poissonniere&amp;lt;br /&amp;gt;&lt;br /&gt;
75010 Paris&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Metro: Line 7, Poissonière&lt;br /&gt;
&lt;br /&gt;
Starting at 20h00, dinner will consist of 2 special menus prepared by the chef. (drinks included - wine and non-alcoholic)&lt;br /&gt;
&lt;br /&gt;
The menu will consist of 4 choices for starters, principal meal and deserts. There is also a vegan menu available.&lt;br /&gt;
&lt;br /&gt;
== Sunday, September 1st 2013 ==&lt;br /&gt;
=== Morning ===&lt;br /&gt;
Schedule to be posted.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! B559 !! B555 !! B551 !! B549 !! B567 !! B312&lt;br /&gt;
|-&lt;br /&gt;
| 9h30 - 11h00  || TBD&amp;lt;!-- VideoLAN association meeting --&amp;gt; || TBD&amp;lt;!-- FFmtech meeting. --&amp;gt; ||  || || HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 11h00 - 12h00  || TBD&amp;lt;!-- Videolan cont. --&amp;gt; || TBD &amp;lt;!-- SOC --&amp;gt; ||  ||  ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 12h00 - 13h00  || TBD&amp;lt;!-- Bounties --&amp;gt; ||  ||  ||  ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=== Lunch ===&lt;br /&gt;
Location: Cafeteria of Free HQ (a really beautiful and spacious place!)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sandwiches&#039;&#039;&#039; with coleslaw or crisps and choices of drinks (including Dr Pepper) + desserts (Pecan pies, Oreo pies, lemon pies, or cheese cakes).&lt;br /&gt;
&lt;br /&gt;
=== Afternoon ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! B559 !! B555 !! B551 !! B549 !! B567 !! B312&lt;br /&gt;
|-&lt;br /&gt;
| 14h00 - 15h00  || TBD&amp;lt;!-- ARM --&amp;gt; ||  ||  ||  ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 15h00 - 16h00  || Hack || TBD&amp;lt;!-- Broadcasting --&amp;gt; || TBD&amp;lt;!-- MSVC --&amp;gt;  || ||  HACKING ROOM  || N/A &lt;br /&gt;
|-&lt;br /&gt;
| 16h00 - 17h00  || Hack  || TBD&amp;lt;!-- Captions --&amp;gt; || Hack || Hack ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 17h00 - 18h00  || Hack  || TBD&amp;lt;!-- FOMS info --&amp;gt; || Hack || Hack ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Places =&lt;br /&gt;
&lt;br /&gt;
== Asterix Park ==&lt;br /&gt;
60128 Plailly, France&amp;lt;br /&amp;gt;&lt;br /&gt;
Metro / RER: &#039;&#039;&#039;B3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
http://www.parcasterix.fr/&lt;br /&gt;
&lt;br /&gt;
== Free HQ ==&lt;br /&gt;
16 Rue de la Ville-l&#039;Évêque&amp;lt;br /&amp;gt;&lt;br /&gt;
75008 Paris, France&lt;br /&gt;
&lt;br /&gt;
Metro 8: Madeleine&amp;lt;br /&amp;gt;&lt;br /&gt;
Metro 12: Madeleine&amp;lt;br /&amp;gt;&lt;br /&gt;
Metro 14: Madeleine&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From CDG airport, take:&amp;lt;br /&amp;gt;&lt;br /&gt;
the RER B (Paris by train) to Châtelet-les-Halles&amp;lt;br /&amp;gt;&lt;br /&gt;
then Metro line 14 to Madeleine.&lt;br /&gt;
&lt;br /&gt;
http://www.free.fr/&lt;br /&gt;
&lt;br /&gt;
== Hotel Ibis ==&lt;br /&gt;
[http://www.ibishotel.com/gb/hotel-5543-ibis-paris-avenue-d-italie-13eme/index.shtml Hotel IBIS Paris Avenue d&#039;Italie]&amp;lt;br /&amp;gt;&lt;br /&gt;
15 bis Avenue d&#039;Italie&amp;lt;br /&amp;gt;&lt;br /&gt;
75013 Paris&lt;br /&gt;
&lt;br /&gt;
== Emergencies ==&lt;br /&gt;
&lt;br /&gt;
* In case of emergency you can call the European emergency number 112.&lt;br /&gt;
* To place a call most credit cards can be used directly in public phones.&lt;br /&gt;
&lt;br /&gt;
[[Category:About VideoLAN]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VDD13&amp;diff=24673</id>
		<title>VDD13</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VDD13&amp;diff=24673"/>
		<updated>2013-08-28T08:47:26Z</updated>

		<summary type="html">&lt;p&gt;Etix: /* Friday, August 30th 2013 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= VideoLAN Dev Days &#039;13 =&lt;br /&gt;
&#039;&#039;&#039;The Multimedia Conference that frees the cone in you!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a technical un-conference, please bring laptops, cords, RJ45 cables, and a good mood with you.&lt;br /&gt;
&lt;br /&gt;
=== Nota Bene ===&lt;br /&gt;
* The hotel is the [http://www.ibishotel.com/gb/hotel-5543-ibis-paris-avenue-d-italie-13eme/index.shtml Ibis] Avenue d&#039;Italie.&lt;br /&gt;
&lt;br /&gt;
* If you expect us to refund your travel, please bring a printed copy of your tickets, one that shows the total cost. If you are not in our reimbursement database, bring a printed IBAN too.&lt;br /&gt;
 &lt;br /&gt;
* On Saturday and Sunday, enter the Free HQ by the &#039;&#039;&#039;16 Rue de la Ville-l&#039;Évêque&#039;&#039;&#039;.&lt;br /&gt;
** There will be a smoking area inside the building, as the entrance cannot be used once inside the building for security reasons.&lt;br /&gt;
&lt;br /&gt;
* There will be a WiFi connection.&amp;lt;!-- under the &#039;&#039;&#039;???????&#039;&#039;&#039; ESSID. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Schedule =&lt;br /&gt;
== Friday, August 30th 2013 ==&lt;br /&gt;
[[Image:Asterix VLC.svg|right|270px]]&lt;br /&gt;
Friday is an &#039;&#039;&#039;&amp;lt;u&amp;gt;optional&amp;lt;/u&amp;gt;&#039;&#039;&#039; day in the Asterix amusement park to bind together our community. If you wish to attend, the meeting in front of the hotel is at 8:30.&lt;br /&gt;
There will be a bus that will be responsible for bringing everyone to and back from the park. More details on the park are available below.&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* that bus and park entrance fees are paid by us, so there are NO costs with the exception of food and drinks&lt;br /&gt;
* do not burden yourself too much with unneeded stuff and particularly &#039;&#039;&#039;don&#039;t bring your laptop&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! Place !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 8h30 || [http://www.ibishotel.com/gb/hotel-5543-ibis-paris-avenue-d-italie-13eme/index.shtml Hotel] || Meeting point in front of the hotel&lt;br /&gt;
|-&lt;br /&gt;
| 10h00 – 18h00 || Visit to Asterix park&lt;br /&gt;
|-&lt;br /&gt;
| 21h00 || Meeting at a local bar, for the brave... || NB: VideoLAN will not pay for expenses at the bar...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you cannot be present at the meeting point, you will be able to join us directly there, but you &#039;&#039;&#039;MUST&#039;&#039;&#039; tell us. For reference here are directions to the park: Take RER B3 from Paris Gare du Nord, platform 43 and get off at “Aéroport Charles De Gaulle Terminal 1, Terminal 3”. Go to the “Parcs de Loisirs” counter and board the Parc Astérix shuttle buses.&lt;br /&gt;
&lt;br /&gt;
== Saturday, August 31st 2013 ==&lt;br /&gt;
All the meetings happen in the &#039;&#039;&#039;auditorium&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Morning ===&lt;br /&gt;
Schedule information is not currently available.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 9h30 – 10h00 || Welcome, registration, coffee, juice and croissants&lt;br /&gt;
|-&lt;br /&gt;
| 10h00 – 10h15 || Welcome, VideoLAN, VLC&lt;br /&gt;
|-&lt;br /&gt;
| 10h20 – 10h45 || TBA&amp;lt;!-- VP9 --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 10h45 – 11h15 || VLC and DCP&lt;br /&gt;
|-&lt;br /&gt;
| 11h15 – 11h30 || &#039;&#039;&#039;Coffee Break&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 11h30 – 11h45 || x265&lt;br /&gt;
|-&lt;br /&gt;
| 11h45 – 12h05 || TBA&amp;lt;!-- VLC DCP --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 12h05 – 12h30 || VLC 2.1.0 and next&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Lunch ===&lt;br /&gt;
Individual tray meal (chicken, salmon, vegetarian or beef) with dessert and drinks.&lt;br /&gt;
&lt;br /&gt;
=== UnConference ===&lt;br /&gt;
[[wikipedia:Unconference|What is an UnConference?]]&lt;br /&gt;
&lt;br /&gt;
UnConference schedule to be published...&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! B559 !! B555 !! B551 !! B549 !! B567 !! B312&lt;br /&gt;
|-&lt;br /&gt;
| 14h00 - 15h00 || TBA&amp;lt;!-- VLC technical discussion --&amp;gt; || TBA&amp;lt;!-- libav technical discussion --&amp;gt; || TBA&amp;lt;!-- FFmpeg --&amp;gt; || || HACKING ROOM || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 15h00 - 16h00 || TBA&amp;lt;!-- VLC technical discussion --&amp;gt; || TBA&amp;lt;!-- libav technical discussion --&amp;gt; ||  ||  || HACKING ROOM || N/A &lt;br /&gt;
|-&lt;br /&gt;
| 16h00 - 17h00  || TBA&amp;lt;!-- Mac OS X --&amp;gt; || &amp;lt;!-- ffmpeg vs libav --&amp;gt; || TBA&amp;lt;!-- Android --&amp;gt;  ||  || HACKING ROOM || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 17h00 - 18h00  ||  || TBA&amp;lt;!-- Chromium / libav --&amp;gt; || TBA&amp;lt;!-- Android --&amp;gt; ||  || HACKING ROOM || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 18h00 - 19h00 ||  || TBA&amp;lt;!-- Licensing --&amp;gt; || TBA&amp;lt;!-- Android --&amp;gt; ||  || HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Dinner ===&lt;br /&gt;
[http://www.tripadvisor.fr/Restaurant_Review-g187147-d2459770-Reviews-Restaurant_Du_Paradis-Paris_Ile_de_France.html Restaurant du Paradis]&amp;lt;br /&amp;gt;&lt;br /&gt;
66 Rue du Faubourg Poissonniere&amp;lt;br /&amp;gt;&lt;br /&gt;
75010 Paris&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Metro: Line 7, Poissonière&lt;br /&gt;
&lt;br /&gt;
Starting at 20h00, dinner will consist of 2 special menus prepared by the chef. (drinks included - wine and non-alcoholic)&lt;br /&gt;
&lt;br /&gt;
The menu will consist of 4 choices for starters, principal meal and deserts. There is also a vegan menu available.&lt;br /&gt;
&lt;br /&gt;
== Sunday, September 1st 2013 ==&lt;br /&gt;
=== Morning ===&lt;br /&gt;
Schedule to be posted.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! B559 !! B555 !! B551 !! B549 !! B567 !! B312&lt;br /&gt;
|-&lt;br /&gt;
| 9h30 - 11h00  || TBD&amp;lt;!-- VideoLAN association meeting --&amp;gt; || TBD&amp;lt;!-- FFmtech meeting. --&amp;gt; ||  || || HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 11h00 - 12h00  || TBD&amp;lt;!-- Videolan cont. --&amp;gt; || TBD &amp;lt;!-- SOC --&amp;gt; ||  ||  ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 12h00 - 13h00  || TBD&amp;lt;!-- Bounties --&amp;gt; ||  ||  ||  ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=== Lunch ===&lt;br /&gt;
Location: Cafeteria of Free HQ (a really beautiful and spacious place!)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sandwiches&#039;&#039;&#039; with coleslaw or crisps and choices of drinks (including Dr Pepper) + desserts (Pecan pies, Oreo pies, lemon pies, or cheese cakes).&lt;br /&gt;
&lt;br /&gt;
=== Afternoon ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! B559 !! B555 !! B551 !! B549 !! B567 !! B312&lt;br /&gt;
|-&lt;br /&gt;
| 14h00 - 15h00  || TBD&amp;lt;!-- ARM --&amp;gt; ||  ||  ||  ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 15h00 - 16h00  || Hack || TBD&amp;lt;!-- Broadcasting --&amp;gt; || TBD&amp;lt;!-- MSVC --&amp;gt;  || ||  HACKING ROOM  || N/A &lt;br /&gt;
|-&lt;br /&gt;
| 16h00 - 17h00  || Hack  || TBD&amp;lt;!-- Captions --&amp;gt; || Hack || Hack ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 17h00 - 18h00  || Hack  || TBD&amp;lt;!-- FOMS info --&amp;gt; || Hack || Hack ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Places =&lt;br /&gt;
&lt;br /&gt;
== Asterix Park ==&lt;br /&gt;
60128 Plailly, France&amp;lt;br /&amp;gt;&lt;br /&gt;
Metro / RER: &#039;&#039;&#039;B3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
http://www.parcasterix.fr/&lt;br /&gt;
&lt;br /&gt;
== Free HQ ==&lt;br /&gt;
16 Rue de la Ville-l&#039;Évêque&amp;lt;br /&amp;gt;&lt;br /&gt;
75008 Paris, France&lt;br /&gt;
&lt;br /&gt;
Metro 8: Madeleine&amp;lt;br /&amp;gt;&lt;br /&gt;
Metro 12: Madeleine&amp;lt;br /&amp;gt;&lt;br /&gt;
Metro 14: Madeleine&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From CDG airport, take:&amp;lt;br /&amp;gt;&lt;br /&gt;
the RER B (Paris by train) to Châtelet-les-Halles&amp;lt;br /&amp;gt;&lt;br /&gt;
then Metro line 14 to Madeleine.&lt;br /&gt;
&lt;br /&gt;
http://www.free.fr/&lt;br /&gt;
&lt;br /&gt;
== Hotel Ibis ==&lt;br /&gt;
[http://www.ibishotel.com/gb/hotel-5543-ibis-paris-avenue-d-italie-13eme/index.shtml Hotel IBIS Paris Avenue d&#039;Italie]&amp;lt;br /&amp;gt;&lt;br /&gt;
15 bis Avenue d&#039;Italie&amp;lt;br /&amp;gt;&lt;br /&gt;
75013 Paris&lt;br /&gt;
&lt;br /&gt;
[[Category:About VideoLAN]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VDD13&amp;diff=24672</id>
		<title>VDD13</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VDD13&amp;diff=24672"/>
		<updated>2013-08-28T08:43:52Z</updated>

		<summary type="html">&lt;p&gt;Etix: /* Friday, August 30th 2013 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= VideoLAN Dev Days &#039;13 =&lt;br /&gt;
&#039;&#039;&#039;The Multimedia Conference that frees the cone in you!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a technical un-conference, please bring laptops, cords, RJ45 cables, and a good mood with you.&lt;br /&gt;
&lt;br /&gt;
=== Nota Bene ===&lt;br /&gt;
* The hotel is the [http://www.ibishotel.com/gb/hotel-5543-ibis-paris-avenue-d-italie-13eme/index.shtml Ibis] Avenue d&#039;Italie.&lt;br /&gt;
&lt;br /&gt;
* If you expect us to refund your travel, please bring a printed copy of your tickets, one that shows the total cost. If you are not in our reimbursement database, bring a printed IBAN too.&lt;br /&gt;
 &lt;br /&gt;
* On Saturday and Sunday, enter the Free HQ by the &#039;&#039;&#039;16 Rue de la Ville-l&#039;Évêque&#039;&#039;&#039;.&lt;br /&gt;
** There will be a smoking area inside the building, as the entrance cannot be used once inside the building for security reasons.&lt;br /&gt;
&lt;br /&gt;
* There will be a WiFi connection.&amp;lt;!-- under the &#039;&#039;&#039;???????&#039;&#039;&#039; ESSID. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Schedule =&lt;br /&gt;
== Friday, August 30th 2013 ==&lt;br /&gt;
[[Image:Asterix VLC.svg|right|270px]]&lt;br /&gt;
Friday is an &#039;&#039;&#039;&amp;lt;u&amp;gt;optional&amp;lt;/u&amp;gt;&#039;&#039;&#039; day in the Asterix amusement park to bind together our community. If you wish to attend, the meeting in front of the hotel is at 8:30.&lt;br /&gt;
There will be a bus that will be responsible for bringing everyone to and back from the park. More details on the park are available below.&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* that bus and park entrance fees are paid by us, so there are NO costs for you.&lt;br /&gt;
* do not burden yourself too much with unneeded stuff and particularly &#039;&#039;&#039;don&#039;t bring your laptop&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! Place !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 8h30 || [http://www.ibishotel.com/gb/hotel-5543-ibis-paris-avenue-d-italie-13eme/index.shtml Hotel] || Meeting point in front of the hotel&lt;br /&gt;
|-&lt;br /&gt;
| 10h00 – 18h00 || Visit to Asterix park&lt;br /&gt;
|-&lt;br /&gt;
| 21h00 || Meeting at a local bar, for the brave... || NB: VideoLAN will not pay for expenses at the bar...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you cannot be present at the meeting point, you will be able to join us directly there, but you &#039;&#039;&#039;MUST&#039;&#039;&#039; tell us. For reference here are directions to the park: Take RER B3 from Paris Gare du Nord, platform 43 and get off at “Aéroport Charles De Gaulle Terminal 1, Terminal 3”. Go to the “Parcs de Loisirs” counter and board the Parc Astérix shuttle buses.&lt;br /&gt;
&lt;br /&gt;
== Saturday, August 31st 2013 ==&lt;br /&gt;
All the meetings happen in the &#039;&#039;&#039;auditorium&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Morning ===&lt;br /&gt;
Schedule information is not currently available.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 9h30 – 10h00 || Welcome, registration, coffee, juice and croissants&lt;br /&gt;
|-&lt;br /&gt;
| 10h00 – 10h15 || Welcome, VideoLAN, VLC&lt;br /&gt;
|-&lt;br /&gt;
| 10h20 – 10h45 || TBA&amp;lt;!-- VP9 --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 10h45 – 11h15 || VLC and DCP&lt;br /&gt;
|-&lt;br /&gt;
| 11h15 – 11h30 || &#039;&#039;&#039;Coffee Break&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 11h30 – 11h45 || x265&lt;br /&gt;
|-&lt;br /&gt;
| 11h45 – 12h05 || TBA&amp;lt;!-- VLC DCP --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 12h05 – 12h30 || VLC 2.1.0 and next&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Lunch ===&lt;br /&gt;
Individual tray meal (chicken, salmon, vegetarian or beef) with dessert and drinks.&lt;br /&gt;
&lt;br /&gt;
=== UnConference ===&lt;br /&gt;
[[wikipedia:Unconference|What is an UnConference?]]&lt;br /&gt;
&lt;br /&gt;
UnConference schedule to be published...&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! B559 !! B555 !! B551 !! B549 !! B567 !! B312&lt;br /&gt;
|-&lt;br /&gt;
| 14h00 - 15h00 || TBA&amp;lt;!-- VLC technical discussion --&amp;gt; || TBA&amp;lt;!-- libav technical discussion --&amp;gt; || TBA&amp;lt;!-- FFmpeg --&amp;gt; || || HACKING ROOM || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 15h00 - 16h00 || TBA&amp;lt;!-- VLC technical discussion --&amp;gt; || TBA&amp;lt;!-- libav technical discussion --&amp;gt; ||  ||  || HACKING ROOM || N/A &lt;br /&gt;
|-&lt;br /&gt;
| 16h00 - 17h00  || TBA&amp;lt;!-- Mac OS X --&amp;gt; || &amp;lt;!-- ffmpeg vs libav --&amp;gt; || TBA&amp;lt;!-- Android --&amp;gt;  ||  || HACKING ROOM || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 17h00 - 18h00  ||  || TBA&amp;lt;!-- Chromium / libav --&amp;gt; || TBA&amp;lt;!-- Android --&amp;gt; ||  || HACKING ROOM || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 18h00 - 19h00 ||  || TBA&amp;lt;!-- Licensing --&amp;gt; || TBA&amp;lt;!-- Android --&amp;gt; ||  || HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Dinner ===&lt;br /&gt;
[http://www.tripadvisor.fr/Restaurant_Review-g187147-d2459770-Reviews-Restaurant_Du_Paradis-Paris_Ile_de_France.html Restaurant du Paradis]&amp;lt;br /&amp;gt;&lt;br /&gt;
66 Rue du Faubourg Poissonniere&amp;lt;br /&amp;gt;&lt;br /&gt;
75010 Paris&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Metro: Line 7, Poissonière&lt;br /&gt;
&lt;br /&gt;
Starting at 20h00, dinner will consist of 2 special menus prepared by the chef. (drinks included - wine and non-alcoholic)&lt;br /&gt;
&lt;br /&gt;
The menu will consist of 4 choices for starters, principal meal and deserts. There is also a vegan menu available.&lt;br /&gt;
&lt;br /&gt;
== Sunday, September 1st 2013 ==&lt;br /&gt;
=== Morning ===&lt;br /&gt;
Schedule to be posted.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! B559 !! B555 !! B551 !! B549 !! B567 !! B312&lt;br /&gt;
|-&lt;br /&gt;
| 9h30 - 11h00  || TBD&amp;lt;!-- VideoLAN association meeting --&amp;gt; || TBD&amp;lt;!-- FFmtech meeting. --&amp;gt; ||  || || HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 11h00 - 12h00  || TBD&amp;lt;!-- Videolan cont. --&amp;gt; || TBD &amp;lt;!-- SOC --&amp;gt; ||  ||  ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 12h00 - 13h00  || TBD&amp;lt;!-- Bounties --&amp;gt; ||  ||  ||  ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
=== Lunch ===&lt;br /&gt;
Location: Cafeteria of Free HQ (a really beautiful and spacious place!)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sandwiches&#039;&#039;&#039; with coleslaw or crisps and choices of drinks (including Dr Pepper) + desserts (Pecan pies, Oreo pies, lemon pies, or cheese cakes).&lt;br /&gt;
&lt;br /&gt;
=== Afternoon ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! B559 !! B555 !! B551 !! B549 !! B567 !! B312&lt;br /&gt;
|-&lt;br /&gt;
| 14h00 - 15h00  || TBD&amp;lt;!-- ARM --&amp;gt; ||  ||  ||  ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 15h00 - 16h00  || Hack || TBD&amp;lt;!-- Broadcasting --&amp;gt; || TBD&amp;lt;!-- MSVC --&amp;gt;  || ||  HACKING ROOM  || N/A &lt;br /&gt;
|-&lt;br /&gt;
| 16h00 - 17h00  || Hack  || TBD&amp;lt;!-- Captions --&amp;gt; || Hack || Hack ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 17h00 - 18h00  || Hack  || TBD&amp;lt;!-- FOMS info --&amp;gt; || Hack || Hack ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Places =&lt;br /&gt;
&lt;br /&gt;
== Asterix Park ==&lt;br /&gt;
60128 Plailly, France&amp;lt;br /&amp;gt;&lt;br /&gt;
Metro / RER: &#039;&#039;&#039;B3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
http://www.parcasterix.fr/&lt;br /&gt;
&lt;br /&gt;
== Free HQ ==&lt;br /&gt;
16 Rue de la Ville-l&#039;Évêque&amp;lt;br /&amp;gt;&lt;br /&gt;
75008 Paris, France&lt;br /&gt;
&lt;br /&gt;
Metro 8: Madeleine&amp;lt;br /&amp;gt;&lt;br /&gt;
Metro 12: Madeleine&amp;lt;br /&amp;gt;&lt;br /&gt;
Metro 14: Madeleine&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From CDG airport, take:&amp;lt;br /&amp;gt;&lt;br /&gt;
the RER B (Paris by train) to Châtelet-les-Halles&amp;lt;br /&amp;gt;&lt;br /&gt;
then Metro line 14 to Madeleine.&lt;br /&gt;
&lt;br /&gt;
http://www.free.fr/&lt;br /&gt;
&lt;br /&gt;
== Hotel Ibis ==&lt;br /&gt;
[http://www.ibishotel.com/gb/hotel-5543-ibis-paris-avenue-d-italie-13eme/index.shtml Hotel IBIS Paris Avenue d&#039;Italie]&amp;lt;br /&amp;gt;&lt;br /&gt;
15 bis Avenue d&#039;Italie&amp;lt;br /&amp;gt;&lt;br /&gt;
75013 Paris&lt;br /&gt;
&lt;br /&gt;
[[Category:About VideoLAN]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Win32compile&amp;diff=24566</id>
		<title>Win32compile</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Win32compile&amp;diff=24566"/>
		<updated>2013-08-26T10:35:33Z</updated>

		<summary type="html">&lt;p&gt;Etix: Redirected page to Win32Compile&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Win32Compile]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Mirrors&amp;diff=23928</id>
		<title>Mirrors</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Mirrors&amp;diff=23928"/>
		<updated>2013-08-01T09:01:33Z</updated>

		<summary type="html">&lt;p&gt;Etix: CDN&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mirrors =&lt;br /&gt;
&lt;br /&gt;
Our mirrors are kindly operated by sponsors, you can find the complete list [http://www.videolan.org/videolan/mirrors.html here]. If you would like to provide a mirror to the VideoLAN project please read the following sections.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* A public mirror available in HTTP&lt;br /&gt;
* About 30 GB of disk space at this time&lt;br /&gt;
* At least 1 Gbps connectivity&lt;br /&gt;
* At least 4 rsync per day (more is better!)&lt;br /&gt;
* Either rsync or FTP access to scan the actual state of the mirror&lt;br /&gt;
&lt;br /&gt;
== Setting up a mirror ==&lt;br /&gt;
&lt;br /&gt;
The first step is to clone the rsync repository using the following command:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;rsync --verbose --recursive --times --links --hard-links --perms --stats --delete-after --timeout=300 rsync://rsync.videolan.org/videolan-ftp &#039;&#039;/path/to/repository/destination&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Edit your crontab (crontab -e) to sync the cron every hour:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;31 * * * * sleep $(($RANDOM/1024)); rsync --verbose --recursive --times --links --hard-links --perms --stats --delete-after --timeout=300 rsync://rsync.videolan.org/videolan-ftp &#039;&#039;/path/to/repository/destination&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Setup a web server to serve the repository preferably with [http://wiki.nginx.org/ nginx] or [http://httpd.apache.org/ Apache].&lt;br /&gt;
&lt;br /&gt;
Finally setup a read-only rsync daemon using a similar configuration:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[videolan]&lt;br /&gt;
    path = /path/to/repository/destination&lt;br /&gt;
    comment = VideoLAN repository&lt;br /&gt;
    uid = nobody&lt;br /&gt;
    gid = nogroup&lt;br /&gt;
    read only = yes&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: if you&#039;re using a CDN in front of the repository be sure to clear the cache at least once a day!&lt;br /&gt;
&lt;br /&gt;
== Contact us ==&lt;br /&gt;
&lt;br /&gt;
Once your mirror is setup, please [http://mailto:mirrors@videolan.org contact us] and be sure to send:&lt;br /&gt;
* A name and contact email address&lt;br /&gt;
* HTTP, FTP (if applicable) and rsync URLs to the file tree on your server&lt;br /&gt;
* The name, URL and logo of the operator / organization / sponsor you represent (preferably in 137x54)&lt;br /&gt;
&lt;br /&gt;
After reviewing your application your mirror will be added to our load-balancer.&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Mirrors&amp;diff=23891</id>
		<title>Mirrors</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Mirrors&amp;diff=23891"/>
		<updated>2013-04-04T17:13:27Z</updated>

		<summary type="html">&lt;p&gt;Etix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mirrors =&lt;br /&gt;
&lt;br /&gt;
Our mirrors are kindly operated by sponsors, you can find the complete list [http://www.videolan.org/videolan/mirrors.html here]. If you would like to provide a mirror to the VideoLAN project please read the following sections.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* A public mirror available in HTTP&lt;br /&gt;
* About 30 GB of disk space at this time&lt;br /&gt;
* At least 1 Gbps connectivity&lt;br /&gt;
* At least 4 rsync per day (more is better!)&lt;br /&gt;
* Either rsync or FTP access to scan the actual state of the mirror&lt;br /&gt;
&lt;br /&gt;
== Setting up a mirror ==&lt;br /&gt;
&lt;br /&gt;
The first step is to clone the rsync repository using the following command:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;rsync --verbose --recursive --times --links --hard-links --perms --stats --delete-after --timeout=300 rsync://rsync.videolan.org/videolan-ftp &#039;&#039;/path/to/repository/destination&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Edit your crontab (crontab -e) to sync the cron every hour:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;31 * * * * sleep $(($RANDOM/1024)); rsync --verbose --recursive --times --links --hard-links --perms --stats --delete-after --timeout=300 rsync://rsync.videolan.org/videolan-ftp &#039;&#039;/path/to/repository/destination&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Setup a web server to serve the repository preferably with [http://wiki.nginx.org/ nginx] or [http://httpd.apache.org/ Apache].&lt;br /&gt;
&lt;br /&gt;
Finally setup a read-only rsync daemon using a similar configuration:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[videolan]&lt;br /&gt;
    path = /path/to/repository/destination&lt;br /&gt;
    comment = VideoLAN repository&lt;br /&gt;
    uid = nobody&lt;br /&gt;
    gid = nogroup&lt;br /&gt;
    read only = yes&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Contact us ==&lt;br /&gt;
&lt;br /&gt;
Once your mirror is setup, please [http://mailto:mirrors@videolan.org contact us] and be sure to send:&lt;br /&gt;
* A name and contact email address&lt;br /&gt;
* HTTP, FTP (if applicable) and rsync URLs to the file tree on your server&lt;br /&gt;
* The name, URL and logo of the operator / organization / sponsor you represent (preferably in 137x54)&lt;br /&gt;
&lt;br /&gt;
After reviewing your application your mirror will be added to our load-balancer.&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Mirrors&amp;diff=23890</id>
		<title>Mirrors</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Mirrors&amp;diff=23890"/>
		<updated>2013-04-04T13:29:54Z</updated>

		<summary type="html">&lt;p&gt;Etix: Created page with &amp;quot;= Mirrors =  Our mirrors are kindly operated by sponsors, you can find the complete list [http://www.videolan.org/videolan/mirrors.html here]. If you would like to provide a m...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mirrors =&lt;br /&gt;
&lt;br /&gt;
Our mirrors are kindly operated by sponsors, you can find the complete list [http://www.videolan.org/videolan/mirrors.html here]. If you would like to provide a mirror to the VideoLAN project please read the following sections.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* A public mirror available in HTTP&lt;br /&gt;
* About 30 GB of disk space at this time&lt;br /&gt;
* At least 1 Gbps connectivity&lt;br /&gt;
* At least 4 rsync per day (more is better!)&lt;br /&gt;
* Either rsync or FTP access to scan the actual state of the mirror&lt;br /&gt;
&lt;br /&gt;
== Setting up a mirror ==&lt;br /&gt;
&lt;br /&gt;
The first step is to clone the rsync repository using the following command:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;rsync --verbose --recursive --times --links --hard-links --perms --stats --delete-after --timeout=300 rsync://rsync.videolan.org/videolan-ftp &#039;&#039;/path/to/repository/destination&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Edit your crontab (crontab -e) to sync the cron every hour:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;31 * * * * sleep $(($RANDOM/1024)); rsync --verbose --recursive --times --links --hard-links --perms --stats --delete-after --timeout=300 rsync://rsync.videolan.org/videolan-ftp &#039;&#039;/path/to/repository/destination&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Setup a web server to serve the repository preferably with [http://wiki.nginx.org/ nginx] or [http://httpd.apache.org/ Apache].&lt;br /&gt;
&lt;br /&gt;
Finally setup rsync to serve the repository as well using the following configuration:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[videolan]&lt;br /&gt;
    path = /path/to/repository/destination&lt;br /&gt;
    comment = VideoLAN repository&lt;br /&gt;
    uid = nobody&lt;br /&gt;
    gid = nogroup&lt;br /&gt;
    read only = yes&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Contact us ==&lt;br /&gt;
&lt;br /&gt;
Once your mirror is setup, please [http://mailto:mirrors@videolan.org contact us] and be sure to send us:&lt;br /&gt;
* A name and contact email address&lt;br /&gt;
* HTTP, FTP (if applicable) and rsync URLs to the file tree on your server&lt;br /&gt;
* The name, URL and logo of the operator / organization / sponsor you represent (preferably in 137x54)&lt;br /&gt;
&lt;br /&gt;
After reviewing your application we will add your mirror to our load-balancer.&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=MediaWiki:Common.css&amp;diff=23889</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=MediaWiki:Common.css&amp;diff=23889"/>
		<updated>2013-04-04T13:18:43Z</updated>

		<summary type="html">&lt;p&gt;Etix: Disable the cone next to links.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Styling links to www.VideoLan.org */ &lt;br /&gt;
/*#bodyContent a.external, #bodyContent a[href^=&amp;quot;http://www.videolan.org/&amp;quot;] {&lt;br /&gt;
    -moz-background-clip:border;&lt;br /&gt;
    -moz-background-inline-policy:continuous;&lt;br /&gt;
    -moz-background-origin:padding;&lt;br /&gt;
    background:transparent url(//www.videolan.org/favicon.ico) no-repeat scroll right center;&lt;br /&gt;
    padding-right:13px;&lt;br /&gt;
}*/&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2013&amp;diff=23782</id>
		<title>SoC 2013</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2013&amp;diff=23782"/>
		<updated>2013-02-14T15:28:38Z</updated>

		<summary type="html">&lt;p&gt;Etix: MSI project&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;SoC 2013 ideas. This is an ideas page only.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
This wiki page covers the work of the [[VideoLAN]] project as a mentoring organization for [http://code.google.com/soc/ Google Summer of Code], in order to improve {{VLC}}. &lt;br /&gt;
&lt;br /&gt;
== Introduction &amp;amp;amp; Information  ==&lt;br /&gt;
&lt;br /&gt;
This wiki page covers the attempt by the [[VideoLAN]] project to act as a mentoring organization for [http://code.google.com/soc/ Google Summer of Code], in order to improve {{VLC}}. &lt;br /&gt;
&lt;br /&gt;
[[VideoLAN]] was a mentoring organization in [[SoC 2007|2007]], [[SoC 2008|2008]], [[SoC 2009|2009]], [[SoC 2010|2010]] and [[SoC 2011|2011]]. &lt;br /&gt;
&lt;br /&gt;
*This page list the ideas for VLC&lt;br /&gt;
&lt;br /&gt;
=== VLC media player  ===&lt;br /&gt;
&lt;br /&gt;
{{VLC}} is a cross-platform multimedia player, encoder and streamer application. It is one of the most successful open-source projects without any professional structure underneath. &lt;br /&gt;
&lt;br /&gt;
{{VLC}} is downloaded at an approximate monthly rate of 5 millions from the main website and that&#039;s not including third-party distributions (Linux)! &lt;br /&gt;
&lt;br /&gt;
You can find more information on [http://en.wikipedia.org/wiki/VLC_media_player VLC on Wikipedia] or on this [[Main Page|wiki]]. &lt;br /&gt;
&lt;br /&gt;
=== Summer of Code  ===&lt;br /&gt;
&lt;br /&gt;
If selected and developed, SoC projects for VLC will be included in later releases.&lt;br /&gt;
&lt;br /&gt;
All projects are covered by the GPL (v2+) or LGPL (v2.1+) licenses depending on the module and student wishes.  &lt;br /&gt;
&lt;br /&gt;
== Ideas ==&lt;br /&gt;
=== VLC ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Read this&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
This page is split in three lists of ideas: &lt;br /&gt;
&lt;br /&gt;
#The &#039;&#039;main ideas&#039;&#039; are what seem to be &#039;&#039;key projects&#039;&#039; for VLC and should be more &#039;&#039;thrilling&#039;&#039; than the other ones; we have assigned a potential mentor to each of these. &lt;br /&gt;
#The other ideas are less detailed but could be good ideas too. &lt;br /&gt;
#[[Mini Projects]] are short-span projects which can be given as Qualification tasks or extended to be Full Summer of Code project.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Original good ideas will be valued&#039;&#039;&#039;. Last year, half of the ideas were given by students. We don&#039;t want to impose anything. This is free and Open Source software.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to apply for SoC but want other ideas to develop on, check the [[Mini Projects]] page! &lt;br /&gt;
&lt;br /&gt;
And on the IRC channel, you can have even more ideas.&lt;br /&gt;
&lt;br /&gt;
== Key ideas for VLC  ==&lt;br /&gt;
&lt;br /&gt;
=== New Audio Filters  ===&lt;br /&gt;
&lt;br /&gt;
We are looking for a skilled &#039;&#039;&#039;audiophile&#039;&#039;&#039; that knows a lot about audio theory and practice: &lt;br /&gt;
&lt;br /&gt;
*to create or implement new algorithms, like SRS WoW or other 3D effects &lt;br /&gt;
*to work on channels mixing, &lt;br /&gt;
*to work on tracks mixing, &lt;br /&gt;
*to create scriptable new audio filters in lua and enable users to create whatever audio filtering function they want in a Lua script. &lt;br /&gt;
*LADSPA or other libraries integration will be interesting.&lt;br /&gt;
&lt;br /&gt;
This project needs some good audio knowledge and good C experience. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Qualification task&#039;&#039;: port any audio filter from MPlayer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: [[User:Geal|geal]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Porting Audio Filters  ===&lt;br /&gt;
&lt;br /&gt;
We are looking for a skilled &#039;&#039;&#039;audiophile&#039;&#039;&#039; that knows a lot about audio theory and practice: &lt;br /&gt;
* to port open source algorithm for audio filters to VLC.&lt;br /&gt;
&lt;br /&gt;
This project needs some good audio knowledge and good C experience. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: [[User:Geal|geal]]&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== UPNP DLNA Server and Client  ===&lt;br /&gt;
&lt;br /&gt;
Test and fix service discovery module for UPNP/DLNA shares done by software (mediatomb, xbmc, etc) and hardware implementations.&lt;br /&gt;
&lt;br /&gt;
Provide DLNA plugin for DLNA server compliant with opensource (xbmc, djmount, etc) and proprietary (PS3, xbox360, etc) DLNA clients. Some of the work is already done by previous SoC students.&lt;br /&gt;
&lt;br /&gt;
The plugin must be smart enough to provide &amp;quot;presets&amp;quot; for known DLNA media clients with limited features (PS3 or XBOX360 for starters) which require additional quirks or hacks or items to be transcoded or streamed.&lt;br /&gt;
&lt;br /&gt;
Requires some VLC knowledge as the project will involve using Media Library (arriving in vlc 1.2) and transcoding with VLC API.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: thresh&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Assembly optimizations in VLC  ===&lt;br /&gt;
&lt;br /&gt;
If you are fond of writing ASM and you are fluent in MMX/SSE2/SSE4, there are many interesting things in VLC to speed up. &lt;br /&gt;
&lt;br /&gt;
* Profiling VLC. &lt;br /&gt;
* memcpy implementations in SSE* and MMX (see modules/misc/memcpy/fastmemcpy.h) &lt;br /&gt;
* video filters ASM speedups (see modules/video_filter/blend.c) &lt;br /&gt;
* audio filters ASM speedups (see modules/audio_filter/equalizer.c) &lt;br /&gt;
* Porting other ASM video filters to VLC.&lt;br /&gt;
&lt;br /&gt;
This project needs some good ASM knowledge and good C experience. &lt;br /&gt;
&lt;br /&gt;
*Stuff to read: http://www.agner.org/optimize/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: [[User:J-b|jb]]&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== VLC Android Port ===&lt;br /&gt;
&lt;br /&gt;
Improve the current VLC for [http://git.videolan.org/?p=vlc/vlc-ports/android.git;a=summary Android].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentors: [[User:etix|etix]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== VLC Test Suite  ===&lt;br /&gt;
&lt;br /&gt;
This project aims at making automatic tests to improve VLC quality. &lt;br /&gt;
&lt;br /&gt;
*Write a series of tests for vlc-internal &lt;br /&gt;
*Integrate a framework for automated plugins testing with the automake build system &lt;br /&gt;
*Automate the different codec playback/mux/etc tests &lt;br /&gt;
*Automate the subtitles tests &lt;br /&gt;
*Write tests for the different bindings: Mac OS X Framework/Python Bindings... etc.&lt;br /&gt;
&lt;br /&gt;
This project is a code project, require good knowledge of C &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: Rémi&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== VLC Personal Cloud Project 2.0  ===&lt;br /&gt;
&lt;br /&gt;
The personal cloud project is a simple project to allow people to play their media files anywhere in the world. &lt;br /&gt;
&lt;br /&gt;
Through the http interface of VLC, a user can: &lt;br /&gt;
&lt;br /&gt;
*list the medias from the Media Library, &lt;br /&gt;
*play those medias, &lt;br /&gt;
*those medias get transcoded and streamed in: &lt;br /&gt;
**Flash &lt;br /&gt;
**Silverlight &lt;br /&gt;
**iPhone format &lt;br /&gt;
**Android format &lt;br /&gt;
**html5 &lt;br /&gt;
**A VLC webplugin&lt;br /&gt;
&lt;br /&gt;
A good example of the aim is http://www.vodobox.c.la/ &lt;br /&gt;
&lt;br /&gt;
This project has to work on the configuration and NAT traversal. &lt;br /&gt;
&lt;br /&gt;
This projects needs knowledge in HTML and JS; it might require C coding. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: jb&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Playlist improvements ===&lt;br /&gt;
&lt;br /&gt;
We need to reinforce the media library capabilities and its integration with external metadata sources, notably for TV shows.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: jetru&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== AirPlay streaming ===&lt;br /&gt;
&lt;br /&gt;
We need to be able to stream everything to your Apple TV.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Proposed mentor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== MSI Windows Installer ===&lt;br /&gt;
&lt;br /&gt;
The goal of this project is to improve and stabilize the upcoming default installer for the Windows platform. You&#039;ll have to work with the [http://wixtoolset.org Wix] toolkit and the autotools building system.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: [[User:etix|etix]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Other Ideas for VLC  ==&lt;br /&gt;
&lt;br /&gt;
=== Improve messages display ===&lt;br /&gt;
When VLC has a problem opening or playing files it shows a messages window on top of the player with the error. This can be annoying if the screen is being controlled remotely as the user has to manually dismiss the message. There are various ways this could be improved:&lt;br /&gt;
#Update UI so that messages window will auto-dismiss after x seconds unless it is clicked on (this could be optional behaviour). Clicking on the window would cancel the countdown. If the window was selected from the menu, it would not auto-dismiss.&lt;br /&gt;
#Mac OS: Display messages using notification system (if available). Clicking on the notification would open the messages window.&lt;br /&gt;
&#039;&#039;Suggested by : Confused Vorlon.  Proposed mentor: ?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== WTV support ===&lt;br /&gt;
Wtv format support&lt;br /&gt;
&#039;&#039;Proposed mentor: Laurent&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== DVD audio support ===&lt;br /&gt;
Very difficult project for Audio fans&lt;br /&gt;
&#039;&#039;Proposed mentor: jb&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Device synchronisation===&lt;br /&gt;
Sync your mp3 player with the media library&lt;br /&gt;
&#039;&#039;Proposed mentor: jetru&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== HD DVD support ===&lt;br /&gt;
Very difficult project for someone having the right hardware&lt;br /&gt;
&#039;&#039;Proposed mentor: jb&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Multi-Angle DVD support ===&lt;br /&gt;
We need multi-angle DVD support&lt;br /&gt;
&#039;&#039;Proposed mentor: Meuuh&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== VLM UI for the Mac OS X interface ===&lt;br /&gt;
Implement an easy-to-use, yet customizable and complete UI for the VideoLAN Media Manager, which allows VLC to stream multiple unicast, multicast and Video-on-Demand streams within a single instance.&lt;br /&gt;
You will need a Mac running OS X 10.6 or later and Cocoa programming experience. A basic understanding of media streams is definitely preferable.&lt;br /&gt;
Note that this task is too small for an entire summer and should be combined with another topic.&lt;br /&gt;
&#039;&#039;Proposed mentor: feepk&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Ideas for VLMC  ==&lt;br /&gt;
&lt;br /&gt;
=== VLMC port fixes ===&lt;br /&gt;
Fix VLMC building and basic features for Mac OSX, Windows and GNU/Linux. The present code is not in sync with current libvlc, for example it has build failures in some cases and vout is broken on OSX. It&#039;s been more than two years since last VLMC release. The task is to fix major blockers and help release version:&lt;br /&gt;
&lt;br /&gt;
- Understand the code, learn about the community and get started (proposed time: 2-3 weeks)&lt;br /&gt;
- Fix build system and port specific issues on OSX and GNU/Linux (and Windows as well) (proposed time: 2-3 weeks)&lt;br /&gt;
- Fix vout and aout issues for both project and preview rendering (proposed time: 2 weeks)&lt;br /&gt;
- Fix blockers for video editing workflow: importing, editing, applying effects (basic ones), project management, saving/reading projects, exporting video as file and to YouTube (proposed time: rest of the time)&lt;br /&gt;
&#039;&#039;Proposed mentor: bhaisaab&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{GSoC}}&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2013&amp;diff=23781</id>
		<title>SoC 2013</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2013&amp;diff=23781"/>
		<updated>2013-02-14T15:23:06Z</updated>

		<summary type="html">&lt;p&gt;Etix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;SoC 2013 ideas. This is an ideas page only.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
This wiki page covers the work of the [[VideoLAN]] project as a mentoring organization for [http://code.google.com/soc/ Google Summer of Code], in order to improve {{VLC}}. &lt;br /&gt;
&lt;br /&gt;
== Introduction &amp;amp;amp; Information  ==&lt;br /&gt;
&lt;br /&gt;
This wiki page covers the attempt by the [[VideoLAN]] project to act as a mentoring organization for [http://code.google.com/soc/ Google Summer of Code], in order to improve {{VLC}}. &lt;br /&gt;
&lt;br /&gt;
[[VideoLAN]] was a mentoring organization in [[SoC 2007|2007]], [[SoC 2008|2008]], [[SoC 2009|2009]], [[SoC 2010|2010]] and [[SoC 2011|2011]]. &lt;br /&gt;
&lt;br /&gt;
*This page list the ideas for VLC&lt;br /&gt;
&lt;br /&gt;
=== VLC media player  ===&lt;br /&gt;
&lt;br /&gt;
{{VLC}} is a cross-platform multimedia player, encoder and streamer application. It is one of the most successful open-source projects without any professional structure underneath. &lt;br /&gt;
&lt;br /&gt;
{{VLC}} is downloaded at an approximate monthly rate of 5 millions from the main website and that&#039;s not including third-party distributions (Linux)! &lt;br /&gt;
&lt;br /&gt;
You can find more information on [http://en.wikipedia.org/wiki/VLC_media_player VLC on Wikipedia] or on this [[Main Page|wiki]]. &lt;br /&gt;
&lt;br /&gt;
=== Summer of Code  ===&lt;br /&gt;
&lt;br /&gt;
If selected and developed, SoC projects for VLC will be included in later releases.&lt;br /&gt;
&lt;br /&gt;
All projects are covered by the GPL (v2+) or LGPL (v2.1+) licenses depending on the module and student wishes.  &lt;br /&gt;
&lt;br /&gt;
== Ideas ==&lt;br /&gt;
=== VLC ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Read this&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
This page is split in three lists of ideas: &lt;br /&gt;
&lt;br /&gt;
#The &#039;&#039;main ideas&#039;&#039; are what seem to be &#039;&#039;key projects&#039;&#039; for VLC and should be more &#039;&#039;thrilling&#039;&#039; than the other ones; we have assigned a potential mentor to each of these. &lt;br /&gt;
#The other ideas are less detailed but could be good ideas too. &lt;br /&gt;
#[[Mini Projects]] are short-span projects which can be given as Qualification tasks or extended to be Full Summer of Code project.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Original good ideas will be valued&#039;&#039;&#039;. Last year, half of the ideas were given by students. We don&#039;t want to impose anything. This is free and Open Source software.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to apply for SoC but want other ideas to develop on, check the [[Mini Projects]] page! &lt;br /&gt;
&lt;br /&gt;
And on the IRC channel, you can have even more ideas.&lt;br /&gt;
&lt;br /&gt;
== Key ideas for VLC  ==&lt;br /&gt;
&lt;br /&gt;
=== New Audio Filters  ===&lt;br /&gt;
&lt;br /&gt;
We are looking for a skilled &#039;&#039;&#039;audiophile&#039;&#039;&#039; that knows a lot about audio theory and practice: &lt;br /&gt;
&lt;br /&gt;
*to create or implement new algorithms, like SRS WoW or other 3D effects &lt;br /&gt;
*to work on channels mixing, &lt;br /&gt;
*to work on tracks mixing, &lt;br /&gt;
*to create scriptable new audio filters in lua and enable users to create whatever audio filtering function they want in a Lua script. &lt;br /&gt;
*LADSPA or other libraries integration will be interesting.&lt;br /&gt;
&lt;br /&gt;
This project needs some good audio knowledge and good C experience. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Qualification task&#039;&#039;: port any audio filter from MPlayer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: [[User:Geal|geal]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Porting Audio Filters  ===&lt;br /&gt;
&lt;br /&gt;
We are looking for a skilled &#039;&#039;&#039;audiophile&#039;&#039;&#039; that knows a lot about audio theory and practice: &lt;br /&gt;
* to port open source algorithm for audio filters to VLC.&lt;br /&gt;
&lt;br /&gt;
This project needs some good audio knowledge and good C experience. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: [[User:Geal|geal]]&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== UPNP DLNA Server and Client  ===&lt;br /&gt;
&lt;br /&gt;
Test and fix service discovery module for UPNP/DLNA shares done by software (mediatomb, xbmc, etc) and hardware implementations.&lt;br /&gt;
&lt;br /&gt;
Provide DLNA plugin for DLNA server compliant with opensource (xbmc, djmount, etc) and proprietary (PS3, xbox360, etc) DLNA clients. Some of the work is already done by previous SoC students.&lt;br /&gt;
&lt;br /&gt;
The plugin must be smart enough to provide &amp;quot;presets&amp;quot; for known DLNA media clients with limited features (PS3 or XBOX360 for starters) which require additional quirks or hacks or items to be transcoded or streamed.&lt;br /&gt;
&lt;br /&gt;
Requires some VLC knowledge as the project will involve using Media Library (arriving in vlc 1.2) and transcoding with VLC API.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: thresh&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Assembly optimizations in VLC  ===&lt;br /&gt;
&lt;br /&gt;
If you are fond of writing ASM and you are fluent in MMX/SSE2/SSE4, there are many interesting things in VLC to speed up. &lt;br /&gt;
&lt;br /&gt;
* Profiling VLC. &lt;br /&gt;
* memcpy implementations in SSE* and MMX (see modules/misc/memcpy/fastmemcpy.h) &lt;br /&gt;
* video filters ASM speedups (see modules/video_filter/blend.c) &lt;br /&gt;
* audio filters ASM speedups (see modules/audio_filter/equalizer.c) &lt;br /&gt;
* Porting other ASM video filters to VLC.&lt;br /&gt;
&lt;br /&gt;
This project needs some good ASM knowledge and good C experience. &lt;br /&gt;
&lt;br /&gt;
*Stuff to read: http://www.agner.org/optimize/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: [[User:J-b|jb]]&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== VLC Android Port ===&lt;br /&gt;
&lt;br /&gt;
Improve the current VLC for [http://git.videolan.org/?p=vlc/vlc-ports/android.git;a=summary Android].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentors: [[User:etix|etix]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== VLC Test Suite  ===&lt;br /&gt;
&lt;br /&gt;
This project aims at making automatic tests to improve VLC quality. &lt;br /&gt;
&lt;br /&gt;
*Write a series of tests for vlc-internal &lt;br /&gt;
*Integrate a framework for automated plugins testing with the automake build system &lt;br /&gt;
*Automate the different codec playback/mux/etc tests &lt;br /&gt;
*Automate the subtitles tests &lt;br /&gt;
*Write tests for the different bindings: Mac OS X Framework/Python Bindings... etc.&lt;br /&gt;
&lt;br /&gt;
This project is a code project, require good knowledge of C &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: Rémi&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== VLC Personal Cloud Project 2.0  ===&lt;br /&gt;
&lt;br /&gt;
The personal cloud project is a simple project to allow people to play their media files anywhere in the world. &lt;br /&gt;
&lt;br /&gt;
Through the http interface of VLC, a user can: &lt;br /&gt;
&lt;br /&gt;
*list the medias from the Media Library, &lt;br /&gt;
*play those medias, &lt;br /&gt;
*those medias get transcoded and streamed in: &lt;br /&gt;
**Flash &lt;br /&gt;
**Silverlight &lt;br /&gt;
**iPhone format &lt;br /&gt;
**Android format &lt;br /&gt;
**html5 &lt;br /&gt;
**A VLC webplugin&lt;br /&gt;
&lt;br /&gt;
A good example of the aim is http://www.vodobox.c.la/ &lt;br /&gt;
&lt;br /&gt;
This project has to work on the configuration and NAT traversal. &lt;br /&gt;
&lt;br /&gt;
This projects needs knowledge in HTML and JS; it might require C coding. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: jb&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Playlist improvements ===&lt;br /&gt;
&lt;br /&gt;
We need to reinforce the media library capabilities and its integration with external metadata sources, notably for TV shows.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: jetru&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== AirPlay streaming ===&lt;br /&gt;
&lt;br /&gt;
We need to be able to stream everything to your Apple TV.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Proposed mentor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Other Ideas for VLC  ==&lt;br /&gt;
&lt;br /&gt;
=== Improve messages display ===&lt;br /&gt;
When VLC has a problem opening or playing files it shows a messages window on top of the player with the error. This can be annoying if the screen is being controlled remotely as the user has to manually dismiss the message. There are various ways this could be improved:&lt;br /&gt;
#Update UI so that messages window will auto-dismiss after x seconds unless it is clicked on (this could be optional behaviour). Clicking on the window would cancel the countdown. If the window was selected from the menu, it would not auto-dismiss.&lt;br /&gt;
#Mac OS: Display messages using notification system (if available). Clicking on the notification would open the messages window.&lt;br /&gt;
&#039;&#039;Suggested by : Confused Vorlon.  Proposed mentor: ?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== WTV support ===&lt;br /&gt;
Wtv format support&lt;br /&gt;
&#039;&#039;Proposed mentor: Laurent&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== DVD audio support ===&lt;br /&gt;
Very difficult project for Audio fans&lt;br /&gt;
&#039;&#039;Proposed mentor: jb&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Device synchronisation===&lt;br /&gt;
Sync your mp3 player with the media library&lt;br /&gt;
&#039;&#039;Proposed mentor: jetru&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== HD DVD support ===&lt;br /&gt;
Very difficult project for someone having the right hardware&lt;br /&gt;
&#039;&#039;Proposed mentor: jb&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Multi-Angle DVD support ===&lt;br /&gt;
We need multi-angle DVD support&lt;br /&gt;
&#039;&#039;Proposed mentor: Meuuh&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== VLM UI for the Mac OS X interface ===&lt;br /&gt;
Implement an easy-to-use, yet customizable and complete UI for the VideoLAN Media Manager, which allows VLC to stream multiple unicast, multicast and Video-on-Demand streams within a single instance.&lt;br /&gt;
You will need a Mac running OS X 10.6 or later and Cocoa programming experience. A basic understanding of media streams is definitely preferable.&lt;br /&gt;
Note that this task is too small for an entire summer and should be combined with another topic.&lt;br /&gt;
&#039;&#039;Proposed mentor: feepk&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Ideas for VLMC  ==&lt;br /&gt;
&lt;br /&gt;
=== VLMC port fixes ===&lt;br /&gt;
Fix VLMC building and basic features for Mac OSX, Windows and GNU/Linux. The present code is not in sync with current libvlc, for example it has build failures in some cases and vout is broken on OSX. It&#039;s been more than two years since last VLMC release. The task is to fix major blockers and help release version:&lt;br /&gt;
&lt;br /&gt;
- Understand the code, learn about the community and get started (proposed time: 2-3 weeks)&lt;br /&gt;
- Fix build system and port specific issues on OSX and GNU/Linux (and Windows as well) (proposed time: 2-3 weeks)&lt;br /&gt;
- Fix vout and aout issues for both project and preview rendering (proposed time: 2 weeks)&lt;br /&gt;
- Fix blockers for video editing workflow: importing, editing, applying effects (basic ones), project management, saving/reading projects, exporting video as file and to YouTube (proposed time: rest of the time)&lt;br /&gt;
&#039;&#039;Proposed mentor: bhaisaab&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{GSoC}}&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:WebPlugin&amp;diff=23671</id>
		<title>Documentation:WebPlugin</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:WebPlugin&amp;diff=23671"/>
		<updated>2013-01-02T16:56:14Z</updated>

		<summary type="html">&lt;p&gt;Etix: Update the toolbar option&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This Documentation speaks about the {{VLC}} Web plugins and how to write pages for it. &lt;br /&gt;
{{RightMenu|documentation play howto toc}} &lt;br /&gt;
&lt;br /&gt;
= Introduction: Building Web pages with Video =&lt;br /&gt;
&lt;br /&gt;
The {{VLC}} webplugins are native browser plugins, similar to Flash or Silverlight plugins and allow playback inside the browser of all the videos that {{VLC}} can read.&lt;br /&gt;
&lt;br /&gt;
Additionally to viewing video on all pages, you can build custom pages that will use the advanced features of the plugin, using Javascript functions to control playback or extract information from the plugin. &lt;br /&gt;
&lt;br /&gt;
There are 2 main plugins: one is ActiveX for IE, the other is NPAPI for the other browsers. They feature the same amount of features.&lt;br /&gt;
&lt;br /&gt;
In older versions, those plugins were very crashy. &#039;&#039;&#039;We URGE YOU&#039;&#039;&#039; to use VLC &#039;&#039;&#039;2.0.0&#039;&#039;&#039; or newer versions.&lt;br /&gt;
&lt;br /&gt;
=== Browsers support ===&lt;br /&gt;
It has been tested with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Mozilla Firefox || [[Image:Firefox-logo.png|40x40px]]&lt;br /&gt;
|-&lt;br /&gt;
| Internet Explorer || [[Image:20101105053305!Internet Explorer 9.png|40x40px]]&lt;br /&gt;
|-&lt;br /&gt;
| Safari || [[Image:Apple Safari.png|40x40px]]&lt;br /&gt;
|-&lt;br /&gt;
| Chrome || &lt;br /&gt;
|-&lt;br /&gt;
| Konqueror || &lt;br /&gt;
|-&lt;br /&gt;
| Opera ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It has been tested on GNU/Linux, Windows and MacOS.&lt;br /&gt;
&lt;br /&gt;
= Embed tag attributes =&lt;br /&gt;
&lt;br /&gt;
To embed the plugin into a webpage use the following &amp;amp;lt;embed&amp;amp;gt; template: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot; pluginspage=&amp;quot;http://www.videolan.org&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921&amp;quot; codebase=&amp;quot;http://download.videolan.org/pub/videolan/vlc/last/win32/axvlc.cab&amp;quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Required elements ===&lt;br /&gt;
These are &#039;&#039;&#039;required&#039;&#039;&#039; attributes for the &amp;amp;lt;embed&amp;amp;gt; tag: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039;: Specifies the width of the plugin. &lt;br /&gt;
*&#039;&#039;&#039;height&#039;&#039;&#039;: Specifies the height of the plugin. &lt;br /&gt;
*&#039;&#039;&#039;target&#039;&#039;&#039; (or one of these alias: &#039;&#039;&#039;mrl&#039;&#039;&#039;, &#039;&#039;&#039;filename&#039;&#039;&#039;, &#039;&#039;&#039;src&#039;&#039;&#039;): Specifies the source location (URL) of the video to load.&lt;br /&gt;
&lt;br /&gt;
=== Optionnal elements ===&lt;br /&gt;
These are additional attributes for the &amp;amp;lt;embed&amp;amp;gt; tag: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;autoplay&#039;&#039;&#039;, &#039;&#039;&#039;autostart&#039;&#039;&#039;: Specifies whether the plugin starts playing on load. Default: &#039;&#039;true&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;allowfullscreen&#039;&#039;&#039;: (since VLC version 1.2.0) Specifies whether the user can switch into fullscreen mode. Default: &#039;&#039;true&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;windowless&#039;&#039;&#039;: (since VLC version 2.0.6) Draw the video on a window-less (non-accelerated) surface and allow styling (CSS overlay, 3D transformations, and much more). Default: &#039;&#039;false&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;mute&#039;&#039;&#039;: Specifies whether the audio volume is initially muted. Default: &#039;&#039;false&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;loop&#039;&#039;&#039;, &#039;&#039;&#039;autoloop&#039;&#039;&#039;: Specifies whether the video loops on end. Default: &#039;&#039;false&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;controls&#039;&#039;&#039; (or &#039;&#039;&#039;toolbar&#039;&#039;&#039;): Specifies whether the controls are shown by default. Default: &#039;&#039;true&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039;: Specifies the background color of the video player. Default: &#039;&#039;#000000&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Normal DOM elements ===&lt;br /&gt;
*&#039;&#039;&#039;id&#039;&#039;&#039;: DOM id&lt;br /&gt;
*&#039;&#039;&#039;name&#039;&#039;&#039;: DOM name&lt;br /&gt;
&lt;br /&gt;
= Javascript API description  =&lt;br /&gt;
&lt;br /&gt;
The vlc plugin exports several objects that can be accessed for setting and getting information. When used improperly the API&#039;s will throw an exception that includes a string that explains what happened. For example when asking for vlc.input.length when there is no playlist item playing. &lt;br /&gt;
&lt;br /&gt;
== VLC objects ==&lt;br /&gt;
The vlc plugin knows the following objects: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;audio&#039;&#039;&#039;: Access audio properties. &lt;br /&gt;
*&#039;&#039;&#039;input&#039;&#039;&#039;: Access input properties. &lt;br /&gt;
*&#039;&#039;&#039;playlist&#039;&#039;&#039;: Access playlist properties. &lt;br /&gt;
*&#039;&#039;&#039;subtitle&#039;&#039;&#039;: Access subtitle properties. &lt;br /&gt;
*&#039;&#039;&#039;video&#039;&#039;&#039;: Access video properties. &lt;br /&gt;
**&#039;&#039;&#039;video.marquee&#039;&#039;&#039;: Access marquee video filter properties. &lt;br /&gt;
**&#039;&#039;&#039;video.logo&#039;&#039;&#039;: Access logo video filter properties. &lt;br /&gt;
*&#039;&#039;&#039;mediaDescription&#039;&#039;&#039;: Access media info properties (only available in vlc version &amp;gt;= 2.0.2).&lt;br /&gt;
&lt;br /&gt;
The following are deprecated:&lt;br /&gt;
*&#039;&#039;&#039;log&#039;&#039;&#039;: Access log properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
*&#039;&#039;&#039;messages&#039;&#039;&#039;: Access to log message properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
*&#039;&#039;&#039;iterator&#039;&#039;&#039;: Access to log iterator properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1).&lt;br /&gt;
*&#039;&#039;&#039;message&#039;&#039;&#039;: Access to log message properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
The following JavaScript code shows howto get a reference to the vlc plugin. This reference can then be used to access the objects of the vlc plugin. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;VLC Mozilla plugin test page&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot; pluginspage=&amp;quot;http://www.videolan.org&amp;quot;&lt;br /&gt;
       width=&amp;quot;640&amp;quot;&lt;br /&gt;
       height=&amp;quot;480&amp;quot;&lt;br /&gt;
       id=&amp;quot;vlc&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/embed&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;Javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
var vlc = document.getElementById(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
vlc.audio.toggleMute();&lt;br /&gt;
//!--&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Root object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;VersionInfo&#039;&#039;&#039;: returns version information string&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.versionInfo()&#039;&#039;&#039;: returns version information string (same as VersionInfo)&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.addEventListener(eventname, callback, bubble)&#039;&#039;&#039;: (only for Mozilla) add a listener for mentioned event name, callback expects a function and bubble influences the order of eventhandling by JS (usually it is set to false). &lt;br /&gt;
*&#039;&#039;&#039;vlc.removeEventListener(eventname, callback, bubble)&#039;&#039;&#039;: (only for Mozilla) remove listener for mentioned event name, callback expects a function and bubble influences the order of eventhandling by JS (usually it is set to false).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.attachEvent(eventname, callback)&#039;&#039;&#039;: (only for ActiveX) add listener for mentioned event name, callback expects a function &lt;br /&gt;
*&#039;&#039;&#039;vlc.removeEvent(eventname, callback)&#039;&#039;&#039;: (only for ActiveX) remove listener for mentioned event name, callback expects a function&lt;br /&gt;
&lt;br /&gt;
events &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerNothingSpecial&#039;&#039;&#039;: vlc is in idle state doing nothing but waiting for a command to be issued &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerOpening&#039;&#039;&#039;: vlc is opening an media resource locator (MRL) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerBuffering&#039;&#039;&#039;: vlc is buffering &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPlaying&#039;&#039;&#039;: vlc is playing a media &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPaused&#039;&#039;&#039;: vlc is in paused state &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerForward&#039;&#039;&#039;: vlc is fastforwarding through the media (works only when an input supports forward playback) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerBackward&#039;&#039;&#039;: vlc is going backwards through the media (works only when an input supports backwards playback) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerEncounteredError&#039;&#039;&#039;: vlc has encountered an error and is unable to continue &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerEndReached&#039;&#039;&#039;: vlc has reached the end of current playlist &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerTimeChanged&#039;&#039;&#039;: time has changed &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPositionChanged&#039;&#039;&#039;: media position has changed &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerSeekableChanged&#039;&#039;&#039;: media seekable flag has changed (true means media is seekable, false means it is not) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPausableChanged&#039;&#039;&#039;: media pausable flag has changed (true means media is pauseable, false means it is not)&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
The following code snippet provides easy functions to register and unregister event callbacks on all supported platforms (currently only Linux mozilla based browsers and windows activeX objects for Internet Explorer). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
function registerVLCEvent(event, handler) {&lt;br /&gt;
    var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
    if (vlc) {&lt;br /&gt;
        if (vlc.attachEvent) {&lt;br /&gt;
            // Microsoft&lt;br /&gt;
            vlc.attachEvent (event, handler);&lt;br /&gt;
    } else if (vlc.addEventListener) {&lt;br /&gt;
        // Mozilla: DOM level 2&lt;br /&gt;
        vlc.addEventListener (event, handler, false);&lt;br /&gt;
    } else {&lt;br /&gt;
        // DOM level 0&lt;br /&gt;
        vlc[&amp;quot;on&amp;quot; + event] = handler;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
// stop listening to event&lt;br /&gt;
function unregisterVLCEvent(event, handler) {&lt;br /&gt;
    var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
    if (vlc) {&lt;br /&gt;
        if (vlc.detachEvent) {&lt;br /&gt;
            // Microsoft&lt;br /&gt;
            vlc.detachEvent (event, handler);&lt;br /&gt;
    } else if (vlc.removeEventListener) {&lt;br /&gt;
        // Mozilla: DOM level 2&lt;br /&gt;
        vlc.removeEventListener (event, handler, false);&lt;br /&gt;
    } else {&lt;br /&gt;
        // DOM level 0&lt;br /&gt;
        vlc[&amp;quot;on&amp;quot; + event] = null;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
// event callback function for testing&lt;br /&gt;
function handleEvents(event) {&lt;br /&gt;
    if (!event)&lt;br /&gt;
        event = window.event; // IE&lt;br /&gt;
    if (event.target) {&lt;br /&gt;
        // Netscape based browser&lt;br /&gt;
        targ = event.target;&lt;br /&gt;
} else if (event.srcElement) {&lt;br /&gt;
    // ActiveX&lt;br /&gt;
    targ = event.srcElement;&lt;br /&gt;
} else {&lt;br /&gt;
    // No event object, just the value&lt;br /&gt;
    alert(&amp;quot;Event value&amp;quot; + event );&lt;br /&gt;
    return;&lt;br /&gt;
}&lt;br /&gt;
if (targ.nodeType == 3) // defeat Safari bug&lt;br /&gt;
    targ = targ.parentNode;&lt;br /&gt;
    alert(&amp;quot;Event &amp;quot; + event.type + &amp;quot; has fired from &amp;quot; + targ );&lt;br /&gt;
}&lt;br /&gt;
// handle mouse grab event from video filter&lt;br /&gt;
function handleMouseGrab(event,X,Y) {&lt;br /&gt;
    if (!event)&lt;br /&gt;
        event = window.event; // IE&lt;br /&gt;
        alert(&amp;quot;new position (&amp;quot; + X + &amp;quot;,&amp;quot; + Y + &amp;quot;)&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
// Register a bunch of callbacks.&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerNothingSpecial&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerOpening&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerBuffering&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerPlaying&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerPaused&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerForward&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerBackward&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerEncounteredError&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerEndReached&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerTimeChanged&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerPositionChanged&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerSeekableChanged&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerPausableChanged&#039;, handleEvents);&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Audio object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.count&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) returns the number of audio track available.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.mute&#039;&#039;&#039;: boolean value to mute and unmute the audio. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.volume&#039;&#039;&#039;: a value between [0-200] which indicates a percentage of the volume. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.track&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6) a value between [1-65535] which indicates the audio track to play or that is playing. a value of 0 means the audio is/will be disabled. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.channel&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6) integer value between [1-5] that indicates which audio channel mode is used, values can be: &amp;quot;1=stereo&amp;quot;, &amp;quot;2=reverse stereo&amp;quot;, &amp;quot;3=left&amp;quot;, &amp;quot;4=right&amp;quot;, &amp;quot;5=dolby&amp;quot;. Use vlc.audio.channel to check if setting of the audio channel mode has succeeded.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.toggleMute()&#039;&#039;&#039;: boolean toggle that mutes and unmutes the audio based upon the previous state. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.description(int i)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) give the i-th audio track name. 0 corresponds to disable and 1 to the first audio track.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot; line&amp;gt;&lt;br /&gt;
Audio Channel:&lt;br /&gt;
&amp;lt;select readonly onChange=&#039;doAudioChannel(this.value)&#039;&amp;gt;&lt;br /&gt;
&amp;lt;option value=1&amp;gt;Stereo&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=2&amp;gt;Reverse stereo&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=3&amp;gt;Left&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=4&amp;gt;Right&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=5&amp;gt;Dolby&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;/select&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
function doAudioChannel(value)&lt;br /&gt;
{&lt;br /&gt;
var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
vlc.audio.channel = parseInt(value);&lt;br /&gt;
alert(vlc.audio.channel);&lt;br /&gt;
};&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Input object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.length&#039;&#039;&#039;: length of the input file in number of milliseconds. 0 is returned for &#039;live&#039; streams or clips whose length cannot be determined by VLC. It returns -1 if no input is playing. &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.fps&#039;&#039;&#039;: frames per second returned as a float (typically 60.0, 50.0, 23.976, etc...) &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.hasVout&#039;&#039;&#039;: a boolean that returns true when the video is being displayed, it returns false when video is not displayed&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.position&#039;&#039;&#039;: normalized position in multimedia stream item given as a float value between [0.0 - 1.0] &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.time&#039;&#039;&#039;: the absolute position in time given in milliseconds, this property can be used to seek through the stream&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;!-- absolute seek in stream&amp;amp;nbsp;!--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = &amp;amp;lt;absolute seek&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!-- relative seek in stream&amp;amp;nbsp;!--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = vlc.input.time + &amp;amp;lt;relative seek&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.state&#039;&#039;&#039;: current state of the input chain given as enumeration:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0 || IDLE&lt;br /&gt;
|-&lt;br /&gt;
| 1 || OPENING&lt;br /&gt;
|-&lt;br /&gt;
| 2 || BUFFERING&lt;br /&gt;
|-&lt;br /&gt;
| 3 || PLAYING&lt;br /&gt;
|-&lt;br /&gt;
| 4 || PAUSED&lt;br /&gt;
|-&lt;br /&gt;
| 5 || STOPPING&lt;br /&gt;
|-&lt;br /&gt;
| 6 || ENDED&lt;br /&gt;
|-&lt;br /&gt;
| 7 || ERROR&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Test for ENDED=6 to catch end of playback. Checking for STOPPING=5 is NOT ENOUGH. &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.rate&#039;&#039;&#039;: input speed given as float (1.0 for normal speed, 0.5 for half speed, 2.0 for twice as fast, etc.).&lt;br /&gt;
&lt;br /&gt;
 rate &amp;amp;gt; 1             &amp;amp;nbsp;: is fastforward&lt;br /&gt;
 rate &amp;amp;gt; 0 and rate &amp;amp;lt; 1&amp;amp;nbsp;: is slow motion&lt;br /&gt;
 rate &amp;amp;lt; 0             &amp;amp;nbsp;: is rewind&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Playlist object ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.itemCount&#039;&#039;&#039;: number that returns the amount of items currently in the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]]) &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.isPlaying&#039;&#039;&#039;: a boolean that returns true if the current playlist item is playing and false when it is not playing &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items&#039;&#039;&#039;: return the playlist items collection, see [[#Playlist_items_object|Playlist items]]&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl)&#039;&#039;&#039;: add a playlist item as [[MRL]]. The MRL must be given as a string. Returns a number as an item identifier in playlist (this is not a position in playlist). &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl,name,options)&#039;&#039;&#039;: add a playlist item as MRL, with metaname &#039;name&#039; and options &#039;options&#039;. options are text arguments which can be provided either as a single string containing space separated values, akin to VLC command line, or as an array of string values. Returns a number as an item identifier in playlist (this is not a position in playlist).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
var options = new Array(&amp;quot;:aspect-ratio=4:3&amp;quot;, &amp;quot;--rtsp-tcp&amp;quot;);&lt;br /&gt;
var id = vlc.playlist.add(&amp;quot;rtsp://servername/item/to/play&amp;quot;, &amp;quot;fancy name&amp;quot;, options);&lt;br /&gt;
vlc.playlist.playItem(id);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.play()&#039;&#039;&#039;: start playing the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.playItem(number)&#039;&#039;&#039;: start playing the item whose identifier is number &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.pause()&#039;&#039;&#039;: pause the current playlist item&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.togglePause()&#039;&#039;&#039;: toggle the pause state for the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.stop()&#039;&#039;&#039;: stop playing the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.next()&#039;&#039;&#039;: iterate to the next playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.prev()&#039;&#039;&#039;: iterate to the previous playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]]) &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.removeItem(number)&#039;&#039;&#039;: remove the item from playlist whose identifier is number &amp;lt;!-- (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() ) --&amp;gt; (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]])&lt;br /&gt;
&lt;br /&gt;
=== Playlist items object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.count&#039;&#039;&#039;: number of items currently in the playlist&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist. If a movie is playing, it stop. Note that when this method returns, playlist may not have been entirely been cleared as this operation is performed asynchronously; use the &#039;&#039;count&#039;&#039; property to verify/wait until the playlist is empty. &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.remove(number)&#039;&#039;&#039;: remove the item whose identifier is number from playlist. (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() )&lt;br /&gt;
&lt;br /&gt;
== Subtitle object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.count&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) returns the number of subtitle available.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.track&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.description(int i)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) give the i-th subtitle name. 0 correspond to disable and 1 to the first subtitle.&lt;br /&gt;
&lt;br /&gt;
== Video object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.width&#039;&#039;&#039;: returns the horizontal size of the video &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.height&#039;&#039;&#039;: returns the vertical size of the video&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.fullscreen&#039;&#039;&#039;: when set to true the video will be displayed in fullscreen mode, when set to false the video will be shown inside the video output size. The property takes a boolean as input. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.aspectRatio&#039;&#039;&#039;: get and set the aspect ratio to use in the video screen. The property takes a string as input value. Typical values are: &amp;quot;1:1&amp;quot;, &amp;quot;4:3&amp;quot;, &amp;quot;16:9&amp;quot;, &amp;quot;16:10&amp;quot;, &amp;quot;221:100&amp;quot; and &amp;quot;5:4&amp;quot; &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.subtitle&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6a) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.teletext&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 0.9.0) get and set teletext page to show on the video stream. This will only work if a teletext elementary stream is available in the video stream. The property takes an integer as input value [0..999] for indicating the teletext page to view, setting the value to 0 means hide teletext. On error it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleFullscreen()&#039;&#039;&#039;: toggle the fullscreen mode based on the previous setting &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleTeletext()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 0.9.0) toggle the teletext page to overlay transparent or not, based on the previous setting&lt;br /&gt;
&lt;br /&gt;
=== Deinterlace Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.deinterlace.enable(&amp;quot;my_mode&amp;quot;)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable deinterlacing with my_mode. You can enable it with &amp;quot;blend&amp;quot;, &amp;quot;bob&amp;quot;, &amp;quot;discard&amp;quot;, &amp;quot;linear&amp;quot;, &amp;quot;mean&amp;quot;, &amp;quot;x&amp;quot;, &amp;quot;yadif&amp;quot; or &amp;quot;yadif2x&amp;quot; mode. Enabling too soon deinterlacing may cause some problems. You have to wait that all variable are available before enabling it. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.deinterlace.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable deinterlacing.&lt;br /&gt;
&lt;br /&gt;
=== Marquee Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.text&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display my text on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.color&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text color. val is the new color to use (WHITE=0x000000, BLACK=0xFFFFFF, RED=0xFF0000, GREEN=0x00FF00, BLUE=0x0000FF...). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.opacity&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text opacity, val is defined from 0 (completely transparent) to 255 (completely opaque). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.position&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text position (CENTER=0, LEFT=1, RIGHT=2, TOP=4, TOP-LEFT=5, TOP-RIGHT=6, BOTTOM=8, BOTTOM-LEFT=9, BOTTOM_RIGHT=10). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.refresh&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the marquee refresh period. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.size&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) val define the new size for the text displayed on the screen. If the text is bigger than the screen then the text is not displayed. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.timeout&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the timeout value. val is defined in ms, but 0 value correspond to unlimited. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.x&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change text abscissa. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.y&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change text ordinate.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.enable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable marquee filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable marquee filter.&lt;br /&gt;
&lt;br /&gt;
Some problems may happen (option like color or text will not be applied) because of the VLC asynchronous functioning. To avoid it, after enabling marquee, you have to wait a little time before changing an option. But it should be fixed by the new vout implementation. &lt;br /&gt;
&lt;br /&gt;
NOTE: [http://forum.videolan.org/viewtopic.php?f=16&amp;amp;t=89427#p295058] &lt;br /&gt;
&lt;br /&gt;
=== Logo Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.opacity&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture opacity, val is defined from 0 (completely transparent) to 255 (completely opaque). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.position&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text position (&amp;quot;center&amp;quot;, &amp;quot;left&amp;quot;, &amp;quot;right&amp;quot;, &amp;quot;top&amp;quot;, &amp;quot;top-left&amp;quot;, &amp;quot;top-right&amp;quot;, &amp;quot;bottom&amp;quot;, &amp;quot;bottom-left&amp;quot;, &amp;quot;bottom-right&amp;quot;). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.delay&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display each picture for a duration of 1000 ms (default) before displaying the next picture. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.repeat&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) number of loops for picture animation (-1=continuous, 0=disabled, n=n-times). The default is -1 (continuous). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.x&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the x-offset for displaying the picture counting from top-left on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.y&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the y-offset for displaying the picture counting from top-left on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.width&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture width. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.height&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture height.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.enable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable logo video filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable logo video filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.file(&amp;quot;file.png&amp;quot;)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display my file.png as logo on the screen.&lt;br /&gt;
&lt;br /&gt;
Some problems may happen because of the VLC asynchronous functioning. To avoid it, after enabling logo video filter, you have to wait a little time before changing an option. But it should be fixed by the new vout implementation.&lt;br /&gt;
&lt;br /&gt;
== MediaDescription Object   ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.title&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns title meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.artist&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns artist meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.copyright&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns copyright meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.album&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns album meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.trackNumber&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns trackNumber meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.description&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns description meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.rating&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns rating meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.date&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns date meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.setting&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns setting meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.URL&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns URL meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.language&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns language meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.nowPlaying&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns nowPlaying meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.publisher&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns publisher meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.encodedBy&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns encodedBy meta information field.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.artworkURL&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns artworkURL meta information field.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.trackID&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns trackID meta information field.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== DEPRECATED APIs ==&lt;br /&gt;
=== DEPRECATED: Log object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
This object allows accessing VLC main message logging queue. Typically this queue capacity is very small (no nore than 256 entries) and can easily overflow, therefore messages should be read and cleared as often as possible. &lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.messages&#039;&#039;&#039;: returns the message collection, see [[#Messages_object|Messages object]]&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.verbosity&#039;&#039;&#039;: write number [-1,0,1,2,3] for changing the verbosity level of the log messages; messages whose verbosity is higher than set will be not be logged in the queue. The numbers have the following meaning: -1 disable, 0 info, 1 error, 2 warning, 3 debug.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Messages object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;messages.count&#039;&#039;&#039;: returns number of messages in the log&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;messages.clear()&#039;&#039;&#039;: clear the current log buffer. It should be called as frequently as possible to not overflow the message queue. Call this method after the log messages of interest are read. &lt;br /&gt;
*&#039;&#039;&#039;messages.iterator()&#039;&#039;&#039;: creates and returns an iterator object, used to iterate over the messages in the log. &#039;&#039;&#039;Don&#039;t clear the log buffer while holding an iterator object.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Messages Iterator object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iterator.hasNext&#039;&#039;&#039;: returns a boolean that indicates whether &#039;&#039;vlc.log.messages.next()&#039;&#039; will return the next message.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iterator.next()&#039;&#039;&#039;: returns the next message object in the log, see [[Message object]]&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Message subobject  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;message.severity&#039;&#039;&#039;: number that indicates the severity of the log message (0 = info, 1 = error, 2 = warning, 3 = debug) &lt;br /&gt;
*&#039;&#039;&#039;message.name&#039;&#039;&#039;: name of VLC module that printed the log message (e.g: main, http, directx, etc...) &lt;br /&gt;
*&#039;&#039;&#039;message.type&#039;&#039;&#039;: type of VLC module that printed the log message (eg: input, access, vout, sout, etc...) &lt;br /&gt;
*&#039;&#039;&#039;message.message&#039;&#039;&#039;: the message text&lt;br /&gt;
&lt;br /&gt;
{{Documentation}} &lt;br /&gt;
&lt;br /&gt;
[[Category:Embedded]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:WebPlugin&amp;diff=23670</id>
		<title>Documentation:WebPlugin</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:WebPlugin&amp;diff=23670"/>
		<updated>2013-01-02T15:18:09Z</updated>

		<summary type="html">&lt;p&gt;Etix: /* Browsers support */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This Documentation speaks about the {{VLC}} Web plugins and how to write pages for it. &lt;br /&gt;
{{RightMenu|documentation play howto toc}} &lt;br /&gt;
&lt;br /&gt;
= Introduction: Building Web pages with Video =&lt;br /&gt;
&lt;br /&gt;
The {{VLC}} webplugins are native browser plugins, similar to Flash or Silverlight plugins and allow playback inside the browser of all the videos that {{VLC}} can read.&lt;br /&gt;
&lt;br /&gt;
Additionally to viewing video on all pages, you can build custom pages that will use the advanced features of the plugin, using Javascript functions to control playback or extract information from the plugin. &lt;br /&gt;
&lt;br /&gt;
There are 2 main plugins: one is ActiveX for IE, the other is NPAPI for the other browsers. They feature the same amount of features.&lt;br /&gt;
&lt;br /&gt;
In older versions, those plugins were very crashy. &#039;&#039;&#039;We URGE YOU&#039;&#039;&#039; to use VLC &#039;&#039;&#039;2.0.0&#039;&#039;&#039; or newer versions.&lt;br /&gt;
&lt;br /&gt;
=== Browsers support ===&lt;br /&gt;
It has been tested with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Mozilla Firefox || [[Image:Firefox-logo.png|40x40px]]&lt;br /&gt;
|-&lt;br /&gt;
| Internet Explorer || [[Image:20101105053305!Internet Explorer 9.png|40x40px]]&lt;br /&gt;
|-&lt;br /&gt;
| Safari || [[Image:Apple Safari.png|40x40px]]&lt;br /&gt;
|-&lt;br /&gt;
| Chrome || &lt;br /&gt;
|-&lt;br /&gt;
| Konqueror || &lt;br /&gt;
|-&lt;br /&gt;
| Opera ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It has been tested on GNU/Linux, Windows and MacOS.&lt;br /&gt;
&lt;br /&gt;
= Embed tag attributes =&lt;br /&gt;
&lt;br /&gt;
To embed the plugin into a webpage use the following &amp;amp;lt;embed&amp;amp;gt; template: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot; pluginspage=&amp;quot;http://www.videolan.org&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921&amp;quot; codebase=&amp;quot;http://download.videolan.org/pub/videolan/vlc/last/win32/axvlc.cab&amp;quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Required elements ===&lt;br /&gt;
These are &#039;&#039;&#039;required&#039;&#039;&#039; attributes for the &amp;amp;lt;embed&amp;amp;gt; tag: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039;: Specifies the width of the plugin. &lt;br /&gt;
*&#039;&#039;&#039;height&#039;&#039;&#039;: Specifies the height of the plugin. &lt;br /&gt;
*&#039;&#039;&#039;target&#039;&#039;&#039; (or one of these alias: &#039;&#039;&#039;mrl&#039;&#039;&#039;, &#039;&#039;&#039;filename&#039;&#039;&#039;, &#039;&#039;&#039;src&#039;&#039;&#039;): Specifies the source location (URL) of the video to load.&lt;br /&gt;
&lt;br /&gt;
=== Optionnal elements ===&lt;br /&gt;
These are additional attributes for the &amp;amp;lt;embed&amp;amp;gt; tag: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;autoplay&#039;&#039;&#039;, &#039;&#039;&#039;autostart&#039;&#039;&#039;: Specifies whether the plugin starts playing on load. Default: &#039;&#039;true&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;allowfullscreen&#039;&#039;&#039;: (since VLC version 1.2.0) Specifies whether the user can switch into fullscreen mode. Default: &#039;&#039;true&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;windowless&#039;&#039;&#039;: (since VLC version 2.0.6) Draw the video on a window-less (non-accelerated) surface and allow styling (CSS overlay, 3D transformations, and much more). Default: &#039;&#039;false&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;mute&#039;&#039;&#039;: Specifies whether the audio volume is initially muted. Default: &#039;&#039;false&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;loop&#039;&#039;&#039;, &#039;&#039;&#039;autoloop&#039;&#039;&#039;: Specifies whether the video loops on end. Default: &#039;&#039;false&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;toolbar&#039;&#039;&#039;: Specifies whether the toolbar is shown by default. Default: &#039;&#039;true&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039;: Specifies the background color of the video player. Default: &#039;&#039;#000000&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Normal DOM elements ===&lt;br /&gt;
*&#039;&#039;&#039;id&#039;&#039;&#039;: DOM id&lt;br /&gt;
*&#039;&#039;&#039;name&#039;&#039;&#039;: DOM name&lt;br /&gt;
&lt;br /&gt;
= Javascript API description  =&lt;br /&gt;
&lt;br /&gt;
The vlc plugin exports several objects that can be accessed for setting and getting information. When used improperly the API&#039;s will throw an exception that includes a string that explains what happened. For example when asking for vlc.input.length when there is no playlist item playing. &lt;br /&gt;
&lt;br /&gt;
== VLC objects ==&lt;br /&gt;
The vlc plugin knows the following objects: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;audio&#039;&#039;&#039;: Access audio properties. &lt;br /&gt;
*&#039;&#039;&#039;input&#039;&#039;&#039;: Access input properties. &lt;br /&gt;
*&#039;&#039;&#039;playlist&#039;&#039;&#039;: Access playlist properties. &lt;br /&gt;
*&#039;&#039;&#039;subtitle&#039;&#039;&#039;: Access subtitle properties. &lt;br /&gt;
*&#039;&#039;&#039;video&#039;&#039;&#039;: Access video properties. &lt;br /&gt;
**&#039;&#039;&#039;video.marquee&#039;&#039;&#039;: Access marquee video filter properties. &lt;br /&gt;
**&#039;&#039;&#039;video.logo&#039;&#039;&#039;: Access logo video filter properties. &lt;br /&gt;
*&#039;&#039;&#039;mediaDescription&#039;&#039;&#039;: Access media info properties (only available in vlc version &amp;gt;= 2.0.2).&lt;br /&gt;
&lt;br /&gt;
The following are deprecated:&lt;br /&gt;
*&#039;&#039;&#039;log&#039;&#039;&#039;: Access log properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
*&#039;&#039;&#039;messages&#039;&#039;&#039;: Access to log message properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
*&#039;&#039;&#039;iterator&#039;&#039;&#039;: Access to log iterator properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1).&lt;br /&gt;
*&#039;&#039;&#039;message&#039;&#039;&#039;: Access to log message properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
The following JavaScript code shows howto get a reference to the vlc plugin. This reference can then be used to access the objects of the vlc plugin. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;VLC Mozilla plugin test page&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot; pluginspage=&amp;quot;http://www.videolan.org&amp;quot;&lt;br /&gt;
       width=&amp;quot;640&amp;quot;&lt;br /&gt;
       height=&amp;quot;480&amp;quot;&lt;br /&gt;
       id=&amp;quot;vlc&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/embed&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;Javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
var vlc = document.getElementById(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
vlc.audio.toggleMute();&lt;br /&gt;
//!--&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Root object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;VersionInfo&#039;&#039;&#039;: returns version information string&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.versionInfo()&#039;&#039;&#039;: returns version information string (same as VersionInfo)&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.addEventListener(eventname, callback, bubble)&#039;&#039;&#039;: (only for Mozilla) add a listener for mentioned event name, callback expects a function and bubble influences the order of eventhandling by JS (usually it is set to false). &lt;br /&gt;
*&#039;&#039;&#039;vlc.removeEventListener(eventname, callback, bubble)&#039;&#039;&#039;: (only for Mozilla) remove listener for mentioned event name, callback expects a function and bubble influences the order of eventhandling by JS (usually it is set to false).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.attachEvent(eventname, callback)&#039;&#039;&#039;: (only for ActiveX) add listener for mentioned event name, callback expects a function &lt;br /&gt;
*&#039;&#039;&#039;vlc.removeEvent(eventname, callback)&#039;&#039;&#039;: (only for ActiveX) remove listener for mentioned event name, callback expects a function&lt;br /&gt;
&lt;br /&gt;
events &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerNothingSpecial&#039;&#039;&#039;: vlc is in idle state doing nothing but waiting for a command to be issued &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerOpening&#039;&#039;&#039;: vlc is opening an media resource locator (MRL) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerBuffering&#039;&#039;&#039;: vlc is buffering &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPlaying&#039;&#039;&#039;: vlc is playing a media &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPaused&#039;&#039;&#039;: vlc is in paused state &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerForward&#039;&#039;&#039;: vlc is fastforwarding through the media (works only when an input supports forward playback) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerBackward&#039;&#039;&#039;: vlc is going backwards through the media (works only when an input supports backwards playback) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerEncounteredError&#039;&#039;&#039;: vlc has encountered an error and is unable to continue &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerEndReached&#039;&#039;&#039;: vlc has reached the end of current playlist &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerTimeChanged&#039;&#039;&#039;: time has changed &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPositionChanged&#039;&#039;&#039;: media position has changed &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerSeekableChanged&#039;&#039;&#039;: media seekable flag has changed (true means media is seekable, false means it is not) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPausableChanged&#039;&#039;&#039;: media pausable flag has changed (true means media is pauseable, false means it is not)&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
The following code snippet provides easy functions to register and unregister event callbacks on all supported platforms (currently only Linux mozilla based browsers and windows activeX objects for Internet Explorer). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
function registerVLCEvent(event, handler) {&lt;br /&gt;
    var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
    if (vlc) {&lt;br /&gt;
        if (vlc.attachEvent) {&lt;br /&gt;
            // Microsoft&lt;br /&gt;
            vlc.attachEvent (event, handler);&lt;br /&gt;
    } else if (vlc.addEventListener) {&lt;br /&gt;
        // Mozilla: DOM level 2&lt;br /&gt;
        vlc.addEventListener (event, handler, false);&lt;br /&gt;
    } else {&lt;br /&gt;
        // DOM level 0&lt;br /&gt;
        vlc[&amp;quot;on&amp;quot; + event] = handler;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
// stop listening to event&lt;br /&gt;
function unregisterVLCEvent(event, handler) {&lt;br /&gt;
    var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
    if (vlc) {&lt;br /&gt;
        if (vlc.detachEvent) {&lt;br /&gt;
            // Microsoft&lt;br /&gt;
            vlc.detachEvent (event, handler);&lt;br /&gt;
    } else if (vlc.removeEventListener) {&lt;br /&gt;
        // Mozilla: DOM level 2&lt;br /&gt;
        vlc.removeEventListener (event, handler, false);&lt;br /&gt;
    } else {&lt;br /&gt;
        // DOM level 0&lt;br /&gt;
        vlc[&amp;quot;on&amp;quot; + event] = null;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
// event callback function for testing&lt;br /&gt;
function handleEvents(event) {&lt;br /&gt;
    if (!event)&lt;br /&gt;
        event = window.event; // IE&lt;br /&gt;
    if (event.target) {&lt;br /&gt;
        // Netscape based browser&lt;br /&gt;
        targ = event.target;&lt;br /&gt;
} else if (event.srcElement) {&lt;br /&gt;
    // ActiveX&lt;br /&gt;
    targ = event.srcElement;&lt;br /&gt;
} else {&lt;br /&gt;
    // No event object, just the value&lt;br /&gt;
    alert(&amp;quot;Event value&amp;quot; + event );&lt;br /&gt;
    return;&lt;br /&gt;
}&lt;br /&gt;
if (targ.nodeType == 3) // defeat Safari bug&lt;br /&gt;
    targ = targ.parentNode;&lt;br /&gt;
    alert(&amp;quot;Event &amp;quot; + event.type + &amp;quot; has fired from &amp;quot; + targ );&lt;br /&gt;
}&lt;br /&gt;
// handle mouse grab event from video filter&lt;br /&gt;
function handleMouseGrab(event,X,Y) {&lt;br /&gt;
    if (!event)&lt;br /&gt;
        event = window.event; // IE&lt;br /&gt;
        alert(&amp;quot;new position (&amp;quot; + X + &amp;quot;,&amp;quot; + Y + &amp;quot;)&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
// Register a bunch of callbacks.&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerNothingSpecial&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerOpening&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerBuffering&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerPlaying&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerPaused&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerForward&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerBackward&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerEncounteredError&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerEndReached&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerTimeChanged&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerPositionChanged&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerSeekableChanged&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerPausableChanged&#039;, handleEvents);&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Audio object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.count&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) returns the number of audio track available.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.mute&#039;&#039;&#039;: boolean value to mute and unmute the audio. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.volume&#039;&#039;&#039;: a value between [0-200] which indicates a percentage of the volume. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.track&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6) a value between [1-65535] which indicates the audio track to play or that is playing. a value of 0 means the audio is/will be disabled. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.channel&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6) integer value between [1-5] that indicates which audio channel mode is used, values can be: &amp;quot;1=stereo&amp;quot;, &amp;quot;2=reverse stereo&amp;quot;, &amp;quot;3=left&amp;quot;, &amp;quot;4=right&amp;quot;, &amp;quot;5=dolby&amp;quot;. Use vlc.audio.channel to check if setting of the audio channel mode has succeeded.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.toggleMute()&#039;&#039;&#039;: boolean toggle that mutes and unmutes the audio based upon the previous state. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.description(int i)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) give the i-th audio track name. 0 corresponds to disable and 1 to the first audio track.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot; line&amp;gt;&lt;br /&gt;
Audio Channel:&lt;br /&gt;
&amp;lt;select readonly onChange=&#039;doAudioChannel(this.value)&#039;&amp;gt;&lt;br /&gt;
&amp;lt;option value=1&amp;gt;Stereo&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=2&amp;gt;Reverse stereo&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=3&amp;gt;Left&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=4&amp;gt;Right&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=5&amp;gt;Dolby&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;/select&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
function doAudioChannel(value)&lt;br /&gt;
{&lt;br /&gt;
var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
vlc.audio.channel = parseInt(value);&lt;br /&gt;
alert(vlc.audio.channel);&lt;br /&gt;
};&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Input object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.length&#039;&#039;&#039;: length of the input file in number of milliseconds. 0 is returned for &#039;live&#039; streams or clips whose length cannot be determined by VLC. It returns -1 if no input is playing. &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.fps&#039;&#039;&#039;: frames per second returned as a float (typically 60.0, 50.0, 23.976, etc...) &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.hasVout&#039;&#039;&#039;: a boolean that returns true when the video is being displayed, it returns false when video is not displayed&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.position&#039;&#039;&#039;: normalized position in multimedia stream item given as a float value between [0.0 - 1.0] &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.time&#039;&#039;&#039;: the absolute position in time given in milliseconds, this property can be used to seek through the stream&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;!-- absolute seek in stream&amp;amp;nbsp;!--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = &amp;amp;lt;absolute seek&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!-- relative seek in stream&amp;amp;nbsp;!--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = vlc.input.time + &amp;amp;lt;relative seek&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.state&#039;&#039;&#039;: current state of the input chain given as enumeration:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0 || IDLE&lt;br /&gt;
|-&lt;br /&gt;
| 1 || OPENING&lt;br /&gt;
|-&lt;br /&gt;
| 2 || BUFFERING&lt;br /&gt;
|-&lt;br /&gt;
| 3 || PLAYING&lt;br /&gt;
|-&lt;br /&gt;
| 4 || PAUSED&lt;br /&gt;
|-&lt;br /&gt;
| 5 || STOPPING&lt;br /&gt;
|-&lt;br /&gt;
| 6 || ENDED&lt;br /&gt;
|-&lt;br /&gt;
| 7 || ERROR&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Test for ENDED=6 to catch end of playback. Checking for STOPPING=5 is NOT ENOUGH. &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.rate&#039;&#039;&#039;: input speed given as float (1.0 for normal speed, 0.5 for half speed, 2.0 for twice as fast, etc.).&lt;br /&gt;
&lt;br /&gt;
 rate &amp;amp;gt; 1             &amp;amp;nbsp;: is fastforward&lt;br /&gt;
 rate &amp;amp;gt; 0 and rate &amp;amp;lt; 1&amp;amp;nbsp;: is slow motion&lt;br /&gt;
 rate &amp;amp;lt; 0             &amp;amp;nbsp;: is rewind&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Playlist object ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.itemCount&#039;&#039;&#039;: number that returns the amount of items currently in the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]]) &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.isPlaying&#039;&#039;&#039;: a boolean that returns true if the current playlist item is playing and false when it is not playing &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items&#039;&#039;&#039;: return the playlist items collection, see [[#Playlist_items_object|Playlist items]]&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl)&#039;&#039;&#039;: add a playlist item as [[MRL]]. The MRL must be given as a string. Returns a number as an item identifier in playlist (this is not a position in playlist). &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl,name,options)&#039;&#039;&#039;: add a playlist item as MRL, with metaname &#039;name&#039; and options &#039;options&#039;. options are text arguments which can be provided either as a single string containing space separated values, akin to VLC command line, or as an array of string values. Returns a number as an item identifier in playlist (this is not a position in playlist).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
var options = new Array(&amp;quot;:aspect-ratio=4:3&amp;quot;, &amp;quot;--rtsp-tcp&amp;quot;);&lt;br /&gt;
var id = vlc.playlist.add(&amp;quot;rtsp://servername/item/to/play&amp;quot;, &amp;quot;fancy name&amp;quot;, options);&lt;br /&gt;
vlc.playlist.playItem(id);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.play()&#039;&#039;&#039;: start playing the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.playItem(number)&#039;&#039;&#039;: start playing the item whose identifier is number &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.pause()&#039;&#039;&#039;: pause the current playlist item&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.togglePause()&#039;&#039;&#039;: toggle the pause state for the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.stop()&#039;&#039;&#039;: stop playing the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.next()&#039;&#039;&#039;: iterate to the next playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.prev()&#039;&#039;&#039;: iterate to the previous playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]]) &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.removeItem(number)&#039;&#039;&#039;: remove the item from playlist whose identifier is number &amp;lt;!-- (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() ) --&amp;gt; (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]])&lt;br /&gt;
&lt;br /&gt;
=== Playlist items object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.count&#039;&#039;&#039;: number of items currently in the playlist&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist. If a movie is playing, it stop. Note that when this method returns, playlist may not have been entirely been cleared as this operation is performed asynchronously; use the &#039;&#039;count&#039;&#039; property to verify/wait until the playlist is empty. &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.remove(number)&#039;&#039;&#039;: remove the item whose identifier is number from playlist. (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() )&lt;br /&gt;
&lt;br /&gt;
== Subtitle object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.count&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) returns the number of subtitle available.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.track&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.description(int i)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) give the i-th subtitle name. 0 correspond to disable and 1 to the first subtitle.&lt;br /&gt;
&lt;br /&gt;
== Video object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.width&#039;&#039;&#039;: returns the horizontal size of the video &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.height&#039;&#039;&#039;: returns the vertical size of the video&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.fullscreen&#039;&#039;&#039;: when set to true the video will be displayed in fullscreen mode, when set to false the video will be shown inside the video output size. The property takes a boolean as input. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.aspectRatio&#039;&#039;&#039;: get and set the aspect ratio to use in the video screen. The property takes a string as input value. Typical values are: &amp;quot;1:1&amp;quot;, &amp;quot;4:3&amp;quot;, &amp;quot;16:9&amp;quot;, &amp;quot;16:10&amp;quot;, &amp;quot;221:100&amp;quot; and &amp;quot;5:4&amp;quot; &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.subtitle&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6a) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.teletext&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 0.9.0) get and set teletext page to show on the video stream. This will only work if a teletext elementary stream is available in the video stream. The property takes an integer as input value [0..999] for indicating the teletext page to view, setting the value to 0 means hide teletext. On error it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleFullscreen()&#039;&#039;&#039;: toggle the fullscreen mode based on the previous setting &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleTeletext()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 0.9.0) toggle the teletext page to overlay transparent or not, based on the previous setting&lt;br /&gt;
&lt;br /&gt;
=== Deinterlace Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.deinterlace.enable(&amp;quot;my_mode&amp;quot;)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable deinterlacing with my_mode. You can enable it with &amp;quot;blend&amp;quot;, &amp;quot;bob&amp;quot;, &amp;quot;discard&amp;quot;, &amp;quot;linear&amp;quot;, &amp;quot;mean&amp;quot;, &amp;quot;x&amp;quot;, &amp;quot;yadif&amp;quot; or &amp;quot;yadif2x&amp;quot; mode. Enabling too soon deinterlacing may cause some problems. You have to wait that all variable are available before enabling it. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.deinterlace.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable deinterlacing.&lt;br /&gt;
&lt;br /&gt;
=== Marquee Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.text&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display my text on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.color&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text color. val is the new color to use (WHITE=0x000000, BLACK=0xFFFFFF, RED=0xFF0000, GREEN=0x00FF00, BLUE=0x0000FF...). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.opacity&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text opacity, val is defined from 0 (completely transparent) to 255 (completely opaque). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.position&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text position (CENTER=0, LEFT=1, RIGHT=2, TOP=4, TOP-LEFT=5, TOP-RIGHT=6, BOTTOM=8, BOTTOM-LEFT=9, BOTTOM_RIGHT=10). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.refresh&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the marquee refresh period. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.size&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) val define the new size for the text displayed on the screen. If the text is bigger than the screen then the text is not displayed. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.timeout&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the timeout value. val is defined in ms, but 0 value correspond to unlimited. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.x&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change text abscissa. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.y&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change text ordinate.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.enable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable marquee filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable marquee filter.&lt;br /&gt;
&lt;br /&gt;
Some problems may happen (option like color or text will not be applied) because of the VLC asynchronous functioning. To avoid it, after enabling marquee, you have to wait a little time before changing an option. But it should be fixed by the new vout implementation. &lt;br /&gt;
&lt;br /&gt;
NOTE: [http://forum.videolan.org/viewtopic.php?f=16&amp;amp;t=89427#p295058] &lt;br /&gt;
&lt;br /&gt;
=== Logo Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.opacity&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture opacity, val is defined from 0 (completely transparent) to 255 (completely opaque). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.position&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text position (&amp;quot;center&amp;quot;, &amp;quot;left&amp;quot;, &amp;quot;right&amp;quot;, &amp;quot;top&amp;quot;, &amp;quot;top-left&amp;quot;, &amp;quot;top-right&amp;quot;, &amp;quot;bottom&amp;quot;, &amp;quot;bottom-left&amp;quot;, &amp;quot;bottom-right&amp;quot;). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.delay&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display each picture for a duration of 1000 ms (default) before displaying the next picture. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.repeat&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) number of loops for picture animation (-1=continuous, 0=disabled, n=n-times). The default is -1 (continuous). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.x&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the x-offset for displaying the picture counting from top-left on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.y&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the y-offset for displaying the picture counting from top-left on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.width&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture width. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.height&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture height.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.enable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable logo video filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable logo video filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.file(&amp;quot;file.png&amp;quot;)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display my file.png as logo on the screen.&lt;br /&gt;
&lt;br /&gt;
Some problems may happen because of the VLC asynchronous functioning. To avoid it, after enabling logo video filter, you have to wait a little time before changing an option. But it should be fixed by the new vout implementation.&lt;br /&gt;
&lt;br /&gt;
== MediaDescription Object   ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.title&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns title meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.artist&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns artist meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.copyright&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns copyright meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.album&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns album meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.trackNumber&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns trackNumber meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.description&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns description meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.rating&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns rating meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.date&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns date meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.setting&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns setting meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.URL&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns URL meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.language&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns language meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.nowPlaying&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns nowPlaying meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.publisher&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns publisher meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.encodedBy&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns encodedBy meta information field.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.artworkURL&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns artworkURL meta information field.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.trackID&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns trackID meta information field.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== DEPRECATED APIs ==&lt;br /&gt;
=== DEPRECATED: Log object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
This object allows accessing VLC main message logging queue. Typically this queue capacity is very small (no nore than 256 entries) and can easily overflow, therefore messages should be read and cleared as often as possible. &lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.messages&#039;&#039;&#039;: returns the message collection, see [[#Messages_object|Messages object]]&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.verbosity&#039;&#039;&#039;: write number [-1,0,1,2,3] for changing the verbosity level of the log messages; messages whose verbosity is higher than set will be not be logged in the queue. The numbers have the following meaning: -1 disable, 0 info, 1 error, 2 warning, 3 debug.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Messages object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;messages.count&#039;&#039;&#039;: returns number of messages in the log&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;messages.clear()&#039;&#039;&#039;: clear the current log buffer. It should be called as frequently as possible to not overflow the message queue. Call this method after the log messages of interest are read. &lt;br /&gt;
*&#039;&#039;&#039;messages.iterator()&#039;&#039;&#039;: creates and returns an iterator object, used to iterate over the messages in the log. &#039;&#039;&#039;Don&#039;t clear the log buffer while holding an iterator object.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Messages Iterator object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iterator.hasNext&#039;&#039;&#039;: returns a boolean that indicates whether &#039;&#039;vlc.log.messages.next()&#039;&#039; will return the next message.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iterator.next()&#039;&#039;&#039;: returns the next message object in the log, see [[Message object]]&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Message subobject  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;message.severity&#039;&#039;&#039;: number that indicates the severity of the log message (0 = info, 1 = error, 2 = warning, 3 = debug) &lt;br /&gt;
*&#039;&#039;&#039;message.name&#039;&#039;&#039;: name of VLC module that printed the log message (e.g: main, http, directx, etc...) &lt;br /&gt;
*&#039;&#039;&#039;message.type&#039;&#039;&#039;: type of VLC module that printed the log message (eg: input, access, vout, sout, etc...) &lt;br /&gt;
*&#039;&#039;&#039;message.message&#039;&#039;&#039;: the message text&lt;br /&gt;
&lt;br /&gt;
{{Documentation}} &lt;br /&gt;
&lt;br /&gt;
[[Category:Embedded]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:WebPlugin&amp;diff=23669</id>
		<title>Documentation:WebPlugin</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:WebPlugin&amp;diff=23669"/>
		<updated>2013-01-02T15:11:48Z</updated>

		<summary type="html">&lt;p&gt;Etix: Use a table to list the enum.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This Documentation speaks about the {{VLC}} Web plugins and how to write pages for it. &lt;br /&gt;
{{RightMenu|documentation play howto toc}} &lt;br /&gt;
&lt;br /&gt;
= Introduction: Building Web pages with Video =&lt;br /&gt;
&lt;br /&gt;
The {{VLC}} webplugins are native browser plugins, similar to Flash or Silverlight plugins and allow playback inside the browser of all the videos that {{VLC}} can read.&lt;br /&gt;
&lt;br /&gt;
Additionally to viewing video on all pages, you can build custom pages that will use the advanced features of the plugin, using Javascript functions to control playback or extract information from the plugin. &lt;br /&gt;
&lt;br /&gt;
There are 2 main plugins: one is ActiveX for IE, the other is NPAPI for the other browsers. They feature the same amount of features.&lt;br /&gt;
&lt;br /&gt;
In older versions, those plugins were very crashy. &#039;&#039;&#039;We URGE YOU&#039;&#039;&#039; to use VLC &#039;&#039;&#039;2.0.0&#039;&#039;&#039; or newer versions.&lt;br /&gt;
&lt;br /&gt;
=== Browsers support ===&lt;br /&gt;
It has been tested with:&lt;br /&gt;
* Mozilla Firefox [[Image:Firefox-logo.png|40x40px]]&lt;br /&gt;
* Internet Explorer [[Image:20101105053305!Internet Explorer 9.png|40x40px]]&lt;br /&gt;
* Safari [[Image:Apple Safari.png|40x40px]]&lt;br /&gt;
* Chrome&lt;br /&gt;
* Konqueror&lt;br /&gt;
* Opera&lt;br /&gt;
&lt;br /&gt;
It has been tested on GNU/Linux, Windows and MacOS.&lt;br /&gt;
&lt;br /&gt;
= Embed tag attributes =&lt;br /&gt;
&lt;br /&gt;
To embed the plugin into a webpage use the following &amp;amp;lt;embed&amp;amp;gt; template: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot; pluginspage=&amp;quot;http://www.videolan.org&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921&amp;quot; codebase=&amp;quot;http://download.videolan.org/pub/videolan/vlc/last/win32/axvlc.cab&amp;quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Required elements ===&lt;br /&gt;
These are &#039;&#039;&#039;required&#039;&#039;&#039; attributes for the &amp;amp;lt;embed&amp;amp;gt; tag: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039;: Specifies the width of the plugin. &lt;br /&gt;
*&#039;&#039;&#039;height&#039;&#039;&#039;: Specifies the height of the plugin. &lt;br /&gt;
*&#039;&#039;&#039;target&#039;&#039;&#039; (or one of these alias: &#039;&#039;&#039;mrl&#039;&#039;&#039;, &#039;&#039;&#039;filename&#039;&#039;&#039;, &#039;&#039;&#039;src&#039;&#039;&#039;): Specifies the source location (URL) of the video to load.&lt;br /&gt;
&lt;br /&gt;
=== Optionnal elements ===&lt;br /&gt;
These are additional attributes for the &amp;amp;lt;embed&amp;amp;gt; tag: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;autoplay&#039;&#039;&#039;, &#039;&#039;&#039;autostart&#039;&#039;&#039;: Specifies whether the plugin starts playing on load. Default: &#039;&#039;true&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;allowfullscreen&#039;&#039;&#039;: (since VLC version 1.2.0) Specifies whether the user can switch into fullscreen mode. Default: &#039;&#039;true&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;windowless&#039;&#039;&#039;: (since VLC version 2.0.6) Draw the video on a window-less (non-accelerated) surface and allow styling (CSS overlay, 3D transformations, and much more). Default: &#039;&#039;false&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;mute&#039;&#039;&#039;: Specifies whether the audio volume is initially muted. Default: &#039;&#039;false&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;loop&#039;&#039;&#039;, &#039;&#039;&#039;autoloop&#039;&#039;&#039;: Specifies whether the video loops on end. Default: &#039;&#039;false&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;toolbar&#039;&#039;&#039;: Specifies whether the toolbar is shown by default. Default: &#039;&#039;true&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039;: Specifies the background color of the video player. Default: &#039;&#039;#000000&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Normal DOM elements ===&lt;br /&gt;
*&#039;&#039;&#039;id&#039;&#039;&#039;: DOM id&lt;br /&gt;
*&#039;&#039;&#039;name&#039;&#039;&#039;: DOM name&lt;br /&gt;
&lt;br /&gt;
= Javascript API description  =&lt;br /&gt;
&lt;br /&gt;
The vlc plugin exports several objects that can be accessed for setting and getting information. When used improperly the API&#039;s will throw an exception that includes a string that explains what happened. For example when asking for vlc.input.length when there is no playlist item playing. &lt;br /&gt;
&lt;br /&gt;
== VLC objects ==&lt;br /&gt;
The vlc plugin knows the following objects: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;audio&#039;&#039;&#039;: Access audio properties. &lt;br /&gt;
*&#039;&#039;&#039;input&#039;&#039;&#039;: Access input properties. &lt;br /&gt;
*&#039;&#039;&#039;playlist&#039;&#039;&#039;: Access playlist properties. &lt;br /&gt;
*&#039;&#039;&#039;subtitle&#039;&#039;&#039;: Access subtitle properties. &lt;br /&gt;
*&#039;&#039;&#039;video&#039;&#039;&#039;: Access video properties. &lt;br /&gt;
**&#039;&#039;&#039;video.marquee&#039;&#039;&#039;: Access marquee video filter properties. &lt;br /&gt;
**&#039;&#039;&#039;video.logo&#039;&#039;&#039;: Access logo video filter properties. &lt;br /&gt;
*&#039;&#039;&#039;mediaDescription&#039;&#039;&#039;: Access media info properties (only available in vlc version &amp;gt;= 2.0.2).&lt;br /&gt;
&lt;br /&gt;
The following are deprecated:&lt;br /&gt;
*&#039;&#039;&#039;log&#039;&#039;&#039;: Access log properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
*&#039;&#039;&#039;messages&#039;&#039;&#039;: Access to log message properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
*&#039;&#039;&#039;iterator&#039;&#039;&#039;: Access to log iterator properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1).&lt;br /&gt;
*&#039;&#039;&#039;message&#039;&#039;&#039;: Access to log message properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
The following JavaScript code shows howto get a reference to the vlc plugin. This reference can then be used to access the objects of the vlc plugin. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;VLC Mozilla plugin test page&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot; pluginspage=&amp;quot;http://www.videolan.org&amp;quot;&lt;br /&gt;
       width=&amp;quot;640&amp;quot;&lt;br /&gt;
       height=&amp;quot;480&amp;quot;&lt;br /&gt;
       id=&amp;quot;vlc&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/embed&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;Javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
var vlc = document.getElementById(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
vlc.audio.toggleMute();&lt;br /&gt;
//!--&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Root object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;VersionInfo&#039;&#039;&#039;: returns version information string&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.versionInfo()&#039;&#039;&#039;: returns version information string (same as VersionInfo)&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.addEventListener(eventname, callback, bubble)&#039;&#039;&#039;: (only for Mozilla) add a listener for mentioned event name, callback expects a function and bubble influences the order of eventhandling by JS (usually it is set to false). &lt;br /&gt;
*&#039;&#039;&#039;vlc.removeEventListener(eventname, callback, bubble)&#039;&#039;&#039;: (only for Mozilla) remove listener for mentioned event name, callback expects a function and bubble influences the order of eventhandling by JS (usually it is set to false).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.attachEvent(eventname, callback)&#039;&#039;&#039;: (only for ActiveX) add listener for mentioned event name, callback expects a function &lt;br /&gt;
*&#039;&#039;&#039;vlc.removeEvent(eventname, callback)&#039;&#039;&#039;: (only for ActiveX) remove listener for mentioned event name, callback expects a function&lt;br /&gt;
&lt;br /&gt;
events &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerNothingSpecial&#039;&#039;&#039;: vlc is in idle state doing nothing but waiting for a command to be issued &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerOpening&#039;&#039;&#039;: vlc is opening an media resource locator (MRL) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerBuffering&#039;&#039;&#039;: vlc is buffering &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPlaying&#039;&#039;&#039;: vlc is playing a media &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPaused&#039;&#039;&#039;: vlc is in paused state &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerForward&#039;&#039;&#039;: vlc is fastforwarding through the media (works only when an input supports forward playback) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerBackward&#039;&#039;&#039;: vlc is going backwards through the media (works only when an input supports backwards playback) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerEncounteredError&#039;&#039;&#039;: vlc has encountered an error and is unable to continue &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerEndReached&#039;&#039;&#039;: vlc has reached the end of current playlist &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerTimeChanged&#039;&#039;&#039;: time has changed &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPositionChanged&#039;&#039;&#039;: media position has changed &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerSeekableChanged&#039;&#039;&#039;: media seekable flag has changed (true means media is seekable, false means it is not) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPausableChanged&#039;&#039;&#039;: media pausable flag has changed (true means media is pauseable, false means it is not)&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
The following code snippet provides easy functions to register and unregister event callbacks on all supported platforms (currently only Linux mozilla based browsers and windows activeX objects for Internet Explorer). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
function registerVLCEvent(event, handler) {&lt;br /&gt;
    var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
    if (vlc) {&lt;br /&gt;
        if (vlc.attachEvent) {&lt;br /&gt;
            // Microsoft&lt;br /&gt;
            vlc.attachEvent (event, handler);&lt;br /&gt;
    } else if (vlc.addEventListener) {&lt;br /&gt;
        // Mozilla: DOM level 2&lt;br /&gt;
        vlc.addEventListener (event, handler, false);&lt;br /&gt;
    } else {&lt;br /&gt;
        // DOM level 0&lt;br /&gt;
        vlc[&amp;quot;on&amp;quot; + event] = handler;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
// stop listening to event&lt;br /&gt;
function unregisterVLCEvent(event, handler) {&lt;br /&gt;
    var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
    if (vlc) {&lt;br /&gt;
        if (vlc.detachEvent) {&lt;br /&gt;
            // Microsoft&lt;br /&gt;
            vlc.detachEvent (event, handler);&lt;br /&gt;
    } else if (vlc.removeEventListener) {&lt;br /&gt;
        // Mozilla: DOM level 2&lt;br /&gt;
        vlc.removeEventListener (event, handler, false);&lt;br /&gt;
    } else {&lt;br /&gt;
        // DOM level 0&lt;br /&gt;
        vlc[&amp;quot;on&amp;quot; + event] = null;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
// event callback function for testing&lt;br /&gt;
function handleEvents(event) {&lt;br /&gt;
    if (!event)&lt;br /&gt;
        event = window.event; // IE&lt;br /&gt;
    if (event.target) {&lt;br /&gt;
        // Netscape based browser&lt;br /&gt;
        targ = event.target;&lt;br /&gt;
} else if (event.srcElement) {&lt;br /&gt;
    // ActiveX&lt;br /&gt;
    targ = event.srcElement;&lt;br /&gt;
} else {&lt;br /&gt;
    // No event object, just the value&lt;br /&gt;
    alert(&amp;quot;Event value&amp;quot; + event );&lt;br /&gt;
    return;&lt;br /&gt;
}&lt;br /&gt;
if (targ.nodeType == 3) // defeat Safari bug&lt;br /&gt;
    targ = targ.parentNode;&lt;br /&gt;
    alert(&amp;quot;Event &amp;quot; + event.type + &amp;quot; has fired from &amp;quot; + targ );&lt;br /&gt;
}&lt;br /&gt;
// handle mouse grab event from video filter&lt;br /&gt;
function handleMouseGrab(event,X,Y) {&lt;br /&gt;
    if (!event)&lt;br /&gt;
        event = window.event; // IE&lt;br /&gt;
        alert(&amp;quot;new position (&amp;quot; + X + &amp;quot;,&amp;quot; + Y + &amp;quot;)&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
// Register a bunch of callbacks.&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerNothingSpecial&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerOpening&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerBuffering&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerPlaying&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerPaused&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerForward&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerBackward&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerEncounteredError&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerEndReached&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerTimeChanged&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerPositionChanged&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerSeekableChanged&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerPausableChanged&#039;, handleEvents);&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Audio object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.count&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) returns the number of audio track available.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.mute&#039;&#039;&#039;: boolean value to mute and unmute the audio. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.volume&#039;&#039;&#039;: a value between [0-200] which indicates a percentage of the volume. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.track&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6) a value between [1-65535] which indicates the audio track to play or that is playing. a value of 0 means the audio is/will be disabled. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.channel&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6) integer value between [1-5] that indicates which audio channel mode is used, values can be: &amp;quot;1=stereo&amp;quot;, &amp;quot;2=reverse stereo&amp;quot;, &amp;quot;3=left&amp;quot;, &amp;quot;4=right&amp;quot;, &amp;quot;5=dolby&amp;quot;. Use vlc.audio.channel to check if setting of the audio channel mode has succeeded.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.toggleMute()&#039;&#039;&#039;: boolean toggle that mutes and unmutes the audio based upon the previous state. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.description(int i)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) give the i-th audio track name. 0 corresponds to disable and 1 to the first audio track.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot; line&amp;gt;&lt;br /&gt;
Audio Channel:&lt;br /&gt;
&amp;lt;select readonly onChange=&#039;doAudioChannel(this.value)&#039;&amp;gt;&lt;br /&gt;
&amp;lt;option value=1&amp;gt;Stereo&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=2&amp;gt;Reverse stereo&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=3&amp;gt;Left&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=4&amp;gt;Right&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=5&amp;gt;Dolby&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;/select&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
function doAudioChannel(value)&lt;br /&gt;
{&lt;br /&gt;
var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
vlc.audio.channel = parseInt(value);&lt;br /&gt;
alert(vlc.audio.channel);&lt;br /&gt;
};&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Input object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.length&#039;&#039;&#039;: length of the input file in number of milliseconds. 0 is returned for &#039;live&#039; streams or clips whose length cannot be determined by VLC. It returns -1 if no input is playing. &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.fps&#039;&#039;&#039;: frames per second returned as a float (typically 60.0, 50.0, 23.976, etc...) &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.hasVout&#039;&#039;&#039;: a boolean that returns true when the video is being displayed, it returns false when video is not displayed&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.position&#039;&#039;&#039;: normalized position in multimedia stream item given as a float value between [0.0 - 1.0] &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.time&#039;&#039;&#039;: the absolute position in time given in milliseconds, this property can be used to seek through the stream&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;!-- absolute seek in stream&amp;amp;nbsp;!--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = &amp;amp;lt;absolute seek&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!-- relative seek in stream&amp;amp;nbsp;!--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = vlc.input.time + &amp;amp;lt;relative seek&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.state&#039;&#039;&#039;: current state of the input chain given as enumeration:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0 || IDLE&lt;br /&gt;
|-&lt;br /&gt;
| 1 || OPENING&lt;br /&gt;
|-&lt;br /&gt;
| 2 || BUFFERING&lt;br /&gt;
|-&lt;br /&gt;
| 3 || PLAYING&lt;br /&gt;
|-&lt;br /&gt;
| 4 || PAUSED&lt;br /&gt;
|-&lt;br /&gt;
| 5 || STOPPING&lt;br /&gt;
|-&lt;br /&gt;
| 6 || ENDED&lt;br /&gt;
|-&lt;br /&gt;
| 7 || ERROR&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Test for ENDED=6 to catch end of playback. Checking for STOPPING=5 is NOT ENOUGH. &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.rate&#039;&#039;&#039;: input speed given as float (1.0 for normal speed, 0.5 for half speed, 2.0 for twice as fast, etc.).&lt;br /&gt;
&lt;br /&gt;
 rate &amp;amp;gt; 1             &amp;amp;nbsp;: is fastforward&lt;br /&gt;
 rate &amp;amp;gt; 0 and rate &amp;amp;lt; 1&amp;amp;nbsp;: is slow motion&lt;br /&gt;
 rate &amp;amp;lt; 0             &amp;amp;nbsp;: is rewind&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Playlist object ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.itemCount&#039;&#039;&#039;: number that returns the amount of items currently in the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]]) &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.isPlaying&#039;&#039;&#039;: a boolean that returns true if the current playlist item is playing and false when it is not playing &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items&#039;&#039;&#039;: return the playlist items collection, see [[#Playlist_items_object|Playlist items]]&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl)&#039;&#039;&#039;: add a playlist item as [[MRL]]. The MRL must be given as a string. Returns a number as an item identifier in playlist (this is not a position in playlist). &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl,name,options)&#039;&#039;&#039;: add a playlist item as MRL, with metaname &#039;name&#039; and options &#039;options&#039;. options are text arguments which can be provided either as a single string containing space separated values, akin to VLC command line, or as an array of string values. Returns a number as an item identifier in playlist (this is not a position in playlist).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
var options = new Array(&amp;quot;:aspect-ratio=4:3&amp;quot;, &amp;quot;--rtsp-tcp&amp;quot;);&lt;br /&gt;
var id = vlc.playlist.add(&amp;quot;rtsp://servername/item/to/play&amp;quot;, &amp;quot;fancy name&amp;quot;, options);&lt;br /&gt;
vlc.playlist.playItem(id);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.play()&#039;&#039;&#039;: start playing the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.playItem(number)&#039;&#039;&#039;: start playing the item whose identifier is number &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.pause()&#039;&#039;&#039;: pause the current playlist item&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.togglePause()&#039;&#039;&#039;: toggle the pause state for the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.stop()&#039;&#039;&#039;: stop playing the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.next()&#039;&#039;&#039;: iterate to the next playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.prev()&#039;&#039;&#039;: iterate to the previous playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]]) &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.removeItem(number)&#039;&#039;&#039;: remove the item from playlist whose identifier is number &amp;lt;!-- (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() ) --&amp;gt; (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]])&lt;br /&gt;
&lt;br /&gt;
=== Playlist items object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.count&#039;&#039;&#039;: number of items currently in the playlist&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist. If a movie is playing, it stop. Note that when this method returns, playlist may not have been entirely been cleared as this operation is performed asynchronously; use the &#039;&#039;count&#039;&#039; property to verify/wait until the playlist is empty. &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.remove(number)&#039;&#039;&#039;: remove the item whose identifier is number from playlist. (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() )&lt;br /&gt;
&lt;br /&gt;
== Subtitle object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.count&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) returns the number of subtitle available.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.track&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.description(int i)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) give the i-th subtitle name. 0 correspond to disable and 1 to the first subtitle.&lt;br /&gt;
&lt;br /&gt;
== Video object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.width&#039;&#039;&#039;: returns the horizontal size of the video &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.height&#039;&#039;&#039;: returns the vertical size of the video&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.fullscreen&#039;&#039;&#039;: when set to true the video will be displayed in fullscreen mode, when set to false the video will be shown inside the video output size. The property takes a boolean as input. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.aspectRatio&#039;&#039;&#039;: get and set the aspect ratio to use in the video screen. The property takes a string as input value. Typical values are: &amp;quot;1:1&amp;quot;, &amp;quot;4:3&amp;quot;, &amp;quot;16:9&amp;quot;, &amp;quot;16:10&amp;quot;, &amp;quot;221:100&amp;quot; and &amp;quot;5:4&amp;quot; &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.subtitle&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6a) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.teletext&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 0.9.0) get and set teletext page to show on the video stream. This will only work if a teletext elementary stream is available in the video stream. The property takes an integer as input value [0..999] for indicating the teletext page to view, setting the value to 0 means hide teletext. On error it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleFullscreen()&#039;&#039;&#039;: toggle the fullscreen mode based on the previous setting &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleTeletext()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 0.9.0) toggle the teletext page to overlay transparent or not, based on the previous setting&lt;br /&gt;
&lt;br /&gt;
=== Deinterlace Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.deinterlace.enable(&amp;quot;my_mode&amp;quot;)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable deinterlacing with my_mode. You can enable it with &amp;quot;blend&amp;quot;, &amp;quot;bob&amp;quot;, &amp;quot;discard&amp;quot;, &amp;quot;linear&amp;quot;, &amp;quot;mean&amp;quot;, &amp;quot;x&amp;quot;, &amp;quot;yadif&amp;quot; or &amp;quot;yadif2x&amp;quot; mode. Enabling too soon deinterlacing may cause some problems. You have to wait that all variable are available before enabling it. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.deinterlace.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable deinterlacing.&lt;br /&gt;
&lt;br /&gt;
=== Marquee Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.text&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display my text on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.color&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text color. val is the new color to use (WHITE=0x000000, BLACK=0xFFFFFF, RED=0xFF0000, GREEN=0x00FF00, BLUE=0x0000FF...). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.opacity&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text opacity, val is defined from 0 (completely transparent) to 255 (completely opaque). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.position&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text position (CENTER=0, LEFT=1, RIGHT=2, TOP=4, TOP-LEFT=5, TOP-RIGHT=6, BOTTOM=8, BOTTOM-LEFT=9, BOTTOM_RIGHT=10). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.refresh&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the marquee refresh period. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.size&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) val define the new size for the text displayed on the screen. If the text is bigger than the screen then the text is not displayed. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.timeout&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the timeout value. val is defined in ms, but 0 value correspond to unlimited. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.x&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change text abscissa. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.y&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change text ordinate.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.enable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable marquee filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable marquee filter.&lt;br /&gt;
&lt;br /&gt;
Some problems may happen (option like color or text will not be applied) because of the VLC asynchronous functioning. To avoid it, after enabling marquee, you have to wait a little time before changing an option. But it should be fixed by the new vout implementation. &lt;br /&gt;
&lt;br /&gt;
NOTE: [http://forum.videolan.org/viewtopic.php?f=16&amp;amp;t=89427#p295058] &lt;br /&gt;
&lt;br /&gt;
=== Logo Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.opacity&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture opacity, val is defined from 0 (completely transparent) to 255 (completely opaque). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.position&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text position (&amp;quot;center&amp;quot;, &amp;quot;left&amp;quot;, &amp;quot;right&amp;quot;, &amp;quot;top&amp;quot;, &amp;quot;top-left&amp;quot;, &amp;quot;top-right&amp;quot;, &amp;quot;bottom&amp;quot;, &amp;quot;bottom-left&amp;quot;, &amp;quot;bottom-right&amp;quot;). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.delay&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display each picture for a duration of 1000 ms (default) before displaying the next picture. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.repeat&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) number of loops for picture animation (-1=continuous, 0=disabled, n=n-times). The default is -1 (continuous). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.x&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the x-offset for displaying the picture counting from top-left on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.y&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the y-offset for displaying the picture counting from top-left on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.width&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture width. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.height&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture height.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.enable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable logo video filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable logo video filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.file(&amp;quot;file.png&amp;quot;)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display my file.png as logo on the screen.&lt;br /&gt;
&lt;br /&gt;
Some problems may happen because of the VLC asynchronous functioning. To avoid it, after enabling logo video filter, you have to wait a little time before changing an option. But it should be fixed by the new vout implementation.&lt;br /&gt;
&lt;br /&gt;
== MediaDescription Object   ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.title&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns title meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.artist&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns artist meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.copyright&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns copyright meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.album&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns album meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.trackNumber&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns trackNumber meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.description&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns description meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.rating&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns rating meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.date&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns date meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.setting&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns setting meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.URL&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns URL meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.language&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns language meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.nowPlaying&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns nowPlaying meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.publisher&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns publisher meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.encodedBy&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns encodedBy meta information field.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.artworkURL&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns artworkURL meta information field.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.trackID&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns trackID meta information field.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== DEPRECATED APIs ==&lt;br /&gt;
=== DEPRECATED: Log object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
This object allows accessing VLC main message logging queue. Typically this queue capacity is very small (no nore than 256 entries) and can easily overflow, therefore messages should be read and cleared as often as possible. &lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.messages&#039;&#039;&#039;: returns the message collection, see [[#Messages_object|Messages object]]&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.verbosity&#039;&#039;&#039;: write number [-1,0,1,2,3] for changing the verbosity level of the log messages; messages whose verbosity is higher than set will be not be logged in the queue. The numbers have the following meaning: -1 disable, 0 info, 1 error, 2 warning, 3 debug.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Messages object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;messages.count&#039;&#039;&#039;: returns number of messages in the log&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;messages.clear()&#039;&#039;&#039;: clear the current log buffer. It should be called as frequently as possible to not overflow the message queue. Call this method after the log messages of interest are read. &lt;br /&gt;
*&#039;&#039;&#039;messages.iterator()&#039;&#039;&#039;: creates and returns an iterator object, used to iterate over the messages in the log. &#039;&#039;&#039;Don&#039;t clear the log buffer while holding an iterator object.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Messages Iterator object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iterator.hasNext&#039;&#039;&#039;: returns a boolean that indicates whether &#039;&#039;vlc.log.messages.next()&#039;&#039; will return the next message.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iterator.next()&#039;&#039;&#039;: returns the next message object in the log, see [[Message object]]&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Message subobject  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;message.severity&#039;&#039;&#039;: number that indicates the severity of the log message (0 = info, 1 = error, 2 = warning, 3 = debug) &lt;br /&gt;
*&#039;&#039;&#039;message.name&#039;&#039;&#039;: name of VLC module that printed the log message (e.g: main, http, directx, etc...) &lt;br /&gt;
*&#039;&#039;&#039;message.type&#039;&#039;&#039;: type of VLC module that printed the log message (eg: input, access, vout, sout, etc...) &lt;br /&gt;
*&#039;&#039;&#039;message.message&#039;&#039;&#039;: the message text&lt;br /&gt;
&lt;br /&gt;
{{Documentation}} &lt;br /&gt;
&lt;br /&gt;
[[Category:Embedded]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:WebPlugin&amp;diff=23668</id>
		<title>Documentation:WebPlugin</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:WebPlugin&amp;diff=23668"/>
		<updated>2013-01-02T14:32:47Z</updated>

		<summary type="html">&lt;p&gt;Etix: Indentation &amp;amp; style&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This Documentation speaks about the {{VLC}} Web plugins and how to write pages for it. &lt;br /&gt;
{{RightMenu|documentation play howto toc}} &lt;br /&gt;
&lt;br /&gt;
= Introduction: Building Web pages with Video =&lt;br /&gt;
&lt;br /&gt;
The {{VLC}} webplugins are native browser plugins, similar to Flash or Silverlight plugins and allow playback inside the browser of all the videos that {{VLC}} can read.&lt;br /&gt;
&lt;br /&gt;
Additionally to viewing video on all pages, you can build custom pages that will use the advanced features of the plugin, using Javascript functions to control playback or extract information from the plugin. &lt;br /&gt;
&lt;br /&gt;
There are 2 main plugins: one is ActiveX for IE, the other is NPAPI for the other browsers. They feature the same amount of features.&lt;br /&gt;
&lt;br /&gt;
In older versions, those plugins were very crashy. &#039;&#039;&#039;We URGE YOU&#039;&#039;&#039; to use VLC &#039;&#039;&#039;2.0.0&#039;&#039;&#039; or newer versions.&lt;br /&gt;
&lt;br /&gt;
=== Browsers support ===&lt;br /&gt;
It has been tested with:&lt;br /&gt;
* Mozilla Firefox [[Image:Firefox-logo.png|40x40px]]&lt;br /&gt;
* Internet Explorer [[Image:20101105053305!Internet Explorer 9.png|40x40px]]&lt;br /&gt;
* Safari [[Image:Apple Safari.png|40x40px]]&lt;br /&gt;
* Chrome&lt;br /&gt;
* Konqueror&lt;br /&gt;
* Opera&lt;br /&gt;
&lt;br /&gt;
It has been tested on GNU/Linux, Windows and MacOS.&lt;br /&gt;
&lt;br /&gt;
= Embed tag attributes =&lt;br /&gt;
&lt;br /&gt;
To embed the plugin into a webpage use the following &amp;amp;lt;embed&amp;amp;gt; template: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot; pluginspage=&amp;quot;http://www.videolan.org&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921&amp;quot; codebase=&amp;quot;http://download.videolan.org/pub/videolan/vlc/last/win32/axvlc.cab&amp;quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Required elements ===&lt;br /&gt;
These are &#039;&#039;&#039;required&#039;&#039;&#039; attributes for the &amp;amp;lt;embed&amp;amp;gt; tag: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039;: Specifies the width of the plugin. &lt;br /&gt;
*&#039;&#039;&#039;height&#039;&#039;&#039;: Specifies the height of the plugin. &lt;br /&gt;
*&#039;&#039;&#039;target&#039;&#039;&#039; (or one of these alias: &#039;&#039;&#039;mrl&#039;&#039;&#039;, &#039;&#039;&#039;filename&#039;&#039;&#039;, &#039;&#039;&#039;src&#039;&#039;&#039;): Specifies the source location (URL) of the video to load.&lt;br /&gt;
&lt;br /&gt;
=== Optionnal elements ===&lt;br /&gt;
These are additional attributes for the &amp;amp;lt;embed&amp;amp;gt; tag: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;autoplay&#039;&#039;&#039;, &#039;&#039;&#039;autostart&#039;&#039;&#039;: Specifies whether the plugin starts playing on load. Default: &#039;&#039;true&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;allowfullscreen&#039;&#039;&#039;: (since VLC version 1.2.0) Specifies whether the user can switch into fullscreen mode. Default: &#039;&#039;true&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;windowless&#039;&#039;&#039;: (since VLC version 2.0.6) Draw the video on a window-less (non-accelerated) surface and allow styling (CSS overlay, 3D transformations, and much more). Default: &#039;&#039;false&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;mute&#039;&#039;&#039;: Specifies whether the audio volume is initially muted. Default: &#039;&#039;false&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;loop&#039;&#039;&#039;, &#039;&#039;&#039;autoloop&#039;&#039;&#039;: Specifies whether the video loops on end. Default: &#039;&#039;false&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;toolbar&#039;&#039;&#039;: Specifies whether the toolbar is shown by default. Default: &#039;&#039;true&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039;: Specifies the background color of the video player. Default: &#039;&#039;#000000&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Normal DOM elements ===&lt;br /&gt;
*&#039;&#039;&#039;id&#039;&#039;&#039;: DOM id&lt;br /&gt;
*&#039;&#039;&#039;name&#039;&#039;&#039;: DOM name&lt;br /&gt;
&lt;br /&gt;
= Javascript API description  =&lt;br /&gt;
&lt;br /&gt;
The vlc plugin exports several objects that can be accessed for setting and getting information. When used improperly the API&#039;s will throw an exception that includes a string that explains what happened. For example when asking for vlc.input.length when there is no playlist item playing. &lt;br /&gt;
&lt;br /&gt;
== VLC objects ==&lt;br /&gt;
The vlc plugin knows the following objects: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;audio&#039;&#039;&#039;: Access audio properties. &lt;br /&gt;
*&#039;&#039;&#039;input&#039;&#039;&#039;: Access input properties. &lt;br /&gt;
*&#039;&#039;&#039;playlist&#039;&#039;&#039;: Access playlist properties. &lt;br /&gt;
*&#039;&#039;&#039;subtitle&#039;&#039;&#039;: Access subtitle properties. &lt;br /&gt;
*&#039;&#039;&#039;video&#039;&#039;&#039;: Access video properties. &lt;br /&gt;
**&#039;&#039;&#039;video.marquee&#039;&#039;&#039;: Access marquee video filter properties. &lt;br /&gt;
**&#039;&#039;&#039;video.logo&#039;&#039;&#039;: Access logo video filter properties. &lt;br /&gt;
*&#039;&#039;&#039;mediaDescription&#039;&#039;&#039;: Access media info properties (only available in vlc version &amp;gt;= 2.0.2).&lt;br /&gt;
&lt;br /&gt;
The following are deprecated:&lt;br /&gt;
*&#039;&#039;&#039;log&#039;&#039;&#039;: Access log properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
*&#039;&#039;&#039;messages&#039;&#039;&#039;: Access to log message properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
*&#039;&#039;&#039;iterator&#039;&#039;&#039;: Access to log iterator properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1).&lt;br /&gt;
*&#039;&#039;&#039;message&#039;&#039;&#039;: Access to log message properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
The following JavaScript code shows howto get a reference to the vlc plugin. This reference can then be used to access the objects of the vlc plugin. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;VLC Mozilla plugin test page&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot; pluginspage=&amp;quot;http://www.videolan.org&amp;quot;&lt;br /&gt;
       width=&amp;quot;640&amp;quot;&lt;br /&gt;
       height=&amp;quot;480&amp;quot;&lt;br /&gt;
       id=&amp;quot;vlc&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/embed&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;Javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
var vlc = document.getElementById(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
vlc.audio.toggleMute();&lt;br /&gt;
//!--&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Root object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;VersionInfo&#039;&#039;&#039;: returns version information string&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.versionInfo()&#039;&#039;&#039;: returns version information string (same as VersionInfo)&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.addEventListener(eventname, callback, bubble)&#039;&#039;&#039;: (only for Mozilla) add a listener for mentioned event name, callback expects a function and bubble influences the order of eventhandling by JS (usually it is set to false). &lt;br /&gt;
*&#039;&#039;&#039;vlc.removeEventListener(eventname, callback, bubble)&#039;&#039;&#039;: (only for Mozilla) remove listener for mentioned event name, callback expects a function and bubble influences the order of eventhandling by JS (usually it is set to false).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.attachEvent(eventname, callback)&#039;&#039;&#039;: (only for ActiveX) add listener for mentioned event name, callback expects a function &lt;br /&gt;
*&#039;&#039;&#039;vlc.removeEvent(eventname, callback)&#039;&#039;&#039;: (only for ActiveX) remove listener for mentioned event name, callback expects a function&lt;br /&gt;
&lt;br /&gt;
events &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerNothingSpecial&#039;&#039;&#039;: vlc is in idle state doing nothing but waiting for a command to be issued &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerOpening&#039;&#039;&#039;: vlc is opening an media resource locator (MRL) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerBuffering&#039;&#039;&#039;: vlc is buffering &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPlaying&#039;&#039;&#039;: vlc is playing a media &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPaused&#039;&#039;&#039;: vlc is in paused state &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerForward&#039;&#039;&#039;: vlc is fastforwarding through the media (works only when an input supports forward playback) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerBackward&#039;&#039;&#039;: vlc is going backwards through the media (works only when an input supports backwards playback) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerEncounteredError&#039;&#039;&#039;: vlc has encountered an error and is unable to continue &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerEndReached&#039;&#039;&#039;: vlc has reached the end of current playlist &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerTimeChanged&#039;&#039;&#039;: time has changed &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPositionChanged&#039;&#039;&#039;: media position has changed &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerSeekableChanged&#039;&#039;&#039;: media seekable flag has changed (true means media is seekable, false means it is not) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPausableChanged&#039;&#039;&#039;: media pausable flag has changed (true means media is pauseable, false means it is not)&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
The following code snippet provides easy functions to register and unregister event callbacks on all supported platforms (currently only Linux mozilla based browsers and windows activeX objects for Internet Explorer). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
function registerVLCEvent(event, handler) {&lt;br /&gt;
    var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
    if (vlc) {&lt;br /&gt;
        if (vlc.attachEvent) {&lt;br /&gt;
            // Microsoft&lt;br /&gt;
            vlc.attachEvent (event, handler);&lt;br /&gt;
    } else if (vlc.addEventListener) {&lt;br /&gt;
        // Mozilla: DOM level 2&lt;br /&gt;
        vlc.addEventListener (event, handler, false);&lt;br /&gt;
    } else {&lt;br /&gt;
        // DOM level 0&lt;br /&gt;
        vlc[&amp;quot;on&amp;quot; + event] = handler;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
// stop listening to event&lt;br /&gt;
function unregisterVLCEvent(event, handler) {&lt;br /&gt;
    var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
    if (vlc) {&lt;br /&gt;
        if (vlc.detachEvent) {&lt;br /&gt;
            // Microsoft&lt;br /&gt;
            vlc.detachEvent (event, handler);&lt;br /&gt;
    } else if (vlc.removeEventListener) {&lt;br /&gt;
        // Mozilla: DOM level 2&lt;br /&gt;
        vlc.removeEventListener (event, handler, false);&lt;br /&gt;
    } else {&lt;br /&gt;
        // DOM level 0&lt;br /&gt;
        vlc[&amp;quot;on&amp;quot; + event] = null;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
// event callback function for testing&lt;br /&gt;
function handleEvents(event) {&lt;br /&gt;
    if (!event)&lt;br /&gt;
        event = window.event; // IE&lt;br /&gt;
    if (event.target) {&lt;br /&gt;
        // Netscape based browser&lt;br /&gt;
        targ = event.target;&lt;br /&gt;
} else if (event.srcElement) {&lt;br /&gt;
    // ActiveX&lt;br /&gt;
    targ = event.srcElement;&lt;br /&gt;
} else {&lt;br /&gt;
    // No event object, just the value&lt;br /&gt;
    alert(&amp;quot;Event value&amp;quot; + event );&lt;br /&gt;
    return;&lt;br /&gt;
}&lt;br /&gt;
if (targ.nodeType == 3) // defeat Safari bug&lt;br /&gt;
    targ = targ.parentNode;&lt;br /&gt;
    alert(&amp;quot;Event &amp;quot; + event.type + &amp;quot; has fired from &amp;quot; + targ );&lt;br /&gt;
}&lt;br /&gt;
// handle mouse grab event from video filter&lt;br /&gt;
function handleMouseGrab(event,X,Y) {&lt;br /&gt;
    if (!event)&lt;br /&gt;
        event = window.event; // IE&lt;br /&gt;
        alert(&amp;quot;new position (&amp;quot; + X + &amp;quot;,&amp;quot; + Y + &amp;quot;)&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
// Register a bunch of callbacks.&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerNothingSpecial&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerOpening&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerBuffering&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerPlaying&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerPaused&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerForward&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerBackward&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerEncounteredError&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerEndReached&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerTimeChanged&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerPositionChanged&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerSeekableChanged&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerPausableChanged&#039;, handleEvents);&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Audio object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.count&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) returns the number of audio track available.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.mute&#039;&#039;&#039;: boolean value to mute and unmute the audio. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.volume&#039;&#039;&#039;: a value between [0-200] which indicates a percentage of the volume. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.track&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6) a value between [1-65535] which indicates the audio track to play or that is playing. a value of 0 means the audio is/will be disabled. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.channel&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6) integer value between [1-5] that indicates which audio channel mode is used, values can be: &amp;quot;1=stereo&amp;quot;, &amp;quot;2=reverse stereo&amp;quot;, &amp;quot;3=left&amp;quot;, &amp;quot;4=right&amp;quot;, &amp;quot;5=dolby&amp;quot;. Use vlc.audio.channel to check if setting of the audio channel mode has succeeded.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.toggleMute()&#039;&#039;&#039;: boolean toggle that mutes and unmutes the audio based upon the previous state. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.description(int i)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) give the i-th audio track name. 0 corresponds to disable and 1 to the first audio track.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot; line&amp;gt;&lt;br /&gt;
Audio Channel:&lt;br /&gt;
&amp;lt;select readonly onChange=&#039;doAudioChannel(this.value)&#039;&amp;gt;&lt;br /&gt;
&amp;lt;option value=1&amp;gt;Stereo&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=2&amp;gt;Reverse stereo&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=3&amp;gt;Left&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=4&amp;gt;Right&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=5&amp;gt;Dolby&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;/select&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
function doAudioChannel(value)&lt;br /&gt;
{&lt;br /&gt;
var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
vlc.audio.channel = parseInt(value);&lt;br /&gt;
alert(vlc.audio.channel);&lt;br /&gt;
};&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Input object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.length&#039;&#039;&#039;: length of the input file in number of milliseconds. 0 is returned for &#039;live&#039; streams or clips whose length cannot be determined by VLC. It returns -1 if no input is playing. &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.fps&#039;&#039;&#039;: frames per second returned as a float (typically 60.0, 50.0, 23.976, etc...) &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.hasVout&#039;&#039;&#039;: a boolean that returns true when the video is being displayed, it returns false when video is not displayed&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.position&#039;&#039;&#039;: normalized position in multimedia stream item given as a float value between [0.0 - 1.0] &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.time&#039;&#039;&#039;: the absolute position in time given in milliseconds, this property can be used to seek through the stream&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;!-- absolute seek in stream&amp;amp;nbsp;!--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = &amp;amp;lt;absolute seek&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!-- relative seek in stream&amp;amp;nbsp;!--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = vlc.input.time + &amp;amp;lt;relative seek&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.state&#039;&#039;&#039;: current state of the input chain given as enumeration (IDLE=0, OPENING=1, BUFFERING=2, PLAYING=3, PAUSED=4, STOPPING=5, ENDED=6, ERROR=7). Note: Test for ENDED=6 to catch end of playback. Checking for STOPPING=5 is NOT ENOUGH. &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.rate&#039;&#039;&#039;: input speed given as float (1.0 for normal speed, 0.5 for half speed, 2.0 for twice as fast, etc.).&lt;br /&gt;
&lt;br /&gt;
 rate &amp;amp;gt; 1             &amp;amp;nbsp;: is fastforward&lt;br /&gt;
 rate &amp;amp;gt; 0 and rate &amp;amp;lt; 1&amp;amp;nbsp;: is slow motion&lt;br /&gt;
 rate &amp;amp;lt; 0             &amp;amp;nbsp;: is rewind&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Playlist object ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.itemCount&#039;&#039;&#039;: number that returns the amount of items currently in the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]]) &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.isPlaying&#039;&#039;&#039;: a boolean that returns true if the current playlist item is playing and false when it is not playing &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items&#039;&#039;&#039;: return the playlist items collection, see [[#Playlist_items_object|Playlist items]]&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl)&#039;&#039;&#039;: add a playlist item as [[MRL]]. The MRL must be given as a string. Returns a number as an item identifier in playlist (this is not a position in playlist). &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl,name,options)&#039;&#039;&#039;: add a playlist item as MRL, with metaname &#039;name&#039; and options &#039;options&#039;. options are text arguments which can be provided either as a single string containing space separated values, akin to VLC command line, or as an array of string values. Returns a number as an item identifier in playlist (this is not a position in playlist).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
var options = new Array(&amp;quot;:aspect-ratio=4:3&amp;quot;, &amp;quot;--rtsp-tcp&amp;quot;);&lt;br /&gt;
var id = vlc.playlist.add(&amp;quot;rtsp://servername/item/to/play&amp;quot;, &amp;quot;fancy name&amp;quot;, options);&lt;br /&gt;
vlc.playlist.playItem(id);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.play()&#039;&#039;&#039;: start playing the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.playItem(number)&#039;&#039;&#039;: start playing the item whose identifier is number &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.pause()&#039;&#039;&#039;: pause the current playlist item&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.togglePause()&#039;&#039;&#039;: toggle the pause state for the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.stop()&#039;&#039;&#039;: stop playing the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.next()&#039;&#039;&#039;: iterate to the next playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.prev()&#039;&#039;&#039;: iterate to the previous playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]]) &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.removeItem(number)&#039;&#039;&#039;: remove the item from playlist whose identifier is number &amp;lt;!-- (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() ) --&amp;gt; (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]])&lt;br /&gt;
&lt;br /&gt;
=== Playlist items object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.count&#039;&#039;&#039;: number of items currently in the playlist&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist. If a movie is playing, it stop. Note that when this method returns, playlist may not have been entirely been cleared as this operation is performed asynchronously; use the &#039;&#039;count&#039;&#039; property to verify/wait until the playlist is empty. &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.remove(number)&#039;&#039;&#039;: remove the item whose identifier is number from playlist. (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() )&lt;br /&gt;
&lt;br /&gt;
== Subtitle object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.count&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) returns the number of subtitle available.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.track&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.description(int i)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) give the i-th subtitle name. 0 correspond to disable and 1 to the first subtitle.&lt;br /&gt;
&lt;br /&gt;
== Video object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.width&#039;&#039;&#039;: returns the horizontal size of the video &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.height&#039;&#039;&#039;: returns the vertical size of the video&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.fullscreen&#039;&#039;&#039;: when set to true the video will be displayed in fullscreen mode, when set to false the video will be shown inside the video output size. The property takes a boolean as input. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.aspectRatio&#039;&#039;&#039;: get and set the aspect ratio to use in the video screen. The property takes a string as input value. Typical values are: &amp;quot;1:1&amp;quot;, &amp;quot;4:3&amp;quot;, &amp;quot;16:9&amp;quot;, &amp;quot;16:10&amp;quot;, &amp;quot;221:100&amp;quot; and &amp;quot;5:4&amp;quot; &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.subtitle&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6a) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.teletext&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 0.9.0) get and set teletext page to show on the video stream. This will only work if a teletext elementary stream is available in the video stream. The property takes an integer as input value [0..999] for indicating the teletext page to view, setting the value to 0 means hide teletext. On error it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleFullscreen()&#039;&#039;&#039;: toggle the fullscreen mode based on the previous setting &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleTeletext()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 0.9.0) toggle the teletext page to overlay transparent or not, based on the previous setting&lt;br /&gt;
&lt;br /&gt;
=== Deinterlace Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.deinterlace.enable(&amp;quot;my_mode&amp;quot;)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable deinterlacing with my_mode. You can enable it with &amp;quot;blend&amp;quot;, &amp;quot;bob&amp;quot;, &amp;quot;discard&amp;quot;, &amp;quot;linear&amp;quot;, &amp;quot;mean&amp;quot;, &amp;quot;x&amp;quot;, &amp;quot;yadif&amp;quot; or &amp;quot;yadif2x&amp;quot; mode. Enabling too soon deinterlacing may cause some problems. You have to wait that all variable are available before enabling it. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.deinterlace.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable deinterlacing.&lt;br /&gt;
&lt;br /&gt;
=== Marquee Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.text&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display my text on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.color&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text color. val is the new color to use (WHITE=0x000000, BLACK=0xFFFFFF, RED=0xFF0000, GREEN=0x00FF00, BLUE=0x0000FF...). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.opacity&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text opacity, val is defined from 0 (completely transparent) to 255 (completely opaque). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.position&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text position (CENTER=0, LEFT=1, RIGHT=2, TOP=4, TOP-LEFT=5, TOP-RIGHT=6, BOTTOM=8, BOTTOM-LEFT=9, BOTTOM_RIGHT=10). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.refresh&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the marquee refresh period. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.size&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) val define the new size for the text displayed on the screen. If the text is bigger than the screen then the text is not displayed. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.timeout&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the timeout value. val is defined in ms, but 0 value correspond to unlimited. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.x&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change text abscissa. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.y&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change text ordinate.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.enable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable marquee filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable marquee filter.&lt;br /&gt;
&lt;br /&gt;
Some problems may happen (option like color or text will not be applied) because of the VLC asynchronous functioning. To avoid it, after enabling marquee, you have to wait a little time before changing an option. But it should be fixed by the new vout implementation. &lt;br /&gt;
&lt;br /&gt;
NOTE: [http://forum.videolan.org/viewtopic.php?f=16&amp;amp;t=89427#p295058] &lt;br /&gt;
&lt;br /&gt;
=== Logo Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.opacity&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture opacity, val is defined from 0 (completely transparent) to 255 (completely opaque). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.position&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text position (&amp;quot;center&amp;quot;, &amp;quot;left&amp;quot;, &amp;quot;right&amp;quot;, &amp;quot;top&amp;quot;, &amp;quot;top-left&amp;quot;, &amp;quot;top-right&amp;quot;, &amp;quot;bottom&amp;quot;, &amp;quot;bottom-left&amp;quot;, &amp;quot;bottom-right&amp;quot;). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.delay&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display each picture for a duration of 1000 ms (default) before displaying the next picture. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.repeat&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) number of loops for picture animation (-1=continuous, 0=disabled, n=n-times). The default is -1 (continuous). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.x&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the x-offset for displaying the picture counting from top-left on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.y&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the y-offset for displaying the picture counting from top-left on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.width&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture width. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.height&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture height.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.enable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable logo video filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable logo video filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.file(&amp;quot;file.png&amp;quot;)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display my file.png as logo on the screen.&lt;br /&gt;
&lt;br /&gt;
Some problems may happen because of the VLC asynchronous functioning. To avoid it, after enabling logo video filter, you have to wait a little time before changing an option. But it should be fixed by the new vout implementation.&lt;br /&gt;
&lt;br /&gt;
== MediaDescription Object   ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.title&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns title meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.artist&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns artist meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.copyright&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns copyright meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.album&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns album meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.trackNumber&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns trackNumber meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.description&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns description meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.rating&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns rating meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.date&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns date meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.setting&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns setting meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.URL&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns URL meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.language&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns language meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.nowPlaying&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns nowPlaying meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.publisher&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns publisher meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.encodedBy&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns encodedBy meta information field.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.artworkURL&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns artworkURL meta information field.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.trackID&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns trackID meta information field.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== DEPRECATED APIs ==&lt;br /&gt;
=== DEPRECATED: Log object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
This object allows accessing VLC main message logging queue. Typically this queue capacity is very small (no nore than 256 entries) and can easily overflow, therefore messages should be read and cleared as often as possible. &lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.messages&#039;&#039;&#039;: returns the message collection, see [[#Messages_object|Messages object]]&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.verbosity&#039;&#039;&#039;: write number [-1,0,1,2,3] for changing the verbosity level of the log messages; messages whose verbosity is higher than set will be not be logged in the queue. The numbers have the following meaning: -1 disable, 0 info, 1 error, 2 warning, 3 debug.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Messages object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;messages.count&#039;&#039;&#039;: returns number of messages in the log&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;messages.clear()&#039;&#039;&#039;: clear the current log buffer. It should be called as frequently as possible to not overflow the message queue. Call this method after the log messages of interest are read. &lt;br /&gt;
*&#039;&#039;&#039;messages.iterator()&#039;&#039;&#039;: creates and returns an iterator object, used to iterate over the messages in the log. &#039;&#039;&#039;Don&#039;t clear the log buffer while holding an iterator object.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Messages Iterator object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iterator.hasNext&#039;&#039;&#039;: returns a boolean that indicates whether &#039;&#039;vlc.log.messages.next()&#039;&#039; will return the next message.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iterator.next()&#039;&#039;&#039;: returns the next message object in the log, see [[Message object]]&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Message subobject  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;message.severity&#039;&#039;&#039;: number that indicates the severity of the log message (0 = info, 1 = error, 2 = warning, 3 = debug) &lt;br /&gt;
*&#039;&#039;&#039;message.name&#039;&#039;&#039;: name of VLC module that printed the log message (e.g: main, http, directx, etc...) &lt;br /&gt;
*&#039;&#039;&#039;message.type&#039;&#039;&#039;: type of VLC module that printed the log message (eg: input, access, vout, sout, etc...) &lt;br /&gt;
*&#039;&#039;&#039;message.message&#039;&#039;&#039;: the message text&lt;br /&gt;
&lt;br /&gt;
{{Documentation}} &lt;br /&gt;
&lt;br /&gt;
[[Category:Embedded]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:WebPlugin&amp;diff=23667</id>
		<title>Documentation:WebPlugin</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:WebPlugin&amp;diff=23667"/>
		<updated>2013-01-02T14:29:03Z</updated>

		<summary type="html">&lt;p&gt;Etix: Fix style&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This Documentation speaks about the {{VLC}} Web plugins and how to write pages for it. &lt;br /&gt;
{{RightMenu|documentation play howto toc}} &lt;br /&gt;
&lt;br /&gt;
= Introduction: Building Web pages with Video =&lt;br /&gt;
&lt;br /&gt;
The {{VLC}} webplugins are native browser plugins, similar to Flash or Silverlight plugins and allow playback inside the browser of all the videos that {{VLC}} can read.&lt;br /&gt;
&lt;br /&gt;
Additionally to viewing video on all pages, you can build custom pages that will use the advanced features of the plugin, using Javascript functions to control playback or extract information from the plugin. &lt;br /&gt;
&lt;br /&gt;
There are 2 main plugins: one is ActiveX for IE, the other is NPAPI for the other browsers. They feature the same amount of features.&lt;br /&gt;
&lt;br /&gt;
In older versions, those plugins were very crashy. &#039;&#039;&#039;We URGE YOU&#039;&#039;&#039; to use VLC &#039;&#039;&#039;2.0.0&#039;&#039;&#039; or newer versions.&lt;br /&gt;
&lt;br /&gt;
=== Browsers support ===&lt;br /&gt;
It has been tested with:&lt;br /&gt;
* Mozilla Firefox [[Image:Firefox-logo.png|40x40px]]&lt;br /&gt;
* Internet Explorer [[Image:20101105053305!Internet Explorer 9.png|40x40px]]&lt;br /&gt;
* Safari [[Image:Apple Safari.png|40x40px]]&lt;br /&gt;
* Chrome&lt;br /&gt;
* Konqueror&lt;br /&gt;
* Opera&lt;br /&gt;
&lt;br /&gt;
It has been tested on GNU/Linux, Windows and MacOS.&lt;br /&gt;
&lt;br /&gt;
= Embed tag attributes =&lt;br /&gt;
&lt;br /&gt;
To embed the plugin into a webpage use the following &amp;amp;lt;embed&amp;amp;gt; template: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot; pluginspage=&amp;quot;http://www.videolan.org&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921&amp;quot; codebase=&amp;quot;http://download.videolan.org/pub/videolan/vlc/last/win32/axvlc.cab&amp;quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Required elements ===&lt;br /&gt;
These are &#039;&#039;&#039;required&#039;&#039;&#039; attributes for the &amp;amp;lt;embed&amp;amp;gt; tag: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039;: Specifies the width of the plugin. &lt;br /&gt;
*&#039;&#039;&#039;height&#039;&#039;&#039;: Specifies the height of the plugin. &lt;br /&gt;
*&#039;&#039;&#039;target&#039;&#039;&#039; (or one of these alias: &#039;&#039;&#039;mrl&#039;&#039;&#039;, &#039;&#039;&#039;filename&#039;&#039;&#039;, &#039;&#039;&#039;src&#039;&#039;&#039;): Specifies the source location (URL) of the video to load.&lt;br /&gt;
&lt;br /&gt;
=== Optionnal elements ===&lt;br /&gt;
These are additional attributes for the &amp;amp;lt;embed&amp;amp;gt; tag: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;autoplay&#039;&#039;&#039;, &#039;&#039;&#039;autostart&#039;&#039;&#039;: Specifies whether the plugin starts playing on load. Default: &#039;&#039;true&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;allowfullscreen&#039;&#039;&#039;: (since VLC version 1.2.0) Specifies whether the user can switch into fullscreen mode. Default: &#039;&#039;true&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;windowless&#039;&#039;&#039;: (since VLC version 2.0.6) Draw the video on a window-less (non-accelerated) surface and allow styling (CSS overlay, 3D transformations, and much more). Default: &#039;&#039;false&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;mute&#039;&#039;&#039;: Specifies whether the audio volume is initially muted. Default: &#039;&#039;false&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;loop&#039;&#039;&#039;, &#039;&#039;&#039;autoloop&#039;&#039;&#039;: Specifies whether the video loops on end. Default: &#039;&#039;false&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;toolbar&#039;&#039;&#039;: Specifies whether the toolbar is shown by default. Default: &#039;&#039;true&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039;: Specifies the background color of the video player. Default: &#039;&#039;#000000&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Normal DOM elements ===&lt;br /&gt;
*&#039;&#039;&#039;id&#039;&#039;&#039;: DOM id&lt;br /&gt;
*&#039;&#039;&#039;name&#039;&#039;&#039;: DOM name&lt;br /&gt;
&lt;br /&gt;
= Javascript API description  =&lt;br /&gt;
&lt;br /&gt;
The vlc plugin exports several objects that can be accessed for setting and getting information. When used improperly the API&#039;s will throw an exception that includes a string that explains what happened. For example when asking for vlc.input.length when there is no playlist item playing. &lt;br /&gt;
&lt;br /&gt;
== VLC objects ==&lt;br /&gt;
The vlc plugin knows the following objects: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;audio&#039;&#039;&#039;: Access audio properties. &lt;br /&gt;
*&#039;&#039;&#039;input&#039;&#039;&#039;: Access input properties. &lt;br /&gt;
*&#039;&#039;&#039;playlist&#039;&#039;&#039;: Access playlist properties. &lt;br /&gt;
*&#039;&#039;&#039;subtitle&#039;&#039;&#039;: Access subtitle properties. &lt;br /&gt;
*&#039;&#039;&#039;video&#039;&#039;&#039;: Access video properties. &lt;br /&gt;
**&#039;&#039;&#039;video.marquee&#039;&#039;&#039;: Access marquee video filter properties. &lt;br /&gt;
**&#039;&#039;&#039;video.logo&#039;&#039;&#039;: Access logo video filter properties. &lt;br /&gt;
*&#039;&#039;&#039;mediaDescription&#039;&#039;&#039;: Access media info properties (only available in vlc version &amp;gt;= 2.0.2).&lt;br /&gt;
&lt;br /&gt;
The following are deprecated:&lt;br /&gt;
*&#039;&#039;&#039;log&#039;&#039;&#039;: Access log properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
*&#039;&#039;&#039;messages&#039;&#039;&#039;: Access to log message properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
*&#039;&#039;&#039;iterator&#039;&#039;&#039;: Access to log iterator properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1).&lt;br /&gt;
*&#039;&#039;&#039;message&#039;&#039;&#039;: Access to log message properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
The following JavaScript code shows howto get a reference to the vlc plugin. This reference can then be used to access the objects of the vlc plugin. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;VLC Mozilla plugin test page&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot; pluginspage=&amp;quot;http://www.videolan.org&amp;quot;&lt;br /&gt;
       width=&amp;quot;640&amp;quot;&lt;br /&gt;
       height=&amp;quot;480&amp;quot;&lt;br /&gt;
       id=&amp;quot;vlc&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/embed&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;Javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
var vlc = document.getElementById(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
vlc.audio.toggleMute();&lt;br /&gt;
//!--&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Root object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;VersionInfo&#039;&#039;&#039;: returns version information string&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.versionInfo()&#039;&#039;&#039;: returns version information string (same as VersionInfo)&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.addEventListener(eventname, callback, bubble)&#039;&#039;&#039;: (only for Mozilla) add a listener for mentioned event name, callback expects a function and bubble influences the order of eventhandling by JS (usually it is set to false). &lt;br /&gt;
*&#039;&#039;&#039;vlc.removeEventListener(eventname, callback, bubble)&#039;&#039;&#039;: (only for Mozilla) remove listener for mentioned event name, callback expects a function and bubble influences the order of eventhandling by JS (usually it is set to false).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.attachEvent(eventname, callback)&#039;&#039;&#039;: (only for ActiveX) add listener for mentioned event name, callback expects a function &lt;br /&gt;
*&#039;&#039;&#039;vlc.removeEvent(eventname, callback)&#039;&#039;&#039;: (only for ActiveX) remove listener for mentioned event name, callback expects a function&lt;br /&gt;
&lt;br /&gt;
events &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerNothingSpecial&#039;&#039;&#039;: vlc is in idle state doing nothing but waiting for a command to be issued &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerOpening&#039;&#039;&#039;: vlc is opening an media resource locator (MRL) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerBuffering&#039;&#039;&#039;: vlc is buffering &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPlaying&#039;&#039;&#039;: vlc is playing a media &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPaused&#039;&#039;&#039;: vlc is in paused state &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerForward&#039;&#039;&#039;: vlc is fastforwarding through the media (works only when an input supports forward playback) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerBackward&#039;&#039;&#039;: vlc is going backwards through the media (works only when an input supports backwards playback) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerEncounteredError&#039;&#039;&#039;: vlc has encountered an error and is unable to continue &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerEndReached&#039;&#039;&#039;: vlc has reached the end of current playlist &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerTimeChanged&#039;&#039;&#039;: time has changed &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPositionChanged&#039;&#039;&#039;: media position has changed &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerSeekableChanged&#039;&#039;&#039;: media seekable flag has changed (true means media is seekable, false means it is not) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPausableChanged&#039;&#039;&#039;: media pausable flag has changed (true means media is pauseable, false means it is not)&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
The following code snippet provides easy functions to register and unregister event callbacks on all supported platforms (currently only Linux mozilla based browsers and windows activeX objects for Internet Explorer). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
function registerVLCEvent(event, handler)&lt;br /&gt;
{&lt;br /&gt;
var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
if (vlc) {&lt;br /&gt;
    if (vlc.attachEvent) {&lt;br /&gt;
        // Microsoft&lt;br /&gt;
        vlc.attachEvent (event, handler);&lt;br /&gt;
    } else if (vlc.addEventListener) {&lt;br /&gt;
        // Mozilla: DOM level 2&lt;br /&gt;
        vlc.addEventListener (event, handler, false);&lt;br /&gt;
    } else {&lt;br /&gt;
        // DOM level 0&lt;br /&gt;
        vlc[&amp;quot;on&amp;quot; + event] = handler;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
// stop listening to event&lt;br /&gt;
function unregisterVLCEvent(event, handler)&lt;br /&gt;
{&lt;br /&gt;
var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
if (vlc) {&lt;br /&gt;
    if (vlc.detachEvent) {&lt;br /&gt;
        // Microsoft&lt;br /&gt;
        vlc.detachEvent (event, handler);&lt;br /&gt;
    } else if (vlc.removeEventListener) {&lt;br /&gt;
        // Mozilla: DOM level 2&lt;br /&gt;
        vlc.removeEventListener (event, handler, false);&lt;br /&gt;
    } else {&lt;br /&gt;
        // DOM level 0&lt;br /&gt;
        vlc[&amp;quot;on&amp;quot; + event] = null;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
// event callback function for testing&lt;br /&gt;
function handleEvents(event)&lt;br /&gt;
{&lt;br /&gt;
if (!event)&lt;br /&gt;
    event = window.event; // IE&lt;br /&gt;
if (event.target) {&lt;br /&gt;
    // Netscape based browser&lt;br /&gt;
    targ = event.target;&lt;br /&gt;
} else if (event.srcElement) {&lt;br /&gt;
    // ActiveX&lt;br /&gt;
    targ = event.srcElement;&lt;br /&gt;
} else {&lt;br /&gt;
    // No event object, just the value&lt;br /&gt;
    alert(&amp;quot;Event value&amp;quot; + event );&lt;br /&gt;
    return;&lt;br /&gt;
}&lt;br /&gt;
if (targ.nodeType == 3) // defeat Safari bug&lt;br /&gt;
    targ = targ.parentNode;&lt;br /&gt;
alert(&amp;quot;Event &amp;quot; + event.type + &amp;quot; has fired from &amp;quot; + targ );&lt;br /&gt;
}&lt;br /&gt;
// handle mouse grab event from video filter&lt;br /&gt;
function handleMouseGrab(event,X,Y)&lt;br /&gt;
{&lt;br /&gt;
if (!event)&lt;br /&gt;
    event = window.event; // IE&lt;br /&gt;
alert(&amp;quot;new position (&amp;quot; + X + &amp;quot;,&amp;quot; + Y + &amp;quot;)&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
// Register a bunch of callbacks.&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerNothingSpecial&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerOpening&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerBuffering&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerPlaying&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerPaused&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerForward&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerBackward&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerEncounteredError&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerEndReached&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerTimeChanged&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerPositionChanged&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerSeekableChanged&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerPausableChanged&#039;, handleEvents);&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Audio object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.count&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) returns the number of audio track available.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.mute&#039;&#039;&#039;: boolean value to mute and unmute the audio. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.volume&#039;&#039;&#039;: a value between [0-200] which indicates a percentage of the volume. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.track&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6) a value between [1-65535] which indicates the audio track to play or that is playing. a value of 0 means the audio is/will be disabled. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.channel&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6) integer value between [1-5] that indicates which audio channel mode is used, values can be: &amp;quot;1=stereo&amp;quot;, &amp;quot;2=reverse stereo&amp;quot;, &amp;quot;3=left&amp;quot;, &amp;quot;4=right&amp;quot;, &amp;quot;5=dolby&amp;quot;. Use vlc.audio.channel to check if setting of the audio channel mode has succeeded.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.toggleMute()&#039;&#039;&#039;: boolean toggle that mutes and unmutes the audio based upon the previous state. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.description(int i)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) give the i-th audio track name. 0 corresponds to disable and 1 to the first audio track.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot; line&amp;gt;&lt;br /&gt;
Audio Channel:&lt;br /&gt;
&amp;lt;select readonly onChange=&#039;doAudioChannel(this.value)&#039;&amp;gt;&lt;br /&gt;
&amp;lt;option value=1&amp;gt;Stereo&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=2&amp;gt;Reverse stereo&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=3&amp;gt;Left&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=4&amp;gt;Right&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=5&amp;gt;Dolby&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;/select&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
function doAudioChannel(value)&lt;br /&gt;
{&lt;br /&gt;
var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
vlc.audio.channel = parseInt(value);&lt;br /&gt;
alert(vlc.audio.channel);&lt;br /&gt;
};&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Input object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.length&#039;&#039;&#039;: length of the input file in number of milliseconds. 0 is returned for &#039;live&#039; streams or clips whose length cannot be determined by VLC. It returns -1 if no input is playing. &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.fps&#039;&#039;&#039;: frames per second returned as a float (typically 60.0, 50.0, 23.976, etc...) &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.hasVout&#039;&#039;&#039;: a boolean that returns true when the video is being displayed, it returns false when video is not displayed&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.position&#039;&#039;&#039;: normalized position in multimedia stream item given as a float value between [0.0 - 1.0] &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.time&#039;&#039;&#039;: the absolute position in time given in milliseconds, this property can be used to seek through the stream&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;!-- absolute seek in stream&amp;amp;nbsp;!--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = &amp;amp;lt;absolute seek&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!-- relative seek in stream&amp;amp;nbsp;!--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = vlc.input.time + &amp;amp;lt;relative seek&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.state&#039;&#039;&#039;: current state of the input chain given as enumeration (IDLE=0, OPENING=1, BUFFERING=2, PLAYING=3, PAUSED=4, STOPPING=5, ENDED=6, ERROR=7). Note: Test for ENDED=6 to catch end of playback. Checking for STOPPING=5 is NOT ENOUGH. &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.rate&#039;&#039;&#039;: input speed given as float (1.0 for normal speed, 0.5 for half speed, 2.0 for twice as fast, etc.).&lt;br /&gt;
&lt;br /&gt;
 rate &amp;amp;gt; 1             &amp;amp;nbsp;: is fastforward&lt;br /&gt;
 rate &amp;amp;gt; 0 and rate &amp;amp;lt; 1&amp;amp;nbsp;: is slow motion&lt;br /&gt;
 rate &amp;amp;lt; 0             &amp;amp;nbsp;: is rewind&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Playlist object ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.itemCount&#039;&#039;&#039;: number that returns the amount of items currently in the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]]) &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.isPlaying&#039;&#039;&#039;: a boolean that returns true if the current playlist item is playing and false when it is not playing &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items&#039;&#039;&#039;: return the playlist items collection, see [[#Playlist_items_object|Playlist items]]&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl)&#039;&#039;&#039;: add a playlist item as [[MRL]]. The MRL must be given as a string. Returns a number as an item identifier in playlist (this is not a position in playlist). &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl,name,options)&#039;&#039;&#039;: add a playlist item as MRL, with metaname &#039;name&#039; and options &#039;options&#039;. options are text arguments which can be provided either as a single string containing space separated values, akin to VLC command line, or as an array of string values. Returns a number as an item identifier in playlist (this is not a position in playlist).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
var options = new Array(&amp;quot;:aspect-ratio=4:3&amp;quot;, &amp;quot;--rtsp-tcp&amp;quot;);&lt;br /&gt;
var id = vlc.playlist.add(&amp;quot;rtsp://servername/item/to/play&amp;quot;, &amp;quot;fancy name&amp;quot;, options);&lt;br /&gt;
vlc.playlist.playItem(id);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.play()&#039;&#039;&#039;: start playing the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.playItem(number)&#039;&#039;&#039;: start playing the item whose identifier is number &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.pause()&#039;&#039;&#039;: pause the current playlist item&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.togglePause()&#039;&#039;&#039;: toggle the pause state for the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.stop()&#039;&#039;&#039;: stop playing the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.next()&#039;&#039;&#039;: iterate to the next playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.prev()&#039;&#039;&#039;: iterate to the previous playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]]) &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.removeItem(number)&#039;&#039;&#039;: remove the item from playlist whose identifier is number &amp;lt;!-- (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() ) --&amp;gt; (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]])&lt;br /&gt;
&lt;br /&gt;
=== Playlist items object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.count&#039;&#039;&#039;: number of items currently in the playlist&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist. If a movie is playing, it stop. Note that when this method returns, playlist may not have been entirely been cleared as this operation is performed asynchronously; use the &#039;&#039;count&#039;&#039; property to verify/wait until the playlist is empty. &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.remove(number)&#039;&#039;&#039;: remove the item whose identifier is number from playlist. (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() )&lt;br /&gt;
&lt;br /&gt;
== Subtitle object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.count&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) returns the number of subtitle available.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.track&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.description(int i)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) give the i-th subtitle name. 0 correspond to disable and 1 to the first subtitle.&lt;br /&gt;
&lt;br /&gt;
== Video object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.width&#039;&#039;&#039;: returns the horizontal size of the video &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.height&#039;&#039;&#039;: returns the vertical size of the video&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.fullscreen&#039;&#039;&#039;: when set to true the video will be displayed in fullscreen mode, when set to false the video will be shown inside the video output size. The property takes a boolean as input. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.aspectRatio&#039;&#039;&#039;: get and set the aspect ratio to use in the video screen. The property takes a string as input value. Typical values are: &amp;quot;1:1&amp;quot;, &amp;quot;4:3&amp;quot;, &amp;quot;16:9&amp;quot;, &amp;quot;16:10&amp;quot;, &amp;quot;221:100&amp;quot; and &amp;quot;5:4&amp;quot; &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.subtitle&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6a) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.teletext&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 0.9.0) get and set teletext page to show on the video stream. This will only work if a teletext elementary stream is available in the video stream. The property takes an integer as input value [0..999] for indicating the teletext page to view, setting the value to 0 means hide teletext. On error it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleFullscreen()&#039;&#039;&#039;: toggle the fullscreen mode based on the previous setting &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleTeletext()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 0.9.0) toggle the teletext page to overlay transparent or not, based on the previous setting&lt;br /&gt;
&lt;br /&gt;
=== Deinterlace Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.deinterlace.enable(&amp;quot;my_mode&amp;quot;)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable deinterlacing with my_mode. You can enable it with &amp;quot;blend&amp;quot;, &amp;quot;bob&amp;quot;, &amp;quot;discard&amp;quot;, &amp;quot;linear&amp;quot;, &amp;quot;mean&amp;quot;, &amp;quot;x&amp;quot;, &amp;quot;yadif&amp;quot; or &amp;quot;yadif2x&amp;quot; mode. Enabling too soon deinterlacing may cause some problems. You have to wait that all variable are available before enabling it. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.deinterlace.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable deinterlacing.&lt;br /&gt;
&lt;br /&gt;
=== Marquee Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.text&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display my text on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.color&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text color. val is the new color to use (WHITE=0x000000, BLACK=0xFFFFFF, RED=0xFF0000, GREEN=0x00FF00, BLUE=0x0000FF...). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.opacity&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text opacity, val is defined from 0 (completely transparent) to 255 (completely opaque). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.position&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text position (CENTER=0, LEFT=1, RIGHT=2, TOP=4, TOP-LEFT=5, TOP-RIGHT=6, BOTTOM=8, BOTTOM-LEFT=9, BOTTOM_RIGHT=10). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.refresh&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the marquee refresh period. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.size&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) val define the new size for the text displayed on the screen. If the text is bigger than the screen then the text is not displayed. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.timeout&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the timeout value. val is defined in ms, but 0 value correspond to unlimited. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.x&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change text abscissa. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.y&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change text ordinate.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.enable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable marquee filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable marquee filter.&lt;br /&gt;
&lt;br /&gt;
Some problems may happen (option like color or text will not be applied) because of the VLC asynchronous functioning. To avoid it, after enabling marquee, you have to wait a little time before changing an option. But it should be fixed by the new vout implementation. &lt;br /&gt;
&lt;br /&gt;
NOTE: [http://forum.videolan.org/viewtopic.php?f=16&amp;amp;t=89427#p295058] &lt;br /&gt;
&lt;br /&gt;
=== Logo Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.opacity&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture opacity, val is defined from 0 (completely transparent) to 255 (completely opaque). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.position&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text position (&amp;quot;center&amp;quot;, &amp;quot;left&amp;quot;, &amp;quot;right&amp;quot;, &amp;quot;top&amp;quot;, &amp;quot;top-left&amp;quot;, &amp;quot;top-right&amp;quot;, &amp;quot;bottom&amp;quot;, &amp;quot;bottom-left&amp;quot;, &amp;quot;bottom-right&amp;quot;). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.delay&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display each picture for a duration of 1000 ms (default) before displaying the next picture. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.repeat&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) number of loops for picture animation (-1=continuous, 0=disabled, n=n-times). The default is -1 (continuous). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.x&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the x-offset for displaying the picture counting from top-left on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.y&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the y-offset for displaying the picture counting from top-left on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.width&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture width. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.height&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture height.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.enable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable logo video filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable logo video filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.file(&amp;quot;file.png&amp;quot;)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display my file.png as logo on the screen.&lt;br /&gt;
&lt;br /&gt;
Some problems may happen because of the VLC asynchronous functioning. To avoid it, after enabling logo video filter, you have to wait a little time before changing an option. But it should be fixed by the new vout implementation.&lt;br /&gt;
&lt;br /&gt;
== MediaDescription Object   ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.title&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns title meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.artist&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns artist meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.copyright&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns copyright meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.album&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns album meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.trackNumber&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns trackNumber meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.description&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns description meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.rating&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns rating meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.date&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns date meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.setting&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns setting meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.URL&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns URL meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.language&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns language meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.nowPlaying&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns nowPlaying meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.publisher&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns publisher meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.encodedBy&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns encodedBy meta information field.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.artworkURL&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns artworkURL meta information field.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.trackID&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns trackID meta information field.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== DEPRECATED APIs ==&lt;br /&gt;
=== DEPRECATED: Log object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
This object allows accessing VLC main message logging queue. Typically this queue capacity is very small (no nore than 256 entries) and can easily overflow, therefore messages should be read and cleared as often as possible. &lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.messages&#039;&#039;&#039;: returns the message collection, see [[#Messages_object|Messages object]]&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.verbosity&#039;&#039;&#039;: write number [-1,0,1,2,3] for changing the verbosity level of the log messages; messages whose verbosity is higher than set will be not be logged in the queue. The numbers have the following meaning: -1 disable, 0 info, 1 error, 2 warning, 3 debug.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Messages object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;messages.count&#039;&#039;&#039;: returns number of messages in the log&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;messages.clear()&#039;&#039;&#039;: clear the current log buffer. It should be called as frequently as possible to not overflow the message queue. Call this method after the log messages of interest are read. &lt;br /&gt;
*&#039;&#039;&#039;messages.iterator()&#039;&#039;&#039;: creates and returns an iterator object, used to iterate over the messages in the log. &#039;&#039;&#039;Don&#039;t clear the log buffer while holding an iterator object.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Messages Iterator object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iterator.hasNext&#039;&#039;&#039;: returns a boolean that indicates whether &#039;&#039;vlc.log.messages.next()&#039;&#039; will return the next message.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iterator.next()&#039;&#039;&#039;: returns the next message object in the log, see [[Message object]]&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Message subobject  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;message.severity&#039;&#039;&#039;: number that indicates the severity of the log message (0 = info, 1 = error, 2 = warning, 3 = debug) &lt;br /&gt;
*&#039;&#039;&#039;message.name&#039;&#039;&#039;: name of VLC module that printed the log message (e.g: main, http, directx, etc...) &lt;br /&gt;
*&#039;&#039;&#039;message.type&#039;&#039;&#039;: type of VLC module that printed the log message (eg: input, access, vout, sout, etc...) &lt;br /&gt;
*&#039;&#039;&#039;message.message&#039;&#039;&#039;: the message text&lt;br /&gt;
&lt;br /&gt;
{{Documentation}} &lt;br /&gt;
&lt;br /&gt;
[[Category:Embedded]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:WebPlugin&amp;diff=23666</id>
		<title>Documentation:WebPlugin</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:WebPlugin&amp;diff=23666"/>
		<updated>2013-01-02T14:21:20Z</updated>

		<summary type="html">&lt;p&gt;Etix: Typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This Documentation speaks about the {{VLC}} Web plugins and how to write pages for it. &lt;br /&gt;
{{RightMenu|documentation play howto toc}} &lt;br /&gt;
&lt;br /&gt;
= Introduction: Building Web pages with Video =&lt;br /&gt;
&lt;br /&gt;
The {{VLC}} webplugins are native browser plugins, similar to Flash or Silverlight plugins and allow playback inside the browser of all the videos that {{VLC}} can read.&lt;br /&gt;
&lt;br /&gt;
Additionally to viewing video on all pages, you can build custom pages that will use the advanced features of the plugin, using Javascript functions to control playback or extract information from the plugin. &lt;br /&gt;
&lt;br /&gt;
There are 2 main plugins: one is ActiveX for IE, the other is NPAPI for the other browsers. They feature the same amount of features.&lt;br /&gt;
&lt;br /&gt;
In older versions, those plugins were very crashy. &#039;&#039;&#039;We URGE YOU&#039;&#039;&#039; to use VLC &#039;&#039;&#039;2.0.0&#039;&#039;&#039; or newer versions.&lt;br /&gt;
&lt;br /&gt;
=== Browsers support ===&lt;br /&gt;
It has been tested with:&lt;br /&gt;
* Mozilla Firefox [[Image:Firefox-logo.png|40x40px]]&lt;br /&gt;
* Internet Explorer [[Image:20101105053305!Internet Explorer 9.png|40x40px]]&lt;br /&gt;
* Safari [[Image:Apple Safari.png|40x40px]]&lt;br /&gt;
* Chrome&lt;br /&gt;
* Konqueror&lt;br /&gt;
* Opera&lt;br /&gt;
&lt;br /&gt;
It has been tested on GNU/Linux, Windows and MacOS.&lt;br /&gt;
&lt;br /&gt;
= Embed tag attributes =&lt;br /&gt;
&lt;br /&gt;
To embed the plugin into a webpage use the following &amp;amp;lt;embed&amp;amp;gt; template: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot; pluginspage=&amp;quot;http://www.videolan.org&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921&amp;quot; codebase=&amp;quot;http://download.videolan.org/pub/videolan/vlc/last/win32/axvlc.cab&amp;quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Required elements ===&lt;br /&gt;
These are &#039;&#039;&#039;required&#039;&#039;&#039; attributes for the &amp;amp;lt;embed&amp;amp;gt; tag: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039;: Specifies the width of the plugin. &lt;br /&gt;
*&#039;&#039;&#039;height&#039;&#039;&#039;: Specifies the height of the plugin. &lt;br /&gt;
*&#039;&#039;&#039;target&#039;&#039;&#039; (or one of these alias: &#039;&#039;&#039;mrl&#039;&#039;&#039;, &#039;&#039;&#039;filename&#039;&#039;&#039;, &#039;&#039;&#039;src&#039;&#039;&#039;): Specifies the source location (URL) of the video to load.&lt;br /&gt;
&lt;br /&gt;
=== Optionnal elements ===&lt;br /&gt;
These are additional attributes for the &amp;amp;lt;embed&amp;amp;gt; tag: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;autoplay&#039;&#039;&#039;, &#039;&#039;&#039;autostart&#039;&#039;&#039;: Specifies whether the plugin starts playing on load. Default: &#039;&#039;true&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;allowfullscreen&#039;&#039;&#039;: (since VLC version 1.2.0) Specifies whether the user can switch into fullscreen mode. Default: &#039;&#039;true&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;windowless&#039;&#039;&#039;: (since VLC version 2.0.6) Draw the video on a window-less (non-accelerated) surface and allow styling (CSS overlay, 3D transformations, and much more). Default: &#039;&#039;false&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;mute&#039;&#039;&#039;: Specifies whether the audio volume is initially muted. Default: &#039;&#039;false&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;loop&#039;&#039;&#039;, &#039;&#039;&#039;autoloop&#039;&#039;&#039;: Specifies whether the video loops on end. Default: &#039;&#039;false&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;toolbar&#039;&#039;&#039;: Specifies whether the toolbar is shown by default. Default: &#039;&#039;true&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039;: Specifies the background color of the video player. Default: &#039;&#039;#000000&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Normal DOM elements ===&lt;br /&gt;
*&#039;&#039;&#039;id&#039;&#039;&#039;: DOM id&lt;br /&gt;
*&#039;&#039;&#039;name&#039;&#039;&#039;: DOM name&lt;br /&gt;
&lt;br /&gt;
= Javascript API description  =&lt;br /&gt;
&lt;br /&gt;
The vlc plugin exports several objects that can be accessed for setting and getting information. When used improperly the API&#039;s will throw an exception that includes a string that explains what happened. For example when asking for vlc.input.length when there is no playlist item playing. &lt;br /&gt;
&lt;br /&gt;
== VLC objects ==&lt;br /&gt;
The vlc plugin knows the following objects: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;audio&#039;&#039;&#039;: Access audio properties. &lt;br /&gt;
*&#039;&#039;&#039;input&#039;&#039;&#039;: Access input properties. &lt;br /&gt;
*&#039;&#039;&#039;playlist&#039;&#039;&#039;: Access playlist properties. &lt;br /&gt;
*&#039;&#039;&#039;subtitle&#039;&#039;&#039;: Access subtitle properties. &lt;br /&gt;
*&#039;&#039;&#039;video&#039;&#039;&#039;: Access video properties. &lt;br /&gt;
**&#039;&#039;&#039;video.marquee&#039;&#039;&#039;: Access marquee video filter properties. &lt;br /&gt;
**&#039;&#039;&#039;video.logo&#039;&#039;&#039;: Access logo video filter properties. &lt;br /&gt;
*&#039;&#039;&#039;mediaDescription&#039;&#039;&#039;: Access media info properties (only available in vlc version &amp;gt;= 2.0.2).&lt;br /&gt;
&lt;br /&gt;
The following are deprecated:&lt;br /&gt;
*&#039;&#039;&#039;log&#039;&#039;&#039;: Access log properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
*&#039;&#039;&#039;messages&#039;&#039;&#039;: Access to log message properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
*&#039;&#039;&#039;iterator&#039;&#039;&#039;: Access to log iterator properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1).&lt;br /&gt;
*&#039;&#039;&#039;message&#039;&#039;&#039;: Access to log message properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
The following JavaScript code shows howto get a reference to the vlc plugin. This reference can then be used to access the objects of the vlc plugin. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;VLC Mozilla plugin test page&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot; pluginspage=&amp;quot;http://www.videolan.org&amp;quot;&lt;br /&gt;
 width=&amp;quot;640&amp;quot;&lt;br /&gt;
 height=&amp;quot;480&amp;quot;&lt;br /&gt;
 id=&amp;quot;vlc&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/embed&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;Javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
var vlc = document.getElementById(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
vlc.audio.toggleMute();&lt;br /&gt;
//!--&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Root object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;VersionInfo&#039;&#039;&#039;: returns version information string&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.versionInfo()&#039;&#039;&#039;: returns version information string (same as VersionInfo)&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.addEventListener(eventname, callback, bubble)&#039;&#039;&#039;: (only for Mozilla) add a listener for mentioned event name, callback expects a function and bubble influences the order of eventhandling by JS (usually it is set to false). &lt;br /&gt;
*&#039;&#039;&#039;vlc.removeEventListener(eventname, callback, bubble)&#039;&#039;&#039;: (only for Mozilla) remove listener for mentioned event name, callback expects a function and bubble influences the order of eventhandling by JS (usually it is set to false).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.attachEvent(eventname, callback)&#039;&#039;&#039;: (only for ActiveX) add listener for mentioned event name, callback expects a function &lt;br /&gt;
*&#039;&#039;&#039;vlc.removeEvent(eventname, callback)&#039;&#039;&#039;: (only for ActiveX) remove listener for mentioned event name, callback expects a function&lt;br /&gt;
&lt;br /&gt;
events &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerNothingSpecial&#039;&#039;&#039;: vlc is in idle state doing nothing but waiting for a command to be issued &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerOpening&#039;&#039;&#039;: vlc is opening an media resource locator (MRL) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerBuffering&#039;&#039;&#039;: vlc is buffering &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPlaying&#039;&#039;&#039;: vlc is playing a media &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPaused&#039;&#039;&#039;: vlc is in paused state &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerForward&#039;&#039;&#039;: vlc is fastforwarding through the media (works only when an input supports forward playback) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerBackward&#039;&#039;&#039;: vlc is going backwards through the media (works only when an input supports backwards playback) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerEncounteredError&#039;&#039;&#039;: vlc has encountered an error and is unable to continue &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerEndReached&#039;&#039;&#039;: vlc has reached the end of current playlist &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerTimeChanged&#039;&#039;&#039;: time has changed &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPositionChanged&#039;&#039;&#039;: media position has changed &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerSeekableChanged&#039;&#039;&#039;: media seekable flag has changed (true means media is seekable, false means it is not) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPausableChanged&#039;&#039;&#039;: media pausable flag has changed (true means media is pauseable, false means it is not)&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
The following code snippet provides easy functions to register and unregister event callbacks on all supported platforms (currently only Linux mozilla based browsers and windows activeX objects for Internet Explorer). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
function registerVLCEvent(event, handler)&lt;br /&gt;
{&lt;br /&gt;
var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
if (vlc) {&lt;br /&gt;
    if (vlc.attachEvent) {&lt;br /&gt;
        // Microsoft&lt;br /&gt;
        vlc.attachEvent (event, handler);&lt;br /&gt;
    } else if (vlc.addEventListener) {&lt;br /&gt;
        // Mozilla: DOM level 2&lt;br /&gt;
        vlc.addEventListener (event, handler, false);&lt;br /&gt;
    } else {&lt;br /&gt;
        // DOM level 0&lt;br /&gt;
        vlc[&amp;quot;on&amp;quot; + event] = handler;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
// stop listening to event&lt;br /&gt;
function unregisterVLCEvent(event, handler)&lt;br /&gt;
{&lt;br /&gt;
var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
if (vlc) {&lt;br /&gt;
    if (vlc.detachEvent) {&lt;br /&gt;
        // Microsoft&lt;br /&gt;
        vlc.detachEvent (event, handler);&lt;br /&gt;
    } else if (vlc.removeEventListener) {&lt;br /&gt;
        // Mozilla: DOM level 2&lt;br /&gt;
        vlc.removeEventListener (event, handler, false);&lt;br /&gt;
    } else {&lt;br /&gt;
        // DOM level 0&lt;br /&gt;
        vlc[&amp;quot;on&amp;quot; + event] = null;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
// event callback function for testing&lt;br /&gt;
function handleEvents(event)&lt;br /&gt;
{&lt;br /&gt;
if (!event)&lt;br /&gt;
    event = window.event; // IE&lt;br /&gt;
if (event.target) {&lt;br /&gt;
    // Netscape based browser&lt;br /&gt;
    targ = event.target;&lt;br /&gt;
} else if (event.srcElement) {&lt;br /&gt;
    // ActiveX&lt;br /&gt;
    targ = event.srcElement;&lt;br /&gt;
} else {&lt;br /&gt;
    // No event object, just the value&lt;br /&gt;
    alert(&amp;quot;Event value&amp;quot; + event );&lt;br /&gt;
    return;&lt;br /&gt;
}&lt;br /&gt;
if (targ.nodeType == 3) // defeat Safari bug&lt;br /&gt;
    targ = targ.parentNode;&lt;br /&gt;
alert(&amp;quot;Event &amp;quot; + event.type + &amp;quot; has fired from &amp;quot; + targ );&lt;br /&gt;
}&lt;br /&gt;
// handle mouse grab event from video filter&lt;br /&gt;
function handleMouseGrab(event,X,Y)&lt;br /&gt;
{&lt;br /&gt;
if (!event)&lt;br /&gt;
    event = window.event; // IE&lt;br /&gt;
alert(&amp;quot;new position (&amp;quot; + X + &amp;quot;,&amp;quot; + Y + &amp;quot;)&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
// Register a bunch of callbacks.&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerNothingSpecial&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerOpening&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerBuffering&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerPlaying&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerPaused&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerForward&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerBackward&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerEncounteredError&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerEndReached&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerTimeChanged&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerPositionChanged&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerSeekableChanged&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerPausableChanged&#039;, handleEvents);&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Audio object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.count&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) returns the number of audio track available.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.mute&#039;&#039;&#039;: boolean value to mute and unmute the audio. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.volume&#039;&#039;&#039;: a value between [0-200] which indicates a percentage of the volume. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.track&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6) a value between [1-65535] which indicates the audio track to play or that is playing. a value of 0 means the audio is/will be disabled. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.channel&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6) integer value between [1-5] that indicates which audio channel mode is used, values can be: &amp;quot;1=stereo&amp;quot;, &amp;quot;2=reverse stereo&amp;quot;, &amp;quot;3=left&amp;quot;, &amp;quot;4=right&amp;quot;, &amp;quot;5=dolby&amp;quot;. Use vlc.audio.channel to check if setting of the audio channel mode has succeeded.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.toggleMute()&#039;&#039;&#039;: boolean toggle that mutes and unmutes the audio based upon the previous state. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.description(int i)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) give the i-th audio track name. 0 corresponds to disable and 1 to the first audio track.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot; line&amp;gt;&lt;br /&gt;
Audio Channel:&lt;br /&gt;
&amp;lt;select readonly onChange=&#039;doAudioChannel(this.value)&#039;&amp;gt;&lt;br /&gt;
&amp;lt;option value=1&amp;gt;Stereo&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=2&amp;gt;Reverse stereo&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=3&amp;gt;Left&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=4&amp;gt;Right&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=5&amp;gt;Dolby&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;/select&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
function doAudioChannel(value)&lt;br /&gt;
{&lt;br /&gt;
var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
vlc.audio.channel = parseInt(value);&lt;br /&gt;
alert(vlc.audio.channel);&lt;br /&gt;
};&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Input object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.length&#039;&#039;&#039;: length of the input file in number of milliseconds. 0 is returned for &#039;live&#039; streams or clips whose length cannot be determined by VLC. It returns -1 if no input is playing. &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.fps&#039;&#039;&#039;: frames per second returned as a float (typically 60.0, 50.0, 23.976, etc...) &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.hasVout&#039;&#039;&#039;: a boolean that returns true when the video is being displayed, it returns false when video is not displayed&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.position&#039;&#039;&#039;: normalized position in multimedia stream item given as a float value between [0.0 - 1.0] &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.time&#039;&#039;&#039;: the absolute position in time given in milliseconds, this property can be used to seek through the stream&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;!-- absolute seek in stream&amp;amp;nbsp;!--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = &amp;amp;lt;absolute seek&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!-- relative seek in stream&amp;amp;nbsp;!--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = vlc.input.time + &amp;amp;lt;relative seek&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.state&#039;&#039;&#039;: current state of the input chain given as enumeration (IDLE=0, OPENING=1, BUFFERING=2, PLAYING=3, PAUSED=4, STOPPING=5, ENDED=6, ERROR=7). Note: Test for ENDED=6 to catch end of playback. Checking for STOPPING=5 is NOT ENOUGH. &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.rate&#039;&#039;&#039;: input speed given as float (1.0 for normal speed, 0.5 for half speed, 2.0 for twice as fast, etc.).&lt;br /&gt;
&lt;br /&gt;
 rate &amp;amp;gt; 1             &amp;amp;nbsp;: is fastforward&lt;br /&gt;
 rate &amp;amp;gt; 0 and rate &amp;amp;lt; 1&amp;amp;nbsp;: is slow motion&lt;br /&gt;
 rate &amp;amp;lt; 0             &amp;amp;nbsp;: is rewind&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Playlist object ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.itemCount&#039;&#039;&#039;: number that returns the amount of items currently in the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]]) &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.isPlaying&#039;&#039;&#039;: a boolean that returns true if the current playlist item is playing and false when it is not playing &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items&#039;&#039;&#039;: return the playlist items collection, see [[#Playlist_items_object|Playlist items]]&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl)&#039;&#039;&#039;: add a playlist item as [[MRL]]. The MRL must be given as a string. Returns a number as an item identifier in playlist (this is not a position in playlist). &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl,name,options)&#039;&#039;&#039;: add a playlist item as MRL, with metaname &#039;name&#039; and options &#039;options&#039;. options are text arguments which can be provided either as a single string containing space separated values, akin to VLC command line, or as an array of string values. Returns a number as an item identifier in playlist (this is not a position in playlist).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
var options = new Array(&amp;quot;:aspect-ratio=4:3&amp;quot;, &amp;quot;--rtsp-tcp&amp;quot;);&lt;br /&gt;
var id = vlc.playlist.add(&amp;quot;rtsp://servername/item/to/play&amp;quot;, &amp;quot;fancy name&amp;quot;, options);&lt;br /&gt;
vlc.playlist.playItem(id);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.play()&#039;&#039;&#039;: start playing the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.playItem(number)&#039;&#039;&#039;: start playing the item whose identifier is number &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.pause()&#039;&#039;&#039;: pause the current playlist item&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.togglePause()&#039;&#039;&#039;: toggle the pause state for the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.stop()&#039;&#039;&#039;: stop playing the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.next()&#039;&#039;&#039;: iterate to the next playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.prev()&#039;&#039;&#039;: iterate to the previous playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]]) &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.removeItem(number)&#039;&#039;&#039;: remove the item from playlist whose identifier is number &amp;lt;!-- (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() ) --&amp;gt; (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]])&lt;br /&gt;
&lt;br /&gt;
=== Playlist items object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.count&#039;&#039;&#039;: number of items currently in the playlist&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist. If a movie is playing, it stop. Note that when this method returns, playlist may not have been entirely been cleared as this operation is performed asynchronously; use the &#039;&#039;count&#039;&#039; property to verify/wait until the playlist is empty. &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.remove(number)&#039;&#039;&#039;: remove the item whose identifier is number from playlist. (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() )&lt;br /&gt;
&lt;br /&gt;
== Subtitle object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.count&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) returns the number of subtitle available.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.track&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.description(int i)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) give the i-th subtitle name. 0 correspond to disable and 1 to the first subtitle.&lt;br /&gt;
&lt;br /&gt;
== Video object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.width&#039;&#039;&#039;: returns the horizontal size of the video &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.height&#039;&#039;&#039;: returns the vertical size of the video&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.fullscreen&#039;&#039;&#039;: when set to true the video will be displayed in fullscreen mode, when set to false the video will be shown inside the video output size. The property takes a boolean as input. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.aspectRatio&#039;&#039;&#039;: get and set the aspect ratio to use in the video screen. The property takes a string as input value. Typical values are: &amp;quot;1:1&amp;quot;, &amp;quot;4:3&amp;quot;, &amp;quot;16:9&amp;quot;, &amp;quot;16:10&amp;quot;, &amp;quot;221:100&amp;quot; and &amp;quot;5:4&amp;quot; &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.subtitle&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6a) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.teletext&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 0.9.0) get and set teletext page to show on the video stream. This will only work if a teletext elementary stream is available in the video stream. The property takes an integer as input value [0..999] for indicating the teletext page to view, setting the value to 0 means hide teletext. On error it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleFullscreen()&#039;&#039;&#039;: toggle the fullscreen mode based on the previous setting &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleTeletext()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 0.9.0) toggle the teletext page to overlay transparent or not, based on the previous setting&lt;br /&gt;
&lt;br /&gt;
=== Deinterlace Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.deinterlace.enable(&amp;quot;my_mode&amp;quot;)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable deinterlacing with my_mode. You can enable it with &amp;quot;blend&amp;quot;, &amp;quot;bob&amp;quot;, &amp;quot;discard&amp;quot;, &amp;quot;linear&amp;quot;, &amp;quot;mean&amp;quot;, &amp;quot;x&amp;quot;, &amp;quot;yadif&amp;quot; or &amp;quot;yadif2x&amp;quot; mode. Enabling too soon deinterlacing may cause some problems. You have to wait that all variable are available before enabling it. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.deinterlace.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable deinterlacing.&lt;br /&gt;
&lt;br /&gt;
=== Marquee Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.text&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display my text on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.color&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text color. val is the new color to use (WHITE=0x000000, BLACK=0xFFFFFF, RED=0xFF0000, GREEN=0x00FF00, BLUE=0x0000FF...). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.opacity&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text opacity, val is defined from 0 (completely transparent) to 255 (completely opaque). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.position&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text position (CENTER=0, LEFT=1, RIGHT=2, TOP=4, TOP-LEFT=5, TOP-RIGHT=6, BOTTOM=8, BOTTOM-LEFT=9, BOTTOM_RIGHT=10). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.refresh&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the marquee refresh period. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.size&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) val define the new size for the text displayed on the screen. If the text is bigger than the screen then the text is not displayed. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.timeout&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the timeout value. val is defined in ms, but 0 value correspond to unlimited. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.x&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change text abscissa. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.y&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change text ordinate.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.enable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable marquee filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable marquee filter.&lt;br /&gt;
&lt;br /&gt;
Some problems may happen (option like color or text will not be applied) because of the VLC asynchronous functioning. To avoid it, after enabling marquee, you have to wait a little time before changing an option. But it should be fixed by the new vout implementation. &lt;br /&gt;
&lt;br /&gt;
NOTE: [http://forum.videolan.org/viewtopic.php?f=16&amp;amp;t=89427#p295058] &lt;br /&gt;
&lt;br /&gt;
=== Logo Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.opacity&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture opacity, val is defined from 0 (completely transparent) to 255 (completely opaque). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.position&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text position (&amp;quot;center&amp;quot;, &amp;quot;left&amp;quot;, &amp;quot;right&amp;quot;, &amp;quot;top&amp;quot;, &amp;quot;top-left&amp;quot;, &amp;quot;top-right&amp;quot;, &amp;quot;bottom&amp;quot;, &amp;quot;bottom-left&amp;quot;, &amp;quot;bottom-right&amp;quot;). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.delay&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display each picture for a duration of 1000 ms (default) before displaying the next picture. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.repeat&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) number of loops for picture animation (-1=continuous, 0=disabled, n=n-times). The default is -1 (continuous). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.x&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the x-offset for displaying the picture counting from top-left on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.y&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the y-offset for displaying the picture counting from top-left on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.width&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture width. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.height&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture height.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.enable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable logo video filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable logo video filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.file(&amp;quot;file.png&amp;quot;)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display my file.png as logo on the screen.&lt;br /&gt;
&lt;br /&gt;
Some problems may happen because of the VLC asynchronous functioning. To avoid it, after enabling logo video filter, you have to wait a little time before changing an option. But it should be fixed by the new vout implementation.&lt;br /&gt;
&lt;br /&gt;
== MediaDescription Object   ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.title&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns title meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.artist&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns artist meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.copyright&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns copyright meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.album&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns album meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.trackNumber&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns trackNumber meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.description&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns description meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.rating&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns rating meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.date&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns date meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.setting&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns setting meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.URL&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns URL meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.language&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns language meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.nowPlaying&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns nowPlaying meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.publisher&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns publisher meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.encodedBy&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns encodedBy meta information field.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.artworkURL&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns artworkURL meta information field.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.trackID&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns trackID meta information field.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== DEPRECATED APIs ==&lt;br /&gt;
=== DEPRECATED: Log object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
This object allows accessing VLC main message logging queue. Typically this queue capacity is very small (no nore than 256 entries) and can easily overflow, therefore messages should be read and cleared as often as possible. &lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.messages&#039;&#039;&#039;: returns the message collection, see [[#Messages_object|Messages object]]&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.verbosity&#039;&#039;&#039;: write number [-1,0,1,2,3] for changing the verbosity level of the log messages; messages whose verbosity is higher than set will be not be logged in the queue. The numbers have the following meaning: -1 disable, 0 info, 1 error, 2 warning, 3 debug.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Messages object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;messages.count&#039;&#039;&#039;: returns number of messages in the log&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;messages.clear()&#039;&#039;&#039;: clear the current log buffer. It should be called as frequently as possible to not overflow the message queue. Call this method after the log messages of interest are read. &lt;br /&gt;
*&#039;&#039;&#039;messages.iterator()&#039;&#039;&#039;: creates and returns an iterator object, used to iterate over the messages in the log. &#039;&#039;&#039;Don&#039;t clear the log buffer while holding an iterator object.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Messages Iterator object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iterator.hasNext&#039;&#039;&#039;: returns a boolean that indicates whether &#039;&#039;vlc.log.messages.next()&#039;&#039; will return the next message.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iterator.next()&#039;&#039;&#039;: returns the next message object in the log, see [[Message object]]&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Message subobject  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;message.severity&#039;&#039;&#039;: number that indicates the severity of the log message (0 = info, 1 = error, 2 = warning, 3 = debug) &lt;br /&gt;
*&#039;&#039;&#039;message.name&#039;&#039;&#039;: name of VLC module that printed the log message (e.g: main, http, directx, etc...) &lt;br /&gt;
*&#039;&#039;&#039;message.type&#039;&#039;&#039;: type of VLC module that printed the log message (eg: input, access, vout, sout, etc...) &lt;br /&gt;
*&#039;&#039;&#039;message.message&#039;&#039;&#039;: the message text&lt;br /&gt;
&lt;br /&gt;
{{Documentation}} &lt;br /&gt;
&lt;br /&gt;
[[Category:Embedded]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:WebPlugin&amp;diff=23665</id>
		<title>Documentation:WebPlugin</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:WebPlugin&amp;diff=23665"/>
		<updated>2013-01-02T14:15:45Z</updated>

		<summary type="html">&lt;p&gt;Etix: Bump recommended version to 2.0.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This Documentation speaks about the {{VLC}} Web plugins and how to write pages for it. &lt;br /&gt;
{{RightMenu|documentation play howto toc}} &lt;br /&gt;
&lt;br /&gt;
= Introduction: Building Web pages with Video =&lt;br /&gt;
&lt;br /&gt;
The {{VLC}} webplugins are native browser plugins, similar to Flash or Silverlight plugins and allow playback inside the browser of all the videos that {{VLC}} can read.&lt;br /&gt;
&lt;br /&gt;
Additionally to viewing video on all pages, you can build custom pages that will use the advanced features of the plugin, using Javascript functions to control playback or extract information from the plugin. &lt;br /&gt;
&lt;br /&gt;
There are 2 main plugins: one is ActiveX for IE, the other is NPAPI for the other browsers. They feature the same amount of features.&lt;br /&gt;
&lt;br /&gt;
In older versions, those plugins were very crashy. &#039;&#039;&#039;We URGE YOU&#039;&#039;&#039; to use VLC &#039;&#039;&#039;2.0.0&#039;&#039;&#039; or newer versions.&lt;br /&gt;
&lt;br /&gt;
=== Browsers support ===&lt;br /&gt;
It has been tested with:&lt;br /&gt;
* Mozilla Firefox [[Image:Firefox-logo.png|40x40px]]&lt;br /&gt;
* Internet Explorer [[Image:20101105053305!Internet Explorer 9.png|40x40px]]&lt;br /&gt;
* Safari [[Image:Apple Safari.png|40x40px]]&lt;br /&gt;
* Chrome&lt;br /&gt;
* Konqueror&lt;br /&gt;
* Opera&lt;br /&gt;
&lt;br /&gt;
It has been tested on GNU/Linux, Windows and MacOS.&lt;br /&gt;
&lt;br /&gt;
= Embed tag attributes =&lt;br /&gt;
&lt;br /&gt;
To embed the plugin into a webpage use the following &amp;amp;lt;embed&amp;amp;gt; template: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot; pluginspage=&amp;quot;http://www.videolan.org&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921&amp;quot; codebase=&amp;quot;http://download.videolan.org/pub/videolan/vlc/last/win32/axvlc.cab&amp;quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Required elements ===&lt;br /&gt;
These are &#039;&#039;&#039;required&#039;&#039;&#039; attributes for the &amp;amp;lt;embed&amp;amp;gt; tag: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039;: Specifies the width of the plugin. &lt;br /&gt;
*&#039;&#039;&#039;height&#039;&#039;&#039;: Specifies the height of the plugin. &lt;br /&gt;
*&#039;&#039;&#039;target&#039;&#039;&#039; (or one of these alias: &#039;&#039;&#039;mrl&#039;&#039;&#039;, &#039;&#039;&#039;filename&#039;&#039;&#039;, &#039;&#039;&#039;src&#039;&#039;&#039;): Specifies the source location (URL) of the video to load.&lt;br /&gt;
&lt;br /&gt;
=== Optionnal elements ===&lt;br /&gt;
These are additional attributes for the &amp;amp;lt;embed&amp;amp;gt; tag: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;autoplay&#039;&#039;&#039;, &#039;&#039;&#039;autostart&#039;&#039;&#039;: Specifies whether the plugin starts playing on load. Default: &#039;&#039;true&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;allowfullscreen&#039;&#039;&#039;: (since VLC version 1.2.0) Specifies whether the user can switch into fullscreen mode. Default: &#039;&#039;true&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;windowless&#039;&#039;&#039;: (since VLC version 2.0.6) Draw the video on a window-less (non-accelerated) surface and allow styling (CSS overlay, 3D transformations, and much more). Default: &#039;&#039;false&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;mute&#039;&#039;&#039;: Specifies whether the audio volume is initially muted. Default: &#039;&#039;false&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;loop&#039;&#039;&#039;, &#039;&#039;&#039;autoloop&#039;&#039;&#039;: Specifies whether the video loops on end. Default: &#039;&#039;false&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;toolbar&#039;&#039;&#039;: Specifies whether the toolbar is shown by default. Default: &#039;&#039;true&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039;: Specifies the background color of the video player. Default: &#039;&#039;#000000&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Normal DOM elements ===&lt;br /&gt;
*&#039;&#039;&#039;id&#039;&#039;&#039;: DOM id&lt;br /&gt;
*&#039;&#039;&#039;name&#039;&#039;&#039;: DOM name&lt;br /&gt;
&lt;br /&gt;
= Javascript API description  =&lt;br /&gt;
&lt;br /&gt;
The vlc plugin exports several objects that can be accessed for setting and getting information. When used improperly the API&#039;s will throw an exception that includes a string that explains what happened. For example when asking for vlc.input.length when there is no playlist item playing. &lt;br /&gt;
&lt;br /&gt;
== VLC objects ==&lt;br /&gt;
The vlc plugin knows the following objects: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;audio&#039;&#039;&#039;: Access audio properties. &lt;br /&gt;
*&#039;&#039;&#039;input&#039;&#039;&#039;: Access input properties. &lt;br /&gt;
*&#039;&#039;&#039;playlist&#039;&#039;&#039;: Access playlist properties. &lt;br /&gt;
*&#039;&#039;&#039;subtitle&#039;&#039;&#039;: Access subtitle properties. &lt;br /&gt;
*&#039;&#039;&#039;video&#039;&#039;&#039;: Access video properties. &lt;br /&gt;
**&#039;&#039;&#039;video.marquee&#039;&#039;&#039;: Access marquee video filter properties. &lt;br /&gt;
**&#039;&#039;&#039;video.logo&#039;&#039;&#039;: Access logo video filter properties. &lt;br /&gt;
*&#039;&#039;&#039;mediaDescription&#039;&#039;&#039;: Access media info properties (only available in vlc version &amp;gt;= 2.0.2).&lt;br /&gt;
&lt;br /&gt;
The following are deprecated:&lt;br /&gt;
*&#039;&#039;&#039;log&#039;&#039;&#039;: Access log properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
*&#039;&#039;&#039;messages&#039;&#039;&#039;: Access to log message properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
*&#039;&#039;&#039;iterator&#039;&#039;&#039;: Access to log iterator properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1).&lt;br /&gt;
*&#039;&#039;&#039;message&#039;&#039;&#039;: Access to log message properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
The following JavaScript code shows howto get a reference to the vlc plugin. This reference can then be used to access the objects of the vlc plugin. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;VLC Mozilla plugin test page&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot; pluginspage=&amp;quot;http://www.videolan.org&amp;quot;&lt;br /&gt;
 width=&amp;quot;640&amp;quot;&lt;br /&gt;
 height=&amp;quot;480&amp;quot;&lt;br /&gt;
 id=&amp;quot;vlc&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/embed&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;Javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
var vlc = document.getElementById(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
vlc.audio.toggleMute();&lt;br /&gt;
//!--&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Root object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;VersionInfo&#039;&#039;&#039;: returns version information string&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.versionInfo()&#039;&#039;&#039;: returns version information string (same as VersionInfo)&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.addEventListener(eventname, callback, bubble)&#039;&#039;&#039;: (only for Mozilla) add a listener for mentioned event name, callback expects a function and bubble influences the order of eventhandling by JS (usually it is set to false). &lt;br /&gt;
*&#039;&#039;&#039;vlc.removeEventListener(eventname, callback, bubble)&#039;&#039;&#039;: (only for Mozilla) remove listener for mentioned event name, callback expects a function and bubble influences the order of eventhandling by JS (usually it is set to false).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.attachEvent(eventname, callback)&#039;&#039;&#039;: (only for ActiveX) add listener for mentioned event name, callback expects a function &lt;br /&gt;
*&#039;&#039;&#039;vlc.removeEvent(eventname, callback)&#039;&#039;&#039;: (only for ActiveX) remove listener for mentioned event name, callback expects a function&lt;br /&gt;
&lt;br /&gt;
events &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerNothingSpecial&#039;&#039;&#039;: vlc is in idle state doing nothing but waiting for a command to be issued &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerOpening&#039;&#039;&#039;: vlc is opening an media resource locator (MRL) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerBuffering&#039;&#039;&#039;: vlc is buffering &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPlaying&#039;&#039;&#039;: vlc is playing a media &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPaused&#039;&#039;&#039;: vlc is in paused state &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerForward&#039;&#039;&#039;: vlc is fastforwarding through the media (works only when an input supports forward playback) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerBackward&#039;&#039;&#039;: vlc is going backwards through the media (works only when an input supports backwards playback) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerEncounteredError&#039;&#039;&#039;: vlc has encountered an error and is unable to continue &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerEndReached&#039;&#039;&#039;: vlc has reached the end of current playlist &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerTimeChanged&#039;&#039;&#039;: time has changed &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPositionChanged&#039;&#039;&#039;: media position has changed &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerSeekableChanged&#039;&#039;&#039;: media seekable flag has changed (true means media is seekable, false means it is not) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPausableChanged&#039;&#039;&#039;: media pausable flag has changed (true means media is pauseable, false means it is not)&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
The following code snippit provides easy functions to register and unregister event callbacks on all supported platforms (currently only Linux mozilla based browsers and windows activeX objects for Internet Explorer). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
function registerVLCEvent(event, handler)&lt;br /&gt;
{&lt;br /&gt;
var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
if (vlc) {&lt;br /&gt;
    if (vlc.attachEvent) {&lt;br /&gt;
        // Microsoft&lt;br /&gt;
        vlc.attachEvent (event, handler);&lt;br /&gt;
    } else if (vlc.addEventListener) {&lt;br /&gt;
        // Mozilla: DOM level 2&lt;br /&gt;
        vlc.addEventListener (event, handler, false);&lt;br /&gt;
    } else {&lt;br /&gt;
        // DOM level 0&lt;br /&gt;
        vlc[&amp;quot;on&amp;quot; + event] = handler;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
// stop listening to event&lt;br /&gt;
function unregisterVLCEvent(event, handler)&lt;br /&gt;
{&lt;br /&gt;
var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
if (vlc) {&lt;br /&gt;
    if (vlc.detachEvent) {&lt;br /&gt;
        // Microsoft&lt;br /&gt;
        vlc.detachEvent (event, handler);&lt;br /&gt;
    } else if (vlc.removeEventListener) {&lt;br /&gt;
        // Mozilla: DOM level 2&lt;br /&gt;
        vlc.removeEventListener (event, handler, false);&lt;br /&gt;
    } else {&lt;br /&gt;
        // DOM level 0&lt;br /&gt;
        vlc[&amp;quot;on&amp;quot; + event] = null;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
// event callback function for testing&lt;br /&gt;
function handleEvents(event)&lt;br /&gt;
{&lt;br /&gt;
if (!event)&lt;br /&gt;
    event = window.event; // IE&lt;br /&gt;
if (event.target) {&lt;br /&gt;
    // Netscape based browser&lt;br /&gt;
    targ = event.target;&lt;br /&gt;
} else if (event.srcElement) {&lt;br /&gt;
    // ActiveX&lt;br /&gt;
    targ = event.srcElement;&lt;br /&gt;
} else {&lt;br /&gt;
    // No event object, just the value&lt;br /&gt;
    alert(&amp;quot;Event value&amp;quot; + event );&lt;br /&gt;
    return;&lt;br /&gt;
}&lt;br /&gt;
if (targ.nodeType == 3) // defeat Safari bug&lt;br /&gt;
    targ = targ.parentNode;&lt;br /&gt;
alert(&amp;quot;Event &amp;quot; + event.type + &amp;quot; has fired from &amp;quot; + targ );&lt;br /&gt;
}&lt;br /&gt;
// handle mouse grab event from video filter&lt;br /&gt;
function handleMouseGrab(event,X,Y)&lt;br /&gt;
{&lt;br /&gt;
if (!event)&lt;br /&gt;
    event = window.event; // IE&lt;br /&gt;
alert(&amp;quot;new position (&amp;quot; + X + &amp;quot;,&amp;quot; + Y + &amp;quot;)&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
// Register a bunch of callbacks.&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerNothingSpecial&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerOpening&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerBuffering&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerPlaying&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerPaused&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerForward&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerBackward&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerEncounteredError&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerEndReached&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerTimeChanged&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerPositionChanged&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerSeekableChanged&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerPausableChanged&#039;, handleEvents);&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Audio object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.count&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) returns the number of audio track available.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.mute&#039;&#039;&#039;: boolean value to mute and unmute the audio. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.volume&#039;&#039;&#039;: a value between [0-200] which indicates a percentage of the volume. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.track&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6) a value between [1-65535] which indicates the audio track to play or that is playing. a value of 0 means the audio is/will be disabled. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.channel&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6) integer value between [1-5] that indicates which audio channel mode is used, values can be: &amp;quot;1=stereo&amp;quot;, &amp;quot;2=reverse stereo&amp;quot;, &amp;quot;3=left&amp;quot;, &amp;quot;4=right&amp;quot;, &amp;quot;5=dolby&amp;quot;. Use vlc.audio.channel to check if setting of the audio channel mode has succeeded.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.toggleMute()&#039;&#039;&#039;: boolean toggle that mutes and unmutes the audio based upon the previous state. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.description(int i)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) give the i-th audio track name. 0 corresponds to disable and 1 to the first audio track.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot; line&amp;gt;&lt;br /&gt;
Audio Channel:&lt;br /&gt;
&amp;lt;select readonly onChange=&#039;doAudioChannel(this.value)&#039;&amp;gt;&lt;br /&gt;
&amp;lt;option value=1&amp;gt;Stereo&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=2&amp;gt;Reverse stereo&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=3&amp;gt;Left&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=4&amp;gt;Right&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=5&amp;gt;Dolby&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;/select&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
function doAudioChannel(value)&lt;br /&gt;
{&lt;br /&gt;
var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
vlc.audio.channel = parseInt(value);&lt;br /&gt;
alert(vlc.audio.channel);&lt;br /&gt;
};&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Input object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.length&#039;&#039;&#039;: length of the input file in number of milliseconds. 0 is returned for &#039;live&#039; streams or clips whose length cannot be determined by VLC. It returns -1 if no input is playing. &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.fps&#039;&#039;&#039;: frames per second returned as a float (typically 60.0, 50.0, 23.976, etc...) &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.hasVout&#039;&#039;&#039;: a boolean that returns true when the video is being displayed, it returns false when video is not displayed&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.position&#039;&#039;&#039;: normalized position in multimedia stream item given as a float value between [0.0 - 1.0] &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.time&#039;&#039;&#039;: the absolute position in time given in milliseconds, this property can be used to seek through the stream&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;!-- absolute seek in stream&amp;amp;nbsp;!--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = &amp;amp;lt;absolute seek&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!-- relative seek in stream&amp;amp;nbsp;!--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = vlc.input.time + &amp;amp;lt;relative seek&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.state&#039;&#039;&#039;: current state of the input chain given as enumeration (IDLE=0, OPENING=1, BUFFERING=2, PLAYING=3, PAUSED=4, STOPPING=5, ENDED=6, ERROR=7). Note: Test for ENDED=6 to catch end of playback. Checking for STOPPING=5 is NOT ENOUGH. &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.rate&#039;&#039;&#039;: input speed given as float (1.0 for normal speed, 0.5 for half speed, 2.0 for twice as fast, etc.).&lt;br /&gt;
&lt;br /&gt;
 rate &amp;amp;gt; 1             &amp;amp;nbsp;: is fastforward&lt;br /&gt;
 rate &amp;amp;gt; 0 and rate &amp;amp;lt; 1&amp;amp;nbsp;: is slow motion&lt;br /&gt;
 rate &amp;amp;lt; 0             &amp;amp;nbsp;: is rewind&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Playlist object ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.itemCount&#039;&#039;&#039;: number that returns the amount of items currently in the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]]) &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.isPlaying&#039;&#039;&#039;: a boolean that returns true if the current playlist item is playing and false when it is not playing &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items&#039;&#039;&#039;: return the playlist items collection, see [[#Playlist_items_object|Playlist items]]&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl)&#039;&#039;&#039;: add a playlist item as [[MRL]]. The MRL must be given as a string. Returns a number as an item identifier in playlist (this is not a position in playlist). &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl,name,options)&#039;&#039;&#039;: add a playlist item as MRL, with metaname &#039;name&#039; and options &#039;options&#039;. options are text arguments which can be provided either as a single string containing space separated values, akin to VLC command line, or as an array of string values. Returns a number as an item identifier in playlist (this is not a position in playlist).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
var options = new Array(&amp;quot;:aspect-ratio=4:3&amp;quot;, &amp;quot;--rtsp-tcp&amp;quot;);&lt;br /&gt;
var id = vlc.playlist.add(&amp;quot;rtsp://servername/item/to/play&amp;quot;, &amp;quot;fancy name&amp;quot;, options);&lt;br /&gt;
vlc.playlist.playItem(id);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.play()&#039;&#039;&#039;: start playing the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.playItem(number)&#039;&#039;&#039;: start playing the item whose identifier is number &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.pause()&#039;&#039;&#039;: pause the current playlist item&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.togglePause()&#039;&#039;&#039;: toggle the pause state for the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.stop()&#039;&#039;&#039;: stop playing the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.next()&#039;&#039;&#039;: iterate to the next playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.prev()&#039;&#039;&#039;: iterate to the previous playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]]) &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.removeItem(number)&#039;&#039;&#039;: remove the item from playlist whose identifier is number &amp;lt;!-- (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() ) --&amp;gt; (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]])&lt;br /&gt;
&lt;br /&gt;
=== Playlist items object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.count&#039;&#039;&#039;: number of items currently in the playlist&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist. If a movie is playing, it stop. Note that when this method returns, playlist may not have been entirely been cleared as this operation is performed asynchronously; use the &#039;&#039;count&#039;&#039; property to verify/wait until the playlist is empty. &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.remove(number)&#039;&#039;&#039;: remove the item whose identifier is number from playlist. (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() )&lt;br /&gt;
&lt;br /&gt;
== Subtitle object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.count&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) returns the number of subtitle available.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.track&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.description(int i)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) give the i-th subtitle name. 0 correspond to disable and 1 to the first subtitle.&lt;br /&gt;
&lt;br /&gt;
== Video object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.width&#039;&#039;&#039;: returns the horizontal size of the video &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.height&#039;&#039;&#039;: returns the vertical size of the video&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.fullscreen&#039;&#039;&#039;: when set to true the video will be displayed in fullscreen mode, when set to false the video will be shown inside the video output size. The property takes a boolean as input. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.aspectRatio&#039;&#039;&#039;: get and set the aspect ratio to use in the video screen. The property takes a string as input value. Typical values are: &amp;quot;1:1&amp;quot;, &amp;quot;4:3&amp;quot;, &amp;quot;16:9&amp;quot;, &amp;quot;16:10&amp;quot;, &amp;quot;221:100&amp;quot; and &amp;quot;5:4&amp;quot; &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.subtitle&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6a) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.teletext&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 0.9.0) get and set teletext page to show on the video stream. This will only work if a teletext elementary stream is available in the video stream. The property takes an integer as input value [0..999] for indicating the teletext page to view, setting the value to 0 means hide teletext. On error it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleFullscreen()&#039;&#039;&#039;: toggle the fullscreen mode based on the previous setting &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleTeletext()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 0.9.0) toggle the teletext page to overlay transparent or not, based on the previous setting&lt;br /&gt;
&lt;br /&gt;
=== Deinterlace Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.deinterlace.enable(&amp;quot;my_mode&amp;quot;)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable deinterlacing with my_mode. You can enable it with &amp;quot;blend&amp;quot;, &amp;quot;bob&amp;quot;, &amp;quot;discard&amp;quot;, &amp;quot;linear&amp;quot;, &amp;quot;mean&amp;quot;, &amp;quot;x&amp;quot;, &amp;quot;yadif&amp;quot; or &amp;quot;yadif2x&amp;quot; mode. Enabling too soon deinterlacing may cause some problems. You have to wait that all variable are available before enabling it. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.deinterlace.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable deinterlacing.&lt;br /&gt;
&lt;br /&gt;
=== Marquee Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.text&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display my text on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.color&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text color. val is the new color to use (WHITE=0x000000, BLACK=0xFFFFFF, RED=0xFF0000, GREEN=0x00FF00, BLUE=0x0000FF...). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.opacity&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text opacity, val is defined from 0 (completely transparent) to 255 (completely opaque). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.position&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text position (CENTER=0, LEFT=1, RIGHT=2, TOP=4, TOP-LEFT=5, TOP-RIGHT=6, BOTTOM=8, BOTTOM-LEFT=9, BOTTOM_RIGHT=10). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.refresh&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the marquee refresh period. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.size&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) val define the new size for the text displayed on the screen. If the text is bigger than the screen then the text is not displayed. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.timeout&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the timeout value. val is defined in ms, but 0 value correspond to unlimited. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.x&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change text abscissa. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.y&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change text ordinate.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.enable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable marquee filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable marquee filter.&lt;br /&gt;
&lt;br /&gt;
Some problems may happen (option like color or text will not be applied) because of the VLC asynchronous functioning. To avoid it, after enabling marquee, you have to wait a little time before changing an option. But it should be fixed by the new vout implementation. &lt;br /&gt;
&lt;br /&gt;
NOTE: [http://forum.videolan.org/viewtopic.php?f=16&amp;amp;t=89427#p295058] &lt;br /&gt;
&lt;br /&gt;
=== Logo Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.opacity&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture opacity, val is defined from 0 (completely transparent) to 255 (completely opaque). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.position&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text position (&amp;quot;center&amp;quot;, &amp;quot;left&amp;quot;, &amp;quot;right&amp;quot;, &amp;quot;top&amp;quot;, &amp;quot;top-left&amp;quot;, &amp;quot;top-right&amp;quot;, &amp;quot;bottom&amp;quot;, &amp;quot;bottom-left&amp;quot;, &amp;quot;bottom-right&amp;quot;). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.delay&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display each picture for a duration of 1000 ms (default) before displaying the next picture. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.repeat&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) number of loops for picture animation (-1=continuous, 0=disabled, n=n-times). The default is -1 (continuous). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.x&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the x-offset for displaying the picture counting from top-left on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.y&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the y-offset for displaying the picture counting from top-left on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.width&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture width. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.height&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture height.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.enable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable logo video filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable logo video filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.file(&amp;quot;file.png&amp;quot;)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display my file.png as logo on the screen.&lt;br /&gt;
&lt;br /&gt;
Some problems may happen because of the VLC asynchronous functioning. To avoid it, after enabling logo video filter, you have to wait a little time before changing an option. But it should be fixed by the new vout implementation.&lt;br /&gt;
&lt;br /&gt;
== MediaDescription Object   ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.title&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns title meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.artist&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns artist meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.copyright&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns copyright meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.album&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns album meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.trackNumber&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns trackNumber meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.description&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns description meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.rating&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns rating meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.date&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns date meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.setting&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns setting meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.URL&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns URL meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.language&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns language meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.nowPlaying&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns nowPlaying meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.publisher&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns publisher meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.encodedBy&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns encodedBy meta information field.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.artworkURL&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns artworkURL meta information field.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.trackID&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns trackID meta information field.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== DEPRECATED APIs ==&lt;br /&gt;
=== DEPRECATED: Log object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
This object allows accessing VLC main message logging queue. Typically this queue capacity is very small (no nore than 256 entries) and can easily overflow, therefore messages should be read and cleared as often as possible. &lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.messages&#039;&#039;&#039;: returns the message collection, see [[#Messages_object|Messages object]]&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.verbosity&#039;&#039;&#039;: write number [-1,0,1,2,3] for changing the verbosity level of the log messages; messages whose verbosity is higher than set will be not be logged in the queue. The numbers have the following meaning: -1 disable, 0 info, 1 error, 2 warning, 3 debug.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Messages object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;messages.count&#039;&#039;&#039;: returns number of messages in the log&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;messages.clear()&#039;&#039;&#039;: clear the current log buffer. It should be called as frequently as possible to not overflow the message queue. Call this method after the log messages of interest are read. &lt;br /&gt;
*&#039;&#039;&#039;messages.iterator()&#039;&#039;&#039;: creates and returns an iterator object, used to iterate over the messages in the log. &#039;&#039;&#039;Don&#039;t clear the log buffer while holding an iterator object.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Messages Iterator object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iterator.hasNext&#039;&#039;&#039;: returns a boolean that indicates whether &#039;&#039;vlc.log.messages.next()&#039;&#039; will return the next message.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iterator.next()&#039;&#039;&#039;: returns the next message object in the log, see [[Message object]]&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Message subobject  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;message.severity&#039;&#039;&#039;: number that indicates the severity of the log message (0 = info, 1 = error, 2 = warning, 3 = debug) &lt;br /&gt;
*&#039;&#039;&#039;message.name&#039;&#039;&#039;: name of VLC module that printed the log message (e.g: main, http, directx, etc...) &lt;br /&gt;
*&#039;&#039;&#039;message.type&#039;&#039;&#039;: type of VLC module that printed the log message (eg: input, access, vout, sout, etc...) &lt;br /&gt;
*&#039;&#039;&#039;message.message&#039;&#039;&#039;: the message text&lt;br /&gt;
&lt;br /&gt;
{{Documentation}} &lt;br /&gt;
&lt;br /&gt;
[[Category:Embedded]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:WebPlugin&amp;diff=23664</id>
		<title>Documentation:WebPlugin</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:WebPlugin&amp;diff=23664"/>
		<updated>2013-01-02T14:13:45Z</updated>

		<summary type="html">&lt;p&gt;Etix: Add syntax highlighting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This Documentation speaks about the {{VLC}} Web plugins and how to write pages for it. &lt;br /&gt;
{{RightMenu|documentation play howto toc}} &lt;br /&gt;
&lt;br /&gt;
= Introduction: Building Web pages with Video =&lt;br /&gt;
&lt;br /&gt;
The {{VLC}} webplugins are native browser plugins, similar to Flash or Silverlight plugins and allow playback inside the browser of all the videos that {{VLC}} can read.&lt;br /&gt;
&lt;br /&gt;
Additionally to viewing video on all pages, you can build custom pages that will use the advanced features of the plugin, using Javascript functions to control playback or extract information from the plugin. &lt;br /&gt;
&lt;br /&gt;
There are 2 main plugins: one is ActiveX for IE, the other is NPAPI for the other browsers. They feature the same amount of features.&lt;br /&gt;
&lt;br /&gt;
In older versions, those plugins were very crashy. &#039;&#039;&#039;We URGE YOU&#039;&#039;&#039; to use VLC &#039;&#039;&#039;1.2.0&#039;&#039;&#039; or newer versions.&lt;br /&gt;
&lt;br /&gt;
=== Browsers support ===&lt;br /&gt;
It has been tested with:&lt;br /&gt;
* Mozilla Firefox [[Image:Firefox-logo.png|40x40px]]&lt;br /&gt;
* Internet Explorer [[Image:20101105053305!Internet Explorer 9.png|40x40px]]&lt;br /&gt;
* Safari [[Image:Apple Safari.png|40x40px]]&lt;br /&gt;
* Chrome&lt;br /&gt;
* Konqueror&lt;br /&gt;
* Opera&lt;br /&gt;
&lt;br /&gt;
It has been tested on GNU/Linux, Windows and MacOS.&lt;br /&gt;
&lt;br /&gt;
= Embed tag attributes =&lt;br /&gt;
&lt;br /&gt;
To embed the plugin into a webpage use the following &amp;amp;lt;embed&amp;amp;gt; template: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot; pluginspage=&amp;quot;http://www.videolan.org&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921&amp;quot; codebase=&amp;quot;http://download.videolan.org/pub/videolan/vlc/last/win32/axvlc.cab&amp;quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Required elements ===&lt;br /&gt;
These are &#039;&#039;&#039;required&#039;&#039;&#039; attributes for the &amp;amp;lt;embed&amp;amp;gt; tag: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039;: Specifies the width of the plugin. &lt;br /&gt;
*&#039;&#039;&#039;height&#039;&#039;&#039;: Specifies the height of the plugin. &lt;br /&gt;
*&#039;&#039;&#039;target&#039;&#039;&#039; (or one of these alias: &#039;&#039;&#039;mrl&#039;&#039;&#039;, &#039;&#039;&#039;filename&#039;&#039;&#039;, &#039;&#039;&#039;src&#039;&#039;&#039;): Specifies the source location (URL) of the video to load.&lt;br /&gt;
&lt;br /&gt;
=== Optionnal elements ===&lt;br /&gt;
These are additional attributes for the &amp;amp;lt;embed&amp;amp;gt; tag: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;autoplay&#039;&#039;&#039;, &#039;&#039;&#039;autostart&#039;&#039;&#039;: Specifies whether the plugin starts playing on load. Default: &#039;&#039;true&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;allowfullscreen&#039;&#039;&#039;: (since VLC version 1.2.0) Specifies whether the user can switch into fullscreen mode. Default: &#039;&#039;true&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;windowless&#039;&#039;&#039;: (since VLC version 2.0.6) Draw the video on a window-less (non-accelerated) surface and allow styling (CSS overlay, 3D transformations, and much more). Default: &#039;&#039;false&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;mute&#039;&#039;&#039;: Specifies whether the audio volume is initially muted. Default: &#039;&#039;false&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;loop&#039;&#039;&#039;, &#039;&#039;&#039;autoloop&#039;&#039;&#039;: Specifies whether the video loops on end. Default: &#039;&#039;false&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;toolbar&#039;&#039;&#039;: Specifies whether the toolbar is shown by default. Default: &#039;&#039;true&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039;: Specifies the background color of the video player. Default: &#039;&#039;#000000&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Normal DOM elements ===&lt;br /&gt;
*&#039;&#039;&#039;id&#039;&#039;&#039;: DOM id&lt;br /&gt;
*&#039;&#039;&#039;name&#039;&#039;&#039;: DOM name&lt;br /&gt;
&lt;br /&gt;
= Javascript API description  =&lt;br /&gt;
&lt;br /&gt;
The vlc plugin exports several objects that can be accessed for setting and getting information. When used improperly the API&#039;s will throw an exception that includes a string that explains what happened. For example when asking for vlc.input.length when there is no playlist item playing. &lt;br /&gt;
&lt;br /&gt;
== VLC objects ==&lt;br /&gt;
The vlc plugin knows the following objects: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;audio&#039;&#039;&#039;: Access audio properties. &lt;br /&gt;
*&#039;&#039;&#039;input&#039;&#039;&#039;: Access input properties. &lt;br /&gt;
*&#039;&#039;&#039;playlist&#039;&#039;&#039;: Access playlist properties. &lt;br /&gt;
*&#039;&#039;&#039;subtitle&#039;&#039;&#039;: Access subtitle properties. &lt;br /&gt;
*&#039;&#039;&#039;video&#039;&#039;&#039;: Access video properties. &lt;br /&gt;
**&#039;&#039;&#039;video.marquee&#039;&#039;&#039;: Access marquee video filter properties. &lt;br /&gt;
**&#039;&#039;&#039;video.logo&#039;&#039;&#039;: Access logo video filter properties. &lt;br /&gt;
*&#039;&#039;&#039;mediaDescription&#039;&#039;&#039;: Access media info properties (only available in vlc version &amp;gt;= 2.0.2).&lt;br /&gt;
&lt;br /&gt;
The following are deprecated:&lt;br /&gt;
*&#039;&#039;&#039;log&#039;&#039;&#039;: Access log properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
*&#039;&#039;&#039;messages&#039;&#039;&#039;: Access to log message properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
*&#039;&#039;&#039;iterator&#039;&#039;&#039;: Access to log iterator properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1).&lt;br /&gt;
*&#039;&#039;&#039;message&#039;&#039;&#039;: Access to log message properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
The following JavaScript code shows howto get a reference to the vlc plugin. This reference can then be used to access the objects of the vlc plugin. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;VLC Mozilla plugin test page&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot; pluginspage=&amp;quot;http://www.videolan.org&amp;quot;&lt;br /&gt;
 width=&amp;quot;640&amp;quot;&lt;br /&gt;
 height=&amp;quot;480&amp;quot;&lt;br /&gt;
 id=&amp;quot;vlc&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/embed&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;Javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
var vlc = document.getElementById(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
vlc.audio.toggleMute();&lt;br /&gt;
//!--&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Root object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;VersionInfo&#039;&#039;&#039;: returns version information string&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.versionInfo()&#039;&#039;&#039;: returns version information string (same as VersionInfo)&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.addEventListener(eventname, callback, bubble)&#039;&#039;&#039;: (only for Mozilla) add a listener for mentioned event name, callback expects a function and bubble influences the order of eventhandling by JS (usually it is set to false). &lt;br /&gt;
*&#039;&#039;&#039;vlc.removeEventListener(eventname, callback, bubble)&#039;&#039;&#039;: (only for Mozilla) remove listener for mentioned event name, callback expects a function and bubble influences the order of eventhandling by JS (usually it is set to false).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.attachEvent(eventname, callback)&#039;&#039;&#039;: (only for ActiveX) add listener for mentioned event name, callback expects a function &lt;br /&gt;
*&#039;&#039;&#039;vlc.removeEvent(eventname, callback)&#039;&#039;&#039;: (only for ActiveX) remove listener for mentioned event name, callback expects a function&lt;br /&gt;
&lt;br /&gt;
events &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerNothingSpecial&#039;&#039;&#039;: vlc is in idle state doing nothing but waiting for a command to be issued &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerOpening&#039;&#039;&#039;: vlc is opening an media resource locator (MRL) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerBuffering&#039;&#039;&#039;: vlc is buffering &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPlaying&#039;&#039;&#039;: vlc is playing a media &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPaused&#039;&#039;&#039;: vlc is in paused state &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerForward&#039;&#039;&#039;: vlc is fastforwarding through the media (works only when an input supports forward playback) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerBackward&#039;&#039;&#039;: vlc is going backwards through the media (works only when an input supports backwards playback) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerEncounteredError&#039;&#039;&#039;: vlc has encountered an error and is unable to continue &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerEndReached&#039;&#039;&#039;: vlc has reached the end of current playlist &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerTimeChanged&#039;&#039;&#039;: time has changed &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPositionChanged&#039;&#039;&#039;: media position has changed &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerSeekableChanged&#039;&#039;&#039;: media seekable flag has changed (true means media is seekable, false means it is not) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPausableChanged&#039;&#039;&#039;: media pausable flag has changed (true means media is pauseable, false means it is not)&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
The following code snippit provides easy functions to register and unregister event callbacks on all supported platforms (currently only Linux mozilla based browsers and windows activeX objects for Internet Explorer). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
function registerVLCEvent(event, handler)&lt;br /&gt;
{&lt;br /&gt;
var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
if (vlc) {&lt;br /&gt;
    if (vlc.attachEvent) {&lt;br /&gt;
        // Microsoft&lt;br /&gt;
        vlc.attachEvent (event, handler);&lt;br /&gt;
    } else if (vlc.addEventListener) {&lt;br /&gt;
        // Mozilla: DOM level 2&lt;br /&gt;
        vlc.addEventListener (event, handler, false);&lt;br /&gt;
    } else {&lt;br /&gt;
        // DOM level 0&lt;br /&gt;
        vlc[&amp;quot;on&amp;quot; + event] = handler;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
// stop listening to event&lt;br /&gt;
function unregisterVLCEvent(event, handler)&lt;br /&gt;
{&lt;br /&gt;
var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
if (vlc) {&lt;br /&gt;
    if (vlc.detachEvent) {&lt;br /&gt;
        // Microsoft&lt;br /&gt;
        vlc.detachEvent (event, handler);&lt;br /&gt;
    } else if (vlc.removeEventListener) {&lt;br /&gt;
        // Mozilla: DOM level 2&lt;br /&gt;
        vlc.removeEventListener (event, handler, false);&lt;br /&gt;
    } else {&lt;br /&gt;
        // DOM level 0&lt;br /&gt;
        vlc[&amp;quot;on&amp;quot; + event] = null;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
// event callback function for testing&lt;br /&gt;
function handleEvents(event)&lt;br /&gt;
{&lt;br /&gt;
if (!event)&lt;br /&gt;
    event = window.event; // IE&lt;br /&gt;
if (event.target) {&lt;br /&gt;
    // Netscape based browser&lt;br /&gt;
    targ = event.target;&lt;br /&gt;
} else if (event.srcElement) {&lt;br /&gt;
    // ActiveX&lt;br /&gt;
    targ = event.srcElement;&lt;br /&gt;
} else {&lt;br /&gt;
    // No event object, just the value&lt;br /&gt;
    alert(&amp;quot;Event value&amp;quot; + event );&lt;br /&gt;
    return;&lt;br /&gt;
}&lt;br /&gt;
if (targ.nodeType == 3) // defeat Safari bug&lt;br /&gt;
    targ = targ.parentNode;&lt;br /&gt;
alert(&amp;quot;Event &amp;quot; + event.type + &amp;quot; has fired from &amp;quot; + targ );&lt;br /&gt;
}&lt;br /&gt;
// handle mouse grab event from video filter&lt;br /&gt;
function handleMouseGrab(event,X,Y)&lt;br /&gt;
{&lt;br /&gt;
if (!event)&lt;br /&gt;
    event = window.event; // IE&lt;br /&gt;
alert(&amp;quot;new position (&amp;quot; + X + &amp;quot;,&amp;quot; + Y + &amp;quot;)&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
// Register a bunch of callbacks.&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerNothingSpecial&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerOpening&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerBuffering&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerPlaying&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerPaused&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerForward&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerBackward&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerEncounteredError&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerEndReached&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerTimeChanged&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerPositionChanged&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerSeekableChanged&#039;, handleEvents);&lt;br /&gt;
registerVLCEvent(&#039;MediaPlayerPausableChanged&#039;, handleEvents);&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Audio object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.count&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) returns the number of audio track available.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.mute&#039;&#039;&#039;: boolean value to mute and unmute the audio. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.volume&#039;&#039;&#039;: a value between [0-200] which indicates a percentage of the volume. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.track&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6) a value between [1-65535] which indicates the audio track to play or that is playing. a value of 0 means the audio is/will be disabled. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.channel&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6) integer value between [1-5] that indicates which audio channel mode is used, values can be: &amp;quot;1=stereo&amp;quot;, &amp;quot;2=reverse stereo&amp;quot;, &amp;quot;3=left&amp;quot;, &amp;quot;4=right&amp;quot;, &amp;quot;5=dolby&amp;quot;. Use vlc.audio.channel to check if setting of the audio channel mode has succeeded.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.toggleMute()&#039;&#039;&#039;: boolean toggle that mutes and unmutes the audio based upon the previous state. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.description(int i)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) give the i-th audio track name. 0 corresponds to disable and 1 to the first audio track.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot; line&amp;gt;&lt;br /&gt;
Audio Channel:&lt;br /&gt;
&amp;lt;select readonly onChange=&#039;doAudioChannel(this.value)&#039;&amp;gt;&lt;br /&gt;
&amp;lt;option value=1&amp;gt;Stereo&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=2&amp;gt;Reverse stereo&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=3&amp;gt;Left&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=4&amp;gt;Right&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=5&amp;gt;Dolby&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;/select&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
function doAudioChannel(value)&lt;br /&gt;
{&lt;br /&gt;
var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
vlc.audio.channel = parseInt(value);&lt;br /&gt;
alert(vlc.audio.channel);&lt;br /&gt;
};&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Input object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.length&#039;&#039;&#039;: length of the input file in number of milliseconds. 0 is returned for &#039;live&#039; streams or clips whose length cannot be determined by VLC. It returns -1 if no input is playing. &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.fps&#039;&#039;&#039;: frames per second returned as a float (typically 60.0, 50.0, 23.976, etc...) &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.hasVout&#039;&#039;&#039;: a boolean that returns true when the video is being displayed, it returns false when video is not displayed&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.position&#039;&#039;&#039;: normalized position in multimedia stream item given as a float value between [0.0 - 1.0] &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.time&#039;&#039;&#039;: the absolute position in time given in milliseconds, this property can be used to seek through the stream&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;!-- absolute seek in stream&amp;amp;nbsp;!--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = &amp;amp;lt;absolute seek&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!-- relative seek in stream&amp;amp;nbsp;!--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = vlc.input.time + &amp;amp;lt;relative seek&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.state&#039;&#039;&#039;: current state of the input chain given as enumeration (IDLE=0, OPENING=1, BUFFERING=2, PLAYING=3, PAUSED=4, STOPPING=5, ENDED=6, ERROR=7). Note: Test for ENDED=6 to catch end of playback. Checking for STOPPING=5 is NOT ENOUGH. &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.rate&#039;&#039;&#039;: input speed given as float (1.0 for normal speed, 0.5 for half speed, 2.0 for twice as fast, etc.).&lt;br /&gt;
&lt;br /&gt;
 rate &amp;amp;gt; 1             &amp;amp;nbsp;: is fastforward&lt;br /&gt;
 rate &amp;amp;gt; 0 and rate &amp;amp;lt; 1&amp;amp;nbsp;: is slow motion&lt;br /&gt;
 rate &amp;amp;lt; 0             &amp;amp;nbsp;: is rewind&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Playlist object ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.itemCount&#039;&#039;&#039;: number that returns the amount of items currently in the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]]) &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.isPlaying&#039;&#039;&#039;: a boolean that returns true if the current playlist item is playing and false when it is not playing &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items&#039;&#039;&#039;: return the playlist items collection, see [[#Playlist_items_object|Playlist items]]&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl)&#039;&#039;&#039;: add a playlist item as [[MRL]]. The MRL must be given as a string. Returns a number as an item identifier in playlist (this is not a position in playlist). &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl,name,options)&#039;&#039;&#039;: add a playlist item as MRL, with metaname &#039;name&#039; and options &#039;options&#039;. options are text arguments which can be provided either as a single string containing space separated values, akin to VLC command line, or as an array of string values. Returns a number as an item identifier in playlist (this is not a position in playlist).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line&amp;gt;&lt;br /&gt;
var options = new Array(&amp;quot;:aspect-ratio=4:3&amp;quot;, &amp;quot;--rtsp-tcp&amp;quot;);&lt;br /&gt;
var id = vlc.playlist.add(&amp;quot;rtsp://servername/item/to/play&amp;quot;, &amp;quot;fancy name&amp;quot;, options);&lt;br /&gt;
vlc.playlist.playItem(id);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.play()&#039;&#039;&#039;: start playing the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.playItem(number)&#039;&#039;&#039;: start playing the item whose identifier is number &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.pause()&#039;&#039;&#039;: pause the current playlist item&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.togglePause()&#039;&#039;&#039;: toggle the pause state for the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.stop()&#039;&#039;&#039;: stop playing the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.next()&#039;&#039;&#039;: iterate to the next playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.prev()&#039;&#039;&#039;: iterate to the previous playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]]) &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.removeItem(number)&#039;&#039;&#039;: remove the item from playlist whose identifier is number &amp;lt;!-- (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() ) --&amp;gt; (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]])&lt;br /&gt;
&lt;br /&gt;
=== Playlist items object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.count&#039;&#039;&#039;: number of items currently in the playlist&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist. If a movie is playing, it stop. Note that when this method returns, playlist may not have been entirely been cleared as this operation is performed asynchronously; use the &#039;&#039;count&#039;&#039; property to verify/wait until the playlist is empty. &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.remove(number)&#039;&#039;&#039;: remove the item whose identifier is number from playlist. (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() )&lt;br /&gt;
&lt;br /&gt;
== Subtitle object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.count&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) returns the number of subtitle available.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.track&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.description(int i)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) give the i-th subtitle name. 0 correspond to disable and 1 to the first subtitle.&lt;br /&gt;
&lt;br /&gt;
== Video object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.width&#039;&#039;&#039;: returns the horizontal size of the video &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.height&#039;&#039;&#039;: returns the vertical size of the video&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.fullscreen&#039;&#039;&#039;: when set to true the video will be displayed in fullscreen mode, when set to false the video will be shown inside the video output size. The property takes a boolean as input. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.aspectRatio&#039;&#039;&#039;: get and set the aspect ratio to use in the video screen. The property takes a string as input value. Typical values are: &amp;quot;1:1&amp;quot;, &amp;quot;4:3&amp;quot;, &amp;quot;16:9&amp;quot;, &amp;quot;16:10&amp;quot;, &amp;quot;221:100&amp;quot; and &amp;quot;5:4&amp;quot; &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.subtitle&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6a) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.teletext&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 0.9.0) get and set teletext page to show on the video stream. This will only work if a teletext elementary stream is available in the video stream. The property takes an integer as input value [0..999] for indicating the teletext page to view, setting the value to 0 means hide teletext. On error it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleFullscreen()&#039;&#039;&#039;: toggle the fullscreen mode based on the previous setting &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleTeletext()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 0.9.0) toggle the teletext page to overlay transparent or not, based on the previous setting&lt;br /&gt;
&lt;br /&gt;
=== Deinterlace Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.deinterlace.enable(&amp;quot;my_mode&amp;quot;)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable deinterlacing with my_mode. You can enable it with &amp;quot;blend&amp;quot;, &amp;quot;bob&amp;quot;, &amp;quot;discard&amp;quot;, &amp;quot;linear&amp;quot;, &amp;quot;mean&amp;quot;, &amp;quot;x&amp;quot;, &amp;quot;yadif&amp;quot; or &amp;quot;yadif2x&amp;quot; mode. Enabling too soon deinterlacing may cause some problems. You have to wait that all variable are available before enabling it. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.deinterlace.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable deinterlacing.&lt;br /&gt;
&lt;br /&gt;
=== Marquee Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.text&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display my text on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.color&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text color. val is the new color to use (WHITE=0x000000, BLACK=0xFFFFFF, RED=0xFF0000, GREEN=0x00FF00, BLUE=0x0000FF...). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.opacity&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text opacity, val is defined from 0 (completely transparent) to 255 (completely opaque). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.position&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text position (CENTER=0, LEFT=1, RIGHT=2, TOP=4, TOP-LEFT=5, TOP-RIGHT=6, BOTTOM=8, BOTTOM-LEFT=9, BOTTOM_RIGHT=10). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.refresh&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the marquee refresh period. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.size&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) val define the new size for the text displayed on the screen. If the text is bigger than the screen then the text is not displayed. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.timeout&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the timeout value. val is defined in ms, but 0 value correspond to unlimited. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.x&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change text abscissa. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.y&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change text ordinate.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.enable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable marquee filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable marquee filter.&lt;br /&gt;
&lt;br /&gt;
Some problems may happen (option like color or text will not be applied) because of the VLC asynchronous functioning. To avoid it, after enabling marquee, you have to wait a little time before changing an option. But it should be fixed by the new vout implementation. &lt;br /&gt;
&lt;br /&gt;
NOTE: [http://forum.videolan.org/viewtopic.php?f=16&amp;amp;t=89427#p295058] &lt;br /&gt;
&lt;br /&gt;
=== Logo Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.opacity&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture opacity, val is defined from 0 (completely transparent) to 255 (completely opaque). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.position&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text position (&amp;quot;center&amp;quot;, &amp;quot;left&amp;quot;, &amp;quot;right&amp;quot;, &amp;quot;top&amp;quot;, &amp;quot;top-left&amp;quot;, &amp;quot;top-right&amp;quot;, &amp;quot;bottom&amp;quot;, &amp;quot;bottom-left&amp;quot;, &amp;quot;bottom-right&amp;quot;). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.delay&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display each picture for a duration of 1000 ms (default) before displaying the next picture. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.repeat&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) number of loops for picture animation (-1=continuous, 0=disabled, n=n-times). The default is -1 (continuous). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.x&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the x-offset for displaying the picture counting from top-left on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.y&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the y-offset for displaying the picture counting from top-left on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.width&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture width. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.height&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture height.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.enable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable logo video filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable logo video filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.file(&amp;quot;file.png&amp;quot;)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display my file.png as logo on the screen.&lt;br /&gt;
&lt;br /&gt;
Some problems may happen because of the VLC asynchronous functioning. To avoid it, after enabling logo video filter, you have to wait a little time before changing an option. But it should be fixed by the new vout implementation.&lt;br /&gt;
&lt;br /&gt;
== MediaDescription Object   ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.title&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns title meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.artist&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns artist meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.copyright&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns copyright meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.album&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns album meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.trackNumber&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns trackNumber meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.description&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns description meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.rating&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns rating meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.date&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns date meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.setting&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns setting meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.URL&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns URL meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.language&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns language meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.nowPlaying&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns nowPlaying meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.publisher&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns publisher meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.encodedBy&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns encodedBy meta information field.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.artworkURL&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns artworkURL meta information field.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.trackID&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns trackID meta information field.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== DEPRECATED APIs ==&lt;br /&gt;
=== DEPRECATED: Log object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
This object allows accessing VLC main message logging queue. Typically this queue capacity is very small (no nore than 256 entries) and can easily overflow, therefore messages should be read and cleared as often as possible. &lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.messages&#039;&#039;&#039;: returns the message collection, see [[#Messages_object|Messages object]]&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.verbosity&#039;&#039;&#039;: write number [-1,0,1,2,3] for changing the verbosity level of the log messages; messages whose verbosity is higher than set will be not be logged in the queue. The numbers have the following meaning: -1 disable, 0 info, 1 error, 2 warning, 3 debug.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Messages object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;messages.count&#039;&#039;&#039;: returns number of messages in the log&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;messages.clear()&#039;&#039;&#039;: clear the current log buffer. It should be called as frequently as possible to not overflow the message queue. Call this method after the log messages of interest are read. &lt;br /&gt;
*&#039;&#039;&#039;messages.iterator()&#039;&#039;&#039;: creates and returns an iterator object, used to iterate over the messages in the log. &#039;&#039;&#039;Don&#039;t clear the log buffer while holding an iterator object.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Messages Iterator object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iterator.hasNext&#039;&#039;&#039;: returns a boolean that indicates whether &#039;&#039;vlc.log.messages.next()&#039;&#039; will return the next message.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iterator.next()&#039;&#039;&#039;: returns the next message object in the log, see [[Message object]]&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Message subobject  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;message.severity&#039;&#039;&#039;: number that indicates the severity of the log message (0 = info, 1 = error, 2 = warning, 3 = debug) &lt;br /&gt;
*&#039;&#039;&#039;message.name&#039;&#039;&#039;: name of VLC module that printed the log message (e.g: main, http, directx, etc...) &lt;br /&gt;
*&#039;&#039;&#039;message.type&#039;&#039;&#039;: type of VLC module that printed the log message (eg: input, access, vout, sout, etc...) &lt;br /&gt;
*&#039;&#039;&#039;message.message&#039;&#039;&#039;: the message text&lt;br /&gt;
&lt;br /&gt;
{{Documentation}} &lt;br /&gt;
&lt;br /&gt;
[[Category:Embedded]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:WebPlugin&amp;diff=23663</id>
		<title>Documentation:WebPlugin</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:WebPlugin&amp;diff=23663"/>
		<updated>2013-01-02T13:26:46Z</updated>

		<summary type="html">&lt;p&gt;Etix: /* Optionnal elements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This Documentation speaks about the {{VLC}} Web plugins and how to write pages for it. &lt;br /&gt;
{{RightMenu|documentation play howto toc}} &lt;br /&gt;
&lt;br /&gt;
= Introduction: Building Web pages with Video =&lt;br /&gt;
&lt;br /&gt;
The {{VLC}} webplugins are native browser plugins, similar to Flash or Silverlight plugins and allow playback inside the browser of all the videos that {{VLC}} can read.&lt;br /&gt;
&lt;br /&gt;
Additionally to viewing video on all pages, you can build custom pages that will use the advanced features of the plugin, using Javascript functions to control playback or extract information from the plugin. &lt;br /&gt;
&lt;br /&gt;
There are 2 main plugins: one is ActiveX for IE, the other is NPAPI for the other browsers. They feature the same amount of features.&lt;br /&gt;
&lt;br /&gt;
In older versions, those plugins were very crashy. &#039;&#039;&#039;We URGE YOU&#039;&#039;&#039; to use VLC &#039;&#039;&#039;1.2.0&#039;&#039;&#039; or newer versions.&lt;br /&gt;
&lt;br /&gt;
=== Browsers support ===&lt;br /&gt;
It has been tested with:&lt;br /&gt;
* Mozilla Firefox [[Image:Firefox-logo.png|40x40px]]&lt;br /&gt;
* Internet Explorer [[Image:20101105053305!Internet Explorer 9.png|40x40px]]&lt;br /&gt;
* Safari [[Image:Apple Safari.png|40x40px]]&lt;br /&gt;
* Chrome&lt;br /&gt;
* Konqueror&lt;br /&gt;
* Opera&lt;br /&gt;
&lt;br /&gt;
It has been tested on GNU/Linux, Windows and MacOS.&lt;br /&gt;
&lt;br /&gt;
= Embed tag attributes =&lt;br /&gt;
&lt;br /&gt;
To embed the plugin into a webpage use the following &amp;amp;lt;embed&amp;amp;gt; template: &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot; pluginspage=&amp;quot;http://www.videolan.org&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;object classid=&amp;quot;clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921&amp;quot; codebase=&amp;quot;http://download.videolan.org/pub/videolan/vlc/last/win32/axvlc.cab&amp;quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Required elements ===&lt;br /&gt;
These are &#039;&#039;&#039;required&#039;&#039;&#039; attributes for the &amp;amp;lt;embed&amp;amp;gt; tag: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039;: Specifies the width of the plugin. &lt;br /&gt;
*&#039;&#039;&#039;height&#039;&#039;&#039;: Specifies the height of the plugin. &lt;br /&gt;
*&#039;&#039;&#039;target&#039;&#039;&#039; (or one of these alias: &#039;&#039;&#039;mrl&#039;&#039;&#039;, &#039;&#039;&#039;filename&#039;&#039;&#039;, &#039;&#039;&#039;src&#039;&#039;&#039;): Specifies the source location (URL) of the video to load.&lt;br /&gt;
&lt;br /&gt;
=== Optionnal elements ===&lt;br /&gt;
These are additional attributes for the &amp;amp;lt;embed&amp;amp;gt; tag: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;autoplay&#039;&#039;&#039;, &#039;&#039;&#039;autostart&#039;&#039;&#039;: Specifies whether the plugin starts playing on load. Default: &#039;&#039;true&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;allowfullscreen&#039;&#039;&#039;: (since VLC version 1.2.0) Specifies whether the user can switch into fullscreen mode. Default: &#039;&#039;true&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;windowless&#039;&#039;&#039;: (since VLC version 2.0.6) Draw the video on a window-less (non-accelerated) surface and allow styling (CSS overlay, 3D transformations, and much more). Default: &#039;&#039;false&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;mute&#039;&#039;&#039;: Specifies whether the audio volume is initially muted. Default: &#039;&#039;false&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;loop&#039;&#039;&#039;, &#039;&#039;&#039;autoloop&#039;&#039;&#039;: Specifies whether the video loops on end. Default: &#039;&#039;false&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;toolbar&#039;&#039;&#039;: Specifies whether the toolbar is shown by default. Default: &#039;&#039;true&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039;: Specifies the background color of the video player. Default: &#039;&#039;#000000&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Normal DOM elements ===&lt;br /&gt;
*&#039;&#039;&#039;id&#039;&#039;&#039;: DOM id&lt;br /&gt;
*&#039;&#039;&#039;name&#039;&#039;&#039;: DOM name&lt;br /&gt;
&lt;br /&gt;
= Javascript API description  =&lt;br /&gt;
&lt;br /&gt;
The vlc plugin exports several objects that can be accessed for setting and getting information. When used improperly the API&#039;s will throw an exception that includes a string that explains what happened. For example when asking for vlc.input.length when there is no playlist item playing. &lt;br /&gt;
&lt;br /&gt;
== VLC objects ==&lt;br /&gt;
The vlc plugin knows the following objects: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;audio&#039;&#039;&#039;: Access audio properties. &lt;br /&gt;
*&#039;&#039;&#039;input&#039;&#039;&#039;: Access input properties. &lt;br /&gt;
*&#039;&#039;&#039;playlist&#039;&#039;&#039;: Access playlist properties. &lt;br /&gt;
*&#039;&#039;&#039;subtitle&#039;&#039;&#039;: Access subtitle properties. &lt;br /&gt;
*&#039;&#039;&#039;video&#039;&#039;&#039;: Access video properties. &lt;br /&gt;
**&#039;&#039;&#039;video.marquee&#039;&#039;&#039;: Access marquee video filter properties. &lt;br /&gt;
**&#039;&#039;&#039;video.logo&#039;&#039;&#039;: Access logo video filter properties. &lt;br /&gt;
*&#039;&#039;&#039;mediaDescription&#039;&#039;&#039;: Access media info properties (only available in vlc version &amp;gt;= 2.0.2).&lt;br /&gt;
&lt;br /&gt;
The following are deprecated:&lt;br /&gt;
*&#039;&#039;&#039;log&#039;&#039;&#039;: Access log properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
*&#039;&#039;&#039;messages&#039;&#039;&#039;: Access to log message properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
*&#039;&#039;&#039;iterator&#039;&#039;&#039;: Access to log iterator properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1).&lt;br /&gt;
*&#039;&#039;&#039;message&#039;&#039;&#039;: Access to log message properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
The following JavaScript code shows howto get a reference to the vlc plugin. This reference can then be used to access the objects of the vlc plugin. &lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;html&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;title&amp;amp;gt;VLC Mozilla plugin test page&amp;amp;lt;/title&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot; pluginspage=&amp;quot;http://www.videolan.org&amp;quot;&lt;br /&gt;
  width=&amp;quot;640&amp;quot;&lt;br /&gt;
  height=&amp;quot;480&amp;quot;&lt;br /&gt;
  id=&amp;quot;vlc&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/embed&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;script language=&amp;quot;Javascript&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!--&lt;br /&gt;
 var vlc = document.getElementById(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
 vlc.audio.toggleMute();&lt;br /&gt;
 //!--&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/script&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/html&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Root object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;VersionInfo&#039;&#039;&#039;: returns version information string&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.versionInfo()&#039;&#039;&#039;: returns version information string (same as VersionInfo)&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.addEventListener(eventname, callback, bubble)&#039;&#039;&#039;: (only for Mozilla) add a listener for mentioned event name, callback expects a function and bubble influences the order of eventhandling by JS (usually it is set to false). &lt;br /&gt;
*&#039;&#039;&#039;vlc.removeEventListener(eventname, callback, bubble)&#039;&#039;&#039;: (only for Mozilla) remove listener for mentioned event name, callback expects a function and bubble influences the order of eventhandling by JS (usually it is set to false).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.attachEvent(eventname, callback)&#039;&#039;&#039;: (only for ActiveX) add listener for mentioned event name, callback expects a function &lt;br /&gt;
*&#039;&#039;&#039;vlc.removeEvent(eventname, callback)&#039;&#039;&#039;: (only for ActiveX) remove listener for mentioned event name, callback expects a function&lt;br /&gt;
&lt;br /&gt;
events &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerNothingSpecial&#039;&#039;&#039;: vlc is in idle state doing nothing but waiting for a command to be issued &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerOpening&#039;&#039;&#039;: vlc is opening an media resource locator (MRL) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerBuffering&#039;&#039;&#039;: vlc is buffering &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPlaying&#039;&#039;&#039;: vlc is playing a media &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPaused&#039;&#039;&#039;: vlc is in paused state &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerForward&#039;&#039;&#039;: vlc is fastforwarding through the media (works only when an input supports forward playback) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerBackward&#039;&#039;&#039;: vlc is going backwards through the media (works only when an input supports backwards playback) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerEncounteredError&#039;&#039;&#039;: vlc has encountered an error and is unable to continue &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerEndReached&#039;&#039;&#039;: vlc has reached the end of current playlist &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerTimeChanged&#039;&#039;&#039;: time has changed &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPositionChanged&#039;&#039;&#039;: media position has changed &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerSeekableChanged&#039;&#039;&#039;: media seekable flag has changed (true means media is seekable, false means it is not) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPausableChanged&#039;&#039;&#039;: media pausable flag has changed (true means media is pauseable, false means it is not)&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
The following code snippit provides easy functions to register and unregister event callbacks on all supported platforms (currently only Linux mozilla based browsers and windows activeX objects for Internet Explorer). &lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;SCRIPT language=&amp;quot;javascript&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!--&lt;br /&gt;
 function registerVLCEvent(event, handler)&lt;br /&gt;
 {&lt;br /&gt;
 var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
 if (vlc) {&lt;br /&gt;
     if (vlc.attachEvent) {&lt;br /&gt;
         // Microsoft&lt;br /&gt;
         vlc.attachEvent (event, handler);&lt;br /&gt;
     } else if (vlc.addEventListener) {&lt;br /&gt;
         // Mozilla: DOM level 2&lt;br /&gt;
         vlc.addEventListener (event, handler, false);&lt;br /&gt;
     } else {&lt;br /&gt;
         // DOM level 0&lt;br /&gt;
         vlc[&amp;quot;on&amp;quot; + event] = handler;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // stop listening to event&lt;br /&gt;
 function unregisterVLCEvent(event, handler)&lt;br /&gt;
 {&lt;br /&gt;
 var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
 if (vlc) {&lt;br /&gt;
     if (vlc.detachEvent) {&lt;br /&gt;
         // Microsoft&lt;br /&gt;
         vlc.detachEvent (event, handler);&lt;br /&gt;
     } else if (vlc.removeEventListener) {&lt;br /&gt;
         // Mozilla: DOM level 2&lt;br /&gt;
         vlc.removeEventListener (event, handler, false);&lt;br /&gt;
     } else {&lt;br /&gt;
         // DOM level 0&lt;br /&gt;
         vlc[&amp;quot;on&amp;quot; + event] = null;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // event callback function for testing&lt;br /&gt;
 function handleEvents(event)&lt;br /&gt;
 {&lt;br /&gt;
 if (!event)&lt;br /&gt;
     event = window.event; // IE&lt;br /&gt;
 if (event.target) {&lt;br /&gt;
     // Netscape based browser&lt;br /&gt;
     targ = event.target;&lt;br /&gt;
 } else if (event.srcElement) {&lt;br /&gt;
     // ActiveX&lt;br /&gt;
     targ = event.srcElement;&lt;br /&gt;
 } else {&lt;br /&gt;
     // No event object, just the value&lt;br /&gt;
     alert(&amp;quot;Event value&amp;quot; + event );&lt;br /&gt;
     return;&lt;br /&gt;
 }&lt;br /&gt;
 if (targ.nodeType == 3) // defeat Safari bug&lt;br /&gt;
     targ = targ.parentNode;&lt;br /&gt;
 alert(&amp;quot;Event &amp;quot; + event.type + &amp;quot; has fired from &amp;quot; + targ );&lt;br /&gt;
 }&lt;br /&gt;
 // handle mouse grab event from video filter&lt;br /&gt;
 function handleMouseGrab(event,X,Y)&lt;br /&gt;
 {&lt;br /&gt;
 if (!event)&lt;br /&gt;
     event = window.event; // IE&lt;br /&gt;
 alert(&amp;quot;new position (&amp;quot; + X + &amp;quot;,&amp;quot; + Y + &amp;quot;)&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
 // Register a bunch of callbacks.&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerNothingSpecial&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerOpening&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerBuffering&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerPlaying&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerPaused&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerForward&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerBackward&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerEncounteredError&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerEndReached&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerTimeChanged&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerPositionChanged&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerSeekableChanged&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerPausableChanged&#039;, handleEvents);&lt;br /&gt;
 &amp;amp;lt;/script&amp;amp;gt;&lt;br /&gt;
 --&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Audio object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.count&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) returns the number of audio track available.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.mute&#039;&#039;&#039;: boolean value to mute and unmute the audio. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.volume&#039;&#039;&#039;: a value between [0-200] which indicates a percentage of the volume. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.track&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6) a value between [1-65535] which indicates the audio track to play or that is playing. a value of 0 means the audio is/will be disabled. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.channel&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6) integer value between [1-5] that indicates which audio channel mode is used, values can be: &amp;quot;1=stereo&amp;quot;, &amp;quot;2=reverse stereo&amp;quot;, &amp;quot;3=left&amp;quot;, &amp;quot;4=right&amp;quot;, &amp;quot;5=dolby&amp;quot;. Use vlc.audio.channel to check if setting of the audio channel mode has succeeded.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.toggleMute()&#039;&#039;&#039;: boolean toggle that mutes and unmutes the audio based upon the previous state. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.description(int i)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) give the i-th audio track name. 0 corresponds to disable and 1 to the first audio track.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
 Audio Channel:&lt;br /&gt;
 &amp;amp;lt;SELECT readonly onChange=&#039;doAudioChannel(this.value)&#039;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;OPTION value=1&amp;amp;gt;Stereo&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;OPTION value=2&amp;amp;gt;Reverse stereo&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;OPTION value=3&amp;amp;gt;Left&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;OPTION value=4&amp;amp;gt;Right&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;OPTION value=5&amp;amp;gt;Dolby&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/SELECT&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;SCRIPT language=&amp;quot;javascript&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!--&lt;br /&gt;
 function doAudioChannel(value)&lt;br /&gt;
 {&lt;br /&gt;
 var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
 vlc.audio.channel = parseInt(value);&lt;br /&gt;
 alert(vlc.audio.channel);&lt;br /&gt;
 };&lt;br /&gt;
 --&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Input object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.length&#039;&#039;&#039;: length of the input file in number of milliseconds. 0 is returned for &#039;live&#039; streams or clips whose length cannot be determined by VLC. It returns -1 if no input is playing. &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.fps&#039;&#039;&#039;: frames per second returned as a float (typically 60.0, 50.0, 23.976, etc...) &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.hasVout&#039;&#039;&#039;: a boolean that returns true when the video is being displayed, it returns false when video is not displayed&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.position&#039;&#039;&#039;: normalized position in multimedia stream item given as a float value between [0.0 - 1.0] &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.time&#039;&#039;&#039;: the absolute position in time given in milliseconds, this property can be used to seek through the stream&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;!-- absolute seek in stream&amp;amp;nbsp;!--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = &amp;amp;lt;absolute seek&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!-- relative seek in stream&amp;amp;nbsp;!--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = vlc.input.time + &amp;amp;lt;relative seek&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.state&#039;&#039;&#039;: current state of the input chain given as enumeration (IDLE=0, OPENING=1, BUFFERING=2, PLAYING=3, PAUSED=4, STOPPING=5, ENDED=6, ERROR=7). Note: Test for ENDED=6 to catch end of playback. Checking for STOPPING=5 is NOT ENOUGH. &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.rate&#039;&#039;&#039;: input speed given as float (1.0 for normal speed, 0.5 for half speed, 2.0 for twice as fast, etc.).&lt;br /&gt;
&lt;br /&gt;
 rate &amp;amp;gt; 1             &amp;amp;nbsp;: is fastforward&lt;br /&gt;
 rate &amp;amp;gt; 0 and rate &amp;amp;lt; 1&amp;amp;nbsp;: is slow motion&lt;br /&gt;
 rate &amp;amp;lt; 0             &amp;amp;nbsp;: is rewind&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Playlist object ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.itemCount&#039;&#039;&#039;: number that returns the amount of items currently in the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]]) &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.isPlaying&#039;&#039;&#039;: a boolean that returns true if the current playlist item is playing and false when it is not playing &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items&#039;&#039;&#039;: return the playlist items collection, see [[#Playlist_items_object|Playlist items]]&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl)&#039;&#039;&#039;: add a playlist item as [[MRL]]. The MRL must be given as a string. Returns a number as an item identifier in playlist (this is not a position in playlist). &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl,name,options)&#039;&#039;&#039;: add a playlist item as MRL, with metaname &#039;name&#039; and options &#039;options&#039;. options are text arguments which can be provided either as a single string containing space separated values, akin to VLC command line, or as an array of string values. Returns a number as an item identifier in playlist (this is not a position in playlist).&lt;br /&gt;
&lt;br /&gt;
  var options = new Array(&amp;quot;:aspect-ratio=4:3&amp;quot;, &amp;quot;--rtsp-tcp&amp;quot;);&lt;br /&gt;
 var id = vlc.playlist.add(&amp;quot;rtsp://servername/item/to/play&amp;quot;, &amp;quot;fancy name&amp;quot;, options);&lt;br /&gt;
 vlc.playlist.playItem(id);&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.play()&#039;&#039;&#039;: start playing the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.playItem(number)&#039;&#039;&#039;: start playing the item whose identifier is number &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.pause()&#039;&#039;&#039;: pause the current playlist item&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.togglePause()&#039;&#039;&#039;: toggle the pause state for the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.stop()&#039;&#039;&#039;: stop playing the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.next()&#039;&#039;&#039;: iterate to the next playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.prev()&#039;&#039;&#039;: iterate to the previous playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]]) &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.removeItem(number)&#039;&#039;&#039;: remove the item from playlist whose identifier is number &amp;lt;!-- (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() ) --&amp;gt; (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]])&lt;br /&gt;
&lt;br /&gt;
=== Playlist items object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.count&#039;&#039;&#039;: number of items currently in the playlist&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist. If a movie is playing, it stop. Note that when this method returns, playlist may not have been entirely been cleared as this operation is performed asynchronously; use the &#039;&#039;count&#039;&#039; property to verify/wait until the playlist is empty. &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.remove(number)&#039;&#039;&#039;: remove the item whose identifier is number from playlist. (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() )&lt;br /&gt;
&lt;br /&gt;
== Subtitle object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.count&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) returns the number of subtitle available.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.track&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.description(int i)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) give the i-th subtitle name. 0 correspond to disable and 1 to the first subtitle.&lt;br /&gt;
&lt;br /&gt;
== Video object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.width&#039;&#039;&#039;: returns the horizontal size of the video &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.height&#039;&#039;&#039;: returns the vertical size of the video&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.fullscreen&#039;&#039;&#039;: when set to true the video will be displayed in fullscreen mode, when set to false the video will be shown inside the video output size. The property takes a boolean as input. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.aspectRatio&#039;&#039;&#039;: get and set the aspect ratio to use in the video screen. The property takes a string as input value. Typical values are: &amp;quot;1:1&amp;quot;, &amp;quot;4:3&amp;quot;, &amp;quot;16:9&amp;quot;, &amp;quot;16:10&amp;quot;, &amp;quot;221:100&amp;quot; and &amp;quot;5:4&amp;quot; &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.subtitle&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6a) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.teletext&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 0.9.0) get and set teletext page to show on the video stream. This will only work if a teletext elementary stream is available in the video stream. The property takes an integer as input value [0..999] for indicating the teletext page to view, setting the value to 0 means hide teletext. On error it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleFullscreen()&#039;&#039;&#039;: toggle the fullscreen mode based on the previous setting &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleTeletext()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 0.9.0) toggle the teletext page to overlay transparent or not, based on the previous setting&lt;br /&gt;
&lt;br /&gt;
=== Deinterlace Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.deinterlace.enable(&amp;quot;my_mode&amp;quot;)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable deinterlacing with my_mode. You can enable it with &amp;quot;blend&amp;quot;, &amp;quot;bob&amp;quot;, &amp;quot;discard&amp;quot;, &amp;quot;linear&amp;quot;, &amp;quot;mean&amp;quot;, &amp;quot;x&amp;quot;, &amp;quot;yadif&amp;quot; or &amp;quot;yadif2x&amp;quot; mode. Enabling too soon deinterlacing may cause some problems. You have to wait that all variable are available before enabling it. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.deinterlace.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable deinterlacing.&lt;br /&gt;
&lt;br /&gt;
=== Marquee Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.text&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display my text on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.color&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text color. val is the new color to use (WHITE=0x000000, BLACK=0xFFFFFF, RED=0xFF0000, GREEN=0x00FF00, BLUE=0x0000FF...). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.opacity&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text opacity, val is defined from 0 (completely transparent) to 255 (completely opaque). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.position&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text position (CENTER=0, LEFT=1, RIGHT=2, TOP=4, TOP-LEFT=5, TOP-RIGHT=6, BOTTOM=8, BOTTOM-LEFT=9, BOTTOM_RIGHT=10). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.refresh&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the marquee refresh period. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.size&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) val define the new size for the text displayed on the screen. If the text is bigger than the screen then the text is not displayed. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.timeout&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the timeout value. val is defined in ms, but 0 value correspond to unlimited. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.x&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change text abscissa. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.y&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change text ordinate.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.enable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable marquee filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable marquee filter.&lt;br /&gt;
&lt;br /&gt;
Some problems may happen (option like color or text will not be applied) because of the VLC asynchronous functioning. To avoid it, after enabling marquee, you have to wait a little time before changing an option. But it should be fixed by the new vout implementation. &lt;br /&gt;
&lt;br /&gt;
NOTE: [http://forum.videolan.org/viewtopic.php?f=16&amp;amp;t=89427#p295058] &lt;br /&gt;
&lt;br /&gt;
=== Logo Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.opacity&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture opacity, val is defined from 0 (completely transparent) to 255 (completely opaque). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.position&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text position (&amp;quot;center&amp;quot;, &amp;quot;left&amp;quot;, &amp;quot;right&amp;quot;, &amp;quot;top&amp;quot;, &amp;quot;top-left&amp;quot;, &amp;quot;top-right&amp;quot;, &amp;quot;bottom&amp;quot;, &amp;quot;bottom-left&amp;quot;, &amp;quot;bottom-right&amp;quot;). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.delay&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display each picture for a duration of 1000 ms (default) before displaying the next picture. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.repeat&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) number of loops for picture animation (-1=continuous, 0=disabled, n=n-times). The default is -1 (continuous). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.x&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the x-offset for displaying the picture counting from top-left on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.y&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the y-offset for displaying the picture counting from top-left on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.width&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture width. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.height&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture height.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.enable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable logo video filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable logo video filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.file(&amp;quot;file.png&amp;quot;)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display my file.png as logo on the screen.&lt;br /&gt;
&lt;br /&gt;
Some problems may happen because of the VLC asynchronous functioning. To avoid it, after enabling logo video filter, you have to wait a little time before changing an option. But it should be fixed by the new vout implementation.&lt;br /&gt;
&lt;br /&gt;
== MediaDescription Object   ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.title&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns title meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.artist&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns artist meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.copyright&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns copyright meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.album&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns album meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.trackNumber&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns trackNumber meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.description&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns description meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.rating&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns rating meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.date&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns date meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.setting&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns setting meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.URL&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns URL meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.language&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns language meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.nowPlaying&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns nowPlaying meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.publisher&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns publisher meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.encodedBy&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns encodedBy meta information field.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.artworkURL&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns artworkURL meta information field.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.trackID&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns trackID meta information field.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== DEPRECATED APIs ==&lt;br /&gt;
=== DEPRECATED: Log object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
This object allows accessing VLC main message logging queue. Typically this queue capacity is very small (no nore than 256 entries) and can easily overflow, therefore messages should be read and cleared as often as possible. &lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.messages&#039;&#039;&#039;: returns the message collection, see [[#Messages_object|Messages object]]&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.verbosity&#039;&#039;&#039;: write number [-1,0,1,2,3] for changing the verbosity level of the log messages; messages whose verbosity is higher than set will be not be logged in the queue. The numbers have the following meaning: -1 disable, 0 info, 1 error, 2 warning, 3 debug.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Messages object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;messages.count&#039;&#039;&#039;: returns number of messages in the log&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;messages.clear()&#039;&#039;&#039;: clear the current log buffer. It should be called as frequently as possible to not overflow the message queue. Call this method after the log messages of interest are read. &lt;br /&gt;
*&#039;&#039;&#039;messages.iterator()&#039;&#039;&#039;: creates and returns an iterator object, used to iterate over the messages in the log. &#039;&#039;&#039;Don&#039;t clear the log buffer while holding an iterator object.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Messages Iterator object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iterator.hasNext&#039;&#039;&#039;: returns a boolean that indicates whether &#039;&#039;vlc.log.messages.next()&#039;&#039; will return the next message.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iterator.next()&#039;&#039;&#039;: returns the next message object in the log, see [[Message object]]&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Message subobject  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;message.severity&#039;&#039;&#039;: number that indicates the severity of the log message (0 = info, 1 = error, 2 = warning, 3 = debug) &lt;br /&gt;
*&#039;&#039;&#039;message.name&#039;&#039;&#039;: name of VLC module that printed the log message (e.g: main, http, directx, etc...) &lt;br /&gt;
*&#039;&#039;&#039;message.type&#039;&#039;&#039;: type of VLC module that printed the log message (eg: input, access, vout, sout, etc...) &lt;br /&gt;
*&#039;&#039;&#039;message.message&#039;&#039;&#039;: the message text&lt;br /&gt;
&lt;br /&gt;
{{Documentation}} &lt;br /&gt;
&lt;br /&gt;
[[Category:Embedded]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:WebPlugin&amp;diff=23662</id>
		<title>Documentation:WebPlugin</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:WebPlugin&amp;diff=23662"/>
		<updated>2013-01-02T13:19:15Z</updated>

		<summary type="html">&lt;p&gt;Etix: /* Required elements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This Documentation speaks about the {{VLC}} Web plugins and how to write pages for it. &lt;br /&gt;
{{RightMenu|documentation play howto toc}} &lt;br /&gt;
&lt;br /&gt;
= Introduction: Building Web pages with Video =&lt;br /&gt;
&lt;br /&gt;
The {{VLC}} webplugins are native browser plugins, similar to Flash or Silverlight plugins and allow playback inside the browser of all the videos that {{VLC}} can read.&lt;br /&gt;
&lt;br /&gt;
Additionally to viewing video on all pages, you can build custom pages that will use the advanced features of the plugin, using Javascript functions to control playback or extract information from the plugin. &lt;br /&gt;
&lt;br /&gt;
There are 2 main plugins: one is ActiveX for IE, the other is NPAPI for the other browsers. They feature the same amount of features.&lt;br /&gt;
&lt;br /&gt;
In older versions, those plugins were very crashy. &#039;&#039;&#039;We URGE YOU&#039;&#039;&#039; to use VLC &#039;&#039;&#039;1.2.0&#039;&#039;&#039; or newer versions.&lt;br /&gt;
&lt;br /&gt;
=== Browsers support ===&lt;br /&gt;
It has been tested with:&lt;br /&gt;
* Mozilla Firefox [[Image:Firefox-logo.png|40x40px]]&lt;br /&gt;
* Internet Explorer [[Image:20101105053305!Internet Explorer 9.png|40x40px]]&lt;br /&gt;
* Safari [[Image:Apple Safari.png|40x40px]]&lt;br /&gt;
* Chrome&lt;br /&gt;
* Konqueror&lt;br /&gt;
* Opera&lt;br /&gt;
&lt;br /&gt;
It has been tested on GNU/Linux, Windows and MacOS.&lt;br /&gt;
&lt;br /&gt;
= Embed tag attributes =&lt;br /&gt;
&lt;br /&gt;
To embed the plugin into a webpage use the following &amp;amp;lt;embed&amp;amp;gt; template: &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot; pluginspage=&amp;quot;http://www.videolan.org&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;object classid=&amp;quot;clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921&amp;quot; codebase=&amp;quot;http://download.videolan.org/pub/videolan/vlc/last/win32/axvlc.cab&amp;quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Required elements ===&lt;br /&gt;
These are &#039;&#039;&#039;required&#039;&#039;&#039; attributes for the &amp;amp;lt;embed&amp;amp;gt; tag: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039;: Specifies the width of the plugin. &lt;br /&gt;
*&#039;&#039;&#039;height&#039;&#039;&#039;: Specifies the height of the plugin. &lt;br /&gt;
*&#039;&#039;&#039;target&#039;&#039;&#039; (or one of these alias: &#039;&#039;&#039;mrl&#039;&#039;&#039;, &#039;&#039;&#039;filename&#039;&#039;&#039;, &#039;&#039;&#039;src&#039;&#039;&#039;): Specifies the source location (URL) of the video to load.&lt;br /&gt;
&lt;br /&gt;
=== Optionnal elements ===&lt;br /&gt;
These are additional attributes for the &amp;amp;lt;embed&amp;amp;gt; tag: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;autoplay&#039;&#039;&#039;, &#039;&#039;&#039;autostart&#039;&#039;&#039;: Specifies whether the plugin starts playing on load. Default: &#039;&#039;true&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;allowfullscreen&#039;&#039;&#039;: (available since VLC version 1.2.0) Specifies whether the user can switch into fullscreen mode. Default: &#039;&#039;true&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;mute&#039;&#039;&#039;: Specifies whether the audio volume is initially muted. Default: &#039;&#039;false&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;loop&#039;&#039;&#039;, &#039;&#039;&#039;autoloop&#039;&#039;&#039;: Specifies whether the video loops on end. Default: &#039;&#039;false&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;toolbar&#039;&#039;&#039;: Specifies whether the toolbar is shown by default. Default: &#039;&#039;true&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039;: Specifies the background color of the video player. Default: &#039;&#039;#000000&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Normal DOM elements ===&lt;br /&gt;
*&#039;&#039;&#039;id&#039;&#039;&#039;: DOM id&lt;br /&gt;
*&#039;&#039;&#039;name&#039;&#039;&#039;: DOM name&lt;br /&gt;
&lt;br /&gt;
= Javascript API description  =&lt;br /&gt;
&lt;br /&gt;
The vlc plugin exports several objects that can be accessed for setting and getting information. When used improperly the API&#039;s will throw an exception that includes a string that explains what happened. For example when asking for vlc.input.length when there is no playlist item playing. &lt;br /&gt;
&lt;br /&gt;
== VLC objects ==&lt;br /&gt;
The vlc plugin knows the following objects: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;audio&#039;&#039;&#039;: Access audio properties. &lt;br /&gt;
*&#039;&#039;&#039;input&#039;&#039;&#039;: Access input properties. &lt;br /&gt;
*&#039;&#039;&#039;playlist&#039;&#039;&#039;: Access playlist properties. &lt;br /&gt;
*&#039;&#039;&#039;subtitle&#039;&#039;&#039;: Access subtitle properties. &lt;br /&gt;
*&#039;&#039;&#039;video&#039;&#039;&#039;: Access video properties. &lt;br /&gt;
**&#039;&#039;&#039;video.marquee&#039;&#039;&#039;: Access marquee video filter properties. &lt;br /&gt;
**&#039;&#039;&#039;video.logo&#039;&#039;&#039;: Access logo video filter properties. &lt;br /&gt;
*&#039;&#039;&#039;mediaDescription&#039;&#039;&#039;: Access media info properties (only available in vlc version &amp;gt;= 2.0.2).&lt;br /&gt;
&lt;br /&gt;
The following are deprecated:&lt;br /&gt;
*&#039;&#039;&#039;log&#039;&#039;&#039;: Access log properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
*&#039;&#039;&#039;messages&#039;&#039;&#039;: Access to log message properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
*&#039;&#039;&#039;iterator&#039;&#039;&#039;: Access to log iterator properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1).&lt;br /&gt;
*&#039;&#039;&#039;message&#039;&#039;&#039;: Access to log message properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
The following JavaScript code shows howto get a reference to the vlc plugin. This reference can then be used to access the objects of the vlc plugin. &lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;html&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;title&amp;amp;gt;VLC Mozilla plugin test page&amp;amp;lt;/title&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot; pluginspage=&amp;quot;http://www.videolan.org&amp;quot;&lt;br /&gt;
  width=&amp;quot;640&amp;quot;&lt;br /&gt;
  height=&amp;quot;480&amp;quot;&lt;br /&gt;
  id=&amp;quot;vlc&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/embed&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;script language=&amp;quot;Javascript&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!--&lt;br /&gt;
 var vlc = document.getElementById(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
 vlc.audio.toggleMute();&lt;br /&gt;
 //!--&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/script&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/html&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Root object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;VersionInfo&#039;&#039;&#039;: returns version information string&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.versionInfo()&#039;&#039;&#039;: returns version information string (same as VersionInfo)&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.addEventListener(eventname, callback, bubble)&#039;&#039;&#039;: (only for Mozilla) add a listener for mentioned event name, callback expects a function and bubble influences the order of eventhandling by JS (usually it is set to false). &lt;br /&gt;
*&#039;&#039;&#039;vlc.removeEventListener(eventname, callback, bubble)&#039;&#039;&#039;: (only for Mozilla) remove listener for mentioned event name, callback expects a function and bubble influences the order of eventhandling by JS (usually it is set to false).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.attachEvent(eventname, callback)&#039;&#039;&#039;: (only for ActiveX) add listener for mentioned event name, callback expects a function &lt;br /&gt;
*&#039;&#039;&#039;vlc.removeEvent(eventname, callback)&#039;&#039;&#039;: (only for ActiveX) remove listener for mentioned event name, callback expects a function&lt;br /&gt;
&lt;br /&gt;
events &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerNothingSpecial&#039;&#039;&#039;: vlc is in idle state doing nothing but waiting for a command to be issued &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerOpening&#039;&#039;&#039;: vlc is opening an media resource locator (MRL) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerBuffering&#039;&#039;&#039;: vlc is buffering &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPlaying&#039;&#039;&#039;: vlc is playing a media &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPaused&#039;&#039;&#039;: vlc is in paused state &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerForward&#039;&#039;&#039;: vlc is fastforwarding through the media (works only when an input supports forward playback) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerBackward&#039;&#039;&#039;: vlc is going backwards through the media (works only when an input supports backwards playback) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerEncounteredError&#039;&#039;&#039;: vlc has encountered an error and is unable to continue &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerEndReached&#039;&#039;&#039;: vlc has reached the end of current playlist &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerTimeChanged&#039;&#039;&#039;: time has changed &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPositionChanged&#039;&#039;&#039;: media position has changed &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerSeekableChanged&#039;&#039;&#039;: media seekable flag has changed (true means media is seekable, false means it is not) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPausableChanged&#039;&#039;&#039;: media pausable flag has changed (true means media is pauseable, false means it is not)&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
The following code snippit provides easy functions to register and unregister event callbacks on all supported platforms (currently only Linux mozilla based browsers and windows activeX objects for Internet Explorer). &lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;SCRIPT language=&amp;quot;javascript&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!--&lt;br /&gt;
 function registerVLCEvent(event, handler)&lt;br /&gt;
 {&lt;br /&gt;
 var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
 if (vlc) {&lt;br /&gt;
     if (vlc.attachEvent) {&lt;br /&gt;
         // Microsoft&lt;br /&gt;
         vlc.attachEvent (event, handler);&lt;br /&gt;
     } else if (vlc.addEventListener) {&lt;br /&gt;
         // Mozilla: DOM level 2&lt;br /&gt;
         vlc.addEventListener (event, handler, false);&lt;br /&gt;
     } else {&lt;br /&gt;
         // DOM level 0&lt;br /&gt;
         vlc[&amp;quot;on&amp;quot; + event] = handler;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // stop listening to event&lt;br /&gt;
 function unregisterVLCEvent(event, handler)&lt;br /&gt;
 {&lt;br /&gt;
 var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
 if (vlc) {&lt;br /&gt;
     if (vlc.detachEvent) {&lt;br /&gt;
         // Microsoft&lt;br /&gt;
         vlc.detachEvent (event, handler);&lt;br /&gt;
     } else if (vlc.removeEventListener) {&lt;br /&gt;
         // Mozilla: DOM level 2&lt;br /&gt;
         vlc.removeEventListener (event, handler, false);&lt;br /&gt;
     } else {&lt;br /&gt;
         // DOM level 0&lt;br /&gt;
         vlc[&amp;quot;on&amp;quot; + event] = null;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // event callback function for testing&lt;br /&gt;
 function handleEvents(event)&lt;br /&gt;
 {&lt;br /&gt;
 if (!event)&lt;br /&gt;
     event = window.event; // IE&lt;br /&gt;
 if (event.target) {&lt;br /&gt;
     // Netscape based browser&lt;br /&gt;
     targ = event.target;&lt;br /&gt;
 } else if (event.srcElement) {&lt;br /&gt;
     // ActiveX&lt;br /&gt;
     targ = event.srcElement;&lt;br /&gt;
 } else {&lt;br /&gt;
     // No event object, just the value&lt;br /&gt;
     alert(&amp;quot;Event value&amp;quot; + event );&lt;br /&gt;
     return;&lt;br /&gt;
 }&lt;br /&gt;
 if (targ.nodeType == 3) // defeat Safari bug&lt;br /&gt;
     targ = targ.parentNode;&lt;br /&gt;
 alert(&amp;quot;Event &amp;quot; + event.type + &amp;quot; has fired from &amp;quot; + targ );&lt;br /&gt;
 }&lt;br /&gt;
 // handle mouse grab event from video filter&lt;br /&gt;
 function handleMouseGrab(event,X,Y)&lt;br /&gt;
 {&lt;br /&gt;
 if (!event)&lt;br /&gt;
     event = window.event; // IE&lt;br /&gt;
 alert(&amp;quot;new position (&amp;quot; + X + &amp;quot;,&amp;quot; + Y + &amp;quot;)&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
 // Register a bunch of callbacks.&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerNothingSpecial&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerOpening&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerBuffering&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerPlaying&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerPaused&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerForward&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerBackward&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerEncounteredError&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerEndReached&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerTimeChanged&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerPositionChanged&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerSeekableChanged&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerPausableChanged&#039;, handleEvents);&lt;br /&gt;
 &amp;amp;lt;/script&amp;amp;gt;&lt;br /&gt;
 --&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Audio object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.count&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) returns the number of audio track available.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.mute&#039;&#039;&#039;: boolean value to mute and unmute the audio. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.volume&#039;&#039;&#039;: a value between [0-200] which indicates a percentage of the volume. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.track&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6) a value between [1-65535] which indicates the audio track to play or that is playing. a value of 0 means the audio is/will be disabled. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.channel&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6) integer value between [1-5] that indicates which audio channel mode is used, values can be: &amp;quot;1=stereo&amp;quot;, &amp;quot;2=reverse stereo&amp;quot;, &amp;quot;3=left&amp;quot;, &amp;quot;4=right&amp;quot;, &amp;quot;5=dolby&amp;quot;. Use vlc.audio.channel to check if setting of the audio channel mode has succeeded.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.toggleMute()&#039;&#039;&#039;: boolean toggle that mutes and unmutes the audio based upon the previous state. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.description(int i)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) give the i-th audio track name. 0 corresponds to disable and 1 to the first audio track.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
 Audio Channel:&lt;br /&gt;
 &amp;amp;lt;SELECT readonly onChange=&#039;doAudioChannel(this.value)&#039;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;OPTION value=1&amp;amp;gt;Stereo&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;OPTION value=2&amp;amp;gt;Reverse stereo&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;OPTION value=3&amp;amp;gt;Left&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;OPTION value=4&amp;amp;gt;Right&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;OPTION value=5&amp;amp;gt;Dolby&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/SELECT&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;SCRIPT language=&amp;quot;javascript&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!--&lt;br /&gt;
 function doAudioChannel(value)&lt;br /&gt;
 {&lt;br /&gt;
 var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
 vlc.audio.channel = parseInt(value);&lt;br /&gt;
 alert(vlc.audio.channel);&lt;br /&gt;
 };&lt;br /&gt;
 --&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Input object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.length&#039;&#039;&#039;: length of the input file in number of milliseconds. 0 is returned for &#039;live&#039; streams or clips whose length cannot be determined by VLC. It returns -1 if no input is playing. &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.fps&#039;&#039;&#039;: frames per second returned as a float (typically 60.0, 50.0, 23.976, etc...) &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.hasVout&#039;&#039;&#039;: a boolean that returns true when the video is being displayed, it returns false when video is not displayed&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.position&#039;&#039;&#039;: normalized position in multimedia stream item given as a float value between [0.0 - 1.0] &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.time&#039;&#039;&#039;: the absolute position in time given in milliseconds, this property can be used to seek through the stream&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;!-- absolute seek in stream&amp;amp;nbsp;!--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = &amp;amp;lt;absolute seek&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!-- relative seek in stream&amp;amp;nbsp;!--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = vlc.input.time + &amp;amp;lt;relative seek&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.state&#039;&#039;&#039;: current state of the input chain given as enumeration (IDLE=0, OPENING=1, BUFFERING=2, PLAYING=3, PAUSED=4, STOPPING=5, ENDED=6, ERROR=7). Note: Test for ENDED=6 to catch end of playback. Checking for STOPPING=5 is NOT ENOUGH. &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.rate&#039;&#039;&#039;: input speed given as float (1.0 for normal speed, 0.5 for half speed, 2.0 for twice as fast, etc.).&lt;br /&gt;
&lt;br /&gt;
 rate &amp;amp;gt; 1             &amp;amp;nbsp;: is fastforward&lt;br /&gt;
 rate &amp;amp;gt; 0 and rate &amp;amp;lt; 1&amp;amp;nbsp;: is slow motion&lt;br /&gt;
 rate &amp;amp;lt; 0             &amp;amp;nbsp;: is rewind&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Playlist object ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.itemCount&#039;&#039;&#039;: number that returns the amount of items currently in the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]]) &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.isPlaying&#039;&#039;&#039;: a boolean that returns true if the current playlist item is playing and false when it is not playing &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items&#039;&#039;&#039;: return the playlist items collection, see [[#Playlist_items_object|Playlist items]]&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl)&#039;&#039;&#039;: add a playlist item as [[MRL]]. The MRL must be given as a string. Returns a number as an item identifier in playlist (this is not a position in playlist). &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl,name,options)&#039;&#039;&#039;: add a playlist item as MRL, with metaname &#039;name&#039; and options &#039;options&#039;. options are text arguments which can be provided either as a single string containing space separated values, akin to VLC command line, or as an array of string values. Returns a number as an item identifier in playlist (this is not a position in playlist).&lt;br /&gt;
&lt;br /&gt;
  var options = new Array(&amp;quot;:aspect-ratio=4:3&amp;quot;, &amp;quot;--rtsp-tcp&amp;quot;);&lt;br /&gt;
 var id = vlc.playlist.add(&amp;quot;rtsp://servername/item/to/play&amp;quot;, &amp;quot;fancy name&amp;quot;, options);&lt;br /&gt;
 vlc.playlist.playItem(id);&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.play()&#039;&#039;&#039;: start playing the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.playItem(number)&#039;&#039;&#039;: start playing the item whose identifier is number &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.pause()&#039;&#039;&#039;: pause the current playlist item&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.togglePause()&#039;&#039;&#039;: toggle the pause state for the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.stop()&#039;&#039;&#039;: stop playing the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.next()&#039;&#039;&#039;: iterate to the next playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.prev()&#039;&#039;&#039;: iterate to the previous playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]]) &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.removeItem(number)&#039;&#039;&#039;: remove the item from playlist whose identifier is number &amp;lt;!-- (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() ) --&amp;gt; (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]])&lt;br /&gt;
&lt;br /&gt;
=== Playlist items object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.count&#039;&#039;&#039;: number of items currently in the playlist&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist. If a movie is playing, it stop. Note that when this method returns, playlist may not have been entirely been cleared as this operation is performed asynchronously; use the &#039;&#039;count&#039;&#039; property to verify/wait until the playlist is empty. &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.remove(number)&#039;&#039;&#039;: remove the item whose identifier is number from playlist. (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() )&lt;br /&gt;
&lt;br /&gt;
== Subtitle object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.count&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) returns the number of subtitle available.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.track&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.description(int i)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) give the i-th subtitle name. 0 correspond to disable and 1 to the first subtitle.&lt;br /&gt;
&lt;br /&gt;
== Video object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.width&#039;&#039;&#039;: returns the horizontal size of the video &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.height&#039;&#039;&#039;: returns the vertical size of the video&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.fullscreen&#039;&#039;&#039;: when set to true the video will be displayed in fullscreen mode, when set to false the video will be shown inside the video output size. The property takes a boolean as input. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.aspectRatio&#039;&#039;&#039;: get and set the aspect ratio to use in the video screen. The property takes a string as input value. Typical values are: &amp;quot;1:1&amp;quot;, &amp;quot;4:3&amp;quot;, &amp;quot;16:9&amp;quot;, &amp;quot;16:10&amp;quot;, &amp;quot;221:100&amp;quot; and &amp;quot;5:4&amp;quot; &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.subtitle&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6a) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.teletext&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 0.9.0) get and set teletext page to show on the video stream. This will only work if a teletext elementary stream is available in the video stream. The property takes an integer as input value [0..999] for indicating the teletext page to view, setting the value to 0 means hide teletext. On error it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleFullscreen()&#039;&#039;&#039;: toggle the fullscreen mode based on the previous setting &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleTeletext()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 0.9.0) toggle the teletext page to overlay transparent or not, based on the previous setting&lt;br /&gt;
&lt;br /&gt;
=== Deinterlace Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.deinterlace.enable(&amp;quot;my_mode&amp;quot;)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable deinterlacing with my_mode. You can enable it with &amp;quot;blend&amp;quot;, &amp;quot;bob&amp;quot;, &amp;quot;discard&amp;quot;, &amp;quot;linear&amp;quot;, &amp;quot;mean&amp;quot;, &amp;quot;x&amp;quot;, &amp;quot;yadif&amp;quot; or &amp;quot;yadif2x&amp;quot; mode. Enabling too soon deinterlacing may cause some problems. You have to wait that all variable are available before enabling it. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.deinterlace.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable deinterlacing.&lt;br /&gt;
&lt;br /&gt;
=== Marquee Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.text&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display my text on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.color&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text color. val is the new color to use (WHITE=0x000000, BLACK=0xFFFFFF, RED=0xFF0000, GREEN=0x00FF00, BLUE=0x0000FF...). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.opacity&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text opacity, val is defined from 0 (completely transparent) to 255 (completely opaque). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.position&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text position (CENTER=0, LEFT=1, RIGHT=2, TOP=4, TOP-LEFT=5, TOP-RIGHT=6, BOTTOM=8, BOTTOM-LEFT=9, BOTTOM_RIGHT=10). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.refresh&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the marquee refresh period. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.size&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) val define the new size for the text displayed on the screen. If the text is bigger than the screen then the text is not displayed. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.timeout&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the timeout value. val is defined in ms, but 0 value correspond to unlimited. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.x&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change text abscissa. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.y&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change text ordinate.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.enable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable marquee filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable marquee filter.&lt;br /&gt;
&lt;br /&gt;
Some problems may happen (option like color or text will not be applied) because of the VLC asynchronous functioning. To avoid it, after enabling marquee, you have to wait a little time before changing an option. But it should be fixed by the new vout implementation. &lt;br /&gt;
&lt;br /&gt;
NOTE: [http://forum.videolan.org/viewtopic.php?f=16&amp;amp;t=89427#p295058] &lt;br /&gt;
&lt;br /&gt;
=== Logo Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.opacity&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture opacity, val is defined from 0 (completely transparent) to 255 (completely opaque). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.position&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text position (&amp;quot;center&amp;quot;, &amp;quot;left&amp;quot;, &amp;quot;right&amp;quot;, &amp;quot;top&amp;quot;, &amp;quot;top-left&amp;quot;, &amp;quot;top-right&amp;quot;, &amp;quot;bottom&amp;quot;, &amp;quot;bottom-left&amp;quot;, &amp;quot;bottom-right&amp;quot;). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.delay&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display each picture for a duration of 1000 ms (default) before displaying the next picture. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.repeat&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) number of loops for picture animation (-1=continuous, 0=disabled, n=n-times). The default is -1 (continuous). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.x&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the x-offset for displaying the picture counting from top-left on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.y&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the y-offset for displaying the picture counting from top-left on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.width&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture width. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.height&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture height.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.enable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable logo video filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable logo video filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.file(&amp;quot;file.png&amp;quot;)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display my file.png as logo on the screen.&lt;br /&gt;
&lt;br /&gt;
Some problems may happen because of the VLC asynchronous functioning. To avoid it, after enabling logo video filter, you have to wait a little time before changing an option. But it should be fixed by the new vout implementation.&lt;br /&gt;
&lt;br /&gt;
== MediaDescription Object   ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.title&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns title meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.artist&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns artist meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.copyright&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns copyright meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.album&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns album meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.trackNumber&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns trackNumber meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.description&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns description meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.rating&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns rating meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.date&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns date meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.setting&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns setting meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.URL&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns URL meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.language&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns language meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.nowPlaying&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns nowPlaying meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.publisher&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns publisher meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.encodedBy&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns encodedBy meta information field.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.artworkURL&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns artworkURL meta information field.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.trackID&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns trackID meta information field.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== DEPRECATED APIs ==&lt;br /&gt;
=== DEPRECATED: Log object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
This object allows accessing VLC main message logging queue. Typically this queue capacity is very small (no nore than 256 entries) and can easily overflow, therefore messages should be read and cleared as often as possible. &lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.messages&#039;&#039;&#039;: returns the message collection, see [[#Messages_object|Messages object]]&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.verbosity&#039;&#039;&#039;: write number [-1,0,1,2,3] for changing the verbosity level of the log messages; messages whose verbosity is higher than set will be not be logged in the queue. The numbers have the following meaning: -1 disable, 0 info, 1 error, 2 warning, 3 debug.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Messages object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;messages.count&#039;&#039;&#039;: returns number of messages in the log&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;messages.clear()&#039;&#039;&#039;: clear the current log buffer. It should be called as frequently as possible to not overflow the message queue. Call this method after the log messages of interest are read. &lt;br /&gt;
*&#039;&#039;&#039;messages.iterator()&#039;&#039;&#039;: creates and returns an iterator object, used to iterate over the messages in the log. &#039;&#039;&#039;Don&#039;t clear the log buffer while holding an iterator object.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Messages Iterator object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iterator.hasNext&#039;&#039;&#039;: returns a boolean that indicates whether &#039;&#039;vlc.log.messages.next()&#039;&#039; will return the next message.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iterator.next()&#039;&#039;&#039;: returns the next message object in the log, see [[Message object]]&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Message subobject  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;message.severity&#039;&#039;&#039;: number that indicates the severity of the log message (0 = info, 1 = error, 2 = warning, 3 = debug) &lt;br /&gt;
*&#039;&#039;&#039;message.name&#039;&#039;&#039;: name of VLC module that printed the log message (e.g: main, http, directx, etc...) &lt;br /&gt;
*&#039;&#039;&#039;message.type&#039;&#039;&#039;: type of VLC module that printed the log message (eg: input, access, vout, sout, etc...) &lt;br /&gt;
*&#039;&#039;&#039;message.message&#039;&#039;&#039;: the message text&lt;br /&gt;
&lt;br /&gt;
{{Documentation}} &lt;br /&gt;
&lt;br /&gt;
[[Category:Embedded]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:WebPlugin&amp;diff=23661</id>
		<title>Documentation:WebPlugin</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:WebPlugin&amp;diff=23661"/>
		<updated>2013-01-02T13:11:49Z</updated>

		<summary type="html">&lt;p&gt;Etix: Remove the 0.8.5 section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This Documentation speaks about the {{VLC}} Web plugins and how to write pages for it. &lt;br /&gt;
{{RightMenu|documentation play howto toc}} &lt;br /&gt;
&lt;br /&gt;
= Introduction: Building Web pages with Video =&lt;br /&gt;
&lt;br /&gt;
The {{VLC}} webplugins are native browser plugins, similar to Flash or Silverlight plugins and allow playback inside the browser of all the videos that {{VLC}} can read.&lt;br /&gt;
&lt;br /&gt;
Additionally to viewing video on all pages, you can build custom pages that will use the advanced features of the plugin, using Javascript functions to control playback or extract information from the plugin. &lt;br /&gt;
&lt;br /&gt;
There are 2 main plugins: one is ActiveX for IE, the other is NPAPI for the other browsers. They feature the same amount of features.&lt;br /&gt;
&lt;br /&gt;
In older versions, those plugins were very crashy. &#039;&#039;&#039;We URGE YOU&#039;&#039;&#039; to use VLC &#039;&#039;&#039;1.2.0&#039;&#039;&#039; or newer versions.&lt;br /&gt;
&lt;br /&gt;
=== Browsers support ===&lt;br /&gt;
It has been tested with:&lt;br /&gt;
* Mozilla Firefox [[Image:Firefox-logo.png|40x40px]]&lt;br /&gt;
* Internet Explorer [[Image:20101105053305!Internet Explorer 9.png|40x40px]]&lt;br /&gt;
* Safari [[Image:Apple Safari.png|40x40px]]&lt;br /&gt;
* Chrome&lt;br /&gt;
* Konqueror&lt;br /&gt;
* Opera&lt;br /&gt;
&lt;br /&gt;
It has been tested on GNU/Linux, Windows and MacOS.&lt;br /&gt;
&lt;br /&gt;
= Embed tag attributes =&lt;br /&gt;
&lt;br /&gt;
To embed the plugin into a webpage use the following &amp;amp;lt;embed&amp;amp;gt; template: &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot; pluginspage=&amp;quot;http://www.videolan.org&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;object classid=&amp;quot;clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921&amp;quot; codebase=&amp;quot;http://download.videolan.org/pub/videolan/vlc/last/win32/axvlc.cab&amp;quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Required elements ===&lt;br /&gt;
These are &#039;&#039;&#039;required&#039;&#039;&#039; attributes for the &amp;amp;lt;embed&amp;amp;gt; tag: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039;: Specifies the width of the plugin. &lt;br /&gt;
*&#039;&#039;&#039;height&#039;&#039;&#039;: Specifies the height of the plugin. &lt;br /&gt;
*&#039;&#039;&#039;target&#039;&#039;&#039;, &#039;&#039;&#039;mrl&#039;&#039;&#039;, &#039;&#039;&#039;filename&#039;&#039;&#039;, &#039;&#039;&#039;src&#039;&#039;&#039;: Specifies the source location (URL) of the video to load.&lt;br /&gt;
&lt;br /&gt;
=== Optionnal elements ===&lt;br /&gt;
These are additional attributes for the &amp;amp;lt;embed&amp;amp;gt; tag: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;autoplay&#039;&#039;&#039;, &#039;&#039;&#039;autostart&#039;&#039;&#039;: Specifies whether the plugin starts playing on load. Default: &#039;&#039;true&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;allowfullscreen&#039;&#039;&#039;: (available since VLC version 1.2.0) Specifies whether the user can switch into fullscreen mode. Default: &#039;&#039;true&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;mute&#039;&#039;&#039;: Specifies whether the audio volume is initially muted. Default: &#039;&#039;false&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;loop&#039;&#039;&#039;, &#039;&#039;&#039;autoloop&#039;&#039;&#039;: Specifies whether the video loops on end. Default: &#039;&#039;false&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;toolbar&#039;&#039;&#039;: Specifies whether the toolbar is shown by default. Default: &#039;&#039;true&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039;: Specifies the background color of the video player. Default: &#039;&#039;#000000&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Normal DOM elements ===&lt;br /&gt;
*&#039;&#039;&#039;id&#039;&#039;&#039;: DOM id&lt;br /&gt;
*&#039;&#039;&#039;name&#039;&#039;&#039;: DOM name&lt;br /&gt;
&lt;br /&gt;
= Javascript API description  =&lt;br /&gt;
&lt;br /&gt;
The vlc plugin exports several objects that can be accessed for setting and getting information. When used improperly the API&#039;s will throw an exception that includes a string that explains what happened. For example when asking for vlc.input.length when there is no playlist item playing. &lt;br /&gt;
&lt;br /&gt;
== VLC objects ==&lt;br /&gt;
The vlc plugin knows the following objects: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;audio&#039;&#039;&#039;: Access audio properties. &lt;br /&gt;
*&#039;&#039;&#039;input&#039;&#039;&#039;: Access input properties. &lt;br /&gt;
*&#039;&#039;&#039;playlist&#039;&#039;&#039;: Access playlist properties. &lt;br /&gt;
*&#039;&#039;&#039;subtitle&#039;&#039;&#039;: Access subtitle properties. &lt;br /&gt;
*&#039;&#039;&#039;video&#039;&#039;&#039;: Access video properties. &lt;br /&gt;
**&#039;&#039;&#039;video.marquee&#039;&#039;&#039;: Access marquee video filter properties. &lt;br /&gt;
**&#039;&#039;&#039;video.logo&#039;&#039;&#039;: Access logo video filter properties. &lt;br /&gt;
*&#039;&#039;&#039;mediaDescription&#039;&#039;&#039;: Access media info properties (only available in vlc version &amp;gt;= 2.0.2).&lt;br /&gt;
&lt;br /&gt;
The following are deprecated:&lt;br /&gt;
*&#039;&#039;&#039;log&#039;&#039;&#039;: Access log properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
*&#039;&#039;&#039;messages&#039;&#039;&#039;: Access to log message properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
*&#039;&#039;&#039;iterator&#039;&#039;&#039;: Access to log iterator properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1).&lt;br /&gt;
*&#039;&#039;&#039;message&#039;&#039;&#039;: Access to log message properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
The following JavaScript code shows howto get a reference to the vlc plugin. This reference can then be used to access the objects of the vlc plugin. &lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;html&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;title&amp;amp;gt;VLC Mozilla plugin test page&amp;amp;lt;/title&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot; pluginspage=&amp;quot;http://www.videolan.org&amp;quot;&lt;br /&gt;
  width=&amp;quot;640&amp;quot;&lt;br /&gt;
  height=&amp;quot;480&amp;quot;&lt;br /&gt;
  id=&amp;quot;vlc&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/embed&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;script language=&amp;quot;Javascript&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!--&lt;br /&gt;
 var vlc = document.getElementById(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
 vlc.audio.toggleMute();&lt;br /&gt;
 //!--&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/script&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/html&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Root object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;VersionInfo&#039;&#039;&#039;: returns version information string&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.versionInfo()&#039;&#039;&#039;: returns version information string (same as VersionInfo)&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.addEventListener(eventname, callback, bubble)&#039;&#039;&#039;: (only for Mozilla) add a listener for mentioned event name, callback expects a function and bubble influences the order of eventhandling by JS (usually it is set to false). &lt;br /&gt;
*&#039;&#039;&#039;vlc.removeEventListener(eventname, callback, bubble)&#039;&#039;&#039;: (only for Mozilla) remove listener for mentioned event name, callback expects a function and bubble influences the order of eventhandling by JS (usually it is set to false).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.attachEvent(eventname, callback)&#039;&#039;&#039;: (only for ActiveX) add listener for mentioned event name, callback expects a function &lt;br /&gt;
*&#039;&#039;&#039;vlc.removeEvent(eventname, callback)&#039;&#039;&#039;: (only for ActiveX) remove listener for mentioned event name, callback expects a function&lt;br /&gt;
&lt;br /&gt;
events &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerNothingSpecial&#039;&#039;&#039;: vlc is in idle state doing nothing but waiting for a command to be issued &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerOpening&#039;&#039;&#039;: vlc is opening an media resource locator (MRL) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerBuffering&#039;&#039;&#039;: vlc is buffering &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPlaying&#039;&#039;&#039;: vlc is playing a media &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPaused&#039;&#039;&#039;: vlc is in paused state &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerForward&#039;&#039;&#039;: vlc is fastforwarding through the media (works only when an input supports forward playback) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerBackward&#039;&#039;&#039;: vlc is going backwards through the media (works only when an input supports backwards playback) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerEncounteredError&#039;&#039;&#039;: vlc has encountered an error and is unable to continue &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerEndReached&#039;&#039;&#039;: vlc has reached the end of current playlist &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerTimeChanged&#039;&#039;&#039;: time has changed &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPositionChanged&#039;&#039;&#039;: media position has changed &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerSeekableChanged&#039;&#039;&#039;: media seekable flag has changed (true means media is seekable, false means it is not) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPausableChanged&#039;&#039;&#039;: media pausable flag has changed (true means media is pauseable, false means it is not)&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
The following code snippit provides easy functions to register and unregister event callbacks on all supported platforms (currently only Linux mozilla based browsers and windows activeX objects for Internet Explorer). &lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;SCRIPT language=&amp;quot;javascript&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!--&lt;br /&gt;
 function registerVLCEvent(event, handler)&lt;br /&gt;
 {&lt;br /&gt;
 var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
 if (vlc) {&lt;br /&gt;
     if (vlc.attachEvent) {&lt;br /&gt;
         // Microsoft&lt;br /&gt;
         vlc.attachEvent (event, handler);&lt;br /&gt;
     } else if (vlc.addEventListener) {&lt;br /&gt;
         // Mozilla: DOM level 2&lt;br /&gt;
         vlc.addEventListener (event, handler, false);&lt;br /&gt;
     } else {&lt;br /&gt;
         // DOM level 0&lt;br /&gt;
         vlc[&amp;quot;on&amp;quot; + event] = handler;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // stop listening to event&lt;br /&gt;
 function unregisterVLCEvent(event, handler)&lt;br /&gt;
 {&lt;br /&gt;
 var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
 if (vlc) {&lt;br /&gt;
     if (vlc.detachEvent) {&lt;br /&gt;
         // Microsoft&lt;br /&gt;
         vlc.detachEvent (event, handler);&lt;br /&gt;
     } else if (vlc.removeEventListener) {&lt;br /&gt;
         // Mozilla: DOM level 2&lt;br /&gt;
         vlc.removeEventListener (event, handler, false);&lt;br /&gt;
     } else {&lt;br /&gt;
         // DOM level 0&lt;br /&gt;
         vlc[&amp;quot;on&amp;quot; + event] = null;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // event callback function for testing&lt;br /&gt;
 function handleEvents(event)&lt;br /&gt;
 {&lt;br /&gt;
 if (!event)&lt;br /&gt;
     event = window.event; // IE&lt;br /&gt;
 if (event.target) {&lt;br /&gt;
     // Netscape based browser&lt;br /&gt;
     targ = event.target;&lt;br /&gt;
 } else if (event.srcElement) {&lt;br /&gt;
     // ActiveX&lt;br /&gt;
     targ = event.srcElement;&lt;br /&gt;
 } else {&lt;br /&gt;
     // No event object, just the value&lt;br /&gt;
     alert(&amp;quot;Event value&amp;quot; + event );&lt;br /&gt;
     return;&lt;br /&gt;
 }&lt;br /&gt;
 if (targ.nodeType == 3) // defeat Safari bug&lt;br /&gt;
     targ = targ.parentNode;&lt;br /&gt;
 alert(&amp;quot;Event &amp;quot; + event.type + &amp;quot; has fired from &amp;quot; + targ );&lt;br /&gt;
 }&lt;br /&gt;
 // handle mouse grab event from video filter&lt;br /&gt;
 function handleMouseGrab(event,X,Y)&lt;br /&gt;
 {&lt;br /&gt;
 if (!event)&lt;br /&gt;
     event = window.event; // IE&lt;br /&gt;
 alert(&amp;quot;new position (&amp;quot; + X + &amp;quot;,&amp;quot; + Y + &amp;quot;)&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
 // Register a bunch of callbacks.&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerNothingSpecial&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerOpening&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerBuffering&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerPlaying&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerPaused&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerForward&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerBackward&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerEncounteredError&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerEndReached&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerTimeChanged&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerPositionChanged&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerSeekableChanged&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerPausableChanged&#039;, handleEvents);&lt;br /&gt;
 &amp;amp;lt;/script&amp;amp;gt;&lt;br /&gt;
 --&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Audio object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.count&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) returns the number of audio track available.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.mute&#039;&#039;&#039;: boolean value to mute and unmute the audio. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.volume&#039;&#039;&#039;: a value between [0-200] which indicates a percentage of the volume. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.track&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6) a value between [1-65535] which indicates the audio track to play or that is playing. a value of 0 means the audio is/will be disabled. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.channel&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6) integer value between [1-5] that indicates which audio channel mode is used, values can be: &amp;quot;1=stereo&amp;quot;, &amp;quot;2=reverse stereo&amp;quot;, &amp;quot;3=left&amp;quot;, &amp;quot;4=right&amp;quot;, &amp;quot;5=dolby&amp;quot;. Use vlc.audio.channel to check if setting of the audio channel mode has succeeded.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.toggleMute()&#039;&#039;&#039;: boolean toggle that mutes and unmutes the audio based upon the previous state. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.description(int i)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) give the i-th audio track name. 0 corresponds to disable and 1 to the first audio track.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
 Audio Channel:&lt;br /&gt;
 &amp;amp;lt;SELECT readonly onChange=&#039;doAudioChannel(this.value)&#039;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;OPTION value=1&amp;amp;gt;Stereo&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;OPTION value=2&amp;amp;gt;Reverse stereo&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;OPTION value=3&amp;amp;gt;Left&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;OPTION value=4&amp;amp;gt;Right&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;OPTION value=5&amp;amp;gt;Dolby&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/SELECT&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;SCRIPT language=&amp;quot;javascript&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!--&lt;br /&gt;
 function doAudioChannel(value)&lt;br /&gt;
 {&lt;br /&gt;
 var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
 vlc.audio.channel = parseInt(value);&lt;br /&gt;
 alert(vlc.audio.channel);&lt;br /&gt;
 };&lt;br /&gt;
 --&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Input object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.length&#039;&#039;&#039;: length of the input file in number of milliseconds. 0 is returned for &#039;live&#039; streams or clips whose length cannot be determined by VLC. It returns -1 if no input is playing. &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.fps&#039;&#039;&#039;: frames per second returned as a float (typically 60.0, 50.0, 23.976, etc...) &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.hasVout&#039;&#039;&#039;: a boolean that returns true when the video is being displayed, it returns false when video is not displayed&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.position&#039;&#039;&#039;: normalized position in multimedia stream item given as a float value between [0.0 - 1.0] &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.time&#039;&#039;&#039;: the absolute position in time given in milliseconds, this property can be used to seek through the stream&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;!-- absolute seek in stream&amp;amp;nbsp;!--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = &amp;amp;lt;absolute seek&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!-- relative seek in stream&amp;amp;nbsp;!--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = vlc.input.time + &amp;amp;lt;relative seek&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.state&#039;&#039;&#039;: current state of the input chain given as enumeration (IDLE=0, OPENING=1, BUFFERING=2, PLAYING=3, PAUSED=4, STOPPING=5, ENDED=6, ERROR=7). Note: Test for ENDED=6 to catch end of playback. Checking for STOPPING=5 is NOT ENOUGH. &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.rate&#039;&#039;&#039;: input speed given as float (1.0 for normal speed, 0.5 for half speed, 2.0 for twice as fast, etc.).&lt;br /&gt;
&lt;br /&gt;
 rate &amp;amp;gt; 1             &amp;amp;nbsp;: is fastforward&lt;br /&gt;
 rate &amp;amp;gt; 0 and rate &amp;amp;lt; 1&amp;amp;nbsp;: is slow motion&lt;br /&gt;
 rate &amp;amp;lt; 0             &amp;amp;nbsp;: is rewind&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Playlist object ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.itemCount&#039;&#039;&#039;: number that returns the amount of items currently in the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]]) &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.isPlaying&#039;&#039;&#039;: a boolean that returns true if the current playlist item is playing and false when it is not playing &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items&#039;&#039;&#039;: return the playlist items collection, see [[#Playlist_items_object|Playlist items]]&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl)&#039;&#039;&#039;: add a playlist item as [[MRL]]. The MRL must be given as a string. Returns a number as an item identifier in playlist (this is not a position in playlist). &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl,name,options)&#039;&#039;&#039;: add a playlist item as MRL, with metaname &#039;name&#039; and options &#039;options&#039;. options are text arguments which can be provided either as a single string containing space separated values, akin to VLC command line, or as an array of string values. Returns a number as an item identifier in playlist (this is not a position in playlist).&lt;br /&gt;
&lt;br /&gt;
  var options = new Array(&amp;quot;:aspect-ratio=4:3&amp;quot;, &amp;quot;--rtsp-tcp&amp;quot;);&lt;br /&gt;
 var id = vlc.playlist.add(&amp;quot;rtsp://servername/item/to/play&amp;quot;, &amp;quot;fancy name&amp;quot;, options);&lt;br /&gt;
 vlc.playlist.playItem(id);&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.play()&#039;&#039;&#039;: start playing the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.playItem(number)&#039;&#039;&#039;: start playing the item whose identifier is number &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.pause()&#039;&#039;&#039;: pause the current playlist item&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.togglePause()&#039;&#039;&#039;: toggle the pause state for the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.stop()&#039;&#039;&#039;: stop playing the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.next()&#039;&#039;&#039;: iterate to the next playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.prev()&#039;&#039;&#039;: iterate to the previous playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]]) &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.removeItem(number)&#039;&#039;&#039;: remove the item from playlist whose identifier is number &amp;lt;!-- (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() ) --&amp;gt; (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]])&lt;br /&gt;
&lt;br /&gt;
=== Playlist items object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.count&#039;&#039;&#039;: number of items currently in the playlist&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist. If a movie is playing, it stop. Note that when this method returns, playlist may not have been entirely been cleared as this operation is performed asynchronously; use the &#039;&#039;count&#039;&#039; property to verify/wait until the playlist is empty. &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.remove(number)&#039;&#039;&#039;: remove the item whose identifier is number from playlist. (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() )&lt;br /&gt;
&lt;br /&gt;
== Subtitle object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.count&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) returns the number of subtitle available.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.track&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.description(int i)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) give the i-th subtitle name. 0 correspond to disable and 1 to the first subtitle.&lt;br /&gt;
&lt;br /&gt;
== Video object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.width&#039;&#039;&#039;: returns the horizontal size of the video &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.height&#039;&#039;&#039;: returns the vertical size of the video&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.fullscreen&#039;&#039;&#039;: when set to true the video will be displayed in fullscreen mode, when set to false the video will be shown inside the video output size. The property takes a boolean as input. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.aspectRatio&#039;&#039;&#039;: get and set the aspect ratio to use in the video screen. The property takes a string as input value. Typical values are: &amp;quot;1:1&amp;quot;, &amp;quot;4:3&amp;quot;, &amp;quot;16:9&amp;quot;, &amp;quot;16:10&amp;quot;, &amp;quot;221:100&amp;quot; and &amp;quot;5:4&amp;quot; &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.subtitle&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6a) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.teletext&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 0.9.0) get and set teletext page to show on the video stream. This will only work if a teletext elementary stream is available in the video stream. The property takes an integer as input value [0..999] for indicating the teletext page to view, setting the value to 0 means hide teletext. On error it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleFullscreen()&#039;&#039;&#039;: toggle the fullscreen mode based on the previous setting &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleTeletext()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 0.9.0) toggle the teletext page to overlay transparent or not, based on the previous setting&lt;br /&gt;
&lt;br /&gt;
=== Deinterlace Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.deinterlace.enable(&amp;quot;my_mode&amp;quot;)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable deinterlacing with my_mode. You can enable it with &amp;quot;blend&amp;quot;, &amp;quot;bob&amp;quot;, &amp;quot;discard&amp;quot;, &amp;quot;linear&amp;quot;, &amp;quot;mean&amp;quot;, &amp;quot;x&amp;quot;, &amp;quot;yadif&amp;quot; or &amp;quot;yadif2x&amp;quot; mode. Enabling too soon deinterlacing may cause some problems. You have to wait that all variable are available before enabling it. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.deinterlace.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable deinterlacing.&lt;br /&gt;
&lt;br /&gt;
=== Marquee Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.text&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display my text on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.color&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text color. val is the new color to use (WHITE=0x000000, BLACK=0xFFFFFF, RED=0xFF0000, GREEN=0x00FF00, BLUE=0x0000FF...). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.opacity&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text opacity, val is defined from 0 (completely transparent) to 255 (completely opaque). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.position&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text position (CENTER=0, LEFT=1, RIGHT=2, TOP=4, TOP-LEFT=5, TOP-RIGHT=6, BOTTOM=8, BOTTOM-LEFT=9, BOTTOM_RIGHT=10). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.refresh&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the marquee refresh period. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.size&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) val define the new size for the text displayed on the screen. If the text is bigger than the screen then the text is not displayed. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.timeout&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the timeout value. val is defined in ms, but 0 value correspond to unlimited. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.x&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change text abscissa. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.y&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change text ordinate.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.enable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable marquee filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable marquee filter.&lt;br /&gt;
&lt;br /&gt;
Some problems may happen (option like color or text will not be applied) because of the VLC asynchronous functioning. To avoid it, after enabling marquee, you have to wait a little time before changing an option. But it should be fixed by the new vout implementation. &lt;br /&gt;
&lt;br /&gt;
NOTE: [http://forum.videolan.org/viewtopic.php?f=16&amp;amp;t=89427#p295058] &lt;br /&gt;
&lt;br /&gt;
=== Logo Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.opacity&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture opacity, val is defined from 0 (completely transparent) to 255 (completely opaque). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.position&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text position (&amp;quot;center&amp;quot;, &amp;quot;left&amp;quot;, &amp;quot;right&amp;quot;, &amp;quot;top&amp;quot;, &amp;quot;top-left&amp;quot;, &amp;quot;top-right&amp;quot;, &amp;quot;bottom&amp;quot;, &amp;quot;bottom-left&amp;quot;, &amp;quot;bottom-right&amp;quot;). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.delay&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display each picture for a duration of 1000 ms (default) before displaying the next picture. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.repeat&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) number of loops for picture animation (-1=continuous, 0=disabled, n=n-times). The default is -1 (continuous). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.x&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the x-offset for displaying the picture counting from top-left on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.y&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the y-offset for displaying the picture counting from top-left on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.width&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture width. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.height&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture height.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.enable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable logo video filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable logo video filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.file(&amp;quot;file.png&amp;quot;)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display my file.png as logo on the screen.&lt;br /&gt;
&lt;br /&gt;
Some problems may happen because of the VLC asynchronous functioning. To avoid it, after enabling logo video filter, you have to wait a little time before changing an option. But it should be fixed by the new vout implementation.&lt;br /&gt;
&lt;br /&gt;
== MediaDescription Object   ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.title&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns title meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.artist&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns artist meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.copyright&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns copyright meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.album&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns album meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.trackNumber&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns trackNumber meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.description&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns description meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.rating&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns rating meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.date&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns date meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.setting&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns setting meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.URL&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns URL meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.language&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns language meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.nowPlaying&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns nowPlaying meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.publisher&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns publisher meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.encodedBy&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns encodedBy meta information field.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.artworkURL&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns artworkURL meta information field.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.trackID&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns trackID meta information field.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== DEPRECATED APIs ==&lt;br /&gt;
=== DEPRECATED: Log object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
This object allows accessing VLC main message logging queue. Typically this queue capacity is very small (no nore than 256 entries) and can easily overflow, therefore messages should be read and cleared as often as possible. &lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.messages&#039;&#039;&#039;: returns the message collection, see [[#Messages_object|Messages object]]&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.verbosity&#039;&#039;&#039;: write number [-1,0,1,2,3] for changing the verbosity level of the log messages; messages whose verbosity is higher than set will be not be logged in the queue. The numbers have the following meaning: -1 disable, 0 info, 1 error, 2 warning, 3 debug.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Messages object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;messages.count&#039;&#039;&#039;: returns number of messages in the log&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;messages.clear()&#039;&#039;&#039;: clear the current log buffer. It should be called as frequently as possible to not overflow the message queue. Call this method after the log messages of interest are read. &lt;br /&gt;
*&#039;&#039;&#039;messages.iterator()&#039;&#039;&#039;: creates and returns an iterator object, used to iterate over the messages in the log. &#039;&#039;&#039;Don&#039;t clear the log buffer while holding an iterator object.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Messages Iterator object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iterator.hasNext&#039;&#039;&#039;: returns a boolean that indicates whether &#039;&#039;vlc.log.messages.next()&#039;&#039; will return the next message.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iterator.next()&#039;&#039;&#039;: returns the next message object in the log, see [[Message object]]&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Message subobject  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;message.severity&#039;&#039;&#039;: number that indicates the severity of the log message (0 = info, 1 = error, 2 = warning, 3 = debug) &lt;br /&gt;
*&#039;&#039;&#039;message.name&#039;&#039;&#039;: name of VLC module that printed the log message (e.g: main, http, directx, etc...) &lt;br /&gt;
*&#039;&#039;&#039;message.type&#039;&#039;&#039;: type of VLC module that printed the log message (eg: input, access, vout, sout, etc...) &lt;br /&gt;
*&#039;&#039;&#039;message.message&#039;&#039;&#039;: the message text&lt;br /&gt;
&lt;br /&gt;
{{Documentation}} &lt;br /&gt;
&lt;br /&gt;
[[Category:Embedded]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation:WebPlugin&amp;diff=23660</id>
		<title>Documentation:WebPlugin</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation:WebPlugin&amp;diff=23660"/>
		<updated>2013-01-02T10:27:42Z</updated>

		<summary type="html">&lt;p&gt;Etix: Add the newly added pause()&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This Documentation speaks about the {{VLC}} Web plugins and how to write pages for it. &lt;br /&gt;
{{RightMenu|documentation play howto toc}} &lt;br /&gt;
&lt;br /&gt;
= Introduction: Building Web pages with Video =&lt;br /&gt;
&lt;br /&gt;
The {{VLC}} webplugins are native browser plugins, similar to Flash or Silverlight plugins and allow playback inside the browser of all the videos that {{VLC}} can read.&lt;br /&gt;
&lt;br /&gt;
Additionally to viewing video on all pages, you can build custom pages that will use the advanced features of the plugin, using Javascript functions to control playback or extract information from the plugin. &lt;br /&gt;
&lt;br /&gt;
There are 2 main plugins: one is ActiveX for IE, the other is NPAPI for the other browsers. They feature the same amount of features.&lt;br /&gt;
&lt;br /&gt;
In older versions, those plugins were very crashy. &#039;&#039;&#039;We URGE YOU&#039;&#039;&#039; to use VLC &#039;&#039;&#039;1.2.0&#039;&#039;&#039; or newer versions.&lt;br /&gt;
&lt;br /&gt;
=== Browsers support ===&lt;br /&gt;
It has been tested with:&lt;br /&gt;
* Mozilla Firefox [[Image:Firefox-logo.png|40x40px]]&lt;br /&gt;
* Internet Explorer [[Image:20101105053305!Internet Explorer 9.png|40x40px]]&lt;br /&gt;
* Safari [[Image:Apple Safari.png|40x40px]]&lt;br /&gt;
* Chrome&lt;br /&gt;
* Konqueror&lt;br /&gt;
* Opera&lt;br /&gt;
&lt;br /&gt;
It has been tested on GNU/Linux, Windows and MacOS.&lt;br /&gt;
&lt;br /&gt;
= Embed tag attributes =&lt;br /&gt;
&lt;br /&gt;
To embed the plugin into a webpage use the following &amp;amp;lt;embed&amp;amp;gt; template: &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot; pluginspage=&amp;quot;http://www.videolan.org&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;object classid=&amp;quot;clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921&amp;quot; codebase=&amp;quot;http://download.videolan.org/pub/videolan/vlc/last/win32/axvlc.cab&amp;quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Required elements ===&lt;br /&gt;
These are &#039;&#039;&#039;required&#039;&#039;&#039; attributes for the &amp;amp;lt;embed&amp;amp;gt; tag: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;width&#039;&#039;&#039;: Specifies the width of the plugin. &lt;br /&gt;
*&#039;&#039;&#039;height&#039;&#039;&#039;: Specifies the height of the plugin. &lt;br /&gt;
*&#039;&#039;&#039;target&#039;&#039;&#039;, &#039;&#039;&#039;mrl&#039;&#039;&#039;, &#039;&#039;&#039;filename&#039;&#039;&#039;, &#039;&#039;&#039;src&#039;&#039;&#039;: Specifies the source location (URL) of the video to load.&lt;br /&gt;
&lt;br /&gt;
=== Optionnal elements ===&lt;br /&gt;
These are additional attributes for the &amp;amp;lt;embed&amp;amp;gt; tag: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;autoplay&#039;&#039;&#039;, &#039;&#039;&#039;autostart&#039;&#039;&#039;: Specifies whether the plugin starts playing on load. Default: &#039;&#039;true&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;allowfullscreen&#039;&#039;&#039;: (available since VLC version 1.2.0) Specifies whether the user can switch into fullscreen mode. Default: &#039;&#039;true&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;mute&#039;&#039;&#039;: Specifies whether the audio volume is initially muted. Default: &#039;&#039;false&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;loop&#039;&#039;&#039;, &#039;&#039;&#039;autoloop&#039;&#039;&#039;: Specifies whether the video loops on end. Default: &#039;&#039;false&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;toolbar&#039;&#039;&#039;: Specifies whether the toolbar is shown by default. Default: &#039;&#039;true&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;bgcolor&#039;&#039;&#039;: Specifies the background color of the video player. Default: &#039;&#039;#000000&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Normal DOM elements ===&lt;br /&gt;
*&#039;&#039;&#039;id&#039;&#039;&#039;: DOM id&lt;br /&gt;
*&#039;&#039;&#039;name&#039;&#039;&#039;: DOM name&lt;br /&gt;
&lt;br /&gt;
= Javascript API description  =&lt;br /&gt;
&lt;br /&gt;
The vlc plugin exports several objects that can be accessed for setting and getting information. When used improperly the API&#039;s will throw an exception that includes a string that explains what happened. For example when asking for vlc.input.length when there is no playlist item playing. &lt;br /&gt;
&lt;br /&gt;
== VLC objects ==&lt;br /&gt;
The vlc plugin knows the following objects: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;audio&#039;&#039;&#039;: Access audio properties. &lt;br /&gt;
*&#039;&#039;&#039;input&#039;&#039;&#039;: Access input properties. &lt;br /&gt;
*&#039;&#039;&#039;playlist&#039;&#039;&#039;: Access playlist properties. &lt;br /&gt;
*&#039;&#039;&#039;subtitle&#039;&#039;&#039;: Access subtitle properties. &lt;br /&gt;
*&#039;&#039;&#039;video&#039;&#039;&#039;: Access video properties. &lt;br /&gt;
**&#039;&#039;&#039;video.marquee&#039;&#039;&#039;: Access marquee video filter properties. &lt;br /&gt;
**&#039;&#039;&#039;video.logo&#039;&#039;&#039;: Access logo video filter properties. &lt;br /&gt;
*&#039;&#039;&#039;mediaDescription&#039;&#039;&#039;: Access media info properties (only available in vlc version &amp;gt;= 2.0.2).&lt;br /&gt;
&lt;br /&gt;
The following are deprecated:&lt;br /&gt;
*&#039;&#039;&#039;log&#039;&#039;&#039;: Access log properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
*&#039;&#039;&#039;messages&#039;&#039;&#039;: Access to log message properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
*&#039;&#039;&#039;iterator&#039;&#039;&#039;: Access to log iterator properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1).&lt;br /&gt;
*&#039;&#039;&#039;message&#039;&#039;&#039;: Access to log message properties (only available in vlc version &amp;amp;lt;= 1.0.0-rc1). &lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
The following JavaScript code shows howto get a reference to the vlc plugin. This reference can then be used to access the objects of the vlc plugin. &lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;html&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;title&amp;amp;gt;VLC Mozilla plugin test page&amp;amp;lt;/title&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot; pluginspage=&amp;quot;http://www.videolan.org&amp;quot;&lt;br /&gt;
  width=&amp;quot;640&amp;quot;&lt;br /&gt;
  height=&amp;quot;480&amp;quot;&lt;br /&gt;
  id=&amp;quot;vlc&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/embed&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;script language=&amp;quot;Javascript&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!--&lt;br /&gt;
 var vlc = document.getElementById(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
 vlc.audio.toggleMute();&lt;br /&gt;
 //!--&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/script&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/html&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Root object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;VersionInfo&#039;&#039;&#039;: returns version information string&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.versionInfo()&#039;&#039;&#039;: returns version information string (same as VersionInfo)&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.addEventListener(eventname, callback, bubble)&#039;&#039;&#039;: (only for Mozilla) add a listener for mentioned event name, callback expects a function and bubble influences the order of eventhandling by JS (usually it is set to false). &lt;br /&gt;
*&#039;&#039;&#039;vlc.removeEventListener(eventname, callback, bubble)&#039;&#039;&#039;: (only for Mozilla) remove listener for mentioned event name, callback expects a function and bubble influences the order of eventhandling by JS (usually it is set to false).&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.attachEvent(eventname, callback)&#039;&#039;&#039;: (only for ActiveX) add listener for mentioned event name, callback expects a function &lt;br /&gt;
*&#039;&#039;&#039;vlc.removeEvent(eventname, callback)&#039;&#039;&#039;: (only for ActiveX) remove listener for mentioned event name, callback expects a function&lt;br /&gt;
&lt;br /&gt;
events &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerNothingSpecial&#039;&#039;&#039;: vlc is in idle state doing nothing but waiting for a command to be issued &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerOpening&#039;&#039;&#039;: vlc is opening an media resource locator (MRL) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerBuffering&#039;&#039;&#039;: vlc is buffering &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPlaying&#039;&#039;&#039;: vlc is playing a media &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPaused&#039;&#039;&#039;: vlc is in paused state &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerForward&#039;&#039;&#039;: vlc is fastforwarding through the media (works only when an input supports forward playback) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerBackward&#039;&#039;&#039;: vlc is going backwards through the media (works only when an input supports backwards playback) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerEncounteredError&#039;&#039;&#039;: vlc has encountered an error and is unable to continue &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerEndReached&#039;&#039;&#039;: vlc has reached the end of current playlist &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerTimeChanged&#039;&#039;&#039;: time has changed &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPositionChanged&#039;&#039;&#039;: media position has changed &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerSeekableChanged&#039;&#039;&#039;: media seekable flag has changed (true means media is seekable, false means it is not) &lt;br /&gt;
*&#039;&#039;&#039;MediaPlayerPausableChanged&#039;&#039;&#039;: media pausable flag has changed (true means media is pauseable, false means it is not)&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
The following code snippit provides easy functions to register and unregister event callbacks on all supported platforms (currently only Linux mozilla based browsers and windows activeX objects for Internet Explorer). &lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;SCRIPT language=&amp;quot;javascript&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!--&lt;br /&gt;
 function registerVLCEvent(event, handler)&lt;br /&gt;
 {&lt;br /&gt;
 var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
 if (vlc) {&lt;br /&gt;
     if (vlc.attachEvent) {&lt;br /&gt;
         // Microsoft&lt;br /&gt;
         vlc.attachEvent (event, handler);&lt;br /&gt;
     } else if (vlc.addEventListener) {&lt;br /&gt;
         // Mozilla: DOM level 2&lt;br /&gt;
         vlc.addEventListener (event, handler, false);&lt;br /&gt;
     } else {&lt;br /&gt;
         // DOM level 0&lt;br /&gt;
         vlc[&amp;quot;on&amp;quot; + event] = handler;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // stop listening to event&lt;br /&gt;
 function unregisterVLCEvent(event, handler)&lt;br /&gt;
 {&lt;br /&gt;
 var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
 if (vlc) {&lt;br /&gt;
     if (vlc.detachEvent) {&lt;br /&gt;
         // Microsoft&lt;br /&gt;
         vlc.detachEvent (event, handler);&lt;br /&gt;
     } else if (vlc.removeEventListener) {&lt;br /&gt;
         // Mozilla: DOM level 2&lt;br /&gt;
         vlc.removeEventListener (event, handler, false);&lt;br /&gt;
     } else {&lt;br /&gt;
         // DOM level 0&lt;br /&gt;
         vlc[&amp;quot;on&amp;quot; + event] = null;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 // event callback function for testing&lt;br /&gt;
 function handleEvents(event)&lt;br /&gt;
 {&lt;br /&gt;
 if (!event)&lt;br /&gt;
     event = window.event; // IE&lt;br /&gt;
 if (event.target) {&lt;br /&gt;
     // Netscape based browser&lt;br /&gt;
     targ = event.target;&lt;br /&gt;
 } else if (event.srcElement) {&lt;br /&gt;
     // ActiveX&lt;br /&gt;
     targ = event.srcElement;&lt;br /&gt;
 } else {&lt;br /&gt;
     // No event object, just the value&lt;br /&gt;
     alert(&amp;quot;Event value&amp;quot; + event );&lt;br /&gt;
     return;&lt;br /&gt;
 }&lt;br /&gt;
 if (targ.nodeType == 3) // defeat Safari bug&lt;br /&gt;
     targ = targ.parentNode;&lt;br /&gt;
 alert(&amp;quot;Event &amp;quot; + event.type + &amp;quot; has fired from &amp;quot; + targ );&lt;br /&gt;
 }&lt;br /&gt;
 // handle mouse grab event from video filter&lt;br /&gt;
 function handleMouseGrab(event,X,Y)&lt;br /&gt;
 {&lt;br /&gt;
 if (!event)&lt;br /&gt;
     event = window.event; // IE&lt;br /&gt;
 alert(&amp;quot;new position (&amp;quot; + X + &amp;quot;,&amp;quot; + Y + &amp;quot;)&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
 // Register a bunch of callbacks.&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerNothingSpecial&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerOpening&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerBuffering&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerPlaying&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerPaused&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerForward&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerBackward&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerEncounteredError&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerEndReached&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerTimeChanged&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerPositionChanged&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerSeekableChanged&#039;, handleEvents);&lt;br /&gt;
 registerVLCEvent(&#039;MediaPlayerPausableChanged&#039;, handleEvents);&lt;br /&gt;
 &amp;amp;lt;/script&amp;amp;gt;&lt;br /&gt;
 --&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Audio object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.count&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) returns the number of audio track available.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.mute&#039;&#039;&#039;: boolean value to mute and unmute the audio. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.volume&#039;&#039;&#039;: a value between [0-200] which indicates a percentage of the volume. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.track&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6) a value between [1-65535] which indicates the audio track to play or that is playing. a value of 0 means the audio is/will be disabled. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.channel&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6) integer value between [1-5] that indicates which audio channel mode is used, values can be: &amp;quot;1=stereo&amp;quot;, &amp;quot;2=reverse stereo&amp;quot;, &amp;quot;3=left&amp;quot;, &amp;quot;4=right&amp;quot;, &amp;quot;5=dolby&amp;quot;. Use vlc.audio.channel to check if setting of the audio channel mode has succeeded.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.toggleMute()&#039;&#039;&#039;: boolean toggle that mutes and unmutes the audio based upon the previous state. &lt;br /&gt;
*&#039;&#039;&#039;vlc.audio.description(int i)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) give the i-th audio track name. 0 corresponds to disable and 1 to the first audio track.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
 Audio Channel:&lt;br /&gt;
 &amp;amp;lt;SELECT readonly onChange=&#039;doAudioChannel(this.value)&#039;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;OPTION value=1&amp;amp;gt;Stereo&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;OPTION value=2&amp;amp;gt;Reverse stereo&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;OPTION value=3&amp;amp;gt;Left&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;OPTION value=4&amp;amp;gt;Right&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;OPTION value=5&amp;amp;gt;Dolby&amp;amp;lt;/OPTION&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/SELECT&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;SCRIPT language=&amp;quot;javascript&amp;quot;&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!--&lt;br /&gt;
 function doAudioChannel(value)&lt;br /&gt;
 {&lt;br /&gt;
 var vlc = getVLC(&amp;quot;vlc&amp;quot;);&lt;br /&gt;
 vlc.audio.channel = parseInt(value);&lt;br /&gt;
 alert(vlc.audio.channel);&lt;br /&gt;
 };&lt;br /&gt;
 --&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Input object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.length&#039;&#039;&#039;: length of the input file in number of milliseconds. 0 is returned for &#039;live&#039; streams or clips whose length cannot be determined by VLC. It returns -1 if no input is playing. &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.fps&#039;&#039;&#039;: frames per second returned as a float (typically 60.0, 50.0, 23.976, etc...) &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.hasVout&#039;&#039;&#039;: a boolean that returns true when the video is being displayed, it returns false when video is not displayed&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.position&#039;&#039;&#039;: normalized position in multimedia stream item given as a float value between [0.0 - 1.0] &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.time&#039;&#039;&#039;: the absolute position in time given in milliseconds, this property can be used to seek through the stream&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;!-- absolute seek in stream&amp;amp;nbsp;!--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = &amp;amp;lt;absolute seek&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;!-- relative seek in stream&amp;amp;nbsp;!--&amp;amp;gt;&lt;br /&gt;
 vlc.input.time = vlc.input.time + &amp;amp;lt;relative seek&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.input.state&#039;&#039;&#039;: current state of the input chain given as enumeration (IDLE=0, OPENING=1, BUFFERING=2, PLAYING=3, PAUSED=4, STOPPING=5, ENDED=6, ERROR=7). Note: Test for ENDED=6 to catch end of playback. Checking for STOPPING=5 is NOT ENOUGH. &lt;br /&gt;
*&#039;&#039;&#039;vlc.input.rate&#039;&#039;&#039;: input speed given as float (1.0 for normal speed, 0.5 for half speed, 2.0 for twice as fast, etc.).&lt;br /&gt;
&lt;br /&gt;
 rate &amp;amp;gt; 1             &amp;amp;nbsp;: is fastforward&lt;br /&gt;
 rate &amp;amp;gt; 0 and rate &amp;amp;lt; 1&amp;amp;nbsp;: is slow motion&lt;br /&gt;
 rate &amp;amp;lt; 0             &amp;amp;nbsp;: is rewind&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Playlist object ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.itemCount&#039;&#039;&#039;: number that returns the amount of items currently in the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]]) &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.isPlaying&#039;&#039;&#039;: a boolean that returns true if the current playlist item is playing and false when it is not playing &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items&#039;&#039;&#039;: return the playlist items collection, see [[#Playlist_items_object|Playlist items]]&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl)&#039;&#039;&#039;: add a playlist item as [[MRL]]. The MRL must be given as a string. Returns a number as an item identifier in playlist (this is not a position in playlist). &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.add(mrl,name,options)&#039;&#039;&#039;: add a playlist item as MRL, with metaname &#039;name&#039; and options &#039;options&#039;. options are text arguments which can be provided either as a single string containing space separated values, akin to VLC command line, or as an array of string values. Returns a number as an item identifier in playlist (this is not a position in playlist).&lt;br /&gt;
&lt;br /&gt;
  var options = new Array(&amp;quot;:aspect-ratio=4:3&amp;quot;, &amp;quot;--rtsp-tcp&amp;quot;);&lt;br /&gt;
 var id = vlc.playlist.add(&amp;quot;rtsp://servername/item/to/play&amp;quot;, &amp;quot;fancy name&amp;quot;, options);&lt;br /&gt;
 vlc.playlist.playItem(id);&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.play()&#039;&#039;&#039;: start playing the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.playItem(number)&#039;&#039;&#039;: start playing the item whose identifier is number &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.pause()&#039;&#039;&#039;: pause the current playlist item&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.togglePause()&#039;&#039;&#039;: toggle the pause state for the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.stop()&#039;&#039;&#039;: stop playing the current playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.next()&#039;&#039;&#039;: iterate to the next playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.prev()&#039;&#039;&#039;: iterate to the previous playlist item &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]]) &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.removeItem(number)&#039;&#039;&#039;: remove the item from playlist whose identifier is number &amp;lt;!-- (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() ) --&amp;gt; (&#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use, see [[#Playlist_items_object|Playlist items]])&lt;br /&gt;
&lt;br /&gt;
=== Playlist items object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.count&#039;&#039;&#039;: number of items currently in the playlist&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.clear()&#039;&#039;&#039;: empty the current playlist, all items will be deleted from the playlist. If a movie is playing, it stop. Note that when this method returns, playlist may not have been entirely been cleared as this operation is performed asynchronously; use the &#039;&#039;count&#039;&#039; property to verify/wait until the playlist is empty. &lt;br /&gt;
*&#039;&#039;&#039;vlc.playlist.items.remove(number)&#039;&#039;&#039;: remove the item whose identifier is number from playlist. (note: this number isn&#039;t the position in the playlist, but the number given by vlc.playlist.add() )&lt;br /&gt;
&lt;br /&gt;
== Subtitle object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.count&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) returns the number of subtitle available.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.track&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.subtitle.description(int i)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) give the i-th subtitle name. 0 correspond to disable and 1 to the first subtitle.&lt;br /&gt;
&lt;br /&gt;
== Video object  ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.width&#039;&#039;&#039;: returns the horizontal size of the video &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.height&#039;&#039;&#039;: returns the vertical size of the video&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.fullscreen&#039;&#039;&#039;: when set to true the video will be displayed in fullscreen mode, when set to false the video will be shown inside the video output size. The property takes a boolean as input. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.aspectRatio&#039;&#039;&#039;: get and set the aspect ratio to use in the video screen. The property takes a string as input value. Typical values are: &amp;quot;1:1&amp;quot;, &amp;quot;4:3&amp;quot;, &amp;quot;16:9&amp;quot;, &amp;quot;16:10&amp;quot;, &amp;quot;221:100&amp;quot; and &amp;quot;5:4&amp;quot; &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.subtitle&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt; 0.8.6a) get and set the subtitle track to show on the video screen. The property takes an integer as input value [1..65535]. If subtitle track is set to 0, the subtitles will be disabled. If set to a value outside the current subtitle tracks range, then it will return -1 and display an error message. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.teletext&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 0.9.0) get and set teletext page to show on the video stream. This will only work if a teletext elementary stream is available in the video stream. The property takes an integer as input value [0..999] for indicating the teletext page to view, setting the value to 0 means hide teletext. On error it will return -1 and display an error message.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleFullscreen()&#039;&#039;&#039;: toggle the fullscreen mode based on the previous setting &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.toggleTeletext()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 0.9.0) toggle the teletext page to overlay transparent or not, based on the previous setting&lt;br /&gt;
&lt;br /&gt;
=== Deinterlace Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.deinterlace.enable(&amp;quot;my_mode&amp;quot;)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable deinterlacing with my_mode. You can enable it with &amp;quot;blend&amp;quot;, &amp;quot;bob&amp;quot;, &amp;quot;discard&amp;quot;, &amp;quot;linear&amp;quot;, &amp;quot;mean&amp;quot;, &amp;quot;x&amp;quot;, &amp;quot;yadif&amp;quot; or &amp;quot;yadif2x&amp;quot; mode. Enabling too soon deinterlacing may cause some problems. You have to wait that all variable are available before enabling it. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.deinterlace.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable deinterlacing.&lt;br /&gt;
&lt;br /&gt;
=== Marquee Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.text&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display my text on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.color&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text color. val is the new color to use (WHITE=0x000000, BLACK=0xFFFFFF, RED=0xFF0000, GREEN=0x00FF00, BLUE=0x0000FF...). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.opacity&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text opacity, val is defined from 0 (completely transparent) to 255 (completely opaque). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.position&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text position (CENTER=0, LEFT=1, RIGHT=2, TOP=4, TOP-LEFT=5, TOP-RIGHT=6, BOTTOM=8, BOTTOM-LEFT=9, BOTTOM_RIGHT=10). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.refresh&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the marquee refresh period. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.size&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) val define the new size for the text displayed on the screen. If the text is bigger than the screen then the text is not displayed. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.timeout&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the timeout value. val is defined in ms, but 0 value correspond to unlimited. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.x&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change text abscissa. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.y&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change text ordinate.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.enable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable marquee filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.marquee.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable marquee filter.&lt;br /&gt;
&lt;br /&gt;
Some problems may happen (option like color or text will not be applied) because of the VLC asynchronous functioning. To avoid it, after enabling marquee, you have to wait a little time before changing an option. But it should be fixed by the new vout implementation. &lt;br /&gt;
&lt;br /&gt;
NOTE: [http://forum.videolan.org/viewtopic.php?f=16&amp;amp;t=89427#p295058] &lt;br /&gt;
&lt;br /&gt;
=== Logo Object  ===&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.opacity&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture opacity, val is defined from 0 (completely transparent) to 255 (completely opaque). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.position&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the text position (&amp;quot;center&amp;quot;, &amp;quot;left&amp;quot;, &amp;quot;right&amp;quot;, &amp;quot;top&amp;quot;, &amp;quot;top-left&amp;quot;, &amp;quot;top-right&amp;quot;, &amp;quot;bottom&amp;quot;, &amp;quot;bottom-left&amp;quot;, &amp;quot;bottom-right&amp;quot;). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.delay&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display each picture for a duration of 1000 ms (default) before displaying the next picture. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.repeat&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) number of loops for picture animation (-1=continuous, 0=disabled, n=n-times). The default is -1 (continuous). &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.x&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the x-offset for displaying the picture counting from top-left on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.y&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the y-offset for displaying the picture counting from top-left on the screen. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.width&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture width. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.height&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) change the picture height.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.enable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) enable logo video filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.disable()&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) disable logo video filter. &lt;br /&gt;
*&#039;&#039;&#039;vlc.video.logo.file(&amp;quot;file.png&amp;quot;)&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 1.1.0) display my file.png as logo on the screen.&lt;br /&gt;
&lt;br /&gt;
Some problems may happen because of the VLC asynchronous functioning. To avoid it, after enabling logo video filter, you have to wait a little time before changing an option. But it should be fixed by the new vout implementation.&lt;br /&gt;
&lt;br /&gt;
== MediaDescription Object   ==&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.title&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns title meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.artist&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns artist meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.copyright&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns copyright meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.album&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns album meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.trackNumber&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns trackNumber meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.description&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns description meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.rating&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns rating meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.date&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns date meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.setting&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns setting meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.URL&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns URL meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.language&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns language meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.nowPlaying&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns nowPlaying meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.publisher&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns publisher meta information field.&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.encodedBy&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns encodedBy meta information field.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.artworkURL&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns artworkURL meta information field.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.mediaDescription.trackID&#039;&#039;&#039;: (supported in vlc version &amp;amp;gt;= 2.0.2) returns trackID meta information field.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== DEPRECATED APIs ==&lt;br /&gt;
=== DEPRECATED: Log object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
This object allows accessing VLC main message logging queue. Typically this queue capacity is very small (no nore than 256 entries) and can easily overflow, therefore messages should be read and cleared as often as possible. &lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.messages&#039;&#039;&#039;: returns the message collection, see [[#Messages_object|Messages object]]&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vlc.log.verbosity&#039;&#039;&#039;: write number [-1,0,1,2,3] for changing the verbosity level of the log messages; messages whose verbosity is higher than set will be not be logged in the queue. The numbers have the following meaning: -1 disable, 0 info, 1 error, 2 warning, 3 debug.&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Messages object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;messages.count&#039;&#039;&#039;: returns number of messages in the log&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;messages.clear()&#039;&#039;&#039;: clear the current log buffer. It should be called as frequently as possible to not overflow the message queue. Call this method after the log messages of interest are read. &lt;br /&gt;
*&#039;&#039;&#039;messages.iterator()&#039;&#039;&#039;: creates and returns an iterator object, used to iterate over the messages in the log. &#039;&#039;&#039;Don&#039;t clear the log buffer while holding an iterator object.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Messages Iterator object  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
readonly properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iterator.hasNext&#039;&#039;&#039;: returns a boolean that indicates whether &#039;&#039;vlc.log.messages.next()&#039;&#039; will return the next message.&lt;br /&gt;
&lt;br /&gt;
read/write properties &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;none&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
methods &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iterator.next()&#039;&#039;&#039;: returns the next message object in the log, see [[Message object]]&lt;br /&gt;
&lt;br /&gt;
=== DEPRECATED: Message subobject  ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;CAUTION&#039;&#039;&#039;: For security concern, VLC 1.0.0-rc1 is the latest (near-to-stable) version in which this object and its children are supported.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;message.severity&#039;&#039;&#039;: number that indicates the severity of the log message (0 = info, 1 = error, 2 = warning, 3 = debug) &lt;br /&gt;
*&#039;&#039;&#039;message.name&#039;&#039;&#039;: name of VLC module that printed the log message (e.g: main, http, directx, etc...) &lt;br /&gt;
*&#039;&#039;&#039;message.type&#039;&#039;&#039;: type of VLC module that printed the log message (eg: input, access, vout, sout, etc...) &lt;br /&gt;
*&#039;&#039;&#039;message.message&#039;&#039;&#039;: the message text&lt;br /&gt;
&lt;br /&gt;
= Build HTML pages that use the plugin (VLC version up to 0.8.5)  =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING:&#039;&#039;&#039; the APIs described in this section are &#039;&#039;&#039;deprecated&#039;&#039;&#039;, do not use. They no longer work on recent VLC version (&amp;amp;gt; 0.8.5), either it being the ActiveX (Internet Explorer)/ Safari or Mozilla based browsers. &lt;br /&gt;
&lt;br /&gt;
The following API description is only valid uptill version 0.8.5 of the mozilla plugin. &lt;br /&gt;
&lt;br /&gt;
Additionally to viewing video on all pages, you can build custom pages that will use the advanced features of the plugin, using Javascript functions to control playback or extract information from the plugin. &lt;br /&gt;
&lt;br /&gt;
The vlc plugin supports the following function calls: &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;play()&#039;&#039;&#039;: Start playing media in the plugin. &lt;br /&gt;
*&#039;&#039;&#039;pause()&#039;&#039;&#039;: Pause playback. &lt;br /&gt;
*&#039;&#039;&#039;stop()&#039;&#039;&#039;: Stop media playback. &lt;br /&gt;
*&#039;&#039;&#039;fullscreen()&#039;&#039;&#039;: Switch the video to full screen. &lt;br /&gt;
*&#039;&#039;&#039;set_volume(vol)&#039;&#039;&#039;: Set the volume. &#039;&#039;&#039;vol&#039;&#039;&#039; has to be an int in the 0-200 range. &lt;br /&gt;
*&#039;&#039;&#039;get_volume()&#039;&#039;&#039;: Get the current volume setting. &lt;br /&gt;
*&#039;&#039;&#039;mute()&#039;&#039;&#039;: Toggle volume muting. &lt;br /&gt;
*&#039;&#039;&#039;set_int_variable(var_name, value)&#039;&#039;&#039;: &lt;br /&gt;
*&#039;&#039;&#039;set_bool_variable(var_name, value)&#039;&#039;&#039;: &lt;br /&gt;
*&#039;&#039;&#039;set_str_variable(var_name, value)&#039;&#039;&#039;: &lt;br /&gt;
*&#039;&#039;&#039;get_int_variable(var_name)&#039;&#039;&#039;: &lt;br /&gt;
*&#039;&#039;&#039;get_bool_variable(var_name)&#039;&#039;&#039;: &lt;br /&gt;
*&#039;&#039;&#039;get_str_variable(var_name)&#039;&#039;&#039;: &lt;br /&gt;
*&#039;&#039;&#039;clear_playlist()&#039;&#039;&#039;: Clear the playlist. &lt;br /&gt;
*&#039;&#039;&#039;add_item(mrl)&#039;&#039;&#039;: Append an item whose location is given by the [[Media resource locator]] to the playlist. &lt;br /&gt;
*&#039;&#039;&#039;next()&#039;&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;previous()&#039;&#039;&#039; &lt;br /&gt;
*&#039;&#039;&#039;isplaying()&#039;&#039;&#039;: return true if the plugin is playing something. &lt;br /&gt;
*&#039;&#039;&#039;get_length()&#039;&#039;&#039;: Get the media&#039;s length in seconds. &lt;br /&gt;
*&#039;&#039;&#039;get_position()&#039;&#039;&#039;: Get the current position in the media in percent. &lt;br /&gt;
*&#039;&#039;&#039;get_time()&#039;&#039;&#039;: Get the current position in the media in seconds. &lt;br /&gt;
*&#039;&#039;&#039;seek(seconds,is_relative)&#039;&#039;&#039;: If is_relative is true, seek relatively to current time, else seek from beginning of the stream. Seek time is specified in seconds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; Here are a few examples of HTML pages that use the Mozilla plugin. &lt;br /&gt;
&lt;br /&gt;
=== Example 1  ===&lt;br /&gt;
&lt;br /&gt;
In this example, the plugin will read an HTTP stream inside the web page. If the user goes fullscreen, he will have to press &#039;&#039;f&#039;&#039; or double-click on the video to go back in normal view. &lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;html&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;head&amp;amp;gt;&amp;amp;lt;title&amp;amp;gt;Demo of VLC mozilla plugin&amp;amp;lt;/title&amp;amp;gt;&amp;amp;lt;/head&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;body&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;h1&amp;amp;gt;Demo of VLC mozilla plugin - Example 1&amp;amp;lt;/h1&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot;&lt;br /&gt;
       name=&amp;quot;video1&amp;quot;&lt;br /&gt;
       autoplay=&amp;quot;no&amp;quot; loop=&amp;quot;yes&amp;quot; width=&amp;quot;400&amp;quot; height=&amp;quot;300&amp;quot;&lt;br /&gt;
       target=&amp;quot;http://server.example.org/video1.vob&amp;quot; /&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video1.play()&#039;&amp;amp;gt;Play video1&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video1.pause()&#039;&amp;amp;gt;Pause video1&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video1.stop()&#039;&amp;amp;gt;Stop video1&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video1.fullscreen()&#039;&amp;amp;gt;Fullscreen&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;/body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/html&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Example 2  ===&lt;br /&gt;
&lt;br /&gt;
In this example, the plugin will read a multicast UDP/RTP stream in a dedicated video output window. &lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;html&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;head&amp;amp;gt;&amp;amp;lt;title&amp;amp;gt;Demo of VLC mozilla plugin&amp;amp;lt;/title&amp;amp;gt;&amp;amp;lt;/head&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;body&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;h1&amp;amp;gt;Demo of VLC mozilla plugin - Example 2&amp;amp;lt;/h1&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;embed type=&amp;quot;application/x-vlc-plugin&amp;quot;&lt;br /&gt;
       name=&amp;quot;video2&amp;quot;&lt;br /&gt;
       autoplay=&amp;quot;no&amp;quot; loop=&amp;quot;no&amp;quot; hidden=&amp;quot;yes&amp;quot;&lt;br /&gt;
       target=&amp;quot;rtp://@239.255.12.42:5004&amp;quot; /&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video2.play()&#039;&amp;amp;gt;Play video2&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video2.stop()&#039;&amp;amp;gt;Stop video2&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;a href=&amp;quot;javascript:;&amp;quot; onclick=&#039;document.video2.fullscreen()&#039;&amp;amp;gt;Fullscreen&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;/body&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/html&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Documentation}} &lt;br /&gt;
&lt;br /&gt;
[[Category:Embedded]]&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=User:Etix&amp;diff=23647</id>
		<title>User:Etix</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=User:Etix&amp;diff=23647"/>
		<updated>2012-12-22T19:08:36Z</updated>

		<summary type="html">&lt;p&gt;Etix: Created page with &amp;quot;My name is Ludovic Fauvet, alias etix. {| |- | Email || etix at videolan org |- | IRC || etix on #videolan (Freenode network) |- | Twitter || [http://twitter.com/etixxx etixxx...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My name is Ludovic Fauvet, alias etix.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Email || etix at videolan org&lt;br /&gt;
|-&lt;br /&gt;
| IRC || etix on #videolan (Freenode network)&lt;br /&gt;
|-&lt;br /&gt;
| Twitter || [http://twitter.com/etixxx etixxx]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VDD12&amp;diff=23125</id>
		<title>VDD12</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VDD12&amp;diff=23125"/>
		<updated>2012-09-01T10:59:27Z</updated>

		<summary type="html">&lt;p&gt;Etix: /* Sunday, September 2nd 2012 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= VideoLAN Dev Days &#039;12 =&lt;br /&gt;
&#039;&#039;&#039;The Multimedia Conference that frees the cone in you!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a technical un-conference, please bring laptops, cords, RJ45 cables&lt;br /&gt;
and good mood with you.&lt;br /&gt;
&lt;br /&gt;
=== Nota Bene ===&lt;br /&gt;
* The hotel is the [http://www.ibishotel.com/gb/hotel-5543-ibis-paris-avenue-d-italie-13eme/index.shtml Ibis] Avenue d&#039;Italie.&lt;br /&gt;
&lt;br /&gt;
* If you expect us to refund your travel, please bring a printed copy of your tickets, one that shows the total cost. If you are not in our reimbursement database, bring a printed IBAN too.&lt;br /&gt;
 &lt;br /&gt;
* On saturday and sunday, enter the [http://www.mines-telecom.fr Institut Télécom] by the Régnault entrance.&lt;br /&gt;
&lt;br /&gt;
* There will be a wifi connexion, under the EDUROAM ESSID.&lt;br /&gt;
&lt;br /&gt;
= Schedule =&lt;br /&gt;
&lt;br /&gt;
== Friday, August 31st 2012 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! Place !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 18h00 || [http://www.ibishotel.com/gb/hotel-5543-ibis-paris-avenue-d-italie-13eme/index.shtml Hotel] || Meeting point in front of the hotel&lt;br /&gt;
|-&lt;br /&gt;
| 18h30 – 23h59 || [http://www.dernierbar.com/ Dernier bar] || Welcome and meet-up for early attenders. Drinks at Paris&#039; newest geek bar.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This bar is at Chatelet subway Station (RER B from airports, and subway Line 7 from the Hotel of Place d&#039;Italie).&lt;br /&gt;
19, avenue Victoria 75001 Paris&lt;br /&gt;
&lt;br /&gt;
== Saturday, September 1st 2012 ==&lt;br /&gt;
&lt;br /&gt;
All the meetings happen in the [http://www.mines-telecom.fr/ Institut Telecom].&lt;br /&gt;
&lt;br /&gt;
=== Morning ===&lt;br /&gt;
Salle des thèses B312 &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 9h30 – 10h00 || Welcome, registration, coffee and croissants&lt;br /&gt;
|-&lt;br /&gt;
| 10h00 – 10h15 || Welcome, VideoLAN, VLC&lt;br /&gt;
|-&lt;br /&gt;
| 10h20 – 10h45 || Opus&lt;br /&gt;
|-&lt;br /&gt;
| 10h45 – 11h15 || Reverse engineering codecs&lt;br /&gt;
|-&lt;br /&gt;
| 11h15 – 11h30 || &#039;&#039;&#039;Coffee Break&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 11h30 – 11h45 || WebVTT&lt;br /&gt;
|-&lt;br /&gt;
| 11h45 – 12h05 || xvp8, x262&lt;br /&gt;
|-&lt;br /&gt;
| 12h05 – 12h30 || VideoLAN bounties, un-conference&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Lunch ===&lt;br /&gt;
&lt;br /&gt;
Made by [http://www.noon-restaurant.fr/ Noon]. Served in room E200.&lt;br /&gt;
&lt;br /&gt;
=== UnConference ===&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Unconference What is an UnConference?]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! B559 !! B555 !! B551 !! B549 !! B567 !! B312&lt;br /&gt;
|-&lt;br /&gt;
| 14h00 - 15h00 || VLC technical discussion || libav technical discussion || FFmpeg || || HACKING ROOM || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 15h00 - 16h00 || VLC technical discussion || libav technical discussion ||  ||  || HACKING ROOM || N/A &lt;br /&gt;
|-&lt;br /&gt;
| 16h00 - 17h00  || ffmpeg vs libav || MacOS X || Android  ||  || HACKING ROOM || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 17h00 - 18h00  || Chromium / libav ||  || Android ||  || HACKING ROOM || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 18h00 - 19h00 || Licensing ||  || Android ||  || HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Diner ===&lt;br /&gt;
&lt;br /&gt;
Secret Place, starting at 20h00.&lt;br /&gt;
&lt;br /&gt;
== Sunday, September 2nd 2012 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! B559 !! B555 !! B551 !! B549 !! B567 !! B312&lt;br /&gt;
|-&lt;br /&gt;
| 9h30 - 11h00  || VideoLAN association meeting || FFmtech meeting. ||  || || HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 11h00 - 12h00  || Videolan cont. || SOC ||  ||  ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 12h00 - 13h00  || Bounties ||  ||  ||  ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lunch:&#039;&#039;&#039; &#039;&#039;Pizzas&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! B559 !! B555 !! B551 !! B549 !! B567 !! B312&lt;br /&gt;
|-&lt;br /&gt;
| 14h00 - 15h00  || ARM ||  ||  ||  ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 15h00 - 16h00  || Captions || Broadcasting || MSVC  || ||  HACKING ROOM  || N/A &lt;br /&gt;
|-&lt;br /&gt;
| 16h00 - 17h00  || Hack  || Hack || Hack || Hack ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Places =&lt;br /&gt;
&lt;br /&gt;
== Le dernier bar avant la fin du monde ==&lt;br /&gt;
19, avenue Victoria&amp;lt;br /&amp;gt;&lt;br /&gt;
75001 Paris&amp;lt;br /&amp;gt;&lt;br /&gt;
Metro / RER: Chatelet&lt;br /&gt;
&lt;br /&gt;
http://www.dernierbar.com/&lt;br /&gt;
&lt;br /&gt;
== Institut Telecom (Saturday / Sunday) ==&lt;br /&gt;
49, rue Vergniaud&amp;lt;br /&amp;gt;&lt;br /&gt;
75013 Paris&lt;br /&gt;
&lt;br /&gt;
Metro 7: Tolbiac&amp;lt;br /&amp;gt;&lt;br /&gt;
Metro 6: Corvisart&amp;lt;br /&amp;gt;&lt;br /&gt;
RER B: Cité Universitaire&lt;br /&gt;
&lt;br /&gt;
From CDG airport, take:&amp;lt;br /&amp;gt;&lt;br /&gt;
the RER B (Paris by train) to Cité Universitaire&amp;lt;br /&amp;gt;&lt;br /&gt;
or the RER B (Paris by train) to Chatêlet, then Subway line 7&lt;br /&gt;
&lt;br /&gt;
== Hotel Ibis ==&lt;br /&gt;
[http://www.ibishotel.com/gb/hotel-5543-ibis-paris-avenue-d-italie-13eme/index.shtml Hotel IBIS Paris Avenue d&#039;Italie]&amp;lt;br /&amp;gt;&lt;br /&gt;
15 bis Avenue d&#039;Italie&amp;lt;br /&amp;gt;&lt;br /&gt;
75013 Paris&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VDD12&amp;diff=23124</id>
		<title>VDD12</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VDD12&amp;diff=23124"/>
		<updated>2012-09-01T10:58:40Z</updated>

		<summary type="html">&lt;p&gt;Etix: /* Sunday, September 2nd 2012 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= VideoLAN Dev Days &#039;12 =&lt;br /&gt;
&#039;&#039;&#039;The Multimedia Conference that frees the cone in you!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a technical un-conference, please bring laptops, cords, RJ45 cables&lt;br /&gt;
and good mood with you.&lt;br /&gt;
&lt;br /&gt;
=== Nota Bene ===&lt;br /&gt;
* The hotel is the [http://www.ibishotel.com/gb/hotel-5543-ibis-paris-avenue-d-italie-13eme/index.shtml Ibis] Avenue d&#039;Italie.&lt;br /&gt;
&lt;br /&gt;
* If you expect us to refund your travel, please bring a printed copy of your tickets, one that shows the total cost. If you are not in our reimbursement database, bring a printed IBAN too.&lt;br /&gt;
 &lt;br /&gt;
* On saturday and sunday, enter the [http://www.mines-telecom.fr Institut Télécom] by the Régnault entrance.&lt;br /&gt;
&lt;br /&gt;
* There will be a wifi connexion, under the EDUROAM ESSID.&lt;br /&gt;
&lt;br /&gt;
= Schedule =&lt;br /&gt;
&lt;br /&gt;
== Friday, August 31st 2012 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! Place !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 18h00 || [http://www.ibishotel.com/gb/hotel-5543-ibis-paris-avenue-d-italie-13eme/index.shtml Hotel] || Meeting point in front of the hotel&lt;br /&gt;
|-&lt;br /&gt;
| 18h30 – 23h59 || [http://www.dernierbar.com/ Dernier bar] || Welcome and meet-up for early attenders. Drinks at Paris&#039; newest geek bar.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This bar is at Chatelet subway Station (RER B from airports, and subway Line 7 from the Hotel of Place d&#039;Italie).&lt;br /&gt;
19, avenue Victoria 75001 Paris&lt;br /&gt;
&lt;br /&gt;
== Saturday, September 1st 2012 ==&lt;br /&gt;
&lt;br /&gt;
All the meetings happen in the [http://www.mines-telecom.fr/ Institut Telecom].&lt;br /&gt;
&lt;br /&gt;
=== Morning ===&lt;br /&gt;
Salle des thèses B312 &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 9h30 – 10h00 || Welcome, registration, coffee and croissants&lt;br /&gt;
|-&lt;br /&gt;
| 10h00 – 10h15 || Welcome, VideoLAN, VLC&lt;br /&gt;
|-&lt;br /&gt;
| 10h20 – 10h45 || Opus&lt;br /&gt;
|-&lt;br /&gt;
| 10h45 – 11h15 || Reverse engineering codecs&lt;br /&gt;
|-&lt;br /&gt;
| 11h15 – 11h30 || &#039;&#039;&#039;Coffee Break&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 11h30 – 11h45 || WebVTT&lt;br /&gt;
|-&lt;br /&gt;
| 11h45 – 12h05 || xvp8, x262&lt;br /&gt;
|-&lt;br /&gt;
| 12h05 – 12h30 || VideoLAN bounties, un-conference&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Lunch ===&lt;br /&gt;
&lt;br /&gt;
Made by [http://www.noon-restaurant.fr/ Noon]. Served in room E200.&lt;br /&gt;
&lt;br /&gt;
=== UnConference ===&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Unconference What is an UnConference?]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! B559 !! B555 !! B551 !! B549 !! B567 !! B312&lt;br /&gt;
|-&lt;br /&gt;
| 14h00 - 15h00 || VLC technical discussion || libav technical discussion || FFmpeg || || HACKING ROOM || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 15h00 - 16h00 || VLC technical discussion || libav technical discussion ||  ||  || HACKING ROOM || N/A &lt;br /&gt;
|-&lt;br /&gt;
| 16h00 - 17h00  || ffmpeg vs libav || MacOS X || Android  ||  || HACKING ROOM || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 17h00 - 18h00  || Chromium / libav ||  || Android ||  || HACKING ROOM || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 18h00 - 19h00 || Licensing ||  || Android ||  || HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Diner ===&lt;br /&gt;
&lt;br /&gt;
Secret Place, starting at 20h00.&lt;br /&gt;
&lt;br /&gt;
== Sunday, September 2nd 2012 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! B559 !! B555 !! B551 !! B549 !! B567 !! B312&lt;br /&gt;
|-&lt;br /&gt;
| 9h30 - 11h00  || VideoLAN association meeting || FFmtech meeting. ||  || ||  HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 11h00 - 12h00  || Videolan cont. || SOC ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
| 12h00 - 13h00  || Bounties ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lunch:&#039;&#039;&#039; &#039;&#039;Pizzas&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! B559 !! B555 !! B551 !! B549 !! B567 !! B312&lt;br /&gt;
|-&lt;br /&gt;
| 14h00 - 15h00  || ARM ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
| 15h00 - 16h00  || Captions || Broadcasting || MSVC  || ||  || &lt;br /&gt;
|-&lt;br /&gt;
| 16h00 - 17h00  || Hack  || Hack || Hack || Hack ||  || &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Places =&lt;br /&gt;
&lt;br /&gt;
== Le dernier bar avant la fin du monde ==&lt;br /&gt;
19, avenue Victoria&amp;lt;br /&amp;gt;&lt;br /&gt;
75001 Paris&amp;lt;br /&amp;gt;&lt;br /&gt;
Metro / RER: Chatelet&lt;br /&gt;
&lt;br /&gt;
http://www.dernierbar.com/&lt;br /&gt;
&lt;br /&gt;
== Institut Telecom (Saturday / Sunday) ==&lt;br /&gt;
49, rue Vergniaud&amp;lt;br /&amp;gt;&lt;br /&gt;
75013 Paris&lt;br /&gt;
&lt;br /&gt;
Metro 7: Tolbiac&amp;lt;br /&amp;gt;&lt;br /&gt;
Metro 6: Corvisart&amp;lt;br /&amp;gt;&lt;br /&gt;
RER B: Cité Universitaire&lt;br /&gt;
&lt;br /&gt;
From CDG airport, take:&amp;lt;br /&amp;gt;&lt;br /&gt;
the RER B (Paris by train) to Cité Universitaire&amp;lt;br /&amp;gt;&lt;br /&gt;
or the RER B (Paris by train) to Chatêlet, then Subway line 7&lt;br /&gt;
&lt;br /&gt;
== Hotel Ibis ==&lt;br /&gt;
[http://www.ibishotel.com/gb/hotel-5543-ibis-paris-avenue-d-italie-13eme/index.shtml Hotel IBIS Paris Avenue d&#039;Italie]&amp;lt;br /&amp;gt;&lt;br /&gt;
15 bis Avenue d&#039;Italie&amp;lt;br /&amp;gt;&lt;br /&gt;
75013 Paris&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VDD12&amp;diff=23123</id>
		<title>VDD12</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VDD12&amp;diff=23123"/>
		<updated>2012-09-01T10:57:55Z</updated>

		<summary type="html">&lt;p&gt;Etix: /* UnConference */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= VideoLAN Dev Days &#039;12 =&lt;br /&gt;
&#039;&#039;&#039;The Multimedia Conference that frees the cone in you!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a technical un-conference, please bring laptops, cords, RJ45 cables&lt;br /&gt;
and good mood with you.&lt;br /&gt;
&lt;br /&gt;
=== Nota Bene ===&lt;br /&gt;
* The hotel is the [http://www.ibishotel.com/gb/hotel-5543-ibis-paris-avenue-d-italie-13eme/index.shtml Ibis] Avenue d&#039;Italie.&lt;br /&gt;
&lt;br /&gt;
* If you expect us to refund your travel, please bring a printed copy of your tickets, one that shows the total cost. If you are not in our reimbursement database, bring a printed IBAN too.&lt;br /&gt;
 &lt;br /&gt;
* On saturday and sunday, enter the [http://www.mines-telecom.fr Institut Télécom] by the Régnault entrance.&lt;br /&gt;
&lt;br /&gt;
* There will be a wifi connexion, under the EDUROAM ESSID.&lt;br /&gt;
&lt;br /&gt;
= Schedule =&lt;br /&gt;
&lt;br /&gt;
== Friday, August 31st 2012 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! Place !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 18h00 || [http://www.ibishotel.com/gb/hotel-5543-ibis-paris-avenue-d-italie-13eme/index.shtml Hotel] || Meeting point in front of the hotel&lt;br /&gt;
|-&lt;br /&gt;
| 18h30 – 23h59 || [http://www.dernierbar.com/ Dernier bar] || Welcome and meet-up for early attenders. Drinks at Paris&#039; newest geek bar.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This bar is at Chatelet subway Station (RER B from airports, and subway Line 7 from the Hotel of Place d&#039;Italie).&lt;br /&gt;
19, avenue Victoria 75001 Paris&lt;br /&gt;
&lt;br /&gt;
== Saturday, September 1st 2012 ==&lt;br /&gt;
&lt;br /&gt;
All the meetings happen in the [http://www.mines-telecom.fr/ Institut Telecom].&lt;br /&gt;
&lt;br /&gt;
=== Morning ===&lt;br /&gt;
Salle des thèses B312 &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 9h30 – 10h00 || Welcome, registration, coffee and croissants&lt;br /&gt;
|-&lt;br /&gt;
| 10h00 – 10h15 || Welcome, VideoLAN, VLC&lt;br /&gt;
|-&lt;br /&gt;
| 10h20 – 10h45 || Opus&lt;br /&gt;
|-&lt;br /&gt;
| 10h45 – 11h15 || Reverse engineering codecs&lt;br /&gt;
|-&lt;br /&gt;
| 11h15 – 11h30 || &#039;&#039;&#039;Coffee Break&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 11h30 – 11h45 || WebVTT&lt;br /&gt;
|-&lt;br /&gt;
| 11h45 – 12h05 || xvp8, x262&lt;br /&gt;
|-&lt;br /&gt;
| 12h05 – 12h30 || VideoLAN bounties, un-conference&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Lunch ===&lt;br /&gt;
&lt;br /&gt;
Made by [http://www.noon-restaurant.fr/ Noon]. Served in room E200.&lt;br /&gt;
&lt;br /&gt;
=== UnConference ===&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Unconference What is an UnConference?]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! B559 !! B555 !! B551 !! B549 !! B567 !! B312&lt;br /&gt;
|-&lt;br /&gt;
| 14h00 - 15h00 || VLC technical discussion || libav technical discussion || FFmpeg || || HACKING ROOM || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 15h00 - 16h00 || VLC technical discussion || libav technical discussion ||  ||  || HACKING ROOM || N/A &lt;br /&gt;
|-&lt;br /&gt;
| 16h00 - 17h00  || ffmpeg vs libav || MacOS X || Android  ||  || HACKING ROOM || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 17h00 - 18h00  || Chromium / libav ||  || Android ||  || HACKING ROOM || N/A&lt;br /&gt;
|-&lt;br /&gt;
| 18h00 - 19h00 || Licensing ||  || Android ||  || HACKING ROOM  || N/A&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Diner ===&lt;br /&gt;
&lt;br /&gt;
Secret Place, starting at 20h00.&lt;br /&gt;
&lt;br /&gt;
== Sunday, September 2nd 2012 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! B559 !! B555 !! B551 !! B549 !! B567 !! B312&lt;br /&gt;
|-&lt;br /&gt;
| 9h30 - 11h00  || VideoLAN association meeting || FFmtech meeting. ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
| 11h00 - 12h00  || Videolan cont. || SOC ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
| 12h00 - 13h00  || Bounties ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lunch:&#039;&#039;&#039; &#039;&#039;Pizzas&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! B559 !! B555 !! B551 !! B549 !! B567 !! B312&lt;br /&gt;
|-&lt;br /&gt;
| 14h00 - 15h00  || ARM ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
| 15h00 - 16h00  || Captions || Broadcasting || MSVC  || ||  || &lt;br /&gt;
|-&lt;br /&gt;
| 16h00 - 17h00  || Hack  || Hack || Hack || Hack ||  || &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Places =&lt;br /&gt;
&lt;br /&gt;
== Le dernier bar avant la fin du monde ==&lt;br /&gt;
19, avenue Victoria&amp;lt;br /&amp;gt;&lt;br /&gt;
75001 Paris&amp;lt;br /&amp;gt;&lt;br /&gt;
Metro / RER: Chatelet&lt;br /&gt;
&lt;br /&gt;
http://www.dernierbar.com/&lt;br /&gt;
&lt;br /&gt;
== Institut Telecom (Saturday / Sunday) ==&lt;br /&gt;
49, rue Vergniaud&amp;lt;br /&amp;gt;&lt;br /&gt;
75013 Paris&lt;br /&gt;
&lt;br /&gt;
Metro 7: Tolbiac&amp;lt;br /&amp;gt;&lt;br /&gt;
Metro 6: Corvisart&amp;lt;br /&amp;gt;&lt;br /&gt;
RER B: Cité Universitaire&lt;br /&gt;
&lt;br /&gt;
From CDG airport, take:&amp;lt;br /&amp;gt;&lt;br /&gt;
the RER B (Paris by train) to Cité Universitaire&amp;lt;br /&amp;gt;&lt;br /&gt;
or the RER B (Paris by train) to Chatêlet, then Subway line 7&lt;br /&gt;
&lt;br /&gt;
== Hotel Ibis ==&lt;br /&gt;
[http://www.ibishotel.com/gb/hotel-5543-ibis-paris-avenue-d-italie-13eme/index.shtml Hotel IBIS Paris Avenue d&#039;Italie]&amp;lt;br /&amp;gt;&lt;br /&gt;
15 bis Avenue d&#039;Italie&amp;lt;br /&amp;gt;&lt;br /&gt;
75013 Paris&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=VDD12&amp;diff=23122</id>
		<title>VDD12</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=VDD12&amp;diff=23122"/>
		<updated>2012-09-01T10:57:03Z</updated>

		<summary type="html">&lt;p&gt;Etix: /* Sunday, September 2nd 2012 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= VideoLAN Dev Days &#039;12 =&lt;br /&gt;
&#039;&#039;&#039;The Multimedia Conference that frees the cone in you!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a technical un-conference, please bring laptops, cords, RJ45 cables&lt;br /&gt;
and good mood with you.&lt;br /&gt;
&lt;br /&gt;
=== Nota Bene ===&lt;br /&gt;
* The hotel is the [http://www.ibishotel.com/gb/hotel-5543-ibis-paris-avenue-d-italie-13eme/index.shtml Ibis] Avenue d&#039;Italie.&lt;br /&gt;
&lt;br /&gt;
* If you expect us to refund your travel, please bring a printed copy of your tickets, one that shows the total cost. If you are not in our reimbursement database, bring a printed IBAN too.&lt;br /&gt;
 &lt;br /&gt;
* On saturday and sunday, enter the [http://www.mines-telecom.fr Institut Télécom] by the Régnault entrance.&lt;br /&gt;
&lt;br /&gt;
* There will be a wifi connexion, under the EDUROAM ESSID.&lt;br /&gt;
&lt;br /&gt;
= Schedule =&lt;br /&gt;
&lt;br /&gt;
== Friday, August 31st 2012 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! Place !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 18h00 || [http://www.ibishotel.com/gb/hotel-5543-ibis-paris-avenue-d-italie-13eme/index.shtml Hotel] || Meeting point in front of the hotel&lt;br /&gt;
|-&lt;br /&gt;
| 18h30 – 23h59 || [http://www.dernierbar.com/ Dernier bar] || Welcome and meet-up for early attenders. Drinks at Paris&#039; newest geek bar.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This bar is at Chatelet subway Station (RER B from airports, and subway Line 7 from the Hotel of Place d&#039;Italie).&lt;br /&gt;
19, avenue Victoria 75001 Paris&lt;br /&gt;
&lt;br /&gt;
== Saturday, September 1st 2012 ==&lt;br /&gt;
&lt;br /&gt;
All the meetings happen in the [http://www.mines-telecom.fr/ Institut Telecom].&lt;br /&gt;
&lt;br /&gt;
=== Morning ===&lt;br /&gt;
Salle des thèses B312 &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 9h30 – 10h00 || Welcome, registration, coffee and croissants&lt;br /&gt;
|-&lt;br /&gt;
| 10h00 – 10h15 || Welcome, VideoLAN, VLC&lt;br /&gt;
|-&lt;br /&gt;
| 10h20 – 10h45 || Opus&lt;br /&gt;
|-&lt;br /&gt;
| 10h45 – 11h15 || Reverse engineering codecs&lt;br /&gt;
|-&lt;br /&gt;
| 11h15 – 11h30 || &#039;&#039;&#039;Coffee Break&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 11h30 – 11h45 || WebVTT&lt;br /&gt;
|-&lt;br /&gt;
| 11h45 – 12h05 || xvp8, x262&lt;br /&gt;
|-&lt;br /&gt;
| 12h05 – 12h30 || VideoLAN bounties, un-conference&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Lunch ===&lt;br /&gt;
&lt;br /&gt;
Made by [http://www.noon-restaurant.fr/ Noon]. Served in room E200.&lt;br /&gt;
&lt;br /&gt;
=== UnConference ===&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Unconference What is an UnConference?]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! B559 !! B555 !! B551 !! B549 !! B567 !! B312&lt;br /&gt;
|-&lt;br /&gt;
| 14h00 - 15h00 || VLC technical discussion || libav technical discussion || FFmpeg || || HACKING ROOM || &lt;br /&gt;
|-&lt;br /&gt;
| 15h00 - 16h00 || VLC technical discussion || libav technical discussion ||  ||  || HACKING ROOM  || &lt;br /&gt;
|-&lt;br /&gt;
| 16h00 - 17h00  || ffmpeg vs libav || MacOS X || Android  ||  || HACKING ROOM || &lt;br /&gt;
|-&lt;br /&gt;
| 17h00 - 18h00  || Chromium / libav ||  || Android ||  || HACKING ROOM || &lt;br /&gt;
|-&lt;br /&gt;
| 18h00 - 19h00 || Licensing ||  || Android ||  || HACKING ROOM  || &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Diner ===&lt;br /&gt;
&lt;br /&gt;
Secret Place, starting at 20h00.&lt;br /&gt;
&lt;br /&gt;
== Sunday, September 2nd 2012 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! B559 !! B555 !! B551 !! B549 !! B567 !! B312&lt;br /&gt;
|-&lt;br /&gt;
| 9h30 - 11h00  || VideoLAN association meeting || FFmtech meeting. ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
| 11h00 - 12h00  || Videolan cont. || SOC ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
| 12h00 - 13h00  || Bounties ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lunch:&#039;&#039;&#039; &#039;&#039;Pizzas&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;70%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! B559 !! B555 !! B551 !! B549 !! B567 !! B312&lt;br /&gt;
|-&lt;br /&gt;
| 14h00 - 15h00  || ARM ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
| 15h00 - 16h00  || Captions || Broadcasting || MSVC  || ||  || &lt;br /&gt;
|-&lt;br /&gt;
| 16h00 - 17h00  || Hack  || Hack || Hack || Hack ||  || &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Places =&lt;br /&gt;
&lt;br /&gt;
== Le dernier bar avant la fin du monde ==&lt;br /&gt;
19, avenue Victoria&amp;lt;br /&amp;gt;&lt;br /&gt;
75001 Paris&amp;lt;br /&amp;gt;&lt;br /&gt;
Metro / RER: Chatelet&lt;br /&gt;
&lt;br /&gt;
http://www.dernierbar.com/&lt;br /&gt;
&lt;br /&gt;
== Institut Telecom (Saturday / Sunday) ==&lt;br /&gt;
49, rue Vergniaud&amp;lt;br /&amp;gt;&lt;br /&gt;
75013 Paris&lt;br /&gt;
&lt;br /&gt;
Metro 7: Tolbiac&amp;lt;br /&amp;gt;&lt;br /&gt;
Metro 6: Corvisart&amp;lt;br /&amp;gt;&lt;br /&gt;
RER B: Cité Universitaire&lt;br /&gt;
&lt;br /&gt;
From CDG airport, take:&amp;lt;br /&amp;gt;&lt;br /&gt;
the RER B (Paris by train) to Cité Universitaire&amp;lt;br /&amp;gt;&lt;br /&gt;
or the RER B (Paris by train) to Chatêlet, then Subway line 7&lt;br /&gt;
&lt;br /&gt;
== Hotel Ibis ==&lt;br /&gt;
[http://www.ibishotel.com/gb/hotel-5543-ibis-paris-avenue-d-italie-13eme/index.shtml Hotel IBIS Paris Avenue d&#039;Italie]&amp;lt;br /&amp;gt;&lt;br /&gt;
15 bis Avenue d&#039;Italie&amp;lt;br /&amp;gt;&lt;br /&gt;
75013 Paris&lt;/div&gt;</summary>
		<author><name>Etix</name></author>
	</entry>
</feed>