Namespace SipLib.Media
Classes for encoding and decoding audio. The supported codecs are G.711 Mu-Law, G.711 A-Law, G.722, G.729 and AMR-WB.
Classes
AmrWbDecoder
Class for decoding AMR-WB encoded audio data into 16-bit linear PCM samples
AmrWbEncoder
Class for encoding linear 16-bit PCM samples into AMR-WB data.
AudioDestination
This class receives audio RTP packets from an RtpChannel, decodes them and sends them to an audio destination by calling a delegate function that processes the received audio samples.
The clock rate (sample rate) of the audio handled by this class must be either 8000 or 16000.
See The AudioDestination Class for a description of how to use this class.
AudioMediaUtils
Utility function relating to audio media handling
AudioSampleData
Data class for passing audio sample data to an audio sample source
AudioSource
Class for sending sourced audio (from a microphone or a recording) to a remote endpoint via RTP packets over an RtpChannel. This class also manages sending DTMF events over the RtpChannel.
Refer to The AudioSource Class for a detailed description of this class.
CallPortAllocations
This class assists user agents in managing media ports that have been allocated for a call object.
This method should be used if a user agent is using the MediaPortListManager class to allocate media ports for a call. It is not necessary to use this class if the user agent uses the MediaPortManager class to allocate media ports.
To use this class, construct an instance of this class and save it with the call object. Then call the AddAllocatedPortsFromSdp() method when the user agent constructs an Sdp object for that call. If the user agent adds media to the call then it must call the AddAllocatedPortsFromMediaDescription() method for each media being added to the call. When the call ends, the user agent must call the FreeAllocatedPorts() method.
FileAudioSource
Class for sending audio samples that have been read from a wave file. This class loops the audio continuously until the Stop() method is called.
See The FileAudioSource Class for a description of this class.
G722Decoder
Class for decoding G.722 encoded data into linear 16-bit PCM samples.
G722Encoder
Class for encoding audio samples using a G.722 encoder.
G729Decoder
Decodes G.729 encoded data into 16-bit PCM audio samples
G729Encoder
Encodes 16-bit PCM audio samples into G.729 RTP payload bytes.
HighResolutionTimer
This class implements a high resolution periodic timer for generating media samples. It provides a timer that uses a dedicated thread and is capable of providing timed events with a maximum jitter of less than a millisecond and an average jitter of less that 0.1 milliseconds. An instance of this class may be used for multiple media sources.
Ld8k
This is the base class for the G729Encoder and G729Decoder classes. This class only contains definitions of constants used for encoding and decoding G.729 audio data.
MediaPortListManager
Class for managing allocation of UDP and TCP ports for audio, video, RTT and MSRP media. This class allocates ports from a list of available ports and frees the allocated ports by returning them to the list when a call ends.
User agents that use this class are responsible for freeing allocated ports by calling one of the Free*() methods.
MediaPortManager
Class for managing allocation of UDP and TCP ports for audio, video, RTT and MSRP media.
This class increments port numbers within a specified range of ports. When the last port in a range is allocated, this class wraps around to the starting port number.
There is no need for the user agent using this class to free ports that have been used for a call.
MediaPortSettings
Stores the media port ranges for each media type.
MediaTypes
Static class that defines constant strings for each media type
MuLawEncoder
mu-law encoder based on code from: http://hazelware.luggle.com/tutorials/mulawcompression.html
PcmaDecoder
Class for decoding PCMA (A-Law) encoded data into linear 16-bit PCM samples.
PcmaEncoder
Class for encoding linear 16-bit PCM samples into PCMA (G.711 A-Law) samples
PcmuDecoder
Class for decoding PCMU (Mu-Law) encoded data into linear 16-bit PCM samples.
PcmuEncoder
Class for encoding linear 16-bit PCM samples into PCMU (G.711 Mu-Law) samples
PortRange
Stores the port range for a single media type
SilenceAudioSampleSource
Class for sending silence audio samples. This class sends a block of samples with a value of 0 every 20 milliseconds. Each sample is a 16-bit linear PCM format sample with a value of 0. The AudioSamplesReady event is fired every 20 milliseconds after the Start() method is called.
An instance of this class may be used to send silence to multiple calls. To do this, create a single instance of this class, then call the Start() method once. multiple AudioSource classes can then hook the AudioSamples event to receive the audio samples. Do not call the Stop() method until the application shuts down.
Interfaces
IAudioDecoder
Interface definition for an audio decoder
IAudioEncoder
Interface definition for an audio encoder
IAudioSampleSource
Interface that must be implemented for each type of an audio sample source.
IMediaPortManager
Interface for classes that manage the allocation and de-allocation of media ports for RTP media (voice, video and RTT) and MSRP media.
Enums
MsrpEncryptionEnum
Enumeration of the encryption methods for MSRP media
RtpEncryptionEnum
Enumeration for the RTP media encryption methods
Delegates
AudioDestinationDelegate
Delegate type for the audio destination handler function that the AudioDestination class will call to process decoded audio packets.
AudioSamplesReadyDelegate
Delegate definition for the SendAudioSamples event of the IAudioSamplesSource interface.
DtmfDigitReceivedDelegate
Delegate type for the DtmfDigitReceived event of the AudioDestination class.
HighResolutionTimerDelegate
Delegate type for the TimerExpired event of the HighResolutionTimer class.