<?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=Davidlallen</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=Davidlallen"/>
	<link rel="alternate" type="text/html" href="https://wiki.videolan.org/Special:Contributions/Davidlallen/"/>
	<updated>2026-11-04T16:28:43Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Talk:ExternalAPI&amp;diff=9735</id>
		<title>Talk:ExternalAPI</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Talk:ExternalAPI&amp;diff=9735"/>
		<updated>2007-08-20T20:57:20Z</updated>

		<summary type="html">&lt;p&gt;Davidlallen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Comments &lt;br /&gt;
&lt;br /&gt;
== Exception ==&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;libvcl_exception * libvlc_exception_create(void)&amp;quot; function should be great.&lt;br /&gt;
Actualy, the API let use an opaque exception structure but you need to know the structure size anyway !&lt;br /&gt;
&lt;br /&gt;
== Vout ==&lt;br /&gt;
&lt;br /&gt;
toggle_fullscreen() is useless from an embedder point of view: if I am writing an application, I need to set the movie fullscreen or not. Which makes me think that the same reasoning should apply to audio_mute: we should rather have set_mute/get_mute: the status of mute is of interest for an application developer.&lt;br /&gt;
&lt;br /&gt;
[[Zorglub]] Yes. I was thinking about actually putting both options for simplicity.&lt;br /&gt;
&lt;br /&gt;
[[OlivierAubert]] Both options can be a little redundant, but it does not cost much anyway.&lt;br /&gt;
&lt;br /&gt;
== Playlist ==&lt;br /&gt;
&lt;br /&gt;
[[Zorglub]] I don&#039;t really know how to handle playlist retrieval as VLC playlist is not a simple list ...&lt;br /&gt;
&lt;br /&gt;
[[OlivierAubert]] Yes, but it is a needed functionality anyway. We can defined a flattened view of the  playlist, which will not exactly map to the playlist but be a reasonable view.&lt;br /&gt;
&lt;br /&gt;
== VLM ==&lt;br /&gt;
&lt;br /&gt;
[[Dionoea]] Something like libvlc_vlm_cmd( libvlc_instance *, char *cmd, libvlc_exception ) could be usefull. This would let the enduser do whatever he wants with vlm easily.&lt;br /&gt;
&lt;br /&gt;
== autogeneration? ==&lt;br /&gt;
&lt;br /&gt;
I have been cutting and pasting out of this page into my code, and a number of the function names and arguments are slightly wrong.  I have corrected a few.  Is there a way to autogenerate *just* these API calls out of the sources? [[User:Davidlallen|Davidlallen]] 22:57, 20 August 2007 (CEST)&lt;/div&gt;</summary>
		<author><name>Davidlallen</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=LibVLC&amp;diff=9731</id>
		<title>LibVLC</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=LibVLC&amp;diff=9731"/>
		<updated>2007-08-20T18:00:50Z</updated>

		<summary type="html">&lt;p&gt;Davidlallen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You can embed libVLC into your application to gain audio/video playing features.&lt;br /&gt;
&lt;br /&gt;
Here are three different tutorials on libVLC:&lt;br /&gt;
* [[LibVLC_Visual_C++| Visual C++ Tutorial]] &#039;&#039; (uses &amp;quot;old&amp;quot; legacy API) &#039;&#039;&lt;br /&gt;
* [[LibVLC_Tutorial_086c| Tutorial for version 0.8.6c]]&lt;br /&gt;
* [[LibVLC_Tutorial|Tutorial for trunk version]]&lt;br /&gt;
&lt;br /&gt;
The documentation on the external API is here: [[ExternalAPI]]&lt;/div&gt;</summary>
		<author><name>Davidlallen</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=User_talk:Davidlallen&amp;diff=9730</id>
		<title>User talk:Davidlallen</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=User_talk:Davidlallen&amp;diff=9730"/>
		<updated>2007-08-20T17:39:53Z</updated>

		<summary type="html">&lt;p&gt;Davidlallen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello, I don&#039;t really think you should have removed your code from the wiki. It is welcomed! We may however have wanted two differents section/wiki page for 0.8.6 and 0.9.0. Thanks! --[[User:Pdherbemont|Pdherbemont]] 02:53, 20 August 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
