From 6bdc79f7744a05966bd98ab93aaab078b73a4c1f Mon Sep 17 00:00:00 2001 From: wang-bin Date: Sun, 12 Oct 2014 09:46:19 +0800 Subject: [PATCH] uninstall filters in target dtor and ~Filter --- src/AVPlayer.cpp | 4 ++++ src/QtAV/Filter.h | 1 - src/filter/Filter.cpp | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/AVPlayer.cpp b/src/AVPlayer.cpp index 4442216d7..861659464 100644 --- a/src/AVPlayer.cpp +++ b/src/AVPlayer.cpp @@ -151,6 +151,10 @@ AVPlayer::AVPlayer(QObject *parent) : AVPlayer::~AVPlayer() { stop(); + QList filters(FilterManager::instance().videoFilters(this)); + foreach (Filter *f, filters) { + uninstallFilter(f); + } if (_audio) { delete _audio; _audio = 0; diff --git a/src/QtAV/Filter.h b/src/QtAV/Filter.h index 46dee87fb..7feccead0 100644 --- a/src/QtAV/Filter.h +++ b/src/QtAV/Filter.h @@ -50,7 +50,6 @@ class Q_AV_EXPORT Filter : public QObject Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled NOTIFY enableChanged) public: Filter(QObject* parent = 0); - // Does nothing. uninstall() manually please virtual ~Filter(); //isEnabled() then setContext //TODO: parameter FrameContext diff --git a/src/filter/Filter.cpp b/src/filter/Filter.cpp index 02ae67e5e..699ff8c16 100644 --- a/src/filter/Filter.cpp +++ b/src/filter/Filter.cpp @@ -64,7 +64,7 @@ Filter::Filter(FilterPrivate &d, QObject *parent) Filter::~Filter() { - //uninstall(); + uninstall(); } void Filter::setEnabled(bool enabled)