/* this code is not part of the library itself, it is part of the mediastream program */ void video_stream_free (VideoStream * stream) { if (stream->session!=NULL){ rtp_session_unregister_event_queue(stream->session,stream->evq); rtp_session_destroy(stream->session); } if (stream->rtprecv != NULL) ms_filter_destroy (stream->rtprecv); if (stream->rtpsend!=NULL) ms_filter_destroy (stream->rtpsend); if (stream->source != NULL) ms_filter_destroy (stream->source); if (stream->output != NULL) ms_filter_destroy (stream->output); if (stream->decoder != NULL) ms_filter_destroy (stream->decoder); if (stream->sizeconv != NULL) ms_filter_destroy (stream->sizeconv); if (stream->pixconv!=NULL) ms_filter_destroy(stream->pixconv); if (stream->tee!=NULL) ms_filter_destroy(stream->tee); if (stream->ticker != NULL) ms_ticker_destroy (stream->ticker); if (stream->evq!=NULL) ortp_ev_queue_destroy(stream->evq); ms_free (stream); }
static void stream_manager_delete(stream_manager_t * mgr) { if (mgr->type==AudioStreamType){ unlink(RECORDED_16K_1S_FILE); rtp_session_unregister_event_queue(mgr->audio_stream->ms.sessions.rtp_session,mgr->evq); audio_stream_stop(mgr->audio_stream); }else{ #if VIDEO_ENABLED rtp_session_unregister_event_queue(mgr->video_stream->ms.sessions.rtp_session,mgr->evq); video_stream_stop(mgr->video_stream); #else ms_fatal("Unsupported stream type [%s]",ms_stream_type_to_string(mgr->type)); #endif } ortp_ev_queue_destroy(mgr->evq); ms_free(mgr); }
void linphone_call_stop_media_streams(LinphoneCall *call){ if (call->audiostream!=NULL) { rtp_session_unregister_event_queue(call->audiostream->session,call->audiostream_app_evq); ortp_ev_queue_flush(call->audiostream_app_evq); ortp_ev_queue_destroy(call->audiostream_app_evq); if (call->audiostream->ec){ const char *state_str=NULL; ms_filter_call_method(call->audiostream->ec,MS_ECHO_CANCELLER_GET_STATE_STRING,&state_str); if (state_str){ ms_message("Writing echo canceller state, %i bytes",strlen(state_str)); lp_config_set_string(call->core->config,"sound","ec_state",state_str); } } linphone_call_log_fill_stats (call->log,call->audiostream); audio_stream_stop(call->audiostream); call->audiostream=NULL; } #ifdef VIDEO_ENABLED if (call->videostream!=NULL){ rtp_session_unregister_event_queue(call->videostream->session,call->videostream_app_evq); ortp_ev_queue_flush(call->videostream_app_evq); ortp_ev_queue_destroy(call->videostream_app_evq); video_stream_stop(call->videostream); call->videostream=NULL; } ms_event_queue_skip(call->core->msevq); #endif if (call->audio_profile){ rtp_profile_clear_all(call->audio_profile); rtp_profile_destroy(call->audio_profile); call->audio_profile=NULL; } if (call->video_profile){ rtp_profile_clear_all(call->video_profile); rtp_profile_destroy(call->video_profile); call->video_profile=NULL; } }
void media_stream_free(MediaStream *stream) { if (stream->sessions.rtp_session != NULL){ rtp_session_unregister_event_queue(stream->sessions.rtp_session, stream->evq); } if (stream->owns_sessions){ ms_media_stream_sessions_uninit(&stream->sessions); } if (stream->evq) ortp_ev_queue_destroy(stream->evq); if (stream->rc != NULL) ms_bitrate_controller_destroy(stream->rc); if (stream->rtpsend != NULL) ms_filter_destroy(stream->rtpsend); if (stream->rtprecv != NULL) ms_filter_destroy(stream->rtprecv); if (stream->encoder != NULL) ms_filter_destroy(stream->encoder); if (stream->decoder != NULL) ms_filter_destroy(stream->decoder); if (stream->voidsink != NULL) ms_filter_destroy(stream->voidsink); if (stream->qi) ms_quality_indicator_destroy(stream->qi); }
/* this code is not part of the library itself, it is part of the mediastream program */ void video_stream_free (VideoStream * stream) { if (stream->ortpZrtpContext) ortp_zrtp_context_destroy(stream->ortpZrtpContext); if (stream->session!=NULL){ rtp_session_unregister_event_queue(stream->session,stream->evq); rtp_session_destroy(stream->session); } if (stream->rtprecv != NULL) ms_filter_destroy (stream->rtprecv); if (stream->rtpsend!=NULL) ms_filter_destroy (stream->rtpsend); if (stream->source != NULL) ms_filter_destroy (stream->source); if (stream->output != NULL) ms_filter_destroy (stream->output); if (stream->encoder != NULL) ms_filter_destroy (stream->encoder); if (stream->decoder != NULL) ms_filter_destroy (stream->decoder); if (stream->sizeconv != NULL) ms_filter_destroy (stream->sizeconv); if (stream->pixconv!=NULL) ms_filter_destroy(stream->pixconv); if (stream->tee!=NULL) ms_filter_destroy(stream->tee); if (stream->tee2!=NULL) ms_filter_destroy(stream->tee2); if (stream->jpegwriter!=NULL) ms_filter_destroy(stream->jpegwriter); if (stream->output2!=NULL) ms_filter_destroy(stream->output2); if (stream->voidsink!=NULL) ms_filter_destroy(stream->voidsink); if (stream->ticker != NULL) ms_ticker_destroy (stream->ticker); if (stream->evq!=NULL) ortp_ev_queue_destroy(stream->evq); if (stream->display_name!=NULL) ms_free(stream->display_name); if (stream->rc!=NULL){ ms_bitrate_controller_destroy(stream->rc); } ms_free (stream); }
/* this code is not part of the library itself, it is part of the mediastream program */ void video_stream_free (VideoStream * stream) { if (stream->session!=NULL){ rtp_session_unregister_event_queue(stream->session,stream->evq); rtp_session_destroy(stream->session); } if (stream->rtprecv != NULL) ms_filter_destroy (stream->rtprecv); if (stream->rtpsend!=NULL) ms_filter_destroy (stream->rtpsend); if (stream->source != NULL) ms_filter_destroy (stream->source); if (stream->output != NULL) ms_filter_destroy (stream->output); if (stream->encoder != NULL) ms_filter_destroy (stream->encoder); if (stream->decoder != NULL) ms_filter_destroy (stream->decoder); if (stream->sizeconv != NULL) ms_filter_destroy (stream->sizeconv); if (stream->pixconv!=NULL) ms_filter_destroy(stream->pixconv); if (stream->tee!=NULL) ms_filter_destroy(stream->tee); if (stream->tee2!=NULL) ms_filter_destroy(stream->tee2); if (stream->jpegwriter!=NULL) ms_filter_destroy(stream->jpegwriter); if(stream->video_record!=NULL) ms_filter_destroy(stream->video_record); if (stream->output2!=NULL) ms_filter_destroy(stream->output2); #ifdef ENABLE_UDT if (stream->udt!=NULL) ms_filter_destroy(stream->udt); #endif // ENABLE_UDT if (stream->ticker != NULL) ms_ticker_destroy (stream->ticker); if (stream->evq!=NULL) ortp_ev_queue_destroy(stream->evq); if (stream->display_name!=NULL) ms_free(stream->display_name); ms_free (stream); }
/* this code is not part of the library itself, it is part of the mediastream program */ void audio_stream_free(AudioStream *stream) { if (stream->session!=NULL) { rtp_session_unregister_event_queue(stream->session,stream->evq); rtp_session_destroy(stream->session); } if (stream->evq) ortp_ev_queue_destroy(stream->evq); if (stream->rtpsend!=NULL) ms_filter_destroy(stream->rtpsend); if (stream->rtprecv!=NULL) ms_filter_destroy(stream->rtprecv); if (stream->soundread!=NULL) ms_filter_destroy(stream->soundread); if (stream->soundwrite!=NULL) ms_filter_destroy(stream->soundwrite); if (stream->encoder!=NULL) ms_filter_destroy(stream->encoder); if (stream->decoder!=NULL) ms_filter_destroy(stream->decoder); if (stream->dtmfgen!=NULL) ms_filter_destroy(stream->dtmfgen); #ifndef ENABLED_MCU_MEDIA_SERVER if (stream->ec!=NULL) ms_filter_destroy(stream->ec); if (stream->volrecv!=NULL) ms_filter_destroy(stream->volrecv); if (stream->volsend!=NULL) ms_filter_destroy(stream->volsend); if (stream->equalizer!=NULL) ms_filter_destroy(stream->equalizer); #endif // ENABLED_MCU_MEDIA_SERVER if (stream->ticker!=NULL) ms_ticker_destroy(stream->ticker); #ifdef ENABLE_UDT if (stream->udt!=NULL) ms_filter_destroy(stream->udt); #endif // ENABLE_UDT if (stream->read_resampler!=NULL) ms_filter_destroy(stream->read_resampler); if (stream->write_resampler!=NULL) ms_filter_destroy(stream->write_resampler); if (stream->mic_tee!=NULL) ms_filter_destroy(stream->mic_tee); if (stream->spk_tee!=NULL) ms_filter_destroy(stream->spk_tee); if (stream->filewriter!=NULL) ms_filter_destroy(stream->filewriter); if (stream->recordmixer!=NULL) ms_filter_destroy(stream->recordmixer); if (stream->tee2!=NULL) ms_filter_destroy(stream->tee2); if (stream->audio_record!=NULL) ms_filter_destroy(stream->audio_record); if (stream->dtmfgen_rtp!=NULL) ms_filter_destroy(stream->dtmfgen_rtp); ms_free(stream); }
/* this code is not part of the library itself, it is part of the mediastream program */ void audio_stream_free(AudioStream *stream) { if (stream->session!=NULL) { rtp_session_unregister_event_queue(stream->session,stream->evq); rtp_session_destroy(stream->session); } if (stream->rtpsend!=NULL) ms_filter_destroy(stream->rtpsend); if (stream->rtprecv!=NULL) ms_filter_destroy(stream->rtprecv); if (stream->soundread!=NULL) ms_filter_destroy(stream->soundread); if (stream->soundwrite!=NULL) ms_filter_destroy(stream->soundwrite); if (stream->encoder!=NULL) ms_filter_destroy(stream->encoder); if (stream->decoder!=NULL) ms_filter_destroy(stream->decoder); if (stream->dtmfgen!=NULL) ms_filter_destroy(stream->dtmfgen); if (stream->ec!=NULL) ms_filter_destroy(stream->ec); if (stream->volrecv!=NULL) ms_filter_destroy(stream->volrecv); if (stream->volsend!=NULL) ms_filter_destroy(stream->volsend); if (stream->equalizer!=NULL) ms_filter_destroy(stream->equalizer); if (stream->ticker!=NULL) ms_ticker_destroy(stream->ticker); if (stream->read_resampler!=NULL) ms_filter_destroy(stream->read_resampler); if (stream->write_resampler!=NULL) ms_filter_destroy(stream->write_resampler); if (stream->evq!=NULL) ortp_ev_queue_destroy(stream->evq); ms_free(stream); }