Estoy intentando utilizar un AU de filtro de paso bajo. Sigo recibiendo un error kAudioUnitErr_FormatNotSupported (-10868) al configurar el formato de flujo en la unidad de filtro, pero si solo uso la unidad Remote IO no hay ningún error.Qué formato de secuencia deben usar las unidades de efectos iOS5
El formato de flujo que estoy usando es (Actualizado):
myASBD.mSampleRate = hardwareSampleRate;
myASBD.mFormatID = kAudioFormatLinearPCM;
myASBD.mFormatFlags = kAudioFormatFlagIsSignedInteger;
myASBD.mBitsPerChannel = 8 * sizeof(float);
myASBD.mFramesPerPacket = 1;
myASBD.mChannelsPerFrame = 1;
myASBD.mBytesPerPacket = sizeof(float) * myASBD.mFramesPerPacket;
myASBD.mBytesPerFrame = sizeof(float) * myASBD.mChannelsPerFrame;
Y estoy estableciendo el flujo de filtro de la siguiente manera:
// Sets input stream type to ASBD
setupErr = AudioUnitSetProperty(filterUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, 0, &myASBD, sizeof(myASBD));
NSLog(@"Filter in: %i", setupErr);
//NSAssert(setupErr == noErr, @"No ASBD on Finput");
//Sets output stream type to ASBD
setupErr = AudioUnitSetProperty(filterUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Output, 0, &myASBD, sizeof(myASBD));
NSLog(@"Filter out: %i", setupErr);
NSAssert(setupErr == noErr, @"No ASBD on Foutput");
He intentado usar los canales 32 bits y sigo teniendo errores de formato de flujo. Me han dicho en otra parte que los efectos incorporados de AU en iOS5 tampoco usan un formato canónico. He intentado obtener el formato de flujo de la unidad de filtro usando AudioUnitGetProperty, pero cada vez que intento recibo un error. ¿Sería una mejor idea usar una devolución de llamada de render y simplemente usar la ASBD actual? –
¿Ha establecido el tipo de punto fijo o flotante? Esa es una diferencia entre el formato canónico en Mac versus iOS. – hotpaw2
Lo he cambiado, así que no estoy usando un flotador, pero sigo recibiendo el error. No estoy seguro de si estoy configurando el filtro ASBD correctamente, ya que es aquí donde recibo el error. –