Документация
Docs/ru/reference/audio/decoding.md
Контракт декодирования аудио
Сгенерированный справочник. Не редактируйте его источник напрямую. Обновите
BuildTools/AudioInterface.json, затем выполнитеpython BuildTools/docs_audio.py --write.
| Индекс | Форматы | Доставка | Декодирование | Воспроизведение | Проверка | Канонический JSON | Руководство |
| Стабильный ID | Правило | Требование | Причина | Источник |
|---|---|---|---|---|
audio.decoding.wav-chunk-order |
Порядок чанков WAV | Предоставляйте RIFF/WAVE с одним пригодным чанком fmt и непустым чанком data; AudioBaker обходит чанки в любом порядке, пропускает неизвестные и учитывает выравнивание нечётного размера. | Реальные экспортёры часто вставляют чанки метаданных или меняют местами fmt и data, поэтому baker проверяет границы чанков, а не предписывает узкую последовательность. | Source/Tools/AudioBaker.cpp |
audio.decoding.wav-pcm-width |
Разрядность WAV PCM | Создавайте WAV как PCM с разрядностью 8, 16, 24 или 32 бита либо IEEE float с разрядностью 32 бита; число каналов и частота дискретизации должны быть положительными, а выравнивание блока — соответствовать заявленной форме кадра. | AudioBaker преобразует каждый поддерживаемый sample в signed 16-bit перед кодированием Vorbis и отклоняет обрезанные кадры или несогласованные метаданные формата. | Source/Tools/AudioBaker.cpp |
audio.decoding.acm-shape |
Проверка запечённого payload | Отклоняйте сгенерированный или скопированный без перекодирования payload, если libvorbisfile не открывает его как корректный поток Vorbis. | Граница запекания выявляет некорректные нативные входные данные и результат кодировщика до попытки воспроизведения клиентом; затем runtime читает число каналов и частоту дискретизации из проверенного потока. | Source/Tools/AudioBaker.cpp |
audio.decoding.ogg-streaming |
Streaming Ogg | Ожидайте декодирование Ogg Vorbis порциями 64 KiB на native и 128 KiB на Web; короткие файлы сохраняются целиком и освобождают stream после первого декодирования. | AudioManager использует платформенный размер streaming-порции и очищает OggStream, когда первое чтение достигает EOF. | Source/Client/AudioManager.cpp |
audio.decoding.device-conversion |
Преобразование устройства | Позвольте AppAudio до воспроизведения преобразовать формат samples, число каналов и частоту в формат активного устройства вывода SDL. | AudioManager не требует совпадения авторских ресурсов с одним фиксированным аппаратным форматом. | Source/Client/AudioManager.cpp, Source/Frontend/Application.cpp |
audio.decoding.callback-mixing |
Микширование в audio callback | Считайте воспроизведение работой клиентского audio callback; изменения списка активных звуков должны удерживать lock аудиоустройства. | Callback потока SDL просит AudioManager заполнить вывод, пока операции play/stop/update игрового потока могут добавлять, изменять или удалять звуки. | Source/Client/AudioManager.cpp, Source/Frontend/Application.cpp |
audio.decoding.unsupported-extension |
Единственный runtime-декодер | Проводите авторское аудио через AudioBaker и позволяйте AudioManager декодировать каждый результирующий ресурс как Ogg Vorbis независимо от сохранённого исходного суффикса. | Исходники с неподдерживаемыми расширениями не попадают в Audio baker, а в runtime нет диспетчеризации по суффиксу, которая могла бы незаметно принять пустой payload или данные другого формата. | Source/Client/AudioManager.cpp |