/****************************************************************************
**
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:FDL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Digia.  For licensing terms and
** conditions see http://qt.digia.com/licensing.  For further information
** use the contact form at http://qt.digia.com/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file.  Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: http://www.gnu.org/copyleft/fdl.html.
** $QT_END_LICENSE$
**
****************************************************************************/

/*!

\page changes.html
\title Changes in Qt Multimedia
\brief A description of changes in this version of Qt Multimedia


The Qt Multimedia module in Qt 5 combines (and replaces) two older modules, namely the
Qt Multimedia module from Qt 4.x, and Qt Multimedia Kit module from Qt Mobility.
Existing code that uses Qt Multimedia from Qt 4 can be ported with minimal effort, but
porting code that uses Qt Multimedia Kit may be a more involved process. The
\l {changed features} section highlights changes relevant to porting.

Also, note that widget-based classes, such as \l QVideoWidget, are now in a separate
module called Qt Multimedia Widgets.

\section1 New features in Qt 5.0

There are a number of new features in Qt Multimedia:
\list
\li Expanded QML API
\li In addition to the \l Video QML type, there is now the option of using \l MediaPlayer and \l VideoOutput together
\li QML \l Torch class
\li New \l QAudioRecorder class
\li Volume support for QAudioOutput and QAudioInput
\li More examples and documentation
\li QSound moved from Qt GUI to Qt Multimedia
\li QSoundEffect available to C++ now, as well as QML
\li FM Radio Data System classes and types now available (\l QRadioData, \l RadioData)
\li Various other API improvements and bugfixes
\endlist


\section1 Removed features

A number of classes or features previously offered in Qt Multimedia or Qt Multimedia Kit have
been removed.

\table 70%
    \header
        \li Removed feature
        \li Notes
    \row
        \li QMediaImageViewer
        \li This class (and related controls and services) were removed since
           their functionality was not suitable for many applications
\endtable

\section1 Changed features

A number of classes previously offered in Qt Multimedia or Qt Multimedia Kit have
changed in ways that may affect previously written code. This table highlights such changes.

\table 70%
    \header
        \li Changed feature
        \li Notes
    \row
        \li \c qmake project file changes
        \li Previously, to use Qt Multimedia Kit, the \c qmake project file must contain
           \code
           CONFIG += mobility
           MOBILITY += multimedia
           \endcode
           Now, you only need to write
           \code
           QT += multimedia
           \endcode
           Or, if you want to use the widget classes,
           \code
           QT += multimedia multimediawidgets
           \endcode
    \row
        \li Namespaces
        \li The \c QtMultimediaKit namespace has been renamed to QMultimedia. This
           affects a few enumerations, namely \c SupportEstimate, \c EncodingQuality,
           \c EncodingMode and \c AvailabilityStatus. Searching and replacing
           \c QtMultimediaKit with \c QMultimedia will greatly aid porting efforts. Metadata
           have been split off into their own namespace, QMediaMetaData.
    \row
        \li Metadata types
        \li In Qt Multimedia Kit, pre-defined metadata keys were enumerations in the
           \c QtMultimediaKit namespace. These pre-defined keys have been changed to
           string literals in the \c QMediaMetaData namespace, for consistency with
           extended keys.
    \row
        \li Metadata accessor methods
        \li In Qt Multimedia Kit, there were two different families of methods to access
           metadata. Functions such as \c QMediaObject::metaData() operated on pre-defined
           metadata using enumerated keys, while functions such as
           \c QMediaObject::extendedMetaData() operated on extended metadata using
           string keys. Qt 5 combines both families into one (e.g. QMediaObject::metaData()),
           which can operate on both pre-defined and extended metadata, using string keys.
    \row
        \li Qt Metatype registration
        \li Qt 5 registers many more classes and types with the meta-object system than before.
           If you have previously applied Q_DECLARE_METATYPE macros to any Qt Multimedia class,
           you will probably need to remove them.
    \row
        \li QSoundEffect availability
        \li The SoundEffect QML type was publically accessible in Qt Multimeda Kit,
           and now the C++ version is officially public too. If your code contains the
           previously undocumented QSoundEffect, you may need to update it.
    \row
        \li Camera controls
        \li A large number of the camera controls (QCameraImageProcessingControl,
           QCameraFocusControl, etc.) have been updated to address a number of
           design flaws. In particular, a number of discrete
           accessor methods have been collapsed into parametrized methods, and
           the ranges or data types of some parameters have been adjusted.

\endtable

*/
