Changeset 2371

Show
Ignore:
Timestamp:
2006-07-09 23:30:56 (3 years ago)
Author:
cchiu
Message:

Updated VLC build docs

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • AnnodexFirefoxExtension/trunk/Docs/DevDoc_MediaEngine.html

    r2359 r2371  
     1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
    12<html> 
    2  
    33<head> 
    4   <title>AnnodexViewer Media Engine Documentation</title> 
     4<title>AnnodexViewer Media Engine Documentation</title> 
    55</head> 
    6  
    7  
    86<body> 
    9  
    107<h1>Annodex Firefox Extension Viewer (AFE): Media Engine Documentation</h1> 
    118 
    12  
    139<h2>Table of Contents</h2> 
    1410 
    15  
    16 <table border="0" cellpadding="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1"> 
    17   <tr> 
    18     <td width="100%"> 
    19         <a href="#1.0_Installation_of_the_Annodex_Firefox_Extension">1.0  
    20         Installation of the Annodex Firefox Extension</a></td> 
    21   </tr> 
    22   <tr> 
    23     <td width="100%">&nbsp;&nbsp;&nbsp; 
    24         <a href="#1.1_Installing_the_Media_Engine_Component">1.1 Installing the  
    25         Media Engine Component</a></td> 
    26   </tr> 
    27   <tr> 
    28     <td width="100%"><a href="#2.0_Introduction_to_the_AFE_Media_Engine">2.0  
    29         Introduction to the AFE Media Engine</a></td> 
    30   </tr> 
    31   <tr> 
    32     <td width="100%">&nbsp;&nbsp;&nbsp; 
    33         <a href="#2.1_Building_Concepts_of_the_AFE_Media_Engine">2.1 Building  
    34         Concepts of the AFE Media Engine</a></td> 
    35   </tr> 
    36   <tr> 
    37     <td width="100%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    38         <a href="#2.1.1_Precompiled_Gecko_SDKs_for_Windows_and_Mac_OS_X">2.1.1  
    39         Precompiled Gecko SDKs for Windows and MacOS X</a></td> 
    40   </tr> 
    41   <tr> 
    42     <td width="100%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    43         <a href="#2.1.2_Precompiled_Gecko_SDK_Linking_Issues_on_Linux">2.1.2  
    44         Precompiled Gecko SDK Linking Issues on Linux</a></td> 
    45   </tr> 
    46   <tr> 
    47     <td width="100%"> 
    48  
    49  
    50 <table border="0" cellpadding="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="table3"> 
    51   <tr> 
    52     <td width="100%"> 
    53  
    54  
    55 <table border="0" cellpadding="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="table5"> 
    56   <tr> 
    57     <td width="100%"><a href="#3.0_Compilation_of_the_AFE_Media_Engine">3.0  
    58         Compilation of the AFE Media Engine</a></td> 
    59   </tr> 
     11<table summary="table" border="0" cellpadding="0" width="100%"> 
     12<tr> 
     13<td width="100%"><a href= 
     14"#1.0_Installation_of_the_Annodex_Firefox_Extension">1.0 
     15Installation of the Annodex Firefox Extension</a></td> 
     16</tr> 
     17 
     18<tr> 
     19<td width="100%">&#160;&#160;&#160; <a href= 
     20"#1.1_Installing_the_Media_Engine_Component">1.1 Installing the 
     21Media Engine Component</a></td> 
     22</tr> 
     23 
     24<tr> 
     25<td width="100%"><a href= 
     26"#2.0_Introduction_to_the_AFE_Media_Engine">2.0 Introduction to the 
     27AFE Media Engine</a></td> 
     28</tr> 
     29 
     30<tr> 
     31<td width="100%">&#160;&#160;&#160; <a href= 
     32"#2.1_Building_Concepts_of_the_AFE_Media_Engine">2.1 Building 
     33Concepts of the AFE Media Engine</a></td> 
     34</tr> 
     35 
     36<tr> 
     37<td width="100%">&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a 
     38href="#2.1.1_Precompiled_Gecko_SDKs_for_Windows_and_Mac_OS_X">2.1.1 
     39Precompiled Gecko SDKs for Windows and MacOS X</a></td> 
     40</tr> 
     41 
     42<tr> 
     43<td width="100%">&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a 
     44href="#2.1.2_Precompiled_Gecko_SDK_Linking_Issues_on_Linux">2.1.2 
     45Precompiled Gecko SDK Linking Issues on Linux</a></td> 
     46</tr> 
     47 
     48<tr> 
     49<td width="100%"> 
     50<table summary="table" border="0" cellpadding="0" width="100%"> 
     51<tr> 
     52<td width="100%"> 
     53<table summary="table" border="0" cellpadding="0" width="100%"> 
     54<tr> 
     55<td width="100%"><a href= 
     56"#3.0_Compilation_of_the_AFE_Media_Engine">3.0 Compilation of the 
     57AFE Media Engine</a></td> 
     58</tr> 
    6059</table> 
    6160 
    62         &nbsp;&nbsp;&nbsp; 
    63         <a href="#3.1_Building_the_AFE_Media_Engine_in_Cygwin">3.1 Building the AFE  
    64         Media Engine in Cygwin</a></td> 
    65   </tr> 
    66   <tr> 
    67     <td width="100%">&nbsp;&nbsp;&nbsp; 
    68         <a href="#3.2_Building_the_AFE_Media_Engine_in_Mac_OS_X">3.2 Building the  
    69         AFE Media Engine in Mac OS X</a></td> 
    70   </tr> 
    71   <tr> 
    72     <td width="100%">&nbsp;&nbsp;&nbsp; 
    73         <a href="#3.3_Building_the_AFE_Media_Engine_in_GNU/Linux">3.3 Building the  
    74         AFE Media Engine in GNU/Linux</a></td> 
    75   </tr> 
    76   </table> 
    77  
    78         </td> 
    79   </tr> 
     61&#160;&#160;&#160; <a href= 
     62"#3.1_Building_the_AFE_Media_Engine_in_Cygwin">3.1 Building the AFE 
     63Media Engine in Cygwin</a></td> 
     64</tr> 
     65 
     66<tr> 
     67<td width="100%">&#160;&#160;&#160; <a href= 
     68"#3.2_Building_the_AFE_Media_Engine_in_Mac_OS_X">3.2 Building the 
     69AFE Media Engine in Mac OS X</a></td> 
     70</tr> 
     71 
     72<tr> 
     73<td width="100%">&#160;&#160;&#160; <a href= 
     74"#3.3_Building_the_AFE_Media_Engine_in_GNU/Linux">3.3 Building the 
     75AFE Media Engine in GNU/Linux</a></td> 
     76</tr> 
    8077</table> 
    81  
    82  
    83 <table border="0" cellpadding="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="table4"> 
    84   <tr> 
    85     <td width="100%"><a href="#4.0_AFE_Media_Engine_Directory_Structure">4.0 AFE  
    86         Media Engine Directory Structure</a></td> 
    87   </tr> 
     78</td> 
     79</tr> 
    8880</table> 
    8981 
    90 <h2><a name="1.0_Installation_of_the_Annodex_Firefox_Extension">1.0 Installation of the Annodex Firefox Extension</a></h2> 
    91  
    92  
    93 <p><b>Note:</b> These installation steps are intended for developers; end-users  
    94 will be supplied with a Mozilla .xpi package that they can simply download and  
    95 double-click on to install. For Windows users, a batch file for Firefox Browser  
    96 users called &quot;<font face="Courier New">WinSetup.bat</font>&quot; semi-automates the  
    97 installation process, with minor configuration changes required as prompted at  
    98 the end of the installation. The three main points of installation are as  
    99 follows:</p> 
    100  
    101  
    102 <ol> 
    103   <li><b>Installing the Mozilla AFE Chrome: </b>&nbsp;Please refer to XUL Core  
    104         documentation for installation of files.<ol> 
    105     <li>Copying the <font face="Courier New">/Core/chrome/afeview/</font>  
    106     directory to the Mozilla Firefox Chrome directory.</li> 
    107     <li>Creating or modifying an <font face="Courier New">installed-chrome.txt</font>  
    108     file to initialise the AFE Chrome with Mozilla Firefox, and deleting the  
    109     existing <font face="Courier New">chrome.rdf</font> file.</li> 
    110   </ol> 
    111   </li> 
    112   <li><b>Installing the ANXLoader Mozilla Component:</b> Please refer to XUL  
    113         Core documentation for installation of files.<ol> 
    114     <li>Copying the <font face="Courier New">components\ANXLoader.js</font> file  
    115     to the Mozilla Firefox Components directory.</li> 
    116     <li>Deleting the <font face="Courier New">compreg.dat</font>  
    117     auto-configuration file to be regenerated upon startup of Mozilla Firefox  
    118     for initialising ANXLoader.</li> 
    119   </ol> 
    120   </li> 
    121   <li><b>Installing the Media Engine Component:</b><ol> 
    122     <li>Copying the platform dependent binary plug-in to the Mozilla Firefox  
    123     plugins directory.</li> 
    124   </ol> 
    125   </li> 
    126 </ol> 
    127  
    128 <h3><a name="1.1_Installing_the_Media_Engine_Component">1.1 Installing the Media Engine Component</a></h3> 
    129  
    130  
    131 <ul> 
    132   <li><b>Windows:</b> Copy the VLC player binary driver <font face="Courier New"> 
    133   npanxvlc.dll</font> file in &quot;<font face="Courier New">\MediaEngines\VLC\bin-win32\</font>&quot;  
    134   to your browser's plug-in default directory:<br> 
    135   <br> 
    136   <b>For Mozilla Firefox: </b>&quot;<font face="Courier New">C:\Program Files\Mozilla  
    137   Firefox\plugins\</font>&quot;.<br> 
    138   <b>For Mozilla Internet Suite: </b>&quot;<font face="Courier New">C:\Program Files\mozilla.org\Mozilla\plugins\</font>&quot;.<br> 
    139 &nbsp;</li> 
    140   <li><b>Mac OS X:</b> Copy the directory &quot;<font face="Courier New">MediaEngines\VLC\bin-macosx\AnnodexViewer  
    141   VLC Media Engine.plugin</font>&quot; to your browser's default plug-in directory.<br> 
    142 &nbsp;</li> 
    143   <li><b>Linux: </b>Identify if Linux is running on a x86 compatible or PowerPC  
    144   processor. Then copy the respective file to your browser's default plug-in  
    145   directory:<br> 
    146   <b>For x86 Linux Platforms: </b><font face="Courier New">\MediaEngines\VLC\bin-linux-i386\libanxvlcplugin.so<br> 
    147   </font><b>For PowerPC Linux Platforms: </b><font face="Courier New">\MediaEngines\VLC\bin-linux-ppc\libanxvlcplugin.so</font></li> 
    148 </ul> 
    149  
    150 <h2><a name="2.0_Introduction_to_the_AFE_Media_Engine">2.0 Introduction to the AFE  
    151 Media Engine</a></h2> 
    152  
    153  
    154 <p>The chrome and media engine are packaged as separate .XPIs. While the chrome  
    155 is the same on all platforms, a different video plug-in is required for each  
    156 operating system and CPU architecture. The two main components to AFE are as  
    157 follows:</p> 
    158  
    159  
    160 <ol> 
    161   <li><b>The Chrome:&nbsp; 
    162   </b>Refer to the XUL Core documentation for further details.<b><br> 
    163   </b>Chrome is also known as the 'Core' XPI. This is a Mozilla XUL (XML User  
    164   Interface Language) application providing the overall video browsing user  
    165   interface. This shows the basic clip list, transport controls and media  
    166   display. The chrome is platform-independent, and it registers itself with  
    167   Mozilla as the handler for application/x-annodex, and it embeds the video  
    168   plug-in. The AFE Chrome also handles the parsing of CMML metadata and clip  
    169   information implementing JavaScript's XML to RDF parser functions.<br> 
    170 &nbsp;</li> 
    171   <li><b>Media Engine</b><br> 
    172   The media engine is a Mozilla plug-in used to do the playback and rendering of  
    173   the audio or video. Currently, we use the VLC Mozilla plug-in as the media  
    174   engine on all platforms, though this may change in the future. The video  
    175   plug-in is native code specific for each of the supported platforms on Windows,  
    176   Linux (x86 and PowerPC) and MacOS. Each media engine registers with Mozilla as  
    177   an application/x-annodex-player plug-in; e.g. the VLC media engine is  
    178   registered as application/x-annodex-vlc-viewer-plugin.</li> 
    179 </ol> 
    180  
    181 <h3><a name="2.1_Building_Concepts_of_the_AFE_Media_Engine">2.1 Building  
    182 Concepts of the AFE Media  
    183 Engine</a></h3> 
    184  
    185  
    186 <p>A &quot;media engine&quot; is a Mozilla plug-in which is responsible for the actual  
    187 playback of the video or audio file. Currently, VLC is used on all three  
    188 supported platforms (Windows, Linux, Mac OS X) as the media engine. You will  
    189 need to compile a customised VLC Mozilla plug-in to get the Firefox extension to  
    190 work correctly. Without a media engine, you can download and view the CMML  
    191 content in the Table of Contents list for the video (as this is handled by the  
    192 chrome XPI), but can't actually watch the video. To start building the VLC media engine, it requires three main components:</p> 
    193  
    194  
    195 <ol> 
    196   <li>The VLC sources, which must reside in a <font face="Courier New">src/</font>  
    197   directory here. This should automagically be checked out thanks to  
    198         Subversion's svn:externals feature.<br> 
    199 &nbsp;</li> 
    200   <li>The Gecko (Mozilla) SDK, which includes some header files and utility  
    201         programs required for the building the VLC Mozilla plug-in. The Gecko SDK is  
    202         common to all the media engines, which contain Mozilla header files and  
    203         tools that the plug-ins will require to compile correctly:<br> 
    204 &nbsp;<ul> 
    205     <li>For Linux systems, you are expected to supply the Gecko SDK via  
    206         installing the Mozilla development package from your Linux distribution  
    207         (e.g. for Debian GNU/Linux, this package is named <font face="Courier New"> 
    208     mozilla-dev</font>)</li> 
    209     <li>For Windows or Mac OS X systems, the configuration scripts for each of  
    210         the media engines will expect a gecko-sdk-$SYSTEM/ directory to be present  
    211         in this directory (where $SYSTEM is either Win32, Linux or MacOS X). While  
    212         you can supply your own Gecko SDK, it is easier to use ours instead. (The  
    213         Gecko SDK is not checked out for Windows or Mac OS X by default, and only  
    214         users of those particular platforms will need to use it.)<br> 
    215 &nbsp;</li> 
    216   </ul> 
    217   </li> 
    218   <li>The libogg, libvorbis, libtheora and libspeex libraries installed in a  
    219         location that VLC's <font face="Courier New">./configure</font> script will  
    220         pick them up. If you are building a one-click XPI installation package, you  
    221         should ensure that these libraries are build statically only, and not shared  
    222         (i.e. configure them with <font face="Courier New">--enable-static  
    223         --disable-shared</font>). If you have all three requirements, the build  
    224         process should be fairly simple by running the commands below.<br> 
    225   <br> 
    226   <font face="Courier New">./Patch<br> 
    227   cd build<br> 
    228   ./Build</font></li> 
    229 </ol> 
    230 <h4><a name="2.1.1_Precompiled_Gecko_SDKs_for_Windows_and_Mac_OS_X">2.1.1  
     82<table summary="table" border="0" cellpadding="0" width="100%"> 
     83<tr> 
     84<td width="100%"><a href= 
     85"#4.0_AFE_Media_Engine_Directory_Structure">4.0 AFE Media Engine 
     86Directory Structure</a></td> 
     87</tr> 
     88</table> 
     89 
     90<h2><a name="1.0_Installation_of_the_Annodex_Firefox_Extension">1.0 
     91Installation of the Annodex Firefox Extension</a></h2> 
     92 
     93<p><b>Note:</b> These installation steps are intended for 
     94developers; end-users will be supplied with a Mozilla .xpi package 
     95that they can simply download and double-click on to install. For 
     96Windows users, a batch file for Firefox Browser users called "<font 
     97face="Courier New">WinSetup.bat</font>" semi-automates the 
     98installation process, with minor configuration changes required as 
     99prompted at the end of the installation. The three main points of 
     100installation are as follows:</p> 
     101 
     102<ol> 
     103<li><b>Installing the Mozilla AFE Chrome:</b> &#160;Please refer to 
     104XUL Core documentation for installation of files.  
     105<ol> 
     106<li>Copying the <font face= 
     107"Courier New">/Core/chrome/afeview/</font> directory to the Mozilla 
     108Firefox Chrome directory.</li> 
     109 
     110<li>Creating or modifying an <font face= 
     111"Courier New">installed-chrome.txt</font> file to initialise the 
     112AFE Chrome with Mozilla Firefox, and deleting the existing <font 
     113face="Courier New">chrome.rdf</font> file.</li> 
     114</ol> 
     115</li> 
     116 
     117<li><b>Installing the ANXLoader Mozilla Component:</b> Please refer 
     118to XUL Core documentation for installation of files.  
     119<ol> 
     120<li>Copying the <font face= 
     121"Courier New">components\ANXLoader.js</font> file to the Mozilla 
     122Firefox Components directory.</li> 
     123 
     124<li>Deleting the <font face="Courier New">compreg.dat</font> 
     125auto-configuration file to be regenerated upon startup of Mozilla 
     126Firefox for initialising ANXLoader.</li> 
     127</ol> 
     128</li> 
     129 
     130<li><b>Installing the Media Engine Component:</b>  
     131<ol> 
     132<li>Copying the platform dependent binary plug-in to the Mozilla 
     133Firefox plugins directory.</li> 
     134</ol> 
     135</li> 
     136</ol> 
     137 
     138<h3><a name="1.1_Installing_the_Media_Engine_Component">1.1 
     139Installing the Media Engine Component</a></h3> 
     140 
     141<ul> 
     142<li><b>Windows:</b> Copy the VLC player binary driver <font face= 
     143"Courier New">npanxvlc.dll</font> file in "<font face= 
     144"Courier New">\MediaEngines\VLC\bin-win32\</font>" to your 
     145browser's plug-in default directory:<br> 
     146<br> 
     147 <b>For Mozilla Firefox:</b> "<font face="Courier New">C:\Program 
     148Files\Mozilla Firefox\plugins\</font>".<br> 
     149 <b>For Mozilla Internet Suite:</b> "<font face= 
     150"Courier New">C:\Program 
     151Files\mozilla.org\Mozilla\plugins\</font>".<br> 
     152&#160;</li> 
     153 
     154<li><b>Mac OS X:</b> Copy the directory "<font face= 
     155"Courier New">MediaEngines\VLC\bin-macosx\AnnodexViewer VLC Media 
     156Engine.plugin</font>" to your browser's default plug-in 
     157directory.<br> 
     158&#160;</li> 
     159 
     160<li><b>Linux:</b> Identify if Linux is running on a x86 compatible 
     161or PowerPC processor. Then copy the respective file to your 
     162browser's default plug-in directory:<br> 
     163 <b>For x86 Linux Platforms:</b> <font face= 
     164"Courier New">\MediaEngines\VLC\bin-linux-i386\libanxvlcplugin.so<br> 
     165 
     166</font> <b>For PowerPC Linux Platforms:</b> <font face= 
     167"Courier New">\MediaEngines\VLC\bin-linux-ppc\libanxvlcplugin.so</font></li> 
     168</ul> 
     169 
     170<h2><a name="2.0_Introduction_to_the_AFE_Media_Engine">2.0 
     171Introduction to the AFE Media Engine</a></h2> 
     172 
     173<p>The chrome and media engine are packaged as separate .XPIs. 
     174While the chrome is the same on all platforms, a different video 
     175plug-in is required for each operating system and CPU architecture. 
     176The two main components to AFE are as follows:</p> 
     177 
     178<ol> 
     179<li><b>The Chrome:&#160;</b> Refer to the XUL Core documentation 
     180for further details.<b><br> 
     181</b> Chrome is also known as the 'Core' XPI. This is a Mozilla XUL 
     182(XML User Interface Language) application providing the overall 
     183video browsing user interface. This shows the basic clip list, 
     184transport controls and media display. The chrome is 
     185platform-independent, and it registers itself with Mozilla as the 
     186handler for application/x-annodex, and it embeds the video plug-in. 
     187The AFE Chrome also handles the parsing of CMML metadata and clip 
     188information implementing JavaScript's XML to RDF parser 
     189functions.<br> 
     190&#160;</li> 
     191 
     192<li><b>Media Engine</b><br> 
     193 The media engine is a Mozilla plug-in used to do the playback and 
     194rendering of the audio or video. Currently, we use the VLC Mozilla 
     195plug-in as the media engine on all platforms, though this may 
     196change in the future. The video plug-in is native code specific for 
     197each of the supported platforms on Windows, Linux (x86 and PowerPC) 
     198and MacOS. Each media engine registers with Mozilla as an 
     199application/x-annodex-player plug-in; e.g. the VLC media engine is 
     200registered as application/x-annodex-vlc-viewer-plugin.</li> 
     201</ol> 
     202 
     203<h3><a name="2.1_Building_Concepts_of_the_AFE_Media_Engine">2.1 
     204Building Concepts of the AFE Media Engine</a></h3> 
     205 
     206<p>A "media engine" is a Mozilla plug-in which is responsible for 
     207the actual playback of the video or audio file. Currently, VLC is 
     208used on all three supported platforms (Windows, Linux, Mac OS X) as 
     209the media engine. You will need to compile a customised VLC Mozilla 
     210plug-in to get the Firefox extension to work correctly. Without a 
     211media engine, you can download and view the CMML content in the 
     212Table of Contents list for the video (as this is handled by the 
     213chrome XPI), but can't actually watch the video. To start building 
     214the VLC media engine, it requires three main components:</p> 
     215 
     216<ol> 
     217<li>The VLC sources, which must reside in a <font face= 
     218"Courier New">src/</font> directory here. This should automagically 
     219be checked out thanks to Subversion's svn:externals feature.<br> 
     220&#160;</li> 
     221 
     222<li>The Gecko (Mozilla) SDK, which includes some header files and 
     223utility programs required for the building the VLC Mozilla plug-in. 
     224The Gecko SDK is common to all the media engines, which contain 
     225Mozilla header files and tools that the plug-ins will require to 
     226compile correctly:<br> 
     227&#160;  
     228<ul> 
     229<li>For Linux systems, you are expected to supply the Gecko SDK via 
     230installing the Mozilla development package from your Linux 
     231distribution (e.g. for Debian GNU/Linux, this package is named 
     232<font face="Courier New">mozilla-dev</font>)</li> 
     233 
     234<li>For Windows or Mac OS X systems, the configuration scripts for 
     235each of the media engines will expect a gecko-sdk-$SYSTEM/ 
     236directory to be present in this directory (where $SYSTEM is either 
     237Win32, Linux or MacOS X). While you can supply your own Gecko SDK, 
     238it is easier to use ours instead. (The Gecko SDK is not checked out 
     239for Windows or Mac OS X by default, and only users of those 
     240particular platforms will need to use it.)<br> 
     241&#160;</li> 
     242</ul> 
     243</li> 
     244 
     245<li>The libogg, libvorbis, libtheora and libspeex libraries 
     246installed in a location that VLC's <font face= 
     247"Courier New">./configure</font> script will pick them up. If you 
     248are building a one-click XPI installation package, you should 
     249ensure that these libraries are build statically only, and not 
     250shared (i.e. configure them with <font face= 
     251"Courier New">--enable-static --disable-shared</font>). If you have 
     252all three requirements, the build process should be fairly simple 
     253by running the commands below.<br> 
     254<br> 
     255 <font face="Courier New">./Patch<br> 
     256 cd build<br> 
     257 ./Build</font></li> 
     258</ol> 
     259 
     260<h4><a name= 
     261"2.1.1_Precompiled_Gecko_SDKs_for_Windows_and_Mac_OS_X">2.1.1 
    231262Precompiled Gecko SDKs for Windows and Mac OS X</a></h4> 
    232263 
    233  
    234 <p>Obtaining the correct Gecko SDK for Windows and Mac OS X can be a bit of a  
    235 pain (especially for Mac OS X, since no binary distribution of the Gecko SDK is  
    236 available for that platform from mozilla.org). To make life a bit easier, we  
    237 provide prebuilt Gecko SDK binaries for those platforms for you.</p> 
    238 <ul> 
    239         <li><b>For Windows:</b><br> 
    240     The Gecko SDK is expected to be in a <font face="Courier New">gecko-sdk-win32/</font>  
    241         directory. To get the prebuilt Win32 binaries, SubVersion checkout the following  
    242         path below to <font face="Courier New">gecko-sdk-win32/</font>. For convenience, you can also use the  
    243         <font face="Courier New">checkout-gecko-sdk-win32.bat</font> batch to do this if you have the command-line  
    244         Subversion MSI (not TortoiseSVN Explorer Shell) installed.<br> 
    245     <a href="http://svn.annodex.net/AnnodexFirefoxExtension/trunk/MediaEngines/GeckoSDK/gecko-sdk-win32/">http://svn.annodex.net/AnnodexFirefoxExtension/trunk/MediaEngines/GeckoSDK/gecko-sdk-win32/</a> 
    246     <b><br> 
    247         <br> 
    248         Note:</b> Cygwin is the recommended platform to work on the Media Engine  
    249         plug-in for Windows. Refer to the document below to setup required library  
    250         dependencies if they cannot be found whilst building the plug-in. Read  
    251         Section 1.2.1 in particular: 
    252         <a href="http://www.firstmiletv.nl/vlc/developers/howto.txt"> 
    253         http://www.firstmiletv.nl/vlc/developers/howto.txt</a><br>&nbsp;</li> 
    254         <li><b>For Mac OS X:</b><br> 
    255     Use the following Subversion URL instead and check it out to  
    256     <font face="Courier New">../gecko-sdk-macosx/</font>. 
    257     For convenience, you can use the checkout-gecko-sdk-macosx.sh shell script  
    258     to do this:<br> 
    259     <a href="http://svn.annodex.net/AnnodexFirefoxExtension/trunk/MediaEngines/GeckoSDK/gecko-sdk-macosx/">http://svn.annodex.net/AnnodexFirefoxExtension/trunk/MediaEngines/GeckoSDK/gecko-sdk-macosx/</a> </li> 
    260 </ul> 
    261 <p>Follow the steps in Section 3 for your specific platform will patch and build the VLC  
    262 media engine, depending on the host machine.  
    263 The Installer/Make (For Linux, MacOS X and Windows platforms) 
    264 <font face="Courier New">VLCPluginXPI.sh</font> scripts will take the  
    265 files from <font face="Courier New">/MediaEngine/VLC/bin-etc</font> and package them into an .XPI, which is  
    266 placed into the Installer directory. After making the XPIs using the scripts in  
    267 the Installer directory, run Firefox and open the <font face="Courier New">/Installer/installtest.html</font>  
    268 file to test out whether the XPI's are detected correctly by Mozilla as Annodex  
     264<p>Obtaining the correct Gecko SDK for Windows and Mac OS X can be 
     265a bit of a pain (especially for Mac OS X, since no binary 
     266distribution of the Gecko SDK is available for that platform from 
     267mozilla.org). To make life a bit easier, we provide prebuilt Gecko 
     268SDK binaries for those platforms for you.</p> 
     269 
     270<ul> 
     271<li><b>For Windows:</b><br> 
     272 The Gecko SDK is expected to be in a <font face= 
     273"Courier New">gecko-sdk-win32/</font> directory. To get the 
     274prebuilt Win32 binaries, SubVersion checkout the following path 
     275below to <font face="Courier New">gecko-sdk-win32/</font>. For 
     276convenience, you can also use the <font face= 
     277"Courier New">checkout-gecko-sdk-win32.bat</font> batch to do this 
     278if you have the command-line Subversion MSI (not TortoiseSVN 
     279Explorer Shell) installed.<br> 
     280 <a href= 
     281"http://svn.annodex.net/AnnodexFirefoxExtension/trunk/MediaEngines/GeckoSDK/gecko-sdk-win32/"> 
     282http://svn.annodex.net/AnnodexFirefoxExtension/trunk/MediaEngines/GeckoSDK/gecko-sdk-win32/</a> 
     283<b><br> 
     284<br> 
     285 Note:</b> Cygwin is the recommended platform to work on the Media 
     286Engine plug-in for Windows. Refer to the document below to setup 
     287required library dependencies if they cannot be found whilst 
     288building the plug-in. Read Section 1.2.1 in particular: <a href= 
     289"http://www.firstmiletv.nl/vlc/developers/howto.txt">http://www.firstmiletv.nl/vlc/developers/howto.txt</a><br> 
     290 
     291 &#160;</li> 
     292 
     293<li><b>For Mac OS X:</b><br> 
     294 Use the following Subversion URL instead and check it out to <font 
     295face="Courier New">../gecko-sdk-macosx/</font>. For convenience, 
     296you can use the checkout-gecko-sdk-macosx.sh shell script to do 
     297this:<br> 
     298 <a href= 
     299"http://svn.annodex.net/AnnodexFirefoxExtension/trunk/MediaEngines/GeckoSDK/gecko-sdk-macosx/"> 
     300http://svn.annodex.net/AnnodexFirefoxExtension/trunk/MediaEngines/GeckoSDK/gecko-sdk-macosx/</a></li> 
     301</ul> 
     302 
     303<p>Follow the steps in Section 3 for your specific platform will 
     304patch and build the VLC media engine, depending on the host 
     305machine. The Installer/Make (For Linux, MacOS X and Windows 
     306platforms) <font face="Courier New">VLCPluginXPI.sh</font> scripts 
     307will take the files from <font face= 
     308"Courier New">/MediaEngine/VLC/bin-etc</font> and package them into 
     309an .XPI, which is placed into the Installer directory. After making 
     310the XPIs using the scripts in the Installer directory, run Firefox 
     311and open the <font face= 
     312"Courier New">/Installer/installtest.html</font> file to test out 
     313whether the XPI's are detected correctly by Mozilla as Annodex 
    269314extensions.</p> 
    270 <p><font face="Courier New">cd MediaEngine/VLC<br>./Patch<br>cd src<br>./Build<br>cd ..<br>./PrepareInstall.sh</font></p> 
    271 <h4><a name="2.1.2_Precompiled_Gecko_SDK_Linking_Issues_on_Linux">2.1.2  
     315 
     316<blockquote> 
     317<p><font face="Courier New">cd MediaEngine/VLC<br> 
     318./Patch<br> 
     319cd src<br> 
     320./Build<br> 
     321cd ..<br> 
     322./PrepareInstall.sh</font></p> 
     323</blockquote> 
     324 
     325<h4><a name= 
     326"2.1.2_Precompiled_Gecko_SDK_Linking_Issues_on_Linux">2.1.2 
    272327Precompiled Gecko SDK Linking Issues on Linux</a></h4> 
    273 <p>There are a few extra complications trying to compile the VLC Mozilla plug-in  
    274 on Linux:</p> 
    275 <ol> 
    276         <li>As mentioned above, ensure that you only have static libraries of  
    277         lib (ogg, theora, vorbis, speex) available, otherwise the end-user will require  
    278         them to be installed. 
    279         For package maintainers, it is fine to simply link  
    280         against your distribution's packages rather than statically compiling them  
    281         in.<br> 
    282 &nbsp;</li> 
    283         <li>You may need to adjust the<font face="Courier New"> mozilla-config</font> script so that the Mozilla  
    284     plug-in doesn't unnecessarily link against lib (plds4, plc4, nspr4, xpcom). These  
    285         are Mozilla libraries that the VLC Mozilla plug-in doesn't need to link to at  
    286         all, and causes problems because almost all end-users won't have those  
    287         libraries installed in the locations you have them installed in.<br> 
    288         <br> 
    289         <b>For example: </b>on Debian GNU/Linux, Mozilla Firefox uses libplds4.so  
    290     that is located  
    291         at <font face="Courier New">/usr/lib/mozilla-firefox/</font>, but the mozilla-dev package installs a  
    292         separate libplds4.so to <font face="Courier New">/usr/lib/</font>. When the VLC Mozilla  
    293     plug-in is compiled,  
    294         it will link against the library found at <font face="Courier New">/usr/lib/</font>.  
    295     This means that  
    296         end-users who don't have themozilla-dev package installed (this is not a  
    297         default package on most systems) will not be able to load the plug-in on  
    298         their system properly, due to the dynamic linker throwing an error. 
    299         Package maintainers can choose of two options here:<ul> 
    300       <li>The better one option is  
    301           to probably somehow patch the vlc-config or mozilla-config scripts so that &quot;vlc-config  
    302         --libs mozilla&quot; doesn't produce the -l flags to link against those  
    303         libraries.</li> 
    304       <li>Otherwise, you can simply depend on whatever Mozilla development  
    305         package is in your distribution (mozilla-dev) to ensure that those libraries  
    306         are installed.<br> 
    307 &nbsp;</li> 
    308     </ul> 
    309     </li> 
    310         <li>Be aware that if you are building an XPI intended to work across  
    311         different distributions, you will want to statically link in libstdc++ (the  
    312         C++ runtime library) into the Mozilla plug-in, since different distributions  
    313         use different major versions of libstdc++. Package maintainers don't have to  
    314         worry about this problem, since they can link against the standard libstdc++  
    315         required by their distribution.<br> 
    316     <br> 
    317     <b>For example:</b> Ubuntu 4.10 (Warty) uses libstdc++5, Fedora Core 3 uses libstdc++6, while Ubuntu  
    318     5.04 (Hoary) uses libstdc++5  
    319         and libstdc++6. This is taken care of in the Annodex patches to VLC; if you  
    320         look at the <font face="Courier New">VLC_Annodex.diff</font> file, you'll notice that mozilla/Makefile.am  
    321         has been modified to force libstdc++ to be linked in statically. While this is safe to do, the method  
    322         in the diff file is the best known way of doing it  from current development  
    323     efforts. Attempts to do this command &quot;<font face="Courier New">-Wl,-Bstatic -lstdc++ -Wl,-Bdynamic</font>&quot;  does  
    324     not work at the moment. Any experts in this field who could give advice to  
    325     these issues are welcome to contact the Annodex Development Team.<br> 
    326     <br> 
    327     <b>Pending Issues:</b> There is  the problem of multiple video and audio output drivers for  
    328         Linux. By default, the Mozilla plug-in will use only OSS for audio output and  
    329         will try Xvideo then X11 (in that order) for video output. If you wish to  
    330         support other types of audio or video plug-ins (such as jack, esd), you will  
    331         need to modify some <font face="Courier New">#defined</font> constants near the start of 
    332     <font face="Courier New">mozilla/vlcshell.cpp</font> file, which is beyond  
    333     the scope of current developments.</li> 
    334 </ol> 
    335  
    336 <h2><a name="3.0_Compilation_of_the_AFE_Media_Engine">3.0 Compilation of the AFE  
    337 Media Engine</a></h2> 
    338  
    339  
    340 <p>This section steps  through in the process of compilation, to  
    341 address issues covered in the relevant sections for each operating system when  
    342 compiled using current system environments. It is <i>impossible</i> to cover all  
    343 the possible scenarios of errors resulting in the compilation process, but  
    344 rather serves as a general overview of the process to get you started in the VLC  
    345 open source environment. The most likely issue you will encounter while  
    346 compiling is the issue of ensuring the correct dependencies are setup correctly,  
    347 to the compilation flags used in the makefile. In such circumstances, the first  
    348 point of reference is to look at the <i>Further Information</i> section below. If the entire compilation process is successful, the Mozilla plug-in will be located in the  
    349   <font face="Courier New">/src</font> directory under the following file  
    350 types/linked libraries:</p> 
    351  
    352  
    353 <ul> 
    354   <li><b>Cygwin:</b> <font face="Courier New">libvlc.dll</font> (Dynamic Linked  
    355   Library - *.dll)</li> 
    356   <li><b>MacOS:</b> <font face="Courier New">VLC Plugin.plugin</font> (System  
    357   folder containing VLC Plugin binary and dynamic libraries - *.dylib)</li> 
    358   <li><b>Linux: </b><font face="Courier New">libvlc.so</font> (Dynamic Shared  
    359   Object - *.so)</li> 
    360 </ul> 
    361  
    362 <p> 
    363 <b>Development Advice: </b>The subversion <font face="Courier New">patch</font> script was developed for VLC version  
    364 0.8.2. Any other versions of VLC may run into version conflicts in the patch  
    365 process. These issues will be resolved in the upcoming development of the VLC  
    366 Media Engine plug-in for version 0.8.5. The development was made on the  
    367 following operating environments:</p> 
    368  
    369  
    370 <ul> 
    371   <li><b>Cygwin:</b> Windows XP SP2 on Cywin version 1.5.19-4</li> 
    372   <li><b>MacOS:</b> version 10.4 (Codename Tiger)</li> 
    373   <li><b>Linux: </b>Ubuntu version 0.6 (Codename Dapper)</li> 
    374 </ul> 
    375 <p><b>Further Information: </b>For VLC Plug-in development, the following  
    376 websites are recommended:</p> 
    377 <ul> 
    378   <li> <a href="http://www.firstmiletv.nl/vlc/developers/howto.txt">VLC Developer's Guide</a>:  
    379   A general reference guide for development in the VLC Player.</li> 
    380   <li> 
    381   <a href="http://developers.videolan.org/vlc/vlc/doc/developer/html/manual.html"> 
    382   VLC API Documentation</a>: A background behind the VLC components and their  
    383   functional dependencies.</li> 
    384   <li> 
    385   <a href="http://developers.videolan.org/vlc/mozilla-plugin-compile.html">VLC  
    386   Plug-in Compile Guide</a>: General compiler guide to Mozilla Plug-in for Cywin  
    387   and Linux environments.</li> 
    388   <li> 
    389   <a href="http://www.via.ecp.fr/via/ml/vlc-devel/2004-04/msg00019.html">VLC  
    390   Compilation Tips</a>: To compile MediaEngine plug-in using Mozilla's console  
    391   function to print diagnostics and debug messages.</li> 
    392   <li> 
    393   <a href="http://forum.videolan.org/">VLC Development Forum</a>: Forum  
    394   discussion and support for VLC media player.</li> 
    395 </ul> 
    396  
    397  
    398 <h3><a name="3.1_Building_the_AFE_Media_Engine_in_Cygwin">3.1 Building the AFE  
    399 Media Engine in Cygwin</a></h3> 
    400  
     328 
     329<p>There are a few extra complications trying to compile the VLC 
     330Mozilla plug-in on Linux:</p> 
     331 
     332<ol> 
     333<li>As mentioned above, ensure that you only have static libraries 
     334of lib (ogg, theora, vorbis, speex) available, otherwise the 
     335end-user will require them to be installed. For package 
     336maintainers, it is fine to simply link against your distribution's 
     337packages rather than statically compiling them in.<br> 
     338&#160;</li> 
     339 
     340<li>You may need to adjust the <font face= 
     341"Courier New">mozilla-config</font> script so that the Mozilla 
     342plug-in doesn't unnecessarily link against lib (plds4, plc4, nspr4, 
     343xpcom). These are Mozilla libraries that the VLC Mozilla plug-in 
     344doesn't need to link to at all, and causes problems because almost 
     345all end-users won't have those libraries installed in the locations 
     346you have them installed in.<br> 
     347<br> 
     348 <b>For example:</b> on Debian GNU/Linux, Mozilla Firefox uses 
     349libplds4.so that is located at <font face= 
     350"Courier New">/usr/lib/mozilla-firefox/</font>, but the mozilla-dev 
     351package installs a separate libplds4.so to <font face= 
     352"Courier New">/usr/lib/</font>. When the VLC Mozilla plug-in is 
     353compiled, it will link against the library found at <font face= 
     354"Courier New">/usr/lib/</font>. This means that end-users who don't 
     355have themozilla-dev package installed (this is not a default 
     356package on most systems) will not be able to load the plug-in on 
     357their system properly, due to the dynamic linker throwing an error. 
     358Package maintainers can choose of two options here:  
     359<ul> 
     360<li>The better one option is to probably somehow patch the 
     361vlc-config or mozilla-config scripts so that "vlc-config --libs 
     362mozilla" doesn't produce the -l flags to link against those 
     363libraries.</li> 
     364 
     365<li>Otherwise, you can simply depend on whatever Mozilla 
     366development package is in your distribution (mozilla-dev) to ensure 
     367that those libraries are installed.<br> 
     368&#160;</li> 
     369</ul> 
     370</li> 
     371 
     372<li>Be aware that if you are building an XPI intended to work 
     373across different distributions, you will want to statically link in 
     374libstdc++ (the C++ runtime library) into the Mozilla plug-in, since 
     375different distributions use different major versions of libstdc++. 
     376Package maintainers don't have to worry about this problem, since 
     377they can link against the standard libstdc++ required by their 
     378distribution.<br> 
     379<br> 
     380 <b>For example:</b> Ubuntu 4.10 (Warty) uses libstdc++5, Fedora 
     381Core 3 uses libstdc++6, while Ubuntu 5.04 (Hoary) uses libstdc++5 
     382and libstdc++6. This is taken care of in the Annodex patches to 
     383VLC; if you look at the <font face= 
     384"Courier New">VLC_Annodex.diff</font> file, you'll notice that 
     385mozilla/Makefile.am has been modified to force libstdc++ to be 
     386linked in statically. While this is safe to do, the method in the 
     387diff file is the best known way of doing it from current 
     388development efforts. Attempts to do this command "<font face= 
     389"Courier New">-Wl,-Bstatic -lstdc++ -Wl,-Bdynamic</font>" does not 
     390work at the moment. Any experts in this field who could give advice 
     391to these issues are welcome to contact the Annodex Development 
     392Team.<br> 
     393<br> 
     394 <b>Pending Issues:</b> There is the problem of multiple video and 
     395audio output drivers for Linux. By default, the Mozilla plug-in 
     396will use only OSS for audio output and will try Xvideo then X11 (in 
     397that order) for video output. If you wish to support other types of 
     398audio or video plug-ins (such as jack, esd), you will need to 
     399modify some <font face="Courier New">#defined</font> constants near 
     400the start of <font face="Courier New">mozilla/vlcshell.cpp</font> 
     401file, which is beyond the scope of current developments.</li> 
     402</ol> 
     403 
     404<h2><a name="3.0_Compilation_of_the_AFE_Media_Engine">3.0 
     405Compilation of the AFE Media Engine</a></h2> 
     406 
     407<p>This section steps through in the process of compilation, to 
     408address issues covered in the relevant sections for each operating 
     409system when compiled using current system environments. It is 
     410<i>impossible</i> to cover all the possible scenarios of errors 
     411resulting in the compilation process, but rather serves as a 
     412general overview of the process to get you started in the VLC open 
     413source environment. The most likely issue you will encounter while 
     414compiling is the issue of ensuring the correct dependencies are 
     415setup correctly, to the compilation flags used in the makefile. In 
     416such circumstances, the first point of reference is to look at the 
     417<i>Further Information</i> section below. If the entire compilation 
     418process is successful, the Mozilla plug-in will be located in the 
     419<font face="Courier New">/src</font> directory under the following 
     420file types/linked libraries:</p> 
     421 
     422<ul> 
     423<li><b>Cygwin:</b> <font face="Courier New">libvlc.dll</font> 
     424(Dynamic Linked Library - *.dll)</li> 
     425 
     426<li><b>MacOS:</b> <font face="Courier New">VLC Plugin.plugin</font> 
     427(System folder containing VLC Plugin binary and dynamic libraries - 
     428*.dylib)</li> 
     429 
     430<li><b>Linux:</b> <font face="Courier New">libvlc.so</font> 
     431(Dynamic Shared Object - *.so)</li> 
     432</ul> 
     433 
     434<p><b>Development Advice:</b> The subversion <font face= 
     435"Courier New">patch</font> script was developed for VLC version 
     4360.8.2. Any other versions of VLC may run into version conflicts in 
     437the patch process. These issues will be resolved in the upcoming 
     438development of the VLC Media Engine plug-in for version 0.8.5. The 
     439development was made on the following operating environments:</p> 
     440 
     441<ul> 
     442<li><b>Cygwin:</b> Windows XP SP2 on Cywin version 1.5.19-4</li> 
     443 
     444<li><b>MacOS:</b> version 10.4 (Codename Tiger)</li> 
     445 
     446<li><b>Linux:</b> Ubuntu version 0.6 (Codename Dapper)</li> 
     447</ul> 
     448 
     449<p><b>Further Information:</b> For VLC Plug-in development, the 
     450following websites are recommended:</p> 
     451 
     452<ul> 
     453<li><a href= 
     454"http://www.firstmiletv.nl/vlc/developers/howto.txt">VLC 
     455Developer's Guide</a>: A general reference guide for development in 
     456the VLC Player.</li> 
     457 
     458<li><a href= 
     459"http://developers.videolan.org/vlc/vlc/doc/developer/html/manual.html"> 
     460VLC API Documentation</a>: A background behind the VLC components 
     461and their functional dependencies.</li> 
     462 
     463<li><a href= 
     464"http://developers.videolan.org/vlc/mozilla-plugin-compile.html">VLC 
     465Plug-in Compile Guide</a>: General compiler guide to Mozilla 
     466Plug-in for Cywin and Linux environments.</li> 
     467 
     468<li><a href= 
     469"http://www.via.ecp.fr/via/ml/vlc-devel/2004-04/msg00019.html">VLC 
     470Compilation Tips</a>: To compile MediaEngine plug-in using 
     471Mozilla's console function to print diagnostics and debug 
     472messages.</li> 
     473 
     474<li><a href="http://forum.videolan.org/">VLC Development Forum</a>: 
     475Forum discussion and support for VLC media player.</li> 
     476</ul> 
     477 
     478<h3><a name="3.1_Building_the_AFE_Media_Engine_in_Cygwin">3.1 
     479Building the AFE Media Engine in Cygwin</a></h3> 
    401480 
    402481<h4>3.1.1 Cygwin Configuration Changes for VLC Version 0.8.2:</h4> 
    403482 
    404  
    405 <ol> 
    406   <li>Ensure the following categories are all selected when using Cygwin for  
    407   basic system dependencies to be fulfilled:<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="table1" height="71"> 
    408     <tr> 
    409       <td width="50%" height="71"> 
    410       <ul> 
    411         <li>Admin</li> 
    412         <li>Archive</li> 
    413         <li>Base</li> 
    414         <li>Devel</li> 
    415       </ul> 
    416       </td> 
    417       <td width="50%" height="71"> 
    418       <ul> 
    419         <li>Libs</li> 
    420         <li>Mingw</li> 
    421         <li>System</li> 
    422         <li>Utils.</li> 
    423       </ul> 
    424       </td> 
    425     </tr> 
    426   </table> 
    427   </li> 
    428   <li>Setup the latest win32 pre-assembled libraries for VLC by extracting the  
    429   archive and copying it to the root <font face="Courier New">cygwin</font> directory. 
    430   <br>The <font face="Courier New">contrib</font> tarball archive can be found  
    431   in the following location: 
    432   <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> 
    433 &nbsp;</li> 
    434   <li>Checkout the 0.82 tag of the VLC source on Subversion at the following  
    435   location to a directory of your choice: 
    436   <a href="svn://svn.videolan.org/vlc/tags/0.8.2">svn://svn.videolan.org/vlc/tags/0.8.2</a><br> 
    437 &nbsp;</li> 
    438   <li>Using the VLC 0.82 patch located at 
    439   <font face="Courier New">/Docs/Patches/VLC-0.82.patch</font>, copy the diff  
    440   file to the VLC source you checked out and patch the source as follows:<br> 
    441   <font face="Courier New">patch -p0 &quot;$@&quot; &lt; VLC-0.82.patch</font><br> 
    442   &nbsp;</li> 
    443   <li>Modify the file <font face="Courier New">{Installation source of VLC}/Configure.cygwin</font>  
    444   as follows:<br> 
    445   <br> 
    446   The developer is required to changes these lines to make it the <i>absolute</i>  
    447   path of the location of the dependencies and Gecko SDK:<br> 
    448   Line 9: <font face="Courier New">export CPPFLAGS=&quot;-I/usr/win32/include  
    449   -I/usr/win32/include/ebml -I/cygdrive/C/Cygwin/usr/win32/gecko-sdk/include&quot;<br> 
    450   </font>Line 10: <font face="Courier New">&quot;-L/usr/win32/lib -L/cygdrive/C/Cygwin/usr/win32/gecko-sdk/lib&quot;</font><br> 
    451   Line 12: <font face="Courier New">XPIDL=/cygdrive/C/Cygwin/usr/win32/gecko-sdk/bin/xpidl.exe<br> 
    452   </font>Line 13: <font face="Courier New">XPIDL_INCL=&quot;-Ic:\Cygwin/usr/win32/gecko-sdk/idl&quot;<br> 
    453   </font>Line 73: <font face="Courier New">--enable-mozilla --with-mozilla-sdk-path=/cygdrive/C/Cygwin/usr/win32/gecko-sdk  
    454   \<br> 
    455 &nbsp;</font></li> 
    456   <li>Modify the file <font face="Courier New">{Installation source of VLC}/mozilla/Makefile.am</font>  
    457   as follows to make it the absolute path of <font face="Courier New"> 
    458   vlcintf.idl:<br> 
    459   </font>Line 10: <font face="Courier New">VLCIDL_FILE = &quot;c:\{Path of VLC  
    460   Source}/mozilla/vlcintf.idl&quot;<br> 
    461 &nbsp;</font></li> 
    462   <li>Copy the file <font face="Courier New">{Installation source of VLC}/nsISupportsUtils.h</font>  
    463   into the Contribution dependency directory <font face="Courier New">/usr/win32/gecko-sdk/include/<br> 
    464 &nbsp;</font></li> 
    465   <li>In the directory where you have checked out the source, run  
    466   the following script <font face="Courier New">./Build</font></li></ol> 
     483<ol> 
     484<li>Ensure the following categories are all selected when using 
     485Cygwin for basic system dependencies to be fulfilled:  
     486<table summary="table" border="0" cellpadding="0" cellspacing="0" 
     487width="100%"> 
     488<tr> 
     489<td width="50%" height="71"> 
     490<ul> 
     491<li>Admin</li> 
     492 
     493<li>Archive</li> 
     494 
     495<li>Base</li> 
     496 
     497<li>Devel</li> 
     498</ul> 
     499</td> 
     500<td width="50%" height="71"> 
     501<ul> 
     502<li>Libs</li> 
     503 
     504<li>Mingw</li> 
     505 
     506<li>System</li> 
     507 
     508<li>Utils.</li> 
     509</ul> 
     510</td> 
     511</tr> 
     512</table> 
     513</li> 
     514 
     515<li>Setup the latest win32 pre-assembled libraries for VLC by 
     516extracting the archive and copying it to the root <font face= 
     517"Courier New">cygwin</font> directory.<br> 
     518The <font face="Courier New">contrib</font> tarball archive can be 
     519found in the following location: <a href= 
     520"http://download.videolan.org/pub/testing/win32/contrib-20060526-win32-bin-gcc-3.4.5-only.tar.bz2"> 
     521http://download.videolan.org/pub/testing/win32/</a><br> 
     522&#160;</li> 
     523 
     524<li>Checkout the 0.82 tag of the VLC source on Subversion at the 
     525following location to a directory of your choice: <a href= 
     526"svn://svn.videolan.org/vlc/tags/0.8.2">svn://svn.videolan.org/vlc/tags/0.8.2</a><br> 
     527 
     528 &#160;</li> 
     529 
     530<li>Using the VLC 0.82 patch located at <font face= 
     531"Courier New">/Docs/Patches/VLC-0.82.patch</font>, copy the diff 
     532file to the VLC source you checked out and patch the source as 
     533follows:<br> 
     534 <font face="Courier New">patch -p0 "$@" &lt; 
     535VLC-0.82.patch</font><br> 
     536 &#160;</li> 
     537 
     538<li>Modify the file <font face="Courier New">{Installation source 
     539of VLC}/Configure.cygwin</font> as follows:<br> 
     540<br> 
     541 The developer is required to changes these lines to make it the 
     542<i>absolute</i> path of the location of the dependencies and Gecko 
     543SDK:<br> 
     544 Line 9: <font face="Courier New">export 
     545CPPFLAGS="-I/usr/win32/include -I/usr/win32/include/ebml 
     546-I/cygdrive/C/Cygwin/usr/win32/gecko-sdk/include"<br> 
     547</font> Line 10: <font face="Courier New">"-L/usr/win32/lib 
     548-L/cygdrive/C/Cygwin/usr/win32/gecko-sdk/lib"</font><br> 
     549 Line 12: <font face= 
     550"Courier New">XPIDL=/cygdrive/C/Cygwin/usr/win32/gecko-sdk/bin/xpidl.exe<br> 
     551 
     552</font> Line 13: <font face= 
     553"Courier New">XPIDL_INCL="-Ic:\Cygwin/usr/win32/gecko-sdk/idl"<br> 
     554</font> Line 73: <font face="Courier New">--enable-mozilla 
     555--with-mozilla-sdk-path=/cygdrive/C/Cygwin/usr/win32/gecko-sdk 
     556\<br> 
     557&#160;</font></li> 
     558 
     559<li>Modify the file <font face="Courier New">{Installation source 
     560of VLC}/mozilla/Makefile.am</font> as follows to make it the 
     561absolute path of <font face="Courier New">vlcintf.idl:<br> 
     562</font> Line 10: <font face="Courier New">VLCIDL_FILE = "c:\{Path 
     563of VLC Source}/mozilla/vlcintf.idl"<br> 
     564&#160;</font></li> 
     565 
     566<li>Copy the file <font face="Courier New">{Installation source of 
     567VLC}/nsISupportsUtils.h</font> into the Contribution dependency 
     568directory <font face= 
     569"Courier New">/usr/win32/gecko-sdk/include/<br> 
     570&#160;</font></li> 
     571 
     572<li>In the directory where you have checked out the source, run the 
     573following script <font face="Courier New">./Build</font></li> 
     574</ol> 
     575 
    467576<h4>3.1.2 Cygwin Configuration Changes for VLC Version 0.8.5:</h4> 
    468 <ol> 
    469   <li>Setup the latest win32 pre-assembled libraries for VLC by extracting the  
    470   archive and copying it to the root <font face="Courier New">cygwin</font> directory. 
    471   <br>The <font face="Courier New">contrib</font> tarball archive can be found  
    472   in the following location: 
    473   <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> 
    474 &nbsp;</li> 
    475   <li>Checkout the 0.85 tag of the VLC source on Subversion at the following  
    476   location to a directory of your choice: 
    477   <a href="svn://svn.videolan.org/vlc/tags/0.8.5">svn://svn.videolan.org/vlc/tags/0.8.5</a><br> 
    478 &nbsp;</li> 
    479   <li>Using the VLC 0.85 patch located at 
    480   <font face="Courier New">/Docs/Patches/VLC-0.85.patch</font>, copy the diff  
    481   file to the VLC source you checked out and patch the source as follows:<br> 
    482   <font face="Courier New">patch -p0 &quot;$@&quot; &lt; VLC-0.85.patch<br> 
    483 &nbsp;</font></li> 
    484   <li>Make the following changes to the relevant files:<ul> 
    485     <li> <font face="Courier New">./Configure.cygwin</font>: The static values 
    486     <font face="Courier New">CPPFLAGS</font>, <font face="Courier New">LDFLAGS</font>, 
    487     <font face="Courier New">XPIDL</font>, <font face="Courier New">XPIDL_INCL</font>  
    488     and <font face="Courier New">--with-mozilla-sdk-path</font> need to be  
    489     modified to specify the absolute path of the contribution libraries and  
    490     Gecko-SDK.<br> 
    491     <i>Note:</i> The values used in the Makefile are the default paths of the  
    492     resources.</li> 
    493     <li> <font face="Courier New">./mozilla/Makefile.am</font>: The path of the  
    494     VLCIDL file needs to be modified for Cygwin users in the form: 
    495     <font face="Courier New">VLCIDL_FILE = &quot;c:\{Path of VLC  
    496     Source}/mozilla/vlcintf.idl&quot;<br> 
    497     </font><i>Note:</i> This is because the XPIDL application that generates the  
    498     XPT and header files accepts Windows file paths in the command line, but has  
    499     to be altered due to the way Cywin interprets such file paths.<br> 
    500 &nbsp;</li> 
    501   </ul> 
    502   </li> 
    503   <li>In the directory where you have checked out the source, run  
    504   the following script <font face="Courier New">./Build</font></li> 
    505 </ol> 
    506 <h3><a name="3.2_Building_the_AFE_Media_Engine_in_Mac_OS_X">3.2 Building the AFE  
    507 Media Engine in Mac OS X</a></h3> 
    508  
     577 
     578<ol> 
     579<li>Setup the latest win32 pre-assembled libraries for VLC by 
     580extracting the archive and copying it to the root <font face= 
     581"Courier New">cygwin</font>