> I am currently working on a project that aims to build a parallell
> multistream MPEG-2 decoder for SGI Onyx2 (and similair) machines. We
> have an external AC-3 decoder/effect box hooked up via the AES digital
> interface on the Onyx2.
> It is easy to play raw PCM samples and use the effect box to
> manipulate the sound.
> My problem is that I want to write raw undecoded AC-3 frames directly
> via the AES channel and have the external decoder handle them instead
> of doing the decoding in software.
> Is this possible using AL (audio library) or do I have to access the
> raw device and write the correctly packed stream myself.
> Thanks, Calle
> PS I know that this might be the wrong forum for this type of
> questions since this is the Linux dmSDK but, please, if you know
> anything about this please reply.
This mailing list is appropriate for discussing dmSDK for IRIX as well
Yes, it is possible to send an arbitrary bitstream over the AES using
RAD (SGI's digital audio interface).
If you're using the recently released dmSDK 2.0 for IRIX, you can open
a path to the OpticalOutAES or AESOut jack on the RAD device and set
the sample format to DM_FORMAT_AES_CHANNEL_STATUS. You will need to
set bit 1 of byte 0 (the nonaudio bit). To transfer the actual AC-3
data, you should open the same jack with sample format
DM_FORMAT_AES_S24_in32R (24-bit data packed to the right in 32 bits)
and pack your AC-3 data accordingly.
You can do the same thing with the SGI Audio Library, of course,
opening the optical interface (AL_OPTICAL_IF_TYPE) or the AES interface
(AL_AES_IF_TYPE) of the RAD's AES Output using a sample format of
AL_SAMPFMT_AES_CHANNEL_STATUS. And, of course, you need to pack your
AC-3 data as the lower 24 bits of each 32-bit sample with the sample
format of AL_SAMPFMT_TWOSCOMP and a width of AL_SAMPLE_24.
The trickiest part of this approach is knowing that you need two dmSDK
paths (or two AL ports), one for AES channel status information and the
other for sample data.