[Cvs-annodex] commit (annodex): AnnodexFirefoxExtension/trunk/Docs/DevDoc_MediaEngineAddendum.html +AnnodexFirefoxExtension/trunk/Docs/Patches/ +AnnodexFirefoxExtension/trunk/Docs/Patches/VLC-0.85.patch

cchiu nobody at lists.annodex.net
Wed Jun 14 07:09:22 UTC 2006


Update of /var/local/lib/svn/annodex (new revision 2332)

Added files:
   AnnodexFirefoxExtension/trunk/Docs/Patches/
   AnnodexFirefoxExtension/trunk/Docs/Patches/VLC-0.85.patch

Modified files:
   AnnodexFirefoxExtension/trunk/Docs/DevDoc_MediaEngineAddendum.html

Log Message:
Updated documentation to compile in VLC version 0.85

Modified: AnnodexFirefoxExtension/trunk/Docs/DevDoc_MediaEngineAddendum.html
===================================================================
--- AnnodexFirefoxExtension/trunk/Docs/DevDoc_MediaEngineAddendum.html	2006-06-13 08:25:50 UTC (rev 2331)
+++ AnnodexFirefoxExtension/trunk/Docs/DevDoc_MediaEngineAddendum.html	2006-06-14 07:09:21 UTC (rev 2332)
@@ -28,9 +28,21 @@
   </tr>
   </table>
 
-<p>These steps give a walkthrough in the process of compilation, to 
+<h2>Introduction</h2>
+
+
+<p>This document steps  through in the process of compilation, to 
 address issues covered in the relevant sections for each operating system when 
-compiled using current system environments. The compiled Mozilla plug-in will be located in the 
+compiled using current system environments. It is <i>impossible</i> to cover all 
+the possible scenarios of errors resulting in the compilation process, but 
+rather serves as a general overview of the process to get you started in the VLC 
+open source environment. The most likely issue you will encounter while 
+compiling is the issue of ensuring the correct dependencies are setup correctly, 
+to the compilation flags used in the makefile. In such circumstances, the first 
+point of reference is to look at the <i>Further Information</i> section below.</p>
+
+
+<p>If the entire compilation process is successful, the Mozilla plug-in will be located in the 
   <font face="Courier New">/src</font> directory under the following file 
 types/linked libraries:</p>
 
@@ -53,7 +65,7 @@
 
 
 <ul>
-  <li><b>Cygwin:</b> Windows XP on Cywin version 1.5.19-4</li>
+  <li><b>Cygwin:</b> Windows XP SP2 on Cywin version 1.5.19-4</li>
   <li><b>MacOS:</b> version 10.4 (Codename Tiger)</li>
   <li><b>Linux: </b>Ubuntu version 0.6 (Codename Dapper)</li>
 </ul>
@@ -74,6 +86,9 @@
   <a href="http://www.via.ecp.fr/via/ml/vlc-devel/2004-04/msg00019.html">VLC 
   Compilation Tips</a>: To compile MediaEngine plug-in using Mozilla's console 
   function to print diagnostics and debug messages.</li>
+  <li>
+  <a href="http://forum.videolan.org/">VLC Development Forum</a>: Forum 
+  discussion and support for VLC media player.</li>
 </ul>
 
 
@@ -153,6 +168,45 @@
 &nbsp;</font></li>
   <li>In the <font face="Courier New">/MediaEngines/VLC/src</font> directory run 
   the following script <font face="Courier New">./Build</font></li></ol>
+<h3>Cygwin Configuration Changes for VLC Version 0.8.5:</h3>
+<ol>
+  <li>Setup the latest win32 pre-assembled libraries for VLC by extracting the 
+  archive and copying it to the root <font face="Courier New">cygwin</font> directory.
+  <br>The <font face="Courier New">contrib</font> tarball archive can be found 
+  in the following location:
+  <a href="http://download.videolan.org/pub/testing/win32/contrib-20060526-win32-bin-gcc-3.4.5-only.tar.bz2">http://download.videolan.org/pub/testing/win32/</a><br>
+&nbsp;</li>
+  <li>Checkout the 0.85 tag of the VLC source on Subversion at the following 
+  location to a directory of your choice:
+  <a href="svn://svn.videolan.org/vlc/tags/0.8.5">svn://svn.videolan.org/vlc/tags/0.8.5</a><br>
+&nbsp;</li>
+  <li>Using the VLC 0.85 patch located at
+  <font face="Courier New">/Docs/Patches/VLC-0.85.patch</font>, copy the diff 
+  file to the VLC source you checked out and patch the source as follows:<br>
+  <font face="Courier New">patch -p0 &quot;$@&quot; &lt; VLC-0.85.patch<br>
+&nbsp;</font></li>
+  <li>Make the following changes to the relevant files:<ul>
+    <li> <font face="Courier New">./Configure.cygwin</font>: The static values
+    <font face="Courier New">CPPFLAGS</font>, <font face="Courier New">LDFLAGS</font>,
+    <font face="Courier New">XPIDL</font>, <font face="Courier New">XPIDL_INCL</font> 
+    and <font face="Courier New">--with-mozilla-sdk-path</font> need to be 
+    modified to specify the absolute path of the contribution libraries and 
+    Gecko-SDK.<br>
+    <i>Note:</i> The values used in the Makefile are the default paths of the 
+    resources.</li>
+    <li> <font face="Courier New">./mozilla/Makefile.am</font>: The path of the 
+    VLCIDL file needs to be modified for Cygwin users in the form:
+    <font face="Courier New">VLCIDL_FILE = &quot;c:\{Path of VLC 
+    Source}/mozilla/vlcintf.idl&quot;<br>
+    </font><i>Note:</i> This is because the XPIDL application that generates the 
+    XPT and header files accepts Windows file paths in the command line, but has 
+    to be altered due to the way Cywin interprets such file paths.<br>
+&nbsp;</li>
+  </ul>
+  </li>
+  <li>In the directory where you have checked out the source, run 
+  the following script <font face="Courier New">./Build</font></li>
+</ol>
 <h2><a name="2.0_MacOS">2.0 Installation of the Annodex Firefox Extension in 
 MacOS</a></h2>
 
@@ -211,6 +265,49 @@
 &nbsp;</font></li>
   <li>In the <font face="Courier New">/MediaEngines/VLC/src</font> directory run 
   the following script <font face="Courier New">./Build</font></li></ol>
+<h3>MacOS Configuration Changes for VLC Version 0.8.5:</h3>
+<ol>
+  <li>Checkout the 0.85 tag of the VLC source on Subversion at the following 
+  location to a directory of your choice:
+  <a href="svn://svn.videolan.org/vlc/tags/0.8.5">svn://svn.videolan.org/vlc/tags/0.8.5</a><br>
+&nbsp;</li>
+  <li>Using the VLC 0.85 patch located at
+  <font face="Courier New">/Docs/Patches/VLC-0.85.patch</font>, copy the diff 
+  file to the VLC source you checked out and patch the source as follows:<br>
+  <font face="Courier New">patch -p0 &quot;$@&quot; &lt; VLC-0.85.patch<br>
+&nbsp;</font></li>
+  <li>Compile the necessary dependencies from source in your VLC Source 
+  directory, which should take between 1 to 4 hours depending to complete:
+  <font face="Courier New">{Path of VLC Source}/extras/contrib<br>
+  </font>Do not bootstrap, but modify the <font face="Courier New">config.mak</font> 
+  file to suit your system architecture (Universal x86 compilation can run into 
+  various issues, but this is beyond the scope of the documentation) and MacOS 
+  Developer SDK version.<br>
+  Run the command: <font face="Courier New">make src<br>
+&nbsp;</font></li>
+  <li>Make the following changes to the relevant files:<ul>
+    <li> <font face="Courier New">./Configure.darwin</font>: The static values
+    <font face="Courier New">CPPFLAGS</font>, <font face="Courier New">LDFLAGS</font>,
+    <font face="Courier New">PATH</font>, <font face="Courier New">
+    PKG_CONFIG_PATHS</font>, <font face="Courier New">XPIDL</font>,
+    <font face="Courier New">XPIDL_INCL</font> and <font face="Courier New">
+    --with-mozilla-sdk-path</font> need to be modified to specify the absolute 
+    path of the contribution libraries compiled in step 3 and the Gecko-SDK.<br>
+    <i>Note:</i> The values used in the Makefile are the default paths of the 
+    resources, while <font face="Courier New">{Path of VLC Source}</font> is the 
+    path of the VLC source you have checked out.<br>
+&nbsp;</li>
+  </ul>
+  </li>
+  <li>In the directory where you have checked out the source, run 
+  the following script <font face="Courier New">./Build<br>
+&nbsp;</font></li>
+  <li>Additionally, when it comes to packaging the plug-in, you must ensure it 
+  is saved in the default Firefox plugins directory, <b><i>not</i></b> the user 
+  profile's directory.<br>
+  By default, the directory is located at <font face="Courier New">
+  /Library/Internet Plug-Ins</font></li>
+</ol>
 <h3>MacOS XPI Packaging Configuration Changes:</h3>
 <p>In addition to compilation, to package a plug-in for MacOS systems, there is 
 an additional requirement due to the nature of the MacOS HFS file system. More 
