software

Annodex Plugins for Firefox

The Annodex Plugins for Firefox are the best way to view Annodex media. The plugins install as embeddable video elements in web pages. Use these to view Annodex media in CmmlWiki, Annodex media from a mod-annodex enabled web server, or Ogg content anywhere on the web.


Or, if web development is your thing, use our comprehensive Javascript API to create your own video-enabled web applications!



base libraries

The base libraries required for Annodex are:

  • libogg, liboggz
  • libvorbis, libtheora, libfishsound
  • libannodex
  • libexpat
  • libcmml

For development, you want to check out all the base Annodex libraries, including the Xiph.org codecs with:
http://svn.annodex.net/annodex-core/

CMMLWiki download

Subversion access

CMMLWiki is maintained in Subversion with anonymous read access. You can check out the most current version with the following svn commands.

svn co http://svn.annodex.net/cmmlwiki/trunk cmmlwiki

You can also browse the source repository

Win32 binaries

The attached file holds custom built (non-official) win32 binaries of liboggplay and its dependencies. This will save you the labour of building them yourself and hopefully allows you to get started quickly with liboggplay.

Included binaries (.dll/.lib and .h files):
- libfishsound
- libFLAC
- libogg (static)
- liboggplay
- liboggz
- libspeex
- libtheora
- libvorbis
- libvorbisfile

oggplay, fishsound, oggz and speex were built from SVN around Oct 8th 2008. Other libraries were either downloaded in binary form from xiph.org or custom compiled around the same data as oggplay.

liboggplay

OggPlay is a library that simplies decoding and playback of Ogg media files.

There are several layers to a typical ogg playing application:

  1. Parsing of the ogg container format (handled by libogg and made usable by liboggz) and routing of packets
  2. Decoding of individual ogg packets (handled by libtheora, libvorbis, libfishsound, libcmml, etc. depending on contents)
  3. Maintenance of synchronisation between individual raw data streams
  4. Presentation of raw data to the user (via the screen / sound card / etc.)

liboggplay handles the first 3 layers for you, leaving just the actual presentation for the application writer.

eeePC version of plugin

I've just uploaded an eeePC version of the plugin. Click on "Other Systems and Languages"s from the front page to get to the download link.

also check for selinux restrictions

If you are having problems with permissions on RHEL, Fedora or other RHEL workalike, check /var/log/messages for issues with SELinux permissions.

Because cmmlwiki installs by default outside the normal /var/www tree, you need to use chcon to change the types of objects to satisfy SELinux.

The CGI needs to be of type httpd_sys_script_t. The CMMLWIKI directories need to be of type httpd_sys_content_t.

There is another gotcha. libannodex seems to access the source directories, I'm guessing because of compilation with -g. So all the directories on the path to annodex-core/libannodex/src/importers and all the contents of that directory have to be of type httpd_sys_content_t to satisfy SELinux.

cmmlwiki directory must be writable to apache also

The installation README seems to imply that only the cmmlwiki.db file needs to be writable to apache. This is not so. Sqlite3 needs to create a temporary journal file in the directory so you should make the containing directory writable to apache also.

problems with phpannodex

A couple of problems with the trunk version of phpannodex:

You need -lannodex in the link command for the shared library otherwise
annodex.so is not noted as a dependency and Apache will not load it when
phpannodex.so is loaded by mod_php. I solved it by hacking Makefile to
add -lannodex to EXTRA_LDFLAGS.

phpannodex uses a function called object_to_head. This does not seem to
exist (anymore) in libannodex or any of the other libraries. This is a
showstopper. I don't know what to do with this. Presumably phpannodex
needs to be rewritten.

(Mailed to module developer also.)

RPM packages

Thomas Vander Stichele developed rpm packages for the base libraries. Find them on http://rpmfind.net/linux/RPM/index.html.