• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Audio Output Sample Rate Discrepancy
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Audio Output Sample Rate Discrepancy


  • Subject: Audio Output Sample Rate Discrepancy
  • From: Patrick Cusack <email@hidden>
  • Date: Sat, 28 Apr 2018 13:53:12 -0700

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      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

  • Prev by Date: questions regarding AVAssetResourceLoaderDelegate
  • Next by Date: Installing a tap on AVAudioOutputNode
  • Previous by thread: questions regarding AVAssetResourceLoaderDelegate
  • Next by thread: Installing a tap on AVAudioOutputNode
  • Index(es):
    • Date
    • Thread