[libannodex-dev] Mounting annodex files

Ben Martin monkeyiq at users.sourceforge.net
Tue Sep 13 01:20:16 EST 2005


Hi,
  I finally got around to adding the ability for libferris [1] to mount
annodex files. In the process I came up with a few queries and some
changes to be had.

Firstly, a few little gotchas for anyone wanting to use libannodex from
C++, any_types.h uses the class keyword.
/usr/local/include/annodex/anx_types.h:75: error: expected unqualified-id before 'class'
/usr/local/include/annodex/anx_types.h:75: error: abstract declarator 'char*' used as declaration
/usr/local/include/annodex/anx_types.h:75: error: expected ';' before 'class'
/usr/local/include/annodex/anx_types.h:104: error: expected unqualified-id before 'class'
/usr/local/include/annodex/anx_types.h:104: error: abstract declarator 'const char*' used as declaration
/usr/local/include/annodex/anx_types.h:104: error: expected ';' before 'class'

Also, some API like anx_open() takes char* instead of const char* which
is quite annoying from C++ using string::c_str() which returns const
char* data.


The other question is about anxed. Given that the CMML gives one
conceptual chunks in the file I'd like libferris to offer to break an
annodex stream for me and offer the bits delimited by a CMML clip as
individual virtual files. I've got something like what anxed does using
the offsets from the clip info but I'm wondering if the video/audio
stream will be OK at the potentially arbitrary offsets from the clip
metadata? vlc plays just the audio for me here but my current vlc build
doesn't play the video for the vanilla file either.

If you take a look below at the mounting example you'll see what I've
got for the anxed type functionality. Basically each clip becomes a
virtual file and if you use the libferris searching code [2] to arrive
at a clip file you should be able to just pass that virtual file off to
vlc and enjoy. I'm mainly looking at this from the point of view of
other players which are not aware of annodex in particular but which can
happily handle ogg/vorbis media files. I *seems* to work OK but I'm not
right up to speed on the anx container format etc.

For those who might be interested, the test content file from
http://annodex.net/software/AnnodexFirefoxExtension/index.html#test-content
I have renamed index.anx to fish-science.anx
http://media.annodex.net/ffdemo/media/sciweb/index.anx 

$ fls -ld --show-ea=name,size,title fish-science.anx
fish-science.anx        11260356        The Research Hunter
$ fls -0 fish-science.anx
astronomy               00-4-5.anx#startspeech          Our astronomers track the Galileo space probing station in Tidbinbilla.
atmospheric             cleaner.anx#startspeech         Atmospheric researchers look into ways of keeping the air clean.
credits         http://www.csiro.au/            Contact CSIRO for more information on our research.
intro           http://www.csiro.au/            Welcome to CSIRO, the Commonwealth Scientific and Industrial Research Organisation of Australia.
landwater               99-5-4.anx#startspeech          Land and water research helps improve our environment.
outro           http://www.csiro.au/            We hope you enjoy these interviews!
$ fls --xml fish-science.anx
<ferrisls>
<ferrisls url="file:///store/Video/fish-science.anx"  name="fish-science.anx"  >
 <context  name="astronomy"  title=""  anchor-href="00-4-5.anx#startspeech"  description-title=" "  description="Our astronomers track the Galileo space probing station in Tidbinbilla."  />
...
$ fcat fish-science.anx/astronomy | vlc -


[1] http://witme.sourceforge.net/libferris.web/
[2] http://www.linuxjournal.com/article/7771
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : http://lists.annodex.net/pipermail/libannodex-dev/attachments/20050913/90e3a3f5/attachment.pgp


More information about the libannodex-dev mailing list