diff --git a/src/multimedia/multimedia.pro b/src/multimedia/multimedia.pro
index d29ba729112c162b924ce357d40752750d712014..5a77e3413701a2db3354b8f152924f8d3d8733c4 100644
--- a/src/multimedia/multimedia.pro
+++ b/src/multimedia/multimedia.pro
@@ -19,6 +19,7 @@ load(qt_module_config)
 
 HEADERS += qtmultimediaversion.h
 
+
 INCLUDEPATH *= .
 
 PRIVATE_HEADERS += \
@@ -27,6 +28,9 @@ PRIVATE_HEADERS += \
     qmediapluginloader_p.h \
     qmediaservice_p.h \
     qmediaserviceprovider_p.h \
+    qmediaresourcepolicyplugin_p.h \
+    qmediaresourcepolicy_p.h \
+    qmediaresourceset_p.h
 
 PUBLIC_HEADERS += \
     qmediabindableinterface.h \
@@ -47,7 +51,10 @@ SOURCES += \
     qmediaservice.cpp \
     qmediaserviceprovider.cpp \
     qmediatimerange.cpp \
-    qtmedianamespace.cpp
+    qtmedianamespace.cpp \
+    qmediaresourcepolicyplugin_p.cpp \
+    qmediaresourcepolicy_p.cpp \
+    qmediaresourceset_p.cpp
 
 include(audio/audio.pri)
 include(camera/camera.pri)
