Qt 5.15 introduces many new features and improvements as well as bugfixes
over the 5.14.x series. For more details, refer to the online documentation
included in this distribution. The documentation is also available online:

https://doc.qt.io/qt-5/index.html

The Qt version 5.15 series is binary compatible with the 5.14.x series.
Applications compiled for 5.14 will continue to run with 5.15.

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.

****************************************************************************
*                            Deprecation Notice                            *
****************************************************************************

 - Functions taking or returning QNetworkConfiguration have been
   deprecated.
 - QCamera::error() (the signal) is deprecated; superseded by
   errorOccurred()
 - Camera::error() signal is deprecated in favor of errorOccurred().
 - [QTBUG-75943] QMediaService and QMediaControl classes are now
   deprecated.

****************************************************************************
*                               Qt 5.15.0 Changes                          *
****************************************************************************

 - Introduced QVideoFrame::image() to return an image based on the frame.
 - [QTBUG-80431] Introduced videoSurface property to QVideoWidget,
   QGraphicsVideoItem and QDeclarativeVideoOutput.
 - [QTBUG-80431] Introduced QVideoWidget::videoSurface(),
   QGraphicsVideoItem::videoSurface(), QDeclarativeVideoOutput::videoSurface().
 - [QTBUG-32939] Introduced rendering to multiple surfaces.
 - [QTBUG-32939] Introduced MediaPlayer::videoOutput property.
 - [QTBUG-81902] Removed usage of QGL* APIs.
 - [QTBUG-82299] Added flushMode to Video QML element.

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

- GStreamer:
  * Added watching for zoom and max-zoom property changes in CameraBin.
  * Introduced reverse playback.

- AVFoundation:
  * Added watching for QAbstractVideoSurface::supportedFormatsChanged
    in the media player to enable gl if the surface starts to support it.
  * [QTBUG-69101] Introduced adoption of AVAssetResourceLoaderDelegate protocol.
  * [QTBUG-68779] Added QVideoWindowControl implementation, now it is used
    by default for QVideoWidget instead of QVideoWidgetControl.
