Skip to content

Instantly share code, notes, and snippets.

@KAMEDAkyosuke
Last active December 28, 2015 23:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save KAMEDAkyosuke/7577678 to your computer and use it in GitHub Desktop.
Save KAMEDAkyosuke/7577678 to your computer and use it in GitHub Desktop.
AAC のハードウェアエンコーダーをサポートしているかどうかのチェック。
- (BOOL)isAACHardwareEncoderAvailable
{
OSStatus status;
UInt32 size;;
UInt32 encoderSpecifier = kAudioFormatMPEG4AAC;
status = AudioFormatGetPropertyInfo(kAudioFormatProperty_Encoders,
sizeof(encoderSpecifier),
&encoderSpecifier,
&size);
check_osstatus(status, @"AudioFormatGetPropertyInfo fail");
if(status != noErr){
return NO;
}
UInt32 numEncodres = size / sizeof(AudioClassDescription);
AudioClassDescription encoderDescriptions[numEncodres];
status = AudioFormatGetProperty(kAudioFormatProperty_Encoders,
sizeof(encoderSpecifier),
&encoderSpecifier,
&size,
encoderDescriptions);
check_osstatus(status, @"AudioFormatGetProperty fail");
if(status != noErr){
return NO;
}
for(int i=0; i<numEncodres; ++i){
AudioClassDescription desc = encoderDescriptions[i];
if(desc.mSubType == kAudioFormatMPEG4AAC &&
desc.mManufacturer == kAppleHardwareAudioCodecManufacturer){
return YES;
}
}
return NO;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment