[Openal-devel] GStreamer OpenAL sink
Pierre Proske
pierre at digitalstar.net
Sat Apr 3 07:05:41 PDT 2010
Wow, great work Chris, I can see that being potentially very useful!
best,
Pierre
Chris Robinson wrote:
> Here's a preview of the OpenAL sink I've been working on for GStreamer.
>
> http://kcat.strangesoft.net/gst-openal.tar.bz2
>
> And a small example app:
>
> http://kcat.strangesoft.net/gst-openal.cpp
>
> The sink allows you to specify a device/context/source to play with, or to
> retrieve the same, allowing for some manipulation by the app (eg. play a
> background music track with GStreamer and control its volume using the source
> gain, or play a lengthy mono track and place it in 3D space like any other
> source). The stream will play asynchronously, and it will work with any
> GStreamer-supported format.
>
> It even stays synced to a video stream.. imagine using a glvideo sink to paste
> video onto a texture in the game world, along with an alaudio sink to play the
> corresponding audio (remember those video screens in Doom 3?). And it all
> happens automagically. Of course, even without going all extravagant like
> that, it's an easy way to play a prerendered cut-scene, opening video logo(s),
> or a simple music track on the same audio device as the app.
>
> The sink supports the float32 and double extensions, as well as mcformats,
> mulaw, and mulaw-mcformats, with proper checks.
>
> Currently the sink requires OpenAL Soft 1.12, since it's the only
> implementation to support ALC_EXT_thread_local_context which is needed for
> context safety across threads. It should Just Work with any other
> implementation that adds support for it, however.
>
> I can try to relax that requirement when the sink is given a custom context,
> though it will require the context to remain set and no errors generated with
> it while the stream is playing.
>
> Building the sink requires an alext.h header that defines the appropriate
> extension tokens and types. It also (obviously) requires the gstreamer
> development packages. You may likely need to pass --prefix=/usr to configure,
> too (that's the default prefix for GStreamer installed by package managers,
> and it doesn't seem to find plugins installed in the /usr/local prefix).
>
>
> Assuming it works out well enough for you guys, I'll probably give it over to
> the GStreamer devs to see if it can be included in the official packages.
> _______________________________________________
> Openal-devel mailing list
> Openal-devel at opensource.creative.com
> http://opensource.creative.com/mailman/listinfo/openal-devel
>
>
--
http://www.digitalstar.net
More information about the Openal-devel
mailing list