コード例 #1
0
	~msandroid_sound_write_data() {
		ms_bufferizer_flush(bufferizer);
		ms_bufferizer_destroy(bufferizer);
		ms_cond_destroy(&cond);
		if (audio_track_class!=0){
			JNIEnv *env = ms_get_jni_env();
			env->DeleteGlobalRef(audio_track_class);
		}
	}
コード例 #2
0
    ~msandroid_sound_write_data() {
        ms_bufferizer_flush(bufferizer);
        ms_bufferizer_destroy(bufferizer);
        ms_cond_destroy(&cond);
        if (audio_track_class!=0) {
            //JNIEnv *env = ms_get_jni_env();

            JNIEnv *env = NULL;
            JavaVM *jvm = ms_get_jvm();
            if (jvm->AttachCurrentThread(&env, NULL)!=0) {
                ms_fatal("AttachCurrentThread() failed !");
            }
            env->DeleteGlobalRef(audio_track_class);
            jvm->DetachCurrentThread();
        }
    }
コード例 #3
0
static void conf_stream_free(LinphoneConferenceStream *stream)
{
	if(stream->audio_ticker!=NULL)ms_ticker_destroy(stream->audio_ticker);
	if(stream->audio_fileplayer!=NULL) ms_filter_destroy(stream->audio_fileplayer);
	if(stream->audio_filerecorder!=NULL) ms_filter_destroy(stream->audio_filerecorder);
	if(stream->audio_mixer!=NULL) ms_filter_destroy(stream->audio_mixer);
	if(stream->audio_record_sink!=NULL) ms_filter_destroy(stream->audio_record_sink);
	if(stream->video_record_sink!=NULL) ms_filter_destroy(stream->video_record_sink);

	MSList *list = stream->audio_ports;

	for(;list!=NULL;list=list->next){
		ConfAudioPort* port = (ConfAudioPort*) list->data;
		audio_slot_destory(port);
	}

	ms_list_free(stream->audio_ports);

	if(stream->has_video){
		if(stream->video_ticker!=NULL){
			ms_cond_destroy(&stream->video_ticker->cond);
			ms_ticker_destroy(stream->video_ticker);
		}

		if(stream->video_mixer!=NULL) ms_filter_destroy(stream->video_mixer);
		if(stream->video_output!=NULL) ms_filter_destroy(stream->video_output);
		if(stream->video_static_image!=NULL) ms_filter_destroy(stream->video_static_image);
		if(stream->video_static_image_tee!=NULL) ms_filter_destroy(stream->video_static_image_tee);
		MSList *list = stream->video_ports;

		for(;list!=NULL;list=list->next){
			ConfVideoPort* port = (ConfVideoPort*) list->data;
			video_slot_destory(port);
		}
		ms_list_free(stream->video_ports);
	}

	if(stream->display_name!=NULL) ms_free(stream->display_name);
	if(stream->static_image_path!=NULL) ms_free(stream->static_image_path);

	ms_free(stream);
}