void ms_read_class_init(MSReadClass *klass) { ms_filter_class_init(MS_FILTER_CLASS(klass)); ms_filter_class_set_name(MS_FILTER_CLASS(klass),"dskreader"); ms_filter_class_set_attr(MS_FILTER_CLASS(klass),FILTER_IS_SOURCE); MS_FILTER_CLASS(klass)->max_foutputs=MSREAD_MAX_OUTPUTS; MS_FILTER_CLASS(klass)->max_qoutputs=MSREAD_MAX_OUTPUTS; MS_FILTER_CLASS(klass)->w_maxgran=MSREAD_DEF_GRAN; MS_FILTER_CLASS(klass)->destroy=(MSFilterDestroyFunc)ms_read_destroy; MS_FILTER_CLASS(klass)->setup=(MSFilterSetupFunc)ms_read_setup; MS_FILTER_CLASS(klass)->process=(MSFilterProcessFunc)ms_read_process; MS_FILTER_CLASS(klass)->set_property=(MSFilterPropertyFunc)ms_read_set_property; }
void ms_MULAWdecoder_class_init(MSMULAWDecoderClass *klass) { ms_filter_class_init(MS_FILTER_CLASS(klass)); ms_filter_class_set_name(MS_FILTER_CLASS(klass),"MULAWDecoder"); MS_FILTER_CLASS(klass)->info=(MSFilterInfo*)&MULAWinfo; MS_FILTER_CLASS(klass)->max_finputs=MSMULAWDECODER_MAX_INPUTS; MS_FILTER_CLASS(klass)->max_foutputs=MSMULAWDECODER_MAX_INPUTS; MS_FILTER_CLASS(klass)->r_maxgran=MULAW_DECODER_RMAXGRAN; MS_FILTER_CLASS(klass)->w_maxgran=MULAW_DECODER_WMAXGRAN; MS_FILTER_CLASS(klass)->destroy=(MSFilterDestroyFunc)ms_MULAWdecoder_destroy; MS_FILTER_CLASS(klass)->process=(MSFilterProcessFunc)ms_MULAWdecoder_process; }
void ms_rtp_send_class_init(MSRtpSendClass *klass) { ms_filter_class_init(MS_FILTER_CLASS(klass)); ms_filter_class_set_name(MS_FILTER_CLASS(klass),"RTPSend"); MS_FILTER_CLASS(klass)->max_qinputs=MSRTPSEND_MAX_INPUTS; MS_FILTER_CLASS(klass)->max_finputs=MSRTPSEND_MAX_INPUTS; MS_FILTER_CLASS(klass)->r_maxgran=MSRTPSEND_DEF_GRAN; MS_FILTER_CLASS(klass)->destroy=(MSFilterDestroyFunc)ms_rtp_send_destroy; MS_FILTER_CLASS(klass)->process=(MSFilterProcessFunc)ms_rtp_send_process; MS_FILTER_CLASS(klass)->setup=(MSFilterSetupFunc)ms_rtp_send_setup; }
/** * ms_ring_player_new: * @name: The path to the 16-bit 8khz raw file to be played as a ring. * @seconds: The number of seconds that separates two rings. * * Allocates a new MSRingPlayer object. * * * Returns: a pointer the the object, NULL if name could not be open. */ MSFilter * ms_ring_player_new(char *name, gint seconds) { MSRingPlayer *r; int fd=-1; if ((name!=NULL) && (strlen(name)!=0)) { fd=open(name,O_RDONLY); if (fd<0) { g_warning("ms_ring_player_new: failed to open %s.\n",name); return NULL; } }else { g_warning("ms_ring_player_new: Bad file name"); return NULL; } r=g_new(MSRingPlayer,1); ms_ring_player_init(r); if (ms_ring_player_class==NULL) { ms_ring_player_class=g_new(MSRingPlayerClass,1); ms_ring_player_class_init(ms_ring_player_class); } MS_FILTER(r)->klass=MS_FILTER_CLASS(ms_ring_player_class); r->fd=fd; r->silence=seconds; r->freq=8000; if (strstr(name,".wav")!=NULL){ wave_header_t header; int freq,freq2; /* read the header */ read(fd,&header,sizeof(wave_header_t)); freq=wave_header_get_rate(&header); if ((freq2=freq_is_supported(freq))>0){ r->freq=freq2; }else { g_warning("Unsupported sampling rate %i",freq); r->freq=8000; } r->channel=wave_header_get_channel(&header); lseek(fd,WAVE_HEADER_OFFSET,SEEK_SET); #ifdef WORDS_BIGENDIAN r->need_swap=1; #else r->need_swap=0; #endif } ms_ring_player_set_property(r, MS_FILTER_PROPERTY_FREQ,&r->freq); r->state=PLAY_RING; return(MS_FILTER(r)); }
void ms_qdispatcher_class_init(MSQdispatcherClass *klass) { MSFilterClass *parent_class=MS_FILTER_CLASS(klass); ms_filter_class_init(parent_class); ms_filter_class_set_name(parent_class,"qdispatcher"); parent_class->max_qinputs=MS_QDISPATCHER_MAX_INPUTS; parent_class->max_qoutputs=MS_QDISPATCHER_MAX_OUTPUTS; parent_class->destroy=(MSFilterDestroyFunc)ms_qdispatcher_destroy; parent_class->process=(MSFilterProcessFunc)ms_qdispatcher_process; }
MSFilter * ms_qdispatcher_new(void) { MSQdispatcher *obj; obj=g_malloc(sizeof(MSQdispatcher)); if (ms_qdispatcher_class==NULL){ ms_qdispatcher_class=g_malloc0(sizeof(MSQdispatcherClass)); ms_qdispatcher_class_init(ms_qdispatcher_class); } MS_FILTER(obj)->klass=MS_FILTER_CLASS(ms_qdispatcher_class); ms_qdispatcher_init(obj); return MS_FILTER(obj); }
MSFilter * ms_speex_dec_new() { MSSpeexDec *obj=g_new(MSSpeexDec,1); if (ms_speex_dec_class==NULL){ ms_speex_dec_class=g_new(MSSpeexDecClass,1); ms_speex_dec_class_init(ms_speex_dec_class); } MS_FILTER(obj)->klass=MS_FILTER_CLASS(ms_speex_dec_class); ms_speex_dec_init(obj); return MS_FILTER(obj); }
MSFilter * ms_ilbc_encoder_new(void) { MSILBCEncoder *r; r=g_new(MSILBCEncoder,1); ms_ilbc_encoder_init(r); if (ms_ilbc_encoder_class==NULL) { ms_ilbc_encoder_class=g_new(MSILBCEncoderClass,1); ms_ilbc_encoder_class_init(ms_ilbc_encoder_class); } MS_FILTER(r)->klass=MS_FILTER_CLASS(ms_ilbc_encoder_class); return(MS_FILTER(r)); }
MSFilter * ms_rtp_send_new(void) { MSRtpSend *r; r=g_new(MSRtpSend,1); if (ms_rtp_send_class==NULL) { ms_rtp_send_class=g_new(MSRtpSendClass,1); ms_rtp_send_class_init(ms_rtp_send_class); } MS_FILTER(r)->klass=MS_FILTER_CLASS(ms_rtp_send_class); ms_rtp_send_init(r); return(MS_FILTER(r)); }
MSFilter * ms_read_new(char *name) { MSRead *r; int fd=-1; r=g_new(MSRead,1); ms_read_init(r); if (ms_read_class==NULL) { ms_read_class=g_new(MSReadClass,1); ms_read_class_init(ms_read_class); } MS_FILTER(r)->klass=MS_FILTER_CLASS(ms_read_class); r->fd=-1; if (name!=NULL) ms_read_open(r,name); return(MS_FILTER(r)); }
void ms_ilbc_encoder_class_init(MSILBCEncoderClass *klass) { ms_filter_class_init(MS_FILTER_CLASS(klass)); ms_filter_class_set_name(MS_FILTER_CLASS(klass),"ILBCEnc"); MS_FILTER_CLASS(klass)->max_finputs=MSILBCENCODER_MAX_INPUTS; MS_FILTER_CLASS(klass)->max_qoutputs=MSILBCENCODER_MAX_INPUTS; MS_FILTER_CLASS(klass)->r_maxgran=ILBC_MAX_SAMPLES_PER_FRAME*2; MS_FILTER_CLASS(klass)->set_property=(MSFilterPropertyFunc)ms_ilbc_encoder_set_property; MS_FILTER_CLASS(klass)->get_property=(MSFilterPropertyFunc)ms_ilbc_encoder_get_property; MS_FILTER_CLASS(klass)->setup=(MSFilterSetupFunc)ms_ilbc_encoder_setup; MS_FILTER_CLASS(klass)->destroy=(MSFilterDestroyFunc)ms_ilbc_encoder_destroy; MS_FILTER_CLASS(klass)->process=(MSFilterProcessFunc)ms_ilbc_encoder_process; MS_FILTER_CLASS(klass)->info=(MSFilterInfo*)&ilbc_info; }
void ms_speex_dec_class_init(MSSpeexDecClass *klass) { gint frame_size=0; ms_filter_class_init(MS_FILTER_CLASS(klass)); /* use the largest frame size to configure fifos */ speex_mode_query(&speex_wb_mode, SPEEX_MODE_FRAME_SIZE, &frame_size); MS_FILTER_CLASS(klass)->process=(MSFilterProcessFunc)ms_speex_dec_process; MS_FILTER_CLASS(klass)->setup=(MSFilterSetupFunc)ms_speex_dec_setup; MS_FILTER_CLASS(klass)->unsetup=(MSFilterSetupFunc)ms_speex_dec_unsetup; MS_FILTER_CLASS(klass)->destroy=(MSFilterDestroyFunc)ms_speex_dec_destroy; MS_FILTER_CLASS(klass)->set_property=(MSFilterPropertyFunc)ms_speex_dec_set_property; ms_filter_class_set_name(MS_FILTER_CLASS(klass),"SpeexDecoder"); MS_FILTER_CLASS(klass)->info=(MSFilterInfo*)&speex_info; MS_FILTER_CLASS(klass)->max_foutputs=1; MS_FILTER_CLASS(klass)->max_qinputs=1; MS_FILTER_CLASS(klass)->w_maxgran=frame_size*2; ms_trace("ms_speex_dec_class_init: w_maxgran is %i.",MS_FILTER_CLASS(klass)->w_maxgran); }
void ms_ring_player_class_init(MSRingPlayerClass *klass) { ms_filter_class_init(MS_FILTER_CLASS(klass)); ms_filter_class_set_name(MS_FILTER_CLASS(klass),"ringplay"); ms_filter_class_set_attr(MS_FILTER_CLASS(klass),FILTER_IS_SOURCE); MS_FILTER_CLASS(klass)->max_foutputs=MS_RING_PLAYER_MAX_OUTPUTS; MS_FILTER_CLASS(klass)->max_qoutputs=MS_RING_PLAYER_MAX_OUTPUTS; MS_FILTER_CLASS(klass)->w_maxgran=MS_RING_PLAYER_DEF_GRAN; MS_FILTER_CLASS(klass)->setup=(MSFilterSetupFunc)ms_ring_player_setup; MS_FILTER_CLASS(klass)->destroy=(MSFilterDestroyFunc)ms_ring_player_destroy; MS_FILTER_CLASS(klass)->process=(MSFilterProcessFunc)ms_ring_player_process; MS_FILTER_CLASS(klass)->set_property=(MSFilterPropertyFunc)ms_ring_player_set_property; MS_FILTER_CLASS(klass)->get_property=(MSFilterPropertyFunc)ms_ring_player_get_property; }