@@ -269,7 +366,7 @@
 &nbsp;</li>
   </ul>
   </li>
-  <li>Download the stable Mozilla SDK from Mozilla.org at this location:
+  <li>Download the stable Gecko SDK from Mozilla.org at this location:
   <a class="ext-link" href="http://ftp.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7rc3/gecko-sdk-i686-pc-linux-gnu-1.7rc3.tar.gz">
   http://ftp.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7rc3/gecko-sdk-i686-pc-linux-gnu-1.7rc3.tar.gz</a>.<br>
   It is recommended to extract the file within the same relative path of the 
@@ -298,6 +395,45 @@
   <li>In the <font face="Courier New">/MediaEngines/VLC/src</font> directory run 
   the following script <font face="Courier New">./Build</font></li></ol>
 
+<h3>Linux Configuration Changes for VLC Version 0.8.5:</h3>
+<ol>
+  <li>Download the stable Gecko SDK from Mozilla.org at this location:
+  <a href="http://ftp.mozilla.org/pub/mozilla.org/mozilla/nightly/latest-trunk/">
+  http://ftp.mozilla.org/pub/mozilla.org/mozilla/nightly/latest-trunk/</a><br>
+  It is recommended to extract the file within the same relative path of the 
+  source directory, but not essential.<br>
+&nbsp;</li>
+  <li>Checkout the 0.85 tag of the VLC source on Subversion at the following 
+  location to a directory of your choice:
+  <a href="svn://svn.videolan.org/vlc/tags/0.8.5">svn://svn.videolan.org/vlc/tags/0.8.5</a><br>
+&nbsp;</li>
+  <li>Using the VLC 0.85 patch located at
+  <font face="Courier New">/Docs/Patches/VLC-0.85.patch</font>, copy the diff 
+  file to the VLC source you checked out and patch the source as follows:<br>
+  <font face="Courier New">patch -p0 &quot;$@&quot; &lt; VLC-0.85.patch<br>
+&nbsp;</font></li>
+  <li>Make the following changes to the relevant files:<ul>
+    <li> <font face="Courier New">./Configure.linux</font>: The static values
+    <font face="Courier New">CPPFLAGS</font>, <font face="Courier New">LDFLAGS</font>,
+    <font face="Courier New">XPIDL</font>, <font face="Courier New">XPIDL_INCL</font> 
+    and <font face="Courier New">--with-mozilla-sdk-path</font> need to be 
+    modified to specify the absolute path of the contribution libraries compiled 
+    in step 3 and the Gecko-SDK.<br>
+    <i>Note:</i> The values used in the Makefile are the default paths of the 
+    resources, while <font face="Courier New">{Path of VLC Source}</font> is the 
+    path of the VLC source you have checked out.<br>
+&nbsp;</li>
+  </ul>
+  </li>
+  <li>In the directory where you have checked out the source, run 
+  the following script <font face="Courier New">./Build<br>
+&nbsp;</font></li>
+  <li>Additionally, when it comes to packaging the plug-in, you must ensure it 
+  is saved in the default Firefox plugins directory, <b><i>not</i></b> the user 
+  profile's directory.<br>
+  By default, the directory is located at <font face="Courier New">/usr/lib/firefox/plugins</font></li>
+</ol>
+
 </body>
 
 </html>
\ No newline at end of file

