Qt 5.0.1 is a bug-fix release. It maintains both forward and backward
source compatibility with Qt 5.0.0.

However, to fix a bug we detected after the 5.0 release, this release
has a limited binary compatibility break. We therefore recommend all
users to recompile their applications that provided QtMultimedia
plugins or dealt with them directly. This is an exceptional case:
compatibility will be kept for further releases.

For more details, refer to the online documentation included in this
distribution. The documentation is also available online:

  http://qt-project.org/doc/qt-5.0/

Some of the changes listed in this file include issue tracking numbers
corresponding to tasks in the Qt Bug Tracker:

  http://bugreports.qt-project.org/

Each of these identifiers can be entered in the bug tracker to obtain more
information about a particular change.


****************************************************************************
*                           General                                        *
****************************************************************************

General Improvements
--------------------

 * Documentation: Various documentation fixes such as spelling and
   snippet corrections.

 * Fixed an issue that could cause memory leak when certain objects
   were destroyed. The fix for this issue required a binary
   compatibility break in two classes: QAudioSystemFactoryInterface
   and QMediaServiceProviderFactoryInterface. Those two classes are
   used only in QtMultimedia plugins and code directly dealing with
   them and recompilation is only strictly necessary for them.

Third party components
----------------------

****************************************************************************
*                          Library                                         *
****************************************************************************

 - WMF: added more metadata keys (on Windows 7 and later).
 - Compile in 32-bit mode.
 - remove leftover code from multimediawidgets carve-out
 - WMF: release video controls before releasing the session
 - WMF: Fixed uninitialized member variable.
 - WMF: re-enabled video probes and made it more robust.
 - [QTBUG-28376] Make QtMultimedia an identified module
 - [QTBUG-28727] Doc: Moved the qdocinc and image to the sourcedirs
 - Remove comma at the end of the enum
 - fix include statements
 - Use qrc to deploy qml files in declarative-camera examples
 - [QTBUG-26621] WMF: Fixed incorrect QMediaPlayer volume reporting.
 - Polish and fix qmlvideofx example
 - Add qmake generated files to .gitignore.
 - Example: Notify user of errors

****************************************************************************
*                      Platform Specific Changes                           *
****************************************************************************


****************************************************************************
*                      Compiler Specific Changes                           *
****************************************************************************


****************************************************************************
*                          Plugins                                         *
****************************************************************************
