예제 #1
0
void audio_slot_destory(ConfAudioPort *slot){

	if(slot->audio_itc_source!=NULL) ms_filter_destroy(slot->audio_itc_source);
	if(slot->audio_itc_sink!=NULL) ms_filter_destroy(slot->audio_itc_sink);
	ms_mutex_destroy(&slot->slotq_in.lock);
	ms_queue_flush (&slot->slotq_in.q);
	ms_mutex_destroy(&slot->slotq_out.lock);
	ms_queue_flush (&slot->slotq_out.q);
	ms_free(slot);
}
예제 #2
0
void video_slot_destory(ConfVideoPort *slot){
	if(slot->video_itc_source!=NULL) ms_filter_destroy(slot->video_itc_source);
	if(slot->video_itc_sink!=NULL) ms_filter_destroy(slot->video_itc_sink);
	if(slot->video_input_join!=NULL) ms_filter_destroy(slot->video_input_join);
	ms_mutex_destroy(&slot->slotq_in.lock);
	ms_queue_flush (&slot->slotq_in.q);
	ms_mutex_destroy(&slot->slotq_out.lock);
	ms_queue_flush (&slot->slotq_out.q);
	ms_free(slot);
}
예제 #3
0
static void msv4l2_uninit(MSFilter *f){
	V4l2State *s=(V4l2State*)f->data;
	ms_free(s->dev);
	flushq(&s->rq,0);
	ms_mutex_destroy(&s->mutex);	
	ms_free(s);
}
예제 #4
0
static void ca_uninit(MSFilter *f){
	CAData *d = (CAData *) f->data;
	ms_bufferizer_destroy(d->bufferizer);
	flushq(&d->rq,0);
	ms_mutex_destroy(&d->mutex);
	ms_free(d);
}
예제 #5
0
	~AndroidReaderContext(){
		if (frame != 0) {
			freeb(frame);
		}
		ms_yuv_buf_allocator_free(allocator);
		ms_mutex_destroy(&mutex);
	};
예제 #6
0
static void msv4l2_uninit(MSFilter *f){
	V4l2State *s=(V4l2State*)f->data;
	ms_free(s->dev);
#ifdef V4L2_THREADED
	ms_mutex_destroy(&s->mutex);	
#endif
	ms_free(s);
}
예제 #7
0
void ms_filter_destroy(MSFilter *f) {
    if (f->desc->uninit!=NULL)
        f->desc->uninit(f);
    if (f->inputs!=NULL)	ms_free(f->inputs);
    if (f->outputs!=NULL)	ms_free(f->outputs);
    ms_mutex_destroy(&f->lock);
    ms_free(f);
}
예제 #8
0
void ms_event_queue_destroy(MSEventQueue *q){
	/*compatibility code*/
	if (q==ms_factory_get_event_queue(ms_factory_get_fallback())){
		ms_factory_set_event_queue(ms_factory_get_fallback(),NULL);
	}
	ms_mutex_destroy(&q->mutex);
	ms_free(q);
}
예제 #9
0
static void oss_uninit(MSSndCard *card){
	OssData *d=(OssData*)card->data;
	if (d->pcmdev!=NULL) ms_free(d->pcmdev);
	if (d->mixdev!=NULL) ms_free(d->mixdev);
	ms_bufferizer_destroy(d->bufferizer);
	flushq(&d->rq,0);
	ms_mutex_destroy(&d->mutex);
	ms_free(d);
}
예제 #10
0
static void winsnd_uninit(MSFilter *f){
	WinSnd *d=(WinSnd*)f->data;
	flushq(&d->rq,0);
	flushq(&d->wq,0);
	d->ready=0;
	d->workaround=0;
	ms_mutex_destroy(&d->mutex);
	ms_free(f->data);
}
예제 #11
0
파일: msconf.c 프로젝트: github188/Sip-MCU
static void conf_uninit(MSFilter *f){
	ConfState *s=(ConfState*)f->data;
	int i;
	for (i=0;i<CONF_MAX_PINS;i++)
		channel_uninit(&s->channels[i]);

	ms_mutex_destroy(&s->lock);
	ms_free(f->data);
}
예제 #12
0
static void v4l_uninit(MSFilter *f){
	V4lState *s=(V4lState*)f->data;
	if (s->fd>=0) v4l_stop(f,NULL);
	ms_free(s->dev);
	flushq(&s->rq,0);
	ms_mutex_destroy(&s->mutex);
	freemsg(s->mire);
	ms_free(s);
}
예제 #13
0
static void aq_uninit(MSFilter * f)
{
	AQData *d = (AQData *) f->data;
	flushq(&d->rq, 0);
	ms_bufferizer_destroy(d->bufferizer);
	ms_mutex_destroy(&d->mutex);
	if (d->uidname != NULL)
		CFRelease(d->uidname);
	ms_free(d);
}
예제 #14
0
void ms_filter_destroy(MSFilter *f){
	if (f->desc->uninit!=NULL)
		f->desc->uninit(f);
	if (f->inputs!=NULL)	ms_free(f->inputs);
	if (f->outputs!=NULL)	ms_free(f->outputs);
	ms_mutex_destroy(&f->lock);
	ms_filter_clear_notify_callback(f);
	ms_filter_clean_pending_events(f);
	ms_free(f);
}
예제 #15
0
	~AndroidReaderContext(){
		ms_mutex_destroy(&mutex);
		JNIEnv *env = ms_get_jni_env();
		env->DeleteGlobalRef(recorder);
		env->DeleteGlobalRef(managerClass);

		if (frame != 0) {
			freeb(frame);
		}
	};
