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

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.4

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

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.

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

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

 - QCameraInfo::availableCameras() and QtMultimedia.availableCameras (QML)
   now return an up-to-date list when a camera is added or removed from the
   system.
 - Fixed memory leak in QMediaPlaylist::load().

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

Android
-------

 - [QTBUG-37525] Fixed VideoOutput not working on some devices when used
   with a Camera.
 - [QTBUG-44383] Fixed setting a URL with special characters on a
   MediaPlayer.

iOS
---

 - [QTBUG-44790] Fixed crash when using QAudioOutput/QAudioInput on iOS 5.
 - [QTBUG-45659] Using QCamera doesn't always prompt for microphone
   permission anymore, it now only does so when using the CaptureVideo mode.

Linux
-----

 - [QTBUG-42326] Fixed regression causing software devices to not be
   included in QAudioDeviceInfo::availableDevices() when using the ALSA
   backend.

Windows
-------

 - [QTBUG-32746] QMediaPlayer doesn't resume playback anymore when seeking
   an audio media while paused.
 - [QTBUG-42648] Greatly improved QAudioDeviceInfo supported formats detection.
 - [QTBUG-44305] QAudioDeviceInfo: Fixed memory leak in availableDevices().
