Удаление кода для обработки больше 16 бит

[Функция, связанная с этой страницей, Медиаплеер Windows SDK, является устаревшей функцией. Он был заменен MediaPlayer. MediaPlayer оптимизирован для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует по возможности использовать MediaPlayer вместо пакета SDK для Медиаплеер Windows. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]

Так как этот пример обрабатывает только 8- или 16-разрядный звук, необходимо изменить код в CEcho::ValidateMediaType , чтобы вернуть DMO_E_TYPE_NOT_ACCEPTED для типов мультимедиа, превышающих 16 бит. Для этого необходимо изменить код в блоке switch, который проверяет форматы типа WAVE_FORMAT_EXTENSIBLE. Замените код мастера следующим примером кода:

case WAVE_FORMAT_EXTENSIBLE:
    {
         // Sample size is greater than 16-bit or is multichannel.
        WAVEFORMATEXTENSIBLE *pWaveXT = (WAVEFORMATEXTENSIBLE *) pWave;

        if (KSDATAFORMAT_SUBTYPE_PCM != pWaveXT->SubFormat)
        {
            return DMO_E_TYPE_NOT_ACCEPTED;
        }
    }
    break;

Затем удалите или закомментируйте разделы кода в DoProcessOutput , которые обрабатывают звук с высоким разрешением битов. Эти разделы начинаются с вариантов 24 и 32.

Реализация CEcho::D oProcessOutput