Re: HALOutputUnit (Pt 2)
Re: HALOutputUnit (Pt 2)
- Subject: Re: HALOutputUnit (Pt 2)
- From: Bob Stuller <email@hidden>
- Date: Mon, 23 Feb 2004 17:21:19 -0500
Doug, Greetings!
At 2:00 PM -0800 2/23/04, Doug Wyatt wrote:
On Feb 23, 2004, at 12:49, Bob Stuller wrote:
What exactly is the stream format you are setting?
I ask for the best match to this format:
inputDesc.description.mSampleRate = foundRate; // 16000.0 if
the device supports it.
inputDesc.description.mFormatID = kAudioFormatLinearPCM;
inputDesc.description.mFormatFlags = kLinearPCMFormatFlagIsBigEndian
| kLinearPCMFormatFlagIsSignedInteger
| kLinearPCMFormatFlagIsPacked
| kLinearPCMFormatFlagIsNonInterleaved;
inputDesc.description.mChannelsPerFrame = 1;
inputDesc.description.mBitsPerChannel = 16;
propertySize = sizeof(AudioStreamBasicDescription);
status = AudioDeviceGetProperty(deviceIDs[i], 0, true,
kAudioDevicePropertyStreamFormatMatch,
&propertySize, &inputDesc.description);
I get, typically:
inputDesc.description.mSampleRate == 16000.0
inputDesc.description.mFormatID == kAudioFormatLinearPCM
inputDesc.description.mFormatFlags == kLinearPCMFormatFlagIsBigEndian
| kAudioFormatFlagIsFloat
| kLinearPCMFormatFlagIsPacked
inputDesc.description.mChannelsPerFrame == 2
inputDesc.description.mBitsPerChannel == 32
which is what I pass in.
I wonder if the kLinearPCMFormatFlagIsNonInterleaved is confusing
the HAL. Or if it's ignoring it. I could ask Jeff but first I'll ask
you:
What are inputDesc's mBytesPerPacket, mFramesPerPacket, and
mBytesPerFrame? Without the noninterleaved flag set, they should be
4, 1, 4, respectively. With it set, and mChannelsPerFrame of 2, they
should be 8, 1, 8.
The flag is not set & they are 8, 1, 8. That is in the 'matched'
format. If I getProperty on the format from the device it's the same
while, if I getProperty on the HALAU's format, the flag is set &
those fields are 4, 1, 4.
Hmmm... I'm going to skip setting the format of the device, just set
the HALAU &, if that barfs, try it with the interleaved bit or'ed in
there... Okay, both situations return
'kAudioDeviceUnsupportedFormatError'.
Peace,
Bob
--
Under capitalism, man exploits man. Under communism, it's just the opposite.
-- John Kenneth Galbraith
_______________________________________________
coreaudio-api mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/coreaudio-api
Do not post admin requests to the list. They will be ignored.