struct _AudioStream
{
MediaStream ms;
MSFilter *soundread;
MSFilter *soundwrite;
MSFilter *dtmfgen;
MSFilter *dtmfgen_rtp;
MSFilter *plc;
MSFilter *ec;/*echo canceler*/
MSFilter *volsend,*volrecv; /*MSVolumes*/
MSFilter *local_mixer;
MSFilter *local_player;
MSFilter *local_player_resampler;
MSFilter *read_decoder; /* Used when the input is done via RTP */
MSFilter *write_encoder; /* Used when the output is done via RTP */
MSFilter *read_resampler;
MSFilter *write_resampler;
MSFilter *equalizer;
MSFilter *dummy;
MSFilter *recv_tee;
MSFilter *recorder_mixer;
MSFilter *recorder_resample;
MSFilter *recorder_encoder;
MSFilter *recorder;
MSFilter *outbound_mixer;
struct {
MSFilter *resampler;
MSFilter *encoder;
MSFilter *recorder;
MSFilter *video_input;
}av_recorder;
struct _AVPlayer{
MSFilter *player;
MSFilter *resampler;
MSFilter *decoder;
MSFilter *video_output;
int audiopin;
int videopin;
bool_t plumbed;
}av_player;
/**< The RTP session used for RTP input/output. */
MSFilter *vaddtx;
char *recorder_file;
EchoLimiterType el_type;
/*use echo limiter: two MSVolume, measured input level controlling local output level*/
EqualizerLocation eq_loc;
uint32_t features;
int sample_rate;
int nchannels;
/*the stream with which this audiostream is paired*/
bool_t play_dtmfs;
bool_t use_ec;
bool_t use_gc;
bool_t use_agc;
bool_t eq_active;
bool_t use_ng;/*noise gate*/
bool_t is_ec_delay_set;
};