ALURE update 2

View: New views
1 Messages — Rating Filter:   Alert me  

ALURE update 2

by Chris Robinson-5 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I uploaded another update to ALURE. I modified alureGetDeviceNames so that it
takes an extra parameter (a pointer to ALCsizei) in which the number of
returned device names is stored. The returned list is no longer ended with a
NULL. It also adds three new functions:

alureCreateStreamFromStaticMemory, which is used with persistant memory so
ALURE doesn't have to make its own copy (this could be beneficial for things
such as an mmap'd file, or where the file data is persistant in some memory).

alureRewindStream, to simply enough rewind a stream. This helps simplify
looping scenarios.

alureInstallDecodeCallbacks, for adding custom decoding routines. This enables
ALURE's API to load additional file types. For example, if you have a project
that uses ffmpeg, you can set up some callbacks and alureCreate*From* will be
able to load whatever files ffmpeg can.

The comments in alure.h were updated to explain the new functions, and some
clarifications of the existing ones. Comments on the new functions are
welcome; particularly if there's anything you'd like to see changed, or a
better way to go about providing the functionality.

http://kcat.strangesoft.net/alure.html


I'm also having some issues now with supporting libmpg123. A recent update to
it broke binary compatibility for certain configurations, and it didn't
update the .so's ABI version. The main issue, though, is that some of its
functions were given *_64 variants, which only exist if the library was
compiled with large file support. And when large file support is enabled,
the non-_64 variants don't exist.

It's installed header file, mpg123.h, is also tailored to whether it was
compiled with large file support. So if someone makes a binary version of
ALURE against large-file-enabled mpg123.h, then it will fail to load versions
of libmpg123.so.0 that aren't large-file-enabled.. and vice-versa. Plus,
because of the macro magic it uses to select between the normal functions and
their _64 variants, it breaks ALURE's own macros used to load the functions.
As a temporary resolution, ALURE currently requires large-file-enabled
mpg123, where mpg123_open_64 and mpg123_seek_64 exist.

If anyone has any ideas about how to properly fix this issue, I'd be grateful
for any help. Unfortunately I'm not sure there is a way to reasonably fix the
problem, short of getting the cooperation of libmpg123's author and making
more changes that could cause it another binary break.

Thanks!
- Chris
_______________________________________________
Openal-devel mailing list
Openal-devel@...
http://opensource.creative.com/mailman/listinfo/openal-devel