diff --git a/src/modules/video_render/main/source/linux/video_x11_channel.cc b/src/modules/video_render/main/source/linux/video_x11_channel.cc index 8b2271ca98..fcb9596c7e 100644 --- a/src/modules/video_render/main/source/linux/video_x11_channel.cc +++ b/src/modules/video_render/main/source/linux/video_x11_channel.cc @@ -226,8 +226,13 @@ WebRtc_Word32 VideoX11Channel::ReleaseWindow() __FUNCTION__); CriticalSectionScoped cs(_crit); - return RemoveRenderer(); - + RemoveRenderer(); + if (_display) + { + XCloseDisplay(_display); + _display = NULL; + } + return 0; } WebRtc_Word32 VideoX11Channel::CreateLocalRenderer(WebRtc_Word32 width, @@ -290,6 +295,7 @@ WebRtc_Word32 VideoX11Channel::RemoveRenderer() XShmDetach(_display, &_shminfo); XDestroyImage( _image ); shmdt(_shminfo.shmaddr); + XFreeGC(_display, _gc); return 0; } diff --git a/src/video_engine/main/source/vie_encoder.cc b/src/video_engine/main/source/vie_encoder.cc index 002f05cf50..6cd5b6f0fd 100644 --- a/src/video_engine/main/source/vie_encoder.cc +++ b/src/video_engine/main/source/vie_encoder.cc @@ -153,6 +153,7 @@ ViEEncoder::~ViEEncoder() delete &_rtpRtcp; delete &_callbackCritsect; delete &_dataCritsect; + delete _qmCallback; } // ============================================================================