I'm using the vpio audio unit for capture and playout on mac os x.
All things go well until I set the input/output format on the vpio unit.
The format I wanted just like this:
AudioStreamBasicDescription audio_format ;
audio_format.mSampleRate = 8000.0 ;
audio_format.mBitsPerChannel = 16 ;
audio_format.mChannelsPerFrame = 1 ;
audio_format.mBytesPerFrame = (audio_format.mBitsPerChannel >> 3) * audio_format.mChannelsPerFrame ;
audio_format.mFramesPerPacket = 1 ;
audio_format.mBytesPerPacket = audio_format.mBytesPerFrame * audio_format.mFramesPerPacket ;
audio_format.mFormatID = kAudioFormatLlinearPCM ;
audio_format.mFormatFlags = kLinearPCMFormatFlagIsSignedInteger | kLinearPCMFormatFlagIsPacked ;
I can set this format on the vpio's (input bus / output scope), but I can't set it on the vpio's (output bus / input scope)
that I will get the error code (kAudioUnitErr_FormatNotSupported
).
But when I use AUHAL unit
instead, I can set the format both
on the AUHAL's (input bus / output scope) and AUHAL's (output bus / input scope).
I want to know what make this difference between the two unit?
After making some attempts , I finally find one of the available format on the vpio's (output bus / input scope) ,just like this:
AudioStreamBasicDescription audio_format ;
audio_format.mSampleRate = 8000.0 ;
audio_format.mBitsPerChannel = 32 ;
audio_format.mChannelsPerFrame = 1 ;
audio_format.mBytesPerFrame = (audio_format.mBitsPerChannel >> 3) * audio_format.mChannelsPerFrame ;
audio_format.mFramesPerPacket = 1 ;
audio_format.mBytesPerPacket = audio_format.mBytesPerFrame * audio_format.mFramesPerPacket ;
audio_format.mFormatID = kAudioFormatLlinearPCM ;
audio_format.mFormatFlags = kLinearPCMFormatFlagIsFloat | kLinearPCMFormatFlagIsPacked ;
But what confused me is that the format on the vpio's (input bus / output scope) and (output bus / input scope) were mismatch. And I want to know how go get the available formats information of the vpio unit
? I can't find any documentations about the format of available on the Apple Site.
Can someone answer my question?
Thanks & regard.