• 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 1)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: HALOutputUnit (Pt 1)


  • Subject: Re: HALOutputUnit (Pt 1)
  • From: Doug Wyatt <email@hidden>
  • Date: Tue, 3 Feb 2004 12:17:30 -0800

On Feb 3, 2004, at 10:47, Bob Stuller wrote:
Okay, I'm stuck. I'm trying to use the HALOutputUnit to pull 16-bit audio at 16 kHz and,
when I get to the point of trying to set these settings, I get a kAudioUnitErr_PropertyNotWritable error. Here is sketch of the code that I am using.

ComponentDescription cd =
{kAudioUnitType_Output, kAudioUnitSubType_HALOutput,
kAudioUnitManufacturer_Apple, 0, 0};
Component HALOutput = FindNextComponent(nil, &cd);

OSErr err = OpenAComponent(HALOutput, &mHALOutInstance);

OSStatus status = AudioUnitInitialize(mHALOutInstance);

AudioInputUberDescription inputDesc;
mUberDescriptions->FetchItemAt(1, &inputDesc);
status = AudioUnitSetProperty(mHALOutInstance,
kAudioOutputUnitProperty_CurrentDevice,
kAudioUnitScope_Global,
0,
&inputDesc.mDeviceID,
sizeof(AudioDeviceID));

looks ok

UInt32 data = 0;
status = AudioUnitSetProperty(mHALOutInstance,
kAudioOutputUnitProperty_EnableIO,
kAudioUnitScope_Output,
0,
&data,
sizeof(data));

looks fine

data = 1;
status = AudioUnitSetProperty(mHALOutInstance,
kAudioOutputUnitProperty_EnableIO,
kAudioUnitScope_Input,
1,
&data,
sizeof(data));

looks fine

Boolean writable = false;
status = AudioUnitGetPropertyInfo(mHALOutInstance,
kAudioOutputUnitProperty_ChannelMap,
kAudioUnitScope_Input,
1, &propsize, &writable);

looks fine


long nChannels = propsize / sizeof(SInt32);
long* channelMapPtr = (long*)malloc(propsize);
channelMapPtr[0] = 0;
for (long i = 1; i < nChannels; i++)
{
channelMapPtr[i] = -1;
}
status = AudioUnitSetProperty(mHALOutInstance,
kAudioOutputUnitProperty_ChannelMap, kAudioUnitScope_Input,
1, channelMapPtr, propsize);

looks fine


AudioStreamBasicDescription format;
memset(&format, 0, sizeof(AudioStreamBasicDescription));
format.mSampleRate = 16000.0;
format.mBytesPerFrame = 2;
format.mFramesPerPacket = 1;
format.mBytesPerPacket = 2;
format.mChannelsPerFrame = 1;
format.mBitsPerChannel = 16;
format.mFormatID = kAudioFormatLinearPCM;
format.mFormatFlags = kLinearPCMFormatFlagIsBigEndian
// | kLinearPCMFormatFlagIsSignedInteger
| kLinearPCMFormatFlagIsPacked
| kLinearPCMFormatFlagIsNonInterleaved;

status = AudioUnitSetProperty(mHALOutInstance,
kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input,
1, &format, sizeof(format));

This is the AudioUnitSetProperty call that returns the NotWritable error. Where did I go wrong here?

element 1's input scope is the hardware input format -- you want to be changing its format in the output scope

Doug


Any help that you or anyone else on the Core Audio list could provide would be appreciated.

Peace,
Bob

--
Doug Wyatt
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.

  • Follow-Ups:
    • Re: HALOutputUnit (Pt 1)
      • From: Bob Stuller <email@hidden>
References: 
 >Re: HALOutputUnit (Pt 1) (From: Bob Stuller <email@hidden>)

  • Prev by Date: Re: multithreaded mixer
  • Next by Date: Implementing ramped parameters in AU effects
  • Previous by thread: Re: HALOutputUnit (Pt 1)
  • Next by thread: Re: HALOutputUnit (Pt 1)
  • Index(es):
    • Date
    • Thread