Re: HALOutputUnit (Pt 2)
Re: HALOutputUnit (Pt 2)
- Subject: Re: HALOutputUnit (Pt 2)
- From: Jeff Moore <email@hidden>
- Date: Mon, 23 Feb 2004 14:59:19 -0800
To answer Doug's question, setting kLinearPCMFormatFlagIsNonInterleaved
on an ASBD that gets passed to the HAL is illegal. The HAL doesn't
support any formats where kLinearPCMFormatFlagIsNonInterleaved needs to
be set.
On Feb 23, 2004, at 2:00 PM, Doug Wyatt wrote:
On Feb 23, 2004, at 12:49, Bob Stuller wrote:
Doug, Greetings!
At 11:55 AM -0800 2/23/04, Doug Wyatt wrote:
On Feb 23, 2004, at 11:02, Bob Stuller wrote:
But when I call this:
status = AudioUnitSetProperty(mHALOutInstance,
kAudioDevicePropertyStreamFormat,
kAudioUnitScope_Output,
kDeviceInputElement,
&mInputDesc.description,
sizeof(AudioStreamBasicDescription));
This returns 'kAudioDeviceUnsupportedFormatError'.
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.
Peace,
Bob
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.
Doug
_______________________________________________
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.
--
Jeff Moore
Core Audio
Apple
_______________________________________________
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.