Added: AnnodexFirefoxExtension/trunk/Docs/Patches/VLC-0.85.patch
===================================================================
--- AnnodexFirefoxExtension/trunk/Docs/Patches/VLC-0.85.patch	2006-06-13 08:25:50 UTC (rev 2331)
+++ AnnodexFirefoxExtension/trunk/Docs/Patches/VLC-0.85.patch	2006-06-14 07:09:21 UTC (rev 2332)
@@ -0,0 +1,1242 @@
+Index: Build
+===================================================================
+--- Build	(revision 0)
++++ Build	(revision 0)
+@@ -0,0 +1,16 @@
++#!/bin/sh
++
++set -e
++
++
++! [ -x ./configure ] && (./bootstrap)
++
++SYSTEM=`uname | tr A-Z a-z | sed -e s'/_.*$//'`
++
++./Configure.$SYSTEM
++
++# build it!
++make
++
++# ( cd mozilla && make )
++
+Index: configure.ac
+===================================================================
+--- configure.ac	(revision 15815)
++++ configure.ac	(working copy)
+@@ -1,6 +1,6 @@
+ dnl Autoconf settings for vlc
+ 
+-AC_INIT(vlc,0.8.5)
++AC_INIT(vlc,0.8.5-annodex)
+ VERSION_MAJOR="0"
+ VERSION_MINOR="8"
+ VERSION_REVISION="5"
+@@ -16,7 +16,7 @@
+ 
+ dnl XXX: we don't put any flags here, because automake 1.5 doesn't support
+ dnl them. And we need the comma otherwize automake will choke on it.
+-AM_INIT_AUTOMAKE(vlc,0.8.5)
++AM_INIT_AUTOMAKE(vlc,0.8.5-annodex)
+ AM_CONFIG_HEADER(config.h)
+ 
+ dnl Too many people are not aware of maintainer mode:
+@@ -2223,7 +2223,7 @@
+   else
+     AC_CHECK_HEADERS(ogg/ogg.h, [
+       AC_CHECK_LIB( ogg, oggpack_read, [
+-        VLC_ADD_PLUGINS([ogg])
++        VLC_ADD_BUILTINS([ogg])
+         if test "${enable_sout}" != "no"; then
+           VLC_ADD_PLUGINS([mux_ogg])
+         fi
+@@ -2669,7 +2669,6 @@
+     fi
+     dnl  Use a custom libffmpeg
+     AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
+-    VLC_ADD_BUILTINS([ffmpegaltivec])
+     VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec])
+     VLC_ADD_CPPFLAGS([ffmpeg],[-DNO_ALTIVEC_IN_FFMPEG])
+     VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
+@@ -2721,10 +2720,8 @@
+     AC_CHECK_HEADERS(faad.h, ,
+       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
+     AC_CHECK_LIB(faad, faacDecOpen, [
+-      VLC_ADD_PLUGINS([faad])
+       VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
+       AC_CHECK_LIB(faad, NeAACDecOpen, [
+-        VLC_ADD_PLUGINS([faad])
+         VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
+         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
+     LDFLAGS="${LDFLAGS_save}"
+@@ -2786,7 +2783,7 @@
+   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
+ then
+   if test "${SYS}" = "mingw32"; then
+-    VLC_ADD_BUILTINS([quicktime])
++    : # do nothing
+   else
+   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
+     [ VLC_ADD_BUILTINS([quicktime])
+@@ -2862,7 +2859,6 @@
+       VLC_ADD_LDFLAGS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
+       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_a52tofloat32}"
+       AC_CHECK_LIB(a52, a52_free, [
+-        VLC_ADD_BUILTINS([a52tofloat32])
+         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
+         VLC_ADD_LDFLAGS([a52tofloat32],[-la52])
+         ],[
+@@ -2938,7 +2934,6 @@
+         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic])
+         ],[
+         AC_CHECK_LIB(dts, dts_free, [
+-          VLC_ADD_BUILTINS([dtstofloat32])
+           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
+           ],[
+           if test -f ${real_dts_tree}/libdts/libdts.a
+@@ -2962,7 +2957,6 @@
+         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic])
+       ],[
+         AC_CHECK_LIB(dts, dts_free, [
+-          VLC_ADD_BUILTINS([dtstofloat32])
+           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
+         ],[
+           if test "${enable_dts}" = "yes"; then
+@@ -3036,7 +3030,6 @@
+     then
+       dnl  Use a custom libmpeg2
+       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
+-      VLC_ADD_BUILTINS([libmpeg2])
+       VLC_ADD_LDFLAGS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
+       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
+       eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
+@@ -3056,8 +3049,7 @@
+          #endif
+          #endif],
+         [AC_MSG_RESULT([yes])
+-          VLC_ADD_PLUGINS([libmpeg2])
+-          VLC_ADD_LDFLAGS([libmpeg2],[-lmpeg2])],
++        VLC_ADD_LDFLAGS([libmpeg2],[-lmpeg2])],
+         [AC_MSG_RESULT([no])
+           AC_MSG_ERROR([Your libmpeg2 is too old (you need the cvs version): you may get a more recent one from http://libmpeg2.sf.net/. Alternatively you can use --disable-libmpeg2 to disable the libmpeg2 plugin.])])],
+ 
+@@ -3099,7 +3091,7 @@
+     fi
+   else
+     AC_CHECK_HEADERS(vorbis/codec.h, [
+-      VLC_ADD_PLUGINS([vorbis])
++      VLC_ADD_BUILTINS([vorbis])
+       VLC_ADD_LDFLAGS([vorbis],[-lvorbis -logg]) ],[])
+ 
+     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
+@@ -3155,7 +3147,7 @@
+     AC_CHECK_HEADERS(speex/speex.h, [
+       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_speex}"
+       AC_CHECK_LIB(speex, speex_decode_int, [
+-        VLC_ADD_PLUGINS([speex])
++        VLC_ADD_BUILTINS([speex])
+         VLC_ADD_LDFLAGS([speex],[-lspeex]) ],
+         [ AC_MSG_RESULT([no])
+           AC_MSG_WARN([Your libspeex is too old, please get the development
+@@ -3180,7 +3172,6 @@
+     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
+     if test -f "${real_tarkin_tree}/tarkin.o"
+     then
+-      VLC_ADD_BUILTINS([tarkin])
+       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
+       VLC_ADD_LDFLAGS([tarkin],[${real_tarkin_tree}/mem.o ${real_tarkin_tree}/pnm.o ${real_tarkin_tree}/wavelet.o ${real_tarkin_tree}/wavelet_xform.o ${real_tarkin_tree}/wavelet_coeff.o ${real_tarkin_tree}/yuv.o ${real_tarkin_tree}/tarkin.o ${real_tarkin_tree}/info.o -logg])
+       AC_MSG_RESULT(yes)
+@@ -3202,8 +3193,8 @@
+ then
+   AC_CHECK_HEADERS(theora/theora.h, [
+     AC_CHECK_LIB(theora, theora_granule_time, [
+-      if test "${SYS}" = "mingw32"; then
+-        VLC_ADD_PLUGINS([theora])
++      if test "${SYS}" = "mingw32" -o test "${SYS}" = "linux"; then
++	VLC_ADD_BUILTINS([theora])
+       else
+         VLC_ADD_BUILTINS([theora])
+       fi
+@@ -3224,7 +3215,7 @@
+   PKG_CHECK_MODULES(DIRAC,dirac, [
+       VLC_ADD_PLUGINS([dirac])
+       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
+-      VLC_ADD_LDFLAGS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
++      VLC_ADD_LDFLAGS([dirac],[-ldirac_decoder -ldirac_encoder -ldirac_motionest -ldirac_common]) ],[
+       AC_MSG_ERROR([libdirac doesn't appear to be installed on you system.])
+   ])
+ fi
+@@ -3239,7 +3230,6 @@
+   LDFLAGS="${LDFLAGS_save} -lz"
+   AC_CHECK_LIB(png, png_set_rows, [
+     VLC_ADD_LDFLAGS([png],[-lpng -lz])
+-    VLC_ADD_PLUGINS([png])
+     VLC_ADD_PLUGINS([osdmenu])
+     AC_DEFINE(HAVE_LIBPNG, [], [Define if you have the PNG library: libpng])],
+     [],[-lz])
+@@ -3273,7 +3263,6 @@
+       VLC_ADD_LDFLAGS([x264],[-L${real_x264_tree}])
+       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
+       AC_CHECK_LIB(x264, x264_encoder_open, [
+-        VLC_ADD_BUILTINS([x264])
+         VLC_ADD_LDFLAGS([x264],[-lx264])
+       ],[
+         AC_MSG_ERROR([the specified tree hasn't been compiled])
+@@ -3306,7 +3295,7 @@
+   [  --enable-cmml           CMML support (default enabled)])
+ if test "${enable_cmml}" != "no"
+ then
+-  VLC_ADD_PLUGINS([cmml])
++  VLC_ADD_BUILTINS([cmml])
+ fi
+ 
+ 
+@@ -3377,7 +3366,6 @@
+           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
+           VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv_pic])
+         ],[
+-          VLC_ADD_BUILTINS([xvideo])
+           VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
+           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
+         ])
+@@ -3605,7 +3593,6 @@
+ 
+   if test "${FREETYPE_CONFIG}" != "no"
+   then
+-    VLC_ADD_PLUGINS([freetype])
+     VLC_ADD_CFLAGS([freetype],[`${FREETYPE_CONFIG} --cflags`])
+     VLC_ADD_LDFLAGS([freetype],[`${FREETYPE_CONFIG} --libs`])
+     AC_CHECK_HEADERS(Carbon/Carbon.h,
+@@ -3795,18 +3782,17 @@
+     if test -z "${with_directx}"
+     then
+       AC_CHECK_HEADERS(ddraw.h,
+-      [ VLC_ADD_PLUGINS([vout_directx aout_directx])
++      [ VLC_ADD_BUILTINS([vout_directx aout_directx])
+         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
+         dnl to be moved when dependance is removed
+         AC_CHECK_HEADERS(GL/gl.h, [
+-            VLC_ADD_PLUGINS([glwin32])
+             VLC_ADD_LDFLAGS([glwin32],[-lopengl32 -lgdi32])
+         ]) ])
+     else
+       AC_MSG_CHECKING(for directX headers in ${with_directx})
+       if test -f ${with_directx}/ddraw.h
+       then
+-        VLC_ADD_PLUGINS([vout_directx aout_directx])
++        VLC_ADD_BUILTINS([vout_directx aout_directx])
+         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
+         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
+         AC_MSG_RESULT(yes)
+@@ -3976,7 +3962,7 @@
+   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
+ if test "${enable_wingdi}" != "no"; then
+   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
+-    VLC_ADD_PLUGINS([wingdi])
++    VLC_ADD_BUILTINS([wingdi])
+     VLC_ADD_LDFLAGS([wingdi],[-lgdi32])
+   fi
+   if test "${SYS}" = "mingwce"; then
+@@ -4703,7 +4689,7 @@
+   [  --enable-visual         visualisation plugin (default enabled)])
+ if test "${enable_visual}" != "no"
+ then
+-    VLC_ADD_PLUGINS([visual])
++    :
+ fi
+ 
+ dnl
+@@ -4746,7 +4732,6 @@
+     fi
+     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
+       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
+-      VLC_ADD_BUILTINS([goom])
+       VLC_ADD_LDFLAGS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
+       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
+     else
+@@ -4755,7 +4740,6 @@
+       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
+       if test -f "${real_goom_tree}/libgoom.a"; then
+         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
+-        VLC_ADD_BUILTINS([goom])
+         VLC_ADD_LDFLAGS([goom],[-L${real_goom_tree} -lgoom])
+         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
+       else
+Index: Configure.cygwin
+===================================================================
+--- Configure.cygwin	(revision 0)
++++ Configure.cygwin	(revision 0)
+@@ -0,0 +1,80 @@
++#!/bin/sh -x
++
++set -e
++
++CC="ccache gcc -mno-cygwin"
++CXX="ccache g++ -mno-cygwin"
++CFLAGS="-g"
++CXXFLAGS="-g"
++CPPFLAGS="-I/usr/win32/include -I/usr/win32/include/ebml -I/usr/win32/gecko-sdk/include"
++LDFLAGS="-L/usr/win32/lib -L/usr/win32/gecko-sdk/lib"
++
++XPIDL=/usr/win32/gecko-sdk/bin/xpidl.exe
++XPIDL_INCL="-Ic:\Cygwin/usr/win32/gecko-sdk/idl"
++
++export CC CXX CPPFLAGS LDFLAGS CFLAGS CXXFLAGS
++
++[ -x ./configure ] || (./bootstrap )
++
++exec ./configure \
++ --disable-a52 \
++ --disable-caca \
++ --disable-cdda \
++ --disable-cddax \
++ --disable-debug \
++ --disable-dshow \
++ --disable-dts \
++ --disable-dvb \
++ --disable-dvbpsi \
++ --disable-dvdnav \
++ --disable-dvdread \
++ --disable-faad \
++ --disable-ffmpeg \
++ --disable-flac \
++ --disable-freetype \
++ --disable-fribidi \
++ --disable-glx \
++ --disable-gtk \
++ --disable-hd1000v \
++ --disable-httpd \
++ --disable-libcddb \
++ --disable-libcdio \
++ --disable-libmpeg2 \
++ --disable-libxml2 \
++ --disable-livedotcom \
++ --disable-mad \
++ --disable-mkv \
++ --disable-mod \
++ --disable-nls \
++ --disable-opengl \
++ --disable-qte \
++ --disable-satellite \
++ --disable-sdl \
++ --disable-skins2 \
++ --disable-sout \
++ --disable-speex \
++ --disable-svg \
++ --disable-tarkin \
++ --disable-toolame \
++ --disable-tremor \
++ --disable-v4l \
++ --disable-vcd \
++ --disable-vcdx \
++ --disable-vlm \
++ --disable-waveout \
++ --disable-wingdi \
++ --disable-wxwindows \
++ --disable-x11 \
++ --disable-x264 \
++ --disable-xvideo \
++ --enable-cmml \
++ --enable-directx \
++ --enable-mostly-builtin \
++ --enable-mozilla --with-mozilla-sdk-path=/usr/win32/gecko-sdk \
++ --enable-ogg \
++ --enable-release \
++ --enable-optimization \
++ --enable-theora \
++ --enable-vorbis \
++ "$@" \
++ 2>&1 | tee configure.output
+Index: Configure.darwin
+===================================================================
+--- Configure.darwin	(revision 0)
++++ Configure.darwin	(revision 0)
+@@ -0,0 +1,17 @@
++#!/bin/sh -x
++
++set -e
++
++CPPFLAGS="-I/{Path of VLC Source}/extras/contrib/include -I/{Path of VLC Source}/extras/contrib/src/gecko-sdk/include"
++LDFLAGS="-L/{Path of VLC Source}/extras/contrib/lib -L/{Path of VLC Source}/extras/contrib/src/gecko-sdk/lib"
++PATH="/bin:/usr/bin:/{Path of VLC Source}/extras/contrib/bin:/{Path of VLC Source}/extras/contrib/src/gecko-sdk/bin"
++PKG_CONFIG_PATH="/{Path of VLC Source}/extras/contrib/lib/pkgconfig"
++export CPPFLAGS LDFLAGS PATH PKG_CONFIG_PATH
++
++XPIDL=/{Path of VLC Source}/extras/contrib/src/gecko-sdk/bin/xpidl
++XPIDL_INCL="-I/{Path of VLC Source}/extras/contrib/src/gecko-sdk/idl"
++export XPIDL XPIDL_INCL
++
++[ -x ./configure ] || ( ./bootstrap )
++
++exec ./configure --disable-a52 --disable-caca --disable-cdda --disable-cddax --disable-cmml --disable-daap --disable-dshow --disable-dts --disable-dvb --disable-dvbpsi --disable-dvdnav --disable-dvdread --disable-faad --disable-ffmpeg --disable-freetype --disable-fribidi --disable-glx --disable-gtk --disable-hd1000v --enable-httpd --disable-libcddb --disable-libcdio --disable-libmpeg2 --disable-debug --disable-libxml2 --disable-livedotcom --disable-mad --disable-mkv --disable-mod --disable-nls --disable-opengl --disable-qte --disable-satellite --disable-sdl --disable-sdl --disable-skins2 --disable-sout --disable-svg --disable-tarkin --disable-toolame --disable-tremor --disable-v4l --disable-vcd --disable-vcdx --disable-vlm --disable-waveout --disable-wingdi --disable-wxwindows --disable-x11 --disable-x264 --disable-xvideo --enable-optimization --enable-flac --enable-mozilla --with-mozilla-sdk-path=/{Path of VLC Source}/extras/contrib/src/gecko-sdk --enable-ogg --enable-speex --enable-theora --enable-vorbis --without-ffmpeg-faac --without-ffmpeg-mp3lame --without-libiconv-prefix
+Index: Configure.linux
+===================================================================
+--- Configure.linux	(revision 0)
++++ Configure.linux	(revision 0)
+@@ -0,0 +1,96 @@
++#!/bin/sh -x
++
++set -e
++
++CFLAGS="-g"
++
++arch=`uname -m`
++case "$arch" in
++  i?86)
++    # be compatible with as many x86 chips as pOSSIBLE
++    CFLAGS="$CFLAGS"
++    ;;
++  ppc)
++    # PowerPC doesn't support mixing PIC and non-PIC code, so make sure
++    # everything's compiled as PIC
++    CFLAGS="$CFLAGS -fPIC"
++esac
++
++DFLAGS="-L${LOCALBASE}/lib -L${X11BASE}/lib -lXt"
++
++CPPFLAGS="-I/usr/include -I/usr/include/ebml -I/{Path of VLC Source}/gecko-sdk/include"
++LDFLAGS="-L/usr/lib -L/usr/X11R6/lib -lXt -L/{Path of VLC Source}/gecko-sdk/lib"
++
++XPIDL=/{Path of VLC Source}/gecko-sdk/bin/xpidl
++XPIDL_INCL="-I/{Path of VLC Source}/gecko-sdk/idl"
++
++export CFLAGS CPPFLAGS LDFLAGS XPIDL XPIDL_INCL
++
++[ -x ./configure ] || ( cd ./bootstrap )
++
++exec ./configure \
++ --disable-a52 \
++ --disable-alsa \
++ --disable-caca \
++ --disable-cdda \
++ --disable-cddax \
++ --disable-daap \
++ --disable-debug \
++ --disable-dshow \
++ --disable-dts \
++ --disable-dvb \
++ --disable-dvbpsi \
++ --disable-dvd \
++ --disable-dvdnav \
++ --disable-dvdread \
++ --disable-faad \
++ --disable-ffmpeg \
++ --disable-freetype \
++ --disable-fribidi \
++ --disable-glx \
++ --disable-gtk \
++ --disable-hd1000v \
++ --disable-libcddb \
++ --disable-libcdio \
++ --disable-libmpeg2 \
++ --disable-libxml2 \
++ --disable-livedotcom \
++ --disable-mad \
++ --disable-mkv \
++ --disable-mod \
++ --disable-nls \
++ --disable-opengl \
++ --disable-qte \
++ --disable-satellite \
++ --disable-sdl \
++ --disable-skins2 \
++ --disable-sout \
++ --disable-speex \
++ --disable-svg \
++ --disable-tarkin \
++ --disable-toolame \
++ --disable-tremor \
++ --disable-v4l \
++ --disable-vcd \
++ --disable-vcdx \
++ --disable-vlm \
++ --disable-waveout \
++ --disable-wingdi \
++ --disable-wxwindows \
++ --disable-x264 \
++ --enable-cmml \
++ --enable-flac \
++ --enable-httpd \
++ --enable-mozilla --with-mozilla-sdk-path=/{Path of VLC Source}/gecko-sdk \
++ --enable-ogg \
++ --enable-optimization \
++ --enable-plugins \ 
++ --enable-theora \
++ --enable-vorbis \
++ --enable-x11 \
++ --enable-xvideo \
++ --without-ffmpeg-faac \
++ --without-ffmpeg-mp3lame \
++ --without-libiconv-prefix \
++ "$@" \
++ 2>&1 | tee configure.output
+Index: extras/contrib/config.mak
+===================================================================
+--- extras/contrib/config.mak	(revision 0)
++++ extras/contrib/config.mak	(revision 0)
+@@ -0,0 +1,23 @@
++# Automatically generated by bootstrap.
++# Make changes if you know what you're doing.
++
++BUILD = powerpc-apple-darwin8
++HOST = powerpc-apple-darwin8
++PREFIX = /{Path of VLC Source}/extras/contrib
++SDK_TARGET = 10.4
++HAVE_DARWIN_OS = 1
++ENVP = MACOSX_DEPLOYMENT_TARGET=10.4
++MACOSX_SDK = /Developer/SDKs/MacOSX10.4u.sdk
++PATH = /bin:/usr/bin:/usr/local/bin
++CONTRIB_URL = http://download.videolan.org/pub/videolan/devtools/contrib-macosx.tar.bz2
++CC = 
++CXX = 
++LD = 
++RANLIB = 
++AR = 
++EXTRA_CFLAGS = -D${ENVP} #-isysroot ${MACOSX_SDK}
++EXTRA_CPPFLAGS = -I/include
++EXTRA_LDFLAGS = -Wl,-syslibroot,${MACOSX_SDK}
++EXTRA_PATH = 
++WGET = curl -O
++SVN = /usr/local/bin/svn
+Index: extras/contrib/src/Makefile
+===================================================================
+--- extras/contrib/src/Makefile	(revision 15815)
++++ extras/contrib/src/Makefile	(working copy)
+@@ -885,39 +885,22 @@
+ # ffmpeg
+ # ***************************************************************************
+ 
+-ffmpeg:
+-	echo $(FFMPEG_CVSROOT) A > ./ffmpeg.cvs
+-	CVS_PASSFILE=./ffmpeg.cvs cvs -z3 -d $(FFMPEG_CVSROOT) co ffmpeg
+-ifeq ($(HOST),i586-pc-beos)
+-	(cd $@; patch -p 0 < ../Patches/ffmpeg-cvs-beos.patch)
+-endif
+-ifdef HAVE_WIN32
+-	patch -p 0 < Patches/ffmpeg-cvs-win32.patch
+-endif
+-ifdef HAVE_WINCE
+-	patch -p 1 < Patches/ffmpeg-cvs-wince.patch
+-endif
+-ifeq ($(HOST),i686-apple-darwin8)
+-	(cd $@;patch -p 0 < ../Patches/ffmpeg-cvs-mactel.patch)
+-endif
+-
+ ffmpeg-$(FFMPEG_VERSION).tar.gz:
+ 	$(WGET) $(FFMPEG_URL)
+ 
+-#ffmpeg: ffmpeg-$(FFMPEG_VERSION).tar.gz
+-#	$(EXTRACT_GZ)
+-#	patch -p 0 < Patches/ffmpeg.patch
++ffmpeg: ffmpeg-$(FFMPEG_VERSION).tar.gz
++	$(EXTRACT_GZ)
+ 
+ ifdef HAVE_WINCE
+ .ffmpeg: ffmpeg .zlib
+ else
+ .ffmpeg: ffmpeg .faac .lame
+ endif
+-	(cd $<; $(HOSTCC) ./configure $(FFMPEGCONF) --prefix=$(PREFIX) --extra-cflags="$(CFLAGS) -DRUNTIME_CPUDETECT" --extra-ldflags="$(LDFLAGS)" --enable-gpl --enable-pp --disable-vhook --disable-ffserver --disable-network --enable-a52 --disable-ffplay && make install-libs install-headers)
++	(cd $<; $(HOSTCC) ./configure $(FFMPEGCONF) --prefix=$(PREFIX) --extra-cflags="$(CFLAGS) -DRUNTIME_CPUDETECT" --extra-ldflags="$(LDFLAGS)" --enable-gpl --enable-pp --disable-vhook --disable-ffserver --disable-network --enable-a52 --disable-ffplay)
+ 	touch $@
+ 
+ CLEAN_FILE += .ffmpeg
+-CLEAN_PKG += ffmpeg ffmpeg.cvs
++CLEAN_PKG += ffmpeg
+ DISTCLEAN_PKG += ffmpeg-$(FFMPEG_VERSION).tar.gz
+ 
+ # ***************************************************************************
+Index: modules/access/http.c
+===================================================================
+--- modules/access/http.c	(revision 15815)
++++ modules/access/http.c	(working copy)
+@@ -928,8 +928,14 @@
+     /* Offset */
+     if( p_sys->i_version == 1 )
+     {
+-        net_Printf( VLC_OBJECT(p_access), p_sys->fd, pvs,
+-                    "Range: bytes="I64Fd"-\r\n", i_tell );
++        /* only send a Range: request if we want we need an offset that
++         * doesn't start from 0, otherwise the Web server may get
++         * unnecessarily overloaded */
++        if( i_tell != 0 )
++        {
++            net_Printf( VLC_OBJECT(p_access), p_sys->fd, pvs,
++                        "Range: bytes="I64Fd"-\r\n", i_tell );
++        }
+     }
+ 
+     /* Authentication */
+Index: modules/demux/ogg.c
+===================================================================
+--- modules/demux/ogg.c	(revision 15815)
++++ modules/demux/ogg.c	(working copy)
+@@ -291,6 +291,7 @@
+                 }
+                 else if ( p_stream->fmt.i_codec == VLC_FOURCC('c','m','m','l') )
+                 {
++                    Ogg_ReadAnnodexHeader( VLC_OBJECT(p_demux), p_stream, &oggpacket );
+                     p_stream->secondary_header_packets = 0;
+                 }
+             }
+@@ -485,15 +486,15 @@
+     }
+ 
+     if( p_oggpacket->bytes >= 7 &&
+-        ! memcmp ( &p_oggpacket->packet[0], "Annodex", 7 ) )
++        ! memcmp ( &p_oggpacket->packet[0], "fishead", 7 ) )
+     {
+-        /* it's an Annodex packet -- skip it (do nothing) */
++        /* it's an Annodex Header packet -- skip it (do nothing) */
+         return; 
+     }
+     else if( p_oggpacket->bytes >= 7 &&
+-        ! memcmp ( &p_oggpacket->packet[0], "AnxData", 7 ) )
++        ! memcmp ( &p_oggpacket->packet[0], "fisbone", 7 ) )
+     {
+-        /* it's an AnxData packet -- skip it (do nothing) */
++        /* it's an Annodex Data packet -- skip it (do nothing) */
+         return; 
+     }
+ 
+@@ -850,23 +851,20 @@
+                 }
+                 /* Check for Annodex header */
+                 else if( oggpacket.bytes >= 7 &&
+-                         ! memcmp( &oggpacket.packet[0], "Annodex", 7 ) )
++                         ! memcmp( &oggpacket.packet[0], "fishead", 7 ) )
+                 {
+                     Ogg_ReadAnnodexHeader( VLC_OBJECT(p_demux), p_stream,
+                                            &oggpacket );
+-                    /* kill annodex track */
+-                    free( p_stream );
+-                    p_ogg->i_streams--;
+                 }
+                 /* Check for Annodex header */
+                 else if( oggpacket.bytes >= 7 &&
+-                         ! memcmp( &oggpacket.packet[0], "AnxData", 7 ) )
++                         ! memcmp( &oggpacket.packet[0], "fisbone", 7 ) )
+                 {
+                     Ogg_ReadAnnodexHeader( VLC_OBJECT(p_demux), p_stream,
+                                            &oggpacket );
+                 }
+                 else if( oggpacket.bytes >= 142 &&
+-                         !memcmp( &oggpacket.packet[1],
++                         ! memcmp( &oggpacket.packet[1],
+                                    "Direct Show Samples embedded in Ogg", 35 ))
+                 {
+                     /* Old header type */
+@@ -1325,64 +1323,103 @@
+                                    ogg_packet *p_oggpacket )
+ {
+     if( p_oggpacket->bytes >= 28 &&
+-        !memcmp( &p_oggpacket->packet[0], "Annodex", 7 ) )
++        !memcmp( &p_oggpacket->packet[0], "fishead", 7 ) )
+     {
+         oggpack_buffer opb;
+ 
+         uint16_t major_version;
+         uint16_t minor_version;
+-        uint64_t timebase_numerator;
+-        uint64_t timebase_denominator;
++        uint64_t presentationtime_numerator;
++        uint64_t presentationtime_denominator;
++        uint64_t basetime_numerator;
++        uint64_t basetime_denominator;
++        char content_type_string[20];
+ 
+-        Ogg_ReadTheoraHeader( p_stream, p_oggpacket );
++        /* Read in Annodex header fields:
++         * we use UNKNOWN_ES here since it's the skeleton bitstream header only.
++         * Future releases could support NAV_ES (navigation elementary stream) */
+ 
+-        oggpack_readinit( &opb, p_oggpacket->packet, p_oggpacket->bytes);
+-        oggpack_adv( &opb, 8*8 ); /* "Annodex\0" header */
++        p_stream->fmt.i_cat = UNKNOWN_ES;
++        
++        /* the anxs FOURCC was invented here for the skeleton logical bitstream */
++        p_stream->fmt.i_codec = VLC_FOURCC( 'a','n','x','s' );
++
++        /* Signal that we want to keep a backup of the skeleton stream headers */
++        p_stream->b_force_backup = 1;
++
++        /* Cheat and get additionnal info ;) */
++        oggpack_readinit( &opb, p_oggpacket->packet, p_oggpacket->bytes );
++        oggpack_adv( &opb, 8*8 );                  /* "fishead\0" header */
++
+         major_version = oggpack_read( &opb, 2*8 ); /* major version */
+         minor_version = oggpack_read( &opb, 2*8 ); /* minor version */
+-        timebase_numerator = GetQWLE( &p_oggpacket->packet[16] );
+-        timebase_denominator = GetQWLE( &p_oggpacket->packet[24] );
++
++        presentationtime_numerator   = GetQWLE( &p_oggpacket->packet[12] );
++        presentationtime_denominator = GetQWLE( &p_oggpacket->packet[20] );
++
++        basetime_numerator   = GetQWLE( &p_oggpacket->packet[28] );
++        basetime_denominator = GetQWLE( &p_oggpacket->packet[36] );
++        
++        sscanf( &p_oggpacket->packet[44], "%20s", content_type_string );
+     }
+     else if( p_oggpacket->bytes >= 42 &&
+-             !memcmp( &p_oggpacket->packet[0], "AnxData", 7 ) )
++             !memcmp( &p_oggpacket->packet[0], "fisbone", 7 ) )
+     {
++        oggpack_buffer opb;
++    	
++    	uint32_t message_fields_offset;
++    	uint32_t serial_no;
+         uint64_t granule_rate_numerator;
+         uint64_t granule_rate_denominator;
++        uint64_t start_granule;
++        uint32_t preroll;
++        uint8_t  granule_shift;
+         char content_type_string[1024];
+ 
+         /* Read in Annodex header fields */
++        oggpack_readinit( &opb, p_oggpacket->packet, p_oggpacket->bytes );
++        oggpack_adv( &opb, 8*8 );                  /* "fisbone\0" header */
+ 
+-        granule_rate_numerator = GetQWLE( &p_oggpacket->packet[8] );
+-        granule_rate_denominator = GetQWLE( &p_oggpacket->packet[16] );
+-        p_stream->secondary_header_packets =
+-            GetDWLE( &p_oggpacket->packet[24] );
++        message_fields_offset = GetDWLE( &p_oggpacket->packet[8] );
++        serial_no             = GetDWLE( &p_oggpacket->packet[12] );
++        p_stream->secondary_header_packets
++                              = GetDWLE( &p_oggpacket->packet[16] );
+ 
++        granule_rate_numerator   = GetQWLE( &p_oggpacket->packet[20] );
++        granule_rate_denominator = GetQWLE( &p_oggpacket->packet[28] );
++        start_granule            = GetQWLE( &p_oggpacket->packet[36] );
++        preroll                  = GetDWLE( &p_oggpacket->packet[44] );
++
++        /* Granule Shift takes up the first byte of data */
++        uint8_t * bytepacket     = (uint8_t *)&p_oggpacket->packet[48];
++        granule_shift            = bytepacket[0];
++
+         /* we are guaranteed that the first header field will be
+          * the content-type (by the Annodex standard) */
+-        content_type_string[0] = '\0';
+-        if( !strncasecmp( &p_oggpacket->packet[28], "Content-Type: ", 14 ) )
++        if( !strncasecmp( (char*)(&p_oggpacket->packet[52]), "Content-Type: ", 14 ) )
+         {
+-            uint8_t *p = memchr( &p_oggpacket->packet[42], '\r',
++            uint8_t *p = memchr( &p_oggpacket->packet[52], '\r',
+                                  p_oggpacket->bytes - 1 );
+             if( p && p[0] == '\r' && p[1] == '\n' )
+-                sscanf( &p_oggpacket->packet[42], "%1024s\r\n",
++                sscanf( (char*)(&p_oggpacket->packet[52]), "%1024s\r\n",
+                         content_type_string );
+         }
+ 
+-        msg_Dbg( p_this, "AnxData packet info: "I64Fd" / "I64Fd", %d, ``%s''",
++        msg_Dbg( p_this, "Annodex packet info: "I64Fd" / "I64Fd", %d, ``%s''",
+                  granule_rate_numerator, granule_rate_denominator,
+                  p_stream->secondary_header_packets, content_type_string );
+ 
+         p_stream->f_rate = (float) granule_rate_numerator /
+             (float) granule_rate_denominator;
+ 
+-        /* What type of file do we have?
+-         * strcmp is safe to use here because we've extracted
+-         * content_type_string from the stream manually */
++        /* What type of file do we have:
++         * strcmp used as content_type_string extracted manually from stream
++         * (Wave and MPEG Formats are for future implementation) */
++
+         if( !strncmp(content_type_string, "audio/x-wav", 11) )
+         {
+-            /* n.b. WAVs are unsupported right now */
+-            p_stream->fmt.i_cat = UNKNOWN_ES;
++            p_stream->fmt.i_cat = AUDIO_ES;
++            p_stream->fmt.i_codec = VLC_FOURCC( 'w','a','v',' ' );
+         }
+         else if( !strncmp(content_type_string, "audio/x-vorbis", 14) )
+         {
+@@ -1414,7 +1451,6 @@
+         }
+         else if( !strncmp(content_type_string, "video/mpeg", 14) )
+         {
+-            /* n.b. MPEG streams are unsupported right now */
+             p_stream->fmt.i_cat = VIDEO_ES;
+             p_stream->fmt.i_codec = VLC_FOURCC( 'm','p','g','v' );
+         }
+Index: mozilla/Makefile.am
+===================================================================
+--- mozilla/Makefile.am	(revision 15815)
++++ mozilla/Makefile.am	(working copy)
+@@ -7,13 +7,20 @@
+ MOSTLYCLEANFILES = $(npvlc_DATA) $(vlcintf_xpt_DATA)
+ CLEANFILES = stamp-pic $(BUILT_SOURCES)
+ EXTRA_DIST = $(DIST_sources) vlcintf.idl npvlc_rc.rc vlc.r
++VLCIDL_FILE = "$(srcdir)/vlcintf.idl"
+ 
++# For MacOS and Linux users, you may leave the default values.
++# For Cygwin users, you need to make the following changes for the location:
++# VLCIDL_FILE = "{drive}:\{Path of VLC Source}/mozilla/vlcintf.idl"
++
+ SOURCES_mozilla_common = \
+ 	vlcshell.cpp \
+ 	vlcplugin.cpp \
+ 	vlcplugin.h \
+ 	vlcpeer.cpp \
+ 	vlcpeer.h \
++	vlcstreaminfo.c \
++	vlcstreaminfo.h \
+ 	vlcruntime.cpp \
+ 	vlcruntime.h \
+ 	support/classinfo.h
+@@ -177,11 +184,11 @@
+ vlcintf_xptdir = $(libdir)/mozilla/components
+ vlcintf.xpt: vlcintf.idl
+ 	$(XPIDL) $(XPIDL_INCL) \
+-	  -m typelib -o vlcintf $(srcdir)/vlcintf.idl
++	  -m typelib -o vlcintf $(VLCIDL_FILE)
+ 
+ vlcintf.h: vlcintf.idl
+ 	$(XPIDL) $(XPIDL_INCL) \
+-	  -m header -o vlcintf $(srcdir)/vlcintf.idl
++	  -m header -o vlcintf $(VLCIDL_FILE)
+ 
+ ###############################################################################
+ # Stamp rules
+Index: mozilla/npvlc_rc.rc
+===================================================================
+--- mozilla/npvlc_rc.rc	(revision 15815)
++++ mozilla/npvlc_rc.rc	(working copy)
+@@ -31,17 +31,17 @@
+     BEGIN
+         BLOCK "040904e4"
+         BEGIN
+-            VALUE "ProductName", "VLC multimedia plugin\0"
++            VALUE "ProductName", "VLC Annodex viewer plugin\0"
+             VALUE "ProductVersion", STRINGIFY( VERSION )
+-            VALUE "OriginalFilename", "npvlc.dll\0"
++            VALUE "OriginalFilename", "npanxvlc.dll\0"
+             VALUE "FileVersion", STRINGIFY( VERSION )
+-            VALUE "FileDescription", "VLC multimedia plugin Version "STRINGIFY( VERSION )"<br><br>VideoLAN WWW: <a href=""http://www.videolan.org/"">http://www.videolan.org/</a>\0"
+-            VALUE "InternalName", "npvlc\0"
+-            VALUE "CompanyName", "VideoLAN Team\0"
+-            VALUE "LegalCopyright", "Copyright VideoLAN \251 1996-2006\0"
+-            VALUE "MIMEType", "audio/mpeg|audio/x-mpeg|video/mpeg|video/x-mpeg|video/mpeg-system|video/x-mpeg-system|video/mpeg4|audio/mpeg4|application/mpeg4-iod|application/mpeg4-muxcodetable|video/x-msvideo|video/quicktime|application/x-ogg|application/ogg|application/x-vlc-plugin|video/x-ms-asf-plugin|video/x-ms-asf|application/x-mplayer2|video/x-ms-wmv|application/x-google-vlc-plugin|audio/wav|audio/x-wav\0"
+-            VALUE "FileExtents", "mp2,mp3,mpga,mpega|mp2,mp3,mpga,mpega|mpg,mpeg,mpe|mpg,mpeg,mpe|mpg,mpeg,vob|mpg,mpeg,vob|mp4,mpg4|mp4,mpg4|mp4,mpg4|mp4,mpg4|avi|mov,qt|ogg|ogg|||wav|wav\0"
+-            VALUE "FileOpenName", "MPEG audio|MPEG audio|MPEG video|MPEG video|MPEG video|MPEG video|MPEG-4 video|MPEG-4 audio|MPEG-4 video|MPEG-4 video|AVI video|QuickTime video|Ogg stream|Ogg stream|VLC plugin|||||Google VLC plugin|WAV audio|WAV audio\0"
++            VALUE "FileDescription", "VLC Annodex viewer plugin Version "STRINGIFY( VERSION )" \0"
++            VALUE "InternalName", "npanxvlc\0"
++            VALUE "CompanyName", "VideoLAN Team and CSIRO Australia\0"
++            VALUE "LegalCopyright", "Copyright VideoLAN \251 1996-2005, portions Copyright \251 Commonwealth Scientific and Industrial Research Organisation (CSIRO) Australia 2004-2005\0"
++            VALUE "MIMEType", "application/x-annodex-vlc-viewer-plugin\0"
++            VALUE "FileExtents", "\0"
++            VALUE "FileOpenName", "VLC Annodex viewer plugin\0"
+         END
+     END
+     BLOCK "VarFileInfo"
+Index: mozilla/vlc.r
+===================================================================
+--- mozilla/vlc.r	(revision 15815)
++++ mozilla/vlc.r	(working copy)
+@@ -13,9 +13,8 @@
+ resource 'STR#' (126)
+ {
+     {
+-        "Version 0.8.5, Copyright 2006, The VideoLAN Team"
+-        "<BR><A HREF='http://www.videolan.org'>http://www.videolan.org</A>",
+-        "VLC Multimedia Plugin"
++        "VLC Annodex viewer plugin",
++        "VLC Annodex viewer plugin"
+     };
+ };
+ 
+@@ -23,28 +22,7 @@
+ resource 'STR#' (127)
+ {
+     {
+-        "MPEG audio",
+-        "MPEG audio",
+-        "MPEG video",
+-        "MPEG video",
+-        "MPEG video",
+-        "MPEG video",
+-        "MPEG-4 video",
+-        "MPEG-4 audio",
+-        "MPEG-4 video",
+-        "MPEG-4 video",
+-        "AVI video",
+-        "QuickTime video",
+-        "Ogg stream",
+-        "Ogg stream",
+-        "VLC plugin",
+-        "ASF stream",
+-        "ASF stream",
+-        "",
+-        "",
+-        "Google VLC Plugin",
+-        "WAV audio",
+-        "WAV audio"
++        "VLC Annodex viewer plugin<br><br>VideoLAN WWW: <a href=""http://www.videolan.org/"">http://www.videolan.org/</a><br>Annodex WWW: <a href=""http://www.annodex.net/"">http://www.annodex.net/</a>"
+     };
+ };
+ 
+@@ -52,28 +30,7 @@
+ resource 'STR#' (128,"MIME Type")
+ {
+     {
+-        "audio/mpeg", "mp2,mp3,mpga,mpega",
+-        "audio/x-mpeg", "mp2,mp3,mpga,mpega",
+-        "video/mpeg", "mpg,mpeg,mpe",
+-        "video/x-mpeg", "mpg,mpeg,mpe",
+-        "video/mpeg-system", "mpg,mpeg,vob",
+-        "video/x-mpeg-system", "mpg,mpeg,vob",
+-        "video/mpeg4", "mp4,mpg4",
+-        "audio/mpeg4", "mp4,mpg4",
+-        "application/mpeg4-iod", "mp4,mpg4",
+-        "application/mpeg4-muxcodetable", "mp4,mpg4",
+-        "video/x-msvideo", "avi",
+-        "video/quicktime", "mov, qt",
+-        "application/ogg", "ogg",
+-        "application/x-ogg", "ogg",
+-        "application/x-vlc-plugin", "vlc",
+-        "video/x-ms-asf-plugin", "",
+-        "video/x-ms-asf", "",
+-        "application/x-mplayer2", "",
+-        "video/x-ms-wmv", "",
+-        "video/x-google-vlc-plugin", "",
+-        "audio/wav", "wav",
+-        "audio/x-wav", "wav",
++        "application/x-annodex-vlc-viewer-plugin", ""
+     };
+ };
+ 
+Index: mozilla/vlcintf.idl
+===================================================================
+--- mozilla/vlcintf.idl	(revision 15815)
++++ mozilla/vlcintf.idl	(working copy)
+@@ -37,6 +37,10 @@
+     PRInt64 get_position();
+     PRInt64 get_time();
+ 
++    /* Stream information accessors */
++    PRInt64 get_video_width();
++    PRInt64 get_video_height();
++
+     void seek( in PRInt64 i_secs, in PRInt64 b_relative);
+ };
+ 
+Index: mozilla/vlcpeer.cpp
+===================================================================
+--- mozilla/vlcpeer.cpp	(revision 15815)
++++ mozilla/vlcpeer.cpp	(working copy)
+@@ -48,6 +48,7 @@
+ 
+ #include "vlcpeer.h"
+ #include "vlcplugin.h"
++#include "vlcstreaminfo.h"
+ 
+ NS_IMPL_ISUPPORTS2( VlcPeer, VlcIntf, nsIClassInfo )
+ 
+@@ -312,3 +313,21 @@
+     }
+     return NS_OK;
+ }
++
++NS_IMETHODIMP VlcPeer::Get_video_width( PRInt64 *i_video_width )
++{
++    if( p_plugin->i_vlc )
++    {
++        *i_video_width = vlc_get_video_width( p_plugin->i_vlc );
++    }
++    return NS_OK;
++}
++
++NS_IMETHODIMP VlcPeer::Get_video_height( PRInt64 *i_video_height )
++{
++    if( p_plugin->i_vlc )
++    {
++        *i_video_height = vlc_get_video_height( p_plugin->i_vlc );
++    }
++    return NS_OK;
++}
+Index: mozilla/vlcplugin.h
+===================================================================
+--- mozilla/vlcplugin.h	(revision 15815)
++++ mozilla/vlcplugin.h	(working copy)
+@@ -98,44 +98,14 @@
+ /*******************************************************************************
+  * Plugin properties.
+  ******************************************************************************/
+-#define PLUGIN_NAME         "VLC multimedia plugin"
++#define PLUGIN_NAME         "VLC Annodex viewer plugin"
+ #define PLUGIN_DESCRIPTION \
+     "VLC multimedia plugin <br>" \
+     " <br>" \
+     "version %s <br>" \
+-    "VideoLAN WWW: <a href=\"http://www.videolan.org/\">http://www.videolan.org/</a>"
++    "VideoLAN WWW: <a href=\"http://www.videolan.org/\">http://www.videolan.org/</a><br>Annodex WWW: <a href=\"http://www.annodex.net/\">http://www.annodex.net/</a>"
+ 
+ #define PLUGIN_MIMETYPES \
+-    /* MPEG-1 and MPEG-2 */ \
+-    "audio/mpeg:mp2,mp3,mpga,mpega:MPEG audio;" \
+-    "audio/x-mpeg:mp2,mp3,mpga,mpega:MPEG audio;" \
+-    "video/mpeg:mpg,mpeg,mpe:MPEG video;" \
+-    "video/x-mpeg:mpg,mpeg,mpe:MPEG video;" \
+-    "video/mpeg-system:mpg,mpeg,mpe,vob:MPEG video;" \
+-    "video/x-mpeg-system:mpg,mpeg,mpe,vob:MPEG video;" \
+-    /* MPEG-4 */ \
+-    "video/mpeg4:mp4,mpg4:MPEG-4 video;" \
+-    "audio/mpeg4:mp4,mpg4:MPEG-4 audio;" \
+-    "application/mpeg4-iod:mp4,mpg4:MPEG-4 video;" \
+-    "application/mpeg4-muxcodetable:mp4,mpg4:MPEG-4 video;" \
+-    /* AVI */ \
+-    "video/x-msvideo:avi:AVI video;" \
+-    /* QuickTime */ \
+-    "video/quicktime:mov,qt:QuickTime video;" \
+-    /* Ogg */ \
+-    "application/x-ogg:ogg:Ogg stream;" \
+-    "application/ogg:ogg:Ogg stream;" \
+-    /* explicit plugin call */ \
+-    "application/x-vlc-plugin::VLC plugin;" \
+-    /* windows media */ \
+-    "video/x-ms-asf-plugin:asf,asx:Windows Media Video;" \
+-    "video/x-ms-asf:asf,asx:Windows Media Video;" \
+-    "application/x-mplayer2::Windows Media;" \
+-    "video/x-ms-wmv:wmv:Windows Media;" \
+-    /* Google VLC mime */ \
+-    "application/x-google-vlc-plugin::Google VLC plugin" \
+-    /* Misc */ \
+-    "audio/wav::WAV audio" \
+-    "audio/x-wav::WAV audio" \
++    "application/x-annodex-vlc-viewer-plugin::Annodex Media View"
+ 
+ #endif
+Index: mozilla/vlcshell.cpp
+===================================================================
+--- mozilla/vlcshell.cpp	(revision 15815)
++++ mozilla/vlcshell.cpp	(working copy)
+@@ -326,33 +326,17 @@
+         };
+ 
+ #elif defined(XP_WIN)
+-        char *ppsz_argv[] = { NULL, "-vv" };
+-        HKEY h_key;
+-        DWORD i_type, i_data = MAX_PATH + 1;
+-        char p_data[MAX_PATH + 1];
+-        if( RegOpenKeyEx( HKEY_LOCAL_MACHINE, "Software\\VideoLAN\\VLC",
+-                          0, KEY_READ, &h_key ) == ERROR_SUCCESS )
++        char *ppsz_argv[] =
+         {
+-             if( RegQueryValueEx( h_key, "InstallDir", 0, &i_type,
+-                                  (LPBYTE)p_data, &i_data ) == ERROR_SUCCESS )
+-             {
+-                 if( i_type == REG_SZ )
+-                 {
+-                     strcat( p_data, "\\vlc" );
+-                     ppsz_argv[0] = p_data;
+-                 }
+-             }
+-             RegCloseKey( h_key );
+-        }
++            "vlc",
++            "-vvvv"
++        };
+ 
+-        if( !ppsz_argv[0] ) ppsz_argv[0] = "vlc";
+-
+ #else /* XP_MACOSX */
+         char *ppsz_argv[] =
+         {
+-            "vlc"
++            "vlc",
+             "-vvvv"
+-            /*, "--plugin-path", ""*/
+         };
+ 
+ #endif /* XP_MACOSX */
+@@ -552,7 +536,7 @@
+ #if USE_LIBVLC
+ 
+ #ifdef XP_MACOSX
+-    value.i_int = (int)(((NP_Port*) (window->window))->port);
++    value.i_int = (int) ((NP_Port*) (window->window))->port;
+     VLC_VariableSet( p_plugin->i_vlc, "drawable", value );
+ 
+     valueportx.i_int = ((NP_Port*) (window->window))->portx;
+@@ -581,7 +565,10 @@
+     p_plugin->window = window;
+ 
+     valueredraw.i_int = 1;
+-    VLC_VariableSet( p_plugin->i_vlc, "drawableredraw", valueredraw );
++    if ( VLC_VariableSet( p_plugin->i_vlc, "drawableredraw", valueredraw ) != VLC_SUCCESS )
++    {
++       fprintf( stderr, "Setting drawableredraw failed" );
++    }
+ 
+ #else /* XP_MACOSX */
+     /* FIXME: this cast sucks */
+@@ -916,6 +903,11 @@
+     GC gc;
+     XGCValues gcv;
+ 
++    if( event != NULL && event->type == ConfigureNotify )
++    {
++        fprintf(stderr, "resize ConfigureNotify\n");
++    }
++
+     gcv.foreground = BlackPixel( p_plugin->p_display, 0 );
+     gc = XCreateGC( p_plugin->p_display, p_plugin->window, GCForeground, &gcv );
+ 
+Index: mozilla/vlcstreaminfo.c
+===================================================================
+--- mozilla/vlcstreaminfo.c	(revision 0)
++++ mozilla/vlcstreaminfo.c	(revision 0)
+@@ -0,0 +1,86 @@
++/*****************************************************************************
++ * vlcstreaminfo.c: C interface to get information from the stream
++ *****************************************************************************
++ * Copyright (C) 2005 VideoLAN
++ * Copyright (C) 2005 Commonwealth Scientific Industrial Research
++ *                    Organisation (CSIRO) Australia
++ * $Id$
++ *
++ * Authors: Andre Pang <ozone at algorithm.com.au>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
++ *****************************************************************************/
++
++/*****************************************************************************
++ * Preamble
++ *****************************************************************************/
++#include <vlc/vlc.h>
++#include <vlc_common.h>
++#include <vlc/vout.h>
++#include <vlc/intf.h>
++
++#include "vlcstreaminfo.h"
++
++int vlc_get_video_width( int i_vlc )
++{
++    vlc_t * p_vlc;
++    int i_width;
++
++    i_width = -1;
++
++    p_vlc = vlc_current_object( i_vlc );
++    if( p_vlc )
++    {
++        vout_thread_t * p_vout;
++
++        p_vout = vlc_object_find( p_vlc, VLC_OBJECT_VOUT, FIND_ANYWHERE );
++        if( p_vout )
++        {
++            i_width = p_vout->render.i_width;
++        }
++
++        vlc_object_release( p_vout );
++    }
++
++    vlc_object_release( p_vlc );
++
++    return i_width;
++}
++
++int vlc_get_video_height( int i_vlc )
++{
++    vlc_t * p_vlc;
++    int i_height;
++
++    i_height = -1;
++
++    p_vlc = vlc_current_object( i_vlc );
++    if( p_vlc )
++    {
++        vout_thread_t * p_vout;
++
++        p_vout = vlc_object_find( p_vlc, VLC_OBJECT_VOUT, FIND_ANYWHERE );
++        if( p_vout )
++        {
++            i_height = p_vout->render.i_height;
++        }
++
++        vlc_object_release( p_vout );
++    }
++
++    vlc_object_release( p_vlc );
++
++    return i_height;
++}
+Index: mozilla/vlcstreaminfo.h
+===================================================================
+--- mozilla/vlcstreaminfo.h	(revision 0)
++++ mozilla/vlcstreaminfo.h	(revision 0)
+@@ -0,0 +1,35 @@
++/*****************************************************************************
++ * vlcstreaminfo.h: C interface to get information from the stream
++ *****************************************************************************
++ * Copyright (C) 2005 VideoLAN
++ * Copyright (C) 2005 Commonwealth Scientific Industrial Research
++ *                    Organisation (CSIRO) Australia
++ * $Id$
++ *
++ * Authors: Andre Pang <ozone at algorithm.com.au>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
++ *****************************************************************************/
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++int vlc_get_video_width( int );
++int vlc_get_video_height( int );
++
++#ifdef __cplusplus
++}
++#endif
+Index: src/misc/charset.c
+===================================================================
+--- src/misc/charset.c	(revision 15815)
++++ src/misc/charset.c	(working copy)
+@@ -255,8 +255,10 @@
+      * use setlocale here; it would return "C" when it doesn't support the
+      * locale name the user has set. Darwin's setlocale is broken. */
+ #  if HAVE_SETLOCALE && !__APPLE__
++#  if defined LC_ALL
+     psz_locale = setlocale( LC_ALL, NULL );
+ #  endif
++#  endif
+     if( psz_locale == NULL || psz_locale[0] == '\0' )
+     {
+         psz_locale = getenv( "LC_ALL" );
+@@ -570,8 +572,10 @@
+     /* Some systems (like Darwin, SunOS 4 or DJGPP) have only the C locale.
+      * Therefore we don't use setlocale here; it would return "C". */
+ #  if HAVE_SETLOCALE && !__APPLE__
++#  if defined LC_ALL
+     psz_lang = setlocale( LC_ALL, NULL );
+ #  endif
++#  endif
+     if( psz_lang == NULL || psz_lang[0] == '\0' )
+     {
+         psz_lang = getenv( "LC_ALL" );


-- 
cchiu



More information about the cvs-annodex mailing list