if (ret < 0)
goto remove_btrn;
powd = wn->private_data;
- AudioOutputUnitStart(powd->audio_unit);
+ ret = -E_UNIT_START;
+ if (AudioOutputUnitStart(powd->audio_unit) != noErr) {
+ AudioUnitUninitialize(powd->audio_unit);
+ CloseComponent(powd->audio_unit);
+ btr_remove_node(&powd->callback_btrn);
+ goto remove_btrn;
+ }
}
mutex_lock(powd->mutex);
ret = btr_node_status(btrn, wn->min_iqs, BTR_NT_INTERNAL);