mediastreamer2
2.10.0
|
Audio streaming API - Easily run audio streams from soundcard or wav files to RTP. More...
Typedefs | |
typedef struct _AudioStream | AudioStream |
Functions | |
MS2_PUBLIC bool_t | media_stream_secured (const MediaStream *stream) |
MS2_PUBLIC bool_t | media_stream_avpf_enabled (const MediaStream *stream) |
MS2_PUBLIC uint16_t | media_stream_get_avpf_rr_interval (const MediaStream *stream) |
MS2_PUBLIC RtpSession * | media_stream_get_rtp_session (const MediaStream *stream) |
MS2_PUBLIC int | media_stream_set_target_network_bitrate (MediaStream *stream, int target_bitrate) |
MS2_PUBLIC int | media_stream_get_target_network_bitrate (const MediaStream *stream) |
MS2_PUBLIC float | media_stream_get_up_bw (const MediaStream *stream) |
MS2_PUBLIC float | media_stream_get_down_bw (const MediaStream *stream) |
MS2_PUBLIC float | media_stream_get_rtcp_up_bw (const MediaStream *stream) |
MS2_PUBLIC float | media_stream_get_rtcp_down_bw (const MediaStream *stream) |
MS2_PUBLIC void | media_stream_reclaim_sessions (MediaStream *stream, MSMediaStreamSessions *sessions) |
MS2_PUBLIC bool_t | media_stream_alive (MediaStream *stream, int timeout_seconds) |
MS2_PUBLIC MSStreamState | media_stream_get_state (const MediaStream *stream) |
MS2_PUBLIC int | audio_stream_start_full (AudioStream *stream, RtpProfile *profile, const char *rem_rtp_ip, int rem_rtp_port, const char *rem_rtcp_ip, int rem_rtcp_port, int payload, int jitt_comp, const char *infile, const char *outfile, MSSndCard *playcard, MSSndCard *captcard, bool_t use_ec) |
MS2_PUBLIC AudioStream * | audio_stream_new (int loc_rtp_port, int loc_rtcp_port, bool_t ipv6) |
MS2_PUBLIC AudioStream * | audio_stream_new2 (const char *ip, int loc_rtp_port, int loc_rtcp_port) |
MS2_PUBLIC AudioStream * | audio_stream_new_with_sessions (const MSMediaStreamSessions *sessions) |
MS2_PUBLIC int | audio_stream_start_now (AudioStream *stream, RtpProfile *prof, const char *remip, int remport, int rem_rtcp_port, int payload_type, int jitt_comp, MSSndCard *playcard, MSSndCard *captcard, bool_t echo_cancel) |
MS2_PUBLIC void | audio_stream_iterate (AudioStream *stream) |
MS2_PUBLIC void | audio_stream_enable_echo_limiter (AudioStream *stream, EchoLimiterType type) |
MS2_PUBLIC void | audio_stream_enable_gain_control (AudioStream *stream, bool_t val) |
MS2_PUBLIC void | audio_stream_enable_automatic_gain_control (AudioStream *stream, bool_t val) |
MS2_PUBLIC void | audio_stream_set_echo_canceller_params (AudioStream *st, int tail_len_ms, int delay_ms, int framesize) |
MS2_PUBLIC void | audio_stream_mute_rtp (AudioStream *stream, bool_t val) |
MS2_PUBLIC void | audio_stream_enable_noise_gate (AudioStream *stream, bool_t val) |
MS2_PUBLIC void | audio_stream_enable_equalizer (AudioStream *stream, bool_t enabled) |
MS2_PUBLIC void | audio_stream_stop (AudioStream *stream) |
MS2_PUBLIC int | audio_stream_send_dtmf (AudioStream *stream, char dtmf) |
MS2_PUBLIC MSFilter * | audio_stream_open_remote_play (AudioStream *stream, const char *filename) |
bool_t | audio_stream_zrtp_enabled (const AudioStream *stream) |
Audio streaming API - Easily run audio streams from soundcard or wav files to RTP.
typedef struct _AudioStream AudioStream |
The AudioStream holds all resources to create and run typical VoIP audiostream.
MS2_PUBLIC bool_t media_stream_secured | ( | const MediaStream * | stream | ) |
[in] | stream | MediaStream object |
MS2_PUBLIC bool_t media_stream_avpf_enabled | ( | const MediaStream * | stream | ) |
Tells whether AVPF is enabled or not.
[in] | stream | #MediaStream object. |
MS2_PUBLIC uint16_t media_stream_get_avpf_rr_interval | ( | const MediaStream * | stream | ) |
Gets the AVPF Regular RTCP report interval.
[in] | stream | #MediaStream object. |
MS2_PUBLIC RtpSession* media_stream_get_rtp_session | ( | const MediaStream * | stream | ) |
Gets the RTP session of the media stream.
[in] | stream | #MediaStream object. |
MS2_PUBLIC int media_stream_set_target_network_bitrate | ( | MediaStream * | stream, |
int | target_bitrate | ||
) |
For multirate codecs like OPUS, encoder output target bitrate must be set.
Encoder will compute output codec bitrate from this value.
default value is the value corresponding the rtp PayloadType
stream | stream to apply parameter on |
target_bitrate | in bit per seconds |
MS2_PUBLIC int media_stream_get_target_network_bitrate | ( | const MediaStream * | stream | ) |
get the stream target bitrate.
stream | stream to apply parameter on |
MS2_PUBLIC float media_stream_get_up_bw | ( | const MediaStream * | stream | ) |
get current stream upload bitrate. Value is updated every seconds
stream |
MS2_PUBLIC float media_stream_get_down_bw | ( | const MediaStream * | stream | ) |
get current stream download bitrate. Value is updated every seconds
stream |
MS2_PUBLIC float media_stream_get_rtcp_up_bw | ( | const MediaStream * | stream | ) |
get current stream rtcp upload bitrate. Value is updated every seconds
stream |
MS2_PUBLIC float media_stream_get_rtcp_down_bw | ( | const MediaStream * | stream | ) |
get current stream rtcp download bitrate. Value is updated every seconds
stream |
MS2_PUBLIC void media_stream_reclaim_sessions | ( | MediaStream * | stream, |
MSMediaStreamSessions * | sessions | ||
) |
Returns the sessions that were used in the media stream (RTP, SRTP, ZRTP...) so that they can be re-used. As a result of calling this function, the media stream no longer owns the sessions and thus will not free them.
MS2_PUBLIC bool_t media_stream_alive | ( | MediaStream * | stream, |
int | timeout_seconds | ||
) |
Returns TRUE if stream was still actively receiving packets (RTP or RTCP) in the last period specified in timeout_seconds.
MS2_PUBLIC MSStreamState media_stream_get_state | ( | const MediaStream * | stream | ) |
MS2_PUBLIC int audio_stream_start_full | ( | AudioStream * | stream, |
RtpProfile * | profile, | ||
const char * | rem_rtp_ip, | ||
int | rem_rtp_port, | ||
const char * | rem_rtcp_ip, | ||
int | rem_rtcp_port, | ||
int | payload, | ||
int | jitt_comp, | ||
const char * | infile, | ||
const char * | outfile, | ||
MSSndCard * | playcard, | ||
MSSndCard * | captcard, | ||
bool_t | use_ec | ||
) |
Starts an audio stream from/to local wav files or soundcards.
This method starts the processing of the audio stream, that is playing from wav file or soundcard, voice processing, encoding, sending through RTP, receiving from RTP, decoding, voice processing and wav file recording or soundcard playback.
stream | an AudioStream previously created with audio_stream_new(). |
profile | a RtpProfile containing all PayloadType possible during the audio session. |
rem_rtp_ip | remote IP address where to send the encoded audio. |
rem_rtp_port | remote IP port where to send the encoded audio. |
rem_rtcp_ip | remote IP address for RTCP. |
rem_rtcp_port | remote port for RTCP. |
payload | payload type index to use for the sending stream. This index must point to a valid PayloadType in the RtpProfile. |
jitt_comp | Nominal jitter buffer size in milliseconds. |
infile | path to wav file to play out (can be NULL) |
outfile | path to wav file to record into (can be NULL) |
playcard | The soundcard to be used for playback (can be NULL) |
captcard | The soundcard to be used for catpure. (can be NULL) |
use_ec | whether echo cancellation is to be performed. |
MS2_PUBLIC AudioStream* audio_stream_new | ( | int | loc_rtp_port, |
int | loc_rtcp_port, | ||
bool_t | ipv6 | ||
) |
Creates an AudioStream object listening on a RTP port.
loc_rtp_port | the local UDP port to listen for RTP packets. |
loc_rtcp_port | the local UDP port to listen for RTCP packets |
ipv6 | TRUE if ipv6 must be used. |
MS2_PUBLIC AudioStream* audio_stream_new2 | ( | const char * | ip, |
int | loc_rtp_port, | ||
int | loc_rtcp_port | ||
) |
Creates an AudioStream object listening on a RTP port for a dedicated address.
loc_ip | the local ip to listen for RTP packets. Can be ::, O.O.O.O or any ip4/6 addresses |
loc_rtp_port | the local UDP port to listen for RTP packets. |
loc_rtcp_port | the local UDP port to listen for RTCP packets |
MS2_PUBLIC AudioStream* audio_stream_new_with_sessions | ( | const MSMediaStreamSessions * | sessions | ) |
Creates an AudioStream object from initialized MSMediaStreamSessions.
sessions | the MSMediaStreamSessions |
MS2_PUBLIC int audio_stream_start_now | ( | AudioStream * | stream, |
RtpProfile * | prof, | ||
const char * | remip, | ||
int | remport, | ||
int | rem_rtcp_port, | ||
int | payload_type, | ||
int | jitt_comp, | ||
MSSndCard * | playcard, | ||
MSSndCard * | captcard, | ||
bool_t | echo_cancel | ||
) |
Starts an audio stream from local soundcards.
This method starts the processing of the audio stream, that is capture from soundcard, voice processing, encoding, sending through RTP, receiving from RTP, decoding, voice processing and soundcard playback.
stream | an AudioStream previously created with audio_stream_new(). |
prof | a RtpProfile containing all PayloadType possible during the audio session. |
remip | remote IP address where to send the encoded audio. |
remport | remote IP port where to send the encoded audio |
rem_rtcp_port | remote port for RTCP. |
payload_type | payload type index to use for the sending stream. This index must point to a valid PayloadType in the RtpProfile. |
jitt_comp | Nominal jitter buffer size in milliseconds. |
playcard | The soundcard to be used for playback |
captcard | The soundcard to be used for catpure. |
echo_cancel | whether echo cancellation is to be performed. |
MS2_PUBLIC void audio_stream_iterate | ( | AudioStream * | stream | ) |
Executes background low priority tasks related to audio processing (RTP statistics analysis). It should be called periodically, for example with an interval of 100 ms or so.
MS2_PUBLIC void audio_stream_enable_echo_limiter | ( | AudioStream * | stream, |
EchoLimiterType | type | ||
) |
enable echo-limiter dispositve: one MSVolume in input branch controls a MSVolume in the output branch
MS2_PUBLIC void audio_stream_enable_gain_control | ( | AudioStream * | stream, |
bool_t | val | ||
) |
enable gain control, to be done before start()
MS2_PUBLIC void audio_stream_enable_automatic_gain_control | ( | AudioStream * | stream, |
bool_t | val | ||
) |
enable automatic gain control, to be done before start()
MS2_PUBLIC void audio_stream_set_echo_canceller_params | ( | AudioStream * | st, |
int | tail_len_ms, | ||
int | delay_ms, | ||
int | framesize | ||
) |
to be done before start
MS2_PUBLIC void audio_stream_mute_rtp | ( | AudioStream * | stream, |
bool_t | val | ||
) |
enable/disable rtp stream
MS2_PUBLIC void audio_stream_enable_noise_gate | ( | AudioStream * | stream, |
bool_t | val | ||
) |
enable noise gate, must be done before start()
MS2_PUBLIC void audio_stream_enable_equalizer | ( | AudioStream * | stream, |
bool_t | enabled | ||
) |
enable parametric equalizer in the stream that goes to the speaker
MS2_PUBLIC void audio_stream_stop | ( | AudioStream * | stream | ) |
stop the audio streaming thread and free everything
MS2_PUBLIC int audio_stream_send_dtmf | ( | AudioStream * | stream, |
char | dtmf | ||
) |
send a dtmf
MS2_PUBLIC MSFilter* audio_stream_open_remote_play | ( | AudioStream * | stream, |
const char * | filename | ||
) |
Open a player to play an audio/video file to remote end. The player is returned as a MSFilter so that application can make usual player controls on it using the MSPlayerInterface.
bool_t audio_stream_zrtp_enabled | ( | const AudioStream * | stream | ) |
return TRUE if zrtp is enabled, it does not mean that stream is encrypted, but only that zrtp is configured to know encryption status, uses #