Re: 'Unsupported num channels' warnings
Re: 'Unsupported num channels' warnings
- Subject: Re: 'Unsupported num channels' warnings
- From: ipmlists <email@hidden>
- Date: Wed, 31 Aug 2011 11:30:07 +0100
Thanks for reminding me about -1,-1, but unfortunately it makes no
difference. Actually, looking again at the documentation, it looks as
though I shouldn't need to define SupportedNumChannels at all: "the
default setting for an effect unit would be -1/-1,and for these types
of units it is not expected that they publish this property if this
value...is supported."
So I still don't know why I'm getting the warnings, and I still don't
think I'm getting the channel count correctly...
IainM
On 30 August 2011 18:37, Brandon Adams <email@hidden> wrote:
> It's not your ASBD. Auval's "Can Initialize Unit to un-supported num
> channels"
> message has to do with the SupportedNumChannels function. If your AU is
> simply
> N-to-N then something like
> UInt32 Ngs::SupportedNumChannels (const AUChannelInfo** outInfo)
> {
> static const AUChannelInfo sChannels[] = {-1,-1 };
> if (outInfo) *outInfo = sChannels;
> return sizeof (sChannels) / sizeof (AUChannelInfo);
> }
> should work. The {-1,-1} is your N-to-N case which essentially means there
> can be
> any number of input and output channels as long as they are the same.
> Brandon
>
>
> On Mon, Aug 29, 2011 at 3:21 AM, ipmlists <email@hidden> wrote:
>>
>> Hi,
>>
>> I've written an effect AU, subclassing AUEffectBase, but overriding
>> ProcessBufferLists. (It's an N-to-N effect, but I'm allowing
>> parameters to be set independently for different channels, hence not
>> using Process(). )
>>
>> It appears to be working ok, but throws up multiple instances of the
>> warning "Can Initialize Unit to un-supported num channels". I've
>> overridden SupportedNumChannels, as recommended in various places, but
>> I suspect the problem is in the way I'm setting the stream format.
>>
>> In the constructor, I have this:
>>
>> kInputChannels = GetNumberOfChannels();
>>
>> CAStreamBasicDescription streamDesc;
>> streamDesc.SetCanonical(kInputChannels, false);
>> streamDesc.mSampleRate = GetSampleRate();
>>
>> Inputs().GetIOElement(0)->SetStreamFormat(streamDesc);
>> Outputs().GetIOElement(0)->SetStreamFormat(streamDesc);
>>
>> But this only ever reports kInputChannels = 2, however many there
>> actually are. My workaround(?) is to repeat the same code in my
>> Initialize function, where the correct number is returned. But I
>> suspect something else is wrong here. Is there something else I should
>> be doing to report channel config correctly earlier in setup?
>>
>> In case it's relevant, my SupportedNumChannels is:
>>
>> UInt32 Ngs::SupportedNumChannels (const AUChannelInfo** outInfo)
>> {
>> static const AUChannelInfo sChannels[8] =
>> {{1,1},{2,2},{3,3},{4,4}, {5,5},{6,6},{7,7},{8,8} };
>> if (outInfo) *outInfo = sChannels;
>> return sizeof (sChannels) / sizeof (AUChannelInfo);
>> }
>>
>> thanks
>>
>> IainM
>> _______________________________________________
>> 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