title: Anyone know why I can’t use kAudioFormatFlagIsFloat instead of kAudioFormatFlagIsSignedInteger for an AudioStreamBasicDescription?
body: <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>