From 193fa176dc3ff227184421e3f93ebcce12ed4123 Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Thu, 25 Apr 2019 00:54:57 +0200 Subject: [PATCH] Detach vlc callbacks --- src/engine/vlcengine.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/engine/vlcengine.cpp b/src/engine/vlcengine.cpp index f380a404b..b260e3bd2 100644 --- a/src/engine/vlcengine.cpp +++ b/src/engine/vlcengine.cpp @@ -53,6 +53,19 @@ VLCEngine::~VLCEngine() { if (state_ == Engine::Playing || state_ == Engine::Paused) { libvlc_media_player_stop(player_); } + + libvlc_event_manager_t *player_em = libvlc_media_player_event_manager(player_); + if (player_em) { + libvlc_event_detach(player_em, libvlc_MediaPlayerEncounteredError, StateChangedCallback, this); + libvlc_event_detach(player_em, libvlc_MediaPlayerNothingSpecial, StateChangedCallback, this); + libvlc_event_detach(player_em, libvlc_MediaPlayerOpening, StateChangedCallback, this); + libvlc_event_detach(player_em, libvlc_MediaPlayerBuffering, StateChangedCallback, this); + libvlc_event_detach(player_em, libvlc_MediaPlayerPlaying, StateChangedCallback, this); + libvlc_event_detach(player_em, libvlc_MediaPlayerPaused, StateChangedCallback, this); + libvlc_event_detach(player_em, libvlc_MediaPlayerStopped, StateChangedCallback, this); + libvlc_event_detach(player_em, libvlc_MediaPlayerEndReached, StateChangedCallback, this); + } + libvlc_media_player_release(player_); libvlc_release(instance_);