[vlc-devel] Re: [MOD] Mac OSX multichannel patch
Matthew Romaine
Matthew.Romaine at jp.sony.com
Mon Jun 7 11:16:10 CEST 2004
Hi Jean-Alexis and others,
I did a fairly thorough search for "HALAudioOutputUnit" on my system
but was not able to find what you mention. I couldn't find it in any
of the CoreAudio documentation either... where should I be looking?
What are VLC developer's thoughts on integrating OS-specific features?
While it's true using AudioUnits would make implementing many features
(such as filters, etc.) easier, if it's just support for multichannel
that is needed, then I think doing it directly with CoreAudio is best.
The original patch allowed selecting a different stream, which was nice
if there was a single stream to handle all channels. Unfortunately,
device manufacturers don't like to work together sometimes :) Thus,
there are some devices that require multiple streams being used at
once.
As such, I'm not aware of any simple function that will return a list
of streams to accommodate a certain channel setting. For example, the
RME Hammerfall supports 18 channels, but all streams are mono (thus, 18
streams). If a user wants to output 5.1, I don't think there is a
function call that will return a pointer to just 6 mono streams.
Likewise, the MOTU 896 has stream 1 supporting 2 channels, and stream 2
supporting 8 channels. If a user wants to output 5.1, there are at
least two ways -- use the first two channels of stream 1 and 4 channels
from stream 2, or use 6 channels from the 8 in stream 2. Generally,
the latter approach is preferred in most scenarios since stream 1 is
usually the main outs, and oftentimes devices will mix down to the main
outs anyways.
Like Jean-Alexis points out, VLC-OSX apparently doesn't allow a user to
change which channel-setup to use. My patch basically chose whatever
stream(s) held the most options. (actually, I was testing 5.1 and
forgot to un-comment the 8ch support; sorry). My thinking is that a
simple drop-down on the pane where it currently only says "Audio
Device: -1 (under preferences->modules->audio_output->coreaudio) would
be a nice for now. This would require obtaining a list of options from
the coreaudio.c audio_output module. I would be happy to create said
access function, but I'm not sure if the interface between the UI and
the module exists...
thanks,
matt
On 2004/06/04, at 19:03, Jean-Alexis Montignies wrote:
> Hi Matt (and all folks),
>
> I think I'm the last one to have patched coreaudio.c. I've just
> changed the code so that it works with other streams than the first
> one. In my idea, it was a quick patch.
>
> There is a right and easiest solution for making it work in all cases
> (at least for a single interface) and have the user being able to map
> the channels.
> It is to use the HALAudioOutputUnit of core audio which does all
> conversion/mapping/interleaving for you.
>
> Now, another problem of VLC is that it decides which kind of surround
> to use depending on the number of channels you have on the interface.
> So if you have a 20 channels interface, it could be lost or output to
> 8 channels, even if you have less speakers (let's say 4 or 5 for
> instance) connected.
>
> Any idea on where to select the surround setup.
>
> I've tried in the audio-channels menu, but my code just don't work for
> ouputs with more than 2 channels (even the left/right selection in the
> repository code doesn't work on more than stereo interfaces). Any
> ideas why?
>
> Jean-Alexis Montignies
> http://www.sente.ch/
--
This is the vlc-devel mailing-list, see http://www.videolan.org/vlc/
To unsubscribe, please read http://developers.videolan.org/lists.html
If you are in trouble, please contact <postmaster at videolan.org>
More information about the vlc-devel
mailing list