void codecs_uninit_free(void) { if (video_codecs) codecs_free(video_codecs,nr_vcodecs); video_codecs=NULL; if (audio_codecs) codecs_free(audio_codecs,nr_acodecs); audio_codecs=NULL; }
/** * Function description * * @return 0 on success, otherwise a Win32 error code */ static UINT xf_DeleteSurface(RdpgfxClientContext* context, RDPGFX_DELETE_SURFACE_PDU* deleteSurface) { rdpCodecs* codecs = NULL; xfGfxSurface* surface = NULL; surface = (xfGfxSurface*) context->GetSurfaceData(context, deleteSurface->surfaceId); if (surface) { XFree(surface->image); _aligned_free(surface->data); _aligned_free(surface->stage); region16_uninit(&surface->invalidRegion); codecs = surface->codecs; free(surface); } context->SetSurfaceData(context, deleteSurface->surfaceId, NULL); if (codecs && codecs->progressive) progressive_delete_surface_context(codecs->progressive, deleteSurface->surfaceId); codecs_free(codecs); return CHANNEL_RC_OK; }
BOOL freerdp_disconnect(freerdp* instance) { BOOL rc = TRUE; rdpRdp* rdp; rdp = instance->context->rdp; rdp_client_disconnect(rdp); update_post_disconnect(instance->update); if (instance->settings->AsyncInput) { wMessageQueue* inputQueue = freerdp_get_message_queue(instance, FREERDP_INPUT_MESSAGE_QUEUE); MessageQueue_PostQuit(inputQueue, 0); } if (freerdp_channels_disconnect(instance->context->channels, instance) != CHANNEL_RC_OK) rc = FALSE; IFCALL(instance->PostDisconnect, instance); if (instance->update->pcap_rfx) { instance->update->dump_rfx = FALSE; pcap_close(instance->update->pcap_rfx); instance->update->pcap_rfx = NULL; } codecs_free(instance->context->codecs); freerdp_channels_close(instance->context->channels, instance); return rc; }
BOOL freerdp_disconnect(freerdp* instance) { rdpRdp* rdp; rdp = instance->context->rdp; rdp_client_disconnect(rdp); update_post_disconnect(instance->update); IFCALL(instance->PostDisconnect, instance); if (instance->update->pcap_rfx) { instance->update->dump_rfx = FALSE; pcap_close(instance->update->pcap_rfx); instance->update->pcap_rfx = NULL; } codecs_free(instance->context->codecs); return TRUE; }