• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: HALOutputUnit (Pt 2)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: HALOutputUnit (Pt 2)


  • Subject: Re: HALOutputUnit (Pt 2)
  • From: Doug Wyatt <email@hidden>
  • Date: Mon, 23 Feb 2004 14:00:54 -0800

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.

  • Follow-Ups:
    • Re: HALOutputUnit (Pt 2)
      • From: Jeff Moore <email@hidden>
    • Re: HALOutputUnit (Pt 2)
      • From: Bob Stuller <email@hidden>
References: 
 >Re: HALOutputUnit (Pt 2) (From: Bob Stuller <email@hidden>)
 >Re: HALOutputUnit (Pt 2) (From: Doug Wyatt <email@hidden>)
 >Re: HALOutputUnit (Pt 2) (From: Bob Stuller <email@hidden>)

  • Prev by Date: Re: AudioConverterFillBuffer failure
  • Next by Date: Re: HALOutputUnit (Pt 2)
  • Previous by thread: Re: HALOutputUnit (Pt 2)
  • Next by thread: Re: HALOutputUnit (Pt 2)
  • Index(es):
    • Date
    • Thread