Re: Bug in auval ?
Re: Bug in auval ?
- Subject: Re: Bug in auval ?
- From: Antoine Missout <email@hidden>
- Date: Tue, 25 May 2010 17:06:10 -0400
Hi Bill,
Thanks for the correction!
Looks like I went too fast: you are right on all points.
- Antoine
On 2010-05-25, at 12:57 PM, William Stewart wrote:
> Hi Antoine
>
> A couple of things:
>
> On May 25, 2010, at 9:09 AM, Antoine Missout wrote:
>
>> Nevermind,
>>
>> AUComponent.h:193 says 0-1023 is reserved.
>
> All I can find here is this:
> Type used for audio unit scopes. Apple reserves the 0 < 1024 range for audio unit scope identifiers.
>
> but this is referring to IDs used for scopes, not for property IDs. Am I missing another reference?
>
>> (However, AudioUnitProperties.h:701 says "range (0 -> 999)" which informally implies the reserved range is up to 999, hence my error).
>
> // range (0 -> 999)
> generic AU properties
>
> Have a look through AudioUnitProperties.h for the string "range", you will see the following:
>
> Apple reserves property IDs from 0 -> 63999. Developers are free to use property IDs above this range.
>
>
> there are also the following:
>
> // range (1000 -> 1999)
> music device properties
>
> // range (2000 -> 2999)
> output unit properites
>
> // range (3020->3040)
> offline audio units
>
> // range (3060->3999)
> 3d mixer
>
> // range (4000->4020)
> miscellaneous
>
>
>>
>> Problem fixed, thanks!
>> - Antoine
>>
>>
>>
>>
>> On 2010-05-25, at 12:03 PM, Antoine Missout wrote:
>>
>>> Hi Bill,
>>>
>>> It is 1005. Which is indeed used by kAudioUnitProperty_UsesInternalReverb. What is the safe range of values for custom properties ?
>>>
>>> Regards,
>>> Antoine
>>>
>>> On 2010-05-24, at 8:01 PM, William Stewart wrote:
>>>
>>>> auval knows nothing about the property "kLevelsPropertyID" - that looks like a custom property ID to me? As it knows nothing about the property though, it can't be the one that is calling it.
>>>>
>>>> So, what is the property ID value of "kLevelsPropertyID". I suspect that you are overlapping with another property ID that is a system one
>>>>
>>>> Bill
>>>>
>>>> On May 24, 2010, at 7:14 AM, Antoine Missout wrote:
>>>>
>>>>> Hi all,
>>>>>
>>>>> Using auval with guard malloc (export DYLD_FORCE_FLAT_NAMESPACE=1; export DYLD_INSERT_LIBRARIES=/usr/lib/libgmalloc.dylib; export MALLOC_VECTOR_SIZE=1), my audiounit consistently crashes in GetProperty.
>>>>>
>>>>> At the end of the email is the relevant code. The property is 48 bytes long, but auval only mallocs 16 bytes as can be seen from the log & crash report. If I comment the memcpy, everything validates fine.
>>>>>
>>>>> It used to validate fine. Is there anything else I should do to ensure auval allocates the correct number of bytes ?
>>>>>
>>>>> Thanks in advance,
>>>>> - Antoine
>>>>>
>>>>> (full code is at http://code.google.com/p/octogris/ )
>>>>>
>>>>> ===============================================================
>>>>>
>>>>> VALIDATING AUDIO UNIT: 'aufx' - '1212' - 'UDMG'
>>>>> --------------------------------------------------
>>>>> Manufacturer String: UDM
>>>>> AudioUnit name: Octogris 12x12
>>>>> [...]
>>>>> VERIFYING PROPERTY Host Callbacks
>>>>> PASS
>>>>> makmak: 48
>>>>> makmak: 48
>>>>> makmak: 0x1c675ff0
>>>>>
>>>>> ===============================================================
>>>>>
>>>>> Exception Type: EXC_BAD_ACCESS (SIGBUS)
>>>>> Exception Codes: KERN_PROTECTION_FAILURE at 0x000000001c676000
>>>>> Crashed Thread: 0 Dispatch queue: com.apple.main-thread
>>>>> Thread 0 Crashed: Dispatch queue: com.apple.main-thread
>>>>> 0 com.udm.Octogris 0x0127edc9 Octogris<12, 12>::GetProperty(unsigned long, unsigned long, unsigned long, void*) + 227 (Octogris.cpp:506)
>>>>>
>>>>> ===============================================================
>>>>>
>>>>> template<int mNumberOfSources, int mNumberOfSpeakers>
>>>>> OSStatus Octogris<mNumberOfSources, mNumberOfSpeakers>::GetPropertyInfo (AudioUnitPropertyID inID,
>>>>> AudioUnitScope inScope,
>>>>> AudioUnitElement inElement,
>>>>> UInt32 & outDataSize,
>>>>> Boolean & outWritable)
>>>>> {
>>>>> if (inScope == kAudioUnitScope_Global)
>>>>> {
>>>>> switch (inID)
>>>>> {
>>>>> [...]
>>>>>
>>>>> case kLevelsPropertyID:
>>>>> outWritable = false;
>>>>> outDataSize = sizeof (float) * mNumberOfSpeakers;
>>>>> printf("makmak: %d\n", (int)outDataSize);
>>>>> return noErr;
>>>>>
>>>>> [...]
>>>>> }
>>>>> }
>>>>>
>>>>> return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
>>>>> }
>>>>>
>>>>> //------------------------------------------------------------------------------------------
>>>>> template<int mNumberOfSources, int mNumberOfSpeakers>
>>>>> OSStatus Octogris<mNumberOfSources, mNumberOfSpeakers>::GetProperty( AudioUnitPropertyID inID,
>>>>> AudioUnitScope inScope,
>>>>> AudioUnitElement inElement,
>>>>> void * outData )
>>>>> {
>>>>> if (inScope == kAudioUnitScope_Global)
>>>>> {
>>>>> switch (inID)
>>>>> {
>>>>> [...]
>>>>>
>>>>> case kLevelsPropertyID:
>>>>> printf("makmak: %p\n", outData);
>>>>> memcpy(outData, mLevels, sizeof (float) * mNumberOfSpeakers);
>>>>> return noErr;
>>>>>
>>>>> [...]
>>>>> }
>>>>> }
>>>>>
>>>>>
>>>>> return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
>>>>> } _______________________________________________
>>>>> 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
>>>>
>>>
>>> _______________________________________________
>>> 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
>>
>
_______________________________________________
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