https://wiki.xiph.org/api.php?action=feedcontributions&user=Laser13&feedformat=atomXiphWiki - User contributions [en]2024-03-28T22:13:58ZUser contributionsMediaWiki 1.40.1https://wiki.xiph.org/index.php?title=OggPlayJavascriptAPI&diff=8129OggPlayJavascriptAPI2008-01-25T06:56:16Z<p>Laser13: /* Individual movies */</p>
<hr />
<div>== Introduction ==<br />
<br />
This is a '''draft API''' for the OggPlay Firefox plugin.<br />
<br />
We want the OggPlay plugin to support both a simple individual movie mode, and a more fully-featured playlist mode. All of the functions supported in individual movie mode are still useful in playlist mode; however additional functions also become useful.<br />
<br />
Note that the amount of available information for an internet-cast Ogg stream depends upon the type of server providing that stream. In particular, an Apache server with [http://www.annodex.net/software/mod_annodex/index.html mod_annodex] installed provides the following information that is not available for live-streamed or raw file-streamed movies:<br />
* length of the movie<br />
* [[CMML]] annotations for the entire movie in advance<br />
<br />
Furthermore, mod_annodex provides remote seeking functionality across the entire movie. Hence, OggPlay allows arbitrary seeking on mod_annodex supported movies. On the other hand, raw streams and live streams are only seekable within the region that has already been buffered by the player.<br />
<br />
== Individual movies ==<br />
<br />
=== OggPlayState ===<br />
<br />
enum OggPlayState { PAUSED = 0; PLAYING = 1; FINISHED = 2 };<br />
<br />
These are fairly self-evident: the plugin begins in PAUSED or PLAYING state depending on the settings provided through the params tags, and changes to FINISHED state when the movie finishes playback.<br />
<br />
=== getCurrentState ===<br />
<br />
To retrieve the state:<br />
<br />
int <- getCurrentState()<br />
<br />
=== pause ===<br />
<br />
pause()<br />
<br />
This function will convert the PLAYING or FINISHED states to PAUSED.<br />
<br />
=== play ===<br />
<br />
play()<br />
<br />
This function will convert the PAUSED state to PLAYING or FINISHED depending upon the current position within the movie.<br />
<br />
=== restart ===<br />
<br />
restart()<br />
<br />
This function will convert any state to PLAYING, and start the movie again from the beginning<br />
<br />
=== getCurrentMovie ===<br />
<br />
To retrieve the currently playing (or just played, or about to play) movie:<br />
<br />
string URL <- getCurrentMovie()<br />
<br />
=== setCurrentMovie ===<br />
<br />
To set a new movie:<br />
<br />
setCurrentMovie(string URL)<br />
<br />
This will automatically begin playing at the beginning if the state is PLAYING or FINISHED, but will remain paused ready to play at the beginning if the state is PAUSED.<br />
<br />
=== getPlayPosition ===<br />
<br />
To get the current play position (in milliseconds) from the movie:<br />
<br />
int milliseconds <- getPlayPosition()<br />
<br />
=== setPlayPosition ===<br />
<br />
To set the current play position (in milliseconds):<br />
<br />
boolean success <- setPlayPosition(int milliseconds)<br />
<br />
Note that if you set a position past the end of the movie then the result will be a play position at the end of the movie, and the player in FINISHED mode.<br />
<br />
Note also that certain servers (e.g. plain Ogg files, no mod-annodex installed, etc.) will prevent seeking from being able to occur past the buffered portion of the file; in this case, false will be returned and the play position will be updated as far forward as possible.<br />
<br />
=== registerCMMLCallback ===<br />
<br />
To have the plugin call a javascript method as each CMML annotation is encountered (i.e. as movie playback reaches the point where the annotation needs to be inserted):<br />
<br />
registerCMMLCallback(function callback(string))<br />
<br />
''See [[#Callback_functions|Callback functions]] for details on setting up a Javascript callback function.''<br />
<br />
Use null if you want to deregister the callback without setting a new one.<br />
<br />
=== retrieveAnnotations ===<br />
<br />
To retrieve all of the CMML annotations for a movie:<br />
<br />
boolean success <- retrieveAnnotations(function callback(string))<br />
<br />
''See [[#Callback_functions|Callback functions]] for details on setting up a Javascript callback function.''<br />
<br />
This is an asynchronous call; the plugin will create a new http connection to retrieve the annotations. The callback function will be invoked with the annotation string after the annotations have been retrieved.<br />
<br />
This function will return false if a previous attempt at retrieving annotations is still being processed.<br />
<br />
Note that this won't return all annotations from some servers, e.g. if mod-annodex is not installed. In this case, you will still be able to retrieve CMML as each annotation is encountered using registerCMMLCallback.<br />
<br />
=== registerEndPlayCallback ===<br />
<br />
To have the plugin call a javascript method when the movie finishes:<br />
<br />
registerEndPlayCallback(function callback(void))<br />
<br />
''See [[#Callback_functions|Callback functions]] for details on setting up a Javascript callback function.''<br />
<br />
Use null if you want to deregister the callback without setting a new one.<br />
<br />
=== registerOnMouseClickCallback ===<br />
<br />
To have the plugin call a javascript method when user click in plugin area:<br />
<br />
registerOnMouseClickCallback(function callback(void))<br />
<br />
''See [[#Callback_functions|Callback functions]] for details on setting up a Javascript callback function.''<br />
<br />
<br />
=== setVolume ===<br />
<br />
setVolume(float volume)<br />
<br />
Use this function to set the playback volume. A value of 0.0 is equivalent to muting; a value of 1.0 is maximum volume.<br />
<br />
=== getVolume ===<br />
<br />
float volume <- getVolume()<br />
<br />
Use this function to retrieve the current playback volume.<br />
<br />
=== getWindowWidth ===<br />
<br />
int width <- getWindowWidth()<br />
<br />
Use this function to retrieve the width of the window in pixels (The width is determined by the Firefox render model)<br />
<br />
=== getWindowHeight ===<br />
<br />
int height <- getWindowHeight()<br />
<br />
Use this function to retrieve the height of the window in pixels (The height is determined by the Firefox render model)<br />
<br />
=== getBufferedTime ===<br />
<br />
int milliseconds <- getBufferedTime()<br />
<br />
Use this function to determine how many milliseconds of the current movie are buffered for display. Note that this is the amount downloaded past the currently playing point, not just the amount decoded past the currently playing point.<br />
<br />
=== getMovieLength ===<br />
<br />
int milliseconds <- getMovieLength()<br />
<br />
Use this function to determine how long in milliseconds a movie is. Note that this value will not be available for some movies, depending on the server. If no value is available, then this function will return a length of -1.<br />
<br />
=== getVersionString ===<br />
<br />
To retrieve a human-readable version string:<br />
<br />
string version <- getVersionString()<br />
<br />
This string will be of the format:<br />
<br />
"liboggplay (a.b) Annodex Media Plugin (API x.y)"<br />
<br />
Where a.b is the liboggplay version, and x.y is the API version. Once accepted, this API will be version 1.0. Minor changes of the API can add functions but not modify existing functions.<br />
<br />
=== getPluginVersion ===<br />
<br />
To retrieve a version string for the plugin alone ("a.b"):<br />
<br />
string version <- getPluginVersion()<br />
<br />
=== getAPIVersion ===<br />
<br />
To retrieve a version string for the Javascript interface alone ("x.y"):<br />
<br />
string version <- getAPIVersion()<br />
<br />
== Playlists ==<br />
<br />
If you wish to use playlists instead of individual movies, then the above function calls still exist, with the following caveats:<br />
<br />
* <tt>getCurrentState</tt> will not return FINISHED until the last movie in the playlist has completed playback<br />
* <tt>getCurrentMovie</tt> retrieves the currently playing movie - i.e. the movie at the current playlist position<br />
* <tt>setCurrentMovie</tt> sets the currently playing movie (and playback will begin from the beginning of the newly set movie, not the beginning of the playlist)<br />
* <tt>retrieveAnnotations</tt> will retrieve the annotations for the current movie only<br />
* <tt>registerEndPlayCallback</tt> will call back at the end of the playlist (i.e. at the end of the last movie) only. Use <tt>registerPlaylistCallback</tt> to receive notifications per movie.<br />
* <tt>getMovieLength</tt> will retrieve the movie length for the current movie only. Use <tt>getMovieLengthAt</tt> to retrieve the length for movies in the playlist that are not currently playing.<br />
<br />
'''Note:''' The plugin does not actually recognise separate "single movie" and "playlist" modes - instead, single movies are actually just playlists with length 1. The interface has been arranged so that the functions above "just work" for what looks like a single movie mode, but are also useful when multiple movies are inserted into the playlist.<br />
<br />
The following additional functions are also available for manipulation of the playlist. These functions are also available when there is only one movie in the playlist, but don't provide much in the way of useful features.<br />
<br />
=== freezePlaylistProgression ===<br />
<br />
freezePlaylistProgression()<br />
<br />
This function does not stop the current movie from playing, but does prevent the plugin from progressing to the next movie in the playlist. Use this and unfreezePlayPosition for "atomic" operations on the playlist.<br />
<br />
=== unfreezePlaylistProgression ===<br />
<br />
unfreezePlaylistProgression()<br />
<br />
See documentation for freezePlaylistProgression.<br />
<br />
=== registerPlaylistCallback ===<br />
<br />
registerPlaylistCallback(function callback(void))<br />
<br />
''See [[#Callback_functions|Callback functions]] for details on setting up a Javascript callback function.''<br />
<br />
Use this function to register a javascript function that will get called by the plugin at the end of each movie in the playlist - i.e. when the playlist changes tracks. The last track does '''not''' trigger a call; the end play callback, if registered, will be invoked instead.<br />
<br />
=== getPlaylistLength ===<br />
<br />
To retrieve the length of the playlist:<br />
<br />
int length <- getPlaylistLength()<br />
<br />
=== getCurrentPlaylistPosition ===<br />
<br />
To retrieve the position in the playlist of the current movie:<br />
<br />
int position <- getCurrentPlaylistPosition()<br />
<br />
=== getMovieAt ===<br />
<br />
To get the url of the movie at the specified position (0 is the first position):<br />
<br />
string url <- getMovieAt(int position)<br />
<br />
This function will return null if the position points to a slot outside the bounds of the playlist.<br />
<br />
Remember that <tt>getCurrentMovie</tt> can be used to retrieve the movie at the current position.<br />
<br />
=== setMovieAt ===<br />
<br />
To set the url of the movie at the specified position (0 is the first position):<br />
<br />
boolean success <- setMovieAt(int position, string url)<br />
<br />
This function will return false if the position points to a slot outside the bounds of the playlist.<br />
<br />
Remember that <tt>setCurrentMovie</tt> can be used to change the currently playing movie.<br />
<br />
=== appendMovie ===<br />
<br />
To append a movie to the end of the playlist:<br />
<br />
appendMovie(string url)<br />
<br />
=== insertMovieBefore ===<br />
'''suggested alteration''' have it be insertMovieBefore(string url, [pos])<br />
so that the pos is optional and if missing just inserts before the current clip in the playlist <br />
<br />
To insert a movie before a specified position in the playlist:<br />
<br />
boolean success <- insertMovieBefore(int position, string url)<br />
<br />
This function will return false if the position points to a slot outside the bounds of the playlist.<br />
<br />
=== removeMovieAt ===<br />
<br />
To remove a movie from the playlist:<br />
<br />
boolean success <- removeMovieAt(int position)<br />
<br />
This function will return false if the position points to a slot outside the bounds of the playlist.<br />
<br />
=== playMovieAt ===<br />
<br />
To start playing a movie at a specified position in the playlist:<br />
<br />
boolean success <- playMovieAt(int position)<br />
<br />
This function will return false if the position points to a slot outside the bounds of the playlist.<br />
<br />
=== playlistNext ===<br />
<br />
To start playing the next movie in the playlist:<br />
<br />
boolean success <- playlistNext()<br />
<br />
This function will return false if the the current movie is the last one in the playlist.<br />
<br />
=== playlistPrev ===<br />
<br />
To start playing the previous movie in the playlist:<br />
<br />
boolean success <- playlistPrev()<br />
<br />
This function will return false if the the current movie is the first one in the playlist.<br />
<br />
=== retrieveAnnotationsAt ===<br />
<br />
To retrieve all of the CMML annotations for a movie at a specified position in the playlist:<br />
<br />
boolean success <- retrieveAnnotationsAt(int position, function callback(string))<br />
<br />
''See [[#Callback_functions|Callback functions]] for details on setting up a Javascript callback function.''<br />
<br />
As per retrieveAnnotations, this function is an asynchronous call and will not return any annotations if the server does not support out-of-band annotation retrieval.<br />
<br />
This function will return false if a previous attempt at retrieving annotations is still being processed, or if the position points to a slot outside the bounds of the playlist.<br />
<br />
=== getMovieLengthAt ===<br />
<br />
'''This is currently unimplemented.'''<br />
<br />
int milliseconds <- getMovieLengthAt(int position)<br />
<br />
This function retrieves the length of the movie at the specified position in the playlist. The function will return -1 if the movie length can not be determined.<br />
<br />
== Callback functions ==<br />
<br />
Since Javascript functions are not first-class objects, you can't pass one directly to the plugin as a callback. You need to wrap your callback in an anonymous object with a single member, 'call':<br />
<br />
// Use this form for callbacks with a string argument, shown as ''function callback(string)'':<br />
plugin.registerCMMLCallback(<br />
{<br />
call: function(s) { yourCMLLCallback(s); }<br />
}<br />
);<br />
<br />
// Use this form for callbacks with no arguments, shown as ''function callback(void)'':<br />
plugin.registerEndPlayCallback(<br />
{<br />
call: function() { yourEndPlayCallback(); }<br />
}<br />
);<br />
<br />
Technically, you can inline your callback handling code directly in the 'call' function, but it's much cleaner to just redirect to a stand-alone function for each callback, as shown above.<br />
<br />
Deregistering a callback is quite simple:<br />
<br />
plugin.registerPlaylistCallback(null);<br />
<br />
= Suggested modifications =<br />
==Individual Movies==<br />
== states ==<br />
add state LOADING and NULL or uninitialized state <br />
<br />
== play ==<br />
function play()<br />
if current state is NULL set state to LOADING else if already in loading state than a second call to play will force playback of what is available. <br />
<br />
when a user hits play internally we store a separate state that reports as LOADING but is really LOAD_TO_PLAY state which uses download rate control to predict when we should switch into playing mode. ie if the clip's duration is 60 seconds and after one second we have buffered 10 seconds of the clip we can safely immediately switch to play mode. In a different instance if after 10 seconds we have downloaded 5 seconds of the clip we should wait until we have buffered 40 seconds as it will take around 40 seconds to download the last 20 seconds of video. <br />
<br />
if the clip is a LIVE stream then it will begin playback after a few seconds have been buffered. Controllable by:<br />
setLiveBuffer(ms) sets the amount of the clip to buffer for a live stream.<br />
<br />
== load ==<br />
function load() //possible options include NOCACHE (to load from server even if its cached locally) <br />
a function to begin loading the current clip without playing it back. <br />
<br />
<br />
<br />
== getBufferedTime ==<br />
Its unclear if get Buffered time gives you the milliseconds buffered from the beaning of the clip, but thats what it should do. To enable the display of a progress bar for the full clip. Ie getBufferedTime / getDuration<br />
<br />
if playing back a live stream it could report amount buffered ahead of current playback point<br />
<br />
==playlist==<br />
<br />
=== loadMovieAt ===<br />
to start downloading/buffering a clip later in playlist<br />
<br />
=== getBufferedTimeAt === <br />
to get the amount Buffered for a clip in the playlist.<br />
<br />
==Applications Preferences ==<br />
How much disk space to use to store cached clips. Used for syncing and fast page reload on browser back. Also would be ideal if it looked for '''response headers''' that invalidate the cache. default 100megs or maybe use firefox preferences... It should uses last accessed first out cacheting. <br />
<br />
<br />
* another point of comparison: [http://mplayerplug-in.cvs.sourceforge.net/mplayerplug-in/mplayerplug-in/DOCS/tech/javascript.txt?view=markup] (e.g. getDuration)<br />
<br />
* suggestion: Include audio capture (and Speex encoding) in the API</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay/Win32&diff=8128OggPlay/Win322008-01-25T06:52:50Z<p>Laser13: /* Binaries of the OggPlay Mozilla plugin */</p>
<hr />
<div>== Overview ==<br />
<br />
This page was created to give developers a first hand assistance in starting development of Mozilla Firefox plugins on Windows. After the generic development environment<br />
setup we present the setup of OggPlay Firefox plugin for Vorbis/Theora OggPlay player plugin. If you have an experience in plugin development and want to test<br />
or contribute to the OggPlay plugin development you might want to skip to the next section and go directly to OggPlay player plugin. If you do not have your development plugin environment<br />
set up you should start with basic plugin environment configuration.<br />
<br />
== Setup of basic Mozilla plugin development environment ==<br />
<br />
The documentation on set up of development environment for Mozilla plugins development of Linux/UNIX, Win32 and MacOS is inconsistent and partially incomplete at least. In an attempt to fill in the blanks this section presents basic development environment setup for Win200x/XP.<br />
<br />
=== Basic Mozilla plugin setup for MS Windows Win200x/XP ===<br />
<br />
Although we tested those steps on Windows 2003 Server and Windows XP the configuration should work on the other Window platforms (such as Windows Vista). We also assume that you are using MS Visual Studio 2003 or 2005 altough you should be able to setup the environment using VS6 in a similar way. If you are using other environment/compiler you are on your own. <br />
<br />
Before starting setting up your plugin development environment you will need following tools and SDKs:<br />
<br />
* '''Mozilla Firefox''' (at least in version 1.7 provided you use appropriate Gecko SDK)<br />
<br />
* '''Mozilla Gecko SDK''' - there are two recent releases of Gecko SDK (1.7 for Firefox 1.0 and 1.8 for Firefox 1.5. and 2.0) available for download on [http://developer.mozilla.org/en/docs/Gecko_SDK Mozilla Developer Center]. Here are direct links to both versions of the SDK:<br />
** [http://releases.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7/gecko-sdk-i586-pc-msvc-1.7.zip Gecko SDK 1.7] , or<br />
** [http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/gecko-sdk-win32-msvc-1.8.0.4.zip Gecko SDK 1.8]<br />
<br />
* '''Mozilla WinTools''' - to use '''xpidl''' compiler you need also Mozilla WinTools: [http://ftp.mozilla.org/pub/mozilla.org/mozilla/source/wintools.zip Direct download]<br />
<br />
* '''Microsoft Platform SDK''' - to compile the plugins you will need to get also '''Platform SDK''' from [http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en Microsoft Download Center]<br />
<br />
* '''SVN client for Windows''' - there are many Windows clients for SVN, however one of the best is Tortoise SVN available from [http://tortoisesvn.tigris.org/ tigris.org]. While your are on it you might want to try [http://ankhsvn.tigris.org/ AnkhSVN] addin for Visual Studio.<br />
<br />
Once you unzipped '''Gecko SDK''' and installed '''MS Platform SDK''' you need to make sure your xpidl compiler is working properly. Unfortunately, the official release of '''Gecko SDK''' assumes you have following .dll on your system and in your '''PATH''' (provided you are using the newest version of '''WinTools'''):<br />
<br />
* glib-1.2.dll<br />
<br />
* libIDL-0.6.dll<br />
<br />
They are included in '''WinTools''' package under '''windows\bin\x86'''. In order for '''xpidl''' to run properly you need to have those .dll files in the same directory as xpidl.exe. Alternatively, if for some reason you do not want to copy those files across you can add the directory where those .dll are located to your system '''PATH''' variable. You can do that by navigating to ''Control Panel->System'' and then choosing ''Environment Variables'' in ''Advanced'' tab. There are also other options such as modifing Visual Studio environment by changing ''vcvarsall.bat'' script but it is outside of scope of this document.<br />
<br />
Once your xpidl you can try your environment and compile the official Mozilla samples. More details presented in the next section.<br />
<br />
=== Testing development environment with sample Mozilla plugin ===<br />
<br />
This is an optional step and unless you failed setting up environment for the OggPlay plugin or you want to build your own plugin you can probably skip this step. But if you want to understand the Mozilla plugin structure it is probably recommended to start with something simple.<br />
<br />
Once your xpidl is working properly you can try to compile the official Mozilla samples. You can download them [http://www.mozilla.org/projects/plugins/GeckoPluginSDK-samplesWin32.zip here]. The important thing about this archive is that we are interested only the ''Win32SDK\sdk\samples'' directory. In particular, attached gecko-sdk is not the most recent one. If you navigate to one of the samples and their ''windows'' directory you can open projects' .dsp file. If you are using newer version of Visual Studio than 6.0 it will be converted to the new format. Once you opened sample project you need probably update some of the configuration settings. In ''Project->Properties'' menu select ''C\C++->General'' and change Additional Include Directories to your Gecko SDK include directory ('''Note:''' this is preferably the new Gecko SDK in the archive gecko-sdk-i586-pc-msvc-1.7.zip or gecko-sdk-win32-msvc-1.8.0.4.zip and not the one attached to the samples archive). If you are using Gecko SDK 1.7 or Gecko SDK 1.8 you need to include samples '''include''' directory (i.e. ''..\..\include'') and only main Gecko SDK include (e.g. ''..\..\..\gecko-sdk\include'').<br />
<br />
You also need to point Visual Studio to the '''xpidl''' compiler. This is required to compile .idl file in the project. To change the default setting go to Visual Studio ''Solution Explorer'' and open ''Properties'' setting for the .idl file. Inspect file's ''Custom Build Step'' and adjust the directories in relation to the project file (.vcproj for VS200x or .dsp for VS6.0). In particular, you might need to change not only the path to the '''xpidl''' compiler but also to the ''idl'' directory of your Gecko SDK (e.g. ''..\..\..\..\gecko-sdk\xpcom\bin\xpidl -m header -I..\..\..\..\gecko-sdk\xpcom\idl $(InputPath)'' to ''..\..\..\gecko-sdk\bin\xpidl -m header -I..\..\..\gecko-sdk\idl $(InputPath)'')<br />
<br />
Now you should be able to compile the project. Resulting .dll and .xpt files should be copied to the Mozilla Firefox plugins directory (e.g. ''C:\Program Files\Mozilla Firefox\plugins"). Once you've done that you can restart Mozilla. In general it is a good idea to use following options to during the startup: '''-P development -console''' so you can see the plugin output/debug information.<br />
<br />
For help with setup of the environment and Visual Studio refere to a guide from [http://developer.mozilla.org/en/docs/Compiling_The_npruntime_Sample_Plugin_in_Visual_Studio Mozilla Developer Center].<br />
<br />
<br />
== Developing OggPlay plugin ==<br />
<br />
Once you have a working Mozilla plugin development environment you can start configuring the environment for OggPlay plugin.<br />
<br />
First of all, you need to install SVN client on your development machine. There are many Win32 SVN clients available but this document assumes that you have a client with the capabilities of Tortoise SVN.<br />
As mentioned previously at the moment Win32 developement environment for the OggPlay plugin is setup only for VS200x.<br />
<br />
To compile and start hacking on Win32 version of OggPlay plugin you need to check out [http://trac.annodex.net/browser/OggplayPluginWin32SDK/trunk OggplayPluginWin32SDK] from [http://svn.annodex.net svn.annodex.net].<br />
(you need to point your svn client to : http://svn.annodex.net/OggplayPluginWin32SDK/trunk). If you are using Tortoise SVN create a new directory in your favourite development location on your hard drive. Then navigate to the location where the new directory has been created. Use left mouse click on the directory where you want to check out the plugin code and development configuration and select '''SVN Checkout''' option in the context menu. In the repository URL provide http://svn.annodex.net/OggplayPluginWin32SDK/trunk and checkout the head revision of the plugin sources. Please note, that the checkout can take a while over slow links because the plugin requires a number of libraries such as:<br />
* libogg<br />
<br />
* libtheora<br />
<br />
* libvorbis<br />
<br />
* libspeex<br />
<br />
* libsndfile<br />
<br />
* libfishsound<br />
<br />
* liboggz<br />
<br />
and<br />
<br />
* liboggplay.<br />
<br />
When your checkout is completed navigate to ''sln/plugin_all_200x''' (e.g. plugin_all_2005 for Visual Studio 2005). You should be able to open the ''plugin_all.sln'' file.<br />
<br />
The development configutation by default assumes that you installed gecko-sdk (with working version of '''xpidl''' compiler) in a directory parallel to the directory where you checked out the plugin sources. In paritcular, the directory structure by default should be as follows:<br />
<br />
* .\gecko-sdk<br />
** .\gecko-sdk\bin\ ('''xpidl.exe''')<br />
* .\plugin_sources<br />
** .\plugin_sources\lib<br />
** .\plugin_sources\project_files<br />
** .\plugin_sources\sln <br />
*** .\plugin_sources\sln\plugin_all_200x ('''plugin_all.sln''')<br />
<br />
[of course the names of the Gecko SDK (''.\gecko-sdk'') above and directory storing plugin source files (''.\plugin_sources'') can be completely arbitral]<br />
<br />
If you have '''Gecko SDK''' in different location in relation to ''plugin_all.sln'' file you will need to go the ''Properties'' of liboggplugin project in Visual Studio and find ''nsILibOggPlugin.idl'' file in the sources of that project. Next you need to change the directory of the custom compilation step (i.e. left-click on ''nsILibOggPlugin.idl'' file, choose ''Properties'' expand ''Custom Build Step'' and in ''Command Line'' option change the relative path to the location of '''xpidl''' compiler as well as to Gecko SDK ''.\idl'' directory. You can test the setup by compiling just the ''nsILibOggPlugin.idl'' file. If the build is sucessfull you can start compiling the plugin. In particular, compiling the default '''liboggplay''' project should build all the project in the VS solution and build the plugin in the end. The plugin binaries as well as binaries of other libraries on which plugin depends can be found under ''.\plugin_sources\sln\plugin_all_200x\debug'' if your default build configuration was '''Debug'''. When the plugin is released the '''Release''' build will be compiled to .\plugin_sources\sln\plugin_all_200x\release.<br />
<br />
By default a post build step is copying the plugin files ('''npliboggplugin.dll''' and '''npliboggplugin.xpt''') to ''C:\Program Files\Mozilla Firefox\plugins'' (default Mozilla Firefox location). If you have Mozilla Firefox installed in a different location you need to change the path in '''liboggplay''' ''Post-Built Event'' configuration (left mouse click on '''liboggplugin''' project then ''Properties'' then expand '''Build Events''' and navigate to '''Post-Built Event''').<br />
<br />
== Binaries of the OggPlay Mozilla plugin ==<br />
<br />
For people not interested in developing the plugin but willing test it on their own machine are very much encouraged to download the the plugin from:<br />
<br />
[http://www.annodex.net/software/plugin/index.html Plugin Installator]<br><br />
<br />
The installer places the plugin binaries in default system Mozilla directory. This is usually ''C:\Program Files\Mozilla Firefox\plugins'' unless your Mozilla Firefox has been installed in different than default location. To test the plugin go to [http://media.annodex.net/cmmlwiki/Special:ListAllItems cmmlwiki]. If you see the video playing then you successfully installed the plugin. Enjoy!</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay/Linux&diff=6983OggPlay/Linux2007-06-18T09:03:59Z<p>Laser13: /* Linux OggPlay Mozilla Firefox plugin installation */</p>
<hr />
<div>==Linux OggPlay Mozilla Firefox plugin installation==<br />
<br />
1. It is assumed that you managed to check out current sources<br />
of the plugin from http://svn.annodex.net/liboggplay/trunk tree <br />
(e.g. ''svn co http:\\svn.annodex.net\liboggplay\trunk ./liboggplay'').<br />
The rest of the installation steps assume that you checked out<br />
the code to the ''./liboggplay'' directory. <br />
<br />
2. To compile liboggplay, in the main 'liboggplay' directory do:<br />
<br />
''./autogen.sh<br><br />
./configure<br><br />
make; make install''<br><br />
<br />
3. As a result of the checkout you should have a ''plugin'' directory under<br />
the ''liboggplay'' tree. After a sucessful build you should have the following<br />
files:<br />
<br />
''plugin/.libs/libnpoggplugin.so<br><br />
plugin/npliboggplugin.xpt''<br><br />
<br />
Copy those file to ''.mozilla/plugins'' in your local directory by executing <br />
'''copy-plugin.sh''' or directly copying them e.g.<br />
<br />
''cd plugin<br><br />
cp .libs/libnpoggplugin.so $HOME/.mozilla/plugins<br><br />
cp npliboggplugin.xpt $HOME/.mozilla/plugins''<br />
<br />
4. The 'plugin' directory also has a test html page you can use to test <br />
the plugin (see ''./plugin/test/test.html''). Alternatively, you can go to:<br />
[http://media.annodex.net/cmmlwiki/SFD2005-Trailer http://media.annodex.net/cmmlwiki/SFD2005-Trailer] to test the plugin.<br />
<br />
If you can see the video playing using either method the plugin is successfully <br />
installed. The plugin prerequisited as well as detailed instructions how to compile and install plugin on Linux can be found in the [http://trac.annodex.net/browser/liboggplay/trunk/README README] file located in root directory of ''./liboggplay'' library. Enjoy!</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay/Linux&diff=6982OggPlay/Linux2007-06-18T09:03:02Z<p>Laser13: /* Linux OggPlay Mozilla Firefox plugin installation */</p>
<hr />
<div>==Linux OggPlay Mozilla Firefox plugin installation==<br />
<br />
1. It is assumed that you managed to check out current sources<br />
of the plugin from http://svn.annodex.net/liboggplay/trunk tree <br />
(e.g. ''svn co http:\\svn.annodex.net\liboggplay\trunk ./liboggplay'').<br />
The rest of the installation steps assume that you checked out<br />
the code to the ''./liboggplay'' directory. <br />
<br />
2. To compile liboggplay, in the main 'liboggplay' directory do:<br />
<br />
''./autogen.sh<br><br />
./configure<br><br />
make; make install''<br><br />
<br />
3. As a result of the checkout you should have a ''plugin'' directory under<br />
the ''liboggplay'' tree. After a sucessful build you should have the following<br />
files:<br />
<br />
''plugin/.libs/libnpoggplugin.so<br><br />
plugin/npliboggplugin.xpt''<br><br />
<br />
Copy those file to ''.mozilla/plugins'' in your local directory by executing <br />
'''copy-plugin.sh''' or directly copying them e.g.<br />
<br />
''cd plugin<br><br />
cp .libs/libnpoggplugin.so $HOME/.mozilla/plugins<br><br />
cp npliboggplugin.xpt $HOME/.mozilla/plugins''<br />
<br />
4. The 'plugin' directory also has a test html page you can use to test <br />
the plugin (see ''./plugin/test/test.html''). Alternatively, you can go to:<br />
[http://media.annodex.net/cmmlwiki/SFD2005-Trailer http://media.annodex.net/cmmlwiki/SFD2005-Trailer] to test the plugin.<br />
<br />
If you can see the video playing using either method the plugin is successfully <br />
installed. The plugin prerequisited as well as detailed instructions how to compile and install plugin on Linux can be found in the '''README''' file located in root directory of ''./liboggplay'' library. Enjoy!</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay/Linux&diff=6981OggPlay/Linux2007-06-18T09:02:50Z<p>Laser13: /* Linux OggPlay Mozilla Firefox plugin installation */</p>
<hr />
<div>==Linux OggPlay Mozilla Firefox plugin installation==<br />
<br />
1. It is assumed that you managed to check out current sources<br />
of the plugin from http://svn.annodex.net/liboggplay/trunk tree <br />
(e.g. ''svn co http:\\svn.annodex.net\liboggplay\trunk ./liboggplay'').<br />
The rest of the installation steps assume that you checked out<br />
the code to the ''./liboggplay'' directory. <br />
<br />
2. To compile liboggplay, in the main 'liboggplay' directory do:<br />
<br />
''./autogen.sh<br><br />
./configure<br><br />
make; make install''<br><br />
<br />
3. As a result of the checkout you should have a ''plugin'' directory under<br />
the ''liboggplay'' tree. After a sucessful build you should have the following<br />
files:<br />
<br />
''plugin/.libs/libnpoggplugin.so<br><br />
plugin/npliboggplugin.xpt''<br><br />
<br />
Copy those file to ''.mozilla/plugins'' in your local directory by executing <br />
'''copy-plugin.sh''' or directly copying them e.g.<br />
<br />
''cd plugin<br><br />
cp .libs/libnpoggplugin.so $HOME/.mozilla/plugins<br><br />
cp npliboggplugin.xpt $HOME/.mozilla/plugins''<br />
<br />
4. The 'plugin' directory also has a test html page you can use to test <br />
the plugin (see ''./plugin/test/test.html''). Alternatively, you can go to:<br />
[http://media.annodex.net/cmmlwiki/SFD2005-Trailer http://media.annodex.net/cmmlwiki/SFD2005-Trailer] to test the plugin.<br />
<br />
If you can see the video playing using either method the plugin is successfully <br />
installed. The plugin prerequisited as well as detailed instructions how to compile and install plugin on Linux can be found in the README file located in root directory of ''./liboggplay'' library. Enjoy!</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay&diff=6980OggPlay2007-06-18T09:00:08Z<p>Laser13: /* Windows */</p>
<hr />
<div>== Overview ==<br />
OggPlay is a library designed to allow drop-in playback of Xiph.Org media in an application. OggPlay handles demuxing and decoding, generates timestamps for raw data, maintains synchronisation across multiple streams, and provides a lock-free buffer implementation for easy multithreading.<br />
<br />
An example use of OggPlay library is OggPlay Mozilla Firefox plugin demonstrating how the library can be used to provide Ogg playback in a web browser. OggPlay plugin is implemented through Mozilla NPAPI. The target platforms for the plugin are: Linux/UNIX, Win200x/XP/Vista and MACOSX. The libary as much as the plugin are open source under triple<br />
MPL/GPL/LGPL license. For more details about Mozilla licesing refer to [http://www.mozilla.org/MPL/ Mozilla Code Licensing].<br />
<br />
OggPlay is a '''work in progress''': the first release should be availably by mid-2007. <br />
<br />
OggPlay is located on [http://www.annodex.net Annodex], which has been moved in March over to the Xiph.Org servers. SVN access to the source code is available through http://svn.annodex.net/liboggplay/trunk.<br />
<br />
== Developer's Guide ==<br />
<br />
=== Linux ===<br />
<br />
For instructions how to compile and install Linux version of OggPlay Mozilla plugin refer to [http://wiki.xiph.org/index.php/OggPlay/Linux Linux Developement and Intallation Guide].<br />
<br />
=== Windows ===<br />
<br />
The Win32 version of the plugin has been developed and tested on Win200x/XP platforms.<br />
<br />
For detailed instructions how to setup Mozilla plugin development environment and start hacking on Win32 version of OggPlay Mozilla Firefox plugin go to [http://wiki.xiph.org/index.php/OggPlay/Win32 Win32 Development and Installation Guide.]<br />
<br><br />
The same link provides links to the plugin binaries and instructions how to install and test Oggplay Mozilla plugin.<br />
<br />
=== MacOS ===<br />
<br />
== Plugin Javascript API ==<br />
<br />
View the [[OggPlayJavascriptAPI | draft OggPlay plugin Javascript API]]</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay&diff=6979OggPlay2007-06-18T08:59:45Z<p>Laser13: /* Windows */</p>
<hr />
<div>== Overview ==<br />
OggPlay is a library designed to allow drop-in playback of Xiph.Org media in an application. OggPlay handles demuxing and decoding, generates timestamps for raw data, maintains synchronisation across multiple streams, and provides a lock-free buffer implementation for easy multithreading.<br />
<br />
An example use of OggPlay library is OggPlay Mozilla Firefox plugin demonstrating how the library can be used to provide Ogg playback in a web browser. OggPlay plugin is implemented through Mozilla NPAPI. The target platforms for the plugin are: Linux/UNIX, Win200x/XP/Vista and MACOSX. The libary as much as the plugin are open source under triple<br />
MPL/GPL/LGPL license. For more details about Mozilla licesing refer to [http://www.mozilla.org/MPL/ Mozilla Code Licensing].<br />
<br />
OggPlay is a '''work in progress''': the first release should be availably by mid-2007. <br />
<br />
OggPlay is located on [http://www.annodex.net Annodex], which has been moved in March over to the Xiph.Org servers. SVN access to the source code is available through http://svn.annodex.net/liboggplay/trunk.<br />
<br />
== Developer's Guide ==<br />
<br />
=== Linux ===<br />
<br />
For instructions how to compile and install Linux version of OggPlay Mozilla plugin refer to [http://wiki.xiph.org/index.php/OggPlay/Linux Linux Developement and Intallation Guide].<br />
<br />
=== Windows ===<br />
<br />
The Win32 version of the plugin has been developed and tested on Win200x/XP platforms.<br />
<br />
For detailed instructions how to setup Mozilla plugin development environment and start hacking on Win32 version of OggPlay Mozilla Firefox plugin go to: <br />
<br><br />
[http://wiki.xiph.org/index.php/OggPlay/Win32 Win32 Development and Installation Guide]<br />
<br><br />
The same link provides links to the plugin binaries and instructions how to install and test Oggplay Mozilla plugin.<br />
<br />
=== MacOS ===<br />
<br />
== Plugin Javascript API ==<br />
<br />
View the [[OggPlayJavascriptAPI | draft OggPlay plugin Javascript API]]</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay&diff=6978OggPlay2007-06-18T08:59:32Z<p>Laser13: /* Linux */</p>
<hr />
<div>== Overview ==<br />
OggPlay is a library designed to allow drop-in playback of Xiph.Org media in an application. OggPlay handles demuxing and decoding, generates timestamps for raw data, maintains synchronisation across multiple streams, and provides a lock-free buffer implementation for easy multithreading.<br />
<br />
An example use of OggPlay library is OggPlay Mozilla Firefox plugin demonstrating how the library can be used to provide Ogg playback in a web browser. OggPlay plugin is implemented through Mozilla NPAPI. The target platforms for the plugin are: Linux/UNIX, Win200x/XP/Vista and MACOSX. The libary as much as the plugin are open source under triple<br />
MPL/GPL/LGPL license. For more details about Mozilla licesing refer to [http://www.mozilla.org/MPL/ Mozilla Code Licensing].<br />
<br />
OggPlay is a '''work in progress''': the first release should be availably by mid-2007. <br />
<br />
OggPlay is located on [http://www.annodex.net Annodex], which has been moved in March over to the Xiph.Org servers. SVN access to the source code is available through http://svn.annodex.net/liboggplay/trunk.<br />
<br />
== Developer's Guide ==<br />
<br />
=== Linux ===<br />
<br />
For instructions how to compile and install Linux version of OggPlay Mozilla plugin refer to [http://wiki.xiph.org/index.php/OggPlay/Linux Linux Developement and Intallation Guide].<br />
<br />
=== Windows ===<br />
<br />
The Win32 version of the plugin has been developed and tested on Win200x/XP platforms.<br />
<br />
For detailed instructions how to setup Mozilla plugin development environment and start hacking on Win32 version of OggPlay Mozilla Firefox plugin go to: <br />
<br><br />
[http://wiki.xiph.org/index.php/OggPlay/Win32 Win32 Development Envrionment Setup]<br />
<br><br />
The same link provides links to the plugin binaries and instructions how to install and test Oggplay Mozilla plugin.<br />
<br />
=== MacOS ===<br />
<br />
== Plugin Javascript API ==<br />
<br />
View the [[OggPlayJavascriptAPI | draft OggPlay plugin Javascript API]]</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay/Linux&diff=6977OggPlay/Linux2007-06-18T08:58:39Z<p>Laser13: </p>
<hr />
<div>==Linux OggPlay Mozilla Firefox plugin installation==<br />
<br />
1. It is assumed that you managed to check out current sources<br />
of the plugin from http://svn.annodex.net/liboggplay/trunk tree <br />
(e.g. ''svn co http:\\svn.annodex.net\liboggplay\trunk ./liboggplay'').<br />
The rest of the installation steps assume that you checked out<br />
the code to the ''./liboggplay'' directory. <br />
<br />
2. To compile liboggplay, in the main 'liboggplay' directory do:<br />
<br />
''./autogen.sh<br><br />
./configure<br><br />
make; make install<br><br />
<br />
3. As a result of the checkout you should have a ''plugin'' directory under<br />
the ''liboggplay'' tree. After a sucessful build you should have the following<br />
files:<br />
<br />
''plugin/.libs/libnpoggplugin.so<br><br />
plugin/npliboggplugin.xpt''<br><br />
<br />
Copy those file to ''.mozilla/plugins'' in your local directory by executing <br />
'''copy-plugin.sh''' or directly copying them e.g.<br />
<br />
''cd plugin<br><br />
cp .libs/libnpoggplugin.so $HOME/.mozilla/plugins<br><br />
cp npliboggplugin.xpt $HOME/.mozilla/plugins''<br />
<br />
4. The 'plugin' directory also has a test html page you can use to test <br />
the plugin (see ''./plugin/test/test.html''). Alternatively, you can go to:<br />
[http://media.annodex.net/cmmlwiki/SFD2005-Trailer http://media.annodex.net/cmmlwiki/SFD2005-Trailer] to test the plugin.<br />
<br />
If you can see the video playing using either method the plugin is successfully <br />
installed. Enjoy!</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay&diff=6976OggPlay2007-06-18T08:57:42Z<p>Laser13: /* Linux */</p>
<hr />
<div>== Overview ==<br />
OggPlay is a library designed to allow drop-in playback of Xiph.Org media in an application. OggPlay handles demuxing and decoding, generates timestamps for raw data, maintains synchronisation across multiple streams, and provides a lock-free buffer implementation for easy multithreading.<br />
<br />
An example use of OggPlay library is OggPlay Mozilla Firefox plugin demonstrating how the library can be used to provide Ogg playback in a web browser. OggPlay plugin is implemented through Mozilla NPAPI. The target platforms for the plugin are: Linux/UNIX, Win200x/XP/Vista and MACOSX. The libary as much as the plugin are open source under triple<br />
MPL/GPL/LGPL license. For more details about Mozilla licesing refer to [http://www.mozilla.org/MPL/ Mozilla Code Licensing].<br />
<br />
OggPlay is a '''work in progress''': the first release should be availably by mid-2007. <br />
<br />
OggPlay is located on [http://www.annodex.net Annodex], which has been moved in March over to the Xiph.Org servers. SVN access to the source code is available through http://svn.annodex.net/liboggplay/trunk.<br />
<br />
== Developer's Guide ==<br />
<br />
=== Linux ===<br />
<br />
For instructions how to compile and install Linux version of OggPlay Mozilla plugin refer to [http://wiki.xiph.org/index.php/OggPlay/Linux Linux Developers Guide].<br />
<br />
=== Windows ===<br />
<br />
The Win32 version of the plugin has been developed and tested on Win200x/XP platforms.<br />
<br />
For detailed instructions how to setup Mozilla plugin development environment and start hacking on Win32 version of OggPlay Mozilla Firefox plugin go to: <br />
<br><br />
[http://wiki.xiph.org/index.php/OggPlay/Win32 Win32 Development Envrionment Setup]<br />
<br><br />
The same link provides links to the plugin binaries and instructions how to install and test Oggplay Mozilla plugin.<br />
<br />
=== MacOS ===<br />
<br />
== Plugin Javascript API ==<br />
<br />
View the [[OggPlayJavascriptAPI | draft OggPlay plugin Javascript API]]</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay&diff=6975OggPlay2007-06-18T08:55:55Z<p>Laser13: /* Linux */</p>
<hr />
<div>== Overview ==<br />
OggPlay is a library designed to allow drop-in playback of Xiph.Org media in an application. OggPlay handles demuxing and decoding, generates timestamps for raw data, maintains synchronisation across multiple streams, and provides a lock-free buffer implementation for easy multithreading.<br />
<br />
An example use of OggPlay library is OggPlay Mozilla Firefox plugin demonstrating how the library can be used to provide Ogg playback in a web browser. OggPlay plugin is implemented through Mozilla NPAPI. The target platforms for the plugin are: Linux/UNIX, Win200x/XP/Vista and MACOSX. The libary as much as the plugin are open source under triple<br />
MPL/GPL/LGPL license. For more details about Mozilla licesing refer to [http://www.mozilla.org/MPL/ Mozilla Code Licensing].<br />
<br />
OggPlay is a '''work in progress''': the first release should be availably by mid-2007. <br />
<br />
OggPlay is located on [http://www.annodex.net Annodex], which has been moved in March over to the Xiph.Org servers. SVN access to the source code is available through http://svn.annodex.net/liboggplay/trunk.<br />
<br />
== Developer's Guide ==<br />
<br />
=== Linux ===<br />
<br />
1. It is assumed that you managed to check out current sources<br />
of the plugin from http://svn.annodex.net/liboggplay/trunk tree <br />
(e.g. ''svn co http:\/\/svn.annodex.net\/liboggplay\/trunk \.\/liboggplay'').<br />
The rest of the installation steps assume that you checked out<br />
the code to the ''./liboggplay'' directory. <br />
<br />
2. To compile liboggplay, in the main 'liboggplay' directory do:<br />
<br />
''./autogen.sh<br><br />
./configure<br><br />
make; make install<br><br />
<br />
3. As a result of the checkout you should have a ''plugin'' directory under<br />
the ''liboggplay'' tree. After a sucessful build you should have the following<br />
files:<br />
<br />
''plugin/.libs/libnpoggplugin.so<br?<br />
plugin/npliboggplugin.xpt''<br><br />
<br />
Copy those file to ''.mozilla/plugins'' in your local directory by executing <br />
'''copy-plugin.sh''' or directly copying them e.g.<br />
<br />
''cd plugin<br><br />
cp .libs/libnpoggplugin.so $HOME/.mozilla/plugins<br><br />
cp npliboggplugin.xpt $HOME/.mozilla/plugins''<br />
<br />
4. The 'plugin' directory also has a test html page you can use to test <br />
the plugin (see ''./plugin/test/test.html''). Alternatively, you can go to:<br />
[http://media.annodex.net/cmmlwiki/SFD2005-Trailer http://media.annodex.net/cmmlwiki/SFD2005-Trailer] to test the plugin.<br />
<br />
If you can see the video playing using either method the plugin is successfully <br />
installed. Enjoy!<br />
<br />
=== Windows ===<br />
<br />
The Win32 version of the plugin has been developed and tested on Win200x/XP platforms.<br />
<br />
For detailed instructions how to setup Mozilla plugin development environment and start hacking on Win32 version of OggPlay Mozilla Firefox plugin go to: <br />
<br><br />
[http://wiki.xiph.org/index.php/OggPlay/Win32 Win32 Development Envrionment Setup]<br />
<br><br />
The same link provides links to the plugin binaries and instructions how to install and test Oggplay Mozilla plugin.<br />
<br />
=== MacOS ===<br />
<br />
== Plugin Javascript API ==<br />
<br />
View the [[OggPlayJavascriptAPI | draft OggPlay plugin Javascript API]]</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay&diff=6974OggPlay2007-06-18T08:53:18Z<p>Laser13: /* Linux */</p>
<hr />
<div>== Overview ==<br />
OggPlay is a library designed to allow drop-in playback of Xiph.Org media in an application. OggPlay handles demuxing and decoding, generates timestamps for raw data, maintains synchronisation across multiple streams, and provides a lock-free buffer implementation for easy multithreading.<br />
<br />
An example use of OggPlay library is OggPlay Mozilla Firefox plugin demonstrating how the library can be used to provide Ogg playback in a web browser. OggPlay plugin is implemented through Mozilla NPAPI. The target platforms for the plugin are: Linux/UNIX, Win200x/XP/Vista and MACOSX. The libary as much as the plugin are open source under triple<br />
MPL/GPL/LGPL license. For more details about Mozilla licesing refer to [http://www.mozilla.org/MPL/ Mozilla Code Licensing].<br />
<br />
OggPlay is a '''work in progress''': the first release should be availably by mid-2007. <br />
<br />
OggPlay is located on [http://www.annodex.net Annodex], which has been moved in March over to the Xiph.Org servers. SVN access to the source code is available through http://svn.annodex.net/liboggplay/trunk.<br />
<br />
== Developer's Guide ==<br />
<br />
=== Linux ===<br />
<br />
1. It is assumed that you managed to check out current sources<br />
of the plugin from http://svn.annodex.net/liboggplay/trunk tree <br />
(e.g. '''svn co http://svn.annodex.net/liboggplay/trunk ./liboggplay''').<br />
The rest of the installation steps assume that you checked out<br />
the code to the ''./liboggplay'' directory. <br />
<br />
2. To compile liboggplay, in the main 'liboggplay' directory do:<br />
<br />
'''./autogen.sh'''<br />
'''./configure'''<br />
'''make; make install'''<br />
<br />
3. As a result of the checkout you should have a ''plugin'' directory under<br />
the ''liboggplay'' tree. After a sucessful build you should have the following<br />
files:<br />
<br />
'''plugin/.libs/libnpoggplugin.so'''<br />
'''plugin/npliboggplugin.xpt'''<br />
<br />
Copy those file to ''.mozilla/plugins'' in your local directory by executing <br />
'''copy-plugin.sh''' or directly copying them e.g.<br />
<br />
'''cd plugin'''<br />
'''cp .libs/libnpoggplugin.so $HOME/.mozilla/plugins'''<br />
'''cp npliboggplugin.xpt $HOME/.mozilla/plugins'''<br />
<br />
4. The 'plugin' directory also has a test html page you can use to test <br />
the plugin (see ''./plugin/test/test.html''). Alternatively, you can go to:<br />
''http://media.annodex.net/cmmlwiki/SFD2005-Trailer'' to test the plugin.<br />
<br />
If you can see the video playing using either method the plugin is successfully <br />
installed. Enjoy!<br />
<br />
=== Windows ===<br />
<br />
The Win32 version of the plugin has been developed and tested on Win200x/XP platforms.<br />
<br />
For detailed instructions how to setup Mozilla plugin development environment and start hacking on Win32 version of OggPlay Mozilla Firefox plugin go to: <br />
<br><br />
[http://wiki.xiph.org/index.php/OggPlay/Win32 Win32 Development Envrionment Setup]<br />
<br><br />
The same link provides links to the plugin binaries and instructions how to install and test Oggplay Mozilla plugin.<br />
<br />
=== MacOS ===<br />
<br />
== Plugin Javascript API ==<br />
<br />
View the [[OggPlayJavascriptAPI | draft OggPlay plugin Javascript API]]</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay&diff=6973OggPlay2007-06-18T08:34:10Z<p>Laser13: /* Overview */</p>
<hr />
<div>== Overview ==<br />
OggPlay is a library designed to allow drop-in playback of Xiph.Org media in an application. OggPlay handles demuxing and decoding, generates timestamps for raw data, maintains synchronisation across multiple streams, and provides a lock-free buffer implementation for easy multithreading.<br />
<br />
An example use of OggPlay library is OggPlay Mozilla Firefox plugin demonstrating how the library can be used to provide Ogg playback in a web browser. OggPlay plugin is implemented through Mozilla NPAPI. The target platforms for the plugin are: Linux/UNIX, Win200x/XP/Vista and MACOSX. The libary as much as the plugin are open source under triple<br />
MPL/GPL/LGPL license. For more details about Mozilla licesing refer to [http://www.mozilla.org/MPL/ Mozilla Code Licensing].<br />
<br />
OggPlay is a '''work in progress''': the first release should be availably by mid-2007. <br />
<br />
OggPlay is located on [http://www.annodex.net Annodex], which has been moved in March over to the Xiph.Org servers. SVN access to the source code is available through http://svn.annodex.net/liboggplay/trunk.<br />
<br />
== Developer's Guide ==<br />
<br />
=== Linux ===<br />
<br />
=== Windows ===<br />
<br />
The Win32 version of the plugin has been developed and tested on Win200x/XP platforms.<br />
<br />
For detailed instructions how to setup Mozilla plugin development environment and start hacking on Win32 version of OggPlay Mozilla Firefox plugin go to: <br />
<br><br />
[http://wiki.xiph.org/index.php/OggPlay/Win32 Win32 Development Envrionment Setup]<br />
<br><br />
The same link provides links to the plugin binaries and instructions how to install and test Oggplay Mozilla plugin.<br />
<br />
=== MacOS ===<br />
<br />
== Plugin Javascript API ==<br />
<br />
View the [[OggPlayJavascriptAPI | draft OggPlay plugin Javascript API]]</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay&diff=6972OggPlay2007-06-18T08:31:20Z<p>Laser13: /* Overview */</p>
<hr />
<div>== Overview ==<br />
OggPlay is a library designed to allow drop-in playback of Xiph.Org media in an application. OggPlay handles demuxing and decoding, generates timestamps for raw data, maintains synchronisation across multiple streams, and provides a lock-free buffer implementation for easy multithreading.<br />
<br />
An example use of OggPlay library is OggPlay Mozilla Firefox plugin demonstrating how the library can be used to provide Ogg playback in a web browser. OggPlay plugin is implemented through Mozilla NPAPI. The target platforms for the plugin are: Linux/UNIX, Win200x/XP/Vista and MACOSX. The libary as much as the plugin are open source under triple<br />
[http://www.mozilla.org/MPL/MPL-1.1.html MPL]/[http://www.gnu.org/copyleft/gpl.html GPL]/[http://www.gnu.org/licenses/lgpl.html LGPL] license.<br />
<br />
OggPlay is a '''work in progress''': the first release should be availably by mid-2007. <br />
<br />
OggPlay is located on [http://www.annodex.net Annodex], which has been moved in March over to the Xiph.Org servers. SVN access to the source code is available through http://svn.annodex.net/liboggplay/trunk.<br />
<br />
== Developer's Guide ==<br />
<br />
=== Linux ===<br />
<br />
=== Windows ===<br />
<br />
The Win32 version of the plugin has been developed and tested on Win200x/XP platforms.<br />
<br />
For detailed instructions how to setup Mozilla plugin development environment and start hacking on Win32 version of OggPlay Mozilla Firefox plugin go to: <br />
<br><br />
[http://wiki.xiph.org/index.php/OggPlay/Win32 Win32 Development Envrionment Setup]<br />
<br><br />
The same link provides links to the plugin binaries and instructions how to install and test Oggplay Mozilla plugin.<br />
<br />
=== MacOS ===<br />
<br />
== Plugin Javascript API ==<br />
<br />
View the [[OggPlayJavascriptAPI | draft OggPlay plugin Javascript API]]</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay&diff=6971OggPlay2007-06-18T08:31:01Z<p>Laser13: /* Overview */</p>
<hr />
<div>== Overview ==<br />
OggPlay is a library designed to allow drop-in playback of Xiph.Org media in an application. OggPlay handles demuxing and decoding, generates timestamps for raw data, maintains synchronisation across multiple streams, and provides a lock-free buffer implementation for easy multithreading.<br />
<br />
An example use of OggPlay library is OggPlay Mozilla Firefox plugin demonstrating how the library can be used to provide Ogg playback in a web browser. OggPlay plugin is implemented through Mozilla NPAPI. The target platforms for the plugin are: Linux/UNIX, Win200x/XP/Vista and MACOSX. The libary as much as the plugin are open source under triple [http://www.mozilla.org/MPL/MPL-1.1.html MPL]/[http://www.gnu.org/copyleft/gpl.html GPL]/[http://www.gnu.org/licenses/lgpl.html LGPL] license.<br />
<br />
OggPlay is a '''work in progress''': the first release should be availably by mid-2007. <br />
<br />
OggPlay is located on [http://www.annodex.net Annodex], which has been moved in March over to the Xiph.Org servers. SVN access to the source code is available through http://svn.annodex.net/liboggplay/trunk.<br />
<br />
== Developer's Guide ==<br />
<br />
=== Linux ===<br />
<br />
=== Windows ===<br />
<br />
The Win32 version of the plugin has been developed and tested on Win200x/XP platforms.<br />
<br />
For detailed instructions how to setup Mozilla plugin development environment and start hacking on Win32 version of OggPlay Mozilla Firefox plugin go to: <br />
<br><br />
[http://wiki.xiph.org/index.php/OggPlay/Win32 Win32 Development Envrionment Setup]<br />
<br><br />
The same link provides links to the plugin binaries and instructions how to install and test Oggplay Mozilla plugin.<br />
<br />
=== MacOS ===<br />
<br />
== Plugin Javascript API ==<br />
<br />
View the [[OggPlayJavascriptAPI | draft OggPlay plugin Javascript API]]</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay&diff=6970OggPlay2007-06-18T08:30:49Z<p>Laser13: /* Overview */</p>
<hr />
<div>== Overview ==<br />
OggPlay is a library designed to allow drop-in playback of Xiph.Org media in an application. OggPlay handles demuxing and decoding, generates timestamps for raw data, maintains synchronisation across multiple streams, and provides a lock-free buffer implementation for easy multithreading.<br />
<br />
An example use of OggPlay library is OggPlay Mozilla Firefox plugin demonstrating how the library can be used to provide Ogg playback in a web browser. OggPlay plugin is implemented through Mozilla NPAPI. The target platforms for the plugin are: Linux/UNIX, Win200x/XP/Vista and MACOSX. The libary as much as the plugin are open source under triple [http://www.mozilla.org/MPL/MPL-1.1.html MPL]/[http://www.gnu.org/copyleft/gpl.html /GPL]/[http://www.gnu.org/licenses/lgpl.html LGPL] license.<br />
<br />
OggPlay is a '''work in progress''': the first release should be availably by mid-2007. <br />
<br />
OggPlay is located on [http://www.annodex.net Annodex], which has been moved in March over to the Xiph.Org servers. SVN access to the source code is available through http://svn.annodex.net/liboggplay/trunk.<br />
<br />
== Developer's Guide ==<br />
<br />
=== Linux ===<br />
<br />
=== Windows ===<br />
<br />
The Win32 version of the plugin has been developed and tested on Win200x/XP platforms.<br />
<br />
For detailed instructions how to setup Mozilla plugin development environment and start hacking on Win32 version of OggPlay Mozilla Firefox plugin go to: <br />
<br><br />
[http://wiki.xiph.org/index.php/OggPlay/Win32 Win32 Development Envrionment Setup]<br />
<br><br />
The same link provides links to the plugin binaries and instructions how to install and test Oggplay Mozilla plugin.<br />
<br />
=== MacOS ===<br />
<br />
== Plugin Javascript API ==<br />
<br />
View the [[OggPlayJavascriptAPI | draft OggPlay plugin Javascript API]]</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay&diff=6969OggPlay2007-06-18T08:30:31Z<p>Laser13: /* Overview */</p>
<hr />
<div>== Overview ==<br />
OggPlay is a library designed to allow drop-in playback of Xiph.Org media in an application. OggPlay handles demuxing and decoding, generates timestamps for raw data, maintains synchronisation across multiple streams, and provides a lock-free buffer implementation for easy multithreading.<br />
<br />
An example use of OggPlay library is OggPlay Mozilla Firefox plugin demonstrating how the library can be used to provide Ogg playback in a web browser. OggPlay plugin is implemented through Mozilla NPAPI. The target platforms for the plugin are: Linux/UNIX, Win200x/XP/Vista and MACOSX. The libary as much as the plugin are open source under triple [http://www.mozilla.org/MPL/MPL-1.1.html MPL][http://www.gnu.org/copyleft/gpl.html /GPL/][http://www.gnu.org/licenses/lgpl.html LGPL] license.<br />
<br />
OggPlay is a '''work in progress''': the first release should be availably by mid-2007. <br />
<br />
OggPlay is located on [http://www.annodex.net Annodex], which has been moved in March over to the Xiph.Org servers. SVN access to the source code is available through http://svn.annodex.net/liboggplay/trunk.<br />
<br />
== Developer's Guide ==<br />
<br />
=== Linux ===<br />
<br />
=== Windows ===<br />
<br />
The Win32 version of the plugin has been developed and tested on Win200x/XP platforms.<br />
<br />
For detailed instructions how to setup Mozilla plugin development environment and start hacking on Win32 version of OggPlay Mozilla Firefox plugin go to: <br />
<br><br />
[http://wiki.xiph.org/index.php/OggPlay/Win32 Win32 Development Envrionment Setup]<br />
<br><br />
The same link provides links to the plugin binaries and instructions how to install and test Oggplay Mozilla plugin.<br />
<br />
=== MacOS ===<br />
<br />
== Plugin Javascript API ==<br />
<br />
View the [[OggPlayJavascriptAPI | draft OggPlay plugin Javascript API]]</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay&diff=6968OggPlay2007-06-18T08:30:11Z<p>Laser13: /* Overview */</p>
<hr />
<div>== Overview ==<br />
OggPlay is a library designed to allow drop-in playback of Xiph.Org media in an application. OggPlay handles demuxing and decoding, generates timestamps for raw data, maintains synchronisation across multiple streams, and provides a lock-free buffer implementation for easy multithreading.<br />
<br />
An example use of OggPlay library is OggPlay Mozilla Firefox plugin demonstrating how the library can be used to provide Ogg playback in a web browser. OggPlay plugin is implemented through Mozilla NPAPI. The target platforms for the plugin are: Linux/UNIX, Win200x/XP/Vista and MACOSX. The libary as much as the plugin are open source under triple [http://www.mozilla.org/MPL/MPL-1.1.html MPL/][http://www.gnu.org/copyleft/gpl.html GPL/][http://www.gnu.org/licenses/lgpl.html LGPL] license.<br />
<br />
OggPlay is a '''work in progress''': the first release should be availably by mid-2007. <br />
<br />
OggPlay is located on [http://www.annodex.net Annodex], which has been moved in March over to the Xiph.Org servers. SVN access to the source code is available through http://svn.annodex.net/liboggplay/trunk.<br />
<br />
== Developer's Guide ==<br />
<br />
=== Linux ===<br />
<br />
=== Windows ===<br />
<br />
The Win32 version of the plugin has been developed and tested on Win200x/XP platforms.<br />
<br />
For detailed instructions how to setup Mozilla plugin development environment and start hacking on Win32 version of OggPlay Mozilla Firefox plugin go to: <br />
<br><br />
[http://wiki.xiph.org/index.php/OggPlay/Win32 Win32 Development Envrionment Setup]<br />
<br><br />
The same link provides links to the plugin binaries and instructions how to install and test Oggplay Mozilla plugin.<br />
<br />
=== MacOS ===<br />
<br />
== Plugin Javascript API ==<br />
<br />
View the [[OggPlayJavascriptAPI | draft OggPlay plugin Javascript API]]</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay&diff=6967OggPlay2007-06-18T08:29:14Z<p>Laser13: /* Overview */</p>
<hr />
<div>== Overview ==<br />
OggPlay is a library designed to allow drop-in playback of Xiph.Org media in an application. OggPlay handles demuxing and decoding, generates timestamps for raw data, maintains synchronisation across multiple streams, and provides a lock-free buffer implementation for easy multithreading.<br />
<br />
An example use of OggPlay library is OggPlay Mozilla Firefox plugin demonstrating how the library can be used to provide Ogg playback in a web browser. OggPlay plugin is implemented through Mozilla NPAPI. The target platforms for the plugin are: Linux/UNIX, Win200x/XP/Vista and MACOSX. The libary as much as the plugin are open source under triple [http://www.mozilla.org/MPL MPL][http://www.gnu.org/copyleft/gpl.html /GPL/][http://www.gnu.org/licenses/lgpl.html LGPL] license.<br />
<br />
OggPlay is a '''work in progress''': the first release should be availably by mid-2007. <br />
<br />
OggPlay is located on [http://www.annodex.net Annodex], which has been moved in March over to the Xiph.Org servers. SVN access to the source code is available through http://svn.annodex.net/liboggplay/trunk.<br />
<br />
== Developer's Guide ==<br />
<br />
=== Linux ===<br />
<br />
=== Windows ===<br />
<br />
The Win32 version of the plugin has been developed and tested on Win200x/XP platforms.<br />
<br />
For detailed instructions how to setup Mozilla plugin development environment and start hacking on Win32 version of OggPlay Mozilla Firefox plugin go to: <br />
<br><br />
[http://wiki.xiph.org/index.php/OggPlay/Win32 Win32 Development Envrionment Setup]<br />
<br><br />
The same link provides links to the plugin binaries and instructions how to install and test Oggplay Mozilla plugin.<br />
<br />
=== MacOS ===<br />
<br />
== Plugin Javascript API ==<br />
<br />
View the [[OggPlayJavascriptAPI | draft OggPlay plugin Javascript API]]</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay&diff=6966OggPlay2007-06-18T08:28:44Z<p>Laser13: /* Overview */</p>
<hr />
<div>== Overview ==<br />
OggPlay is a library designed to allow drop-in playback of Xiph.Org media in an application. OggPlay handles demuxing and decoding, generates timestamps for raw data, maintains synchronisation across multiple streams, and provides a lock-free buffer implementation for easy multithreading.<br />
<br />
An example use of OggPlay library is OggPlay Mozilla Firefox plugin demonstrating how the library can be used to provide Ogg playback in a web browser. OggPlay plugin is implemented through Mozilla NPAPI. The target platforms for the plugin are: Linux/UNIX, Win200x/XP/Vista and MACOSX. The libary as much as the plugin are open source under triple [http://www.mozilla.org/MPL MPL/][http://www.gnu.org/copyleft/gpl.html GPL/][http://www.gnu.org/licenses/lgpl.html LGPL] license.<br />
<br />
OggPlay is a '''work in progress''': the first release should be availably by mid-2007. <br />
<br />
OggPlay is located on [http://www.annodex.net Annodex], which has been moved in March over to the Xiph.Org servers. SVN access to the source code is available through http://svn.annodex.net/liboggplay/trunk.<br />
<br />
== Developer's Guide ==<br />
<br />
=== Linux ===<br />
<br />
=== Windows ===<br />
<br />
The Win32 version of the plugin has been developed and tested on Win200x/XP platforms.<br />
<br />
For detailed instructions how to setup Mozilla plugin development environment and start hacking on Win32 version of OggPlay Mozilla Firefox plugin go to: <br />
<br><br />
[http://wiki.xiph.org/index.php/OggPlay/Win32 Win32 Development Envrionment Setup]<br />
<br><br />
The same link provides links to the plugin binaries and instructions how to install and test Oggplay Mozilla plugin.<br />
<br />
=== MacOS ===<br />
<br />
== Plugin Javascript API ==<br />
<br />
View the [[OggPlayJavascriptAPI | draft OggPlay plugin Javascript API]]</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay&diff=6965OggPlay2007-06-18T08:17:14Z<p>Laser13: /* Windows */</p>
<hr />
<div>== Overview ==<br />
OggPlay is a library designed to allow drop-in playback of Xiph.Org media in an application. OggPlay handles demuxing and decoding, generates timestamps for raw data, maintains synchronisation across multiple streams, and provides a lock-free buffer implementation for easy multithreading.<br />
<br />
OggPlay is a '''work in progress''': the first release should be availably by mid-2007.<br />
<br />
OggPlay is currently hosted by [http://www.annodex.net Annodex], although there are plans to move hosting over to the Xiph.Org servers. SVN access is available through http://svn.annodex.net/liboggplay/trunk.<br />
<br />
== Developer's Guide ==<br />
<br />
=== Linux ===<br />
<br />
=== Windows ===<br />
<br />
The Win32 version of the plugin has been developed and tested on Win200x/XP platforms.<br />
<br />
For detailed instructions how to setup Mozilla plugin development environment and start hacking on Win32 version of OggPlay Mozilla Firefox plugin go to: <br />
<br><br />
[http://wiki.xiph.org/index.php/OggPlay/Win32 Win32 Development Envrionment Setup]<br />
<br><br />
The same link provides links to the plugin binaries and instructions how to install and test Oggplay Mozilla plugin.<br />
<br />
=== MacOS ===<br />
<br />
== Plugin Javascript API ==<br />
<br />
View the [[OggPlayJavascriptAPI | draft OggPlay plugin Javascript API]]</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay&diff=6964OggPlay2007-06-18T08:16:53Z<p>Laser13: /* Windows */</p>
<hr />
<div>== Overview ==<br />
OggPlay is a library designed to allow drop-in playback of Xiph.Org media in an application. OggPlay handles demuxing and decoding, generates timestamps for raw data, maintains synchronisation across multiple streams, and provides a lock-free buffer implementation for easy multithreading.<br />
<br />
OggPlay is a '''work in progress''': the first release should be availably by mid-2007.<br />
<br />
OggPlay is currently hosted by [http://www.annodex.net Annodex], although there are plans to move hosting over to the Xiph.Org servers. SVN access is available through http://svn.annodex.net/liboggplay/trunk.<br />
<br />
== Developer's Guide ==<br />
<br />
=== Linux ===<br />
<br />
=== Windows ===<br />
<br />
The Win32 version of the plugin has been developed and tested on Win200x/XP platforms.<br />
<br />
For detailed instructions how to setup Mozilla plugin development environment and start hacking on Win32 version of OggPlay Mozilla Firefox plugin go to: <br />
[http://wiki.xiph.org/index.php/OggPlay/Win32 Win32 Development Envrionment Setup].<br />
The same link provides links to the plugin binaries and instructions how to install and test Oggplay Mozilla plugin.<br />
<br />
=== MacOS ===<br />
<br />
== Plugin Javascript API ==<br />
<br />
View the [[OggPlayJavascriptAPI | draft OggPlay plugin Javascript API]]</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay&diff=6963OggPlay2007-06-18T08:16:28Z<p>Laser13: /* Windows */</p>
<hr />
<div>== Overview ==<br />
OggPlay is a library designed to allow drop-in playback of Xiph.Org media in an application. OggPlay handles demuxing and decoding, generates timestamps for raw data, maintains synchronisation across multiple streams, and provides a lock-free buffer implementation for easy multithreading.<br />
<br />
OggPlay is a '''work in progress''': the first release should be availably by mid-2007.<br />
<br />
OggPlay is currently hosted by [http://www.annodex.net Annodex], although there are plans to move hosting over to the Xiph.Org servers. SVN access is available through http://svn.annodex.net/liboggplay/trunk.<br />
<br />
== Developer's Guide ==<br />
<br />
=== Linux ===<br />
<br />
=== Windows ===<br />
<br />
The Win32 version of the plugin has been developed and tested on Win200x/XP platforms.<br />
<br />
For detailed instructions how to setup Mozilla plugin development environment and start hacking on Win32 version of OggPlay Mozilla Firefox plugin go to: [http://wiki.xiph.org/index.php/OggPlay/Win32 Win32 Development Envrionment Setup.]The same link provides links to the plugin binaries and instructions how to install and test Oggplay Mozilla plugin.<br />
<br />
=== MacOS ===<br />
<br />
== Plugin Javascript API ==<br />
<br />
View the [[OggPlayJavascriptAPI | draft OggPlay plugin Javascript API]]</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay&diff=6962OggPlay2007-06-18T08:16:18Z<p>Laser13: /* Windows */</p>
<hr />
<div>== Overview ==<br />
OggPlay is a library designed to allow drop-in playback of Xiph.Org media in an application. OggPlay handles demuxing and decoding, generates timestamps for raw data, maintains synchronisation across multiple streams, and provides a lock-free buffer implementation for easy multithreading.<br />
<br />
OggPlay is a '''work in progress''': the first release should be availably by mid-2007.<br />
<br />
OggPlay is currently hosted by [http://www.annodex.net Annodex], although there are plans to move hosting over to the Xiph.Org servers. SVN access is available through http://svn.annodex.net/liboggplay/trunk.<br />
<br />
== Developer's Guide ==<br />
<br />
=== Linux ===<br />
<br />
=== Windows ===<br />
<br />
The Win32 version of the plugin has been developed and tested on Win200x/XP platforms.<br />
<br />
For detailed instructions how to setup Mozilla plugin development environment and start hacking on Win32 version of OggPlay Mozilla Firefox plugin go to: [http://wiki.xiph.org/index.php/OggPlay/Win32 Win32 Development Envrionment Setup].The same link provides links to the plugin binaries and instructions how to install and test Oggplay Mozilla plugin.<br />
<br />
=== MacOS ===<br />
<br />
== Plugin Javascript API ==<br />
<br />
View the [[OggPlayJavascriptAPI | draft OggPlay plugin Javascript API]]</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay&diff=6961OggPlay2007-06-18T08:16:03Z<p>Laser13: /* Windows */</p>
<hr />
<div>== Overview ==<br />
OggPlay is a library designed to allow drop-in playback of Xiph.Org media in an application. OggPlay handles demuxing and decoding, generates timestamps for raw data, maintains synchronisation across multiple streams, and provides a lock-free buffer implementation for easy multithreading.<br />
<br />
OggPlay is a '''work in progress''': the first release should be availably by mid-2007.<br />
<br />
OggPlay is currently hosted by [http://www.annodex.net Annodex], although there are plans to move hosting over to the Xiph.Org servers. SVN access is available through http://svn.annodex.net/liboggplay/trunk.<br />
<br />
== Developer's Guide ==<br />
<br />
=== Linux ===<br />
<br />
=== Windows ===<br />
<br />
The Win32 version of the plugin has been developed and tested on Win200x/XP platforms.<br />
<br />
For detailed instructions how to setup Mozilla plugin development environment and start hacking on Win32 version of OggPlay Mozilla Firefox plugin go to: [http://wiki.xiph.org/index.php/OggPlay/Win32 Win32 Development Envrionment Setup.] The same link provides links to the plugin binaries and instructions how to install and test Oggplay Mozilla plugin.<br />
<br />
=== MacOS ===<br />
<br />
== Plugin Javascript API ==<br />
<br />
View the [[OggPlayJavascriptAPI | draft OggPlay plugin Javascript API]]</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay/Win32&diff=6960OggPlay/Win322007-06-17T15:41:22Z<p>Laser13: /* Developing OggPlay plugin */</p>
<hr />
<div>== Overview ==<br />
<br />
This page was created to give developers a first hand assistance in starting development of Mozilla Firefox plugins on Windows. After the generic development environment<br />
setup we present the setup of OggPlay Firefox plugin for Vorbis/Theora OggPlay player plugin. If you have an experience in plugin development and want to test<br />
or contribute to the OggPlay plugin development you might want to skip to the next section and go directly to OggPlay player plugin. If you do not have your development plugin environment<br />
set up you should start with basic plugin environment configuration.<br />
<br />
== Setup of basic Mozilla plugin development environment ==<br />
<br />
The documentation on set up of development environment for Mozilla plugins development of Linux/UNIX, Win32 and MacOS is inconsistent and partially incomplete at least. In an attempt to fill in the blanks this section presents basic development environment setup for Win200x/XP.<br />
<br />
=== Basic Mozilla plugin setup for MS Windows Win200x/XP ===<br />
<br />
Although we tested those steps on Windows 2003 Server and Windows XP the configuration should work on the other Window platforms (such as Windows Vista). We also assume that you are using MS Visual Studio 2003 or 2005 altough you should be able to setup the environment using VS6 in a similar way. If you are using other environment/compiler you are on your own. <br />
<br />
Before starting setting up your plugin development environment you will need following tools and SDKs:<br />
<br />
* '''Mozilla Firefox''' (at least in version 1.7 provided you use appropriate Gecko SDK)<br />
<br />
* '''Mozilla Gecko SDK''' - there are two recent releases of Gecko SDK (1.7 for Firefox 1.0 and 1.8 for Firefox 1.5. and 2.0) available for download on [http://developer.mozilla.org/en/docs/Gecko_SDK Mozilla Developer Center]. Here are direct links to both versions of the SDK:<br />
** [http://releases.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7/gecko-sdk-i586-pc-msvc-1.7.zip Gecko SDK 1.7] , or<br />
** [http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/gecko-sdk-win32-msvc-1.8.0.4.zip Gecko SDK 1.8]<br />
<br />
* '''Mozilla WinTools''' - to use '''xpidl''' compiler you need also Mozilla WinTools: [http://ftp.mozilla.org/pub/mozilla.org/mozilla/source/wintools.zip Direct download]<br />
<br />
* '''Microsoft Platform SDK''' - to compile the plugins you will need to get also '''Platform SDK''' from [http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en Microsoft Download Center]<br />
<br />
* '''SVN client for Windows''' - there are many Windows clients for SVN, however one of the best is Tortoise SVN available from [http://tortoisesvn.tigris.org/ tigris.org]. While your are on it you might want to try [http://ankhsvn.tigris.org/ AnkhSVN] addin for Visual Studio.<br />
<br />
Once you unzipped '''Gecko SDK''' and installed '''MS Platform SDK''' you need to make sure your xpidl compiler is working properly. Unfortunately, the official release of '''Gecko SDK''' assumes you have following .dll on your system and in your '''PATH''' (provided you are using the newest version of '''WinTools'''):<br />
<br />
* glib-1.2.dll<br />
<br />
* libIDL-0.6.dll<br />
<br />
They are included in '''WinTools''' package under '''windows\bin\x86'''. In order for '''xpidl''' to run properly you need to have those .dll files in the same directory as xpidl.exe. Alternatively, if for some reason you do not want to copy those files across you can add the directory where those .dll are located to your system '''PATH''' variable. You can do that by navigating to ''Control Panel->System'' and then choosing ''Environment Variables'' in ''Advanced'' tab. There are also other options such as modifing Visual Studio environment by changing ''vcvarsall.bat'' script but it is outside of scope of this document.<br />
<br />
Once your xpidl you can try your environment and compile the official Mozilla samples. More details presented in the next section.<br />
<br />
=== Testing development environment with sample Mozilla plugin ===<br />
<br />
This is an optional step and unless you failed setting up environment for the OggPlay plugin or you want to build your own plugin you can probably skip this step. But if you want to understand the Mozilla plugin structure it is probably recommended to start with something simple.<br />
<br />
Once your xpidl is working properly you can try to compile the official Mozilla samples. You can download them [http://www.mozilla.org/projects/plugins/GeckoPluginSDK-samplesWin32.zip here]. The important thing about this archive is that we are interested only the ''Win32SDK\sdk\samples'' directory. In particular, attached gecko-sdk is not the most recent one. If you navigate to one of the samples and their ''windows'' directory you can open projects' .dsp file. If you are using newer version of Visual Studio than 6.0 it will be converted to the new format. Once you opened sample project you need probably update some of the configuration settings. In ''Project->Properties'' menu select ''C\C++->General'' and change Additional Include Directories to your Gecko SDK include directory ('''Note:''' this is preferably the new Gecko SDK in the archive gecko-sdk-i586-pc-msvc-1.7.zip or gecko-sdk-win32-msvc-1.8.0.4.zip and not the one attached to the samples archive). If you are using Gecko SDK 1.7 or Gecko SDK 1.8 you need to include samples '''include''' directory (i.e. ''..\..\include'') and only main Gecko SDK include (e.g. ''..\..\..\gecko-sdk\include'').<br />
<br />
You also need to point Visual Studio to the '''xpidl''' compiler. This is required to compile .idl file in the project. To change the default setting go to Visual Studio ''Solution Explorer'' and open ''Properties'' setting for the .idl file. Inspect file's ''Custom Build Step'' and adjust the directories in relation to the project file (.vcproj for VS200x or .dsp for VS6.0). In particular, you might need to change not only the path to the '''xpidl''' compiler but also to the ''idl'' directory of your Gecko SDK (e.g. ''..\..\..\..\gecko-sdk\xpcom\bin\xpidl -m header -I..\..\..\..\gecko-sdk\xpcom\idl $(InputPath)'' to ''..\..\..\gecko-sdk\bin\xpidl -m header -I..\..\..\gecko-sdk\idl $(InputPath)'')<br />
<br />
Now you should be able to compile the project. Resulting .dll and .xpt files should be copied to the Mozilla Firefox plugins directory (e.g. ''C:\Program Files\Mozilla Firefox\plugins"). Once you've done that you can restart Mozilla. In general it is a good idea to use following options to during the startup: '''-P development -console''' so you can see the plugin output/debug information.<br />
<br />
For help with setup of the environment and Visual Studio refere to a guide from [http://developer.mozilla.org/en/docs/Compiling_The_npruntime_Sample_Plugin_in_Visual_Studio Mozilla Developer Center].<br />
<br />
<br />
== Developing OggPlay plugin ==<br />
<br />
Once you have a working Mozilla plugin development environment you can start configuring the environment for OggPlay plugin.<br />
<br />
First of all, you need to install SVN client on your development machine. There are many Win32 SVN clients available but this document assumes that you have a client with the capabilities of Tortoise SVN.<br />
As mentioned previously at the moment Win32 developement environment for the OggPlay plugin is setup only for VS200x.<br />
<br />
To compile and start hacking on Win32 version of OggPlay plugin you need to check out [http://trac.annodex.net/browser/OggplayPluginWin32SDK/trunk OggplayPluginWin32SDK] from [http://svn.annodex.net svn.annodex.net].<br />
(you need to point your svn client to : http://svn.annodex.net/OggplayPluginWin32SDK/trunk). If you are using Tortoise SVN create a new directory in your favourite development location on your hard drive. Then navigate to the location where the new directory has been created. Use left mouse click on the directory where you want to check out the plugin code and development configuration and select '''SVN Checkout''' option in the context menu. In the repository URL provide http://svn.annodex.net/OggplayPluginWin32SDK/trunk and checkout the head revision of the plugin sources. Please note, that the checkout can take a while over slow links because the plugin requires a number of libraries such as:<br />
* libogg<br />
<br />
* libtheora<br />
<br />
* libvorbis<br />
<br />
* libspeex<br />
<br />
* libsndfile<br />
<br />
* libfishsound<br />
<br />
* liboggz<br />
<br />
and<br />
<br />
* liboggplay.<br />
<br />
When your checkout is completed navigate to ''sln/plugin_all_200x''' (e.g. plugin_all_2005 for Visual Studio 2005). You should be able to open the ''plugin_all.sln'' file.<br />
<br />
The development configutation by default assumes that you installed gecko-sdk (with working version of '''xpidl''' compiler) in a directory parallel to the directory where you checked out the plugin sources. In paritcular, the directory structure by default should be as follows:<br />
<br />
* .\gecko-sdk<br />
** .\gecko-sdk\bin\ ('''xpidl.exe''')<br />
* .\plugin_sources<br />
** .\plugin_sources\lib<br />
** .\plugin_sources\project_files<br />
** .\plugin_sources\sln <br />
*** .\plugin_sources\sln\plugin_all_200x ('''plugin_all.sln''')<br />
<br />
[of course the names of the Gecko SDK (''.\gecko-sdk'') above and directory storing plugin source files (''.\plugin_sources'') can be completely arbitral]<br />
<br />
If you have '''Gecko SDK''' in different location in relation to ''plugin_all.sln'' file you will need to go the ''Properties'' of liboggplugin project in Visual Studio and find ''nsILibOggPlugin.idl'' file in the sources of that project. Next you need to change the directory of the custom compilation step (i.e. left-click on ''nsILibOggPlugin.idl'' file, choose ''Properties'' expand ''Custom Build Step'' and in ''Command Line'' option change the relative path to the location of '''xpidl''' compiler as well as to Gecko SDK ''.\idl'' directory. You can test the setup by compiling just the ''nsILibOggPlugin.idl'' file. If the build is sucessfull you can start compiling the plugin. In particular, compiling the default '''liboggplay''' project should build all the project in the VS solution and build the plugin in the end. The plugin binaries as well as binaries of other libraries on which plugin depends can be found under ''.\plugin_sources\sln\plugin_all_200x\debug'' if your default build configuration was '''Debug'''. When the plugin is released the '''Release''' build will be compiled to .\plugin_sources\sln\plugin_all_200x\release.<br />
<br />
By default a post build step is copying the plugin files ('''npliboggplugin.dll''' and '''npliboggplugin.xpt''') to ''C:\Program Files\Mozilla Firefox\plugins'' (default Mozilla Firefox location). If you have Mozilla Firefox installed in a different location you need to change the path in '''liboggplay''' ''Post-Built Event'' configuration (left mouse click on '''liboggplugin''' project then ''Properties'' then expand '''Build Events''' and navigate to '''Post-Built Event''').<br />
<br />
== Binaries of the OggPlay Mozilla plugin ==<br />
<br />
For people not interested in developing the plugin but willing test it on their own machine are very much encouraged to download the following binaries of the plugin:<br />
<br />
[http://wiki.xiph.org/index.php npliboggplugin.dll]<br><br />
[http://wiki.xiph.org/index.php npliboggplugin.xpt]<br />
<br />
Both file should be placed in the Mozilla plugin directory. You will need to restart Mozilla after copying the plugin files to ''plugin'' directory. This is usually ''C:\Program Files\Mozilla Firefox\plugins'' unless your Mozilla Firefox has been installed in different than default location. To test the plugin go to [http://media.annodex.net/cmmlwiki/Special:ListAllItems cmmlwiki]. If you see the video playing then you successfully installed the plugin. Enjoy!</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay/Win32&diff=6959OggPlay/Win322007-06-17T15:38:58Z<p>Laser13: /* Developing OggPlay plugin */</p>
<hr />
<div>== Overview ==<br />
<br />
This page was created to give developers a first hand assistance in starting development of Mozilla Firefox plugins on Windows. After the generic development environment<br />
setup we present the setup of OggPlay Firefox plugin for Vorbis/Theora OggPlay player plugin. If you have an experience in plugin development and want to test<br />
or contribute to the OggPlay plugin development you might want to skip to the next section and go directly to OggPlay player plugin. If you do not have your development plugin environment<br />
set up you should start with basic plugin environment configuration.<br />
<br />
== Setup of basic Mozilla plugin development environment ==<br />
<br />
The documentation on set up of development environment for Mozilla plugins development of Linux/UNIX, Win32 and MacOS is inconsistent and partially incomplete at least. In an attempt to fill in the blanks this section presents basic development environment setup for Win200x/XP.<br />
<br />
=== Basic Mozilla plugin setup for MS Windows Win200x/XP ===<br />
<br />
Although we tested those steps on Windows 2003 Server and Windows XP the configuration should work on the other Window platforms (such as Windows Vista). We also assume that you are using MS Visual Studio 2003 or 2005 altough you should be able to setup the environment using VS6 in a similar way. If you are using other environment/compiler you are on your own. <br />
<br />
Before starting setting up your plugin development environment you will need following tools and SDKs:<br />
<br />
* '''Mozilla Firefox''' (at least in version 1.7 provided you use appropriate Gecko SDK)<br />
<br />
* '''Mozilla Gecko SDK''' - there are two recent releases of Gecko SDK (1.7 for Firefox 1.0 and 1.8 for Firefox 1.5. and 2.0) available for download on [http://developer.mozilla.org/en/docs/Gecko_SDK Mozilla Developer Center]. Here are direct links to both versions of the SDK:<br />
** [http://releases.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7/gecko-sdk-i586-pc-msvc-1.7.zip Gecko SDK 1.7] , or<br />
** [http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/gecko-sdk-win32-msvc-1.8.0.4.zip Gecko SDK 1.8]<br />
<br />
* '''Mozilla WinTools''' - to use '''xpidl''' compiler you need also Mozilla WinTools: [http://ftp.mozilla.org/pub/mozilla.org/mozilla/source/wintools.zip Direct download]<br />
<br />
* '''Microsoft Platform SDK''' - to compile the plugins you will need to get also '''Platform SDK''' from [http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en Microsoft Download Center]<br />
<br />
* '''SVN client for Windows''' - there are many Windows clients for SVN, however one of the best is Tortoise SVN available from [http://tortoisesvn.tigris.org/ tigris.org]. While your are on it you might want to try [http://ankhsvn.tigris.org/ AnkhSVN] addin for Visual Studio.<br />
<br />
Once you unzipped '''Gecko SDK''' and installed '''MS Platform SDK''' you need to make sure your xpidl compiler is working properly. Unfortunately, the official release of '''Gecko SDK''' assumes you have following .dll on your system and in your '''PATH''' (provided you are using the newest version of '''WinTools'''):<br />
<br />
* glib-1.2.dll<br />
<br />
* libIDL-0.6.dll<br />
<br />
They are included in '''WinTools''' package under '''windows\bin\x86'''. In order for '''xpidl''' to run properly you need to have those .dll files in the same directory as xpidl.exe. Alternatively, if for some reason you do not want to copy those files across you can add the directory where those .dll are located to your system '''PATH''' variable. You can do that by navigating to ''Control Panel->System'' and then choosing ''Environment Variables'' in ''Advanced'' tab. There are also other options such as modifing Visual Studio environment by changing ''vcvarsall.bat'' script but it is outside of scope of this document.<br />
<br />
Once your xpidl you can try your environment and compile the official Mozilla samples. More details presented in the next section.<br />
<br />
=== Testing development environment with sample Mozilla plugin ===<br />
<br />
This is an optional step and unless you failed setting up environment for the OggPlay plugin or you want to build your own plugin you can probably skip this step. But if you want to understand the Mozilla plugin structure it is probably recommended to start with something simple.<br />
<br />
Once your xpidl is working properly you can try to compile the official Mozilla samples. You can download them [http://www.mozilla.org/projects/plugins/GeckoPluginSDK-samplesWin32.zip here]. The important thing about this archive is that we are interested only the ''Win32SDK\sdk\samples'' directory. In particular, attached gecko-sdk is not the most recent one. If you navigate to one of the samples and their ''windows'' directory you can open projects' .dsp file. If you are using newer version of Visual Studio than 6.0 it will be converted to the new format. Once you opened sample project you need probably update some of the configuration settings. In ''Project->Properties'' menu select ''C\C++->General'' and change Additional Include Directories to your Gecko SDK include directory ('''Note:''' this is preferably the new Gecko SDK in the archive gecko-sdk-i586-pc-msvc-1.7.zip or gecko-sdk-win32-msvc-1.8.0.4.zip and not the one attached to the samples archive). If you are using Gecko SDK 1.7 or Gecko SDK 1.8 you need to include samples '''include''' directory (i.e. ''..\..\include'') and only main Gecko SDK include (e.g. ''..\..\..\gecko-sdk\include'').<br />
<br />
You also need to point Visual Studio to the '''xpidl''' compiler. This is required to compile .idl file in the project. To change the default setting go to Visual Studio ''Solution Explorer'' and open ''Properties'' setting for the .idl file. Inspect file's ''Custom Build Step'' and adjust the directories in relation to the project file (.vcproj for VS200x or .dsp for VS6.0). In particular, you might need to change not only the path to the '''xpidl''' compiler but also to the ''idl'' directory of your Gecko SDK (e.g. ''..\..\..\..\gecko-sdk\xpcom\bin\xpidl -m header -I..\..\..\..\gecko-sdk\xpcom\idl $(InputPath)'' to ''..\..\..\gecko-sdk\bin\xpidl -m header -I..\..\..\gecko-sdk\idl $(InputPath)'')<br />
<br />
Now you should be able to compile the project. Resulting .dll and .xpt files should be copied to the Mozilla Firefox plugins directory (e.g. ''C:\Program Files\Mozilla Firefox\plugins"). Once you've done that you can restart Mozilla. In general it is a good idea to use following options to during the startup: '''-P development -console''' so you can see the plugin output/debug information.<br />
<br />
For help with setup of the environment and Visual Studio refere to a guide from [http://developer.mozilla.org/en/docs/Compiling_The_npruntime_Sample_Plugin_in_Visual_Studio Mozilla Developer Center].<br />
<br />
<br />
== Developing OggPlay plugin ==<br />
<br />
Once you have a working Mozilla plugin development environment you can start configuring the environment for OggPlay plugin.<br />
<br />
First of all, you need to install SVN client on your development machine. There are many Win32 SVN clients available but this document assumes that you have a client with the capabilities of Tortoise SVN.<br />
As mentioned previously at the moment Win32 developement environment for the OggPlay plugin is setup only for VS200x.<br />
<br />
To compile and start hacking on Win32 version of OggPlay plugin you need to check out [http://trac.annodex.net/browser/OggplayPluginWin32SDK/trunk OggplayPluginWin32SDK] from [http://svn.annodex.net svn.annodex.net].<br />
(you need to point your svn client to : http://svn.annodex.net/OggplayPluginWin32SDK/trunk). If you are using Tortoise SVN create a new directory in your favourite development location on your hard drive. Then navigate to the location where the new directory has been created. Use left mouse click on the directory where you want to check out the plugin code and development configuration and select '''SVN Checkout''' option in the context menu. In the repository URL provide http://svn.annodex.net/OggplayPluginWin32SDK/trunk and checkout the head revision of the plugin sources. Please note, that the checkout can take a while over slow links because the plugin requires a number of libraries such as:<br />
* libogg<br />
<br />
* libtheora<br />
<br />
* libvorbis<br />
<br />
* libspeex<br />
<br />
* libsndfile<br />
<br />
* libfishsound<br />
<br />
* liboggz<br />
<br />
and<br />
<br />
* liboggplay.<br />
<br />
When your checkout is completed navigate to ''sln/plugin_all_200x''' (e.g. plugin_all_2005 for Visual Studio 2005). You should be able to open the ''plugin_all.sln'' file.<br />
<br />
The development configutation by default assumes that you installed gecko-sdk (with working version of '''xpidl''' compiler) in a directory parallel to the directory where you checked out the plugin sources. In paritcular, the directory structure by default should be as follows:<br />
<br />
* .\gecko-sdk<br />
** .\gecko-sdk<br />
*** .\gecko-sdk\bin\ ('''xpidl.exe''')<br />
* .\plugin_sources<br />
** .\plugin_sources\lib<br />
** .\plugin_sources\project_files<br />
** .\plugin_sources\sln <br />
*** .\plugin_sources\sln\plugin_all_200x ('''plugin_all.sln''')<br />
<br />
[of course the names of the Gecko SDK (''.\gecko-sdk'' above) and directory storing plugin source files (''.\plugin_sources'') can be completely arbitral]<br />
<br />
If you have '''Gecko SDK''' in different location in relation to ''plugin_all.sln'' file you will need to go the ''Properties'' of liboggplugin project in Visual Studio and find ''nsILibOggPlugin.idl'' file in the sources of that project. Next you need to change the directory of the custom compilation step (i.e. left-click on ''nsILibOggPlugin.idl'' file, choose ''Properties'' expand ''Custom Build Step'' and in ''Command Line'' option change the relative path to the location of '''xpidl''' compiler as well as to Gecko SDK ''.\idl'' directory. You can test the setup by compiling just the ''nsILibOggPlugin.idl'' file. If the build is sucessfull you can start compiling the plugin. In particular, compiling the default '''liboggplay''' project should build all the project in the VS solution and build the plugin in the end. The plugin binaries as well as binaries of other libraries on which plugin depends can be found under ''.\plugin_sources\sln\plugin_all_200x\debug'' if your default build configuration was '''Debug'''. When the plugin is released the '''Release''' build will be compiled to .\plugin_sources\sln\plugin_all_200x\release.<br />
<br />
By default a post build step is copying the plugin files ('''npliboggplugin.dll''' and '''npliboggplugin.xpt''') to ''C:\Program Files\Mozilla Firefox\plugins'' (default Mozilla Firefox location). If you have Mozilla Firefox installed in a different location you need to change the path in '''liboggplay''' ''Post-Built Event'' configuration (left mouse click on '''liboggplugin''' project then ''Properties'' then expand '''Build Events''' and navigate to '''Post-Built Event''').<br />
<br />
== Binaries of the OggPlay Mozilla plugin ==<br />
<br />
For people not interested in developing the plugin but willing test it on their own machine are very much encouraged to download the following binaries of the plugin:<br />
<br />
[http://wiki.xiph.org/index.php npliboggplugin.dll]<br><br />
[http://wiki.xiph.org/index.php npliboggplugin.xpt]<br />
<br />
Both file should be placed in the Mozilla plugin directory. You will need to restart Mozilla after copying the plugin files to ''plugin'' directory. This is usually ''C:\Program Files\Mozilla Firefox\plugins'' unless your Mozilla Firefox has been installed in different than default location. To test the plugin go to [http://media.annodex.net/cmmlwiki/Special:ListAllItems cmmlwiki]. If you see the video playing then you successfully installed the plugin. Enjoy!</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay/Win32&diff=6958OggPlay/Win322007-06-17T15:38:15Z<p>Laser13: /* Developing OggPlay plugin */</p>
<hr />
<div>== Overview ==<br />
<br />
This page was created to give developers a first hand assistance in starting development of Mozilla Firefox plugins on Windows. After the generic development environment<br />
setup we present the setup of OggPlay Firefox plugin for Vorbis/Theora OggPlay player plugin. If you have an experience in plugin development and want to test<br />
or contribute to the OggPlay plugin development you might want to skip to the next section and go directly to OggPlay player plugin. If you do not have your development plugin environment<br />
set up you should start with basic plugin environment configuration.<br />
<br />
== Setup of basic Mozilla plugin development environment ==<br />
<br />
The documentation on set up of development environment for Mozilla plugins development of Linux/UNIX, Win32 and MacOS is inconsistent and partially incomplete at least. In an attempt to fill in the blanks this section presents basic development environment setup for Win200x/XP.<br />
<br />
=== Basic Mozilla plugin setup for MS Windows Win200x/XP ===<br />
<br />
Although we tested those steps on Windows 2003 Server and Windows XP the configuration should work on the other Window platforms (such as Windows Vista). We also assume that you are using MS Visual Studio 2003 or 2005 altough you should be able to setup the environment using VS6 in a similar way. If you are using other environment/compiler you are on your own. <br />
<br />
Before starting setting up your plugin development environment you will need following tools and SDKs:<br />
<br />
* '''Mozilla Firefox''' (at least in version 1.7 provided you use appropriate Gecko SDK)<br />
<br />
* '''Mozilla Gecko SDK''' - there are two recent releases of Gecko SDK (1.7 for Firefox 1.0 and 1.8 for Firefox 1.5. and 2.0) available for download on [http://developer.mozilla.org/en/docs/Gecko_SDK Mozilla Developer Center]. Here are direct links to both versions of the SDK:<br />
** [http://releases.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7/gecko-sdk-i586-pc-msvc-1.7.zip Gecko SDK 1.7] , or<br />
** [http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/gecko-sdk-win32-msvc-1.8.0.4.zip Gecko SDK 1.8]<br />
<br />
* '''Mozilla WinTools''' - to use '''xpidl''' compiler you need also Mozilla WinTools: [http://ftp.mozilla.org/pub/mozilla.org/mozilla/source/wintools.zip Direct download]<br />
<br />
* '''Microsoft Platform SDK''' - to compile the plugins you will need to get also '''Platform SDK''' from [http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en Microsoft Download Center]<br />
<br />
* '''SVN client for Windows''' - there are many Windows clients for SVN, however one of the best is Tortoise SVN available from [http://tortoisesvn.tigris.org/ tigris.org]. While your are on it you might want to try [http://ankhsvn.tigris.org/ AnkhSVN] addin for Visual Studio.<br />
<br />
Once you unzipped '''Gecko SDK''' and installed '''MS Platform SDK''' you need to make sure your xpidl compiler is working properly. Unfortunately, the official release of '''Gecko SDK''' assumes you have following .dll on your system and in your '''PATH''' (provided you are using the newest version of '''WinTools'''):<br />
<br />
* glib-1.2.dll<br />
<br />
* libIDL-0.6.dll<br />
<br />
They are included in '''WinTools''' package under '''windows\bin\x86'''. In order for '''xpidl''' to run properly you need to have those .dll files in the same directory as xpidl.exe. Alternatively, if for some reason you do not want to copy those files across you can add the directory where those .dll are located to your system '''PATH''' variable. You can do that by navigating to ''Control Panel->System'' and then choosing ''Environment Variables'' in ''Advanced'' tab. There are also other options such as modifing Visual Studio environment by changing ''vcvarsall.bat'' script but it is outside of scope of this document.<br />
<br />
Once your xpidl you can try your environment and compile the official Mozilla samples. More details presented in the next section.<br />
<br />
=== Testing development environment with sample Mozilla plugin ===<br />
<br />
This is an optional step and unless you failed setting up environment for the OggPlay plugin or you want to build your own plugin you can probably skip this step. But if you want to understand the Mozilla plugin structure it is probably recommended to start with something simple.<br />
<br />
Once your xpidl is working properly you can try to compile the official Mozilla samples. You can download them [http://www.mozilla.org/projects/plugins/GeckoPluginSDK-samplesWin32.zip here]. The important thing about this archive is that we are interested only the ''Win32SDK\sdk\samples'' directory. In particular, attached gecko-sdk is not the most recent one. If you navigate to one of the samples and their ''windows'' directory you can open projects' .dsp file. If you are using newer version of Visual Studio than 6.0 it will be converted to the new format. Once you opened sample project you need probably update some of the configuration settings. In ''Project->Properties'' menu select ''C\C++->General'' and change Additional Include Directories to your Gecko SDK include directory ('''Note:''' this is preferably the new Gecko SDK in the archive gecko-sdk-i586-pc-msvc-1.7.zip or gecko-sdk-win32-msvc-1.8.0.4.zip and not the one attached to the samples archive). If you are using Gecko SDK 1.7 or Gecko SDK 1.8 you need to include samples '''include''' directory (i.e. ''..\..\include'') and only main Gecko SDK include (e.g. ''..\..\..\gecko-sdk\include'').<br />
<br />
You also need to point Visual Studio to the '''xpidl''' compiler. This is required to compile .idl file in the project. To change the default setting go to Visual Studio ''Solution Explorer'' and open ''Properties'' setting for the .idl file. Inspect file's ''Custom Build Step'' and adjust the directories in relation to the project file (.vcproj for VS200x or .dsp for VS6.0). In particular, you might need to change not only the path to the '''xpidl''' compiler but also to the ''idl'' directory of your Gecko SDK (e.g. ''..\..\..\..\gecko-sdk\xpcom\bin\xpidl -m header -I..\..\..\..\gecko-sdk\xpcom\idl $(InputPath)'' to ''..\..\..\gecko-sdk\bin\xpidl -m header -I..\..\..\gecko-sdk\idl $(InputPath)'')<br />
<br />
Now you should be able to compile the project. Resulting .dll and .xpt files should be copied to the Mozilla Firefox plugins directory (e.g. ''C:\Program Files\Mozilla Firefox\plugins"). Once you've done that you can restart Mozilla. In general it is a good idea to use following options to during the startup: '''-P development -console''' so you can see the plugin output/debug information.<br />
<br />
For help with setup of the environment and Visual Studio refere to a guide from [http://developer.mozilla.org/en/docs/Compiling_The_npruntime_Sample_Plugin_in_Visual_Studio Mozilla Developer Center].<br />
<br />
<br />
== Developing OggPlay plugin ==<br />
<br />
Once you have a working Mozilla plugin development environment you can start configuring the environment for OggPlay plugin.<br />
<br />
First of all, you need to install SVN client on your development machine. There are many Win32 SVN clients available but this document assumes that you have a client with the capabilities of Tortoise SVN.<br />
As mentioned previously at the moment Win32 developement environment for the OggPlay plugin is setup only for VS200x.<br />
<br />
To compile and start hacking on Win32 version of OggPlay plugin you need to check out [http://trac.annodex.net/browser/OggplayPluginWin32SDK/trunk OggplayPluginWin32SDK] from [http://svn.annodex.net svn.annodex.net].<br />
(you need to point your svn client to : http://svn.annodex.net/OggplayPluginWin32SDK/trunk). If you are using Tortoise SVN create a new directory in your favourite development location on your hard drive. Then navigate to the location where the new directory has been created. Use left mouse click on the directory where you want to check out the plugin code and development configuration and select '''SVN Checkout''' option in the context menu. In the repository URL provide http://svn.annodex.net/OggplayPluginWin32SDK/trunk and checkout the head revision of the plugin sources. Please note, that the checkout can take a while over slow links because the plugin requires a number of libraries such as:<br />
* libogg<br />
<br />
* libtheora<br />
<br />
* libvorbis<br />
<br />
* libspeex<br />
<br />
* libsndfile<br />
<br />
* libfishsound<br />
<br />
* liboggz<br />
<br />
and<br />
<br />
* liboggplay.<br />
<br />
When your checkout is completed navigate to ''sln/plugin_all_200x''' (e.g. plugin_all_2005 for Visual Studio 2005). You should be able to open the ''plugin_all.sln'' file.<br />
<br />
The development configutation by default assumes that you installed gecko-sdk (with working version of '''xpidl''' compiler) in a directory parallel to the directory where you checked out the plugin sources. In paritcular, the directory structure by default should be as follows:<br />
<br />
* .\gecko-sdk<br />
** .\gecko-sdk<br />
*** .\gecko-sdk\bin\ ('''xpidl.exe''')<br />
* .\plugin_sources<br />
** .\plugin_sources\lib<br />
** .\plugin_sources\project_files<br />
** .\plugin_sources\sln <br />
*** .\plugin_sources\sln\plugin_all_200x ('''plugin_all.sln''')<br />
<br />
[of course the names of the Gecko SDK (''.\gecko-sdk'' above) and directory storing plugin source files (''.\plugin_sources'') can be completely arbitral]<br />
<br />
If you have '''Gecko SDK''' in different location in relation to ''plugin_all.sln'' file you will need to go the ''Properties'' of liboggplugin project in Visual Studio and find ''nsILibOggPlugin.idl'' file in the sources of that project. Next you need to change the directory of the custom compilation step (i.e. left-click on ''nsILibOggPlugin.idl'' file, choose ''Properties'' expand ''Custom Build Step'' and in ''Command Line'' option change the relative path to the location of '''xpidl''' compiler as well as to Gecko SDK ''.\idl'' directory. You can test the setup by compiling just the ''nsILibOggPlugin.idl'' file. If the build is sucessfull you can start compiling the plugin. In particular, compiling the default '''liboggplay''' project should build all the project in the VS solution and build the plugin in the end. The plugin binaries as well as binaries of other libraries on which plugin depends can be found under ''.\plugin_sources\sln\plugin_all_200x\debug'' if your default build configuration was '''Debug'''. When the plugin is released the '''Release''' build will be compiled to .\plugin_sources\sln\plugin_all_200x\release.<br />
<br />
By default a post build step is copying the plugin files (npliboggplugin.dll and npliboggplugin.xpt) to ''C:\Program Files\Mozilla Firefox\plugins'' (default Mozilla Firefox location). If you have Mozilla Firefox installed in a different location you need to change the path in '''liboggplay''' ''Post-Built Event'' configuration (left mouse click on '''liboggplugin''' project then ''Properties'' then expand '''Build Events''' and navigate to '''Post-Built Event''').<br />
<br />
== Binaries of the OggPlay Mozilla plugin ==<br />
<br />
For people not interested in developing the plugin but willing test it on their own machine are very much encouraged to download the following binaries of the plugin:<br />
<br />
[http://wiki.xiph.org/index.php npliboggplugin.dll]<br><br />
[http://wiki.xiph.org/index.php npliboggplugin.xpt]<br />
<br />
Both file should be placed in the Mozilla plugin directory. You will need to restart Mozilla after copying the plugin files to ''plugin'' directory. This is usually ''C:\Program Files\Mozilla Firefox\plugins'' unless your Mozilla Firefox has been installed in different than default location. To test the plugin go to [http://media.annodex.net/cmmlwiki/Special:ListAllItems cmmlwiki]. If you see the video playing then you successfully installed the plugin. Enjoy!</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay/Win32&diff=6957OggPlay/Win322007-06-17T15:35:31Z<p>Laser13: /* Developing OggPlay plugin */</p>
<hr />
<div>== Overview ==<br />
<br />
This page was created to give developers a first hand assistance in starting development of Mozilla Firefox plugins on Windows. After the generic development environment<br />
setup we present the setup of OggPlay Firefox plugin for Vorbis/Theora OggPlay player plugin. If you have an experience in plugin development and want to test<br />
or contribute to the OggPlay plugin development you might want to skip to the next section and go directly to OggPlay player plugin. If you do not have your development plugin environment<br />
set up you should start with basic plugin environment configuration.<br />
<br />
== Setup of basic Mozilla plugin development environment ==<br />
<br />
The documentation on set up of development environment for Mozilla plugins development of Linux/UNIX, Win32 and MacOS is inconsistent and partially incomplete at least. In an attempt to fill in the blanks this section presents basic development environment setup for Win200x/XP.<br />
<br />
=== Basic Mozilla plugin setup for MS Windows Win200x/XP ===<br />
<br />
Although we tested those steps on Windows 2003 Server and Windows XP the configuration should work on the other Window platforms (such as Windows Vista). We also assume that you are using MS Visual Studio 2003 or 2005 altough you should be able to setup the environment using VS6 in a similar way. If you are using other environment/compiler you are on your own. <br />
<br />
Before starting setting up your plugin development environment you will need following tools and SDKs:<br />
<br />
* '''Mozilla Firefox''' (at least in version 1.7 provided you use appropriate Gecko SDK)<br />
<br />
* '''Mozilla Gecko SDK''' - there are two recent releases of Gecko SDK (1.7 for Firefox 1.0 and 1.8 for Firefox 1.5. and 2.0) available for download on [http://developer.mozilla.org/en/docs/Gecko_SDK Mozilla Developer Center]. Here are direct links to both versions of the SDK:<br />
** [http://releases.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7/gecko-sdk-i586-pc-msvc-1.7.zip Gecko SDK 1.7] , or<br />
** [http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/gecko-sdk-win32-msvc-1.8.0.4.zip Gecko SDK 1.8]<br />
<br />
* '''Mozilla WinTools''' - to use '''xpidl''' compiler you need also Mozilla WinTools: [http://ftp.mozilla.org/pub/mozilla.org/mozilla/source/wintools.zip Direct download]<br />
<br />
* '''Microsoft Platform SDK''' - to compile the plugins you will need to get also '''Platform SDK''' from [http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en Microsoft Download Center]<br />
<br />
* '''SVN client for Windows''' - there are many Windows clients for SVN, however one of the best is Tortoise SVN available from [http://tortoisesvn.tigris.org/ tigris.org]. While your are on it you might want to try [http://ankhsvn.tigris.org/ AnkhSVN] addin for Visual Studio.<br />
<br />
Once you unzipped '''Gecko SDK''' and installed '''MS Platform SDK''' you need to make sure your xpidl compiler is working properly. Unfortunately, the official release of '''Gecko SDK''' assumes you have following .dll on your system and in your '''PATH''' (provided you are using the newest version of '''WinTools'''):<br />
<br />
* glib-1.2.dll<br />
<br />
* libIDL-0.6.dll<br />
<br />
They are included in '''WinTools''' package under '''windows\bin\x86'''. In order for '''xpidl''' to run properly you need to have those .dll files in the same directory as xpidl.exe. Alternatively, if for some reason you do not want to copy those files across you can add the directory where those .dll are located to your system '''PATH''' variable. You can do that by navigating to ''Control Panel->System'' and then choosing ''Environment Variables'' in ''Advanced'' tab. There are also other options such as modifing Visual Studio environment by changing ''vcvarsall.bat'' script but it is outside of scope of this document.<br />
<br />
Once your xpidl you can try your environment and compile the official Mozilla samples. More details presented in the next section.<br />
<br />
=== Testing development environment with sample Mozilla plugin ===<br />
<br />
This is an optional step and unless you failed setting up environment for the OggPlay plugin or you want to build your own plugin you can probably skip this step. But if you want to understand the Mozilla plugin structure it is probably recommended to start with something simple.<br />
<br />
Once your xpidl is working properly you can try to compile the official Mozilla samples. You can download them [http://www.mozilla.org/projects/plugins/GeckoPluginSDK-samplesWin32.zip here]. The important thing about this archive is that we are interested only the ''Win32SDK\sdk\samples'' directory. In particular, attached gecko-sdk is not the most recent one. If you navigate to one of the samples and their ''windows'' directory you can open projects' .dsp file. If you are using newer version of Visual Studio than 6.0 it will be converted to the new format. Once you opened sample project you need probably update some of the configuration settings. In ''Project->Properties'' menu select ''C\C++->General'' and change Additional Include Directories to your Gecko SDK include directory ('''Note:''' this is preferably the new Gecko SDK in the archive gecko-sdk-i586-pc-msvc-1.7.zip or gecko-sdk-win32-msvc-1.8.0.4.zip and not the one attached to the samples archive). If you are using Gecko SDK 1.7 or Gecko SDK 1.8 you need to include samples '''include''' directory (i.e. ''..\..\include'') and only main Gecko SDK include (e.g. ''..\..\..\gecko-sdk\include'').<br />
<br />
You also need to point Visual Studio to the '''xpidl''' compiler. This is required to compile .idl file in the project. To change the default setting go to Visual Studio ''Solution Explorer'' and open ''Properties'' setting for the .idl file. Inspect file's ''Custom Build Step'' and adjust the directories in relation to the project file (.vcproj for VS200x or .dsp for VS6.0). In particular, you might need to change not only the path to the '''xpidl''' compiler but also to the ''idl'' directory of your Gecko SDK (e.g. ''..\..\..\..\gecko-sdk\xpcom\bin\xpidl -m header -I..\..\..\..\gecko-sdk\xpcom\idl $(InputPath)'' to ''..\..\..\gecko-sdk\bin\xpidl -m header -I..\..\..\gecko-sdk\idl $(InputPath)'')<br />
<br />
Now you should be able to compile the project. Resulting .dll and .xpt files should be copied to the Mozilla Firefox plugins directory (e.g. ''C:\Program Files\Mozilla Firefox\plugins"). Once you've done that you can restart Mozilla. In general it is a good idea to use following options to during the startup: '''-P development -console''' so you can see the plugin output/debug information.<br />
<br />
For help with setup of the environment and Visual Studio refere to a guide from [http://developer.mozilla.org/en/docs/Compiling_The_npruntime_Sample_Plugin_in_Visual_Studio Mozilla Developer Center].<br />
<br />
<br />
== Developing OggPlay plugin ==<br />
<br />
Once you have a working Mozilla plugin development environment you can start configuring the environment for OggPlay plugin.<br />
<br />
First of all, you need to install SVN client on your development machine. There are many Win32 SVN clients available but this document assumes that you have a client with the capabilities of Tortoise SVN.<br />
As mentioned previously at the moment Win32 developement environment for the OggPlay plugin is setup only for VS200x.<br />
<br />
To compile and start hacking on Win32 version of OggPlay plugin you need to check out [http://trac.annodex.net/browser/OggplayPluginWin32SDK/trunk OggplayPluginWin32SDK] from [http://svn.annodex.net svn.annodex.net].<br />
(you need to point your svn client to : http://svn.annodex.net/OggplayPluginWin32SDK/trunk). If you are using Tortoise SVN create a new directory in your favourite development location on your hard drive. Then navigate to the location where the new directory has been created. Use left mouse click on the directory where you want to check out the plugin code and development configuration and select '''SVN Checkout''' option in the context menu. In the repository URL provide http://svn.annodex.net/OggplayPluginWin32SDK/trunk and checkout the head revision of the plugin sources. Please note, that the checkout can take a while over slow links because the plugin requires a number of libraries such as:<br />
* libogg<br />
<br />
* libtheora<br />
<br />
* libvorbis<br />
<br />
* libspeex<br />
<br />
* libsndfile<br />
<br />
* libfishsound<br />
<br />
* liboggz<br />
<br />
and<br />
<br />
* liboggplay.<br />
<br />
When your checkout is completed navigate to ''sln/plugin_all_200x''' (e.g. plugin_all_2005 for Visual Studio 2005). You should be able to open the ''plugin_all.sln'' file.<br />
<br />
The development configutation by default assumes that you installed gecko-sdk (with working version of '''xpidl''' compiler) in a directory parallel to the directory where you checked out the plugin sources. In paritcular, the directory structure by default should be as follows:<br />
<br />
* .\gecko-sdk<br />
** .\gecko-sdk<br />
*** .\gecko-sdk\bin\ ('''xpidl.exe''')<br />
* .\plugin_sources<br />
** .\plugin_sources\lib<br />
** .\plugin_sources\project_files<br />
** .\plugin_sources\sln <br />
** .\plugin_sources\sln\plugin_all_200x ('''plugin_all.sln''')<br />
<br />
If you have '''Gecko SDK''' in different location in relation to ''plugin_all.sln'' file you will need to go the ''Properties'' of liboggplugin project in Visual Studio and find ''nsILibOggPlugin.idl'' file in the sources of that project. Next you need to change the directory of the custom compilation step (i.e. left-click on ''nsILibOggPlugin.idl'' file, choose ''Properties'' expand ''Custom Build Step'' and in ''Command Line'' option change the relative path to the location of '''xpidl''' compiler as well as to Gecko SDK ''.\idl'' directory. You can test the setup by compiling just the ''nsILibOggPlugin.idl'' file. If the build is sucessfull you can start compiling the plugin. In particular, compiling the default '''liboggplay''' project should build all the project in the VS solution and build the plugin in the end. The plugin binaries as well as binaries of other libraries on which plugin depends can be found under ''.\plugin_sources\sln\plugin_all_200x\debug'' if your default build configuration was '''Debug'''. When the plugin is released the '''Release''' build will be compiled to .\plugin_sources\sln\plugin_all_200x\release.<br />
<br />
By default a post build step is copying the plugin files to ''C:\Program Files\Mozilla Firefox\plugins'' (default Mozilla Firefox location). If you have Mozilla Firefox installed in a different location you need to change the path in '''liboggplay''' ''Post-Built Event'' configuration (left mouse click on '''liboggplugin''' project then ''Properties'' then expand '''Build Events''' and navigate to '''Post-Built Event''').<br />
<br />
== Binaries of the OggPlay Mozilla plugin ==<br />
<br />
For people not interested in developing the plugin but willing test it on their own machine are very much encouraged to download the following binaries of the plugin:<br />
<br />
[http://wiki.xiph.org/index.php npliboggplugin.dll]<br><br />
[http://wiki.xiph.org/index.php npliboggplugin.xpt]<br />
<br />
Both file should be placed in the Mozilla plugin directory. You will need to restart Mozilla after copying the plugin files to ''plugin'' directory. This is usually ''C:\Program Files\Mozilla Firefox\plugins'' unless your Mozilla Firefox has been installed in different than default location. To test the plugin go to [http://media.annodex.net/cmmlwiki/Special:ListAllItems cmmlwiki]. If you see the video playing then you successfully installed the plugin. Enjoy!</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay/Win32&diff=6956OggPlay/Win322007-06-17T15:26:36Z<p>Laser13: /* Developing OggPlay plugin */</p>
<hr />
<div>== Overview ==<br />
<br />
This page was created to give developers a first hand assistance in starting development of Mozilla Firefox plugins on Windows. After the generic development environment<br />
setup we present the setup of OggPlay Firefox plugin for Vorbis/Theora OggPlay player plugin. If you have an experience in plugin development and want to test<br />
or contribute to the OggPlay plugin development you might want to skip to the next section and go directly to OggPlay player plugin. If you do not have your development plugin environment<br />
set up you should start with basic plugin environment configuration.<br />
<br />
== Setup of basic Mozilla plugin development environment ==<br />
<br />
The documentation on set up of development environment for Mozilla plugins development of Linux/UNIX, Win32 and MacOS is inconsistent and partially incomplete at least. In an attempt to fill in the blanks this section presents basic development environment setup for Win200x/XP.<br />
<br />
=== Basic Mozilla plugin setup for MS Windows Win200x/XP ===<br />
<br />
Although we tested those steps on Windows 2003 Server and Windows XP the configuration should work on the other Window platforms (such as Windows Vista). We also assume that you are using MS Visual Studio 2003 or 2005 altough you should be able to setup the environment using VS6 in a similar way. If you are using other environment/compiler you are on your own. <br />
<br />
Before starting setting up your plugin development environment you will need following tools and SDKs:<br />
<br />
* '''Mozilla Firefox''' (at least in version 1.7 provided you use appropriate Gecko SDK)<br />
<br />
* '''Mozilla Gecko SDK''' - there are two recent releases of Gecko SDK (1.7 for Firefox 1.0 and 1.8 for Firefox 1.5. and 2.0) available for download on [http://developer.mozilla.org/en/docs/Gecko_SDK Mozilla Developer Center]. Here are direct links to both versions of the SDK:<br />
** [http://releases.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7/gecko-sdk-i586-pc-msvc-1.7.zip Gecko SDK 1.7] , or<br />
** [http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/gecko-sdk-win32-msvc-1.8.0.4.zip Gecko SDK 1.8]<br />
<br />
* '''Mozilla WinTools''' - to use '''xpidl''' compiler you need also Mozilla WinTools: [http://ftp.mozilla.org/pub/mozilla.org/mozilla/source/wintools.zip Direct download]<br />
<br />
* '''Microsoft Platform SDK''' - to compile the plugins you will need to get also '''Platform SDK''' from [http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en Microsoft Download Center]<br />
<br />
* '''SVN client for Windows''' - there are many Windows clients for SVN, however one of the best is Tortoise SVN available from [http://tortoisesvn.tigris.org/ tigris.org]. While your are on it you might want to try [http://ankhsvn.tigris.org/ AnkhSVN] addin for Visual Studio.<br />
<br />
Once you unzipped '''Gecko SDK''' and installed '''MS Platform SDK''' you need to make sure your xpidl compiler is working properly. Unfortunately, the official release of '''Gecko SDK''' assumes you have following .dll on your system and in your '''PATH''' (provided you are using the newest version of '''WinTools'''):<br />
<br />
* glib-1.2.dll<br />
<br />
* libIDL-0.6.dll<br />
<br />
They are included in '''WinTools''' package under '''windows\bin\x86'''. In order for '''xpidl''' to run properly you need to have those .dll files in the same directory as xpidl.exe. Alternatively, if for some reason you do not want to copy those files across you can add the directory where those .dll are located to your system '''PATH''' variable. You can do that by navigating to ''Control Panel->System'' and then choosing ''Environment Variables'' in ''Advanced'' tab. There are also other options such as modifing Visual Studio environment by changing ''vcvarsall.bat'' script but it is outside of scope of this document.<br />
<br />
Once your xpidl you can try your environment and compile the official Mozilla samples. More details presented in the next section.<br />
<br />
=== Testing development environment with sample Mozilla plugin ===<br />
<br />
This is an optional step and unless you failed setting up environment for the OggPlay plugin or you want to build your own plugin you can probably skip this step. But if you want to understand the Mozilla plugin structure it is probably recommended to start with something simple.<br />
<br />
Once your xpidl is working properly you can try to compile the official Mozilla samples. You can download them [http://www.mozilla.org/projects/plugins/GeckoPluginSDK-samplesWin32.zip here]. The important thing about this archive is that we are interested only the ''Win32SDK\sdk\samples'' directory. In particular, attached gecko-sdk is not the most recent one. If you navigate to one of the samples and their ''windows'' directory you can open projects' .dsp file. If you are using newer version of Visual Studio than 6.0 it will be converted to the new format. Once you opened sample project you need probably update some of the configuration settings. In ''Project->Properties'' menu select ''C\C++->General'' and change Additional Include Directories to your Gecko SDK include directory ('''Note:''' this is preferably the new Gecko SDK in the archive gecko-sdk-i586-pc-msvc-1.7.zip or gecko-sdk-win32-msvc-1.8.0.4.zip and not the one attached to the samples archive). If you are using Gecko SDK 1.7 or Gecko SDK 1.8 you need to include samples '''include''' directory (i.e. ''..\..\include'') and only main Gecko SDK include (e.g. ''..\..\..\gecko-sdk\include'').<br />
<br />
You also need to point Visual Studio to the '''xpidl''' compiler. This is required to compile .idl file in the project. To change the default setting go to Visual Studio ''Solution Explorer'' and open ''Properties'' setting for the .idl file. Inspect file's ''Custom Build Step'' and adjust the directories in relation to the project file (.vcproj for VS200x or .dsp for VS6.0). In particular, you might need to change not only the path to the '''xpidl''' compiler but also to the ''idl'' directory of your Gecko SDK (e.g. ''..\..\..\..\gecko-sdk\xpcom\bin\xpidl -m header -I..\..\..\..\gecko-sdk\xpcom\idl $(InputPath)'' to ''..\..\..\gecko-sdk\bin\xpidl -m header -I..\..\..\gecko-sdk\idl $(InputPath)'')<br />
<br />
Now you should be able to compile the project. Resulting .dll and .xpt files should be copied to the Mozilla Firefox plugins directory (e.g. ''C:\Program Files\Mozilla Firefox\plugins"). Once you've done that you can restart Mozilla. In general it is a good idea to use following options to during the startup: '''-P development -console''' so you can see the plugin output/debug information.<br />
<br />
For help with setup of the environment and Visual Studio refere to a guide from [http://developer.mozilla.org/en/docs/Compiling_The_npruntime_Sample_Plugin_in_Visual_Studio Mozilla Developer Center].<br />
<br />
<br />
== Developing OggPlay plugin ==<br />
<br />
Once you have a working Mozilla plugin development environment you can start configuring the environment for OggPlay plugin.<br />
<br />
First of all, you need to install SVN client on your development machine. There are many Win32 SVN clients available but this document assumes that you have a client with the capabilities of Tortoise SVN.<br />
As mentioned previously at the moment Win32 developement environment for the OggPlay plugin is setup only for VS200x.<br />
<br />
To compile and start hacking on Win32 version of OggPlay plugin you need to check out [http://trac.annodex.net/browser/OggplayPluginWin32SDK/trunk OggplayPluginWin32SDK] from [http://svn.annodex.net svn.annodex.net].<br />
(you need to point your svn client to : http://svn.annodex.net/OggplayPluginWin32SDK/trunk). If you are using Tortoise SVN create a new directory in your favourite development location on your hard drive. Then navigate to the location where the new directory has been created. Use left mouse click on the directory where you want to check out the plugin code and development configuration and select '''SVN Checkout''' option in the context menu. In the repository URL provide http://svn.annodex.net/OggplayPluginWin32SDK/trunk and checkout the head revision of the plugin sources. Please note, that the checkout can take a while over slow links because the plugin requires a number of libraries such as:<br />
* libogg<br />
<br />
* libtheora<br />
<br />
* libvorbis<br />
<br />
* libspeex<br />
<br />
* libsndfile<br />
<br />
* libfishsound<br />
<br />
* liboggz<br />
<br />
and<br />
<br />
* liboggplay.<br />
<br />
When your checkout is completed navigate to ''sln/plugin_all_200x''' (e.g. plugin_all_2005 for Visual Studio 2005). You should be able to open the ''plugin_all.sln'' file.<br />
<br />
The development configutation by default assumes that you installed gecko-sdk (with working version of '''xpidl''' compiler) in a directory parallel to the directory where you checked out the plugin sources. In paritcular, the directory structure by default should be as follows:<br />
<br />
* .\gecko-sdk<br />
** .\gecko-sdk<br />
*** .\gecko-sdk\bin\ ('''xpidl.exe''')<br />
* .\plugin_sources<br />
** .\plugin_sources\lib<br />
** .\plugin_sources\project_files<br />
** .\plugin_sources\sln ('''plugin_all.sln''')<br />
<br />
If you have '''Gecko SDK''' in different location in relation to ''plugin_all.sln'' file you will need to go the ''Properties'' of liboggplugin project in Visual Studio and find ''nsILibOggPlugin.idl'' file in the sources of that project. Next you need to change the directory of the custom compilation step (i.e. left-click on nsILibOggPlugin.idl file, choose ''Properties'' expand ''Custom Build Step'' and in ''Command Line'' option change the relative path to the location of '''xpidl''' compiler as well as to Gecko SDK ''.\idl'' directory.<br />
<br />
== Binaries of the OggPlay Mozilla plugin ==<br />
<br />
For people not interested in developing the plugin but willing test it on their own machine are very much encouraged to download the following binaries of the plugin:<br />
<br />
[http://wiki.xiph.org/index.php npliboggplugin.dll]<br><br />
[http://wiki.xiph.org/index.php npliboggplugin.xpt]<br />
<br />
Both file should be placed in the Mozilla plugin directory. You will need to restart Mozilla after copying the plugin files to ''plugin'' directory. This is usually ''C:\Program Files\Mozilla Firefox\plugins'' unless your Mozilla Firefox has been installed in different than default location. To test the plugin go to [http://media.annodex.net/cmmlwiki/Special:ListAllItems cmmlwiki]. If you see the video playing then you successfully installed the plugin. Enjoy!</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay/Win32&diff=6955OggPlay/Win322007-06-17T15:15:38Z<p>Laser13: /* Developing OggPlay plugin */</p>
<hr />
<div>== Overview ==<br />
<br />
This page was created to give developers a first hand assistance in starting development of Mozilla Firefox plugins on Windows. After the generic development environment<br />
setup we present the setup of OggPlay Firefox plugin for Vorbis/Theora OggPlay player plugin. If you have an experience in plugin development and want to test<br />
or contribute to the OggPlay plugin development you might want to skip to the next section and go directly to OggPlay player plugin. If you do not have your development plugin environment<br />
set up you should start with basic plugin environment configuration.<br />
<br />
== Setup of basic Mozilla plugin development environment ==<br />
<br />
The documentation on set up of development environment for Mozilla plugins development of Linux/UNIX, Win32 and MacOS is inconsistent and partially incomplete at least. In an attempt to fill in the blanks this section presents basic development environment setup for Win200x/XP.<br />
<br />
=== Basic Mozilla plugin setup for MS Windows Win200x/XP ===<br />
<br />
Although we tested those steps on Windows 2003 Server and Windows XP the configuration should work on the other Window platforms (such as Windows Vista). We also assume that you are using MS Visual Studio 2003 or 2005 altough you should be able to setup the environment using VS6 in a similar way. If you are using other environment/compiler you are on your own. <br />
<br />
Before starting setting up your plugin development environment you will need following tools and SDKs:<br />
<br />
* '''Mozilla Firefox''' (at least in version 1.7 provided you use appropriate Gecko SDK)<br />
<br />
* '''Mozilla Gecko SDK''' - there are two recent releases of Gecko SDK (1.7 for Firefox 1.0 and 1.8 for Firefox 1.5. and 2.0) available for download on [http://developer.mozilla.org/en/docs/Gecko_SDK Mozilla Developer Center]. Here are direct links to both versions of the SDK:<br />
** [http://releases.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7/gecko-sdk-i586-pc-msvc-1.7.zip Gecko SDK 1.7] , or<br />
** [http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/gecko-sdk-win32-msvc-1.8.0.4.zip Gecko SDK 1.8]<br />
<br />
* '''Mozilla WinTools''' - to use '''xpidl''' compiler you need also Mozilla WinTools: [http://ftp.mozilla.org/pub/mozilla.org/mozilla/source/wintools.zip Direct download]<br />
<br />
* '''Microsoft Platform SDK''' - to compile the plugins you will need to get also '''Platform SDK''' from [http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en Microsoft Download Center]<br />
<br />
* '''SVN client for Windows''' - there are many Windows clients for SVN, however one of the best is Tortoise SVN available from [http://tortoisesvn.tigris.org/ tigris.org]. While your are on it you might want to try [http://ankhsvn.tigris.org/ AnkhSVN] addin for Visual Studio.<br />
<br />
Once you unzipped '''Gecko SDK''' and installed '''MS Platform SDK''' you need to make sure your xpidl compiler is working properly. Unfortunately, the official release of '''Gecko SDK''' assumes you have following .dll on your system and in your '''PATH''' (provided you are using the newest version of '''WinTools'''):<br />
<br />
* glib-1.2.dll<br />
<br />
* libIDL-0.6.dll<br />
<br />
They are included in '''WinTools''' package under '''windows\bin\x86'''. In order for '''xpidl''' to run properly you need to have those .dll files in the same directory as xpidl.exe. Alternatively, if for some reason you do not want to copy those files across you can add the directory where those .dll are located to your system '''PATH''' variable. You can do that by navigating to ''Control Panel->System'' and then choosing ''Environment Variables'' in ''Advanced'' tab. There are also other options such as modifing Visual Studio environment by changing ''vcvarsall.bat'' script but it is outside of scope of this document.<br />
<br />
Once your xpidl you can try your environment and compile the official Mozilla samples. More details presented in the next section.<br />
<br />
=== Testing development environment with sample Mozilla plugin ===<br />
<br />
This is an optional step and unless you failed setting up environment for the OggPlay plugin or you want to build your own plugin you can probably skip this step. But if you want to understand the Mozilla plugin structure it is probably recommended to start with something simple.<br />
<br />
Once your xpidl is working properly you can try to compile the official Mozilla samples. You can download them [http://www.mozilla.org/projects/plugins/GeckoPluginSDK-samplesWin32.zip here]. The important thing about this archive is that we are interested only the ''Win32SDK\sdk\samples'' directory. In particular, attached gecko-sdk is not the most recent one. If you navigate to one of the samples and their ''windows'' directory you can open projects' .dsp file. If you are using newer version of Visual Studio than 6.0 it will be converted to the new format. Once you opened sample project you need probably update some of the configuration settings. In ''Project->Properties'' menu select ''C\C++->General'' and change Additional Include Directories to your Gecko SDK include directory ('''Note:''' this is preferably the new Gecko SDK in the archive gecko-sdk-i586-pc-msvc-1.7.zip or gecko-sdk-win32-msvc-1.8.0.4.zip and not the one attached to the samples archive). If you are using Gecko SDK 1.7 or Gecko SDK 1.8 you need to include samples '''include''' directory (i.e. ''..\..\include'') and only main Gecko SDK include (e.g. ''..\..\..\gecko-sdk\include'').<br />
<br />
You also need to point Visual Studio to the '''xpidl''' compiler. This is required to compile .idl file in the project. To change the default setting go to Visual Studio ''Solution Explorer'' and open ''Properties'' setting for the .idl file. Inspect file's ''Custom Build Step'' and adjust the directories in relation to the project file (.vcproj for VS200x or .dsp for VS6.0). In particular, you might need to change not only the path to the '''xpidl''' compiler but also to the ''idl'' directory of your Gecko SDK (e.g. ''..\..\..\..\gecko-sdk\xpcom\bin\xpidl -m header -I..\..\..\..\gecko-sdk\xpcom\idl $(InputPath)'' to ''..\..\..\gecko-sdk\bin\xpidl -m header -I..\..\..\gecko-sdk\idl $(InputPath)'')<br />
<br />
Now you should be able to compile the project. Resulting .dll and .xpt files should be copied to the Mozilla Firefox plugins directory (e.g. ''C:\Program Files\Mozilla Firefox\plugins"). Once you've done that you can restart Mozilla. In general it is a good idea to use following options to during the startup: '''-P development -console''' so you can see the plugin output/debug information.<br />
<br />
For help with setup of the environment and Visual Studio refere to a guide from [http://developer.mozilla.org/en/docs/Compiling_The_npruntime_Sample_Plugin_in_Visual_Studio Mozilla Developer Center].<br />
<br />
<br />
== Developing OggPlay plugin ==<br />
<br />
Once you have a working Mozilla plugin development environment you can start configuring the environment for OggPlay plugin.<br />
<br />
First of all, you need to install SVN client on your development machine. There are many Win32 SVN clients available but this document assumes that you have a client with the capabilities of Tortoise SVN.<br />
As mentioned previously at the moment Win32 developement environment for the OggPlay plugin is setup only for VS200x.<br />
<br />
To compile and start hacking on Win32 version of OggPlay plugin you need to check out [http://trac.annodex.net/browser/OggplayPluginWin32SDK/trunk OggplayPluginWin32SDK] from [http://svn.annodex.net svn.annodex.net].<br />
(you need to point your svn client to : http://svn.annodex.net/OggplayPluginWin32SDK/trunk). If you are using Tortoise SVN create a new directory in your favourite development location on your hard drive. Then navigate to the location where the new directory has been created. Use left mouse click on the directory where you want to check out the plugin code and development configuration and select '''SVN Checkout''' option in the context menu. In the repository URL provide http://svn.annodex.net/OggplayPluginWin32SDK/trunk and checkout the head revision of the plugin sources ('''Note:''' The checkout can take a while over slow links because the plugin requires a number of libraries such as:<br />
* libogg<br />
<br />
* libtheora<br />
<br />
* libvorbis<br />
<br />
* libspeex<br />
<br />
* libsndfile<br />
<br />
* libfishsound<br />
<br />
* liboggz<br />
<br />
and<br />
<br />
* liboggplay.<br />
<br />
When your checkout is completed navigate to ''sln/plugin_all_200x''' (e.g. plugin_all_2005 for Visual Studio 2005). You should be able to open the ''plugin.sln'' file.<br />
<br />
== Binaries of the OggPlay Mozilla plugin ==<br />
<br />
For people not interested in developing the plugin but willing test it on their own machine are very much encouraged to download the following binaries of the plugin:<br />
<br />
[http://wiki.xiph.org/index.php npliboggplugin.dll]<br><br />
[http://wiki.xiph.org/index.php npliboggplugin.xpt]<br />
<br />
Both file should be placed in the Mozilla plugin directory. You will need to restart Mozilla after copying the plugin files to ''plugin'' directory. This is usually ''C:\Program Files\Mozilla Firefox\plugins'' unless your Mozilla Firefox has been installed in different than default location. To test the plugin go to [http://media.annodex.net/cmmlwiki/Special:ListAllItems cmmlwiki]. If you see the video playing then you successfully installed the plugin. Enjoy!</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay&diff=6954OggPlay2007-06-17T15:00:53Z<p>Laser13: /* Windows */</p>
<hr />
<div>== Overview ==<br />
OggPlay is a library designed to allow drop-in playback of Xiph.Org media in an application. OggPlay handles demuxing and decoding, generates timestamps for raw data, maintains synchronisation across multiple streams, and provides a lock-free buffer implementation for easy multithreading.<br />
<br />
OggPlay is a '''work in progress''': the first release should be availably by mid-2007.<br />
<br />
OggPlay is currently hosted by [http://www.annodex.net Annodex], although there are plans to move hosting over to the Xiph.Org servers. SVN access is available through http://svn.annodex.net/liboggplay/trunk.<br />
<br />
== Developer's Guide ==<br />
<br />
=== Linux ===<br />
<br />
=== Windows ===<br />
<br />
The Win32 version of the plugin has been developed and tested on Win200x/XP platforms.<br />
<br />
For detailed instructions how to setup Mozilla plugin development environment and start hacking on Win32 version of OggPlay Mozilla Firefox plugin go to: [http://wiki.xiph.org/index.php/OggPlay/Win32 Win32 Development Envrionment Setup]. The same link provides links to the plugin binaries and instructions how to install and test Oggplay Mozilla plugin.<br />
<br />
=== MacOS ===<br />
<br />
== Plugin Javascript API ==<br />
<br />
View the [[OggPlayJavascriptAPI | draft OggPlay plugin Javascript API]]</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay/Win32&diff=6945OggPlay/Win322007-06-16T03:09:48Z<p>Laser13: /* Binaries of the OggPlay Mozilla plugin */</p>
<hr />
<div>== Overview ==<br />
<br />
This page was created to give developers a first hand assistance in starting development of Mozilla Firefox plugins on Windows. After the generic development environment<br />
setup we present the setup of OggPlay Firefox plugin for Vorbis/Theora OggPlay player plugin. If you have an experience in plugin development and want to test<br />
or contribute to the OggPlay plugin development you might want to skip to the next section and go directly to OggPlay player plugin. If you do not have your development plugin environment<br />
set up you should start with basic plugin environment configuration.<br />
<br />
== Setup of basic Mozilla plugin development environment ==<br />
<br />
The documentation on set up of development environment for Mozilla plugins development of Linux/UNIX, Win32 and MacOS is inconsistent and partially incomplete at least. In an attempt to fill in the blanks this section presents basic development environment setup for Win200x/XP.<br />
<br />
=== Basic Mozilla plugin setup for MS Windows Win200x/XP ===<br />
<br />
Although we tested those steps on Windows 2003 Server and Windows XP the configuration should work on the other Window platforms (such as Windows Vista). We also assume that you are using MS Visual Studio 2003 or 2005 altough you should be able to setup the environment using VS6 in a similar way. If you are using other environment/compiler you are on your own. <br />
<br />
Before starting setting up your plugin development environment you will need following tools and SDKs:<br />
<br />
* '''Mozilla Firefox''' (at least in version 1.7 provided you use appropriate Gecko SDK)<br />
<br />
* '''Mozilla Gecko SDK''' - there are two recent releases of Gecko SDK (1.7 for Firefox 1.0 and 1.8 for Firefox 1.5. and 2.0) available for download on [http://developer.mozilla.org/en/docs/Gecko_SDK Mozilla Developer Center]. Here are direct links to both versions of the SDK:<br />
** [http://releases.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7/gecko-sdk-i586-pc-msvc-1.7.zip Gecko SDK 1.7] , or<br />
** [http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/gecko-sdk-win32-msvc-1.8.0.4.zip Gecko SDK 1.8]<br />
<br />
* '''Mozilla WinTools''' - to use '''xpidl''' compiler you need also Mozilla WinTools: [http://ftp.mozilla.org/pub/mozilla.org/mozilla/source/wintools.zip Direct download]<br />
<br />
* '''Microsoft Platform SDK''' - to compile the plugins you will need to get also '''Platform SDK''' from [http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en Microsoft Download Center]<br />
<br />
* '''SVN client for Windows''' - there are many Windows clients for SVN, however one of the best is Tortoise SVN available from [http://tortoisesvn.tigris.org/ tigris.org]. While your are on it you might want to try [http://ankhsvn.tigris.org/ AnkhSVN] addin for Visual Studio.<br />
<br />
Once you unzipped '''Gecko SDK''' and installed '''MS Platform SDK''' you need to make sure your xpidl compiler is working properly. Unfortunately, the official release of '''Gecko SDK''' assumes you have following .dll on your system and in your '''PATH''' (provided you are using the newest version of '''WinTools'''):<br />
<br />
* glib-1.2.dll<br />
<br />
* libIDL-0.6.dll<br />
<br />
They are included in '''WinTools''' package under '''windows\bin\x86'''. In order for '''xpidl''' to run properly you need to have those .dll files in the same directory as xpidl.exe. Alternatively, if for some reason you do not want to copy those files across you can add the directory where those .dll are located to your system '''PATH''' variable. You can do that by navigating to ''Control Panel->System'' and then choosing ''Environment Variables'' in ''Advanced'' tab. There are also other options such as modifing Visual Studio environment by changing ''vcvarsall.bat'' script but it is outside of scope of this document.<br />
<br />
Once your xpidl you can try your environment and compile the official Mozilla samples. More details presented in the next section.<br />
<br />
=== Testing development environment with sample Mozilla plugin ===<br />
<br />
This is an optional step and unless you failed setting up environment for the OggPlay plugin or you want to build your own plugin you can probably skip this step. But if you want to understand the Mozilla plugin structure it is probably recommended to start with something simple.<br />
<br />
Once your xpidl is working properly you can try to compile the official Mozilla samples. You can download them [http://www.mozilla.org/projects/plugins/GeckoPluginSDK-samplesWin32.zip here]. The important thing about this archive is that we are interested only the ''Win32SDK\sdk\samples'' directory. In particular, attached gecko-sdk is not the most recent one. If you navigate to one of the samples and their ''windows'' directory you can open projects' .dsp file. If you are using newer version of Visual Studio than 6.0 it will be converted to the new format. Once you opened sample project you need probably update some of the configuration settings. In ''Project->Properties'' menu select ''C\C++->General'' and change Additional Include Directories to your Gecko SDK include directory ('''Note:''' this is preferably the new Gecko SDK in the archive gecko-sdk-i586-pc-msvc-1.7.zip or gecko-sdk-win32-msvc-1.8.0.4.zip and not the one attached to the samples archive). If you are using Gecko SDK 1.7 or Gecko SDK 1.8 you need to include samples '''include''' directory (i.e. ''..\..\include'') and only main Gecko SDK include (e.g. ''..\..\..\gecko-sdk\include'').<br />
<br />
You also need to point Visual Studio to the '''xpidl''' compiler. This is required to compile .idl file in the project. To change the default setting go to Visual Studio ''Solution Explorer'' and open ''Properties'' setting for the .idl file. Inspect file's ''Custom Build Step'' and adjust the directories in relation to the project file (.vcproj for VS200x or .dsp for VS6.0). In particular, you might need to change not only the path to the '''xpidl''' compiler but also to the ''idl'' directory of your Gecko SDK (e.g. ''..\..\..\..\gecko-sdk\xpcom\bin\xpidl -m header -I..\..\..\..\gecko-sdk\xpcom\idl $(InputPath)'' to ''..\..\..\gecko-sdk\bin\xpidl -m header -I..\..\..\gecko-sdk\idl $(InputPath)'')<br />
<br />
Now you should be able to compile the project. Resulting .dll and .xpt files should be copied to the Mozilla Firefox plugins directory (e.g. ''C:\Program Files\Mozilla Firefox\plugins"). Once you've done that you can restart Mozilla. In general it is a good idea to use following options to during the startup: '''-P development -console''' so you can see the plugin output/debug information.<br />
<br />
For help with setup of the environment and Visual Studio refere to a guide from [http://developer.mozilla.org/en/docs/Compiling_The_npruntime_Sample_Plugin_in_Visual_Studio Mozilla Developer Center].<br />
<br />
<br />
== Developing OggPlay plugin ==<br />
<br />
Once you have a working Mozilla plugin development environment you can start configuring the environment for OggPlay plugin.<br />
<br />
First of all, you need to install SVN client on your development machine. There are many options there but this document assumes that you a client with the capabilities of Tortoise SVN.<br />
<br />
== Binaries of the OggPlay Mozilla plugin ==<br />
<br />
For people not interested in developing the plugin but willing test it on their own machine are very much encouraged to download the following binaries of the plugin:<br />
<br />
[http://wiki.xiph.org/index.php npliboggplugin.dll]<br><br />
[http://wiki.xiph.org/index.php npliboggplugin.xpt]<br />
<br />
Both file should be placed in the Mozilla plugin directory. You will need to restart Mozilla after copying the plugin files to ''plugin'' directory. This is usually ''C:\Program Files\Mozilla Firefox\plugins'' unless your Mozilla Firefox has been installed in different than default location. To test the plugin go to [http://media.annodex.net/cmmlwiki/Special:ListAllItems cmmlwiki]. If you see the video playing then you successfully installed the plugin. Enjoy!</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay/Win32&diff=6944OggPlay/Win322007-06-16T02:31:09Z<p>Laser13: /* Binaries of the OggPlay Mozilla plugin */</p>
<hr />
<div>== Overview ==<br />
<br />
This page was created to give developers a first hand assistance in starting development of Mozilla Firefox plugins on Windows. After the generic development environment<br />
setup we present the setup of OggPlay Firefox plugin for Vorbis/Theora OggPlay player plugin. If you have an experience in plugin development and want to test<br />
or contribute to the OggPlay plugin development you might want to skip to the next section and go directly to OggPlay player plugin. If you do not have your development plugin environment<br />
set up you should start with basic plugin environment configuration.<br />
<br />
== Setup of basic Mozilla plugin development environment ==<br />
<br />
The documentation on set up of development environment for Mozilla plugins development of Linux/UNIX, Win32 and MacOS is inconsistent and partially incomplete at least. In an attempt to fill in the blanks this section presents basic development environment setup for Win200x/XP.<br />
<br />
=== Basic Mozilla plugin setup for MS Windows Win200x/XP ===<br />
<br />
Although we tested those steps on Windows 2003 Server and Windows XP the configuration should work on the other Window platforms (such as Windows Vista). We also assume that you are using MS Visual Studio 2003 or 2005 altough you should be able to setup the environment using VS6 in a similar way. If you are using other environment/compiler you are on your own. <br />
<br />
Before starting setting up your plugin development environment you will need following tools and SDKs:<br />
<br />
* '''Mozilla Firefox''' (at least in version 1.7 provided you use appropriate Gecko SDK)<br />
<br />
* '''Mozilla Gecko SDK''' - there are two recent releases of Gecko SDK (1.7 for Firefox 1.0 and 1.8 for Firefox 1.5. and 2.0) available for download on [http://developer.mozilla.org/en/docs/Gecko_SDK Mozilla Developer Center]. Here are direct links to both versions of the SDK:<br />
** [http://releases.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7/gecko-sdk-i586-pc-msvc-1.7.zip Gecko SDK 1.7] , or<br />
** [http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/gecko-sdk-win32-msvc-1.8.0.4.zip Gecko SDK 1.8]<br />
<br />
* '''Mozilla WinTools''' - to use '''xpidl''' compiler you need also Mozilla WinTools: [http://ftp.mozilla.org/pub/mozilla.org/mozilla/source/wintools.zip Direct download]<br />
<br />
* '''Microsoft Platform SDK''' - to compile the plugins you will need to get also '''Platform SDK''' from [http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en Microsoft Download Center]<br />
<br />
* '''SVN client for Windows''' - there are many Windows clients for SVN, however one of the best is Tortoise SVN available from [http://tortoisesvn.tigris.org/ tigris.org]. While your are on it you might want to try [http://ankhsvn.tigris.org/ AnkhSVN] addin for Visual Studio.<br />
<br />
Once you unzipped '''Gecko SDK''' and installed '''MS Platform SDK''' you need to make sure your xpidl compiler is working properly. Unfortunately, the official release of '''Gecko SDK''' assumes you have following .dll on your system and in your '''PATH''' (provided you are using the newest version of '''WinTools'''):<br />
<br />
* glib-1.2.dll<br />
<br />
* libIDL-0.6.dll<br />
<br />
They are included in '''WinTools''' package under '''windows\bin\x86'''. In order for '''xpidl''' to run properly you need to have those .dll files in the same directory as xpidl.exe. Alternatively, if for some reason you do not want to copy those files across you can add the directory where those .dll are located to your system '''PATH''' variable. You can do that by navigating to ''Control Panel->System'' and then choosing ''Environment Variables'' in ''Advanced'' tab. There are also other options such as modifing Visual Studio environment by changing ''vcvarsall.bat'' script but it is outside of scope of this document.<br />
<br />
Once your xpidl you can try your environment and compile the official Mozilla samples. More details presented in the next section.<br />
<br />
=== Testing development environment with sample Mozilla plugin ===<br />
<br />
This is an optional step and unless you failed setting up environment for the OggPlay plugin or you want to build your own plugin you can probably skip this step. But if you want to understand the Mozilla plugin structure it is probably recommended to start with something simple.<br />
<br />
Once your xpidl is working properly you can try to compile the official Mozilla samples. You can download them [http://www.mozilla.org/projects/plugins/GeckoPluginSDK-samplesWin32.zip here]. The important thing about this archive is that we are interested only the ''Win32SDK\sdk\samples'' directory. In particular, attached gecko-sdk is not the most recent one. If you navigate to one of the samples and their ''windows'' directory you can open projects' .dsp file. If you are using newer version of Visual Studio than 6.0 it will be converted to the new format. Once you opened sample project you need probably update some of the configuration settings. In ''Project->Properties'' menu select ''C\C++->General'' and change Additional Include Directories to your Gecko SDK include directory ('''Note:''' this is preferably the new Gecko SDK in the archive gecko-sdk-i586-pc-msvc-1.7.zip or gecko-sdk-win32-msvc-1.8.0.4.zip and not the one attached to the samples archive). If you are using Gecko SDK 1.7 or Gecko SDK 1.8 you need to include samples '''include''' directory (i.e. ''..\..\include'') and only main Gecko SDK include (e.g. ''..\..\..\gecko-sdk\include'').<br />
<br />
You also need to point Visual Studio to the '''xpidl''' compiler. This is required to compile .idl file in the project. To change the default setting go to Visual Studio ''Solution Explorer'' and open ''Properties'' setting for the .idl file. Inspect file's ''Custom Build Step'' and adjust the directories in relation to the project file (.vcproj for VS200x or .dsp for VS6.0). In particular, you might need to change not only the path to the '''xpidl''' compiler but also to the ''idl'' directory of your Gecko SDK (e.g. ''..\..\..\..\gecko-sdk\xpcom\bin\xpidl -m header -I..\..\..\..\gecko-sdk\xpcom\idl $(InputPath)'' to ''..\..\..\gecko-sdk\bin\xpidl -m header -I..\..\..\gecko-sdk\idl $(InputPath)'')<br />
<br />
Now you should be able to compile the project. Resulting .dll and .xpt files should be copied to the Mozilla Firefox plugins directory (e.g. ''C:\Program Files\Mozilla Firefox\plugins"). Once you've done that you can restart Mozilla. In general it is a good idea to use following options to during the startup: '''-P development -console''' so you can see the plugin output/debug information.<br />
<br />
For help with setup of the environment and Visual Studio refere to a guide from [http://developer.mozilla.org/en/docs/Compiling_The_npruntime_Sample_Plugin_in_Visual_Studio Mozilla Developer Center].<br />
<br />
<br />
== Developing OggPlay plugin ==<br />
<br />
Once you have a working Mozilla plugin development environment you can start configuring the environment for OggPlay plugin.<br />
<br />
First of all, you need to install SVN client on your development machine. There are many options there but this document assumes that you a client with the capabilities of Tortoise SVN.<br />
<br />
== Binaries of the OggPlay Mozilla plugin ==<br />
<br />
For people not interested in developing the plugin but willing test it on their own machine are very much encouraged to download the following binaries of the plugin:<br />
<br />
[http://wiki.xiph.org/index.php npliboggplugin.dll]<br><br />
[http://wiki.xiph.org/index.php npliboggplugin.xpt]<br />
<br />
Both file should be place in the Mozilla plugin directory. This is usually ''C:\Program Files\Mozilla Firefox\plugins'' unless your Mozilla Firefox has been installed in different than default location. To test the plugin go to [http://media.annodex.net/cmmlwiki/Special:ListAllItems cmmlwiki]</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay/Win32&diff=6943OggPlay/Win322007-06-16T02:29:56Z<p>Laser13: /* Binaries of the OggPlay Mozilla plugin */</p>
<hr />
<div>== Overview ==<br />
<br />
This page was created to give developers a first hand assistance in starting development of Mozilla Firefox plugins on Windows. After the generic development environment<br />
setup we present the setup of OggPlay Firefox plugin for Vorbis/Theora OggPlay player plugin. If you have an experience in plugin development and want to test<br />
or contribute to the OggPlay plugin development you might want to skip to the next section and go directly to OggPlay player plugin. If you do not have your development plugin environment<br />
set up you should start with basic plugin environment configuration.<br />
<br />
== Setup of basic Mozilla plugin development environment ==<br />
<br />
The documentation on set up of development environment for Mozilla plugins development of Linux/UNIX, Win32 and MacOS is inconsistent and partially incomplete at least. In an attempt to fill in the blanks this section presents basic development environment setup for Win200x/XP.<br />
<br />
=== Basic Mozilla plugin setup for MS Windows Win200x/XP ===<br />
<br />
Although we tested those steps on Windows 2003 Server and Windows XP the configuration should work on the other Window platforms (such as Windows Vista). We also assume that you are using MS Visual Studio 2003 or 2005 altough you should be able to setup the environment using VS6 in a similar way. If you are using other environment/compiler you are on your own. <br />
<br />
Before starting setting up your plugin development environment you will need following tools and SDKs:<br />
<br />
* '''Mozilla Firefox''' (at least in version 1.7 provided you use appropriate Gecko SDK)<br />
<br />
* '''Mozilla Gecko SDK''' - there are two recent releases of Gecko SDK (1.7 for Firefox 1.0 and 1.8 for Firefox 1.5. and 2.0) available for download on [http://developer.mozilla.org/en/docs/Gecko_SDK Mozilla Developer Center]. Here are direct links to both versions of the SDK:<br />
** [http://releases.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7/gecko-sdk-i586-pc-msvc-1.7.zip Gecko SDK 1.7] , or<br />
** [http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/gecko-sdk-win32-msvc-1.8.0.4.zip Gecko SDK 1.8]<br />
<br />
* '''Mozilla WinTools''' - to use '''xpidl''' compiler you need also Mozilla WinTools: [http://ftp.mozilla.org/pub/mozilla.org/mozilla/source/wintools.zip Direct download]<br />
<br />
* '''Microsoft Platform SDK''' - to compile the plugins you will need to get also '''Platform SDK''' from [http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en Microsoft Download Center]<br />
<br />
* '''SVN client for Windows''' - there are many Windows clients for SVN, however one of the best is Tortoise SVN available from [http://tortoisesvn.tigris.org/ tigris.org]. While your are on it you might want to try [http://ankhsvn.tigris.org/ AnkhSVN] addin for Visual Studio.<br />
<br />
Once you unzipped '''Gecko SDK''' and installed '''MS Platform SDK''' you need to make sure your xpidl compiler is working properly. Unfortunately, the official release of '''Gecko SDK''' assumes you have following .dll on your system and in your '''PATH''' (provided you are using the newest version of '''WinTools'''):<br />
<br />
* glib-1.2.dll<br />
<br />
* libIDL-0.6.dll<br />
<br />
They are included in '''WinTools''' package under '''windows\bin\x86'''. In order for '''xpidl''' to run properly you need to have those .dll files in the same directory as xpidl.exe. Alternatively, if for some reason you do not want to copy those files across you can add the directory where those .dll are located to your system '''PATH''' variable. You can do that by navigating to ''Control Panel->System'' and then choosing ''Environment Variables'' in ''Advanced'' tab. There are also other options such as modifing Visual Studio environment by changing ''vcvarsall.bat'' script but it is outside of scope of this document.<br />
<br />
Once your xpidl you can try your environment and compile the official Mozilla samples. More details presented in the next section.<br />
<br />
=== Testing development environment with sample Mozilla plugin ===<br />
<br />
This is an optional step and unless you failed setting up environment for the OggPlay plugin or you want to build your own plugin you can probably skip this step. But if you want to understand the Mozilla plugin structure it is probably recommended to start with something simple.<br />
<br />
Once your xpidl is working properly you can try to compile the official Mozilla samples. You can download them [http://www.mozilla.org/projects/plugins/GeckoPluginSDK-samplesWin32.zip here]. The important thing about this archive is that we are interested only the ''Win32SDK\sdk\samples'' directory. In particular, attached gecko-sdk is not the most recent one. If you navigate to one of the samples and their ''windows'' directory you can open projects' .dsp file. If you are using newer version of Visual Studio than 6.0 it will be converted to the new format. Once you opened sample project you need probably update some of the configuration settings. In ''Project->Properties'' menu select ''C\C++->General'' and change Additional Include Directories to your Gecko SDK include directory ('''Note:''' this is preferably the new Gecko SDK in the archive gecko-sdk-i586-pc-msvc-1.7.zip or gecko-sdk-win32-msvc-1.8.0.4.zip and not the one attached to the samples archive). If you are using Gecko SDK 1.7 or Gecko SDK 1.8 you need to include samples '''include''' directory (i.e. ''..\..\include'') and only main Gecko SDK include (e.g. ''..\..\..\gecko-sdk\include'').<br />
<br />
You also need to point Visual Studio to the '''xpidl''' compiler. This is required to compile .idl file in the project. To change the default setting go to Visual Studio ''Solution Explorer'' and open ''Properties'' setting for the .idl file. Inspect file's ''Custom Build Step'' and adjust the directories in relation to the project file (.vcproj for VS200x or .dsp for VS6.0). In particular, you might need to change not only the path to the '''xpidl''' compiler but also to the ''idl'' directory of your Gecko SDK (e.g. ''..\..\..\..\gecko-sdk\xpcom\bin\xpidl -m header -I..\..\..\..\gecko-sdk\xpcom\idl $(InputPath)'' to ''..\..\..\gecko-sdk\bin\xpidl -m header -I..\..\..\gecko-sdk\idl $(InputPath)'')<br />
<br />
Now you should be able to compile the project. Resulting .dll and .xpt files should be copied to the Mozilla Firefox plugins directory (e.g. ''C:\Program Files\Mozilla Firefox\plugins"). Once you've done that you can restart Mozilla. In general it is a good idea to use following options to during the startup: '''-P development -console''' so you can see the plugin output/debug information.<br />
<br />
For help with setup of the environment and Visual Studio refere to a guide from [http://developer.mozilla.org/en/docs/Compiling_The_npruntime_Sample_Plugin_in_Visual_Studio Mozilla Developer Center].<br />
<br />
<br />
== Developing OggPlay plugin ==<br />
<br />
Once you have a working Mozilla plugin development environment you can start configuring the environment for OggPlay plugin.<br />
<br />
First of all, you need to install SVN client on your development machine. There are many options there but this document assumes that you a client with the capabilities of Tortoise SVN.<br />
<br />
== Binaries of the OggPlay Mozilla plugin ==<br />
<br />
For people not interested in developing the plugin but willing test it on their own machine are very much encouraged to download the following binaries of the plugin:<br />
<br />
[http://wiki.xiph.org/index.php npliboggplugin.dll]<br><br />
[http://wiki.xiph.org/index.php npliboggplugin.xpt]<br />
<br />
Both file should be place in the Mozilla plugin directory. This is usually ''C:\Program Files\Mozilla Firefox\plugins'' unless your Mozilla Firefox has been installed in different than default location. To test the plugin go to [http://media.annodex.net/cmmlwiki cmmlwiki]</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay/Win32&diff=6942OggPlay/Win322007-06-16T01:37:25Z<p>Laser13: /* Binaries of the OggPlay Mozilla plugin */</p>
<hr />
<div>== Overview ==<br />
<br />
This page was created to give developers a first hand assistance in starting development of Mozilla Firefox plugins on Windows. After the generic development environment<br />
setup we present the setup of OggPlay Firefox plugin for Vorbis/Theora OggPlay player plugin. If you have an experience in plugin development and want to test<br />
or contribute to the OggPlay plugin development you might want to skip to the next section and go directly to OggPlay player plugin. If you do not have your development plugin environment<br />
set up you should start with basic plugin environment configuration.<br />
<br />
== Setup of basic Mozilla plugin development environment ==<br />
<br />
The documentation on set up of development environment for Mozilla plugins development of Linux/UNIX, Win32 and MacOS is inconsistent and partially incomplete at least. In an attempt to fill in the blanks this section presents basic development environment setup for Win200x/XP.<br />
<br />
=== Basic Mozilla plugin setup for MS Windows Win200x/XP ===<br />
<br />
Although we tested those steps on Windows 2003 Server and Windows XP the configuration should work on the other Window platforms (such as Windows Vista). We also assume that you are using MS Visual Studio 2003 or 2005 altough you should be able to setup the environment using VS6 in a similar way. If you are using other environment/compiler you are on your own. <br />
<br />
Before starting setting up your plugin development environment you will need following tools and SDKs:<br />
<br />
* '''Mozilla Firefox''' (at least in version 1.7 provided you use appropriate Gecko SDK)<br />
<br />
* '''Mozilla Gecko SDK''' - there are two recent releases of Gecko SDK (1.7 for Firefox 1.0 and 1.8 for Firefox 1.5. and 2.0) available for download on [http://developer.mozilla.org/en/docs/Gecko_SDK Mozilla Developer Center]. Here are direct links to both versions of the SDK:<br />
** [http://releases.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7/gecko-sdk-i586-pc-msvc-1.7.zip Gecko SDK 1.7] , or<br />
** [http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/gecko-sdk-win32-msvc-1.8.0.4.zip Gecko SDK 1.8]<br />
<br />
* '''Mozilla WinTools''' - to use '''xpidl''' compiler you need also Mozilla WinTools: [http://ftp.mozilla.org/pub/mozilla.org/mozilla/source/wintools.zip Direct download]<br />
<br />
* '''Microsoft Platform SDK''' - to compile the plugins you will need to get also '''Platform SDK''' from [http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en Microsoft Download Center]<br />
<br />
* '''SVN client for Windows''' - there are many Windows clients for SVN, however one of the best is Tortoise SVN available from [http://tortoisesvn.tigris.org/ tigris.org]. While your are on it you might want to try [http://ankhsvn.tigris.org/ AnkhSVN] addin for Visual Studio.<br />
<br />
Once you unzipped '''Gecko SDK''' and installed '''MS Platform SDK''' you need to make sure your xpidl compiler is working properly. Unfortunately, the official release of '''Gecko SDK''' assumes you have following .dll on your system and in your '''PATH''' (provided you are using the newest version of '''WinTools'''):<br />
<br />
* glib-1.2.dll<br />
<br />
* libIDL-0.6.dll<br />
<br />
They are included in '''WinTools''' package under '''windows\bin\x86'''. In order for '''xpidl''' to run properly you need to have those .dll files in the same directory as xpidl.exe. Alternatively, if for some reason you do not want to copy those files across you can add the directory where those .dll are located to your system '''PATH''' variable. You can do that by navigating to ''Control Panel->System'' and then choosing ''Environment Variables'' in ''Advanced'' tab. There are also other options such as modifing Visual Studio environment by changing ''vcvarsall.bat'' script but it is outside of scope of this document.<br />
<br />
Once your xpidl you can try your environment and compile the official Mozilla samples. More details presented in the next section.<br />
<br />
=== Testing development environment with sample Mozilla plugin ===<br />
<br />
This is an optional step and unless you failed setting up environment for the OggPlay plugin or you want to build your own plugin you can probably skip this step. But if you want to understand the Mozilla plugin structure it is probably recommended to start with something simple.<br />
<br />
Once your xpidl is working properly you can try to compile the official Mozilla samples. You can download them [http://www.mozilla.org/projects/plugins/GeckoPluginSDK-samplesWin32.zip here]. The important thing about this archive is that we are interested only the ''Win32SDK\sdk\samples'' directory. In particular, attached gecko-sdk is not the most recent one. If you navigate to one of the samples and their ''windows'' directory you can open projects' .dsp file. If you are using newer version of Visual Studio than 6.0 it will be converted to the new format. Once you opened sample project you need probably update some of the configuration settings. In ''Project->Properties'' menu select ''C\C++->General'' and change Additional Include Directories to your Gecko SDK include directory ('''Note:''' this is preferably the new Gecko SDK in the archive gecko-sdk-i586-pc-msvc-1.7.zip or gecko-sdk-win32-msvc-1.8.0.4.zip and not the one attached to the samples archive). If you are using Gecko SDK 1.7 or Gecko SDK 1.8 you need to include samples '''include''' directory (i.e. ''..\..\include'') and only main Gecko SDK include (e.g. ''..\..\..\gecko-sdk\include'').<br />
<br />
You also need to point Visual Studio to the '''xpidl''' compiler. This is required to compile .idl file in the project. To change the default setting go to Visual Studio ''Solution Explorer'' and open ''Properties'' setting for the .idl file. Inspect file's ''Custom Build Step'' and adjust the directories in relation to the project file (.vcproj for VS200x or .dsp for VS6.0). In particular, you might need to change not only the path to the '''xpidl''' compiler but also to the ''idl'' directory of your Gecko SDK (e.g. ''..\..\..\..\gecko-sdk\xpcom\bin\xpidl -m header -I..\..\..\..\gecko-sdk\xpcom\idl $(InputPath)'' to ''..\..\..\gecko-sdk\bin\xpidl -m header -I..\..\..\gecko-sdk\idl $(InputPath)'')<br />
<br />
Now you should be able to compile the project. Resulting .dll and .xpt files should be copied to the Mozilla Firefox plugins directory (e.g. ''C:\Program Files\Mozilla Firefox\plugins"). Once you've done that you can restart Mozilla. In general it is a good idea to use following options to during the startup: '''-P development -console''' so you can see the plugin output/debug information.<br />
<br />
For help with setup of the environment and Visual Studio refere to a guide from [http://developer.mozilla.org/en/docs/Compiling_The_npruntime_Sample_Plugin_in_Visual_Studio Mozilla Developer Center].<br />
<br />
<br />
== Developing OggPlay plugin ==<br />
<br />
Once you have a working Mozilla plugin development environment you can start configuring the environment for OggPlay plugin.<br />
<br />
First of all, you need to install SVN client on your development machine. There are many options there but this document assumes that you a client with the capabilities of Tortoise SVN.<br />
<br />
== Binaries of the OggPlay Mozilla plugin ==<br />
<br />
For people not interested in developing the plugin but willing test it on their own machine are very much encouraged to download the following binaries of the plugin:<br />
<br />
[http://wiki.xiph.org/index.php npliboggplugin.dll]<br><br />
[http://wiki.xiph.org/index.php npliboggplugin.xpt]</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay/Win32&diff=6941OggPlay/Win322007-06-16T01:36:23Z<p>Laser13: </p>
<hr />
<div>== Overview ==<br />
<br />
This page was created to give developers a first hand assistance in starting development of Mozilla Firefox plugins on Windows. After the generic development environment<br />
setup we present the setup of OggPlay Firefox plugin for Vorbis/Theora OggPlay player plugin. If you have an experience in plugin development and want to test<br />
or contribute to the OggPlay plugin development you might want to skip to the next section and go directly to OggPlay player plugin. If you do not have your development plugin environment<br />
set up you should start with basic plugin environment configuration.<br />
<br />
== Setup of basic Mozilla plugin development environment ==<br />
<br />
The documentation on set up of development environment for Mozilla plugins development of Linux/UNIX, Win32 and MacOS is inconsistent and partially incomplete at least. In an attempt to fill in the blanks this section presents basic development environment setup for Win200x/XP.<br />
<br />
=== Basic Mozilla plugin setup for MS Windows Win200x/XP ===<br />
<br />
Although we tested those steps on Windows 2003 Server and Windows XP the configuration should work on the other Window platforms (such as Windows Vista). We also assume that you are using MS Visual Studio 2003 or 2005 altough you should be able to setup the environment using VS6 in a similar way. If you are using other environment/compiler you are on your own. <br />
<br />
Before starting setting up your plugin development environment you will need following tools and SDKs:<br />
<br />
* '''Mozilla Firefox''' (at least in version 1.7 provided you use appropriate Gecko SDK)<br />
<br />
* '''Mozilla Gecko SDK''' - there are two recent releases of Gecko SDK (1.7 for Firefox 1.0 and 1.8 for Firefox 1.5. and 2.0) available for download on [http://developer.mozilla.org/en/docs/Gecko_SDK Mozilla Developer Center]. Here are direct links to both versions of the SDK:<br />
** [http://releases.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7/gecko-sdk-i586-pc-msvc-1.7.zip Gecko SDK 1.7] , or<br />
** [http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/gecko-sdk-win32-msvc-1.8.0.4.zip Gecko SDK 1.8]<br />
<br />
* '''Mozilla WinTools''' - to use '''xpidl''' compiler you need also Mozilla WinTools: [http://ftp.mozilla.org/pub/mozilla.org/mozilla/source/wintools.zip Direct download]<br />
<br />
* '''Microsoft Platform SDK''' - to compile the plugins you will need to get also '''Platform SDK''' from [http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en Microsoft Download Center]<br />
<br />
* '''SVN client for Windows''' - there are many Windows clients for SVN, however one of the best is Tortoise SVN available from [http://tortoisesvn.tigris.org/ tigris.org]. While your are on it you might want to try [http://ankhsvn.tigris.org/ AnkhSVN] addin for Visual Studio.<br />
<br />
Once you unzipped '''Gecko SDK''' and installed '''MS Platform SDK''' you need to make sure your xpidl compiler is working properly. Unfortunately, the official release of '''Gecko SDK''' assumes you have following .dll on your system and in your '''PATH''' (provided you are using the newest version of '''WinTools'''):<br />
<br />
* glib-1.2.dll<br />
<br />
* libIDL-0.6.dll<br />
<br />
They are included in '''WinTools''' package under '''windows\bin\x86'''. In order for '''xpidl''' to run properly you need to have those .dll files in the same directory as xpidl.exe. Alternatively, if for some reason you do not want to copy those files across you can add the directory where those .dll are located to your system '''PATH''' variable. You can do that by navigating to ''Control Panel->System'' and then choosing ''Environment Variables'' in ''Advanced'' tab. There are also other options such as modifing Visual Studio environment by changing ''vcvarsall.bat'' script but it is outside of scope of this document.<br />
<br />
Once your xpidl you can try your environment and compile the official Mozilla samples. More details presented in the next section.<br />
<br />
=== Testing development environment with sample Mozilla plugin ===<br />
<br />
This is an optional step and unless you failed setting up environment for the OggPlay plugin or you want to build your own plugin you can probably skip this step. But if you want to understand the Mozilla plugin structure it is probably recommended to start with something simple.<br />
<br />
Once your xpidl is working properly you can try to compile the official Mozilla samples. You can download them [http://www.mozilla.org/projects/plugins/GeckoPluginSDK-samplesWin32.zip here]. The important thing about this archive is that we are interested only the ''Win32SDK\sdk\samples'' directory. In particular, attached gecko-sdk is not the most recent one. If you navigate to one of the samples and their ''windows'' directory you can open projects' .dsp file. If you are using newer version of Visual Studio than 6.0 it will be converted to the new format. Once you opened sample project you need probably update some of the configuration settings. In ''Project->Properties'' menu select ''C\C++->General'' and change Additional Include Directories to your Gecko SDK include directory ('''Note:''' this is preferably the new Gecko SDK in the archive gecko-sdk-i586-pc-msvc-1.7.zip or gecko-sdk-win32-msvc-1.8.0.4.zip and not the one attached to the samples archive). If you are using Gecko SDK 1.7 or Gecko SDK 1.8 you need to include samples '''include''' directory (i.e. ''..\..\include'') and only main Gecko SDK include (e.g. ''..\..\..\gecko-sdk\include'').<br />
<br />
You also need to point Visual Studio to the '''xpidl''' compiler. This is required to compile .idl file in the project. To change the default setting go to Visual Studio ''Solution Explorer'' and open ''Properties'' setting for the .idl file. Inspect file's ''Custom Build Step'' and adjust the directories in relation to the project file (.vcproj for VS200x or .dsp for VS6.0). In particular, you might need to change not only the path to the '''xpidl''' compiler but also to the ''idl'' directory of your Gecko SDK (e.g. ''..\..\..\..\gecko-sdk\xpcom\bin\xpidl -m header -I..\..\..\..\gecko-sdk\xpcom\idl $(InputPath)'' to ''..\..\..\gecko-sdk\bin\xpidl -m header -I..\..\..\gecko-sdk\idl $(InputPath)'')<br />
<br />
Now you should be able to compile the project. Resulting .dll and .xpt files should be copied to the Mozilla Firefox plugins directory (e.g. ''C:\Program Files\Mozilla Firefox\plugins"). Once you've done that you can restart Mozilla. In general it is a good idea to use following options to during the startup: '''-P development -console''' so you can see the plugin output/debug information.<br />
<br />
For help with setup of the environment and Visual Studio refere to a guide from [http://developer.mozilla.org/en/docs/Compiling_The_npruntime_Sample_Plugin_in_Visual_Studio Mozilla Developer Center].<br />
<br />
<br />
== Developing OggPlay plugin ==<br />
<br />
Once you have a working Mozilla plugin development environment you can start configuring the environment for OggPlay plugin.<br />
<br />
First of all, you need to install SVN client on your development machine. There are many options there but this document assumes that you a client with the capabilities of Tortoise SVN.<br />
<br />
== Binaries of the OggPlay Mozilla plugin ==<br />
<br />
For people not interested in developing the plugin but willing test it on their own machine are very much encouraged to download the following binaries of the plugin:<br />
<br />
[http://wiki.xiph.org/index.php np.dll]<br />
[http://wiki.xiph.org/index.php plugin .xpt]</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay/Win32&diff=6935OggPlay/Win322007-06-15T00:59:54Z<p>Laser13: /* Basic Mozilla plugin setup for MS Windows Win200x/XP */</p>
<hr />
<div>== Overview ==<br />
<br />
This page was created to give developers a first hand assistance in starting development of Mozilla Firefox plugins on Windows. After the generic development environment<br />
setup we present the setup of OggPlay Firefox plugin for Vorbis/Theora OggPlay player plugin. If you have an experience in plugin development and want to test<br />
or contribute to the OggPlay plugin development you might want to skip to the next section and go directly to OggPlay player plugin. If you do not have your development plugin environment<br />
set up you should start with basic plugin environment configuration.<br />
<br />
== Setup of basic Mozilla plugin development environment ==<br />
<br />
The documentation on set up of development environment for Mozilla plugins development of Linux/UNIX, Win32 and MacOS is inconsistent and partially incomplete at least. In an attempt to fill in the blanks this section presents basic development environment setup for Win200x/XP.<br />
<br />
=== Basic Mozilla plugin setup for MS Windows Win200x/XP ===<br />
<br />
Although we tested those steps on Windows 2003 Server and Windows XP the configuration should work on the other Window platforms (such as Windows Vista). We also assume that you are using MS Visual Studio 2003 or 2005 altough you should be able to setup the environment using VS6 in a similar way. If you are using other environment/compiler you are on your own. <br />
<br />
Before starting setting up your plugin development environment you will need following tools and SDKs:<br />
<br />
* '''Mozilla Firefox''' (at least in version 1.7 provided you use appropriate Gecko SDK)<br />
<br />
* '''Mozilla Gecko SDK''' - there are two recent releases of Gecko SDK (1.7 for Firefox 1.0 and 1.8 for Firefox 1.5. and 2.0) available for download on [http://developer.mozilla.org/en/docs/Gecko_SDK Mozilla Developer Center]. Here are direct links to both versions of the SDK:<br />
** [http://releases.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7/gecko-sdk-i586-pc-msvc-1.7.zip Gecko SDK 1.7] , or<br />
** [http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/gecko-sdk-win32-msvc-1.8.0.4.zip Gecko SDK 1.8]<br />
<br />
* '''Mozilla WinTools''' - to use '''xpidl''' compiler you need also Mozilla WinTools: [http://ftp.mozilla.org/pub/mozilla.org/mozilla/source/wintools.zip Direct download]<br />
<br />
* '''Microsoft Platform SDK''' - to compile the plugins you will need to get also '''Platform SDK''' from [http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en Microsoft Download Center]<br />
<br />
* '''SVN client for Windows''' - there are many Windows clients for SVN, however one of the best is Tortoise SVN available from [http://tortoisesvn.tigris.org/ tigris.org]. While your are on it you might want to try [http://ankhsvn.tigris.org/ AnkhSVN] addin for Visual Studio.<br />
<br />
Once you unzipped '''Gecko SDK''' and installed '''MS Platform SDK''' you need to make sure your xpidl compiler is working properly. Unfortunately, the official release of '''Gecko SDK''' assumes you have following .dll on your system and in your '''PATH''' (provided you are using the newest version of '''WinTools'''):<br />
<br />
* glib-1.2.dll<br />
<br />
* libIDL-0.6.dll<br />
<br />
They are included in '''WinTools''' package under '''windows\bin\x86'''. In order for '''xpidl''' to run properly you need to have those .dll files in the same directory as xpidl.exe. Alternatively, if for some reason you do not want to copy those files across you can add the directory where those .dll are located to your system '''PATH''' variable. You can do that by navigating to ''Control Panel->System'' and then choosing ''Environment Variables'' in ''Advanced'' tab. There are also other options such as modifing Visual Studio environment by changing ''vcvarsall.bat'' script but it is outside of scope of this document.<br />
<br />
Once your xpidl you can try your environment and compile the official Mozilla samples. More details presented in the next section.<br />
<br />
=== Testing development environment with sample Mozilla plugin ===<br />
<br />
This is an optional step and unless you failed setting up environment for the OggPlay plugin or you want to build your own plugin you can probably skip this step. But if you want to understand the Mozilla plugin structure it is probably recommended to start with something simple.<br />
<br />
Once your xpidl is working properly you can try to compile the official Mozilla samples. You can download them [http://www.mozilla.org/projects/plugins/GeckoPluginSDK-samplesWin32.zip here]. The important thing about this archive is that we are interested only the ''Win32SDK\sdk\samples'' directory. In particular, attached gecko-sdk is not the most recent one. If you navigate to one of the samples and their ''windows'' directory you can open projects' .dsp file. If you are using newer version of Visual Studio than 6.0 it will be converted to the new format. Once you opened sample project you need probably update some of the configuration settings. In ''Project->Properties'' menu select ''C\C++->General'' and change Additional Include Directories to your Gecko SDK include directory ('''Note:''' this is preferably the new Gecko SDK in the archive gecko-sdk-i586-pc-msvc-1.7.zip or gecko-sdk-win32-msvc-1.8.0.4.zip and not the one attached to the samples archive). If you are using Gecko SDK 1.7 or Gecko SDK 1.8 you need to include samples '''include''' directory (i.e. ''..\..\include'') and only main Gecko SDK include (e.g. ''..\..\..\gecko-sdk\include'').<br />
<br />
You also need to point Visual Studio to the '''xpidl''' compiler. This is required to compile .idl file in the project. To change the default setting go to Visual Studio ''Solution Explorer'' and open ''Properties'' setting for the .idl file. Inspect file's ''Custom Build Step'' and adjust the directories in relation to the project file (.vcproj for VS200x or .dsp for VS6.0). In particular, you might need to change not only the path to the '''xpidl''' compiler but also to the ''idl'' directory of your Gecko SDK (e.g. ''..\..\..\..\gecko-sdk\xpcom\bin\xpidl -m header -I..\..\..\..\gecko-sdk\xpcom\idl $(InputPath)'' to ''..\..\..\gecko-sdk\bin\xpidl -m header -I..\..\..\gecko-sdk\idl $(InputPath)'')<br />
<br />
Now you should be able to compile the project. Resulting .dll and .xpt files should be copied to the Mozilla Firefox plugins directory (e.g. ''C:\Program Files\Mozilla Firefox\plugins"). Once you've done that you can restart Mozilla. In general it is a good idea to use following options to during the startup: '''-P development -console''' so you can see the plugin output/debug information.<br />
<br />
For help with setup of the environment and Visual Studio refere to a guide from [http://developer.mozilla.org/en/docs/Compiling_The_npruntime_Sample_Plugin_in_Visual_Studio Mozilla Developer Center].<br />
<br />
<br />
== Developing OggPlay plugin ==<br />
<br />
Once you have a working Mozilla plugin development environment you can start configuring the environment for OggPlay plugin.<br />
<br />
First of all, you need to install SVN client on your development machine. There are many options there but this document assumes that you a client with the capabilities of Tortoise SVN.</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay/Win32&diff=6934OggPlay/Win322007-06-15T00:59:01Z<p>Laser13: /* Basic Mozilla plugin setup for MS Windows Win200x/XP */</p>
<hr />
<div>== Overview ==<br />
<br />
This page was created to give developers a first hand assistance in starting development of Mozilla Firefox plugins on Windows. After the generic development environment<br />
setup we present the setup of OggPlay Firefox plugin for Vorbis/Theora OggPlay player plugin. If you have an experience in plugin development and want to test<br />
or contribute to the OggPlay plugin development you might want to skip to the next section and go directly to OggPlay player plugin. If you do not have your development plugin environment<br />
set up you should start with basic plugin environment configuration.<br />
<br />
== Setup of basic Mozilla plugin development environment ==<br />
<br />
The documentation on set up of development environment for Mozilla plugins development of Linux/UNIX, Win32 and MacOS is inconsistent and partially incomplete at least. In an attempt to fill in the blanks this section presents basic development environment setup for Win200x/XP.<br />
<br />
=== Basic Mozilla plugin setup for MS Windows Win200x/XP ===<br />
<br />
Although we tested those steps on Windows 2003 Server and Windows XP the configuration should work on the other Window platforms (such as Windows Vista). We also assume that you are using MS Visual Studio 2003 or 2005 altough you should be able to setup the environment using VS6 in a similar way. If you are using other environment/compiler you are on your own. <br />
<br />
Before starting setting up your plugin development environment you will need following tools and SDKs:<br />
<br />
* '''Mozilla Firefox''' (at least in version 1.7 provided you use appropriate Gecko SDK)<br />
<br />
* '''Mozilla Gecko SDK''' - there are two recent releases of Gecko SDK (1.7 for Firefox 1.0 and 1.8 for Firefox 1.5. and 2.0) available for download on [http://developer.mozilla.org/en/docs/Gecko_SDK Mozilla Developer Center]. Here are direct links to both versions of the SDK:<br />
** [http://releases.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7/gecko-sdk-i586-pc-msvc-1.7.zip Gecko SDK 1.7] , or<br />
** [http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/gecko-sdk-win32-msvc-1.8.0.4.zip Gecko SDK 1.8]<br />
<br />
* '''Mozilla WinTools''' - to use '''xpidl''' compiler you need also Mozilla WinTools: [http://ftp.mozilla.org/pub/mozilla.org/mozilla/source/wintools.zip Direct download]<br />
<br />
* '''Microsoft Platform SDK''' - to compile the plugins you will need to get also '''Platform SDK''' from [http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en Microsoft Download Center]<br />
<br />
* '''SVN client for Windows''' - there are many Windows clients for SVN, however one of the best is Tortoise SVN available from [http://trac.annodex.net/browser/libfishsound tigris.org]. While your are on it you might want to try [http://ankhsvn.tigris.org/ AnkhSVN] addin for Visual Studio.<br />
<br />
Once you unzipped '''Gecko SDK''' and installed '''MS Platform SDK''' you need to make sure your xpidl compiler is working properly. Unfortunately, the official release of '''Gecko SDK''' assumes you have following .dll on your system and in your '''PATH''' (provided you are using the newest version of '''WinTools'''):<br />
<br />
* glib-1.2.dll<br />
<br />
* libIDL-0.6.dll<br />
<br />
They are included in '''WinTools''' package under '''windows\bin\x86'''. In order for '''xpidl''' to run properly you need to have those .dll files in the same directory as xpidl.exe. Alternatively, if for some reason you do not want to copy those files across you can add the directory where those .dll are located to your system '''PATH''' variable. You can do that by navigating to ''Control Panel->System'' and then choosing ''Environment Variables'' in ''Advanced'' tab. There are also other options such as modifing Visual Studio environment by changing ''vcvarsall.bat'' script but it is outside of scope of this document.<br />
<br />
Once your xpidl you can try your environment and compile the official Mozilla samples. More details presented in the next section.<br />
<br />
=== Testing development environment with sample Mozilla plugin ===<br />
<br />
This is an optional step and unless you failed setting up environment for the OggPlay plugin or you want to build your own plugin you can probably skip this step. But if you want to understand the Mozilla plugin structure it is probably recommended to start with something simple.<br />
<br />
Once your xpidl is working properly you can try to compile the official Mozilla samples. You can download them [http://www.mozilla.org/projects/plugins/GeckoPluginSDK-samplesWin32.zip here]. The important thing about this archive is that we are interested only the ''Win32SDK\sdk\samples'' directory. In particular, attached gecko-sdk is not the most recent one. If you navigate to one of the samples and their ''windows'' directory you can open projects' .dsp file. If you are using newer version of Visual Studio than 6.0 it will be converted to the new format. Once you opened sample project you need probably update some of the configuration settings. In ''Project->Properties'' menu select ''C\C++->General'' and change Additional Include Directories to your Gecko SDK include directory ('''Note:''' this is preferably the new Gecko SDK in the archive gecko-sdk-i586-pc-msvc-1.7.zip or gecko-sdk-win32-msvc-1.8.0.4.zip and not the one attached to the samples archive). If you are using Gecko SDK 1.7 or Gecko SDK 1.8 you need to include samples '''include''' directory (i.e. ''..\..\include'') and only main Gecko SDK include (e.g. ''..\..\..\gecko-sdk\include'').<br />
<br />
You also need to point Visual Studio to the '''xpidl''' compiler. This is required to compile .idl file in the project. To change the default setting go to Visual Studio ''Solution Explorer'' and open ''Properties'' setting for the .idl file. Inspect file's ''Custom Build Step'' and adjust the directories in relation to the project file (.vcproj for VS200x or .dsp for VS6.0). In particular, you might need to change not only the path to the '''xpidl''' compiler but also to the ''idl'' directory of your Gecko SDK (e.g. ''..\..\..\..\gecko-sdk\xpcom\bin\xpidl -m header -I..\..\..\..\gecko-sdk\xpcom\idl $(InputPath)'' to ''..\..\..\gecko-sdk\bin\xpidl -m header -I..\..\..\gecko-sdk\idl $(InputPath)'')<br />
<br />
Now you should be able to compile the project. Resulting .dll and .xpt files should be copied to the Mozilla Firefox plugins directory (e.g. ''C:\Program Files\Mozilla Firefox\plugins"). Once you've done that you can restart Mozilla. In general it is a good idea to use following options to during the startup: '''-P development -console''' so you can see the plugin output/debug information.<br />
<br />
For help with setup of the environment and Visual Studio refere to a guide from [http://developer.mozilla.org/en/docs/Compiling_The_npruntime_Sample_Plugin_in_Visual_Studio Mozilla Developer Center].<br />
<br />
<br />
== Developing OggPlay plugin ==<br />
<br />
Once you have a working Mozilla plugin development environment you can start configuring the environment for OggPlay plugin.<br />
<br />
First of all, you need to install SVN client on your development machine. There are many options there but this document assumes that you a client with the capabilities of Tortoise SVN.</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay/Win32&diff=6933OggPlay/Win322007-06-15T00:58:31Z<p>Laser13: </p>
<hr />
<div>== Overview ==<br />
<br />
This page was created to give developers a first hand assistance in starting development of Mozilla Firefox plugins on Windows. After the generic development environment<br />
setup we present the setup of OggPlay Firefox plugin for Vorbis/Theora OggPlay player plugin. If you have an experience in plugin development and want to test<br />
or contribute to the OggPlay plugin development you might want to skip to the next section and go directly to OggPlay player plugin. If you do not have your development plugin environment<br />
set up you should start with basic plugin environment configuration.<br />
<br />
== Setup of basic Mozilla plugin development environment ==<br />
<br />
The documentation on set up of development environment for Mozilla plugins development of Linux/UNIX, Win32 and MacOS is inconsistent and partially incomplete at least. In an attempt to fill in the blanks this section presents basic development environment setup for Win200x/XP.<br />
<br />
=== Basic Mozilla plugin setup for MS Windows Win200x/XP ===<br />
<br />
Although we tested those steps on Windows 2003 Server and Windows XP the configuration should work on the other Window platforms (such as Windows Vista). We also assume that you are using MS Visual Studio 2003 or 2005 altough you should be able to setup the environment using VS6 in a similar way. If you are using other environment/compiler you are on your own. <br />
<br />
Before starting setting up your plugin development environment you will need following tools and SDKs:<br />
<br />
* '''Mozilla Firefox''' (at least in version 1.7 provided you use appropriate Gecko SDK)<br />
<br />
* '''Mozilla Gecko SDK''' - there are two recent releases of Gecko SDK (1.7 for Firefox 1.0 and 1.8 for Firefox 1.5. and 2.0) available for download on [http://developer.mozilla.org/en/docs/Gecko_SDK Mozilla Developer Center]. Here are direct links to both versions of the SDK:<br />
** [http://releases.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7/gecko-sdk-i586-pc-msvc-1.7.zip Gecko SDK 1.7] , or<br />
** [http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/gecko-sdk-win32-msvc-1.8.0.4.zip Gecko SDK 1.8]<br />
<br />
* '''Mozilla WinTools''' - to use '''xpidl''' compiler you need also Mozilla WinTools: [http://ftp.mozilla.org/pub/mozilla.org/mozilla/source/wintools.zip Direct download]<br />
<br />
* '''Microsoft Platform SDK''' - to compile the plugins you will need to get also '''Platform SDK''' from [http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en Microsoft Download Center]<br />
<br />
* '''SVN client for Windows''' - there are many Windows clients for SVN, however one of the best is Tortoise SVN available from [http://trac.annodex.net/browser/libfishsound tigris.org] . While your are on it you might want to try [http://ankhsvn.tigris.org/ AnkhSVN] addin for Visual Studio.<br />
<br />
Once you unzipped '''Gecko SDK''' and installed '''MS Platform SDK''' you need to make sure your xpidl compiler is working properly. Unfortunately, the official release of '''Gecko SDK''' assumes you have following .dll on your system and in your '''PATH''' (provided you are using the newest version of '''WinTools'''):<br />
<br />
* glib-1.2.dll<br />
<br />
* libIDL-0.6.dll<br />
<br />
They are included in '''WinTools''' package under '''windows\bin\x86'''. In order for '''xpidl''' to run properly you need to have those .dll files in the same directory as xpidl.exe. Alternatively, if for some reason you do not want to copy those files across you can add the directory where those .dll are located to your system '''PATH''' variable. You can do that by navigating to ''Control Panel->System'' and then choosing ''Environment Variables'' in ''Advanced'' tab. There are also other options such as modifing Visual Studio environment by changing ''vcvarsall.bat'' script but it is outside of scope of this document.<br />
<br />
Once your xpidl you can try your environment and compile the official Mozilla samples. More details presented in the next section.<br />
<br />
=== Testing development environment with sample Mozilla plugin ===<br />
<br />
This is an optional step and unless you failed setting up environment for the OggPlay plugin or you want to build your own plugin you can probably skip this step. But if you want to understand the Mozilla plugin structure it is probably recommended to start with something simple.<br />
<br />
Once your xpidl is working properly you can try to compile the official Mozilla samples. You can download them [http://www.mozilla.org/projects/plugins/GeckoPluginSDK-samplesWin32.zip here]. The important thing about this archive is that we are interested only the ''Win32SDK\sdk\samples'' directory. In particular, attached gecko-sdk is not the most recent one. If you navigate to one of the samples and their ''windows'' directory you can open projects' .dsp file. If you are using newer version of Visual Studio than 6.0 it will be converted to the new format. Once you opened sample project you need probably update some of the configuration settings. In ''Project->Properties'' menu select ''C\C++->General'' and change Additional Include Directories to your Gecko SDK include directory ('''Note:''' this is preferably the new Gecko SDK in the archive gecko-sdk-i586-pc-msvc-1.7.zip or gecko-sdk-win32-msvc-1.8.0.4.zip and not the one attached to the samples archive). If you are using Gecko SDK 1.7 or Gecko SDK 1.8 you need to include samples '''include''' directory (i.e. ''..\..\include'') and only main Gecko SDK include (e.g. ''..\..\..\gecko-sdk\include'').<br />
<br />
You also need to point Visual Studio to the '''xpidl''' compiler. This is required to compile .idl file in the project. To change the default setting go to Visual Studio ''Solution Explorer'' and open ''Properties'' setting for the .idl file. Inspect file's ''Custom Build Step'' and adjust the directories in relation to the project file (.vcproj for VS200x or .dsp for VS6.0). In particular, you might need to change not only the path to the '''xpidl''' compiler but also to the ''idl'' directory of your Gecko SDK (e.g. ''..\..\..\..\gecko-sdk\xpcom\bin\xpidl -m header -I..\..\..\..\gecko-sdk\xpcom\idl $(InputPath)'' to ''..\..\..\gecko-sdk\bin\xpidl -m header -I..\..\..\gecko-sdk\idl $(InputPath)'')<br />
<br />
Now you should be able to compile the project. Resulting .dll and .xpt files should be copied to the Mozilla Firefox plugins directory (e.g. ''C:\Program Files\Mozilla Firefox\plugins"). Once you've done that you can restart Mozilla. In general it is a good idea to use following options to during the startup: '''-P development -console''' so you can see the plugin output/debug information.<br />
<br />
For help with setup of the environment and Visual Studio refere to a guide from [http://developer.mozilla.org/en/docs/Compiling_The_npruntime_Sample_Plugin_in_Visual_Studio Mozilla Developer Center].<br />
<br />
<br />
== Developing OggPlay plugin ==<br />
<br />
Once you have a working Mozilla plugin development environment you can start configuring the environment for OggPlay plugin.<br />
<br />
First of all, you need to install SVN client on your development machine. There are many options there but this document assumes that you a client with the capabilities of Tortoise SVN.</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay/Win32&diff=6932OggPlay/Win322007-06-14T13:59:36Z<p>Laser13: /* Testing development environment with sample Mozilla plugin */</p>
<hr />
<div>== Overview ==<br />
<br />
This page was created to give developers a first hand assistance in starting development of Mozilla Firefox plugins on Windows. After the generic development environment<br />
setup we present the setup of OggPlay Firefox plugin for Vorbis/Theora OggPlay player plugin. If you have an experience in plugin development and want to test<br />
or contribute to the OggPlay plugin development you might want to skip to the next section and go directly to OggPlay player plugin setup. If you do not have your development plugin environment<br />
set up you should start with basic plugin environment configuration.<br />
<br />
== Setup of basic Mozilla plugin development environment ==<br />
<br />
The documentation on set up of development environment for Mozilla plugins development of Linux/UNIX, Win32 and MacOS is inconsistent and partially incomplete at least. In an attempt to fill in the blanks this section presents basic development environment setup for Win200x/XP/Vista.<br />
<br />
=== Basic Mozilla plugin setup for MS Windows Win200x/XP ===<br />
<br />
Although we tested those steps on Windows 2003 Server and Windows XP the configuration should work on the other Window platforms (such as Windows Vista). We also assume that you are using MS Visual Studio 2003 or 2005 altough you should be able to setup the environment using VS6 in a similar way. If you are using other environment/compiler you are on your own. <br />
<br />
Before starting setting up your plugin development environment you will need following tools and SDKs:<br />
<br />
* '''Mozilla Firefox''' (at least in version 1.7 provided you use appropriate Gecko SDK)<br />
<br />
* '''Mozilla Gecko SDK''' - there are two recent releases of Gecko SDK (1.7 for Firefox 1.0 and 1.8 for Firefox 1.5. and 2.0) available for download on [http://developer.mozilla.org/en/docs/Gecko_SDK Mozilla Developer Center]. Here are direct links to both versions of the SDK:<br />
** [http://releases.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7/gecko-sdk-i586-pc-msvc-1.7.zip Gecko SDK 1.7] , or<br />
** [http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/gecko-sdk-win32-msvc-1.8.0.4.zip Gecko SDK 1.8]<br />
<br />
* '''Mozilla WinTools''' - to use '''xpidl''' compiler you need also Mozilla WinTools: [http://ftp.mozilla.org/pub/mozilla.org/mozilla/source/wintools.zip Direct download]<br />
<br />
* '''Microsoft Platform SDK''' - to compile the plugins you will need to get also '''Platform SDK''' from [http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en Microsoft Download Center]<br />
<br />
Once you unzipped '''Gecko SDK''' and installed '''MS Platform SDK''' you need to make sure your xpidl compiler is working properly. Unfortunately, the official release of '''Gecko SDK''' assumes you have following .dll on your system and in your '''PATH''' (provided you are using the newest version of '''WinTools'''):<br />
<br />
* glib-1.2.dll<br />
<br />
* libIDL-0.6.dll<br />
<br />
They are included in '''WinTools''' package under '''windows\bin\x86'''. In order for '''xpidl''' to run properly you need to have those .dll files in the same directory as xpidl.exe. Alternatively, if for some reason you do not want to copy those files across you can add the directory where those .dll are located to your system '''PATH''' variable. You can do that by navigating to ''Control Panel->System'' and then choosing ''Environment Variables'' in ''Advanced'' tab. There are also other options such as modifing Visual Studio environment by changing ''vcvarsall.bat'' script but it is outside of scope of this document.<br />
<br />
Once your xpidl you can try your environment and compile the official Mozilla samples. More details presented in the next section.<br />
<br />
=== Testing development environment with sample Mozilla plugin ===<br />
<br />
This is an optional step and unless you failed setting up environment for the OggPlay plugin or you want to build your own plugin you can probably skip this step. But if you want to understand the Mozilla plugin structure it is probably recommended to start with something simple.<br />
<br />
Once your xpidl compiler is working you can try to compile the official Mozilla samples. You can download them [http://www.mozilla.org/projects/plugins/GeckoPluginSDK-samplesWin32.zip here]. The important thing about this archive is that we are interested only the ''Win32SDK\sdk\samples'' directory. In particular, attached gecko-sdk is not the most recent one. If you navigate to one of the samples and their ''windows'' directory you can open projects' .dsp file. If you are using newer version of Visual Studio than 6.0 it will be converted to the new format. Once you opened sample project you need probably update some of the configuration settings. In ''Project->Properties'' menu select ''C\C++->General'' and change Additional Include Directories to your Gecko SDK include directory ('''Note:''' this is preferably the new Gecko SDK in the archive gecko-sdk-i586-pc-msvc-1.7.zip or gecko-sdk-win32-msvc-1.8.0.4.zip and not the one attached to the samples archive). If you are using Gecko SDK 1.7 or Gecko SDK 1.8 you need to include samples '''include''' directory (i.e. ''..\..\include'') and only main Gecko SDK include (e.g. ''..\..\..\gecko-sdk\include'').<br />
<br />
You also need to point Visual Studio to the '''xpidl''' compiler. This is required to compile .idl file in the project. To change the default setting go to Visual Studio ''Solution Explorer'' and open ''Properties'' setting for the .idl file. Inspect file's ''Custom Build Step'' and adjust the directories in relation to the project file (.vcproj for VS200x or .dsp for VS6.0). In particular, you might need to change not only the path to the '''xpidl''' compiler but also to the ''idl'' directory of your Gecko SDK (e.g. ''..\..\..\..\gecko-sdk\xpcom\bin\xpidl -m header -I..\..\..\..\gecko-sdk\xpcom\idl $(InputPath)'' to ''..\..\..\gecko-sdk\bin\xpidl -m header -I..\..\..\gecko-sdk\idl $(InputPath)'')<br />
<br />
Now you should be able to compile the project. Resulting .dll and .xpt files should be copied to the Mozilla Firefox plugins directory (e.g. ''C:\Program Files\Mozilla Firefox\plugins''). Once you've done that you can restart Mozilla. In general it is a good idea to use following options to during the startup: '''-P development -console''' so you can see the plugin output/debug information.<br />
<br />
For help with setup of the environment and Visual Studio refere to a guide from [http://developer.mozilla.org/en/docs/Compiling_The_npruntime_Sample_Plugin_in_Visual_Studio Mozilla Developer Center].<br />
<br />
== Developing OggPlay plugin ==<br />
<br />
Once you have a working Mozilla plugin development environment you can start configuring the environment for OggPlay plugin.</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay/Win32&diff=6926OggPlay/Win322007-06-14T06:08:55Z<p>Laser13: /* Overview */</p>
<hr />
<div>== Overview ==<br />
<br />
This page was created to give developers a first hand assistance in starting development of Mozilla Firefox plugins on Windows. After the generic development environment<br />
setup we present the setup of OggPlay Firefox plugin for Vorbis/Theora OggPlay player plugin. If you have an experience in plugin development and want to test<br />
or contribute to the OggPlay plugin development you might want to skip to the next section and go directly to OggPlay player plugin setup. If you do not have your development plugin environment<br />
set up you should start with basic plugin environment configuration.<br />
<br />
== Setup of basic Mozilla plugin development environment ==<br />
<br />
The documentation on set up of development environment for Mozilla plugins development of Linux/UNIX, Win32 and MacOS is inconsistent and partially incomplete at least. In an attempt to fill in the blanks this section presents basic development environment setup for Win200x/XP/Vista.<br />
<br />
=== Basic Mozilla plugin setup for MS Windows Win200x/XP ===<br />
<br />
Although we tested those steps on Windows 2003 Server and Windows XP the configuration should work on the other Window platforms (such as Windows Vista). We also assume that you are using MS Visual Studio 2003 or 2005 altough you should be able to setup the environment using VS6 in a similar way. If you are using other environment/compiler you are on your own. <br />
<br />
Before starting setting up your plugin development environment you will need following tools and SDKs:<br />
<br />
* '''Mozilla Firefox''' (at least in version 1.7 provided you use appropriate Gecko SDK)<br />
<br />
* '''Mozilla Gecko SDK''' - there are two recent releases of Gecko SDK (1.7 for Firefox 1.0 and 1.8 for Firefox 1.5. and 2.0) available for download on [http://developer.mozilla.org/en/docs/Gecko_SDK Mozilla Developer Center]. Here are direct links to both versions of the SDK:<br />
** [http://releases.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7/gecko-sdk-i586-pc-msvc-1.7.zip Gecko SDK 1.7] , or<br />
** [http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/gecko-sdk-win32-msvc-1.8.0.4.zip Gecko SDK 1.8]<br />
<br />
* '''Mozilla WinTools''' - to use '''xpidl''' compiler you need also Mozilla WinTools: [http://ftp.mozilla.org/pub/mozilla.org/mozilla/source/wintools.zip Direct download]<br />
<br />
* '''Microsoft Platform SDK''' - to compile the plugins you will need to get also '''Platform SDK''' from [http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en Microsoft Download Center]<br />
<br />
Once you unzipped '''Gecko SDK''' and installed '''MS Platform SDK''' you need to make sure your xpidl compiler is working properly. Unfortunately, the official release of '''Gecko SDK''' assumes you have following .dll on your system and in your '''PATH''' (provided you are using the newest version of '''WinTools'''):<br />
<br />
* glib-1.2.dll<br />
<br />
* libIDL-0.6.dll<br />
<br />
They are included in '''WinTools''' package under '''windows\bin\x86'''. In order for '''xpidl''' to run properly you need to have those .dll files in the same directory as xpidl.exe. Alternatively, if for some reason you do not want to copy those files across you can add the directory where those .dll are located to your system '''PATH''' variable. You can do that by navigating to ''Control Panel->System'' and then choosing ''Environment Variables'' in ''Advanced'' tab. There are also other options such as modifing Visual Studio environment by changing ''vcvarsall.bat'' script but it is outside of scope of this document.<br />
<br />
Once your xpidl you can try your environment and compile the official Mozilla samples. More details presented in the next section.<br />
<br />
=== Testing development environment with sample Mozilla plugin ===<br />
<br />
This is an optional step and unless you failed setting up environment for the OggPlay plugin or you want to build your own plugin you can probably skip this step. But if you want to understand the Mozilla plugin structure it is probably recommended to start with something simple.<br />
<br />
Once your xpidl you can try to compile the official Mozilla samples. You can download them [http://www.mozilla.org/projects/plugins/GeckoPluginSDK-samplesWin32.zip here]. The important thing about this archive is that we are interested only the ''Win32SDK\sdk\samples'' directory. In particular, attached gecko-sdk is not the most recent one. If you navigate to one of the samples and their ''windows'' directory you can open projects' .dsp file. If you are using newer version of Visual Studio than 6.0 it will be converted to the new format. Once you opened sample project you need probably update some of the configuration settings. In ''Project->Properties'' menu select ''C\C++->General'' and change Additional Include Directories to your Gecko SDK include directory ('''Note:''' this is preferably the new Gecko SDK in the archive gecko-sdk-i586-pc-msvc-1.7.zip or gecko-sdk-win32-msvc-1.8.0.4.zip and not the one attached to the samples archive). If you are using Gecko SDK 1.7 or Gecko SDK 1.8 you need to include samples '''include''' directory (i.e. ''..\..\include'') and only main Gecko SDK include (e.g. ''..\..\..\gecko-sdk\include'').<br />
<br />
You also need to point Visual Studio to the '''xpidl''' compiler. This is required to compile .idl file in the project. To change the default setting go to Visual Studio ''Solution Explorer'' and open ''Properties'' setting for the .idl file. Inspect file's ''Custom Build Step'' and adjust the directories in relation to the project file (.vcproj for VS200x or .dsp for VS6.0). In particular, you might need to change not only the path to the '''xpidl''' compiler but also to the ''idl'' directory of your Gecko SDK (e.g. ''..\..\..\..\gecko-sdk\xpcom\bin\xpidl -m header -I..\..\..\..\gecko-sdk\xpcom\idl $(InputPath)'' to ''..\..\..\gecko-sdk\bin\xpidl -m header -I..\..\..\gecko-sdk\idl $(InputPath)'')<br />
<br />
Now you should be able to compile the project. Resulting .dll and .xpt files should be copied to the Mozilla Firefox plugins directory (e.g. ''C:\Program Files\Mozilla Firefox\plugins''). Once you've done that you can restart Mozilla. In general it is a good idea to use following options to during the startup: '''-P development -console''' so you can see the plugin output/debug information.<br />
<br />
For help with setup of the environment and Visual Studio refere to a guide from [http://developer.mozilla.org/en/docs/Compiling_The_npruntime_Sample_Plugin_in_Visual_Studio Mozilla Developer Center].<br />
<br />
== Developing OggPlay plugin ==<br />
<br />
Once you have a working Mozilla plugin development environment you can start configuring the environment for OggPlay plugin.</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay/Win32&diff=6925OggPlay/Win322007-06-14T06:04:22Z<p>Laser13: /* Testing development environment with sample Mozilla plugin */</p>
<hr />
<div>== Overview ==<br />
<br />
This page was created to give developers a first hand assistance in starting development of Mozilla Firefox plugins on Windows. After the generic development environment<br />
setup we present the setup of OggPlay Firefox plugin for Vorbis/Theora OggPlay player plugin. If you have an experience in plugin development and want to test<br />
or contribute to the OggPlay plugin development you might want to skip to the next section and go directly to OggPlay player plugin. If you do not have your development plugin environment<br />
set up you should start with basic plugin environment configuration.<br />
<br />
== Setup of basic Mozilla plugin development environment ==<br />
<br />
The documentation on set up of development environment for Mozilla plugins development of Linux/UNIX, Win32 and MacOS is inconsistent and partially incomplete at least. In an attempt to fill in the blanks this section presents basic development environment setup for Win200x/XP/Vista.<br />
<br />
=== Basic Mozilla plugin setup for MS Windows Win200x/XP ===<br />
<br />
Although we tested those steps on Windows 2003 Server and Windows XP the configuration should work on the other Window platforms (such as Windows Vista). We also assume that you are using MS Visual Studio 2003 or 2005 altough you should be able to setup the environment using VS6 in a similar way. If you are using other environment/compiler you are on your own. <br />
<br />
Before starting setting up your plugin development environment you will need following tools and SDKs:<br />
<br />
* '''Mozilla Firefox''' (at least in version 1.7 provided you use appropriate Gecko SDK)<br />
<br />
* '''Mozilla Gecko SDK''' - there are two recent releases of Gecko SDK (1.7 for Firefox 1.0 and 1.8 for Firefox 1.5. and 2.0) available for download on [http://developer.mozilla.org/en/docs/Gecko_SDK Mozilla Developer Center]. Here are direct links to both versions of the SDK:<br />
** [http://releases.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7/gecko-sdk-i586-pc-msvc-1.7.zip Gecko SDK 1.7] , or<br />
** [http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/gecko-sdk-win32-msvc-1.8.0.4.zip Gecko SDK 1.8]<br />
<br />
* '''Mozilla WinTools''' - to use '''xpidl''' compiler you need also Mozilla WinTools: [http://ftp.mozilla.org/pub/mozilla.org/mozilla/source/wintools.zip Direct download]<br />
<br />
* '''Microsoft Platform SDK''' - to compile the plugins you will need to get also '''Platform SDK''' from [http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en Microsoft Download Center]<br />
<br />
Once you unzipped '''Gecko SDK''' and installed '''MS Platform SDK''' you need to make sure your xpidl compiler is working properly. Unfortunately, the official release of '''Gecko SDK''' assumes you have following .dll on your system and in your '''PATH''' (provided you are using the newest version of '''WinTools'''):<br />
<br />
* glib-1.2.dll<br />
<br />
* libIDL-0.6.dll<br />
<br />
They are included in '''WinTools''' package under '''windows\bin\x86'''. In order for '''xpidl''' to run properly you need to have those .dll files in the same directory as xpidl.exe. Alternatively, if for some reason you do not want to copy those files across you can add the directory where those .dll are located to your system '''PATH''' variable. You can do that by navigating to ''Control Panel->System'' and then choosing ''Environment Variables'' in ''Advanced'' tab. There are also other options such as modifing Visual Studio environment by changing ''vcvarsall.bat'' script but it is outside of scope of this document.<br />
<br />
Once your xpidl you can try your environment and compile the official Mozilla samples. More details presented in the next section.<br />
<br />
=== Testing development environment with sample Mozilla plugin ===<br />
<br />
This is an optional step and unless you failed setting up environment for the OggPlay plugin or you want to build your own plugin you can probably skip this step. But if you want to understand the Mozilla plugin structure it is probably recommended to start with something simple.<br />
<br />
Once your xpidl you can try to compile the official Mozilla samples. You can download them [http://www.mozilla.org/projects/plugins/GeckoPluginSDK-samplesWin32.zip here]. The important thing about this archive is that we are interested only the ''Win32SDK\sdk\samples'' directory. In particular, attached gecko-sdk is not the most recent one. If you navigate to one of the samples and their ''windows'' directory you can open projects' .dsp file. If you are using newer version of Visual Studio than 6.0 it will be converted to the new format. Once you opened sample project you need probably update some of the configuration settings. In ''Project->Properties'' menu select ''C\C++->General'' and change Additional Include Directories to your Gecko SDK include directory ('''Note:''' this is preferably the new Gecko SDK in the archive gecko-sdk-i586-pc-msvc-1.7.zip or gecko-sdk-win32-msvc-1.8.0.4.zip and not the one attached to the samples archive). If you are using Gecko SDK 1.7 or Gecko SDK 1.8 you need to include samples '''include''' directory (i.e. ''..\..\include'') and only main Gecko SDK include (e.g. ''..\..\..\gecko-sdk\include'').<br />
<br />
You also need to point Visual Studio to the '''xpidl''' compiler. This is required to compile .idl file in the project. To change the default setting go to Visual Studio ''Solution Explorer'' and open ''Properties'' setting for the .idl file. Inspect file's ''Custom Build Step'' and adjust the directories in relation to the project file (.vcproj for VS200x or .dsp for VS6.0). In particular, you might need to change not only the path to the '''xpidl''' compiler but also to the ''idl'' directory of your Gecko SDK (e.g. ''..\..\..\..\gecko-sdk\xpcom\bin\xpidl -m header -I..\..\..\..\gecko-sdk\xpcom\idl $(InputPath)'' to ''..\..\..\gecko-sdk\bin\xpidl -m header -I..\..\..\gecko-sdk\idl $(InputPath)'')<br />
<br />
Now you should be able to compile the project. Resulting .dll and .xpt files should be copied to the Mozilla Firefox plugins directory (e.g. ''C:\Program Files\Mozilla Firefox\plugins''). Once you've done that you can restart Mozilla. In general it is a good idea to use following options to during the startup: '''-P development -console''' so you can see the plugin output/debug information.<br />
<br />
For help with setup of the environment and Visual Studio refere to a guide from [http://developer.mozilla.org/en/docs/Compiling_The_npruntime_Sample_Plugin_in_Visual_Studio Mozilla Developer Center].<br />
<br />
== Developing OggPlay plugin ==<br />
<br />
Once you have a working Mozilla plugin development environment you can start configuring the environment for OggPlay plugin.</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay/Win32&diff=6924OggPlay/Win322007-06-14T06:03:00Z<p>Laser13: </p>
<hr />
<div>== Overview ==<br />
<br />
This page was created to give developers a first hand assistance in starting development of Mozilla Firefox plugins on Windows. After the generic development environment<br />
setup we present the setup of OggPlay Firefox plugin for Vorbis/Theora OggPlay player plugin. If you have an experience in plugin development and want to test<br />
or contribute to the OggPlay plugin development you might want to skip to the next section and go directly to OggPlay player plugin. If you do not have your development plugin environment<br />
set up you should start with basic plugin environment configuration.<br />
<br />
== Setup of basic Mozilla plugin development environment ==<br />
<br />
The documentation on set up of development environment for Mozilla plugins development of Linux/UNIX, Win32 and MacOS is inconsistent and partially incomplete at least. In an attempt to fill in the blanks this section presents basic development environment setup for Win200x/XP/Vista.<br />
<br />
=== Basic Mozilla plugin setup for MS Windows Win200x/XP ===<br />
<br />
Although we tested those steps on Windows 2003 Server and Windows XP the configuration should work on the other Window platforms (such as Windows Vista). We also assume that you are using MS Visual Studio 2003 or 2005 altough you should be able to setup the environment using VS6 in a similar way. If you are using other environment/compiler you are on your own. <br />
<br />
Before starting setting up your plugin development environment you will need following tools and SDKs:<br />
<br />
* '''Mozilla Firefox''' (at least in version 1.7 provided you use appropriate Gecko SDK)<br />
<br />
* '''Mozilla Gecko SDK''' - there are two recent releases of Gecko SDK (1.7 for Firefox 1.0 and 1.8 for Firefox 1.5. and 2.0) available for download on [http://developer.mozilla.org/en/docs/Gecko_SDK Mozilla Developer Center]. Here are direct links to both versions of the SDK:<br />
** [http://releases.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7/gecko-sdk-i586-pc-msvc-1.7.zip Gecko SDK 1.7] , or<br />
** [http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/gecko-sdk-win32-msvc-1.8.0.4.zip Gecko SDK 1.8]<br />
<br />
* '''Mozilla WinTools''' - to use '''xpidl''' compiler you need also Mozilla WinTools: [http://ftp.mozilla.org/pub/mozilla.org/mozilla/source/wintools.zip Direct download]<br />
<br />
* '''Microsoft Platform SDK''' - to compile the plugins you will need to get also '''Platform SDK''' from [http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en Microsoft Download Center]<br />
<br />
Once you unzipped '''Gecko SDK''' and installed '''MS Platform SDK''' you need to make sure your xpidl compiler is working properly. Unfortunately, the official release of '''Gecko SDK''' assumes you have following .dll on your system and in your '''PATH''' (provided you are using the newest version of '''WinTools'''):<br />
<br />
* glib-1.2.dll<br />
<br />
* libIDL-0.6.dll<br />
<br />
They are included in '''WinTools''' package under '''windows\bin\x86'''. In order for '''xpidl''' to run properly you need to have those .dll files in the same directory as xpidl.exe. Alternatively, if for some reason you do not want to copy those files across you can add the directory where those .dll are located to your system '''PATH''' variable. You can do that by navigating to ''Control Panel->System'' and then choosing ''Environment Variables'' in ''Advanced'' tab. There are also other options such as modifing Visual Studio environment by changing ''vcvarsall.bat'' script but it is outside of scope of this document.<br />
<br />
Once your xpidl you can try your environment and compile the official Mozilla samples. More details presented in the next section.<br />
<br />
=== Testing development environment with sample Mozilla plugin ===<br />
<br />
This is an optional step and unless you failed setting up environment for the OggPlay plugin or you want to build your own plugin you can probably skip this step. But if you want to understand the Mozilla plugin structure it is probably recommended to start with something simple.<br />
<br />
Once your xpidl you can try to compile the official Mozilla samples. You can download them [http://www.mozilla.org/projects/plugins/GeckoPluginSDK-samplesWin32.zip here]. The important thing about this archive is that we are interested only the ''Win32SDK\sdk\samples'' directory. In particular, attached gecko-sdk is not the most recent one. If you navigate to one of the samples and their ''windows'' directory you can open projects' .dsp file. If you are using newer version of Visual Studio than 6.0 it will be converted to the new format. Once you opened sample project you need probably update some of the configuration settings. In ''Project->Properties'' menu select ''C\C++->General'' and change Additional Include Directories to your Gecko SDK include directory ('''Note:''' this is preferably the new Gecko SDK in the archive gecko-sdk-i586-pc-msvc-1.7.zip or gecko-sdk-win32-msvc-1.8.0.4.zip and not the one attached to the samples archive). If you are using Gecko SDK 1.7 or Gecko SDK 1.8 you need to include samples '''include''' directory (i.e. ''..\..\include'') and only main Gecko SDK include (e.g. ''..\..\..\gecko-sdk\include'').<br />
<br />
You also need to point Visual Studio to the '''xpidl''' compiler. This is required to compile .idl file in the project. To change the default setting go to Visual Studio ''Solution Explorer'' and open ''Properties'' setting for the .idl file. Inspect file's ''Custom Build Step'' and adjust the directories in relation to the project file (.vcproj for VS200x or .dsp for VS6.0). In particular, you might need to change not only the path to the '''xpidl''' compiler but also to the ''idl'' directory of your Gecko SDK (e.g. ''..\..\..\..\gecko-sdk\xpcom\bin\xpidl -m header -I..\..\..\..\gecko-sdk\xpcom\idl $(InputPath)'' to ''..\..\..\gecko-sdk\bin\xpidl -m header -I..\..\..\gecko-sdk\idl $(InputPath)'')<br />
<br />
Now you should be able to compile the project. Resulting .dll and .xpt files should be copied to the Mozilla Firefox plugins directory (e.g. ''C:\Program Files\Mozilla Firefox\plugins"). Once you've done that you can restart Mozilla. In general it is a good idea to use following options to during the startup: '''-P development -console''' so you can see the plugin output/debug information.<br />
<br />
For help with setup of the environment and Visual Studio refere to a guide from [http://developer.mozilla.org/en/docs/Compiling_The_npruntime_Sample_Plugin_in_Visual_Studio Mozilla Developer Center].<br />
<br />
<br />
== Developing OggPlay plugin ==<br />
<br />
Once you have a working Mozilla plugin development environment you can start configuring the environment for OggPlay plugin.</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay&diff=6923OggPlay2007-06-14T06:00:36Z<p>Laser13: /* Windows */</p>
<hr />
<div>== Overview ==<br />
OggPlay is a library designed to allow drop-in playback of Xiph.Org media in an application. OggPlay handles demuxing and decoding, generates timestamps for raw data, maintains synchronisation across multiple streams, and provides a lock-free buffer implementation for easy multithreading.<br />
<br />
OggPlay is a '''work in progress''': the first release should be availably by mid-2007.<br />
<br />
OggPlay is currently hosted by [http://www.annodex.net Annodex], although there are plans to move hosting over to the Xiph.Org servers. SVN access is available through http://svn.annodex.net/liboggplay/trunk.<br />
<br />
== Developer's Guide ==<br />
<br />
=== Linux ===<br />
<br />
=== Windows ===<br />
<br />
For detailed instructions how to setup Mozilla plugin development environment and start hacking on Win32 version of OggPlay Mozilla Firefox plugin go to: [http://wiki.xiph.org/index.php/OggPlay/Win32 Win32 Development Envrionment Setup]<br />
<br />
=== MacOS ===<br />
<br />
== Plugin Javascript API ==<br />
<br />
View the [[OggPlayJavascriptAPI | draft OggPlay plugin Javascript API]]</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay/Win32&diff=6922OggPlay/Win322007-06-14T05:44:20Z<p>Laser13: </p>
<hr />
<div>== Overview ==<br />
<br />
This page was created to give developers a first hand assistance in starting development of Mozilla Firefox plugins on Windows. After the generic development environment<br />
setup we present the setup of OggPlay Firefox plugin for Vorbis/Theora OggPlay player plugin. If you have an experience in plugin development and want to test<br />
or contribute to the OggPlay plugin development you might want to skip to the next section and go directly to OggPlay player plugin. If you do not have your development plugin environment<br />
set up you should start with basic plugin environment configuration.<br />
<br />
== Setup of basic Mozilla plugin development environment ==<br />
<br />
The documentation on set up of development environment for Mozilla plugins development of Linux/UNIX, Win32 and MacOS is inconsistent and partially incomplete at least. In an attempt to fill in the blanks this section presents basic development environment setup for Win200x/XP/Vista.<br />
<br />
=== Basic Mozilla plugin setup for MS Windows Win200x/XP ===<br />
<br />
Although we tested those steps on Windows 2003 Server and Windows XP the configuration should work on the other Window platforms (such as Windows Vista). We also assume that you are using MS Visual Studio 2003 or 2005 altough you should be able to setup the environment using VS6 in a similar way. If you are using other environment/compiler you are on your own. <br />
<br />
Before starting setting up your plugin development environment you will need following tools and SDKs:<br />
<br />
* Mozilla Firefox (at least in version 1.7 provided you use appropriate Gecko SDK)<br />
<br />
* '''Mozilla Gecko SDK''' - there are two recent releases of Gecko SDK (1.7 for Firefox 1.0 and 1.8 for Firefox 1.5. and 2.0) available for download on [http://developer.mozilla.org/en/docs/Gecko_SDK Mozilla Developer Center]. Here are direct links to both versions of the SDK:<br />
** [http://releases.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7/gecko-sdk-i586-pc-msvc-1.7.zip Gecko SDK 1.7] , or<br />
** [http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/gecko-sdk-win32-msvc-1.8.0.4.zip Gecko SDK 1.8]<br />
<br />
* '''Mozilla WinTools''' - to use '''xpidl''' compiler you need also Mozilla WinTools: [http://ftp.mozilla.org/pub/mozilla.org/mozilla/source/wintools.zip Direct download]<br />
<br />
* '''Microsoft Platform SDK''' - to compile the plugins you will need to get also '''Platform SDK''' from [http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en Microsoft Download Center]<br />
<br />
Once you unzipped '''Gecko SDK''' and installed '''MS Platform SDK''' you need to make sure your xpidl compiler is working properly. Unfortunately, the official release of '''Gecko SDK''' assumes you have following .dll on your system and in your '''PATH''' (provided you are using the newest version of '''WinTools'''):<br />
<br />
* glib-1.2.dll<br />
<br />
* libIDL-0.6.dll<br />
<br />
They are included in '''WinTools''' package under '''windows\bin\x86'''. In order for '''xpidl''' to run properly you need to have those .dll files in the same directory as xpidl.exe. Alternatively, if for some reason you do not want to copy those files across you can add the directory where those .dll are located to your system '''PATH''' variable. You can do that by navigating to ''Control Panel->System'' and then choosing ''Environment Variables'' in ''Advanced'' tab. There are also other options such as modifing Visual Studio environment by changing ''vcvarsall.bat'' script but it is outside of scope of this document.<br />
<br />
Once your xpidl you can try your environment and compile the official Mozilla samples. More details presented in the next section.<br />
<br />
=== Testing development environment with sample Mozilla plugin ===<br />
<br />
This is an optional step and unless you failed setting up environment for the OggPlay plugin or you want to build your own plugin you can probably skip this step. But if you want to understand the Mozilla plugin structure it is probably recommended to start with something simple.<br />
<br />
Once your xpidl you can try to compile the official Mozilla samples. You can download them [http://www.mozilla.org/projects/plugins/GeckoPluginSDK-samplesWin32.zip here]. The important thing about this archive is that we are interested only the ''Win32SDK\sdk\samples'' directory. In particular, attached gecko-sdk is not the most recent one. If you navigate to one of the samples and their ''windows'' directory you can open projects' .dsp file. If you are using newer version of Visual Studio than 6.0 it will be converted to the new format. Once you opened sample project you need probably update some of the configuration settings. In ''Project->Properties'' menu select ''C\C++->General'' and change Additional Include Directories to your Gecko SDK include directory ('''Note:''' this is preferably the new Gecko SDK in the archive gecko-sdk-i586-pc-msvc-1.7.zip or gecko-sdk-win32-msvc-1.8.0.4.zip and not the one attached to the samples archive). If you are using Gecko SDK 1.7 or Gecko SDK 1.8 you need to include samples '''include''' directory (i.e. ''..\..\include'') and only main Gecko SDK include (e.g. ''..\..\..\gecko-sdk\include'').<br />
<br />
You also need to point Visual Studio to the '''xpidl''' compiler. This is required to compile .idl file in the project. To change the default setting go to Visual Studio ''Solution Explorer'' and open ''Properties'' setting for the .idl file. Inspect file's ''Custom Build Step'' and adjust the directories in relation to the project file (.vcproj for VS200x or .dsp for VS6.0). In particular, you might need to change not only the path to the '''xpidl''' compiler but also to the ''idl'' directory of your Gecko SDK (e.g. ''..\..\..\..\gecko-sdk\xpcom\bin\xpidl -m header -I..\..\..\..\gecko-sdk\xpcom\idl $(InputPath)'' to ''..\..\..\gecko-sdk\bin\xpidl -m header -I..\..\..\gecko-sdk\idl $(InputPath)'')<br />
<br />
Now you should be able to compile the project. Resulting .dll and .xpt files should be copied to the Mozilla Firefox plugins directory (e.g. ''C:\Program Files\Mozilla Firefox\plugins"). Once you've done that you can restart Mozilla. In general it is a good idea to use following options to during the startup: '''-P development -console''' so you can see the plugin output/debug information.<br />
<br />
For help with setup of the environment and Visual Studio refere to a guide from [http://developer.mozilla.org/en/docs/Compiling_The_npruntime_Sample_Plugin_in_Visual_Studio Mozilla Developer Center].<br />
<br />
<br />
== Developing OggPlay plugin ==<br />
<br />
Once you have a working Mozilla plugin development environment you can start configuring the environment for OggPlay plugin.</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay/Win32&diff=6921OggPlay/Win322007-06-14T05:43:20Z<p>Laser13: </p>
<hr />
<div>== Overview ==<br />
<br />
This page was created to give developers a first hand assistance in starting development of Mozilla Firefox plugins on Windows. After the generic development environment<br />
setup we present the setup of OggPlay Firefox plugin for Vorbis/Theora OggPlay player plugin. If you have an experience in plugin development and want to test<br />
or contribute to the OggPlay plugin development you might want to skip to the next section and go directly to OggPlay player plugin. If you do not have your development plugin environment<br />
set up you should start with basic plugin environment configuration.<br />
<br />
== Setup of basic Mozilla plugin development environment ==<br />
<br />
The documentation on set up of development environment for Mozilla plugins development of Linux/UNIX, Win32 and MacOS is inconsistent and partially incomplete at least. In an attempt to fill in the blanks this section presents basic development environment setup for Win200x/XP/Vista.<br />
<br />
=== Basic Mozilla plugin setup for MS Windows Win200x/XP ===<br />
<br />
Although we tested those steps on Windows 2003 Server and Windows XP the configuration should work on the other Window platforms (such as Windows Vista). We also assume that you are using MS Visual Studio 2003 or 2005 altough you should be able to setup the environment using VS6 in a similar way. If you are using other environment/compiler you are on your own. <br />
<br />
Before starting setting up your plugin development environment you will need following tools and SDKs:<br />
<br />
* Mozilla Firefox (at least in version 1.7 provided you use appropriate Gecko SDK)<br />
<br />
* '''Mozilla Gecko SDK''' - there are two recent releases of Gecko SDK (1.7 for Firefox 1.0 and 1.8 for Firefox 1.5. and 2.0) available for download on [http://developer.mozilla.org/en/docs/Gecko_SDK Mozilla Developer Center]. Here are direct links to both versions of the SDK:<br />
** [http://releases.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7/gecko-sdk-i586-pc-msvc-1.7.zip Gecko SDK 1.7] , or<br />
** [http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/gecko-sdk-win32-msvc-1.8.0.4.zip Gecko SDK 1.8]<br />
<br />
* '''Mozilla WinTools''' - to use '''xpidl''' compiler you need also Mozilla WinTools: [http://ftp.mozilla.org/pub/mozilla.org/mozilla/source/wintools.zip Direct download]<br />
<br />
* '''Microsoft Platform SDK''' - to compile the plugins you will need to get also '''Platform SDK''' from [http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en Microsoft Download Center]<br />
<br />
Once you unzipped '''Gecko SDK''' and installed '''MS Platform SDK''' you need to make sure your xpidl compiler is working properly. Unfortunately, the official release of '''Gecko SDK''' assumes you have following .dll on your system and in your '''PATH''' (provided you are using the newest version of '''WinTools'''):<br />
<br />
* glib-1.2.dll<br />
<br />
* libIDL-0.6.dll<br />
<br />
They are included in '''WinTools''' package under '''windows\bin\x86'''. In order for '''xpidl''' to run properly you need to have those .dll files in the same directory as xpidl.exe. Alternatively, if for some reason you do not want to copy those files across you can add the directory where those .dll are located to your system '''PATH''' variable. You can do that by navigating to ''Control Panel->System'' and then choosing ''Environment Variables'' in ''Advanced'' tab. There are also other options such as modifing Visual Studio environment by changing ''vcvarsall.bat'' script but it is outside of scope of this document.<br />
<br />
Once your xpidl you can try your environment and compile the official Mozilla samples. More details presented in the next section.<br />
<br />
=== Testing development environment with sample Mozilla plugin ===<br />
<br />
This is an optional step and unless you failed setting up environment for the OggPlay plugin or you want to build your own plugin you can probably skip this step. But if you want to understand the Mozilla plugin structure it is probably recommended to start with something simple.<br />
<br />
Once your xpidl you can try to compile the official Mozilla samples. You can download them [http://www.mozilla.org/projects/plugins/GeckoPluginSDK-samplesWin32.zip here]. The important thing about this archive is that we are interested only the ''Win32SDK\sdk\samples'' directory. In particular, attached gecko-sdk is not the most recent one. If you navigate to one of the samples and their ''windows'' directory you can open projects' .dsp file. If you are using newer version of Visual Studio than 6.0 it will be converted to the new format. Once you opened sample project you need probably update some of the configuration settings. In ''Project->Properties'' menu select ''C\C++->General'' and change Additional Include Directories to your Gecko SDK include directory ('''Note:''' this is preferably the new Gecko SDK in the archive gecko-sdk-i586-pc-msvc-1.7.zip or gecko-sdk-win32-msvc-1.8.0.4.zip and not the one attached to the samples archive). If you are using Gecko SDK 1.7 or Gecko SDK 1.8 you need to include samples '''include''' directory (i.e. ''..\..\include'') and only main Gecko SDK include (e.g. ''..\..\..\gecko-sdk\include'').<br />
<br />
You also need to point Visual Studio to the '''xpidl''' compiler. This is required to compile .idl file in the project. To change the default setting go to Visual Studio ''Solution Explorer'' and open ''Properties'' setting for the .idl file. Inspect file's ''Custom Build Step'' and adjust the directories in relation to the project file (.vcproj for VS200x or .dsp for VS6.0). In particular, you might need to change not only the path to the '''xpidl''' compiler but also to the ''idl'' directory of your Gecko SDK (e.g. ''..\..\..\'''..\'''gecko-sdk\'''xpcom\'''bin\xpidl -m header -I..\..\..\'''..\'''gecko-sdk\'''xpcom\'''idl $(InputPath)'' to ''..\..\..\gecko-sdk\bin\xpidl -m header -I..\..\..\gecko-sdk\idl $(InputPath)'')<br />
<br />
Now you should be able to compile the project. Resulting .dll and .xpt files should be copied to the Mozilla Firefox plugins directory (e.g. ''C:\Program Files\Mozilla Firefox\plugins"). Once you've done that you can restart Mozilla. In general it is a good idea to use following options to during the startup: '''-P development -console''' so you can see the plugin output/debug information.<br />
<br />
For help with setup of the environment and Visual Studio refere to a guide from [http://developer.mozilla.org/en/docs/Compiling_The_npruntime_Sample_Plugin_in_Visual_Studio Mozilla Developer Center].<br />
<br />
<br />
== Developing OggPlay plugin ==<br />
<br />
Once you have a working Mozilla plugin development environment you can start configuring the environment for OggPlay plugin.</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay/Win32&diff=6919OggPlay/Win322007-06-14T05:30:36Z<p>Laser13: /* Basic Mozilla plugin setup for MS Windows Win200x/XP */</p>
<hr />
<div>== Overview ==<br />
<br />
This page was created to give developers a first hand assistance in starting development of Mozilla Firefox plugins on Windows. After the generic development environment<br />
setup we present the setup of OggPlay Firefox plugin for Vorbis/Theora OggPlay player plugin. If you have an experience in plugin development and want to test<br />
or contribute to the OggPlay plugin development you might want to skip to the next section and go directly to OggPlay player plugin. If you do not have your development plugin environment<br />
set up you should start with basic plugin environment configuration.<br />
<br />
== Setup of basic Mozilla plugin development environment ==<br />
<br />
The documentation on set up of development environment for Mozilla plugins development of Linux/UNIX, Win32 and MacOS is inconsistent and partially incomplete at least. In an attempt to fill in the blanks this section presents basic development environment setup for Win200x/XP/Vista.<br />
<br />
=== Basic Mozilla plugin setup for MS Windows Win200x/XP ===<br />
<br />
Although we tested those steps on Windows 2003 Server and Windows XP the configuration should work on the other Window platforms (such as Windows Vista). We also assume that you are using MS Visual Studio 2003 or 2005 altough you should be able to setup the environment using VS6 in a similar way. If you are using other environment/compiler you are on your own. <br />
<br />
Before starting setting up your plugin development environment you will need following tools and SDKs:<br />
<br />
* Mozilla Firefox (at least in version 1.7 provided you use appropriate Gecko SDK)<br />
<br />
* '''Mozilla Gecko SDK''' - there are two recent releases of Gecko SDK (1.7 for Firefox 1.0 and 1.8 for Firefox 1.5. and 2.0) available for download on [http://developer.mozilla.org/en/docs/Gecko_SDK Mozilla Developer Center]. Here are direct links to both versions of the SDK:<br />
** [http://releases.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7/gecko-sdk-i586-pc-msvc-1.7.zip Gecko SDK 1.7] , or<br />
** [http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/gecko-sdk-win32-msvc-1.8.0.4.zip Gecko SDK 1.8]<br />
<br />
* '''Mozilla WinTools''' - to use '''xpidl''' compiler you need also Mozilla WinTools: [http://ftp.mozilla.org/pub/mozilla.org/mozilla/source/wintools.zip Direct download]<br />
<br />
* '''Microsoft Platform SDK''' - to compile the plugins you will need to get also '''Platform SDK''' from [http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en Microsoft Download Center]<br />
<br />
Once you unzipped '''Gecko SDK''' and installed '''MS Platform SDK''' you need to make sure your xpidl compiler is working properly. Unfortunately, the official release of '''Gecko SDK''' assumes you have following .dll on your system and in your '''PATH''' (provided you are using the newest version of '''WinTools'''):<br />
<br />
* glib-1.2.dll<br />
<br />
* libIDL-0.6.dll<br />
<br />
They are included in '''WinTools''' package under '''windows\bin\x86'''. In order for '''xpidl''' to run properly you need to have those .dll files in the same directory as xpidl.exe. Alternatively, if for some reason you do not want to copy those files across you can add the directory where those .dll are located to your system '''PATH''' variable. You can do that by navigating to ''Control Panel->System'' and then choosing ''Environment Variables'' in ''Advanced'' tab. There are also other options such as modifing Visual Studio environment by changing ''vcvarsall.bat'' script but it is outside of scope of this document.<br />
<br />
Once your xpidl you can try your environment and compile the official Mozilla samples. More details presented in the next section.<br />
<br />
=== Testing development environment with sample Mozilla plugin ===<br />
<br />
This is an optional step and unless you failed setting up environment for the OggPlay plugin or you want to build your own plugin you can probably skip this step. But if you want to understand the Mozilla plugin structure it is probably recommended to start with something simple.<br />
<br />
Once your xpidl you can try to compile the official Mozilla samples. You can download them [http://www.mozilla.org/projects/plugins/GeckoPluginSDK-samplesWin32.zip here]. The important thing about this archive is that we are interested only the ''Win32SDK\sdk\samples'' directory. In particular, attached gecko-sdk is not the most recent one. If you navigate to one of the samples and their ''windows'' directory you can open projects' .dsp file. If you are using newer version of Visual Studio than 6.0 it will be converted to the new format. Once you opened sample project you need probably update some of the configuration settings. In ''Project->Properties'' menu select ''C\C++->General'' and change Additional Include Directories to your Gecko SDK include directory ('''Note:''' this is preferably the new Gecko SDK in the archive gecko-sdk-i586-pc-msvc-1.7.zip or gecko-sdk-win32-msvc-1.8.0.4.zip and not the one attached to the samples archive). If you are using Gecko SDK 1.7 or Gecko SDK 1.8 you need to include samples '''include''' directory (i.e. ''..\..\include'') and only main Gecko SDK include (e.g. ''..\..\..\gecko-sdk\include'').<br />
<br />
You also need to point Visual Studio to the '''xpidl''' compiler. This is required to compile .idl file in the project. To change the default setting go to Visual Studio ''Solution Explorer'' and open ''Properties'' setting for the .idl file. Inspect file's ''Custom Build Step'' and adjust the directories in relation to the project file (.vcproj for VS200x or .dsw for VS6.0)<br />
<br />
Now you should be able to compile the project. Resulting .dll and .xpt files should be copied to the Mozilla Firefox plugins directory (e.g. ''C:\Program Files\Mozilla Firefox\plugins"). Once you've done that you can restart Mozilla. In general it is a good idea to use following options to during the startup: '''-P development -console''' so you can see the plugin output/debug information.<br />
<br />
For help with setup of the environment and Visual Studio refere to a guide from [http://developer.mozilla.org/en/docs/Compiling_The_npruntime_Sample_Plugin_in_Visual_Studio Mozilla Developer Center].<br />
<br />
<br />
== Developing OggPlay plugin ==<br />
<br />
Once you have a working Mozilla plugin development environment you can start configuring the environment for OggPlay plugin.</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay/Win32&diff=6918OggPlay/Win322007-06-14T05:29:11Z<p>Laser13: /* Basic Mozilla plugin setup for MS Windows Win200x/XP */</p>
<hr />
<div>== Overview ==<br />
<br />
This page was created to give developers a first hand assistance in starting development of Mozilla Firefox plugins on Windows. After the generic development environment<br />
setup we present the setup of OggPlay Firefox plugin for Vorbis/Theora OggPlay player plugin. If you have an experience in plugin development and want to test<br />
or contribute to the OggPlay plugin development you might want to skip to the next section and go directly to OggPlay player plugin. If you do not have your development plugin environment<br />
set up you should start with basic plugin environment configuration.<br />
<br />
== Setup of basic Mozilla plugin development environment ==<br />
<br />
The documentation on set up of development environment for Mozilla plugins development of Linux/UNIX, Win32 and MacOS is inconsistent and partially incomplete at least. In an attempt to fill in the blanks this section presents basic development environment setup for Win200x/XP/Vista.<br />
<br />
=== Basic Mozilla plugin setup for MS Windows Win200x/XP ===<br />
<br />
Although we tested those steps on Windows 2003 Server and Windows XP the configuration should work on the other Window platforms (such as Windows Vista). We also assume that you are using MS Visual Studio 2003 or 2005 altough you should be able to setup the environment using VS6 in a similar way. If you are using other environment/compiler you are on your own. <br />
<br />
Before starting setting up your plugin development environment you will need following tools and SDKs:<br />
<br />
* Mozilla Firefox (at least in version 1.7 provided you use appropriate Gecko SDK)<br />
<br />
* '''Mozilla Gecko SDK''' - there are two recent releases of Gecko SDK (1.7 for Firefox 1.0 and 1.8 for Firefox 1.5. and 2.0) available for download on [http://developer.mozilla.org/en/docs/Gecko_SDK Mozilla Developer Center]. Here are direct links to both versions of the SDK:<br />
** [http://releases.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7/gecko-sdk-i586-pc-msvc-1.7.zip Gecko SDK 1.7] , or<br />
** [http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/gecko-sdk-win32-msvc-1.8.0.4.zip Gecko SDK 1.8]<br />
<br />
* '''Mozilla WinTools''' - to use '''xpidl''' compiler you need also Mozilla WinTools: [http://ftp.mozilla.org/pub/mozilla.org/mozilla/source/wintools.zip Direct download]<br />
<br />
* '''Microsoft Platform SDK''' - to compile the plugins you will need to get also '''Platform SDK''' from [http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en Microsoft Download Center]<br />
<br />
Once you unzipped '''Gecko SDK''' and installed '''MS Platform SDK''' you need to make sure your xpidl compiler is working properly. Unfortunately, the official release of '''Gecko SDK''' assumes you have following .dll on your system and in your PATH (provided you are using the newest version of '''WinTools'''):<br />
<br />
* glib-1.2.dll<br />
<br />
* libIDL-0.6.dll<br />
<br />
They are included in '''WinTools''' package under '''windows\bin\x86'''. In order for '''xpidl''' to run properly you need to have those .dll files in the same directory as xpidl.exe. Alternatively, if for some reason you do not want to copy those files across you can add the directory where those .dll are located to your system '''PATH''' variable. You can do that by navigating to ''Control Panel->System'' and then choosing ''Environment Variables'' in ''Advanced'' tab. There are also other options such as modifing Visual Studio environment by changing ''vcvarsall.bat'' script but it is outside of scope of this document.<br />
<br />
Once your xpidl you can try your environment and compile the official Mozilla samples. More details presented in the next section.<br />
<br />
=== Testing development environment with sample Mozilla plugin ===<br />
<br />
This is an optional step and unless you failed setting up environment for the OggPlay plugin or you want to build your own plugin you can probably skip this step. But if you want to understand the Mozilla plugin structure it is probably recommended to start with something simple.<br />
<br />
Once your xpidl you can try to compile the official Mozilla samples. You can download them [http://www.mozilla.org/projects/plugins/GeckoPluginSDK-samplesWin32.zip here]. The important thing about this archive is that we are interested only the ''Win32SDK\sdk\samples'' directory. In particular, attached gecko-sdk is not the most recent one. If you navigate to one of the samples and their ''windows'' directory you can open projects' .dsp file. If you are using newer version of Visual Studio than 6.0 it will be converted to the new format. Once you opened sample project you need probably update some of the configuration settings. In ''Project->Properties'' menu select ''C\C++->General'' and change Additional Include Directories to your Gecko SDK include directory ('''Note:''' this is preferably the new Gecko SDK in the archive gecko-sdk-i586-pc-msvc-1.7.zip or gecko-sdk-win32-msvc-1.8.0.4.zip and not the one attached to the samples archive). If you are using Gecko SDK 1.7 or Gecko SDK 1.8 you need to include samples '''include''' directory (i.e. ''..\..\include'') and only main Gecko SDK include (e.g. ''..\..\..\gecko-sdk\include'').<br />
<br />
You also need to point Visual Studio to the '''xpidl''' compiler. This is required to compile .idl file in the project. To change the default setting go to Visual Studio ''Solution Explorer'' and open ''Properties'' setting for the .idl file. Inspect file's ''Custom Build Step'' and adjust the directories in relation to the project file (.vcproj for VS200x or .dsw for VS6.0)<br />
<br />
Now you should be able to compile the project. Resulting .dll and .xpt files should be copied to the Mozilla Firefox plugins directory (e.g. ''C:\Program Files\Mozilla Firefox\plugins"). Once you've done that you can restart Mozilla. In general it is a good idea to use following options to during the startup: '''-P development -console''' so you can see the plugin output/debug information.<br />
<br />
For help with setup of the environment and Visual Studio refere to a guide from [http://developer.mozilla.org/en/docs/Compiling_The_npruntime_Sample_Plugin_in_Visual_Studio Mozilla Developer Center].<br />
<br />
<br />
== Developing OggPlay plugin ==<br />
<br />
Once you have a working Mozilla plugin development environment you can start configuring the environment for OggPlay plugin.</div>Laser13https://wiki.xiph.org/index.php?title=OggPlay/Win32&diff=6917OggPlay/Win322007-06-14T05:28:24Z<p>Laser13: </p>
<hr />
<div>== Overview ==<br />
<br />
This page was created to give developers a first hand assistance in starting development of Mozilla Firefox plugins on Windows. After the generic development environment<br />
setup we present the setup of OggPlay Firefox plugin for Vorbis/Theora OggPlay player plugin. If you have an experience in plugin development and want to test<br />
or contribute to the OggPlay plugin development you might want to skip to the next section and go directly to OggPlay player plugin. If you do not have your development plugin environment<br />
set up you should start with basic plugin environment configuration.<br />
<br />
== Setup of basic Mozilla plugin development environment ==<br />
<br />
The documentation on set up of development environment for Mozilla plugins development of Linux/UNIX, Win32 and MacOS is inconsistent and partially incomplete at least. In an attempt to fill in the blanks this section presents basic development environment setup for Win200x/XP/Vista.<br />
<br />
=== Basic Mozilla plugin setup for MS Windows Win200x/XP ===<br />
<br />
Although we tested those steps on Windows 2003 Server and Windows XP the configuration should work on the other Window platforms (such as Windows Vista). We also assume that you are using MS Visual Studio 2003 or 2005 altough you should be able to setup the environment using VS6 in a similar way. If you are using other environment/compiler you are on your own. <br />
<br />
Before starting setting up your plugin development environment you will need following tools and SDKs:<br />
<br />
* Mozilla Firefox (at least in version 1.7 provided you use appropriate Gecko SDK)<br />
<br />
* '''Mozilla Gecko SDK''' - there are two recent releases of Gecko SDK (1.7 for Firefox 1.0 and 1.8 for Firefox 1.5. and 2.0) available for download on [http://developer.mozilla.org/en/docs/Gecko_SDK Mozilla Developer Centre]. Here are direct links to both versions of the SDK:<br />
** [http://releases.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7/gecko-sdk-i586-pc-msvc-1.7.zip Gecko SDK 1.7] , or<br />
** [http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/gecko-sdk-win32-msvc-1.8.0.4.zip Gecko SDK 1.8]<br />
<br />
* '''Mozilla WinTools''' - to use '''xpidl''' compiler you need also Mozilla WinTools: [http://ftp.mozilla.org/pub/mozilla.org/mozilla/source/wintools.zip Direct download]<br />
<br />
* '''Microsoft Platform SDK''' - to compile the plugins you will need to get also '''Platform SDK''' from [http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en Microsoft Download Center]<br />
<br />
Once you unzipped '''Gecko SDK''' and installed '''MS Platform SDK''' you need to make sure your xpidl compiler is working properly. Unfortunately, the official release of '''Gecko SDK''' assumes you have following .dll on your system and in your PATH (provided you are using the newest version of '''WinTools'''):<br />
<br />
* glib-1.2.dll<br />
<br />
* libIDL-0.6.dll<br />
<br />
They are included in '''WinTools''' package under '''windows\bin\x86'''. In order for '''xpidl''' to run properly you need to have those .dll files in the same directory as xpidl.exe. Alternatively, if for some reason you do not want to copy those files across you can add the directory where those .dll are located to your system '''PATH''' variable. You can do that by navigating to ''Control Panel->System'' and then choosing ''Environment Variables'' in ''Advanced'' tab. There are also other options such as modifing Visual Studio environment by changing ''vcvarsall.bat'' script but it is outside of scope of this document.<br />
<br />
Once your xpidl you can try your environment and compile the official Mozilla samples. More details presented in the next section.<br />
<br />
=== Testing development environment with sample Mozilla plugin ===<br />
<br />
This is an optional step and unless you failed setting up environment for the OggPlay plugin or you want to build your own plugin you can probably skip this step. But if you want to understand the Mozilla plugin structure it is probably recommended to start with something simple.<br />
<br />
Once your xpidl you can try to compile the official Mozilla samples. You can download them [http://www.mozilla.org/projects/plugins/GeckoPluginSDK-samplesWin32.zip here]. The important thing about this archive is that we are interested only the ''Win32SDK\sdk\samples'' directory. In particular, attached gecko-sdk is not the most recent one. If you navigate to one of the samples and their ''windows'' directory you can open projects' .dsp file. If you are using newer version of Visual Studio than 6.0 it will be converted to the new format. Once you opened sample project you need probably update some of the configuration settings. In ''Project->Properties'' menu select ''C\C++->General'' and change Additional Include Directories to your Gecko SDK include directory ('''Note:''' this is preferably the new Gecko SDK in the archive gecko-sdk-i586-pc-msvc-1.7.zip or gecko-sdk-win32-msvc-1.8.0.4.zip and not the one attached to the samples archive). If you are using Gecko SDK 1.7 or Gecko SDK 1.8 you need to include samples '''include''' directory (i.e. ''..\..\include'') and only main Gecko SDK include (e.g. ''..\..\..\gecko-sdk\include'').<br />
<br />
You also need to point Visual Studio to the '''xpidl''' compiler. This is required to compile .idl file in the project. To change the default setting go to Visual Studio ''Solution Explorer'' and open ''Properties'' setting for the .idl file. Inspect file's ''Custom Build Step'' and adjust the directories in relation to the project file (.vcproj for VS200x or .dsw for VS6.0)<br />
<br />
Now you should be able to compile the project. Resulting .dll and .xpt files should be copied to the Mozilla Firefox plugins directory (e.g. ''C:\Program Files\Mozilla Firefox\plugins"). Once you've done that you can restart Mozilla. In general it is a good idea to use following options to during the startup: '''-P development -console''' so you can see the plugin output/debug information.<br />
<br />
For help with setup of the environment and Visual Studio refere to a guide from [http://developer.mozilla.org/en/docs/Compiling_The_npruntime_Sample_Plugin_in_Visual_Studio Mozilla Developer Center].<br />
<br />
<br />
== Developing OggPlay plugin ==<br />
<br />
Once you have a working Mozilla plugin development environment you can start configuring the environment for OggPlay plugin.</div>Laser13