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.
