This is a known issue - at least DTS confirmed this is an AVFoundation bug - , 
exists from 10.10 Yosemite if I can recall. Please report it at 
bugreporter.apple.com <http://bugreporter.apple.com/>. I’ve reported it around 
6 months ago, but nothing really happened since then. The more bug reports to 
more chance this will be fixed in 10.14.

Thanks!


> On 2018. Feb 9., at 20:53, Christopher Baine <christopherba...@gmail.com> 
> wrote:
> 
> Hello all, 
> 
> I am having an issue with AVAudioEngine starting with an Aggregate Device as 
> the default output device. Below is my sample code, which works fine with any 
> other output card selected. When I select an aggregate as my default device 
> in the System Preferences, it crashes on the engine.connect() call. I am on 
> 10.13.1, and am having the same issue on 10.12.6
> 
> 
> import Cocoa
> import AVFoundation
> 
> class ViewController: NSViewController {
>     
>     let engine = AVAudioEngine()
>     let player = AVAudioPlayerNode()    
>     
>     override func viewDidLoad() {
>         super.viewDidLoad()
>     
>         addPlayer()
>         startEngine()
>     }
>     
>     
>     func addPlayer() {
>         engine.attach(player)
>         engine.connect(player, to: engine.outputNode, format: nil)
>     }
>     
>     
>     func startEngine() {
>         do {
>             try engine.start()
>         }
>         catch {
>             print("ERROR", error)
>         }
>     }
>     
> 
> Here is the log: 
> 
> 2018-02-09 13:53:53.014046-0500 TEST_AVEngineAggregate[18127:655111] [DDAgg] 
> DefaultDeviceAggregate.cpp:58:GetPreferredStereoChannels: Error getting 
> preferred stereo channels from device 206: 'who?'
> 2018-02-09 13:53:53.014208-0500 TEST_AVEngineAggregate[18127:655111] [DDAgg] 
> DefaultDeviceAggregate.cpp:108:GetPreferredChannelLayout: Error getting 
> preferred channel layout from device 206: 'who?'
> 2018-02-09 13:53:53.015634-0500 TEST_AVEngineAggregate[18127:655111] [avae] 
> AVAEInternal.h:69:_AVAE_Check: required condition is false: 
> [AUInterface.mm:678:EnableIO: (isInput ? auv3().canPerformInput : 
> auv3().canPerformOutput)]
> 2018-02-09 13:53:53.017059-0500 TEST_AVEngineAggregate[18127:655111] 
> [General] An uncaught exception was raised
> 2018-02-09 13:53:53.017075-0500 TEST_AVEngineAggregate[18127:655111] 
> [General] required condition is false: isInput ? auv3().canPerformInput : 
> auv3().canPerformOutput
> ...
> 
> I have tried checking to see if the preferedChannelLayout, or the 
> preferredStereoChannels is an issue, via: 
> 
>     func getOutputCardPrefferedChannels(id: AudioObjectID) {
>         var propAddress = AudioObjectPropertyAddress(mSelector: 
> kAudioDevicePropertyPreferredChannelsForStereo, mScope: 
> kAudioObjectPropertyScopeOutput, mElement: kAudioObjectPropertyElementMaster)
>         var prop: Array<UInt32> = Array(repeating: 0, count: 2)
>         var propertySize: UInt32 = UInt32(MemoryLayout.size(ofValue: prop))
>         let err = AudioObjectGetPropertyData(id, &propAddress, 0, nil, 
> &propertySize, &prop)
>         print(err, prop)
>         
>     }
>     
>     
>     func getOutputCardPrefferedChannelLayout(id: AudioObjectID) {
>         var propAddress = AudioObjectPropertyAddress(mSelector: 
> kAudioDevicePropertyPreferredChannelLayout, mScope: 
> kAudioObjectPropertyScopeOutput, mElement: kAudioObjectPropertyElementMaster)
>         var prop: AudioChannelLayout = AudioChannelLayout()
>         var propertySize: UInt32 = UInt32(MemoryLayout.size(ofValue: prop))
>         let err = AudioObjectGetPropertyData(id, &propAddress, 0, nil, 
> &propertySize, &prop)
>         print(err, prop)
>     }
>     
> 
> 
> Which prints: 
> ***** AGGREGATE ********
> 
> Aggregate Device
> 0 [1, 2]
> 0 AudioChannelLayout(mChannelLayoutTag: 0, mChannelBitmap: 
> __C.AudioChannelBitmap(rawValue: 0), mNumberChannelDescriptions: 4, 
> mChannelDescriptions: __C.AudioChannelDescription(mChannelLabel: 4294967295, 
> mChannelFlags: __C.AudioChannelFlags(rawValue: 0), mCoordinates: (0.0, 0.0, 
> 0.0)))
> 
> 
> ****** BUILT IN OUTPUT ********
> 
> Built-in Output
> 0 [1, 2]
> 0 AudioChannelLayout(mChannelLayoutTag: 0, mChannelBitmap: 
> __C.AudioChannelBitmap(rawValue: 0), mNumberChannelDescriptions: 2, 
> mChannelDescriptions: __C.AudioChannelDescription(mChannelLabel: 4294967295, 
> mChannelFlags: __C.AudioChannelFlags(rawValue: 0), mCoordinates: (0.0, 0.0, 
> 0.0)))
> 
> 
> These don't throw any errors. 
> 
> The aggregate consists of the Built In Output, and SoundFlower 2ch. (So 4ch 
> output total) I have also tried making an aggregate with only the built-in 
> output as well as aggregates with other output cards, but it also crashes. 
> 
> Any help or thoughts on where to begin troubleshooting this would be greatly 
> appreciated! 
> Thanks,
> Chris
> 
> _______________________________________________
> 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/tamas.lov.nagy%40gmail.com
> 
> This email sent to tamas.lov.n...@gmail.com

 _______________________________________________
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