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

Reply via email to