``` + if (IsEqualGUID(&decoder->input_type.formattype, &FORMAT_WaveFormatEx) && + IsEqualGUID(&type->formattype, &FORMAT_WaveFormatEx)) + { + WORD current_nchannels = ((WAVEFORMATEX *)decoder->input_type.pbFormat)->nChannels; + WORD incomming_nchannels = ((WAVEFORMATEX *)type->pbFormat)->nChannels; + if (current_nchannels != incomming_nchannels) + return DMO_E_TYPE_NOT_ACCEPTED; + } ```
That's a bit of an odd test, because as written it implies that using a different formattype is legal, which I would be surprised to find that it is.