How To Install Codecs

The RTC Client API version 1.2 supports the use of the G.729 codec. The RTC Client API does not provide the codec, but allows applications to deploy this codec as an add-on.

Future versions of the RTC Client API may offer support for a wider variety of pluggable codecs. To deploy the G.729 codec, the following criteria must be met:

  • The G.729 codec must be an ACM driver.
  • The G.729 codec must be installed and registered on the system for the RTC Client API to discover it and to decide when to use it.
  • The RTC Client API should ensure that the codec is a G.729 codec by establishing a string match in the driver information from the registry.
  • The G.729 codec must support 20ms, 40ms, and 60ms frames, depending on the available bandwidth.
  • Support for more than one codec in a single ACM file is not allowed.
The RTC Client API does not allow the client application to specify the codec used for a session. The RTC Client stack decides which codec to use based on the bandwidth available. The application can make the RTC Client API use the G.729 codec by advertising only that codec in the custom SDP message. For information on how an application can specify the SDP for a session, see Session Negotiation.

To install the codec, the following steps are performed

    1. The ACM driver installer needs to create a "G729" registry key under


      This can also be performed manually without an installer.

      The key will hold a value "Driver" (REG_SZ), which contains the name of the ACM driver.

    2. The ACM driver needs to be installed in the Windows\System32 directory.

    The ACM Driver

    The RTC Client API uses only a subset of the ACM driver message codes used in the DriverProc function. The following is a list of the message codes that the RTC Client API uses.

    Value Meaning
    DRV_CLOSE Notifies the driver that it should decrement its usage count and unload the driver if the count is zero.
    DRV_OPEN Notifies the driver that it is about to be opened.
    ACMDM_STREAM_OPEN Requests an ACM driver to either open a conversion stream or indicate whether the specified conversion is supported.
    ACMDM_STREAM_CLOSE Requests an ACM driver to close a conversion stream that was opened with an ACMDM_STREAM_OPEN message.
    ACMDM_STREAM_CONVERT Requests an ACM driver to perform a conversion operation on a specified conversion stream.