Qt 5.3.2 is a bug-fix release. It maintains both forward and backward
compatibility (source and binary) with Qt 5.3.0 and 5.3.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.3

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

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.

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

Android
-------

 - Fixed regression causing videos recorded with the camera not to be registered with the Android
   media scanner, making them invisible to media browsing apps.
 - Fixed crash when unloading a QCamera while a recording is active.
 - [QTBUG-39307] Setting camera parameters on the QML Camera type (e.g. digitalZoom, flashMode)
   now works correctly when set before the camera is loaded.
 - [QTBUG-40208] QAudioOutput::setNotifyInterval() can now be used when the output is active.
 - [QTBUG-40274] Fixed metadata not being loaded by the MediaPlayer when playing a remote media,
   from a qrc file or from assets.

iOS
---

 - [QTBUG-39036] Audio played using SoundEffect or QAudioOutput is now correctly muted when the
   device is set to silent mode or when the screen is locked.
 - [QTBUG-39385] The last video frame displayed in a QML VideoOutput doesn't remain on screen
   anymore after destroying the VideoOutput.

Linux
-----

 - MediaPlayer's loops property now works correctly when playing a media from a qrc file.
 - [QTBUG-29742] Fixed Qt apps hanging when audio APIs are used and PulseAudio is not running.
 - [QTBUG-39949] Fixed QMediaRecorder::setOutputLocation() not working with QUrl::fromLocalFile().

OS X
----

 - Application doesn't freeze anymore when changing the system audio output device while audio
   is being played with QSoundEffect or QAudioOutput.
 - [QTBUG-38666] Video frames are now correctly positioned on screen when playing a live stream
   in a QVideoWidget. This also applies to iOS.
 - [QTBUG-38668] Fixed crash when setting QMediaRecorder's output location to a URL containing
   nonstandard characters.

Windows
-------

 - The DirectShow camera backend has been almost entirely rewritten. It doesn't provide any new
   feature but it now works as it should.
