auval error when setting stream format on N->N plug-in
auval error when setting stream format on N->N plug-in
- Subject: auval error when setting stream format on N->N plug-in
- From: "Jeremy Todd" <email@hidden>
- Date: Thu, 26 Feb 2009 18:14:19 -0500
Hi,
We're preparing an Audio Unit which performs resampling, and it supports any N->N channel configuration (any number of inputs and outputs, as long as inputs == outputs). We're seeing an auval failure which is pasted below, and I don't see any reasonable way to work around it.
I think it's failing because we return noErr from ChangeStreamFormat with 3 input channels and 1 output channels. The problem is that inputs and outputs are set via separate calls to ChangeStreamFormat, so we can't validate the current combination of input and output channels until our Audio Unit is initialized. What behavior does auval expect in this case, and how exactly is an Audio Unit supposed to implement it?
Regards,
Jeremy
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
AU Validation Tool
Version: 1.2.1b3
Copyright 2003-2007, Apple, Inc. All Rights Reserved.
Specify -h (-help) for command options
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
--------------------------------------------------
VALIDATING AUDIO UNIT: 'aufc' - 'ZSRC' - 'iZtp'
--------------------------------------------------
Manufacturer String: iZotope
AudioUnit name: Resampler
Component Info: Resampler
Component Version: 1.0.0 (0x10000)
Component's Bundle Version: 1.0.0
* * PASS
--------------------------------------------------
TESTING OPEN TIMES:
COLD:
AUBase subclass' Constructor called
Time to open AudioUnit: 256.651 ms
WARM:
AUBase subclass' Constructor called
Time to open AudioUnit: 7.416 ms
FIRST TIME:
AUPlugin::Initialize()
Channel Format is supported : 2 2
Time for initialization: 0.052 ms
AUPlugin::Cleanup()
* * PASS
--------------------------------------------------
VERIFYING DEFAULT SCOPE FORMATS:
Input Scope Bus Configuration:
Default Bus Count:1
Default Format: AudioStreamBasicDescription: 2 ch, 44100 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved
Output Scope Bus Configuration:
Default Bus Count:1
Default Format: AudioStreamBasicDescription: 2 ch, 44100 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved
* * PASS
--------------------------------------------------
VERIFYING REQUIRED PROPERTIES:
VERIFYING PROPERTY: Sample Rate
PASS
VERIFYING PROPERTY: Stream Format
PASS
VERIFYING PROPERTY: Maximum Frames Per Slice
PASS
VERIFYING PROPERTY: Last Render Error
PASS
* * PASS
--------------------------------------------------
VERIFYING RECOMMENDED PROPERTIES:
* * PASS
--------------------------------------------------
VERIFYING OPTIONAL PROPERTIES:
VERIFYING PROPERTY Latency
PASS
VERIFYING PROPERTY Supported Number of Channels
PASS
VERIFYING PROPERTY Tail Time
PASS
VERIFYING PROPERTY Bypass Effect
PASS
VERIFYING PROPERTY Render Quality
PASS
VERIFYING PROPERTY Host Callbacks
PASS
VERIFYING PROPERTY Instrument Count
PASS
* * PASS
--------------------------------------------------
VERIFYING SPECIAL PROPERTIES:
VERIFYING CUSTOM UI
Carbon View Components Available: 0
Cocoa Views Available: 0
HAS FACTORY PRESETS
ID: 0 Name: Default
VERIFYING CLASS INFO
WARNING: Preset name is not retained in retrieved class data
PASS
TESTING HOST CALLBACKS
PASS
* * PASS
--------------------------------------------------
PUBLISHED PARAMETER INFO:
# # # 5 Global Scope Parameters:
Parameter ID:0
Name: Cutoff Scaling
Parameter Type: Generic
Values: Minimum = 0.500000, Default = 1.000000, Maximum = 2.000000
Flags: Readable, Writable
-parameter PASS
Parameter ID:1
Name: Aliasing Suppression
Parameter Type: Generic
Values: Minimum = 50.000000, Default = 175.000000, Maximum = 200.000000
Flags: Readable, Writable
-parameter PASS
Parameter ID:2
Name: Pre-ringing
Parameter Type: Generic
Values: Minimum = 0.000000, Default = 1.000000, Maximum = 1.000000
Flags: Readable, Writable
-parameter PASS
Parameter ID:3
Name: Steepness
Parameter Type: Generic
Values: Minimum = 0.000000, Default = 32.000000, Maximum = 200.000000
Flags: Readable, Writable
-parameter PASS
Parameter ID:4
Name: Max Filter Length
Parameter Type: Generic
Values: Minimum = 10000.000000, Default = 500000.000000, Maximum = 2000000.000000
Flags: Readable, Writable
-parameter PASS
Testing that parameters retain value across reset and initialization
AUPlugin::Initialize()
Channel Format is supported : 2 2
AUPlugin::Cleanup()
PASS
* * PASS
--------------------------------------------------
FORMAT TESTS:
Reported Channel Capabilities (explicit):
[-1, -1]
Input/Output Channel Handling:
1-1 1-2 1-4 1-5 1-6 1-7 1-8 2-2 2-4 2-5 2-6 2-7 2-8 4-4 4-5 5-5 6-6 7-7 8-8
X X X X X X X
-ChangeStreamFormat: scope 2, element 0, num ch 1
Current Ins: 2 Outs: 2
-ChangeStreamFormat: scope 1, element 0, num ch 1
Current Ins: 2 Outs: 1
AUPlugin::Initialize()
Channel Format is supported : 1 1
AUPlugin::Cleanup()
-ChangeStreamFormat: scope 2, element 0, num ch 2
Current Ins: 1 Outs: 1
AUPlugin::Initialize()
Channel Format is NOT supported : 1 2
-ChangeStreamFormat: scope 2, element 0, num ch 4
Current Ins: 1 Outs: 2
AUPlugin::Initialize()
Channel Format is NOT supported : 1 4
-ChangeStreamFormat: scope 2, element 0, num ch 5
Current Ins: 1 Outs: 4
AUPlugin::Initialize()
Channel Format is NOT supported : 1 5
-ChangeStreamFormat: scope 2, element 0, num ch 6
Current Ins: 1 Outs: 5
AUPlugin::Initialize()
Channel Format is NOT supported : 1 6
-ChangeStreamFormat: scope 2, element 0, num ch 7
Current Ins: 1 Outs: 6
AUPlugin::Initialize()
Channel Format is NOT supported : 1 7
-ChangeStreamFormat: scope 2, element 0, num ch 8
Current Ins: 1 Outs: 7
AUPlugin::Initialize()
Channel Format is NOT supported : 1 8
-ChangeStreamFormat: scope 1, element 0, num ch 2
Current Ins: 1 Outs: 8
-ChangeStreamFormat: scope 2, element 0, num ch 2
Current Ins: 2 Outs: 8
AUPlugin::Initialize()
Channel Format is supported : 2 2
AUPlugin::Cleanup()
-ChangeStreamFormat: scope 2, element 0, num ch 4
Current Ins: 2 Outs: 2
AUPlugin::Initialize()
Channel Format is NOT supported : 2 4
-ChangeStreamFormat: scope 2, element 0, num ch 5
Current Ins: 2 Outs: 4
AUPlugin::Initialize()
Channel Format is NOT supported : 2 5
-ChangeStreamFormat: scope 2, element 0, num ch 6
Current Ins: 2 Outs: 5
AUPlugin::Initialize()
Channel Format is NOT supported : 2 6
-ChangeStreamFormat: scope 2, element 0, num ch 7
Current Ins: 2 Outs: 6
AUPlugin::Initialize()
Channel Format is NOT supported : 2 7
-ChangeStreamFormat: scope 2, element 0, num ch 8
Current Ins: 2 Outs: 7
AUPlugin::Initialize()
Channel Format is NOT supported : 2 8
-ChangeStreamFormat: scope 1, element 0, num ch 4
Current Ins: 2 Outs: 8
-ChangeStreamFormat: scope 2, element 0, num ch 4
Current Ins: 4 Outs: 8
AUPlugin::Initialize()
Channel Format is supported : 4 4
AUPlugin::Cleanup()
-ChangeStreamFormat: scope 2, element 0, num ch 5
Current Ins: 4 Outs: 4
AUPlugin::Initialize()
Channel Format is NOT supported : 4 5
-ChangeStreamFormat: scope 1, element 0, num ch 5
Current Ins: 4 Outs: 5
AUPlugin::Initialize()
Channel Format is supported : 5 5
AUPlugin::Cleanup()
-ChangeStreamFormat: scope 2, element 0, num ch 6
Current Ins: 5 Outs: 5
-ChangeStreamFormat: scope 1, element 0, num ch 6
Current Ins: 5 Outs: 6
AUPlugin::Initialize()
Channel Format is supported : 6 6
AUPlugin::Cleanup()
-ChangeStreamFormat: scope 1, element 0, num ch 7
Current Ins: 6 Outs: 6
-ChangeStreamFormat: scope 2, element 0, num ch 7
Current Ins: 7 Outs: 6
AUPlugin::Initialize()
Channel Format is supported : 7 7
AUPlugin::Cleanup()
-ChangeStreamFormat: scope 2, element 0, num ch 8
Current Ins: 7 Outs: 7
-ChangeStreamFormat: scope 1, element 0, num ch 8
Current Ins: 7 Outs: 8
AUPlugin::Initialize()
Channel Format is supported : 8 8
AUPlugin::Cleanup()
-ChangeStreamFormat: scope 1, element 0, num ch 2
Current Ins: 8 Outs: 8
-ChangeStreamFormat: scope 2, element 0, num ch 2
Current Ins: 2 Outs: 8
AUPlugin::Initialize()
Channel Format is supported : 2 2
-ChangeStreamFormat: scope 2, element 0, num ch 1
Current Ins: 2 Outs: 2
-ChangeStreamFormat: scope 1, element 0, num ch 3
Current Ins: 2 Outs: 1
ERROR: Unit incorrectly set to InputChans:3 OutputChans:1
* * FAIL
--------------------------------------------------
RENDER TESTS:
AUPlugin::Cleanup()
-ChangeStreamFormat: scope 1, element 0, num ch 2
Current Ins: 3 Outs: 1
-ChangeStreamFormat: scope 2, element 0, num ch 2
Current Ins: 2 Outs: 1
AUPlugin::Initialize()
Channel Format is supported : 2 2
Input Format: AudioStreamBasicDescription: 2 ch, 44100 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved
Output Format: AudioStreamBasicDescription: 2 ch, 44100 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved
Render Test at 512 frames
Slicing Render Test at 64 frames
PASS
Render Test at 64 frames, sample rate: 22050 Hz
AUPlugin::Cleanup()
-ChangeStreamFormat: scope 1, element 0, num ch 2
Current Ins: 2 Outs: 2
-ChangeStreamFormat: scope 2, element 0, num ch 2
Current Ins: 2 Outs: 2
AUPlugin::Initialize()
Channel Format is supported : 2 2
Render Test at 137 frames, sample rate: 96000 Hz
AUPlugin::Cleanup()
-ChangeStreamFormat: scope 1, element 0, num ch 2
Current Ins: 2 Outs: 2
-ChangeStreamFormat: scope 2, element 0, num ch 2
Current Ins: 2 Outs: 2
AUPlugin::Initialize()
Channel Format is supported : 2 2
Render Test at 4096 frames, sample rate: 44100 Hz
AUPlugin::Cleanup()
-ChangeStreamFormat: scope 1, element 0, num ch 2
Current Ins: 2 Outs: 2
-ChangeStreamFormat: scope 2, element 0, num ch 2
Current Ins: 2 Outs: 2
AUPlugin::Initialize()
Channel Format is supported : 2 2
Render Test at 4096 frames, sample rate: 192000 Hz
AUPlugin::Cleanup()
-ChangeStreamFormat: scope 1, element 0, num ch 2
Current Ins: 2 Outs: 2
-ChangeStreamFormat: scope 2, element 0, num ch 2
Current Ins: 2 Outs: 2
AUPlugin::Initialize()
Channel Format is supported : 2 2
Render Test at 4096 frames, sample rate: 11025 Hz
AUPlugin::Cleanup()
-ChangeStreamFormat: scope 1, element 0, num ch 2
Current Ins: 2 Outs: 2
-ChangeStreamFormat: scope 2, element 0, num ch 2
Current Ins: 2 Outs: 2
AUPlugin::Initialize()
Channel Format is supported : 2 2
Render Test at 512 frames, sample rate: 48000 Hz
AUPlugin::Cleanup()
-ChangeStreamFormat: scope 1, element 0, num ch 2
Current Ins: 2 Outs: 2
-ChangeStreamFormat: scope 2, element 0, num ch 2
Current Ins: 2 Outs: 2
AUPlugin::Initialize()
Channel Format is supported : 2 2
PASS
1 Channel Test:
In and Out Format: AudioStreamBasicDescription: 1 ch, 48000 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved
AUPlugin::Cleanup()
-ChangeStreamFormat: scope 1, element 0, num ch 1
Current Ins: 2 Outs: 2
-ChangeStreamFormat: scope 2, element 0, num ch 1
Current Ins: 1 Outs: 2
AUPlugin::Initialize()
Channel Format is supported : 1 1
Render Test at 512 frames
PASS
Checking connection semantics:
AUPlugin::Cleanup()
-ChangeStreamFormat: scope 2, element 0, num ch 2
Current Ins: 1 Outs: 1
-ChangeStreamFormat: scope 1, element 0, num ch 2
Current Ins: 1 Outs: 2
AUPlugin::Initialize()
Channel Format is supported : 2 2
Connection format:
AudioStreamBasicDescription: 2 ch, 48000 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved
PASS
Checking parameter setting
Using AudioUnitSetParameter
Using AudioUnitScheduleParameter
PASS
* * PASS
--------------------------------------------------
AU VALIDATION FAILED: CORRECT THE ERRORS ABOVE.
--------------------------------------------------
AUPlugin::Cleanup()
Debugger stopped.
Program exited with status value:255.(gdb)
_______________________________________________
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