CFStringRef AudioDecoder::CreateChannelLayoutDescription() const { if(!IsOpen()) return nullptr; CFStringRef channelLayoutDescription = nullptr; UInt32 specifierSize = sizeof(channelLayoutDescription); OSStatus result = AudioFormatGetProperty(kAudioFormatProperty_ChannelLayoutName, sizeof(mChannelLayout), mChannelLayout, &specifierSize, &channelLayoutDescription); if(noErr != result) { CFStringRef osType = CreateStringForOSType(result); LOGGER_WARNING("org.sbooth.AudioEngine.AudioDecoder", "AudioFormatGetProperty (kAudioFormatProperty_ChannelLayoutName) failed: " << result << osType); CFRelease(osType), osType = nullptr; } return channelLayoutDescription; }
CFStringRef AudioDecoder::CreateSourceFormatDescription() const { if(!IsOpen()) return nullptr; CFStringRef sourceFormatDescription = nullptr; UInt32 sourceFormatNameSize = sizeof(sourceFormatDescription); OSStatus result = AudioFormatGetProperty(kAudioFormatProperty_FormatName, sizeof(mSourceFormat), &mSourceFormat, &sourceFormatNameSize, &sourceFormatDescription); if(noErr != result) { CFStringRef osType = CreateStringForOSType(result); LOGGER_WARNING("org.sbooth.AudioEngine.AudioDecoder", "AudioFormatGetProperty (kAudioFormatProperty_FormatName) failed: " << result << osType); CFRelease(osType), osType = nullptr; } return sourceFormatDescription; }
CFStringRef AudioDecoder::CreateChannelLayoutDescription() const { if(!IsOpen()) return NULL; CFStringRef channelLayoutDescription = NULL; UInt32 specifierSize = sizeof(channelLayoutDescription); OSStatus result = AudioFormatGetProperty(kAudioFormatProperty_ChannelLayoutName, sizeof(mChannelLayout), mChannelLayout, &specifierSize, &channelLayoutDescription); if(noErr != result) { log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger("org.sbooth.AudioEngine.AudioDecoder"); CFStringRef osType = CreateStringForOSType(result); LOG4CXX_WARN(logger, "AudioFormatGetProperty (kAudioFormatProperty_ChannelLayoutName) failed: " << result << osType); CFRelease(osType), osType = NULL; } return channelLayoutDescription; }