AU Validation And DebugAssert
AU Validation And DebugAssert
- Subject: AU Validation And DebugAssert
- From: Eric Eizenman <email@hidden>
- Date: Wed, 6 Sep 2006 14:08:52 -0700
Hi,
Running on 10.3.7 with auval 1.1.2c11.
I'm trying to fix some of the asserts auval throws at me, but I'm
having hard-time understanding what actually is broken in our code.
The AU validation does succeed, so I guess nothing is really broken,
and I only get those asserts because auval is trying to get\set
invalid items in the first place. Is it safe to ignore those
asserts ?, some of them ?
I don't see those asserts when I'm using SampleEffect or FilterDemo,
but this is because they have DEBUG_ASSERT_PRODUCTION_CODE=1
somewhere. I have no idea why they have it set, and I actually see in
the target setting DEBUG=1.
It's especially annoying when you try to debug Logic, where the
Logic AU Manager will fail the pass just because there was an assert
coming.
For example:
VERIFYING REQUIRED PROPERTIES:
VERIFYING PROPERTY: Sample Rate
2006-09-05 11:56:43.202 auval[499]: DebugAssert: Third Party Client:
GetElement(inScope, inElement) != NULL InvalidElement [/Developer/
Examples/CoreAudio/AudioUnits/AUPublic/AUBase/AUBase.cpp:473]
With:
inID = 2
inScope = kAudioUnitScope_Part
inElement = 0
Coming from:
ComponentResult AUBase::DispatchGetPropertyInfo
(AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable)
{
ComponentResult result = noErr;
bool validateElement = true;
...
case kAudioUnitProperty_SampleRate:
outDataSize = sizeof(Float64);
outWritable = IsStreamFormatWritable(inScope, inElement);
break;
...
if (result == noErr && validateElement) {
require(GetElement(inScope, inElement) != NULL, InvalidElement);
}
return result;
...
InvalidElement:
return kAudioUnitErr_InvalidElement;
}
Trimmed log to keep the message short:
[Session started at 2006-09-05 11:56:42 -0700.]
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * *
AU Validation Tool
Version: 1.1.2c11
Copyright 2003-4, Apple Computer, Inc.
Specify -h (-help) for command options
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * *
--------------------------------------------------
VALIDATING AUDIO UNIT: 'aufx' - 'Soap' - 'BIAS'
--------------------------------------------------
Manufacturer String: BIAS Inc
AudioUnit name: SoundSoap
Component Info: BIAS Inc's SoundSoap Audio Restoration
Component Version: 2.0.0 (0x20000)
Component's Bundle Version: 2.1.0
* * PASS
--------------------------------------------------
TESTING OPEN TIMES:
COLD:
Time to open AudioUnit: 55.492 ms
WARM:
Time to open AudioUnit: 298.776 ms
FIRST TIME:
Time for initialization: 4.504 ms
* * PASS
--------------------------------------------------
VERIFYING DEFAULT SCOPE FORMATS:
Input Scope Bus Configuration:
Default Bus Count:1
Default Format: AudioStreamBasicDescription: 2 ch, 44100 Hz,
'lpcm' (0x0000002B) 32-bit big-endian float, deinterleaved
Output Scope Bus Configuration:
Default Bus Count:1
Default Format: AudioStreamBasicDescription: 2 ch, 44100 Hz,
'lpcm' (0x0000002B) 32-bit big-endian float, deinterleaved
* * PASS
--------------------------------------------------
VERIFYING REQUIRED PROPERTIES:
VERIFYING PROPERTY: Sample Rate
2006-09-05 11:56:43.202 auval[499]: DebugAssert: Third Party Client:
GetElement(inScope, inElement) != NULL InvalidElement [/Developer/
Examples/CoreAudio/AudioUnits/AUPublic/AUBase/AUBase.cpp:473]
2006-09-05 11:56:43.204 auval[499]: DebugAssert: Third Party Client:
GetElement(inScope, inElement) != NULL InvalidElement [/Developer/
Examples/CoreAudio/AudioUnits/AUPublic/AUBase/AUBase.cpp:473]
PASS
VERIFYING PROPERTY: Stream Format
2006-09-05 11:56:43.207 auval[499]: DebugAssert: Third Party Client:
GetElement(inScope, inElement) != NULL InvalidElement [/Developer/
Examples/CoreAudio/AudioUnits/AUPublic/AUBase/AUBase.cpp:473]
2006-09-05 11:56:43.211 auval[499]: DebugAssert: Third Party Client:
GetElement(inScope, inElement) != NULL InvalidElement [/Developer/
Examples/CoreAudio/AudioUnits/AUPublic/AUBase/AUBase.cpp:473]
PASS
VERIFYING PROPERTY: Maximum Frames Per Slice
2006-09-05 11:56:43.213 auval[499]: DebugAssert: Third Party Client:
inScope == kAudioUnitScope_Global InvalidScope [/Developer/Examples/
CoreAudio/AudioUnits/AUPublic/AUBase/AUBase.cpp:394]
...
PASS
VERIFYING PROPERTY: Last Render Error
2006-09-05 11:56:43.230 auval[499]: DebugAssert: Third Party Client:
inScope == kAudioUnitScope_Global InvalidScope [/Developer/Examples/
CoreAudio/AudioUnits/AUPublic/AUBase/AUBase.cpp:400]
...
PASS
* * PASS
--------------------------------------------------
VERIFYING RECOMMENDED PROPERTIES:
VERIFYING PROPERTY: Latency
2006-09-05 11:56:43.322 auval[499]: DebugAssert: Third Party Client:
inScope == kAudioUnitScope_Global InvalidScope [/Developer/Examples/
CoreAudio/AudioUnits/AUPublic/AUBase/AUBase.cpp:379]
...
PASS
VERIFYING PROPERTY: Tail Time
2006-09-05 11:56:43.335 auval[499]: DebugAssert: Third Party
Client: AudioUnitGetProperty: *ioDataSize == 0 on entry[/Developer/
Examples/CoreAudio/AudioUnits/AUPublic/AUBase/AUDispatch.cpp:483]
WARNING: Recommended Property is not supported
2006-09-05 11:56:43.338 auval[499]: DebugAssert: Third Party Client:
inScope == kAudioUnitScope_Global InvalidScope [/Developer/Examples/
CoreAudio/AudioUnits/AUPublic/AUBase/AUBase.cpp:385]
2006-09-05 11:56:43.340 auval[499]: DebugAssert: Third Party
Client: AudioUnitGetProperty: *ioDataSize == 0 on entry[/Developer/
Examples/CoreAudio/AudioUnits/AUPublic/AUBase/AUDispatch.cpp:483]
...
PASS
* * PASS
--------------------------------------------------
VERIFYING OPTIONAL PROPERTIES:
2006-09-05 11:56:43.359 auval[499]: DebugAssert: Third Party Client:
inScope == kAudioUnitScope_Global InvalidScope [/Developer/Examples/
CoreAudio/AudioUnits/AUPublic/AUBase/AUBase.cpp:415]
...
VERIFYING PROPERTY Host Callbacks
2006-09-05 11:56:43.381 auval[499]: DebugAssert: Third Party Client:
inScope == kAudioUnitScope_Global InvalidScope [/Developer/Examples/
CoreAudio/AudioUnits/AUPublic/AUBase/AUBase.cpp:453]
...
PASS
* * PASS
--------------------------------------------------
VERIFYING SPECIAL PROPERTIES:
VERIFYING CUSTOM UI
Carbon View Components Available: 1
Component 'auvw' - 'Soap' - 'BIAS'
PASS
Cocoa Views Available: 0
VERIFYING CLASS INFO
PASS
TESTING HOST CALLBACKS
PASS
* * PASS
--------------------------------------------------
PUBLISHED PARAMETER INFO:
...
Testing that parameters retain value across reset and initialization
PASS
* * PASS
--------------------------------------------------
FORMAT TESTS:
Input/Output Channel Handling:
1-1 1-2 1-4 1-5 2-2 2-4 2-5 4-4
4-5 5-5 5-2 6-6 8-8
X X
X X X X
2006-09-05 11:56:43.458 auval[499]: DebugAssert: Third Party Client:
IsStreamFormatWritable(inScope, inElement) NotWritable [/Developer/
Examples/CoreAudio/AudioUnits/AUPublic/AUBase/AUBase.cpp:743]
* * PASS
--------------------------------------------------
RENDER TESTS:
Input Format: AudioStreamBasicDescription: 2 ch, 44100 Hz,
'lpcm' (0x0000002B) 32-bit big-endian float, deinterleaved
Output Format: AudioStreamBasicDescription: 2 ch, 44100 Hz,
'lpcm' (0x0000002B) 32-bit big-endian float, deinterleaved
Render Test at 512 frames
Slicing Render Test at 64 frames
PASS
Render Test at 64 frames, sample rate: 22050 Hz
Render Test at 137 frames, sample rate: 96000 Hz
Render Test at 4096 frames, sample rate: 44100 Hz
Render Test at 4096 frames, sample rate: 192000 Hz
Render Test at 4096 frames, sample rate: 11025 Hz
Render Test at 512 frames, sample rate: 48000 Hz
PASS
1 Channel Test:
In and Out Format: AudioStreamBasicDescription: 1 ch, 48000 Hz,
'lpcm' (0x0000002B) 32-bit big-endian float, deinterleaved
Render Test at 512 frames
PASS
Checking connection semantics:
Connection format:
AudioStreamBasicDescription: 2 ch, 48000 Hz, 'lpcm' (0x0000002B) 32-
bit big-endian float, deinterleaved
PASS
kAudioUnitErr_TooManyFramesToProcess
Checking parameter setting
Using AudioUnitSetParameter
Using AudioUnitScheduleParameter
PASS
* * PASS
--------------------------------------------------
AU VALIDATION SUCCEEDED.
--------------------------------------------------
AU Validation has exited with status 0.
------------------------------------------------------------------
Eric Eizenman
BIAS Inc., Audio Software Development
------------------------------------------------------------------
_______________________________________________
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