Qt 5.5.1 is a bug-fix release. It maintains both forward and backward
compatibility (source and binary) with Qt 5.5.0.

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

  http://doc.qt.io/qt-5.5/

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

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

  http://bugreports.qt.io/

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

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

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

 - The environment variable QT_QUICK_NO_TEXTURE_VIDEOFRAMES can now be used
   to disable OpenGL texture based video frames when using the VideoOutput
   QML type. This can be useful in applications that wish to filter and
   process the video frames using QAbstractVideoFilter and are not GPU
   based.
 - QCamera's viewfinder capabilities functions now report correct values
   when filtering by pixel aspect ratio.
 - [QTBUG-46359] fixed crash after using moveToThread() on a QSoundEffect.
 - [QTBUG-47205] fixed VideoOutput (QML) rendering frames from the wrong
   source when having multiple VideoOutputs using different sources.
 - [QTBUG-47630] fixed Camera.supportedViewfinderFrameRateRanges() (QML)
   returning incorrect values when the argument is not of type 'size'.
 - [QTBUG-47859] fixed crash when using Radio.radioData (QML) without
   a radio backend available.

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

Android
-------

 - Fixed QVideoProbe stopping to work when using QMediaRecorder to record
   the camera.
 - Video frames passed to a QAbstractVideoFilter can now be mapped to
   system memory.

Linux
-----

 - QCameraImageProcessing::isWhiteBalanceModeSupported() now correctly
   reports if a given white balance mode is supported.
 - [QTBUG-45707] fixed QAudioRecorder::stop() sometimes failing to
   actually stop the recording.

 WinRT
-----

 - [QTBUG-46456] QCameraImageCapture: getting the list of supported
   image capture resolutions and setting the image capture resolution is
   now supported.
 - [QTBUG-47373] fixed crash occurring with some camera operations.