예제 #16
0
static void h264_dec_uninit(MSFilter *f) {
	VTH264DecCtx *ctx = (VTH264DecCtx *)f->data;

	rfc3984_uninit(&ctx->unpacker);
	if(ctx->session) h264_dec_uninit_decoder(ctx);
	ms_queue_flush(&ctx->queue);

	ms_mutex_destroy(&ctx->mutex);
	ms_yuv_buf_allocator_free(ctx->pixbuf_allocator);
	ms_free(f->data);
}
예제 #17
0
static void bb10capture_uninit(MSFilter *f) {
    BB10Capture *d = (BB10Capture*) f->data;

    if (d->capture_started) {
        bb10capture_stop_capture(d);
    }
    bb10capture_close_camera(d);

    ms_yuv_buf_allocator_free(d->yba);
    ms_mutex_destroy(&d->mutex);
    ms_free(d);
}
예제 #18
0
void ms_dtls_srtp_context_destroy(MSDtlsSrtpContext *ctx) {
	/* clean polarssl contexts */
	if (ctx->rtp_dtls_context) {
		x509_crt_free( &(ctx->rtp_dtls_context->crt) );
		ssl_free( &(ctx->rtp_dtls_context->ssl) );
		ctr_drbg_free( &(ctx->rtp_dtls_context->ctr_drbg) );
		entropy_free( &(ctx->rtp_dtls_context->entropy) );
		pk_free( &(ctx->rtp_dtls_context->pkey) );
		ssl_cookie_free( &(ctx->rtp_dtls_context->cookie_ctx) );
		ms_mutex_destroy(&ctx->rtp_dtls_context->ssl_context_mutex);
		ms_free(ctx->rtp_dtls_context);
	}
	if (ctx->rtcp_dtls_context) {
		x509_crt_free( &(ctx->rtcp_dtls_context->crt) );
		ssl_free( &(ctx->rtcp_dtls_context->ssl) );
		ctr_drbg_free( &(ctx->rtcp_dtls_context->ctr_drbg) );
		entropy_free( &(ctx->rtcp_dtls_context->entropy) );
		pk_free( &(ctx->rtcp_dtls_context->pkey) );
		ssl_cookie_free( &(ctx->rtcp_dtls_context->cookie_ctx) );
		ms_mutex_destroy(&ctx->rtcp_dtls_context->ssl_context_mutex);
		ms_free(ctx->rtcp_dtls_context);
	}
	/* clean incoming buffers */
	while (ctx->rtp_incoming_buffer!=NULL) {
		DtlsRawPacket *next_packet = ctx->rtp_incoming_buffer->next;
		ms_free(ctx->rtp_incoming_buffer->data);
		ms_free(ctx->rtp_incoming_buffer);
		ctx->rtp_incoming_buffer = next_packet;
	}
	while (ctx->rtcp_incoming_buffer!=NULL) {
		DtlsRawPacket *next_packet = ctx->rtcp_incoming_buffer->next;
		ms_free(ctx->rtcp_incoming_buffer->data);
		ms_free(ctx->rtcp_incoming_buffer);
		ctx->rtcp_incoming_buffer = next_packet;
	}

	ms_free(ctx);
	ms_message("DTLS-SRTP context destroyed");
}
예제 #19
0
void alsa_read_uninit(MSFilter *obj){
	AlsaReadData *ad=(AlsaReadData*)obj->data;
#ifdef THREADED_VERSION
	alsa_stop_r(ad);
#endif
	if (ad->pcmdev!=NULL) ms_free(ad->pcmdev);
	if (ad->handle!=NULL) snd_pcm_close(ad->handle);
#ifdef THREADED_VERSION
	ms_bufferizer_destroy(ad->bufferizer);
	ms_mutex_destroy(&ad->mutex);
#endif
	ms_free(ad);
}
예제 #20
0
static void winsnd_uninit(MSFilter *f){
	WinSnd *d=(WinSnd*)f->data;
	flushq(&d->rq,0);
	flushq(&d->write_rq,0);
#ifndef DISABLE_SPEEX
	if (d->pst!=NULL)
	    speex_preprocess_state_destroy(d->pst);
	d->pst=NULL;
	d->pst_frame_size=0;
#endif
	d->ready=0;
	d->workaround=0;
	ms_mutex_destroy(&d->mutex);
	ms_free(f->data);
}
예제 #21
0
static void winsnd_uninit(MSSndCard *card){
	WinSndData *d=(WinSndData*)card->data;
	if (d==NULL)
		return;
	if (d->pcmdev!=NULL) ms_free(d->pcmdev);
	if (d->mixdev!=NULL) ms_free(d->mixdev);
	ms_bufferizer_destroy(d->bufferizer);
	flushq(&d->rq,0);

	ms_mutex_destroy(&d->mutex);

#ifndef DISABLE_SPEEX
	if (d->pst!=NULL)
	    speex_preprocess_state_destroy(d->pst);
#endif

	ms_free(d);
}
예제 #22
0
static void v4w_uninit(MSFilter *f){
	V4wState *s=(V4wState*)f->data;
	int idx;
	flushq(&s->rq,0);
	ms_mutex_destroy(&s->mutex);
	for (idx=0;idx<10;idx++)
	{
		if (s->mire[idx]==NULL)
			break;
		freemsg(s->mire[idx]);
	}
	if (s->rotregvalue>0){
		HRESULT hr = s->m_pControl->Stop();
		if(FAILED(hr))
		{
			ms_message("v4w: could not stop graph");
		}
		if (s->m_pNullRenderer!=NULL)
			s->m_pGraph->RemoveFilter(s->m_pNullRenderer);
		if (s->m_pIDXFilter!=NULL)
			s->m_pGraph->RemoveFilter(s->m_pIDXFilter);
		if (s->m_pDeviceFilter!=NULL)
			s->m_pGraph->RemoveFilter(s->m_pDeviceFilter);
		//RemoveGraphFromRot(s->rotregvalue);
		s->m_pBuilder=NULL;
		s->m_pControl=NULL;
		s->m_pIDXFilter=NULL;
		if (s->m_pDXFilter!=NULL)
			s->m_pDXFilter->Release();
		s->m_pDXFilter=NULL;
		s->m_pGraph=NULL;
		s->m_pNullRenderer=NULL;
		s->m_pDeviceFilter=NULL;
		CoUninitialize();
		s_callback = NULL;
		flushq(&s->rq,0);
		ms_message("v4w: graph destroyed");
		s->rotregvalue=0;
	}
	ms_free(s);
}
예제 #23
0
static void vfw_uninit(MSFilter *f){
	VfwState *s=(VfwState*)f->data;
	flushq(&s->rq,0);
	ms_mutex_destroy(&s->mutex);
	ms_free(s);
}
예제 #24
0
void ms_event_queue_destroy(MSEventQueue *q){
	ms_mutex_destroy(&q->mutex);
	ms_free(q);
}
	~msandroid_sound_data() {
		ms_mutex_destroy(&mutex);
	}
예제 #26
0
void sipomatic_uninit(Sipomatic *obj)
{
	ms_mutex_destroy(&obj->lock);
	eXosip_quit();
}
예제 #27
0
	~AndroidReaderContext(){
		if (frame != 0) {
			freeb(frame);
		}
		ms_mutex_destroy(&mutex);
	};
예제 #28
0
static void itc_source_uninit(MSFilter *f){
	SourceState *s=(SourceState *)f->data;
	ms_mutex_destroy(&s->mutex);
	ms_queue_flush (&s->q);
	ms_free(s);
}
예제 #29
0
파일: msticker.c 프로젝트: dormclub/tjphone
void ms_ticker_uninit(MSTicker *ticker)
{
	ms_ticker_stop(ticker);
	ms_free(ticker->name);
	ms_mutex_destroy(&ticker->lock);
}
예제 #30
0
static void au_common_uninit(AUCommon *d) {
    ms_mutex_destroy(&d->mutex);
}