버전

menu_open

Integrating Codec Plug-Ins

Introduction

Codec plug-ins are used to provide the opportunity to leave out some audio file formats (such as ADPCM, PCM, Vorbis, and so on) at compilation time to reduce the memory footprint of the sound engine. This document contains the necessary information to allow developers to use a given codec format in their game.

Note.gif

Note: The Vorbis format is the only codec that currently supports pluggable behavior.

Integrating Plug-Ins in Your Game

If a sound designer decides to use a codec format in the Wwise project for your game, its decompression plug-in needs to be integrated into your code to be available to the sound engine at runtime.

Using Static Libraries

Each codec plug-in is provided as an individual library (.lib file) that must be linked into your game. For example the Vorbis format decoder library is AkVorbisDecoder.lib. You will also need to register the codec format using the AK::SoundEngine::RegisterCodec() SDK function (see Registering Codec Plug-Ins).

Using Dynamic Link Libraries

For platforms supporting dynamic libraries (such as the PC), the AkSoundEngineDLL project allows you to compile a bundle of all sound engine modules. By default, this project registers the Vorbis codec and links with its static library. If you wish not to use the Vorbis codec in your game, you may simply remove the link dependency on AkVorbisDecoder.lib from the project and comment out the registration of the codec plug-in in the sound engine initialization function. (Refer to Registering Codec Plug-Ins for more information.)

Registering Codec Plug-Ins

A codec plug-in must be registered by your game code before it can be used. Registering a codec plug-in is done with a call to AK::SoundEngine::RegisterCodec(), which is defined as follows:

// Register codec plug-in to the plugin manager and set callbacks to create new file source or bank source node.
AKRESULT RegisterCodec( 
    AkUInt32 in_ulCompanyID,                        // Company identifier (as declared in the plug-in description XML file)
    AkUInt32 in_ulCodecID,                          // Plugin identifier (as declared in the plug-in description XML file)
    AkCreateFileSourceCallback in_pFileCreateFunc,  // Pointer to the codec file source creation function
    AkCreateBankSourceCallback in_pBankCreateFunc   // Pointer to the codec bank source creation function
) = 0;

The first and second parameters are used to uniquely identify the codec plug-in you are registering. The Company ID and Plug-in ID are defined by the plug-in developer. For example, refer to "AK/Plugin/AkVorbisFactory.h" in the SDK for the Vorbis codec format. The third and fourth parameters are used by the sound engine to create an instance of the codec plug-in for either a source playback from memory or from a streamed file.

Note.gif

Note: Registering a codec plug-in needs to be done only once at initialization time.

Vorbis Format Registration Example

Here is some example code for registering the Vorbis codec format.


이 페이지가 도움이 되었나요?

지원이 필요하신가요?

질문이 있으신가요? 문제를 겪고 계신가요? 더 많은 정보가 필요하신가요? 저희에게 문의해주시면 도와드리겠습니다!

지원 페이지를 방문해 주세요

작업하는 프로젝트에 대해 알려주세요. 언제든지 도와드릴 준비가 되어 있습니다.

프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.

Wwise를 시작해 보세요