Qt 5.7 introduces many new features and improvements as well as bugfixes
over the 5.6.x series. Also, there is a change in the licensing terms.
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.7 series is binary compatible with the 5.6.x series.
Applications compiled for 5.6 will continue to run with 5.7.

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.

****************************************************************************
*                          Important License Changes                       *
****************************************************************************

  This module is no longer available under LGPLv2.1. The libraries are
  now available under the following licenses:
    * Commercial License
    * GNU General Public License v2.0 (LICENSE.GPL2) and later
    * GNU Lesser General Public License v3.0 (LICENSE.LGPL3)

  The tools are now available under the following licenses:
    * Commercial License
    * GNU General Public License 3.0 (LICENSE.GPL3) with exceptions
      described in The Qt Company GPL Exception 1.0 (LICENSE.GPL3-EXCEPT)

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

QtMultimedia
------------

 - Playlist (QML):
   * Added new addItems(), insertItems(), moveItem() and removeItems()
     methods.

 - CameraImageProcessing (QML):
   * Added new brightness property.

 - QCameraImageProcessing:
   * Added new brightness property.

 - QPlaylist:
   * Added new moveMedia() function.

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

tvOS
----

 - Added support for media player and camera APIs.

WinRT
-----

 - [QTBUG-42287] Added support for QAudioDeviceInfo, QAudioInput,
   QAudioOutput, and QSoundEffect.
