TeamTalk 4 C-API DLL  Version 4.5A
Audio and Video Codecs

The client is able to encode audio in Speex and CELT format whereas video can be encoded in Theora format. Speex is recommended for voice and CELT for music. More...

Classes

struct  SpeexCodec
 Speex audio codec settings for Constant Bitrate mode (CBR). The Speex codec is recommended for voice and uses less bandwidth than CELTCodec. More...
 
struct  SpeexVBRCodec
 Speex audio codec settings for Variable Bitrate mode (VBR). The Speex codec is recommended for voice and uses less bandwidth than CELTCodec. The Speex VBR codec was introduced in version 4.2. More...
 
struct  CELTCodec
 CELT audio codec settings. The CELT codec is recommended for music and speech. It has a higher bandwidth usage than SpeexCodec. More...
 
struct  CELTVBRCodec
 CELT audio codec settings. The CELT codec is recommended for music and speech. It has a higher bandwidth usage than SpeexCodec. More...
 
struct  TheoraCodec
 Theora video codec settings. More...
 
struct  AudioCodec
 Struct used for specifying which audio codec a channel uses. More...
 
struct  AudioConfig
 Common audio configuration which should be used by users in the same Channel. More...
 
struct  VideoCodec
 Struct used for specifying the video codec to use. More...
 

Macros

#define SPEEX_NB_MIN_BITRATE   2150
 The minimum bitrate for Speex codec in 8 KHz mode. Bandmode = 0. More...
 
#define SPEEX_NB_MAX_BITRATE   24600
 The maximum bitrate for Speex codec in 8 KHz mode. Bandmode = 0. More...
 
#define SPEEX_WB_MIN_BITRATE   3950
 The minimum bitrate for Speex codec in 16 KHz mode. Bandmode = 1. More...
 
#define SPEEX_WB_MAX_BITRATE   42200
 The maximum bitrate for Speex codec in 16 KHz mode. Bandmode = 1. More...
 
#define SPEEX_UWB_MIN_BITRATE   4150
 The minimum bitrate for Speex codec in 32 KHz mode. Bandmode = 2. More...
 
#define SPEEX_UWB_MAX_BITRATE   44000
 The maximum bitrate for Speex codec in 32 KHz mode. Bandmode = 2. More...
 
#define CELT_MIN_BITRATE   35000
 The minimum bitrate supported for CELT. More...
 
#define CELT_MAX_BITRATE   3000000
 The maximum bitrate supported for CELT. More...
 

Typedefs

typedef struct SpeexCodec SpeexCodec
 Speex audio codec settings for Constant Bitrate mode (CBR). The Speex codec is recommended for voice and uses less bandwidth than CELTCodec. More...
 
typedef struct SpeexVBRCodec SpeexVBRCodec
 Speex audio codec settings for Variable Bitrate mode (VBR). The Speex codec is recommended for voice and uses less bandwidth than CELTCodec. The Speex VBR codec was introduced in version 4.2. More...
 
typedef struct CELTCodec CELTCodec
 CELT audio codec settings. The CELT codec is recommended for music and speech. It has a higher bandwidth usage than SpeexCodec. More...
 
typedef struct CELTVBRCodec CELTVBRCodec
 CELT audio codec settings. The CELT codec is recommended for music and speech. It has a higher bandwidth usage than SpeexCodec. More...
 
typedef struct TheoraCodec TheoraCodec
 Theora video codec settings. More...
 
typedef enum Codec Codec
 The codecs supported. More...
 
typedef struct AudioCodec AudioCodec
 Struct used for specifying which audio codec a channel uses. More...
 
typedef struct AudioConfig AudioConfig
 Common audio configuration which should be used by users in the same Channel. More...
 
typedef struct VideoCodec VideoCodec
 Struct used for specifying the video codec to use. More...
 

Enumerations

enum  Codec {
  NO_CODEC = 0, SPEEX_CODEC = 1, CELT_0_5_2_OBSOLETE_CODEC = 2, THEORA_CODEC = 3,
  SPEEX_VBR_CODEC = 4, CELT_CODEC = 5, CELT_VBR_CODEC = 6
}
 The codecs supported. More...
 

Detailed Description

The client is able to encode audio in Speex and CELT format whereas video can be encoded in Theora format. Speex is recommended for voice and CELT for music.

Choosing the right codec settings in an end-user application is very important and proper settings depend entirely on the user scenario. Always ensure that the codec settings do not require too much bandwidth and thereby resulting in packetloss causing inaudible conversations and poor video quality. Detecting packetloss can be done using UserStatistics and ClientStatistics.