diff --git a/src/multimedia/qmediaresourcepolicy_p.cpp b/src/multimedia/qmediaresourcepolicy_p.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..630870c05d53d9b93ecf5c5bc595a34ac3716028
--- /dev/null
+++ b/src/multimedia/qmediaresourcepolicy_p.cpp
@@ -0,0 +1,114 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qmediaresourcepolicy_p.h"
+#include "qmediapluginloader_p.h"
+#include "qmediaresourcepolicyplugin_p.h"
+#include "qmediaresourceset_p.h"
+
+namespace {
+    class QDummyMediaPlayerResourceSet : public QMediaPlayerResourceSetInterface
+    {
+    public:
+        QDummyMediaPlayerResourceSet(QObject *parent)
+            : QMediaPlayerResourceSetInterface(parent)
+        {
+        }
+
+        bool isVideoEnabled() const
+        {
+            return true;
+        }
+
+        bool isGranted() const
+        {
+            return true;
+        }
+
+        bool isAvailable() const
+        {
+            return true;
+        }
+
+        void acquire() {}
+        void release() {}
+        void setVideoEnabled(bool) {}
+    };
+}
+
+QT_BEGIN_NAMESPACE
+
+Q_GLOBAL_STATIC_WITH_ARGS(QMediaPluginLoader, resourcePolicyLoader,
+        (QMediaResourceSetFactoryInterface_iid, QLatin1String("resourcepolicy"), Qt::CaseInsensitive))
+
+Q_GLOBAL_STATIC(QObject, dummyRoot)
+
+QObject* QMediaResourcePolicy::createResourceSet(const QString& interfaceId)
+{
+    QMediaResourceSetFactoryInterface *factory =
+            qobject_cast<QMediaResourceSetFactoryInterface*>(resourcePolicyLoader()
+                                                             ->instance(QLatin1String("default")));
+    if (!factory)
+        return 0;
+    QObject* obj = factory->create(interfaceId);
+    if (!obj) {
+        if (interfaceId == QLatin1String(QMediaPlayerResourceSetInterface_iid)) {
+            obj = new QDummyMediaPlayerResourceSet(dummyRoot());
+        }
+    }
+    Q_ASSERT(obj);
+    return obj;
+}
+
+void QMediaResourcePolicy::destroyResourceSet(QObject* resourceSet)
+{
+    if (resourceSet->parent() == dummyRoot()) {
+        delete resourceSet;
+        return;
+    }
+    QMediaResourceSetFactoryInterface *factory =
+            qobject_cast<QMediaResourceSetFactoryInterface*>(resourcePolicyLoader()
+                                                             ->instance(QLatin1String("default")));
+    if (!factory)
+        return;
+    return factory->destroy(resourceSet);
+}
+QT_END_NAMESPACE
diff --git a/src/multimedia/qmediaresourcepolicy_p.h b/src/multimedia/qmediaresourcepolicy_p.h
new file mode 100644
index 0000000000000000000000000000000000000000..c21d36f47cf623dcda3a33c79d9718aa4290faf3
--- /dev/null
+++ b/src/multimedia/qmediaresourcepolicy_p.h
@@ -0,0 +1,74 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QMEDIARESOURCEPOLICY_H
+#define QMEDIARESOURCEPOLICY_H
+
+#include <QObject>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(Multimedia)
+
+class Q_MULTIMEDIA_EXPORT QMediaResourcePolicy
+{
+public:
+    //a dummy object will always be provided if the interfaceId is not supported
+    template<typename T>
+    static T* createResourceSet(const QString& interfaceId);
+    static void destroyResourceSet(QObject* resourceSet);
+private:
+    static QObject* createResourceSet(const QString& interfaceId);
+};
+
+template<typename T>
+T* QMediaResourcePolicy::createResourceSet(const QString& interfaceId)
+{
+    return qobject_cast<T*>(QMediaResourcePolicy::createResourceSet(interfaceId));
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QMEDIARESOURCEPOLICY_H
diff --git a/src/multimedia/qmediaresourcepolicyplugin_p.cpp b/src/multimedia/qmediaresourcepolicyplugin_p.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..e1a005ac75057983f7df7abc3d4723cc7bd49278
--- /dev/null
+++ b/src/multimedia/qmediaresourcepolicyplugin_p.cpp
@@ -0,0 +1,55 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qmediaresourcepolicyplugin_p.h"
+
+QT_BEGIN_NAMESPACE
+
+QMediaResourcePolicyPlugin::QMediaResourcePolicyPlugin(QObject *parent)
+    : QObject(parent)
+{
+}
+
+QMediaResourcePolicyPlugin::~QMediaResourcePolicyPlugin()
+{
+}
+
+QT_END_NAMESPACE
diff --git a/src/multimedia/qmediaresourcepolicyplugin_p.h b/src/multimedia/qmediaresourcepolicyplugin_p.h
new file mode 100644
index 0000000000000000000000000000000000000000..7e6d2e77defefc23b23ac8b59cf1d2c94f9f296e
--- /dev/null
+++ b/src/multimedia/qmediaresourcepolicyplugin_p.h
@@ -0,0 +1,78 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QRESOURCEPOLICYPLUGIN_P_H
+#define QRESOURCEPOLICYPLUGIN_P_H
+
+#include <QObject>
+#include <qtmultimediadefs.h>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(Multimedia)
+
+struct Q_MULTIMEDIA_EXPORT QMediaResourceSetFactoryInterface
+{
+    virtual QObject* create(const QString& interfaceId) = 0;
+    virtual void destroy(QObject *resourceSet) = 0;
+};
+
+#define QMediaResourceSetFactoryInterface_iid \
+    "org.qt-project.qt.mediaresourcesetfactory/5.0"
+Q_DECLARE_INTERFACE(QMediaResourceSetFactoryInterface, QMediaResourceSetFactoryInterface_iid)
+
+class Q_MULTIMEDIA_EXPORT QMediaResourcePolicyPlugin : public QObject, public QMediaResourceSetFactoryInterface
+{
+    Q_OBJECT
+    Q_INTERFACES(QMediaResourceSetFactoryInterface)
+
+public:
+    QMediaResourcePolicyPlugin(QObject *parent = 0);
+    ~QMediaResourcePolicyPlugin();
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QRESOURCEPOLICYPLUGIN_P_H
diff --git a/src/multimedia/qmediaresourceset_p.cpp b/src/multimedia/qmediaresourceset_p.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..97aa34d6e878bc81037719448191937f4dbf5843
--- /dev/null
+++ b/src/multimedia/qmediaresourceset_p.cpp
@@ -0,0 +1,51 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qmediaresourceset_p.h"
+
+QT_BEGIN_NAMESPACE
+
+QMediaPlayerResourceSetInterface::QMediaPlayerResourceSetInterface(QObject *parent)
+    : QObject(parent)
+{
+}
+
+QT_END_NAMESPACE
diff --git a/src/plugins/gstreamer/mediaplayer/playerresourcepolicy.h b/src/multimedia/qmediaresourceset_p.h
similarity index 69%
rename from src/plugins/gstreamer/mediaplayer/playerresourcepolicy.h
rename to src/multimedia/qmediaresourceset_p.h
index 66a0ed931bd78c318b2bc0ef2cfcad5021a20b14..c58320c279f22b9aaf14193d5d8e0a7593fea27f 100644
--- a/src/plugins/gstreamer/mediaplayer/playerresourcepolicy.h
+++ b/src/multimedia/qmediaresourceset_p.h
@@ -39,52 +39,45 @@
 **
 ****************************************************************************/
 
-#ifndef PLAYERRESOURCEPOLICY_H
-#define PLAYERRESOURCEPOLICY_H
+#ifndef QMEDIARESOURCESET_P_H
+#define QMEDIARESOURCESET_P_H
+#include <QObject>
+#include <qtmultimediadefs.h>
 
-#include <QtCore/qobject.h>
+QT_BEGIN_HEADER
 
-namespace ResourcePolicy {
-class ResourceSet;
-};
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(Multimedia)
+
+#define QMediaPlayerResourceSetInterface_iid \
+    "org.qt-project.qt.mediaplayerresourceset/5.0"
 
-class PlayerResourcePolicy : public QObject
+class Q_MULTIMEDIA_EXPORT QMediaPlayerResourceSetInterface : public QObject
 {
     Q_OBJECT
 public:
-    PlayerResourcePolicy(QObject *parent = 0);
-    ~PlayerResourcePolicy();
+    virtual bool isVideoEnabled() const = 0;
+    virtual bool isGranted() const = 0;
+    virtual bool isAvailable() const = 0;
 
-    bool isVideoEnabled() const;
-    bool isGranted() const;
-    bool isRequested() const;
+    virtual void acquire() = 0;
+    virtual void release() = 0;
+    virtual void setVideoEnabled(bool enabled) = 0;
 
 Q_SIGNALS:
-    void resourcesDenied();
     void resourcesGranted();
     void resourcesLost();
+    void resourcesDenied();
+    void resourcesReleased();
+    void availabilityChanged(bool available);
 
-public Q_SLOTS:
-    void acquire();
-    void release();
-
-    void setVideoEnabled(bool enabled);
-
-private Q_SLOTS:
-    void handleResourcesGranted();
-    void handleResourcesDenied();
-    void handleResourcesLost();
+protected:
+    QMediaPlayerResourceSetInterface(QObject *parent = 0);
+};
 
-private:
-    enum ResourceStatus {
-        Initial = 0,
-        RequestedResource,
-        GrantedResource
-    };
+QT_END_NAMESPACE
 
-    bool m_videoEnabled;
-    ResourcePolicy::ResourceSet *m_resourceSet;
-    ResourceStatus m_status;
-};
+QT_END_HEADER
 
-#endif
+#endif // QMEDIARESOURCESET_P_H
diff --git a/src/plugins/gstreamer/mediaplayer/mediaplayer.pri b/src/plugins/gstreamer/mediaplayer/mediaplayer.pri
index 92cd7908666e41f827dccaf74757e01f995ec9fc..fcfbd063b96da36e489090bf8942bca4f8dad55d 100644
--- a/src/plugins/gstreamer/mediaplayer/mediaplayer.pri
+++ b/src/plugins/gstreamer/mediaplayer/mediaplayer.pri
@@ -7,15 +7,13 @@ HEADERS += \
     $$PWD/qgstreamerplayerservice.h \
     $$PWD/qgstreamerplayersession.h \
     $$PWD/qgstreamerstreamscontrol.h \
-    $$PWD/qgstreamermetadataprovider.h \
-    $$PWD/playerresourcepolicy.h
+    $$PWD/qgstreamermetadataprovider.h
 
 SOURCES += \
     $$PWD/qgstreamerplayercontrol.cpp \
     $$PWD/qgstreamerplayerservice.cpp \
     $$PWD/qgstreamerplayersession.cpp \
     $$PWD/qgstreamerstreamscontrol.cpp \
-    $$PWD/qgstreamermetadataprovider.cpp \
-    $$PWD/playerresourcepolicy.cpp
+    $$PWD/qgstreamermetadataprovider.cpp
 
 
diff --git a/src/plugins/gstreamer/mediaplayer/playerresourcepolicy.cpp b/src/plugins/gstreamer/mediaplayer/playerresourcepolicy.cpp
deleted file mode 100644
index bd2431b7efe52e0fae55556eebc407cf2f0c90d8..0000000000000000000000000000000000000000
--- a/src/plugins/gstreamer/mediaplayer/playerresourcepolicy.cpp
+++ /dev/null
@@ -1,176 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "playerresourcepolicy.h"
-
-//#define DEBUG_RESOURCE_POLICY
-#include <QtCore/qdebug.h>
-
-#ifdef HAVE_RESOURCE_POLICY
-#include <policy/resource.h>
-#include <policy/resources.h>
-#include <policy/resource-set.h>
-#endif
-
-PlayerResourcePolicy::PlayerResourcePolicy(QObject *parent) :
-    QObject(parent),
-    m_videoEnabled(true),
-    m_resourceSet(0),
-    m_status(PlayerResourcePolicy::Initial)
-{
-#ifdef HAVE_RESOURCE_POLICY
-    m_resourceSet = new ResourcePolicy::ResourceSet("player", this);
-    m_resourceSet->setAlwaysReply();
-
-    ResourcePolicy::AudioResource *audioResource = new ResourcePolicy::AudioResource("player");
-    audioResource->setProcessID(QCoreApplication::applicationPid());
-    audioResource->setStreamTag("media.name", "*");
-    m_resourceSet->addResourceObject(audioResource);
-
-    m_resourceSet->addResource(ResourcePolicy::VideoPlaybackType);
-    m_resourceSet->update();
-
-    connect(m_resourceSet, SIGNAL(resourcesGranted(const QList<ResourcePolicy::ResourceType>)),
-            this, SLOT(handleResourcesGranted()));
-    connect(m_resourceSet, SIGNAL(resourcesDenied()),
-            this, SLOT(handleResourcesDenied()));
-    connect(m_resourceSet, SIGNAL(lostResources()),
-            this, SLOT(handleResourcesLost()));
-    connect(m_resourceSet, SIGNAL(resourcesReleasedByManager()),
-            this, SLOT(handleResourcesLost()));
-#endif
-}
-
-PlayerResourcePolicy::~PlayerResourcePolicy()
-{
-}
-
-bool PlayerResourcePolicy::isVideoEnabled() const
-{
-    return m_videoEnabled;
-}
-
-void PlayerResourcePolicy::setVideoEnabled(bool enabled)
-{
-    if (m_videoEnabled != enabled) {
-        m_videoEnabled = enabled;
-
-#ifdef HAVE_RESOURCE_POLICY
-        if (enabled)
-            m_resourceSet->addResource(ResourcePolicy::VideoPlaybackType);
-        else
-            m_resourceSet->deleteResource(ResourcePolicy::VideoPlaybackType);
-
-        m_resourceSet->update();
-#endif
-    }
-}
-
-void PlayerResourcePolicy::acquire()
-{
-#ifdef HAVE_RESOURCE_POLICY
-
-#ifdef DEBUG_RESOURCE_POLICY
-    qDebug() << Q_FUNC_INFO << "Acquire resource";
-#endif
-    m_status = RequestedResource;
-    m_resourceSet->acquire();
-#else
-    m_status = GrantedResource;
-#endif
-}
-
-void PlayerResourcePolicy::release()
-{
-#ifdef HAVE_RESOURCE_POLICY
-
-#ifdef DEBUG_RESOURCE_POLICY
-    qDebug() << Q_FUNC_INFO << "Release resource";
-#endif
-
-    m_resourceSet->release();
-#endif
-    m_status = Initial;
-
-}
-
-bool PlayerResourcePolicy::isGranted() const
-{
-    return m_status == GrantedResource;
-}
-
-bool PlayerResourcePolicy::isRequested() const
-{
-    return m_status == RequestedResource;
-}
-
-void PlayerResourcePolicy::handleResourcesGranted()
-{
-    m_status = GrantedResource;
-#ifdef DEBUG_RESOURCE_POLICY
-    qDebug() << Q_FUNC_INFO << "Resource granted";
-#endif
-    emit resourcesGranted();
-}
-
-void PlayerResourcePolicy::handleResourcesDenied()
-{
-    m_status = Initial;
-#ifdef DEBUG_RESOURCE_POLICY
-    qDebug() << Q_FUNC_INFO << "Resource denied";
-#endif
-    emit resourcesDenied();
-}
-
-void PlayerResourcePolicy::handleResourcesLost()
-{
-#ifdef DEBUG_RESOURCE_POLICY
-    qDebug() << Q_FUNC_INFO << "Resource lost";
-#endif
-    if (m_status != Initial) {
-        m_status = Initial;
-        emit resourcesLost();
-    }
-
-#ifdef HAVE_RESOURCE_POLICY
-    m_resourceSet->release();
-#endif
-}
diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp
index 19e261a163188e210883684eeaa04b0f7eb2277f..19476b4976aef42ebead7e299283103013fa219c 100644
--- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp
+++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp
@@ -41,10 +41,10 @@
 
 #include "qgstreamerplayercontrol.h"
 #include "qgstreamerplayersession.h"
-#include "playerresourcepolicy.h"
 
 #include <private/qmediaplaylistnavigator_p.h>
-
+#include <private/qmediaresourcepolicy_p.h>
+#include <private/qmediaresourceset_p.h>
 
 #include <QtCore/qdir.h>
 #include <QtCore/qsocketnotifier.h>
@@ -78,7 +78,8 @@ QGstreamerPlayerControl::QGstreamerPlayerControl(QGstreamerPlayerSession *sessio
     m_fifoFd[0] = -1;
     m_fifoFd[1] = -1;
 
-    m_resources = new PlayerResourcePolicy(this);
+    m_resources = QMediaResourcePolicy::createResourceSet<QMediaPlayerResourceSetInterface>(QMediaPlayerResourceSetInterface_iid);
+    Q_ASSERT(m_resources);
 
     connect(m_session, SIGNAL(positionChanged(qint64)),
             this, SLOT(updatePosition(qint64)));
@@ -116,6 +117,8 @@ QGstreamerPlayerControl::QGstreamerPlayerControl(QGstreamerPlayerSession *sessio
 
 QGstreamerPlayerControl::~QGstreamerPlayerControl()
 {
+    QMediaResourcePolicy::destroyResourceSet(m_resources);
+
     if (m_fifoFd[0] >= 0) {
         ::close(m_fifoFd[0]);
         ::close(m_fifoFd[1]);
@@ -243,7 +246,7 @@ void QGstreamerPlayerControl::playOrPause(QMediaPlayer::State newState)
         m_seekToStartPending = true;
     }
 
-    if (!m_resources->isGranted() && !m_resources->isRequested())
+    if (!m_resources->isGranted())
         m_resources->acquire();
 
     if (m_resources->isGranted()) {
@@ -350,7 +353,7 @@ void QGstreamerPlayerControl::setMedia(const QMediaContent &content, QIODevice *
     m_session->showPrerollFrames(false); // do not show prerolled frames until pause() or play() explicitly called
 
     if (!content.isNull() || stream) {
-        if (!m_resources->isRequested() && !m_resources->isGranted())
+        if (!m_resources->isGranted())
             m_resources->acquire();
 
         if (!m_resources->isGranted()) {
diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.h b/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.h
index 5d976dbb4a58deffd1110bde4fc8734f5f3007a0..b575d1d1b88645fc66fbd5b6f8fbc24e9e5f2ef3 100644
--- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.h
+++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.h
@@ -50,7 +50,7 @@
 
 #include <limits.h>
 
-class PlayerResourcePolicy;
+class QMediaPlayerResourceSetInterface;
 
 QT_BEGIN_NAMESPACE
 class QMediaPlaylist;
@@ -151,7 +151,7 @@ private:
     int m_bufferOffset;
     char m_buffer[PIPE_BUF];
 
-    PlayerResourcePolicy *m_resources;
+    QMediaPlayerResourceSetInterface *m_resources;
 };
 
 QT_END_NAMESPACE