diff --git a/config_help.txt b/config_help.txt
index 78c75acbdb2e65dcbedbdcd6f30c32323b39a43f..7dd6b772fda81584f4135cec2ea011b6cce082d4 100644
--- a/config_help.txt
+++ b/config_help.txt
@@ -5,4 +5,5 @@ Multimedia options:
   -no-gstreamer ........ Disable support for GStreamer
   -gstreamer [version] . Enable GStreamer support [auto]
                          With no parameter, 1.0 is tried first, then 0.10.
-  -wmf-backend ......... Enable WMF support [no] (Windows only)
+  -mediaplayer-backend <name> ... Select media player backend (Windows only)
+                                  Supported backends: directshow (default), wmf
diff --git a/dist/changes-5.8.0 b/dist/changes-5.8.0
new file mode 100644
index 0000000000000000000000000000000000000000..06b0ad118004d5ccfa3b3cec2f846398cf004244
--- /dev/null
+++ b/dist/changes-5.8.0
@@ -0,0 +1,70 @@
+Qt 5.8 introduces many new features and improvements as well as bugfixes
+over the 5.7.x series. For more details, refer to the online documentation
+included in this distribution. The documentation is also available online:
+
+  http://doc.qt.io/qt-5/index.html
+
+The Qt version 5.8 series is binary compatible with the 5.7.x series.
+Applications compiled for 5.7 will continue to run with 5.8.
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+  https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+*                          Library                                         *
+****************************************************************************
+
+QtMultimedia
+------------
+
+ - Added QAudio::convertVolume() function.
+
+ - QtMultimedia global object (QML):
+   * Added convertVolume() function.
+
+ - VideoOutput (QML):
+   * Can now render frames having the YUV 4:2:2 8-bit (UYVY/YUYV) pixel
+     format.
+
+****************************************************************************
+*                      Platform Specific Changes                           *
+****************************************************************************
+
+Android
+-------
+
+ - Audio volumes passed to a media player are now correctly interpreted
+   as a linear factor.
+
+Linux
+-----
+
+ - Metadata containing a date information is now correctly returned as a
+   QDate or QDateTime.
+ - Added support for QMediaMetaData::CoverArtImage metadata key.
+ - QVideoProbe is now supported when used with a QCamera.
+
+OS X
+----
+
+ - Cameras can now support the YUV 4:2:2 8-bit (UYVY/YUYV) pixel format.
+
+Windows
+-------
+
+ - DirectShow:
+   * Audio volumes passed to a media player are now correctly interpreted
+     as a linear factor.
+
+WinRT
+-----
+
+ - Cameras can now support the YUV 4:2:2 8-bit (UYVY/YUYV) pixel format.
+ - [QTBUG-48539] Fixed Camera (QML) focus mode and focus point mode not
+   being synced with the actual value.
+ - [QTBUG-48541] Camera flash is now supported.
diff --git a/src/multimedia/configure.json b/src/multimedia/configure.json
index 8fb2eb8687dda8ffe58d738a3f178876cc175723..d26f6f45e818f7644e69cea91555f3c26d6f3e24 100644
--- a/src/multimedia/configure.json
+++ b/src/multimedia/configure.json
@@ -10,7 +10,8 @@
             "alsa": "boolean",
             "gstreamer": { "type": "optionalString", "values": [ "no", "yes", "0.10", "1.0" ] },
             "pulseaudio": "boolean",
-            "wmf-backend": "boolean"
+            "mediaplayer-backend": { "type": "string", "values": [ "directshow", "wmf" ] },
+            "wmf-backend": { "type": "void", "name": "mediaplayer-backend", "value": "wmf" }
         }
     },
 
@@ -192,6 +193,13 @@
             "condition": "config.win32 && libs.directshow",
             "output": [ "feature", "privateFeature" ]
         },
+        "directshow-player": {
+            "label": "DirectShow",
+            "enable": "input.mediaplayer-backend == 'directshow'",
+            "disable": "input.mediaplayer-backend == 'wmf'",
+            "condition": "features.directshow && !features.wmf-player",
+            "output": [ "privateFeature" ]
+        },
         "evr": {
             "label": "evr.h",
             "condition": "config.win32 && tests.evr",
@@ -281,11 +289,16 @@
             "condition": "config.win32 && features.directshow && tests.wshellitem",
             "output": [ "feature", "privateFeature" ]
         },
-        "wmf-backend": {
+        "wmf": {
+            "label": "Windows Media Foundation",
+            "condition": "config.win32 && libs.wmf",
+            "output": [ "privateFeature" ]
+        },
+        "wmf-player": {
             "label": "Windows Media Foundation",
-            "emitIf": "config.win32",
-            "autoDetect": false,
-            "condition": "libraries.wmf",
+            "enable": "input.mediaplayer-backend == 'wmf'",
+            "disable": "input.mediaplayer-backend != 'wmf'",
+            "condition": "features.wmf",
             "output": [ "privateFeature" ]
         }
     },
@@ -307,7 +320,14 @@
                 "mmrenderer",
                 "avfoundation",
                 "directshow",
-                "wmf-backend"
+                "wmf",
+                {
+                    "message": "Media player backend",
+                    "type": "firstAvailableFeature",
+                    "args": "directshow-player wmf-player",
+                    "condition": "config.win32"
+                }
+
             ]
         }
     ]
diff --git a/src/plugins/directshow/directshow.pro b/src/plugins/directshow/directshow.pro
index 5eb4fbc9667ad8bc28faf116606e89044de15006..7fe02e66258a619e77fc38b351b9219a5799c8d3 100644
--- a/src/plugins/directshow/directshow.pro
+++ b/src/plugins/directshow/directshow.pro
@@ -13,7 +13,7 @@ SOURCES += dsserviceplugin.cpp
 mingw: DEFINES += NO_DSHOW_STRSAFE
 
 include(helpers/helpers.pri)
-!qtConfig(wmf-backend): include(player/player.pri)
+qtConfig(directshow-player): include(player/player.pri)
 include(camera/camera.pri)
 
 OTHER_FILES += \
diff --git a/src/plugins/plugins.pro b/src/plugins/plugins.pro
index 099e472da8f9bedecbcaac217191a418674966fe..98a1bf2429ada348f83425c6ab9dcd6fdb115be0 100644
--- a/src/plugins/plugins.pro
+++ b/src/plugins/plugins.pro
@@ -35,7 +35,7 @@ win32:!winrt {
                windowsaudio
 
     qtConfig(directshow): SUBDIRS += directshow
-    qtConfig(wmf-backend): SUBDIRS += wmf
+    qtConfig(wmf): SUBDIRS += wmf
 }
 
 
diff --git a/src/plugins/wmf/wmf.pro b/src/plugins/wmf/wmf.pro
index c75efe28cb244491ddd7c08c3070f47d7bd64385..b202ff2a174092b9cc09bb026f3af7712c706581 100644
--- a/src/plugins/wmf/wmf.pro
+++ b/src/plugins/wmf/wmf.pro
@@ -17,7 +17,7 @@ SOURCES += \
     mfstream.cpp \
     sourceresolver.cpp
 
-contains(QT_CONFIG, wmf-backend): include (player/player.pri)
+qtConfig(wmf-player): include (player/player.pri)
 include (decoder/decoder.pri)
 
 OTHER_FILES += \