Hi Paul, Thanks to taking the initiative to get this rolling, here is my feedback on your items. As a general comment I think a lot of the problems with linux Sound and Video not 'just working' can found in the kernel layer with bad and inconsistently behaving drivers as one point. (Luckily we have a core kernel developer on this list who I am sure will rush in to fix anything pointed out from now on, just so that nobody will call him a FUCKING IDIOT who only cares about pandering journalists for free beef tartar and not about the needs of his users :)
Also as Greg pointed out, whatever we do here we need to take Video into account. A lot of the problems we discovered during the development of GStreamer (and now solved) is issues such as getting correct sync when recording from separate systems like a webcam for video and the soundcard for audio. >CONFIGURATION (see also MIXING below) > > - identify what audio h/w exists on the system > - identify what network audio destinations are available > - choose some given audio h/w or network endpoint > as the default for input > - ditto for output > - enable/disable given audio h/w > - easily (auto)load any kernel modules required for > given functionality Other suggested items include - * Proper handling of removeable/plugable multimedia hardware - GNOME bug entry about the problem in regards to soundcards - http://bugzilla.gnome.org/show_bug.cgi?id=172594 * Lessen need for probing - Probbing have two issues currently a) due to sucky drivers you can't always trust the response you are getting back and b) it takes time. Some sort of driver database storing capabilities is needed so that users don't have to sit around drumming their fingers while their multimedia software probes all their multimedia hardware , this is not just audio related, but a problem with things like webcams etc. also. The non-trustable results issue might of course come true with a driver database as it is with the actual drivers, but the time consumption issue should be resolvable. * Better handling of Surround Sound including SPDIF. A lot of soundcards report a IEC958, but don't really have any hardware connections for it. Another problem is that we don't really have a Surround Sound optimal sound format currently. > PLAYBACK > > * user driven (e.g. play(1)) > * app driven (e.g. {kde,gnome_play}_audiofile()) > - play a PCM encoded audio file (specifics as above) > - hear system sounds > - VOIP > - game audio > - music composition > - music editing > - video post production > Some extra items include - * handle tags * We should probably in general define a set of supported codecs/formats minimum. Xiph.org formats seems a natural choice as a starting point, with Dirac beeing added for video. Also for NLE's we should also maybe add MXF and maybe AAF in addition to Ogg as container formats. And of course a set of older stuff like for instance AIFF as mentioned elsewhere in this doc. > RECORDING > > - record from hardware inputs > * use default audio interface > * use other audio interface > * specify which h/w input to use > * control input gain > - record from other application(s) > - record from live (network-delivered) audio > streams > * PCM/lossless compression (WAV, FLAC etc) > * lossy compression (mp3, ogg etc) * If this is meant to be a free software audio requirements list then mp3 should be removed. It is not free. > MIXING > > - control h/w mixer device (if any) > > * allow use of a generic app for this > * NOTE to non-audio-focused readers: the h/w mixer > is part of the audio interface that is used > to control signal levels, input selection > for recording, and other h/w specific features. > Some pro-audio interfaces do not have a h/w mixer, > most consumer ones do. It has almost nothing > to do with "hardware mixing" which describes > the ability of the h/w to mix together multiple > software-delivered audio data streams. > > - multiple applications using soundcard simultaneously > - control application volumes independently > - provide necessary apps for controlling specialized > hardware (e.g. RME HDSP, ice1712, ice1724, liveFX) > ROUTING > > - route audio to specific h/w among several installed devices > - route audio between applications > - route audio across network > - route audio without using h/w (regardless to whether or > not h/w is available; e.g. streaming media) > MULTIUSER > > - which of the above should work in a multi-user scenario? > FORMATS > > - basically, the task list if covered by the above list, > but there are some added criteria: > > - audio data formats divide into: > - direct sample data (e.g. RIFF/WAV, AIFF) > - losslessly compressed (e.g. FLAC) > - lossy compression (e.g. Vorbis, MP3) > - apps that can handle a given division should all > handle the same set of formats, with equal prowess. > i.e. apps don't have to handle lossy compression > formats, but if they do, they should all handle > the same set of lossy compression formats. Principle: > minimize user suprise. > - user should see no or limited obstacles to handling > proprietary formats * Once again remove MP3 > MISC > > - use multiple soundcards as a single logical device > - use multiple sub-devices as a single logical device > (sub-devices are independent chipsets on > a single audio interface; many soundcards > have analog i/o and digital i/o available > as two different sub-devices) Another general comment is that such as list like these is both useful and useless. Its useful in the sense that it gives a general overview of what is wanted, but its useless in relation to implementation as it is way to lacking in details. Like a requirement to support Ogg without any details is something everyone could quickly checklist. Smooth handling of a chained Ogg consisting of a mix of audio-only and audio+video tracks and a variety of bitrates and codecs is a pain in the ass to get right :) Christian
_______________________________________________ Desktop_architects mailing list Desktop_architects@lists.osdl.org https://lists.osdl.org/mailman/listinfo/desktop_architects