Converter som gravado no iphone de um formato para outro, dizer wav para mp3

Estou tentando gravar algum áudio e convertê-lo para outros formatos de som. Estou usando a classe AVAudioRecorder para gravar e essas são as configurações de gravação que usei.

 NSDictionary *recordSetting = [[NSMutableDictionary alloc] init];
 [recordSetting setValue:[NSNumber numberWithInt:kAudioFormatLinearPCM] forKey:AVFormatIDKey];//kAudioFormatMicrosoftGSM,kAudioFormatLinearPCM
 [recordSetting setValue:[NSNumber numberWithFloat:8000] forKey:AVSampleRateKey]; 
 [recordSetting setValue:[NSNumber numberWithInt: 2] forKey:AVNumberOfChannelsKey];
 [recordSetting setValue :[NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey];
 [recordSetting setValue :[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsBigEndianKey];
 [recordSetting setValue :[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsFloatKey];

A gravação está funcionando perfeitamente. Agora eu quero converter este arquivo de som para o formato mp3. Posso fazer isso com a estrutura AudioToolBox. Eu tentei isso

 AudioStreamBasicDescription sourceFormat,destinationFormat;
 //Setting up source Format setting..here wav
 sourceFormat.mSampleRate   = 8000.0;
 sourceFormat.mFormatID    = kAudioFormatLinearPCM;
 sourceFormat.mFormatFlags   = kAudioFormatFlagIsSignedInteger ;
 sourceFormat.mBytesPerPacket  = 4;
 sourceFormat.mFramesPerPacket  = 1;
 sourceFormat.mBytesPerFrame   = 4;
 sourceFormat.mChannelsPerFrame  = 2;
 sourceFormat.mBitsPerChannel  = 16;

 destinationFormat.mSampleRate  = 8000.0;
 destinationFormat.mFormatID   = kAudioFormatMPEGLayer3;
 destinationFormat.mFormatFlags  = 0;
 destinationFormat.mBytesPerPacket = 4;
 destinationFormat.mFramesPerPacket = 1;
 destinationFormat.mBytesPerFrame = 4;
 destinationFormat.mChannelsPerFrame = 2;
 destinationFormat.mBitsPerChannel = 16;

 OSStatus returnCode     =     AudioConverterNew(&sourceFormat,&destinationFormat,&converter);
 if (returnCode) {
    NSLog(@"error getting converter : %d",returnCode);
    return;
 }

A função AudioConverterNew () está me dando um erro kAudioConverterErr_FormatNotSupported ('fmt'). Eu tentei com diferentes combinações mFormatID e mFormatFlag. Mas sempre que um dos operantes (origem ou destino) é mp3, estou recebendo esse erro. Agora, por favor me ajude com estas perguntas.

Podemos usar a estrutura e as funções do AudioToolbox para converter sons, entre os formatos compactado e não compactado (no momento, desejo converter entre .wav e .mp3). Na documentação do AudioConverterNew, eles estão dizendo "A codificação e decodificação entre PCM linear e formatos compactados é suportada". Mas eles não estão dizendo especificamente quais formatos compactados.

Se a resposta à pergunta 1 for 'não', qual estrutura eu preciso usar para converter o som entre os formatos mencionados acima?

Não relacionado ao item 2 acima, mas alguém pode me fornecer um link para qualquer site em que informações sobre diferentes formatos de som (wav, mp3, aac etc.) e suas representações digitais (cpm, lpcm etc.), para que eu possa entender quem usa o quê.

questionAnswers(1)

yourAnswerToTheQuestion