I am using ffmpeg to acquire audio from .mov files. Looking over my settings, I am not sample rate converting the audio buffers I am generating so that is unlikely to account for the issues I am having. Regardless of the sample rate I set on my Built-in Output, my audio files that are at 44.1 kHz playback at the correct rate. If I playback a 48kHz file, the file plays back slower (at 91% of the normal rate) which indicates that the true rate is 44.1kHz. I can change my built-in output to 44.1, 48, or 96 kHz and the same phenomenon exists. I change my default output rate using the Audio Midi Setup app. I then verify my sample rate using AudioUnitGetProperty on my ouputAudioUnit. This matches the sample rate in the Audio Midi Setup.
Thoughts? I am including my audio graph code CheckError(NewAUGraph(&fp.graph), "Couldn't create a new AUGraph"); //varispeednode has an input callback //the vairspeed node feeds an output node which is running //at the frequency of the system default output AUNode outputNode; AudioComponentDescription outputcd = [self defaultOutputComponent]; CheckError(AUGraphAddNode(fp.graph, &outputcd, &outputNode), "AUGraphAddNode[kAudioUnitSubType_DefaultOutput] failed"); AUNode varispeedNode; AudioComponentDescription varispeedcd = [self variSpeedComponent]; CheckError(AUGraphAddNode(fp.graph, &varispeedcd, &varispeedNode), "AUGraphAddNode[kAudioUnitSubType_Varispeed] failed"); CheckError(AUGraphOpen(fp.graph), "Couldn't Open AudioGraph"); CheckError(AUGraphNodeInfo(fp.graph, outputNode, NULL, &fp.outputAudioUnit), "Couldn't Retrieve output node"); CheckError(AUGraphNodeInfo(fp.graph, varispeedNode, NULL, &fp.variSpeedAudioUnit), "Couldn't Retrieve Varispeed Audio Unit"); AURenderCallbackStruct input; input.inputProc = CBufferProviderCallback; input.inputProcRefCon = &playerStruct; CheckError(AudioUnitSetProperty(fp.variSpeedAudioUnit, kAudioUnitProperty_SetRenderCallback, kAudioUnitScope_Input, 0, &input, sizeof(input)), "AudioUnitSetProperty failed"); CheckError(AUGraphConnectNodeInput(fp.graph, varispeedNode, 0, outputNode, 0), "Couldn't Connect varispeed to output"); CheckError(AUGraphInitialize(fp.graph), "Couldn't Initialize AUGraph"); // check output sample rate Float64 outputSampleRate = 48000.0; UInt32 sizeOfFloat64 = sizeof(Float64); outputSampleRate = 0.0; CheckError(AudioUnitGetProperty(fp.outputAudioUnit, kAudioUnitProperty_SampleRate, kAudioUnitScope_Global, 0, &outputSampleRate, &sizeOfFloat64), "Couldn't get output sampleRate"); _______________________________________________ Do not post admin requests to the list. They will be ignored. Coreaudio-api mailing list (Coreaudio-api@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/coreaudio-api/archive%40mail-archive.com This email sent to arch...@mail-archive.com