Infrastructure level APIs? for FOSS multimedia
Developer friendly, cross-platform friendly
- Standard API for audio
- Issues:
- be able to support free operating systems uniformly, for a start.
- simple enough that simple things can be made simple.
- Why not copy MS apis? Because they make a lot of mistakes. They're good to
look at to know what mistakes might be made, and what features might be
nice.
- There are already a lot of APIs?, creating a new one sucks
PortAudio?
libao
SDLMixer?
Phonon
Jack?
- Need to support Codecs, for AC3? passthrough etc.
- Doesn't need to support decoding and stuff.
- On Windows, developers need to go down to the kernel level support to get
the things they need for real-time support. Hard to develop an abstraction
that is cross-platform but still supports the stuff they need.
- A simplified ALSA?
- Push versus pull model. "Callback" model == Pull.
- Recording is inherently more complicated than playback.
- A similar API for Video?
- Less interest here.
- A uniform API for embedding a video widget in Gtk would be nice.
- FFMpeg? could present better APIs? with some external assistance?
- GStreamer? has colour conversion stuff built in.
- The pigment project from Fluendo can help with GL.
- SDL doesn't work well for embedding, need to set an Env Var for the XID
- Action items:
- People to set up a mailing list for designing this new Audio API
- Lennart, Jean-Marc, Mikko volunteered to work on it.
- Erik volunteered for API review
- Noone really interested in going to do the Video stuff.
- Porting to Windows, OS-X, Solaris.
- Not sure what this card is about. Probably about multimedia
- Porting C between OS is typically easy.
- Code that needs to touch the OS APIs? gets harder.
- Optimisations for embedded
- Issues
- Fixed point vs. Floating Point a big issue.
- Writing codecs for fixed point in the first place is a good idea.
- Memory usage and footprint.
- Careful API design (avoiding floating-point in the API)
- Speex is "embedded friendly"
- Macros for doing typical multiplication ops, to build fixed-point
versus floating-point builds.
- Would be good to extract this helper code into an external library. With
changed.
- Subsetting
- Action Items:
- Jan & Jean-Marc to look at extracting Speex's fixed point helpers. Aim to
have a nice set of headers projects might use.