Qt 5.2 introduces many new features and improvements as well as bugfixes
over the 5.1.x series. 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.2

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

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.

****************************************************************************
*                           General                                        *
****************************************************************************

 - Improved ALSA implementation of the audio APIs.
 - Improved WAV support in QSoundEffect.
 - New resource policy plugin based on libresourceqt.
 - Fix QVideoSurfaceArbFpPainter mistakenly failing to start in some cases.
 - Improved QAudioRecorder implementation on Windows and Mac OS.
 - Various documentation fixes.
 - Improved audiorecorder example.
 - [QTBUG-32487] Make PulseAudio implementation of QSoundEffect more robust.
 - [QTBUG-32882] Enable QSoundEffect with loopCount of Infinite to play.
 - [QTBUG-31731] WMF and GStreamer: fixed incorrect frame startTime and endTime.
 - [QTBUG-30442] VideoOutput: take the video format's scanLineDirection into account.
 - [QTBUG-34125] Correctly clear the current media in Audio and MediaPlayer qml elements.

Qt for Android
--------------

 - New OpenSL ES plugin for low-latency audio support on Android.
 - New camera support on Android.
 - Improved video renderering with Qt Quick.
 - Camera and recording permissions are now automatically added when using QtMultimedia on Android.
 - [QTBUG-32635] Fixed media player buffering logic.
 - [QTBUG-34558] Fix two race conditions in the media player.

Qt for iOS
----------

 - New media player and basic camera support on iOS.

Qt for BlackBerry
-----------------

 - Fix setting a URL containing reserved characters on a media player.
 - Enable camera on the Playbook.
 - New QAudioRecorder support.
 - Fix video recording with BB 10.2.
 - Improve camera focus handling.
 - Fixed pixel aspect ratio for video windows.
 - [QTBUG-33739] Fix camera viewfinder.

Qt for Windows
--------------

 - WMF: emit positionChanged() signal when reaching the end of a media.
 - [QTBUG-30776] DirectShow: improve metadata support.
 - [QTBUG-33631][QTBUG-33518] WMF: allow to load media whose content doesn't match its file extension.
 - [QTBUG-33518] WMF: allow to load QRC files with QAudioDecoder.
 - [QTBUG-30435] WMF: fixed the media player failing to play some media formats.
 - [QTBUG-32360] WMF: fixed compilation with Visual Studio 2008.
 - [QTBUG-34479] DirectShow: fixed compilation with Visual Studio 2008.
 - [QTBUG-32864] WMF: fixed compilation on Windows Vista.
 - [QTBUG-30825] WMF: fixed QMediaPlayer changing to EndOfMedia status too early.
 - [QTBUG-33160] Fix QAudioOutput::setVolume() limited to 50% on 32-bit Windows.

Qt for QNX
----------

 - New camera and media player support when mmrenderer is available.

****************************************************************************
*                            Plugins                                       *
****************************************************************************

 - New QML import version QtMultimedia 5.2 adds a new autoOrientation
   property to the VideoOutput type, which allows the video output to
   always match the screen orientation.
