Anyone know why I can’t use kAudioFormatFlagIsFloat instead of kAudioFormatFlagIsSignedInteger for an AudioStreamBasicDescription?
<p>Why does this work?</p>

<pre><code>- (void)setupAudioFormat:(AudioStreamBasicDescription*)format 
{
    format-&gt;mSampleRate = 44100;
    format-&gt;mFormatID = kAudioFormatLinearPCM;
    format-&gt;mFramesPerPacket = 1;
    format-&gt;mChannelsPerFrame = 1;
    format-&gt;mBytesPerFrame = 2;
    format-&gt;mBytesPerPacket = 2;
    format-&gt;mBitsPerChannel = 32;
    format-&gt;mReserved = 0;

    format-&gt;mFormatFlags = kLinearPCMFormatFlagIsBigEndian |
    kLinearPCMFormatFlagIsSignedInteger |
    kLinearPCMFormatFlagIsPacked;
}
</code></pre>

<p>but when I change the mFormatFlag it doesn't and I get a kAudioFileUnsupportedDataFormatError.</p>

<pre><code>format-&gt;mFormatFlags = kAudioFormatFlagIsFloat |
    kLinearPCMFormatFlagIsBigEndian |
    kAudioFormatFlagIsPacked;
</code></pre>

<p>I am recieving the error when calling...</p>

<pre><code>OSStatus    status = AudioQueueNewInput(&amp;recordState.dataFormat,
               AudioInputCallback,
               self,
               CFRunLoopGetCurrent(),
                   kCFRunLoopCommonModes,
               0,
               &amp;recordState.queue);
</code></pre>

<p>I am sure the problem lies in the format flags as the error only happens when I try to use the float flag, any ideas how to get around it?</p>

<p>Many thanks.</p>
