TeamTalk 5 C-API DLL
Version 5.14A
|
This section explains how to configure audio and video codecs. More...
Classes | |
struct | SpeexCodec |
Speex audio codec settings for Constant Bitrate mode (CBR). More... | |
struct | SpeexVBRCodec |
Speex audio codec settings for Variable Bitrate mode (VBR). More... | |
struct | OpusCodec |
OPUS audio codec settings. For detailed information about the OPUS codec check out http://www.opus-codec.org. More... | |
struct | SpeexDSP |
Speex DSP is used for specifying how recorded audio from a sound input device should be preprocessed before transmission. More... | |
struct | TTAudioPreprocessor |
Use TeamTalk's internal audio preprocessor for gain audio. Same as used for TT_SetSoundInputGainLevel(). More... | |
struct | WebRTCAudioPreprocessor |
WebRTC's audio preprocessor. More... | |
struct | AudioPreprocessor |
Configure the audio preprocessor specified by nPreprocessor . More... | |
struct | WebMVP8Codec |
WebM video codec settings. More... | |
struct | AudioCodec |
Struct used for specifying which audio codec a channel uses. More... | |
struct | AudioConfig |
Audio configuration for clients in a 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 | OPUS_APPLICATION_VOIP 2048 |
Audio encoding is for VoIP. This value should be set as nApplicaton in OpusCodec. More... | |
#define | OPUS_APPLICATION_AUDIO 2049 |
Audio encoding is for music. This value should be set as nApplicaton in OpusCodec. More... | |
#define | OPUS_MIN_BITRATE 6000 |
The minimum bitrate for OPUS codec. Checkout nBitRate of OpusCodec. More... | |
#define | OPUS_MAX_BITRATE 510000 |
The maximum bitrate for OPUS codec. Checkout nBitRate of OpusCodec. More... | |
#define | OPUS_MIN_FRAMESIZE 2 /* Actually it's 2.5 */ |
The minimum frame size for OPUS codec. Checkout nFrameSizeMSec of OpusCodec. More... | |
#define | OPUS_MAX_FRAMESIZE 60 |
The maximum frame size for OPUS codec. Checkout nFrameSizeMSec of OpusCodec. More... | |
#define | OPUS_REALMAX_FRAMESIZE 120 |
The real maximum frame size for OPUS codec. Checkout nFrameSizeMSec of OpusCodec. Although OPUS states it only supports 2.5 - 60 msec, it actually support up to 120 msec. More... | |
#define | WEBRTC_GAINCONTROLLER2_FIXEDGAIN_MAX 49.9f |
Max value for fGainDB in WebRTCAudioPreprocessor's gaincontroller2 . More... | |
#define | WEBM_VPX_DL_REALTIME 1 |
nEncodeDeadline value for fastest encoding. More... | |
#define | WEBM_VPX_DL_GOOD_QUALITY 1000000 |
nEncodeDeadline value for good encoding. More... | |
#define | WEBM_VPX_DL_BEST_QUALITY 0 |
nEncodeDeadline value for best encoding. More... | |
Typedefs | |
typedef struct SpeexCodec | SpeexCodec |
Speex audio codec settings for Constant Bitrate mode (CBR). More... | |
typedef struct SpeexVBRCodec | SpeexVBRCodec |
Speex audio codec settings for Variable Bitrate mode (VBR). More... | |
typedef struct OpusCodec | OpusCodec |
OPUS audio codec settings. For detailed information about the OPUS codec check out http://www.opus-codec.org. More... | |
typedef struct SpeexDSP | SpeexDSP |
Speex DSP is used for specifying how recorded audio from a sound input device should be preprocessed before transmission. More... | |
typedef struct TTAudioPreprocessor | TTAudioPreprocessor |
Use TeamTalk's internal audio preprocessor for gain audio. Same as used for TT_SetSoundInputGainLevel(). More... | |
typedef struct WebRTCAudioPreprocessor | WebRTCAudioPreprocessor |
WebRTC's audio preprocessor. More... | |
typedef enum AudioPreprocessorType | AudioPreprocessorType |
The types of supported audio preprocessors. More... | |
typedef struct AudioPreprocessor | AudioPreprocessor |
Configure the audio preprocessor specified by nPreprocessor . More... | |
typedef struct WebMVP8Codec | WebMVP8Codec |
WebM 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 |
Audio configuration for clients in a channel. More... | |
typedef struct VideoCodec | VideoCodec |
Struct used for specifying the video codec to use. More... | |
Enumerations | |
enum | AudioPreprocessorType { NO_AUDIOPREPROCESSOR = 0 , SPEEXDSP_AUDIOPREPROCESSOR = 1 , TEAMTALK_AUDIOPREPROCESSOR = 2 , WEBRTC_AUDIOPREPROCESSOR = 3 } |
The types of supported audio preprocessors. More... | |
enum | Codec { NO_CODEC = 0 , SPEEX_CODEC = 1 , SPEEX_VBR_CODEC = 2 , OPUS_CODEC = 3 , WEBM_VP8_CODEC = 128 } |
The codecs supported. More... | |
This section explains how to configure audio and video codecs.
The client is able to encode audio in Speex and OPUS format whereas video can be encoded in WebM format. OPUS is recommended for audio encoding, both for voice and 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.
Every channel must configure which audio codec to use in order for users to be able to talk to each other. The audiocodec
member of Channel specifies which audio codec (AudioCodec) should be used. A channel does not restrict the video codec (VideoCodec) users are using.
#define SPEEX_NB_MIN_BITRATE 2150 |
The minimum bitrate for Speex codec in 8 KHz mode. Bandmode = 0.
Definition at line 1125 of file TeamTalk.h.
#define SPEEX_NB_MAX_BITRATE 24600 |
The maximum bitrate for Speex codec in 8 KHz mode. Bandmode = 0.
Definition at line 1128 of file TeamTalk.h.
#define SPEEX_WB_MIN_BITRATE 3950 |
The minimum bitrate for Speex codec in 16 KHz mode. Bandmode = 1.
Definition at line 1131 of file TeamTalk.h.
#define SPEEX_WB_MAX_BITRATE 42200 |
The maximum bitrate for Speex codec in 16 KHz mode. Bandmode = 1.
Definition at line 1134 of file TeamTalk.h.
#define SPEEX_UWB_MIN_BITRATE 4150 |
The minimum bitrate for Speex codec in 32 KHz mode. Bandmode = 2.
Definition at line 1137 of file TeamTalk.h.
#define SPEEX_UWB_MAX_BITRATE 44000 |
The maximum bitrate for Speex codec in 32 KHz mode. Bandmode = 2.
Definition at line 1140 of file TeamTalk.h.
#define OPUS_APPLICATION_VOIP 2048 |
Audio encoding is for VoIP. This value should be set as nApplicaton in OpusCodec.
Definition at line 1187 of file TeamTalk.h.
#define OPUS_APPLICATION_AUDIO 2049 |
Audio encoding is for music. This value should be set as nApplicaton in OpusCodec.
Definition at line 1190 of file TeamTalk.h.
#define OPUS_MIN_BITRATE 6000 |
The minimum bitrate for OPUS codec. Checkout nBitRate
of OpusCodec.
Definition at line 1193 of file TeamTalk.h.
#define OPUS_MAX_BITRATE 510000 |
The maximum bitrate for OPUS codec. Checkout nBitRate
of OpusCodec.
Definition at line 1196 of file TeamTalk.h.
#define OPUS_MIN_FRAMESIZE 2 /* Actually it's 2.5 */ |
The minimum frame size for OPUS codec. Checkout nFrameSizeMSec
of OpusCodec.
Definition at line 1199 of file TeamTalk.h.
#define OPUS_MAX_FRAMESIZE 60 |
The maximum frame size for OPUS codec. Checkout nFrameSizeMSec
of OpusCodec.
Definition at line 1202 of file TeamTalk.h.
#define OPUS_REALMAX_FRAMESIZE 120 |
The real maximum frame size for OPUS codec. Checkout nFrameSizeMSec
of OpusCodec. Although OPUS states it only supports 2.5 - 60 msec, it actually support up to 120 msec.
Definition at line 1206 of file TeamTalk.h.
#define WEBRTC_GAINCONTROLLER2_FIXEDGAIN_MAX 49.9f |
Max value for fGainDB in WebRTCAudioPreprocessor's gaincontroller2
.
Definition at line 1401 of file TeamTalk.h.
#define WEBM_VPX_DL_REALTIME 1 |
nEncodeDeadline
value for fastest encoding.
Definition at line 1465 of file TeamTalk.h.
#define WEBM_VPX_DL_GOOD_QUALITY 1000000 |
nEncodeDeadline
value for good encoding.
Definition at line 1468 of file TeamTalk.h.
#define WEBM_VPX_DL_BEST_QUALITY 0 |
nEncodeDeadline
value for best encoding.
Definition at line 1471 of file TeamTalk.h.
typedef struct SpeexCodec SpeexCodec |
Speex audio codec settings for Constant Bitrate mode (CBR).
typedef struct SpeexVBRCodec SpeexVBRCodec |
Speex audio codec settings for Variable Bitrate mode (VBR).
OPUS audio codec settings. For detailed information about the OPUS codec check out http://www.opus-codec.org.
Speex DSP is used for specifying how recorded audio from a sound input device should be preprocessed before transmission.
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.
Enable the preprocessing configuration by calling TT_SetSoundInputPreprocess().
When joining a Channel and bEnableGainControl
of AudioConfig is enabled in the channel then enable sound input preprocessing by setting bEnableAGC
to TRUE and nGainLevel
of SpeexDSP to the nGainLevel
of AudioConfig.
typedef struct TTAudioPreprocessor TTAudioPreprocessor |
Use TeamTalk's internal audio preprocessor for gain audio. Same as used for TT_SetSoundInputGainLevel().
typedef struct WebRTCAudioPreprocessor WebRTCAudioPreprocessor |
WebRTC's audio preprocessor.
Use WebRTC's audio preprocessor, https://webrtc.org
Note that WebRTC's can only operate on 10 msec audio frame, so nTxIntervalMSec
in AudioCodec must a multiple of 10.
WebRTCAudioPreprocessor is recommended to TT_SetSoundDeviceEffects() on desktop platforms.
Activate WebRTCAudioPreprocessor by calling TT_SetSoundInputPreprocessEx().
typedef enum AudioPreprocessorType AudioPreprocessorType |
The types of supported audio preprocessors.
typedef struct AudioPreprocessor AudioPreprocessor |
Configure the audio preprocessor specified by nPreprocessor
.
typedef struct WebMVP8Codec WebMVP8Codec |
WebM video codec settings.
The codecs supported.
typedef struct AudioCodec AudioCodec |
Struct used for specifying which audio codec a channel uses.
typedef struct AudioConfig AudioConfig |
Audio configuration for clients in a channel.
An audio configuration can be used to set common audio properties for all users in a channel. Checkout audiocfg
of Channel.
The audio configuration only supports same audio level for all users by manually converting the values to the selected AudioPreprocessor.
typedef struct VideoCodec VideoCodec |
Struct used for specifying the video codec to use.
The types of supported audio preprocessors.
Enumerator | |
---|---|
NO_AUDIOPREPROCESSOR | Value for specifying that no audio preprocessing should occur. |
SPEEXDSP_AUDIOPREPROCESSOR | Use the SpeexDSP audio preprocessor. |
TEAMTALK_AUDIOPREPROCESSOR | Use TeamTalk's internal audio preprocessor TTAudioPreprocessor. |
WEBRTC_AUDIOPREPROCESSOR | Use WebRTC's audio preprocessor from WebRTCAudioPreprocessor. https://webrtc.org. |
Definition at line 1406 of file TeamTalk.h.
enum Codec |
The codecs supported.
Enumerator | |
---|---|
NO_CODEC | No codec specified. |
SPEEX_CODEC | Speex audio codec, http://www.speex.org.
|
SPEEX_VBR_CODEC | Speex audio codec in VBR mode, http://www.speex.org.
|
OPUS_CODEC | OPUS audio codec.
|
WEBM_VP8_CODEC | WebM video codec.
|
Definition at line 1476 of file TeamTalk.h.