Существует ли определенный тег формата для Opus, который следует использовать со структурой WAVEFORMATEX? См. WAVEFORMATEX
структуру, wFormatTag
.
Тег формата MS для кодека Opus
Ответы (2)
Windows SDK определяет WAVE_FORMAT_OPUS
(0x704F == 'Op') и MFAudioFormat_Opus
a>, который является эквивалентом Media Foundation для предполагаемого MEDIASUBTYPE_OPUS
и представляет собой стандартное сопоставление на основе FourCC из WAVE_FORMAT_OPUS
.
То есть те, которые предлагаются для использования в качестве идентификаторов.
Однако собственная реализация Microsoft декодера Opus недоступна для общественности и зарезервирована для использования в продуктах Microsoft (предположительно браузере Edge), поэтому нет принятой практики и даже документации по этим идентификаторам, и каждый сам по себе, как их использовать. (или используйте вместо этого что-то другое).
Пока для Opus не будет официального тега формата, я буду использовать WAVE_FORMAT_EXTENSIBLE вместо этого используйте MEDIASUBTYPE_OPUS для параметра SubFormat.
#define WAVE_FORMAT_OPUS mmioFOURCC('O','P','U','S')
DEFINE_GUID(MEDIASUBTYPE_OPUS,
WAVE_FORMAT_OPUS, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71);
WAVEFORMATEXTENSIBLE позволяет избежать регистрации нового тега формата в Microsoft.
См. MMReg.h в Windows SDK.