Um, please see the *parent* page on tutorials.  I have added a complete working example for 0.8.6c and returned &lt;br /&gt;
your page to the way it was. --[[User:davidlallen|davidlallen]] 10:39, 20 August 2007 (PST)&lt;/div&gt;</summary>
		<author><name>Davidlallen</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=LibVLC_Tutorial_086c&amp;diff=9726</id>
		<title>LibVLC Tutorial 086c</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=LibVLC_Tutorial_086c&amp;diff=9726"/>
		<updated>2007-08-20T00:47:24Z</updated>

		<summary type="html">&lt;p&gt;Davidlallen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Tutorial for libVLC for version 0.8.6c ===&lt;br /&gt;
&lt;br /&gt;
Tested on cygwin with gcc 3.4, windows xp; instructions also for linux with small code change.&lt;br /&gt;
You will want to change the plugin path to where you actually have vlc installed.  And you will want to change the video filename to one which actually exists on your system.  This will initialize vlc and play the video for ten seconds.  After you get this to work, then you will want to look up the external API documentation to see how to use the other interfaces.  Note there are two interfaces documented in the &lt;br /&gt;
external API page; the first one is the &amp;quot;old&amp;quot; legacy one using calls such as VLC_Init.  The second one&lt;br /&gt;
is the &amp;quot;current&amp;quot; one using calls such as libvlc_new, which is used in the following code.&lt;br /&gt;
&lt;br /&gt;
=== Code ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;vlc/libvlc.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 static void quit_on_exception (libvlc_exception_t *excp) {&lt;br /&gt;
    if (libvlc_exception_raised (excp)) {&lt;br /&gt;
       fprintf(stderr, &amp;quot;error: %s\n&amp;quot;, libvlc_exception_get_message(excp));&lt;br /&gt;
       exit(-1);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int main(int argc, char **argv) {&lt;br /&gt;
    libvlc_exception_t excp;&lt;br /&gt;
    libvlc_instance_t *inst;&lt;br /&gt;
    int item;&lt;br /&gt;
    char *myarg0 = &amp;quot;-I&amp;quot;;  char *myarg1 = &amp;quot;dummy&amp;quot;;&lt;br /&gt;
    char *myarg2 = &amp;quot;--plugin-path=c:\\program files\\videolan\\plugins&amp;quot;;&lt;br /&gt;
    char *myargs[4] = {myarg0, myarg1, myarg2, NULL};&lt;br /&gt;
    char *filename = &amp;quot;c:\\video\\main\\Everybody_Hates_Chris_Feb_26.mpg&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
    libvlc_exception_init (&amp;amp;excp);&lt;br /&gt;
    inst = libvlc_new (3, myargs, &amp;amp;excp);&lt;br /&gt;
    quit_on_exception (&amp;amp;excp);&lt;br /&gt;
    item = libvlc_playlist_add (inst, filename, NULL, &amp;amp;excp); &lt;br /&gt;
    quit_on_exception (&amp;amp;excp);&lt;br /&gt;
    libvlc_playlist_play (inst, item, 0, NULL, &amp;amp;excp); &lt;br /&gt;
    quit_on_exception (&amp;amp;excp);&lt;br /&gt;
    Sleep (10000);&lt;br /&gt;
    libvlc_destroy (inst);&lt;br /&gt;
    return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Compile/link ===&lt;br /&gt;
&lt;br /&gt;
You can use libvlc without compiling your own copy of the vlc source code.  You can use the libvlc.dll which comes in the standard end user installation.  But, to access the include files, you will need to download and untar the sources distribution.  You only need to untar it; you do not even need to run the configure script.  &lt;br /&gt;
Set your $path to include the directory which contains libvlc.dll and the plugins directory.  For example, add &amp;quot;c:\program files\videolan&amp;quot; in a relatively standard installation.  This is so Windows can find the libvlc.dll.  Otherwise you have to copy the dll to your current directory.  &lt;br /&gt;
Use the following Makefile:&lt;br /&gt;
&lt;br /&gt;
 VLC_INST = &amp;quot;c:\program files\videolan&amp;quot;&lt;br /&gt;
 VLC_SRC = &amp;quot;c:\tools\vlc-0.8.6c\&amp;quot;&lt;br /&gt;
 demo: demo.c&lt;br /&gt;
    gcc -o demo demo.c -I$(VLC_SRC)/include \&lt;br /&gt;
    -L$(VLC_INST) -llibvlc&lt;br /&gt;
&lt;br /&gt;
=== Change for linux ===&lt;br /&gt;
&lt;br /&gt;
(Not tested, but pretty simple)&lt;br /&gt;
&lt;br /&gt;
Delete include of windows.h; change &amp;quot;Sleep(10000)&amp;quot; to &amp;quot;sleep(10)&amp;quot;.  Different capitalization and different time units.&lt;/div&gt;</summary>
		<author><name>Davidlallen</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=User:Davidlallen&amp;diff=9725</id>
		<title>User:Davidlallen</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=User:Davidlallen&amp;diff=9725"/>
		<updated>2007-08-20T00:34:06Z</updated>

		<summary type="html">&lt;p&gt;Davidlallen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I have written my own PVR software in C++/Tcl.  Today it uses an old &lt;br /&gt;
version of Media Player for playback.  That version doesn&#039;t support &lt;br /&gt;
some newer video formats, like mp4, dvr-ms, ts.  So I want to use &lt;br /&gt;
libvlc.dll instead.  I had some trouble with the libvlc tutorial&lt;br /&gt;
pages, so I added my recent experience.&lt;/div&gt;</summary>
		<author><name>Davidlallen</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Talk:LibVLC_Tutorial_0.9&amp;diff=9724</id>
		<title>Talk:LibVLC Tutorial 0.9</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Talk:LibVLC_Tutorial_0.9&amp;diff=9724"/>
		<updated>2007-08-20T00:31:29Z</updated>

		<summary type="html">&lt;p&gt;Davidlallen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This code doesn&#039;t appear to compile.  I am using gcc 3.4.&lt;br /&gt;
But some of the problems are obvious, eg line 6, the&lt;br /&gt;
parentheses don&#039;t match.&lt;br /&gt;
&lt;br /&gt;
What version of libvlc was used to create the tutorial?&lt;br /&gt;
Functions libvlc_media_... don&#039;t appear to exist in the&lt;br /&gt;
latest release version, 0.8.6c.  If an unreleased version&lt;br /&gt;
is used for the tutorial, that would be fine, if the&lt;br /&gt;
text mentioned that.&lt;br /&gt;
&lt;br /&gt;
[[User:davidlallen|davidlallen]] 17:29, 19 August 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
The code wasn&#039;t tested, but should work using 0.9.0, or at least show how to use.--[[User:Pdherbemont|Pdherbemont]] 22:36, 19 August 2007 (CEST)&lt;/div&gt;</summary>
		<author><name>Davidlallen</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=LibVLC_Tutorial_086c&amp;diff=9723</id>
		<title>LibVLC Tutorial 086c</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=LibVLC_Tutorial_086c&amp;diff=9723"/>
		<updated>2007-08-20T00:28:14Z</updated>

		<summary type="html">&lt;p&gt;Davidlallen: tutorial for libvlc for version 0.8.6c&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Tutorial for libVLC for version 0.8.6c ===&lt;br /&gt;
&lt;br /&gt;
(Tested on cygwin with gcc 3.4, windows xp; instructions also for linux with small code change)&lt;br /&gt;
&lt;br /&gt;
=== Code ===&lt;br /&gt;
&lt;br /&gt;
nyi&lt;br /&gt;
&lt;br /&gt;
=== Compile/link ===&lt;br /&gt;
&lt;br /&gt;
nyi&lt;br /&gt;
&lt;br /&gt;
=== Change for linux ===&lt;br /&gt;
&lt;br /&gt;
(Not tested, but pretty simple)&lt;br /&gt;
&lt;br /&gt;
Delete include of windows.h; change &amp;quot;Sleep(10000)&amp;quot; to &amp;quot;sleep(10)&amp;quot;.  Different capitalization and different time units.&lt;/div&gt;</summary>
		<author><name>Davidlallen</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=LibVLC_Tutorial_0.9&amp;diff=9722</id>
		<title>LibVLC Tutorial 0.9</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=LibVLC_Tutorial_0.9&amp;diff=9722"/>
		<updated>2007-08-20T00:23:47Z</updated>

		<summary type="html">&lt;p&gt;Davidlallen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== LibVLC Tutorial ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039; This may work with trunk version, does not work with 0.8.6c &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Linking against LibVLC ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039; not yet written &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Sample LibVLC Code ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;vlc/libvlc.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 static void quit_on_exception( libvlc_exception_t * excp )&lt;br /&gt;
 {&lt;br /&gt;
     if( libvlc_exception_raised( &amp;amp;excp );&lt;br /&gt;
     {&lt;br /&gt;
          fprintf(stderr, &amp;quot;error: %s\n&amp;quot;, libvlc_exception_get_message(excp) );&lt;br /&gt;
          exit(-1);&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 int main(int argc, char* argv[])&lt;br /&gt;
 {&lt;br /&gt;
     char *vlc_args = {&amp;quot;-I&amp;quot;, &amp;quot;dummy&amp;quot;, &amp;quot;--module-path=/set/your/path/to/libvlc/module&amp;quot;};&lt;br /&gt;
     libvlc_exception_t excp;&lt;br /&gt;
     libvlc_instance_t * inst;&lt;br /&gt;
     libvlc_media_instance_t *mi;&lt;br /&gt;
     libvlc_media_descriptor_t *md;&lt;br /&gt;
     &lt;br /&gt;
     libvlc_exception_init( &amp;amp;excp );&lt;br /&gt;
     /* init vlc modules, should be done only once */&lt;br /&gt;
     inst = libvlc_new( args, 3, &amp;amp;excp );&lt;br /&gt;
     quit_on_exception( &amp;amp;excp );&lt;br /&gt;
  &lt;br /&gt;
     /* Create a new item */&lt;br /&gt;
     md = libvlc_media_descriptor_new( int, &amp;quot;http://mycool.movie.com/test.mov&amp;quot;, &amp;amp;excp );&lt;br /&gt;
     quit_on_exception( &amp;amp;excp );&lt;br /&gt;
    &lt;br /&gt;
     /* XXX: demo art and meta information fetching */&lt;br /&gt;
    &lt;br /&gt;
     /* Create a media instance playing environement */&lt;br /&gt;
     mi = libvlc_media_instance_new_from_media_descriptor( int, md, &amp;amp;excp );&lt;br /&gt;
     quit_on_exception( &amp;amp;excp );&lt;br /&gt;
     &lt;br /&gt;
     /* No need to keep the media descriptor now */&lt;br /&gt;
     libvlc_media_descriptor_release( md );&lt;br /&gt;
 &lt;br /&gt;
 #if 0&lt;br /&gt;
     /* This is a non working code that show how to hooks into a window,&lt;br /&gt;
      * if we have a window around */&lt;br /&gt;
      libvlc_drawable_t drawable = xdrawable;&lt;br /&gt;
     /* or on windows */&lt;br /&gt;
      libvlc_drawable_t drawable = hwnd;&lt;br /&gt;
 &lt;br /&gt;
      libvlc_media_instance_set_drawable( mi, drawable, &amp;amp;excp );&lt;br /&gt;
      quit_on_exception( &amp;amp;excp );&lt;br /&gt;
 #endif&lt;br /&gt;
 &lt;br /&gt;
     /* play the media_instance */&lt;br /&gt;
     libvlc_media_instance_play( mi, &amp;amp;excp );&lt;br /&gt;
     quit_on_exception( &amp;amp;excp );&lt;br /&gt;
    &lt;br /&gt;
     sleep(10); /* Let it play a bit */&lt;br /&gt;
    &lt;br /&gt;
     /* Stop playing */&lt;br /&gt;
     libvlc_media_instance_stop( mi, &amp;amp;excp );&lt;br /&gt;
 &lt;br /&gt;
     /* Free the media_instance */&lt;br /&gt;
     libvlc_media_instance_release( mi, &amp;amp;excp );&lt;br /&gt;
 &lt;br /&gt;
     libvlc_instance_destroy( inst );&lt;br /&gt;
 &lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Davidlallen</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=LibVLC&amp;diff=9721</id>
		<title>LibVLC</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=LibVLC&amp;diff=9721"/>
		<updated>2007-08-20T00:20:46Z</updated>

		<summary type="html">&lt;p&gt;Davidlallen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You can embed libVLC into your application to gain audio/video playing features.&lt;br /&gt;
&lt;br /&gt;
Here are the different tutorial on libVLC you can found here:&lt;br /&gt;
* [[LibVLC_Visual_C++| Visual C++ Tutorial]] &#039;&#039; (uses &amp;quot;old&amp;quot; legacy API) &#039;&#039;&lt;br /&gt;
* [[LibVLC_Tutorial_086c| Tutorial for version 0.8.6c]]&lt;br /&gt;
* [[LibVLC_Tutorial|Tutorial for trunk version]]&lt;/div&gt;</summary>
		<author><name>Davidlallen</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Talk:LibVLC_Tutorial_0.9&amp;diff=9719</id>
		<title>Talk:LibVLC Tutorial 0.9</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Talk:LibVLC_Tutorial_0.9&amp;diff=9719"/>
		<updated>2007-08-19T19:06:49Z</updated>

		<summary type="html">&lt;p&gt;Davidlallen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This code doesn&#039;t appear to compile.  I am using gcc 3.4.&lt;br /&gt;
But some of the problems are obvious, eg line 6, the&lt;br /&gt;
parentheses don&#039;t match.&lt;br /&gt;
&lt;br /&gt;
What version of libvlc was used to create the tutorial?&lt;br /&gt;
Functions libvlc_media_... don&#039;t appear to exist in the&lt;br /&gt;
latest release version, 0.8.6c.  If an unreleased version&lt;br /&gt;
is used for the tutorial, that would be fine, if the&lt;br /&gt;
text mentioned that.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I am new to this wiki, and I don&#039;t want to jump too far&lt;br /&gt;
ahead.  However, I have modified the tutorial code so &lt;br /&gt;
that it compiles and runs on cygwin gcc 3.4 and windows&lt;br /&gt;
XP, using the latest released vlc version 0.8.6c.&lt;br /&gt;
&lt;br /&gt;
I will paste the code here, in the talk page, in&lt;br /&gt;
case it would be a violation of etiquette to just dump&lt;br /&gt;
the code on the main page.  Note the code on the main&lt;br /&gt;
page has syntax errors at least, and either it has&lt;br /&gt;
big prototyping problems or else the related API&#039;s&lt;br /&gt;
are substantially different in whatever vlc version the&lt;br /&gt;
author used to compile against.&lt;br /&gt;
&lt;br /&gt;
Note for linux, remove &amp;lt;windows.h&amp;gt;, change&lt;br /&gt;
&amp;quot;Sleep (10000)&amp;quot; to &amp;quot;sleep (10)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;vlc/libvlc.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void quit_on_exception (libvlc_exception_t *excp) {&lt;br /&gt;
   if (libvlc_exception_raised (excp)) {&lt;br /&gt;
      fprintf(stderr, &amp;quot;error: %s\n&amp;quot;, libvlc_exception_get_message(excp));&lt;br /&gt;
      exit(-1);&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char **argv) {&lt;br /&gt;
   libvlc_exception_t excp;&lt;br /&gt;
   libvlc_instance_t *inst;&lt;br /&gt;
   int item;&lt;br /&gt;
   char *myarg0 = &amp;quot;-I&amp;quot;;  char *myarg1 = &amp;quot;dummy&amp;quot;;&lt;br /&gt;
   char *myarg2 = &amp;quot;--plugin-path=c:\\program files\\videolan\\plugins&amp;quot;;&lt;br /&gt;
   char *myargs[4] = {myarg0, myarg1, myarg2, NULL};&lt;br /&gt;
   char *filename = &amp;quot;c:\\video\\main\\Everybody_Hates_Chris_Feb_26.mpg&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
   libvlc_exception_init (&amp;amp;excp);&lt;br /&gt;
   inst = libvlc_new (3, myargs, &amp;amp;excp);&lt;br /&gt;
   quit_on_exception (&amp;amp;excp);&lt;br /&gt;
   item = libvlc_playlist_add (inst, filename, NULL, &amp;amp;excp); &lt;br /&gt;
   quit_on_exception (&amp;amp;excp);&lt;br /&gt;
   libvlc_playlist_play (inst, item, 0, NULL, &amp;amp;excp); &lt;br /&gt;
   quit_on_exception (&amp;amp;excp);&lt;br /&gt;
   Sleep (10000);&lt;br /&gt;
   libvlc_destroy (inst);&lt;br /&gt;
   return 0;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Davidlallen</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=LibVLC_Tutorial_0.9&amp;diff=9717</id>
		<title>LibVLC Tutorial 0.9</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=LibVLC_Tutorial_0.9&amp;diff=9717"/>
		<updated>2007-08-19T18:25:53Z</updated>

		<summary type="html">&lt;p&gt;Davidlallen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== LibVLC Tutorial ==&lt;br /&gt;
&lt;br /&gt;
=== Linking against LibVLC ===&lt;br /&gt;
&lt;br /&gt;
Using libvlc 0.8.6c and cygwin gcc 3.4, you can link with libvlc like this:&lt;br /&gt;
&lt;br /&gt;
1. Set your $path to include the directory which contains libvlc.dll and&lt;br /&gt;
the plugins directory.  For example, add &amp;quot;c:\program files\videolan&amp;quot; in&lt;br /&gt;
a relatively standard installation.&lt;br /&gt;
&lt;br /&gt;
2. In your Makefile, define a variable which points to your installation:&lt;br /&gt;
VLC_INST = &amp;quot;c:\program files\videolan&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3. In your Makefile, add the -L and -l option to gcc:&lt;br /&gt;
	-L$(VLC_INST) -llibvlc&lt;br /&gt;
&lt;br /&gt;
=== Sample LibVLC Code ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;vlc/libvlc.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 static void quit_on_exception( libvlc_exception_t * excp )&lt;br /&gt;
 {&lt;br /&gt;
     if( libvlc_exception_raised( &amp;amp;excp );&lt;br /&gt;
     {&lt;br /&gt;
          fprintf(stderr, &amp;quot;error: %s\n&amp;quot;, libvlc_exception_get_message(excp) );&lt;br /&gt;
          exit(-1);&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 int main(int argc, char* argv[])&lt;br /&gt;
 {&lt;br /&gt;
     char *vlc_args = {&amp;quot;-I&amp;quot;, &amp;quot;dummy&amp;quot;, &amp;quot;--module-path=/set/your/path/to/libvlc/module&amp;quot;};&lt;br /&gt;
     libvlc_exception_t excp;&lt;br /&gt;
     libvlc_instance_t * inst;&lt;br /&gt;
     libvlc_media_instance_t *mi;&lt;br /&gt;
     libvlc_media_descriptor_t *md;&lt;br /&gt;
     &lt;br /&gt;
     libvlc_exception_init( &amp;amp;excp );&lt;br /&gt;
     /* init vlc modules, should be done only once */&lt;br /&gt;
     inst = libvlc_new( args, 3, &amp;amp;excp );&lt;br /&gt;
     quit_on_exception( &amp;amp;excp );&lt;br /&gt;
  &lt;br /&gt;
     /* Create a new item */&lt;br /&gt;
     md = libvlc_media_descriptor_new( int, &amp;quot;http://mycool.movie.com/test.mov&amp;quot;, &amp;amp;excp );&lt;br /&gt;
     quit_on_exception( &amp;amp;excp );&lt;br /&gt;
    &lt;br /&gt;
     /* XXX: demo art and meta information fetching */&lt;br /&gt;
    &lt;br /&gt;
     /* Create a media instance playing environement */&lt;br /&gt;
     mi = libvlc_media_instance_new_from_media_descriptor( int, md, &amp;amp;excp );&lt;br /&gt;
     quit_on_exception( &amp;amp;excp );&lt;br /&gt;
     &lt;br /&gt;
     /* No need to keep the media descriptor now */&lt;br /&gt;
     libvlc_media_descriptor_release( md );&lt;br /&gt;
 &lt;br /&gt;
 #if 0&lt;br /&gt;
     /* This is a non working code that show how to hooks into a window,&lt;br /&gt;
      * if we have a window around */&lt;br /&gt;
      libvlc_drawable_t drawable = xdrawable;&lt;br /&gt;
     /* or on windows */&lt;br /&gt;
      libvlc_drawable_t drawable = hwnd;&lt;br /&gt;
 &lt;br /&gt;
      libvlc_media_instance_set_drawable( mi, drawable, &amp;amp;excp );&lt;br /&gt;
      quit_on_exception( &amp;amp;excp );&lt;br /&gt;
 #endif&lt;br /&gt;
 &lt;br /&gt;
     /* play the media_instance */&lt;br /&gt;
     libvlc_media_instance_play( mi, &amp;amp;excp );&lt;br /&gt;
     quit_on_exception( &amp;amp;excp );&lt;br /&gt;
    &lt;br /&gt;
     sleep(10); /* Let it play a bit */&lt;br /&gt;
    &lt;br /&gt;
     /* Stop playing */&lt;br /&gt;
     libvlc_media_instance_stop( mi, &amp;amp;excp );&lt;br /&gt;
 &lt;br /&gt;
     /* Free the media_instance */&lt;br /&gt;
     libvlc_media_instance_release( mi, &amp;amp;excp );&lt;br /&gt;
 &lt;br /&gt;
     libvlc_instance_destroy( inst );&lt;br /&gt;
 &lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Davidlallen</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Talk:LibVLC_Tutorial_0.9&amp;diff=9716</id>
		<title>Talk:LibVLC Tutorial 0.9</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Talk:LibVLC_Tutorial_0.9&amp;diff=9716"/>
		<updated>2007-08-19T18:20:16Z</updated>

		<summary type="html">&lt;p&gt;Davidlallen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This code doesn&#039;t appear to compile.  I am using gcc 3.4.&lt;br /&gt;
But some of the problems are obvious, eg line 6, the&lt;br /&gt;
parentheses don&#039;t match.&lt;br /&gt;
&lt;br /&gt;
What version of libvlc was used to create the tutorial?&lt;br /&gt;
Functions libvlc_media_... don&#039;t appear to exist in the&lt;br /&gt;
latest release version, 0.8.6c.  If an unreleased version&lt;br /&gt;
is used for the tutorial, that would be fine, if the&lt;br /&gt;
text mentioned that.&lt;/div&gt;</summary>
		<author><name>Davidlallen</name></author>
	</entry>
</feed>