Note that bandwidth usage will be much higher when running in peer to peer mode since each client must then broadcast data to all users instead of having the server forward the audio and video packets. Checkout the section Client/Server Connectivity on the different types of connections.

Every channel must configure which audio codec to use in order for users to be able to talk to each other. The codec member of Channel specifies which audio codec (AudioCodec) should be used. A channel does not restrict the video codec (VideoCodec) users are using.

Macro Definition Documentation

#define SPEEX_NB_MIN_BITRATE   2150

The minimum bitrate for Speex codec in 8 KHz mode. Bandmode = 0.

#define SPEEX_NB_MAX_BITRATE   24600

The maximum bitrate for Speex codec in 8 KHz mode. Bandmode = 0.

#define SPEEX_WB_MIN_BITRATE   3950

The minimum bitrate for Speex codec in 16 KHz mode. Bandmode = 1.

#define SPEEX_WB_MAX_BITRATE   42200

The maximum bitrate for Speex codec in 16 KHz mode. Bandmode = 1.

#define SPEEX_UWB_MIN_BITRATE   4150

The minimum bitrate for Speex codec in 32 KHz mode. Bandmode = 2.

#define SPEEX_UWB_MAX_BITRATE   44000

The maximum bitrate for Speex codec in 32 KHz mode. Bandmode = 2.

#define CELT_MIN_BITRATE   35000

The minimum bitrate supported for CELT.

#define CELT_MAX_BITRATE   3000000

The maximum bitrate supported for CELT.

Typedef Documentation

typedef struct SpeexCodec SpeexCodec

Speex audio codec settings for Constant Bitrate mode (CBR). The Speex codec is recommended for voice and uses less bandwidth than CELTCodec.

See Also
SpeexVBRCodec
typedef struct SpeexVBRCodec SpeexVBRCodec

Speex audio codec settings for Variable Bitrate mode (VBR). The Speex codec is recommended for voice and uses less bandwidth than CELTCodec. The Speex VBR codec was introduced in version 4.2.

typedef struct CELTCodec CELTCodec

CELT audio codec settings. The CELT codec is recommended for music and speech. It has a higher bandwidth usage than SpeexCodec.

typedef struct CELTVBRCodec CELTVBRCodec

CELT audio codec settings. The CELT codec is recommended for music and speech. It has a higher bandwidth usage than SpeexCodec.

typedef struct TheoraCodec TheoraCodec

Theora video codec settings.

Configuring the Theora codec so it fits an end-user's domain can be trickly. A high resolution in CaptureFormat will result in much high bandwidth usage. Also using a high frame-rate will cause much higher bandwidth usage.

Note that width and height for a video frame encoded by Theora must be a multiple of 16. If it is not then part of the picture will be "cut" out.

typedef enum Codec Codec

The codecs supported.

See Also
AudioCodec
VideoCodec
typedef struct AudioCodec AudioCodec

Struct used for specifying which audio codec a channel uses.

typedef struct AudioConfig AudioConfig

Common audio configuration which should be used by users in the same Channel.

Users' audio levels may be diffent due to how their microphone is configured in their OS. Automatic Gain Control (AGC) can be used to ensure all users in the same channel have the same audio level.

See Also
TT_DoMakeChannel()
TT_DoUpdateChannel()
TT_EnableAGC()
typedef struct VideoCodec VideoCodec

Struct used for specifying the video codec to use.

Enumeration Type Documentation

enum Codec

The codecs supported.

See Also
AudioCodec
VideoCodec
Enumerator
NO_CODEC 

No codec specified.

SPEEX_CODEC 

Speex audio codec, http://www.speex.org.

See Also
SpeexCodec
CELT_0_5_2_OBSOLETE_CODEC 

CELT audio codec version 0.5.2 used in version 4.1 and prior, http://www.celt-codec.org.

This codec is not supported in version 4.2 and later.

THEORA_CODEC 

Theora video codec, http://www.theora.org.

See Also
TheoraCodec
SPEEX_VBR_CODEC 

Speex audio codec in VBR mode, http://www.speex.org.

See Also
SpeexVBRCodec
CELT_CODEC 

CELT audio codec version 0.11.1, http://www.celt-codec.org.

See Also
CELTCodec
CELT_VBR_CODEC 

CELT audio codec version 0.11.1 in VBR mode, http://www.celt-codec.org.

See Also
CELTVBRCodec