| 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 "<font face="Courier New">WinSetup.bat</font>" 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> 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 "<font face="Courier New">\MediaEngines\VLC\bin-win32\</font>" |
|---|
| 134 | | to your browser's plug-in default directory:<br> |
|---|
| 135 | | <br> |
|---|
| 136 | | <b>For Mozilla Firefox: </b>"<font face="Courier New">C:\Program Files\Mozilla |
|---|
| 137 | | Firefox\plugins\</font>".<br> |
|---|
| 138 | | <b>For Mozilla Internet Suite: </b>"<font face="Courier New">C:\Program Files\mozilla.org\Mozilla\plugins\</font>".<br> |
|---|
| 139 | | </li> |
|---|
| 140 | | <li><b>Mac OS X:</b> Copy the directory "<font face="Courier New">MediaEngines\VLC\bin-macosx\AnnodexViewer |
|---|
| 141 | | VLC Media Engine.plugin</font>" to your browser's default plug-in directory.<br> |
|---|
| 142 | | </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: |
|---|
| 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 | | </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 "media engine" 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 | | </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 | | <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 | | </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 |
|---|
| | 86 | Directory Structure</a></td> |
|---|
| | 87 | </tr> |
|---|
| | 88 | </table> |
|---|
| | 89 | |
|---|
| | 90 | <h2><a name="1.0_Installation_of_the_Annodex_Firefox_Extension">1.0 |
|---|
| | 91 | Installation of the Annodex Firefox Extension</a></h2> |
|---|
| | 92 | |
|---|
| | 93 | <p><b>Note:</b> These installation steps are intended for |
|---|
| | 94 | developers; end-users will be supplied with a Mozilla .xpi package |
|---|
| | 95 | that they can simply download and double-click on to install. For |
|---|
| | 96 | Windows users, a batch file for Firefox Browser users called "<font |
|---|
| | 97 | face="Courier New">WinSetup.bat</font>" semi-automates the |
|---|
| | 98 | installation process, with minor configuration changes required as |
|---|
| | 99 | prompted at the end of the installation. The three main points of |
|---|
| | 100 | installation are as follows:</p> |
|---|
| | 101 | |
|---|
| | 102 | <ol> |
|---|
| | 103 | <li><b>Installing the Mozilla AFE Chrome:</b>  Please refer to |
|---|
| | 104 | XUL 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 |
|---|
| | 108 | Firefox Chrome directory.</li> |
|---|
| | 109 | |
|---|
| | 110 | <li>Creating or modifying an <font face= |
|---|
| | 111 | "Courier New">installed-chrome.txt</font> file to initialise the |
|---|
| | 112 | AFE Chrome with Mozilla Firefox, and deleting the existing <font |
|---|
| | 113 | face="Courier New">chrome.rdf</font> file.</li> |
|---|
| | 114 | </ol> |
|---|
| | 115 | </li> |
|---|
| | 116 | |
|---|
| | 117 | <li><b>Installing the ANXLoader Mozilla Component:</b> Please refer |
|---|
| | 118 | to 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 |
|---|
| | 122 | Firefox Components directory.</li> |
|---|
| | 123 | |
|---|
| | 124 | <li>Deleting the <font face="Courier New">compreg.dat</font> |
|---|
| | 125 | auto-configuration file to be regenerated upon startup of Mozilla |
|---|
| | 126 | Firefox 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 |
|---|
| | 133 | Firefox plugins directory.</li> |
|---|
| | 134 | </ol> |
|---|
| | 135 | </li> |
|---|
| | 136 | </ol> |
|---|
| | 137 | |
|---|
| | 138 | <h3><a name="1.1_Installing_the_Media_Engine_Component">1.1 |
|---|
| | 139 | Installing 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 |
|---|
| | 145 | browser's plug-in default directory:<br> |
|---|
| | 146 | <br> |
|---|
| | 147 | <b>For Mozilla Firefox:</b> "<font face="Courier New">C:\Program |
|---|
| | 148 | Files\Mozilla Firefox\plugins\</font>".<br> |
|---|
| | 149 | <b>For Mozilla Internet Suite:</b> "<font face= |
|---|
| | 150 | "Courier New">C:\Program |
|---|
| | 151 | Files\mozilla.org\Mozilla\plugins\</font>".<br> |
|---|
| | 152 |  </li> |
|---|
| | 153 | |
|---|
| | 154 | <li><b>Mac OS X:</b> Copy the directory "<font face= |
|---|
| | 155 | "Courier New">MediaEngines\VLC\bin-macosx\AnnodexViewer VLC Media |
|---|
| | 156 | Engine.plugin</font>" to your browser's default plug-in |
|---|
| | 157 | directory.<br> |
|---|
| | 158 |  </li> |
|---|
| | 159 | |
|---|
| | 160 | <li><b>Linux:</b> Identify if Linux is running on a x86 compatible |
|---|
| | 161 | or PowerPC processor. Then copy the respective file to your |
|---|
| | 162 | browser'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 |
|---|
| | 171 | Introduction to the AFE Media Engine</a></h2> |
|---|
| | 172 | |
|---|
| | 173 | <p>The chrome and media engine are packaged as separate .XPIs. |
|---|
| | 174 | While the chrome is the same on all platforms, a different video |
|---|
| | 175 | plug-in is required for each operating system and CPU architecture. |
|---|
| | 176 | The two main components to AFE are as follows:</p> |
|---|
| | 177 | |
|---|
| | 178 | <ol> |
|---|
| | 179 | <li><b>The Chrome: </b> Refer to the XUL Core documentation |
|---|
| | 180 | for 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 |
|---|
| | 183 | video browsing user interface. This shows the basic clip list, |
|---|
| | 184 | transport controls and media display. The chrome is |
|---|
| | 185 | platform-independent, and it registers itself with Mozilla as the |
|---|
| | 186 | handler for application/x-annodex, and it embeds the video plug-in. |
|---|
| | 187 | The AFE Chrome also handles the parsing of CMML metadata and clip |
|---|
| | 188 | information implementing JavaScript's XML to RDF parser |
|---|
| | 189 | functions.<br> |
|---|
| | 190 |  </li> |
|---|
| | 191 | |
|---|
| | 192 | <li><b>Media Engine</b><br> |
|---|
| | 193 | The media engine is a Mozilla plug-in used to do the playback and |
|---|
| | 194 | rendering of the audio or video. Currently, we use the VLC Mozilla |
|---|
| | 195 | plug-in as the media engine on all platforms, though this may |
|---|
| | 196 | change in the future. The video plug-in is native code specific for |
|---|
| | 197 | each of the supported platforms on Windows, Linux (x86 and PowerPC) |
|---|
| | 198 | and MacOS. Each media engine registers with Mozilla as an |
|---|
| | 199 | application/x-annodex-player plug-in; e.g. the VLC media engine is |
|---|
| | 200 | registered 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 |
|---|
| | 204 | Building Concepts of the AFE Media Engine</a></h3> |
|---|
| | 205 | |
|---|
| | 206 | <p>A "media engine" is a Mozilla plug-in which is responsible for |
|---|
| | 207 | the actual playback of the video or audio file. Currently, VLC is |
|---|
| | 208 | used on all three supported platforms (Windows, Linux, Mac OS X) as |
|---|
| | 209 | the media engine. You will need to compile a customised VLC Mozilla |
|---|
| | 210 | plug-in to get the Firefox extension to work correctly. Without a |
|---|
| | 211 | media engine, you can download and view the CMML content in the |
|---|
| | 212 | Table of Contents list for the video (as this is handled by the |
|---|
| | 213 | chrome XPI), but can't actually watch the video. To start building |
|---|
| | 214 | the 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 |
|---|
| | 219 | be checked out thanks to Subversion's svn:externals feature.<br> |
|---|
| | 220 |  </li> |
|---|
| | 221 | |
|---|
| | 222 | <li>The Gecko (Mozilla) SDK, which includes some header files and |
|---|
| | 223 | utility programs required for the building the VLC Mozilla plug-in. |
|---|
| | 224 | The Gecko SDK is common to all the media engines, which contain |
|---|
| | 225 | Mozilla header files and tools that the plug-ins will require to |
|---|
| | 226 | compile correctly:<br> |
|---|
| | 227 |   |
|---|
| | 228 | <ul> |
|---|
| | 229 | <li>For Linux systems, you are expected to supply the Gecko SDK via |
|---|
| | 230 | installing the Mozilla development package from your Linux |
|---|
| | 231 | distribution (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 |
|---|
| | 235 | each of the media engines will expect a gecko-sdk-$SYSTEM/ |
|---|
| | 236 | directory to be present in this directory (where $SYSTEM is either |
|---|
| | 237 | Win32, Linux or MacOS X). While you can supply your own Gecko SDK, |
|---|
| | 238 | it is easier to use ours instead. (The Gecko SDK is not checked out |
|---|
| | 239 | for Windows or Mac OS X by default, and only users of those |
|---|
| | 240 | particular platforms will need to use it.)<br> |
|---|
| | 241 |  </li> |
|---|
| | 242 | </ul> |
|---|
| | 243 | </li> |
|---|
| | 244 | |
|---|
| | 245 | <li>The libogg, libvorbis, libtheora and libspeex libraries |
|---|
| | 246 | installed in a location that VLC's <font face= |
|---|
| | 247 | "Courier New">./configure</font> script will pick them up. If you |
|---|
| | 248 | are building a one-click XPI installation package, you should |
|---|
| | 249 | ensure that these libraries are build statically only, and not |
|---|
| | 250 | shared (i.e. configure them with <font face= |
|---|
| | 251 | "Courier New">--enable-static --disable-shared</font>). If you have |
|---|
| | 252 | all three requirements, the build process should be fairly simple |
|---|
| | 253 | by 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 |
|---|
| 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> </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 |
|---|
| | 265 | a bit of a pain (especially for Mac OS X, since no binary |
|---|
| | 266 | distribution of the Gecko SDK is available for that platform from |
|---|
| | 267 | mozilla.org). To make life a bit easier, we provide prebuilt Gecko |
|---|
| | 268 | SDK 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 |
|---|
| | 274 | prebuilt Win32 binaries, SubVersion checkout the following path |
|---|
| | 275 | below to <font face="Courier New">gecko-sdk-win32/</font>. For |
|---|
| | 276 | convenience, you can also use the <font face= |
|---|
| | 277 | "Courier New">checkout-gecko-sdk-win32.bat</font> batch to do this |
|---|
| | 278 | if you have the command-line Subversion MSI (not TortoiseSVN |
|---|
| | 279 | Explorer Shell) installed.<br> |
|---|
| | 280 | <a href= |
|---|
| | 281 | "http://svn.annodex.net/AnnodexFirefoxExtension/trunk/MediaEngines/GeckoSDK/gecko-sdk-win32/"> |
|---|
| | 282 | http://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 |
|---|
| | 286 | Engine plug-in for Windows. Refer to the document below to setup |
|---|
| | 287 | required library dependencies if they cannot be found whilst |
|---|
| | 288 | building 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 |  </li> |
|---|
| | 292 | |
|---|
| | 293 | <li><b>For Mac OS X:</b><br> |
|---|
| | 294 | Use the following Subversion URL instead and check it out to <font |
|---|
| | 295 | face="Courier New">../gecko-sdk-macosx/</font>. For convenience, |
|---|
| | 296 | you can use the checkout-gecko-sdk-macosx.sh shell script to do |
|---|
| | 297 | this:<br> |
|---|
| | 298 | <a href= |
|---|
| | 299 | "http://svn.annodex.net/AnnodexFirefoxExtension/trunk/MediaEngines/GeckoSDK/gecko-sdk-macosx/"> |
|---|
| | 300 | http://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 |
|---|
| | 304 | patch and build the VLC media engine, depending on the host |
|---|
| | 305 | machine. The Installer/Make (For Linux, MacOS X and Windows |
|---|
| | 306 | platforms) <font face="Courier New">VLCPluginXPI.sh</font> scripts |
|---|
| | 307 | will take the files from <font face= |
|---|
| | 308 | "Courier New">/MediaEngine/VLC/bin-etc</font> and package them into |
|---|
| | 309 | an .XPI, which is placed into the Installer directory. After making |
|---|
| | 310 | the XPIs using the scripts in the Installer directory, run Firefox |
|---|
| | 311 | and open the <font face= |
|---|
| | 312 | "Courier New">/Installer/installtest.html</font> file to test out |
|---|
| | 313 | whether the XPI's are detected correctly by Mozilla as Annodex |
|---|
| 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 | | </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 "vlc-config |
|---|
| 302 | | --libs mozilla" 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 | | </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 "<font face="Courier New">-Wl,-Bstatic -lstdc++ -Wl,-Bdynamic</font>" 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 |
|---|
| | 330 | Mozilla plug-in on Linux:</p> |
|---|
| | 331 | |
|---|
| | 332 | <ol> |
|---|
| | 333 | <li>As mentioned above, ensure that you only have static libraries |
|---|
| | 334 | of lib (ogg, theora, vorbis, speex) available, otherwise the |
|---|
| | 335 | end-user will require them to be installed. For package |
|---|
| | 336 | maintainers, it is fine to simply link against your distribution's |
|---|
| | 337 | packages rather than statically compiling them in.<br> |
|---|
| | 338 |  </li> |
|---|
| | 339 | |
|---|
| | 340 | <li>You may need to adjust the <font face= |
|---|
| | 341 | "Courier New">mozilla-config</font> script so that the Mozilla |
|---|
| | 342 | plug-in doesn't unnecessarily link against lib (plds4, plc4, nspr4, |
|---|
| | 343 | xpcom). These are Mozilla libraries that the VLC Mozilla plug-in |
|---|
| | 344 | doesn't need to link to at all, and causes problems because almost |
|---|
| | 345 | all end-users won't have those libraries installed in the locations |
|---|
| | 346 | you have them installed in.<br> |
|---|
| | 347 | <br> |
|---|
| | 348 | <b>For example:</b> on Debian GNU/Linux, Mozilla Firefox uses |
|---|
| | 349 | libplds4.so that is located at <font face= |
|---|
| | 350 | "Courier New">/usr/lib/mozilla-firefox/</font>, but the mozilla-dev |
|---|
| | 351 | package installs a separate libplds4.so to <font face= |
|---|
| | 352 | "Courier New">/usr/lib/</font>. When the VLC Mozilla plug-in is |
|---|
| | 353 | compiled, it will link against the library found at <font face= |
|---|
| | 354 | "Courier New">/usr/lib/</font>. This means that end-users who don't |
|---|
| | 355 | have themozilla-dev package installed (this is not a default |
|---|
| | 356 | package on most systems) will not be able to load the plug-in on |
|---|
| | 357 | their system properly, due to the dynamic linker throwing an error. |
|---|
| | 358 | Package maintainers can choose of two options here: |
|---|
| | 359 | <ul> |
|---|
| | 360 | <li>The better one option is to probably somehow patch the |
|---|
| | 361 | vlc-config or mozilla-config scripts so that "vlc-config --libs |
|---|
| | 362 | mozilla" doesn't produce the -l flags to link against those |
|---|
| | 363 | libraries.</li> |
|---|
| | 364 | |
|---|
| | 365 | <li>Otherwise, you can simply depend on whatever Mozilla |
|---|
| | 366 | development package is in your distribution (mozilla-dev) to ensure |
|---|
| | 367 | that those libraries are installed.<br> |
|---|
| | 368 |  </li> |
|---|
| | 369 | </ul> |
|---|
| | 370 | </li> |
|---|
| | 371 | |
|---|
| | 372 | <li>Be aware that if you are building an XPI intended to work |
|---|
| | 373 | across different distributions, you will want to statically link in |
|---|
| | 374 | libstdc++ (the C++ runtime library) into the Mozilla plug-in, since |
|---|
| | 375 | different distributions use different major versions of libstdc++. |
|---|
| | 376 | Package maintainers don't have to worry about this problem, since |
|---|
| | 377 | they can link against the standard libstdc++ required by their |
|---|
| | 378 | distribution.<br> |
|---|
| | 379 | <br> |
|---|
| | 380 | <b>For example:</b> Ubuntu 4.10 (Warty) uses libstdc++5, Fedora |
|---|
| | 381 | Core 3 uses libstdc++6, while Ubuntu 5.04 (Hoary) uses libstdc++5 |
|---|
| | 382 | and libstdc++6. This is taken care of in the Annodex patches to |
|---|
| | 383 | VLC; if you look at the <font face= |
|---|
| | 384 | "Courier New">VLC_Annodex.diff</font> file, you'll notice that |
|---|
| | 385 | mozilla/Makefile.am has been modified to force libstdc++ to be |
|---|
| | 386 | linked in statically. While this is safe to do, the method in the |
|---|
| | 387 | diff file is the best known way of doing it from current |
|---|
| | 388 | development efforts. Attempts to do this command "<font face= |
|---|
| | 389 | "Courier New">-Wl,-Bstatic -lstdc++ -Wl,-Bdynamic</font>" does not |
|---|
| | 390 | work at the moment. Any experts in this field who could give advice |
|---|
| | 391 | to these issues are welcome to contact the Annodex Development |
|---|
| | 392 | Team.<br> |
|---|
| | 393 | <br> |
|---|
| | 394 | <b>Pending Issues:</b> There is the problem of multiple video and |
|---|
| | 395 | audio output drivers for Linux. By default, the Mozilla plug-in |
|---|
| | 396 | will use only OSS for audio output and will try Xvideo then X11 (in |
|---|
| | 397 | that order) for video output. If you wish to support other types of |
|---|
| | 398 | audio or video plug-ins (such as jack, esd), you will need to |
|---|
| | 399 | modify some <font face="Courier New">#defined</font> constants near |
|---|
| | 400 | the start of <font face="Courier New">mozilla/vlcshell.cpp</font> |
|---|
| | 401 | file, 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 |
|---|
| | 405 | Compilation of the AFE Media Engine</a></h2> |
|---|
| | 406 | |
|---|
| | 407 | <p>This section steps through in the process of compilation, to |
|---|
| | 408 | address issues covered in the relevant sections for each operating |
|---|
| | 409 | system when compiled using current system environments. It is |
|---|
| | 410 | <i>impossible</i> to cover all the possible scenarios of errors |
|---|
| | 411 | resulting in the compilation process, but rather serves as a |
|---|
| | 412 | general overview of the process to get you started in the VLC open |
|---|
| | 413 | source environment. The most likely issue you will encounter while |
|---|
| | 414 | compiling is the issue of ensuring the correct dependencies are |
|---|
| | 415 | setup correctly, to the compilation flags used in the makefile. In |
|---|
| | 416 | such circumstances, the first point of reference is to look at the |
|---|
| | 417 | <i>Further Information</i> section below. If the entire compilation |
|---|
| | 418 | process is successful, the Mozilla plug-in will be located in the |
|---|
| | 419 | <font face="Courier New">/src</font> directory under the following |
|---|
| | 420 | file 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 |
|---|
| | 436 | 0.8.2. Any other versions of VLC may run into version conflicts in |
|---|
| | 437 | the patch process. These issues will be resolved in the upcoming |
|---|
| | 438 | development of the VLC Media Engine plug-in for version 0.8.5. The |
|---|
| | 439 | development 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 |
|---|
| | 450 | following websites are recommended:</p> |
|---|
| | 451 | |
|---|
| | 452 | <ul> |
|---|
| | 453 | <li><a href= |
|---|
| | 454 | "http://www.firstmiletv.nl/vlc/developers/howto.txt">VLC |
|---|
| | 455 | Developer's Guide</a>: A general reference guide for development in |
|---|
| | 456 | the VLC Player.</li> |
|---|
| | 457 | |
|---|
| | 458 | <li><a href= |
|---|
| | 459 | "http://developers.videolan.org/vlc/vlc/doc/developer/html/manual.html"> |
|---|
| | 460 | VLC API Documentation</a>: A background behind the VLC components |
|---|
| | 461 | and their functional dependencies.</li> |
|---|
| | 462 | |
|---|
| | 463 | <li><a href= |
|---|
| | 464 | "http://developers.videolan.org/vlc/mozilla-plugin-compile.html">VLC |
|---|
| | 465 | Plug-in Compile Guide</a>: General compiler guide to Mozilla |
|---|
| | 466 | Plug-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 |
|---|
| | 470 | Compilation Tips</a>: To compile MediaEngine plug-in using |
|---|
| | 471 | Mozilla's console function to print diagnostics and debug |
|---|
| | 472 | messages.</li> |
|---|
| | 473 | |
|---|
| | 474 | <li><a href="http://forum.videolan.org/">VLC Development Forum</a>: |
|---|
| | 475 | Forum 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 |
|---|
| | 479 | Building the AFE Media Engine in Cygwin</a></h3> |
|---|
| 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 | | </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 | | </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 "$@" < VLC-0.82.patch</font><br> |
|---|
| 442 | | </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="-I/usr/win32/include |
|---|
| 449 | | -I/usr/win32/include/ebml -I/cygdrive/C/Cygwin/usr/win32/gecko-sdk/include"<br> |
|---|
| 450 | | </font>Line 10: <font face="Courier New">"-L/usr/win32/lib -L/cygdrive/C/Cygwin/usr/win32/gecko-sdk/lib"</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="-Ic:\Cygwin/usr/win32/gecko-sdk/idl"<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 | | </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 = "c:\{Path of VLC |
|---|
| 460 | | Source}/mozilla/vlcintf.idl"<br> |
|---|
| 461 | | </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 | | </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 |
|---|
| | 485 | Cygwin for basic system dependencies to be fulfilled: |
|---|
| | 486 | <table summary="table" border="0" cellpadding="0" cellspacing="0" |
|---|
| | 487 | width="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 |
|---|
| | 516 | extracting the archive and copying it to the root <font face= |
|---|
| | 517 | "Courier New">cygwin</font> directory.<br> |
|---|
| | 518 | The <font face="Courier New">contrib</font> tarball archive can be |
|---|
| | 519 | found 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"> |
|---|
| | 521 | http://download.videolan.org/pub/testing/win32/</a><br> |
|---|
| | 522 |  </li> |
|---|
| | 523 | |
|---|
| | 524 | <li>Checkout the 0.82 tag of the VLC source on Subversion at the |
|---|
| | 525 | following 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 |  </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 |
|---|
| | 532 | file to the VLC source you checked out and patch the source as |
|---|
| | 533 | follows:<br> |
|---|
| | 534 | <font face="Courier New">patch -p0 "$@" < |
|---|
| | 535 | VLC-0.82.patch</font><br> |
|---|
| | 536 |  </li> |
|---|
| | 537 | |
|---|
| | 538 | <li>Modify the file <font face="Courier New">{Installation source |
|---|
| | 539 | of 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 |
|---|
| | 543 | SDK:<br> |
|---|
| | 544 | Line 9: <font face="Courier New">export |
|---|
| | 545 | CPPFLAGS="-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 |  </font></li> |
|---|
| | 558 | |
|---|
| | 559 | <li>Modify the file <font face="Courier New">{Installation source |
|---|
| | 560 | of VLC}/mozilla/Makefile.am</font> as follows to make it the |
|---|
| | 561 | absolute path of <font face="Courier New">vlcintf.idl:<br> |
|---|
| | 562 | </font> Line 10: <font face="Courier New">VLCIDL_FILE = "c:\{Path |
|---|
| | 563 | of VLC Source}/mozilla/vlcintf.idl"<br> |
|---|
| | 564 |  </font></li> |
|---|
| | 565 | |
|---|
| | 566 | <li>Copy the file <font face="Courier New">{Installation source of |
|---|
| | 567 | VLC}/nsISupportsUtils.h</font> into the Contribution dependency |
|---|
| | 568 | directory <font face= |
|---|
| | 569 | "Courier New">/usr/win32/gecko-sdk/include/<br> |
|---|
| | 570 |  </font></li> |
|---|
| | 571 | |
|---|
| | 572 | <li>In the directory where you have checked out the source, run the |
|---|
| | 573 | following script <font face="Courier New">./Build</font></li> |
|---|
| | 574 | </ol> |
|---|
| | 575 | |
|---|