Skip to content
Permalink
Browse files

Updated documentation for v5.5A SDK

  • Loading branch information
bear101 committed Feb 9, 2020
1 parent d17d1b3 commit 8daf84f6948f9cbe1722072c5d2a8a5fbc0cbad5
Showing with 176 additions and 20 deletions.
  1. +153 −8 Documentation/TeamTalkSDK/changelog-capi.txt
  2. +20 −9 Library/TeamTalk_DLL/TeamTalk.h
  3. +3 −3 README.md
@@ -4,9 +4,18 @@
* This section contains the list of new features and API changes
* in TeamTalk SDK releases.
*
* @ref v54brelease
* - @ref v54bfeatures
* - @ref v54bapi
* @ref v55arelease
* - @ref v55afeatures
* - @ref v55asharedaudio
* - @ref v55aplayback
* - @ref v55astream
* - @ref v55atxinterval
* - @ref v55aopus
* - @ref v55amux
* - @ref v55aaudioinput
* - @ref v55akeepalive
* - @ref v55arecord
* - @ref v55aapi
*
* @ref v54arelease
* - @ref v54afeatures
@@ -181,9 +190,11 @@
*
* <hr>
*
* @section v54brelease TeamTalk 5 SDK v. 5.4b release
* @section v55arelease TeamTalk 5 SDK v. 5.5a release
*
* @subsection v54bfeatures New features in v5.4b
* @subsection v55afeatures New features in v5.5a
*
* @subsubsection v55asharedaudio Shared audio input device
*
* Android platform now supports multiple active recorders,
* i.e. multiple clients on same audio device. To use this feature
@@ -206,11 +217,145 @@
* settings. Preferably @c nDefaultSampleRate and @c
* nMaxInputChannelsdefault of the chosen #SoundDevice.
*
* @subsection v54bapi API changes in v5.4b
* @subsubsection v55aplayback Playback media file
*
* Media files can now be played using the TeamTalk instance
* configured sound output device. Call TT_InitLocalPlayback() to
* playback a media file.
*
* Prior to playback it's possible to set specify an offset using
* #MediaFilePlayback and setup an #AudioPreprocessor.
*
* While the media file is playing it's possible to use
* TT_UpdateLocalPlayback() to change the media stream's
* properties. The progress of the media file playback can be monitor
* through #CLIENTEVENT_LOCAL_MEDIAFILE.
*
* Stop local media file playback using TT_StopLocalPlayback().
*
* @subsubsection v55astream Control media file playback when
* streaming to channel
*
* When streaming media files to a channel it's now possible to
* specify an #AudioPreprocessor to change the audio stream of the
* media file.
*
* A new audio #TTAudioPreprocessor is introduced with can mute
* left/right audio channel and change gain level.
*
* It's also possible to change the offset and pause the media file
* using TT_UpdateStreamingMediaFileToChannel() and
* #MediaFilePlayback.
*
* To use these new features use
* TT_StartStreamingMediaFileToChannelEx() instead of
* TT_StartStreamingMediaFileToChannel().
*
* @subsubsection v55atxinterval nTxIntervalMSec increased to 500 msec
*
* Previously the maximum transmit interval was limited to 100
* msec. With #OpusCodec's introduction of 120 msec frame sizes the
* transmit interval has been increased to 500 msec.
*
* @subsubsection v55aopus OPUS codec frame size selection
*
* OPUS v1.3 introduced additional frame sizes, i.e. 80, 100 and 120
* msec. These frame sizes can now be set using the @c nFrameSizeMSec
* property of #OpusCodec.
*
* @subsubsection v55amux Access muxed audio stream
*
* Previously TT_EnableAudioBlockEvent() could only be used to access
* audio from a single user. Using #TT_MUXED_USERID now makes it
* possible to access the audio stream where all users' audio streams
* have been mixed together. Basically the same as recording all
* conversations to a single file using
* TT_StartRecordingMuxedAudioFile().
*
* @subsubsection v55aaudioinput Inject audio into channel (replace voice input)
*
* The #STREAMTYPE_VOICE could previously only come from the
* configured #SoundDevice passed to TT_InitSoundInputDevice(). Now
* it's possible to replace the, typically microphone, audio input
* with a custom audio stream by passing raw audio in #AudioBlock to
* TT_InsertAudioBlock().
*
* The audio input must be passed continuesly to TT_InsertAudioBlock()
* to keep the input going. Use event #CLIENTEVENT_AUDIOINPUT to
* monitor progress. The #AudioInputProgress struct hold information
* about the queue sizes/progress.
*
* @subsubsection v55akeepalive Configure TCP and UDP keep alive properties
*
* How often "keep alive" information should be sent depend on the
* type of network where the TeamTalk client is deployed. Previously
* the TCP and UDP keep alive settings have been controlled entirely
* by the TeamTalk client instance.
*
* Now it's possible to configure the keep alive properties using
* #ClientKeepAlive-struct and functions TT_SetClientKeepAlive() and
* TT_GetClientKeepAlive().
*
* @subsubsection v55arecord Record audio from multiple channels
*
* #TT_SOUNDDEVICE_SHARED_FLAG
* Previously it was only possible to have one active audio recording using
* TT_StartRecordingMuxedAudioFile().
*
* Now it's possible to record multiple channels at the same time
* using TT_StartRecordingMuxedAudioFileEx(). Note that in order to
* get audio from channels where the TeamTalk instance is currently
* not participating requires the use of TT_DoSubscribe() and
* #SUBSCRIBE_INTERCEPT_VOICE.
*
* #TT_SOUNDDEVICE_ID_MASK
* @subsection v55aapi API changes in v5.5a
*
* - New macro #TT_SOUNDDEVICE_SHARED_FLAG for shared sound input device.
* - See @ref v55asharedaudio.
* - New macro #TT_MUXED_USERID for TT_EnableAudioBlockEvent().
* - See @ref v55amux.
* - New macro #TT_LOCAL_USERID for TT_EnableAudioBlockEvent()
* - See @ref v55amux.
* - New functions TT_SetClientKeepAlive() and TT_GetClientKeepAlive() for keep alive properties.
* - See @ref v55akeepalive.
* - New property @c nFrameSizeMSec for #OpusCodec.
* - See @ref v55aopus.
* - New macro #OPUS_MIN_FRAMESIZE for minimum OPUS frame size.
* - See @ref v55aopus and @ref v55atxinterval.
* - New macro #OPUS_MAX_FRAMESIZE for maximum OPUS frame size (OPUS before v1.3)
* - See @ref v55aopus and @ref v55atxinterval.
* - New macro #OPUS_REALMAX_FRAMESIZE for maximum OPUS frame size in OPUS v1.3 and onwards.
* - See @ref v55aopus and @ref v55atxinterval.
* - New functions TT_InitLocalPlayback(), TT_UpdateLocalPlayback()
* and TT_StopLocalPlayback() for local media playback.
* - See @ref v55aplayback.
* - New enumeration values #MFS_PAUSED #MFS_PLAYING for #MediaFileStatus used by
* #CLIENTEVENT_LOCAL_MEDIAFILE and #CLIENTEVENT_STREAM_MEDIAFILE.
* - See @ref v55aplayback and @ref v55astream.
* - New enumeration value #CLIENTEVENT_LOCAL_MEDIAFILE for monitoring progress of local media playback.
* - See @ref v55aplayback.
* - New enumeration #AudioPreprocessorType for audio preprocessor selection.
* - See @ref v55aplayback and @ref v55astream.
* - New #AudioPreprocessor struct for configured audio preprocessor.
* - See @ref v55aplayback and @ref v55astream.
* - New #TTAudioPreprocessor struct for TT_InitLocalPlayback() or TT_StartStreamingMediaFileToChannelEx().
* - See @ref v55aplayback and @ref v55astream.
* - New function TT_StartStreamingMediaFileToChannelEx() for streaming media file.
* - See @ref v55astream.
* - New function TT_UpdateStreamingMediaFileToChannel() for updating an active media file.
* - See @ref v55astream.
* - New #MediaFilePlayback struct for media file streaming or playback.
* - See @ref v55aplayback and @ref v55astream.
* - New #AudioInputProgress struct for monitoring progress when injecting audio.
* - See @ref v55aaudioinput.
* - New enumeration value #CLIENTEVENT_AUDIOINPUT for monitoring progress when injecting audio.
* - See @ref v55aaudioinput.
* - New function TT_InsertAudioBlock() for injecting audio which replaces microphone input.
* - See @ref v55aaudioinput.
* - New function TT_StartRecordingMuxedAudioFileEx() for recording audio from channel.
* - See @ref v55arecord.
* - New function TT_StopRecordingMuxedAudioFileEx() for stopping recording audio from channel.
* - See @ref v55arecord.
* - New function TT_DBG_WriteAudioFileTone() for generating audio media file.
*
* <hr>
*
@@ -351,7 +351,7 @@ extern "C" {
* instance. As a workaround for this issue a shared recording device
* has been introduced. Internally TeamTalk initializes
* #TT_SOUNDDEVICE_ID_OPENSLES_DEFAULT which then resample and
* distribution the audio data to multiple TeamTalk instances.
* distribute the audio data to multiple TeamTalk instances.
*
* The shared audio device on Android will show up as
* (TT_SOUNDDEVICE_ID_OPENSLES_DEFAULT | TT_SOUNDDEVICE_SHARED_FLAG),
@@ -4108,16 +4108,17 @@ extern "C" {
TEAMTALKDLL_API INT32 TT_GetVoiceActivationStopDelay(IN TTInstance* lpTTInstance);

/**
* @brief Store audio conversations to a single file.
* @brief Store all audio conversations with specific #AudioCodec
* settings to a single file.
*
* Unlike TT_SetUserMediaStorageDir(), which stores users' audio
* streams in separate files, TT_StartRecordingMuxedAudioFile()
* muxes the audio streams into a single file.
* To record conversations from a specific channel to a single
* file call TT_StartRecordingMuxedAudioFileEx().
*
* The audio streams, which should be muxed together, are
* required to use the same audio codec. In most cases this is
* the audio codec of the channel where the user is currently
* participating (i.e. @c audiocodec member of #Channel).
* TT_StartRecordingMuxedAudioFile() can be used to record
* conversations "across" channels given that the channels use the
* same #AudioCodec properties (i.e. @c audiocodec member of
* #Channel). To receive audio outside the TeamTalk instance's
* channel use TT_DoSubscribe() and #SUBSCRIBE_INTERCEPT_VOICE.
*
* If the user changes to a channel which uses a different audio
* codec then the recording will continue but simply be silent
@@ -4131,6 +4132,12 @@ extern "C" {
* that only one muxed audio recording can be active at the same
* time.
*
* Only #STREAMTYPE_VOICE is stored into the audio file, not
* #STREAMTYPE_MEDIAFILE_AUDIO.
*
* Use TT_SetUserMediaStorageDir() to store users' audio streams
* in separate files.
*
* @param lpTTInstance Pointer to client instance created by
* #TT_InitTeamTalk.
* @param lpAudioCodec The audio codec which should be used as
@@ -4143,6 +4150,7 @@ extern "C" {
* file. The muxer will convert to this format.
*
* @see TT_SetUserMediaStorageDir()
* @see TT_StartRecordingMuxedAudioFileEx()
* @see TT_StopRecordingMuxedAudioFile() */
TEAMTALKDLL_API TTBOOL TT_StartRecordingMuxedAudioFile(IN TTInstance* lpTTInstance,
IN const AudioCodec* lpAudioCodec,
@@ -4164,6 +4172,9 @@ extern "C" {
* from many different channels with the same #AudioCodec
* settings.
*
* Only #STREAMTYPE_VOICE is stored into the audio file, not
* #STREAMTYPE_MEDIAFILE_AUDIO.
*
* @see TT_StopRecordingMuxedAudioFileEx() */
TEAMTALKDLL_API TTBOOL TT_StartRecordingMuxedAudioFileEx(IN TTInstance* lpTTInstance,
IN INT32 nChannelID,
@@ -34,15 +34,15 @@ Projects wrapping the client DLL file in the TeamTalk SDK.
* **TeamTalk_DLL** (dependency: **TeamTalkLib**)
* TeamTalk 5 C-API DLL
* C-API header files for TeamTalk 5 DLL
* Preliminary API [Documentation](http://bearware.dk/test/teamtalksdk/v5.3.3.4935/docs/C-API/)
* Preliminary API [Documentation](http://bearware.dk/test/teamtalksdk/docs/C-API/)
* Build using TeamTalkLib or [download TeamTalk 5 SDK](https://bearware.dk/?page_id=419)
* **TeamTalk.NET** (dependency: **TeamTalk_DLL**)
* TeamTalk 5 .NET DLL wrapper for C-API TeamTalk 5 DLL (**TeamTalk_DLL**)
* Preliminary API [Documentation](http://bearware.dk/test/teamtalksdk/v5.3.3.4935/docs/NET/)
* Preliminary API [Documentation](http://bearware.dk/test/teamtalksdk/docs/NET/)
* Requires DLL file from **TeamTalk_DLL** project, either 32-bit or 64-bit
* **TeamTalkJNI** (dependency: **TeamTalk_DLL**)
* TeamTalk 5 JNI project with Java wrapper classes
* Preliminary API [Documentation](http://bearware.dk/test/teamtalksdk/v5.3.3.4935/docs/Java/)
* Preliminary API [Documentation](http://bearware.dk/test/teamtalksdk/docs/Java/)
* **TeamTalkPy** (dependency: **TeamTalk_DLL**)
* Python wrappers for TeamTalk DLL

0 comments on commit 8daf84f

Please sign in to comment.
You can’t perform that action at this time.