Skip to content

Instantly share code, notes, and snippets.

@pmatsinopoulos
Created June 19, 2021 04:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pmatsinopoulos/6935c3423af5693ed35ba8e69e771044 to your computer and use it in GitHub Desktop.
Save pmatsinopoulos/6935c3423af5693ed35ba8e69e771044 to your computer and use it in GitHub Desktop.
void SetUpAudioDataSettingsForOutputFile (AudioConverterSettings *outAudioConverterSettings) {
outAudioConverterSettings->outputFormat.mFormatID = kAudioFormatLinearPCM;
outAudioConverterSettings->outputFormat.mSampleRate = outAudioConverterSettings->inputFormat.mSampleRate;
outAudioConverterSettings->outputFormat.mChannelsPerFrame = outAudioConverterSettings->inputFormat.mChannelsPerFrame;
if (outAudioConverterSettings->outputFormat.mFormatID == kAudioFormatLinearPCM) {
// if the output format is PCM create a 16-bit int PCM file format description as an example
outAudioConverterSettings->outputFormat.mBitsPerChannel = 16;
outAudioConverterSettings->outputFormat.mBytesPerFrame = outAudioConverterSettings->outputFormat.mBitsPerChannel / 8 * outAudioConverterSettings->outputFormat.mChannelsPerFrame;
outAudioConverterSettings->outputFormat.mFramesPerPacket = 1;
outAudioConverterSettings->outputFormat.mBytesPerPacket = outAudioConverterSettings->outputFormat.mBytesPerFrame * outAudioConverterSettings->outputFormat.mFramesPerPacket;
outAudioConverterSettings->outputFormat.mFormatFlags = kAudioFormatFlagIsBigEndian | kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked;
} else {
NSException* exception = [NSException
exceptionWithName:@"AudioFormatNotSupportedException"
reason:@"Audio Format Not Supported"
userInfo:nil];
[exception raise];
}
return;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment