unixstyle = true
}
-QDOC = $$QT.core.bins/qdoc3
+system(which qdoc) {
+ QDOC = qdoc
+} else {
+ exists($$QT.core.bins/qdoc3) {
+ QDOC = $$QT.core.bins/qdoc3
+ } else {
+ warning("No qdoc executable found.")
+ }
+}
ONLINE_CONF = $$PWD/qtmultimedia.qdocconf
DITA_CONF = $$PWD/qtmultimedia-dita.qdocconf
Qt Multimedia offers a range of audio classes, covering both low and
high level approaches to audio input, output and processing. In
-addition to traditional audio usage, the \l {QtAudioEngine}{Qt AudioEngine}
+addition to traditional audio usage, the \l {QtAudioEngine Overview}{Qt AudioEngine}
QML classes offers high level 3D positional audio for QML applications.
See that documentation for more information.
then be played with low latency when necessary. Both QSoundEffect and the
SoundEffect element have essentially the same API.
-You can adjust the number of \l {QSoundEffect::setLoops()}{loops} a sound effect is played, as well as
+You can adjust the number of \l {QSoundEffect::loops}{loops} a sound effect is played, as well as
the \l {QSoundEffect::setVolume()}{volume} (or \l {QSoundEffect::setMuted()}{muting}) of the effect.
For older, Qt 4.x based applications \l QSound is also available. Applications
There are both C++ and QML examples available.
-C++ Examples:
+\section2 C++ Examples
-\section2 Record a Sound Source
+\annotatedlist audio_examples
-\l{audiorecorder}{AudioRecorder} is a demonstration of the discovery of
-the supported devices and codecs and the use of recording functions in the
-QAudioRecorder class.
+\section2 QML Examples
-\list
- \li \l audiodevices
- \li \l audioinput
- \li \l audiooutput
- \li \l audiorecorder
- \li \l spectrum
-\endlist
-
-QML Examples:
[TBD]
\section1 Reference Documentation
-\section2 Audio Classes
+\section2 C++ Classes
\annotatedlist multimedia_audio
\section2 QML Elements
-\list
- \li \l Audio
- \li \l MediaPlayer
-\endlist
+\annotatedlist multimedia_audio_qml
*/
camera sensor, and hence the quality of the resulting image. The \l QCameraExposure
class allows you to adjust these settings. You can use this class to implement
some techniques like High Dynamic Range (HDR) photos by locking the exposure
-parameters (with \l {QCamera::lock()}), or motion blur by setting slow shutter speeds
+parameters (with \l {QCamera::searchAndLock()}), or motion blur by setting slow shutter speeds
with small apertures.
The main settings for automatic image taking are the \l {QCameraExposure::ExposureMode}{exposure mode}
a xenon or other bulb). See also the \l {Torch} QML element for an easy to use API for
torch functionality.
+\target camera_image_processing
\section3 Image processing
The QCameraImageProcessing class lets you adjust the image processing
-part of the pipeline. This includes the \l {QCameraImageCapture::WhiteBalanceMode}{white balance}
-(or color temperature), \l {QCameraImageCapture::contrast()}{contrast},
-\l {QCameraImageCapture::saturation()}{saturation}, \l {QCameraImageCapture::setSharpening()}{sharpening}
-and \l {QCameraImageCapture::setDenoisingLevel()}{denoising}. Most cameras support automatic settings
+part of the pipeline. This includes the \l {QCameraImageProcessing::WhiteBalanceMode}{white balance}
+(or color temperature), \l {QCameraImageProcessing::contrast()}{contrast},
+\l {QCameraImageProcessing::saturation()}{saturation}, \l {QCameraImageProcessing::setSharpeningLevel()}{sharpening}
+and \l {QCameraImageProcessing::setDenoisingLevel()}{denoising}. Most cameras support automatic settings
for all of these, so you shouldn't need to adjust them unless the user wants a specific setting.
If you're taking a series of images (for example, to stitch them together for
There are both C++ and QML examples available.
-C++ Examples:
-\list
- \li \l Camera
-\endlist
+\section2 C++ Examples
-QML Examples:
-\list
- \li \l declarative-camera
- \li \l qmlvideofx
-\endlist
+\annotatedlist camera_examples
+
+\section2 QML Examples
+
+\annotatedlist camera_examples_qml
\section1 Reference Documentation
-\section2 Camera Classes
+\section2 C++ Classes
\annotatedlist multimedia_camera
/*!
\page changes.html
-\title Changes in QtMultimedia
-\brief A description of changes in this version of QtMultimedia
+\title Changes in Qt Multimedia
+\brief A description of changes in this version of Qt Multimedia
-The QtMultimedia module in Qt 5 is a combination of the QtMultimedia module
-in Qt 4.x and the QtMultimediaKit module of QtMobility. It replaces both
-of these modules by combining the code. If you've previously used QtMultimedia
+The Qt Multimedia module in Qt 5 is a combination of the Qt Multimedia module
+in Qt 4.x and the Qt Multimedia Kit module of Qt Mobility. It replaces both
+of these modules by combining the code. If you've previously used Qt Multimedia
there are not too many changes required for existing code, but there are some
-larger changes required for porting code that used QtMultimediaKit (most notably
-the namespace and header file prefix has changed, and the QMake pro file changes
-needed to enable QtMultimedia).
+larger changes required for porting code that used Qt Multimedia Kit (most notably
+the namespace and header file prefix has changed, and the qmake pro file changes
+needed to enable Qt Multimedia).
One other change of note is that widget related classes (like \l QVideoWidget)
-are now in a new library (QtMultimediaWidgets).
+are now in a new library (Qt Multimedia Widgets).
\section1 New features in 5.0
-There are a number of new features in QtMultimedia 5.0:
+There are a number of new features in Qt Multimedia 5.0:
\list
\li Expanded QML API
\li New \l QAudioRecorder class
\section1 Removed features
-A number of classes or features previously offered in QtMultimedia or QtMultimediaKit have
+A number of classes or features previously offered in Qt Multimedia or Qt Multimedia Kit have
been removed.
\table 70%
\section1 Changed features
-A number of classes previously offered in QtMultimedia or QtMultimediaKit have
+A number of classes previously offered in Qt Multimedia or Qt Multimedia Kit have
changed in ways that may affect previously written code. There may be other
changes (like new features) that will not affect previously written code, and
they are documented elsewhere.
\li Changed feature
\li Notes
\row
- \li QMake .pro file changes
+ \li qmake .pro file changes
\li If you've used QtMultimediaKit in the past, you needed to put
\code
CONFIG += mobility
if you need to use the widget classes.
\row
\li Namespace changes
- \li For QtMultimediaKit the majority of the classes were in the
+ \li For Qt Multimedia Kit the majority of the classes were in the
normal Qt namespace (usually nothing, unless built specially). There
- was a QtMultimediaKit namespace for several enumerations. This namespace
- has now changed to QtMultimedia, so if you've used one of the
+ was a Qt Multimedia Kit namespace for several enumerations. This namespace
+ has now changed to Qt Multimedia, so if you've used one of the
\c SupportEstimate, \c EncodingQuality, \c EncodingMode or \c AvailabilityError
enumerations you'll need to change your code. In fact, running a global
- search and replace on QtMultimediaKit (to replace it with QtMultimedia) will
+ search and replace on \c QtMultimediaKit (to replace it with \c QtMultimedia) will
go a long way with porting your code.
\row
\li Meta-data enumeration changes
- \li In QtMultimediaKit the available meta-data keys were in an enumeration
- in the QtMultimediaKit namespace. These meta-data keys have been changed
- to string literals in the QtMultimedia::MetaData namespace - generally your
+ \li In Qt Multimedia Kit the available meta-data keys were in an enumeration
+ in the \c QtMultimediaKit namespace. These meta-data keys have been changed
+ to string literals in the \c {QtMultimedia::MetaData} namespace - generally your
source code will mostly be compatible unless you have created variables or
- parameters with the QtMultimedia::MetaData type - you should replace these
- with QStrings.
+ parameters with the \c {QtMultimedia::MetaData} type - you should replace these
+ with \c QString.
\row
\li Meta-data method changes
- \li In QtMultimediaKit the available meta-data was split between methods to
+ \li In Qt Multimedia Kit the available meta-data was split between methods to
access standard, pre-defined keys, and methods to access extensible free
form key meta-data. These have been combined into a single method to
access meta-data given a string key, and a list of pre-defined keys. If
to change your code to combine the standard and extended metadata methods.
\row
\li Qt Metatype registration
- \li In QtMultimedia 5.0 we've tried to make sure that we register any classes
+ \li In Qt Multimedia 5.0 we've tried to make sure that we register any classes
or types that would be useful to use in cross process signals or in
QVariants. If you've previously added Q_DECLARE_METATYPE macros for any
- QtMultimedia class you will probably need to remove them.
+ Qt Multimedia class you will probably need to remove them.
\row
\li Video QML element
\li If you've previously used the Video QML element you may be excited
together for more flexible and advanced use cases.
\row
\li QSoundEffect
- \li The SoundEffect QML element was public and accessible in QtMultimedaKit,
+ \li The SoundEffect QML element was public and accessible in Qt Multimeda Kit,
and now the C++ version is also available. If you managed to use the
private class previously, you'll need to update your code.
\row
/*!
\example audiodevices
\title Audio Devices Example
-
+ \ingroup audio_examples
+ \brief The Audio Devices example shows the application of the audio devices APIs
This example shows how to create a simple application to list and test
/*!
\example audioinput
\title Audio Input Example
-
+ \ingroup audio_examples
+ \brief The Audio Input Example shows the use of the QAudioInput class.
*/
/*!
\example audiooutput
\title Audio Output Example
-
+ \ingroup audio_examples
+ \brief The Audio Output Example show the use of the QAudioOutput API.
/*!
\example audiorecorder
\title Audio Recorder Example
+ \ingroup audio_examples
+ \brief The Audio Recorder Example shows how to create a simple audio recorder.
-
-
- This example shows how to create a simple audio recorder using the Qt
- Multimedia API.
+ It demonstrates the discovery of the supported devices and codecs and the use
+ of recording functions in the QAudioRecorder class.
We display a window for the user to select the appropriate audio input,
codec, container, and sample rate. Allow a setting of either quality or
\example camera
\title Camera Example
+\ingroup camera_examples
\brief The Camera Example shows how to use the API to capture a still image
or video.
/*!
\example declarative-camera
\title QML Camera Example
+\ingroup camera_examples_qml
\brief The Camera Example shows how to use the API to capture a still image
or video.
\e {CaptureControls.qml}.
In \e {declarative-camera.qml} the Camera element is initialized with an id
-of \e {camera }, a photo preview is setup, states are implemented for image
+of \e {camera}, a photo preview is setup, states are implemented for image
preview or capture and a CaptureControls element is initialized. The initial
\e state is \e PhotoCapture. The camera element includes a handler, \e onImageCaptured,
for the \l {imageCaptured} signal. The handler sets up the application to process
/*!
\example player
\title Media Player Example
+ \ingroup video_examples
This example creates a simple multimedia player. We can play audio and
/*!
\example video/qmlvideo
\title QML Video Example
+\ingroup video_examples_qml
\brief The QML Video Example demonstrates the various manipulations (move;
resize; rotate; change aspect ratio) which can be applied to QML \l{VideoOutput}
/*!
\example video/qmlvideofx
\title QML Video Shader Effects Example
+\ingroup video_examples_qml
+\ingroup camera_examples_qml
\brief The QML Video Shader Effects Example shows how the \l {ShaderEffect}
-element can be used to apply postprocessing effects, expressed in GLSL, to QML
-\l {VideoOutput} items.
+element can be used to apply postprocessing effects, expressed in \c GLSL, to video
+and camera viewfinder content.
\section1 Overview
/*!
\example spectrum
\title Spectrum Example
-
+ \ingroup audio_examples
+ \brief The Spectrum Example uses a combination multimedia APIs to process microphone input.
*/
--- /dev/null
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** GNU Free Documentation License
+** 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.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms
+** and conditions contained in a signed written agreement between you
+** and Nokia.
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+\example videographicsitem
+\title Video Graphics Item Example
+\ingroup video_examples
+
+\brief This example demonstrates how to make a simple video player using the QMediaPlayer
+and QVideoGraphicsItem classes in the Graphics View framework.
+
+*/
--- /dev/null
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** GNU Free Documentation License
+** 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.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms
+** and conditions contained in a signed written agreement between you
+** and Nokia.
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+\example videowidget
+\title Video Widget Example
+\ingroup video_examples
+
+\brief This example demonstrates how to make a simple video player using the QMediaPlayer
+and QVideoWidget classes
+
+*/
/*!
\page multimediaoverview.html
-\title Qt Multimedia
+\title Multimedia Overview
\brief A set of APIs for working with audio, video, radio and camera devices.
\ingroup technology-apis
-\section1 Multimedia Overview
+\section1 Overview
\section2 Features
\li QMediaPlayer, QAbstractVideoSurface, QVideoFrame
\row
\li Listening to the radio
- \li \l radio, \l declarative-radio
+ \li \l declarative-radio
\li \l Radio, \l RadioData
\li QRadioTuner, QRadioData
\row
\li Accessing camera viewfinder
- \li \l camera, \l declarative-camera
+ \li \l {Camera Example}{camera}, \l declarative-camera
\li \l Camera, \l VideoOutput
\li QCamera, QVideoWidget, QGraphicsVideoItem
\row
\li QCamera, QAbstractVideoSurface, QVideoFrame
\row
\li Capturing photos
- \li \l camera, \l declarative-camera
+ \li \l {Camera Example}{camera}, \l declarative-camera
\li \l Camera
\li QCamera, QCameraImageCapture
\row
\li Capturing movies
- \li \l camera, \l declarative-camera
+ \li \l {Camera Example}{camera}, \l declarative-camera
\li \l Camera
\li QCamera, QMediaRecorder
\endtable
-\section1 Multimedia Limitations
+\section1 Limitations
In many cases the Qt Multimedia APIs build upon the multimedia framework of the underlying system.
This can mean that support for various codec or containers can vary between machines,
-depending on what the end user has installed. See \l {Multimedia Platform Support} for more
-information on what frameworks are used and what this can mean.
+depending on what the end user has installed.
\section1 Advanced Usage
\section1 Changes from previous versions
-If you've previously used QtMultimedia in Qt 4.x, or used QtMultimediaKit in QtMobility, please see
-\l {Changes in QtMultimedia} for more information on what has changed, and what you might need to
+If you've previously used Qt Multimedia in Qt 4.x, or used Qt Multimedia Kit in Qt Mobility, please see
+\l {Changes in Qt Multimedia} for more information on what has changed, and what you might need to
change when porting code.
\section1 Reference Documentation
/*!
+\title Multimedia Backend Development
\page multimediabackend.html
\brief Information for implementing a new multimedia backend.
\ingroup mobility
\tableofcontents
-\section1 Multimedia Backend Development
+\section1 Overview
-In some cases the available cross-platform Multimedia APIs or implementations are not sufficient,
-or not immediately available on a certain platform. In some cases the multimedia
-implementation on a platform might expose certain extra properties or functionality
-that other platforms do not, or a finer degree of control might be possible. For these
-cases, it is possible to use extended controls directly.
+A multimedia backend provides the glue between platform specific libraries, and
+Qt Multimedia. In some cases the available cross-platform Multimedia APIs or
+implementations are not sufficient, or not immediately available on a certain
+platform. Alternatively, the multimedia implementation on a platform might expose
+certain extra properties or functionality that other platforms do not, or a finer
+degree of control might be possible. For these cases, it is possible to use
+extended controls directly.
In addition, if you plan to port the Qt Multimedia APIs to a new platform, you do
this by implementing certain control and service classes, as detailed below.
\section1 Extending the API
-For the developer who wishes to extend the functionality of the Multimedia
-classes there are several classes of particular importance. The default
-classes are QMediaService, QMediaServiceProvider and QMediaControl.
+For the developer who wishes to extend the functionality of the Qt Multimedia
+classes there are several classes of particular importance. The classes
+providing default functionality are QMediaService, QMediaServiceProvider and
+QMediaControl.
-Basically, the idea is that to use the Multimedia API you would use these
-three classes or classes derived from them as follows
+to extend the Multimedia API you would use the following three classes or
+classes derived from them.
\list
- \li \l QMediaServiceProvider is used by the top level client class to request a service. The top level class knowing what kind of service it needs.
+ \li \l QMediaServiceProvider is used by the top level client class to
+ request a service. The top level class knowing what kind of service it needs.
- \li \l QMediaService provides a service and when asked by the top level object, say a component, will return a QMediaControl object.
+ \li \l QMediaService provides a service and when asked by the top level
+ object, say a component, will return a QMediaControl object.
\li \l QMediaControl allows the control of the service using a known interface.
\endlist
The MyPlayer object calls MyServiceProvider::requestService() to get an
instance of MyMediaService. Then the MyPlayer object calls this service
object it has just received and calling \l {QMediaService::requestControl()}{requestControl()}
-it will receive the control object derived from QMediaControl. Now we have
-all the parts necessary for our media application. We have the service
+it will receive the control object derived from QMediaControl.
+
+Now we have all the parts necessary for our media application. We have the service
provider, the service it provides and the control used to manipulate the
service. Since our MyPlayer object has instances of the service and its
control then it would be possible for these to be used by associated classes
that could do additional actions, perhaps with their own control since the
-parameter to requestControl() is a c-type string, \e {const char *}, for the
-interface.
-
+parameter to requestControl() is a zero-terminated string, \e {const char *},
+for the interface.
\section2 Adding a Media Service Provider
\li Signal
\li Description
\row
- \li \l{Audio::onStarted}{onStarted}
- \li Called when playback has been started.
- \row
- \li \l{Audio::onResumed}{onResumed}
- \li Called when playback is resumed from the paused state.
+ \li \l{Audio::playing}{playing}
+ \li Called when playback is started, or when resumed from paused state.
\row
- \li \l{Audio::onPaused}{onPaused}
+ \li \l{Audio::paused}{paused}
\li Called when playback is paused.
\row
- \li \l{Audio::onStopped}{onStopped}
+ \li \l{Audio::stopped}{stopped}
\li Called when playback is stopped.
\row
- \li \l{Audio::onError}{onError}
+ \li \l{Audio::error}{error}
\li Called when the specified error occurs.
\endtable
\section2 Camera
- The \l Camera element in the plugin enables still image capture using
- QML. The element has methods for starting and stopping the camera, capturing
- the image, camera settings and many signals indicating critical events.
-
- The follow code is taken from the \l {QML Camera Example}. This snippet
- shows the setting up of the \l Camera element
-
- \qml
-
- Camera {
- id: camera
- x : 0
- y : 0
- width : 640
- height : 480
- focus : visible //to receive focus and capture key events
- //captureResolution : "640x480"
-
- flashMode: stillControls.flashMode
- whiteBalanceMode: stillControls.whiteBalance
- exposureCompensation: stillControls.exposureCompensation
-
- onImageCaptured : {
- photoPreview.source = preview
- stillControls.previewAvailable = true
- cameraUI.state = "PhotoPreview"
- }
- }
-
- \endqml
-
- Notice that the slot for the \l {Camera::imageCaptured()}{imageCaptured()}
- signal is implemented in \e onImageCaptured. However, this code only
- changes some state information to allow previewing.
-
- The capture call itself is part of the implementation of the button
- that the user presses to take the image. It uses a call to
- \l {Camera::captureImage()}{captureImage()}:
-
- \qml
-
- CameraButton {
- text: "Capture"
- onClicked: camera.captureImage()
- }
-
- \endqml
+ The \l Camera element enables still image and video capture using
+ QML. The element has a number of properties that help setting it up.
+ The details of using the Camera element are described in further details
+ in the \l {Camera Overview} and in the corresponding reference documentation.
\section2 Video
For a complete description of this element, see \l SoundEffect
- \section2 Camera
-
- Adding access to the camera viewfinder, and capturing images is possible by using the \l Camera element. You can adjust capture settings
- including white balance, exposure compensation and flash mode, and control zoom.
-
- \qml
- import QtQuick 2.0
- import QtMultimedia 5.0
-
- Camera {
- focus : visible // to receive focus and capture key events when visible
-
- flashMode: Camera.FlashRedEyeReduction
- whiteBalanceMode: Camera.WhiteBalanceFlash
- exposureCompensation: -1.0
-
- onImageCaptured : {
- photoPreview.source = preview // Show the preview in an Image element
- }
-
- }
- \endqml
-
- For a complete description of this element, see \l Camera, and look at the \l {declarative-camera}{QML Camera Example}.
-
\section1 Multimedia QML Elements
\annotatedlist multimedia_qml
/*!
\qmlmodule QtMultimedia 5
-\title QtMultimedia 5.0
-\brief The QML import for QtMultimedia
+\title QML import for multimedia
+\brief The import for the QML elements in the Qt Multimedia module
\section1 Overview
\section1 Reference documentation
-\section2 Radio C++ Classes
+\section2 C++ Classes
\annotatedlist multimedia_radio
\section2 QML Elements
-\list
- \li \l Radio
- \li \l RadioData
-\endlist
+\annotatedlist multimedia_radio_qml
*/
#include "qvideowindowcontrol.h"
#include "qgraphicsvideoitem.h"
#include "qmediaplaylist.h"
+#include "qvideosurfaceformat.h"
#include <QFormLayout>
#include <QGraphicsView>
+//! [Derived Surface]
+class MyVideoSurface : public QAbstractVideoSurface
+{
+ QList<QVideoFrame::PixelFormat> supportedPixelFormats(
+ QAbstractVideoBuffer::HandleType handleType = QAbstractVideoBuffer::NoHandle) const
+ {
+ Q_UNUSED(handleType);
+
+ // Return the formats you will support
+ return QList<QVideoFrame::PixelFormat>() << QVideoFrame::Format_RGB565;
+ }
+
+ bool present(const QVideoFrame &frame)
+ {
+ Q_UNUSED(frame);
+ // Handle the frame and do your processing
+
+ return true;
+ }
+};
+//! [Derived Surface]
+
+//! [Video producer]
+class MyVideoProducer : public QObject
+{
+ Q_OBJECT
+ Q_PROPERTY(QAbstractVideoSurface *videoSurface WRITE setVideoSurface)
+
+public:
+ void setVideoSurface(QAbstractVideoSurface *surface)
+ {
+ m_surface = surface;
+ m_surface->start(m_format);
+ }
+
+ // ...
+
+public slots:
+ void onNewVideoContentReceived(const QVideoFrame &frame)
+ {
+ if (m_surface)
+ m_surface->present(frame);
+ }
+
+private:
+ QAbstractVideoSurface *m_surface;
+ QVideoSurfaceFormat m_format;
+};
+
+//! [Video producer]
+
+
class VideoExample : public QObject {
Q_OBJECT
public:
playlist->setCurrentIndex(1);
player->play();
//! [Video widget]
+
+ player->stop();
+
+ //! [Setting surface in player]
+ player->setVideoOutput(myVideoSurface);
+ //! [Setting surface in player]
}
void VideoExample::VideoWidgetControl()
You can use the \l VideoOutput QML element to render content that is
provided by either a \l MediaPlayer element or a \l Camera element.
The VideoOutput element is a visual element that can be transformed
-or acted upon by shaders (as the \l {qmlvideofx} example shows), while
+or acted upon by shaders (as the \l {QML Video Shader Effects Example} shows), while
all media decoding and playback control is handled by the MediaPlayer
element.
contents to be mapped into system memory for manipulation or
processing, while deriving a class from \l QAbstractVideoSurface
allows you to receive these frames from \l QMediaPlayer and
-\l QCamera. Several of the built in Qt classes offer this functionality
+\l QCamera.
+
+\snippet doc/src/snippets/multimedia-snippets/video.cpp Derived Surface
+
+and with an instance of this surface, \c myVideoSurface, you can set
+the surface as the \l {QMediaPlayer::setVideoOutput()}{video output} for QMediaPlayer.
+
+\snippet doc/src/snippets/multimedia-snippets/video.cpp Setting surface in player
+
+Several of the built in Qt classes offer this functionality
as well, so if you decode video in your application, you can present
it to classes that offer a \l QVideoRendererControl class, and in QML
you can set a custom object for the source of the \l VideoOutput element
with a QMediaObject derived class that implements the \l QVideoRendererControl
interface.
+The following snippet shows a class that has a writable \c videoSurface property
+and receives frames through a public slot \c onNewVideoContentReceived(). These
+frames are then presented on the surface set in \c setVideoSurface().
+
+\snippet doc/src/snippets/multimedia-snippets/video.cpp Video producer
+
\section2 Recording video
You can use the \l QMediaRecorder class in conjunction with other
classes to record video to disk. Primarily this is used with
There are both C++ and QML examples available.
-C++ Examples:
-\list
- \li \l video
- \li \l videographicsitem
- \li \l videowidget
-\endlist
+\section2 C++ Examples
+
+\annotatedlist video_examples
+
+\section2 QML Examples
-QML Examples:
-\list
- \li \l qmlvideo
- \li \l qmlvideofx
-\endlist
+\annotatedlist video_examples_qml
\section1 Reference Documentation
-\section2 Video Classes
+\section2 C++ Classes
\annotatedlist multimedia_video
\section2 QML Elements
-\list
- \li \l MediaPlayer
- \li \l VideoOutput
- \li \l Video
-\endlist
+\annotatedlist multimedia_video_qml
*/
return m_soundBuffer;
}
+/*!
+ \qmlproperty bool QtAudioEngine1::AudioSample::loaded
+
+ This property holds the load status of the audio sample.
+*/
+
+
/*!
\qmlsignal QtAudioEngine1::AudioSample::onLoadedChanged()
}
/*!
- \qmlproperty vector3d QtAudioEngine1::SoundInstance::gain
+ \qmlproperty vector3d QtAudioEngine1::SoundInstance::pitch
This property holds the pitch adjustment which will be used to modulate the audio pitch
from this SoundInstance.
\qmlclass Video
\inherits Item
\ingroup multimedia_qml
+ \ingroup multimedia_video_qml
\brief A convenience element for showing a specified video
The \c Video element is a convenience element combining the functionality
\inqmlmodule QtMultimedia 5
\ingroup multimedia_qml
+ \ingroup multimedia_audio_qml
+ \ingroup multimedia_video_qml
This element is part of the \b{QtMultimedia 5.0} module.
\inqmlmodule QtMultimedia 5
\ingroup multimedia_qml
+ \ingroup multimedia_audio_qml
This element is part of the \b{QtMultimedia 5.0} module.
*/
/*!
- \qmlsignal QtMultimedia5::Audio::onError(error, errorString)
+ \qmlsignal QtMultimedia5::Audio::error(error, errorString)
This handler is called when an \l {QMediaPlayer::Error}{error} has
occurred. The errorString parameter may contain more detailed
Basic camera state management, error reporting, and simple zoom properties are
available in the Camera element itself. For integration with C++ code, the
- \l mediaObject property allows you to access the standard QtMultimedia camera
- controls.
+ \l mediaObject property allows you to
+ access the standard QtMultimedia camera controls.
Many of the camera settings may take some time to apply, and might be limited
to certain supported values depending on the hardware. Several camera settings
m_camera->focus()->zoomTo(opticalZoom(), value);
}
+/*!
+ \qmlproperty variant QtMultimedia5::Camera::mediaObject
+
+ The media object for the Camera element.
+*/
/*!
\qmlsignal QtMultimedia5::Camera::onError(error, errorString)
are available or saved to disk. You can adjust the resolution of the captured
image and where the saved image should go.
- This element is a child of a Camera element (as the
- \l {Camera::imageCapture}{imageCapture} property) and cannot be created
- directly.
+ This element is a child of a \l Camera element (as the \c imageCapture property)
+ and cannot be created directly.
\qml
import QtQuick 2.0
like aperture and shutter speed, metering and ISO speed.
It should not be constructed separately but provided by the
- Camera element's \l {Camera::exposure} {exposure} property.
+ \l Camera element's \c exposure property.
\qml
import QtQuick 2.0
\l {Torch}{torch} hardware).
It should not be constructed separately but provided by the
- Camera element's \l {Camera::flash}{flash} property.
+ \l Camera element's \c flash property.
\qml
import QtQuick 2.0
camera frame that are selected for autofocusing.
It is not constructed separately but is provided by the
- Camera element's \l {Camera::focus}{focus} property.
+ \l Camera element's \c focus property.
\qml
import QtQuick 2.0
}
/*!
- \qmlmethod bool QtMultimedia5::CameraFocus::isFocusModeSupported(mode)
- \fn QDeclarativeCameraFocus::isFocusPointModeSupported(QDeclarativeCamera::FocusMode mode)
+ \qmlmethod bool QtMultimedia5::CameraFocus::isFocusModeSupported(mode) const
+ \fn QDeclarativeCameraFocus::isFocusModeSupported(QDeclarativeCamera::FocusMode mode) const
Returns true if the supplied \a mode is a supported focus mode, and
false otherwise.
}
/*!
- \qmlmethod bool QtMultimedia5::CameraFocus::isFocusPointModeSupported(mode)
- \fn QDeclarativeCameraFocus::isFocusPointModeSupported(QDeclarativeCamera::FocusPointMode mode)
+ \qmlmethod bool QtMultimedia5::CameraFocus::isFocusPointModeSupported(mode) const
+ \fn QDeclarativeCameraFocus::isFocusPointModeSupported(QDeclarativeCamera::FocusPointMode mode) const
Returns true if the supplied \a mode is a supported focus point mode, and
false otherwise.
QAbstractListModel *focusZones() const;
Q_INVOKABLE bool isFocusModeSupported(QDeclarativeCamera::FocusMode mode) const;
- Q_INVOKABLE bool isFocusPointModeSupported(QDeclarativeCamera::FocusPointMode) const;
+ Q_INVOKABLE bool isFocusPointModeSupported(QDeclarativeCamera::FocusPointMode mode) const;
public Q_SLOTS:
void setFocusMode(QDeclarativeCamera::FocusMode);
done by the camera middleware, including white balance adjustments,
contrast, saturation, sharpening, and denoising
- It is not constructed separately but is provided by the Camera element's
- \l {Camera::imageProcessing}{imageProcessing} property.
+ It is not constructed separately but is provided by the \a Camera element's
+ \c imageProcessing property.
\qml
import QtQuick 2.0
This element allows recording camera streams to files, and adjusting recording
settings and metadata for videos.
- This element is a child of a Camera element (as the
- \l {Camera::videoRecorder}{videoRecorder} property) and cannot be created
- directly.
+ This element is a child of a \l Camera element (as the \c videoRecorder property)
+ and cannot be created directly.
\qml
Camera {
The audio codec to use for recording video.
Typically this is something like \c aac or \c amr-wb.
- \sa whiteBalanceMode
+ \sa {QtMultimedia5::CameraImageProcessing::whiteBalanceMode}{whileBalanceMode}
*/
QString QDeclarativeCameraRecorder::audioCodec() const
{
\inqmlmodule QtMultimedia 5
\brief The Radio element allows you to access radio functionality from a QML application.
\ingroup multimedia_qml
+ \ingroup multimedia_radio_qml
\inherits Item
This element is part of the \b{QtMultimedia 5.0} module.
\inqmlmodule QtMultimedia 5
\brief The RadioData element allows you to access RDS data from a QML application.
\ingroup multimedia_qml
+ \ingroup multimedia_radio_qml
\inherits Item
This element is part of the \b{QtMultimedia 5.0} module.
\brief The VideoOutput element allows you to render video or camera viewfinder.
\ingroup multimedia_qml
+ \ingroup multimedia_video_qml
\inqmlmodule QtMultimedia 5
This element is part of the \b{QtMultimedia 5.0} module.
/*!
\class QAudioBuffer
- \brief A class that represents a collection of audio samples.
\inmodule QtMultimedia
\ingroup multimedia
\ingroup multimedia_audio
-
- The QAudioBuffer class represents a collection of audio samples,
- with a specific format and sample rate.
+ \brief The QAudioBuffer class represents a collection of audio samples with a specific format and sample rate.
*/
// ^ Mostly useful with probe or decoder
};
/*!
- Creates a new QAudioProbe class. After setting the
+ Creates a new QAudioProbe class with a \a parent. After setting the
source to monitor with \l setSource(), the \l audioBufferProbed()
signal will be emitted when audio buffers are flowing in the
source media object.
Returns true on success.
- If \a source is zero, this probe will be deactivated
- and this function will return true.
+ If there is no mediaObject associated with \a mediaRecorder, or if it is
+ zero, this probe will be deactivated and this function wil return true.
If the media recorder instance does not support monitoring
audio, this function will return false.
/*!
\fn QAudioProbe::audioBufferProbed(const QAudioBuffer &buffer)
- This signal should be emitted when an audio buffer is processed in the
+ This signal should be emitted when an audio \a buffer is processed in the
media service.
*/
QAudioSystemPlugin::~QAudioSystemPlugin()
{}
-/*!
- \fn QStringList QAudioSystemPlugin::keys() const
- Returns the list of device identifiers this plugin supports.
-*/
-
/*!
\fn QList<QByteArray> QAudioSystemPlugin::availableDevices(QAudio::Mode mode) const
Returns a list of available audio devices for \a mode
\sa QSoundEffect
*/
+/*!
+ \enum QSound::Loop
+
+ \value Infinite Can be used as a parameter to \l setLoops() to loop infinitely.
+*/
+
/*!
Plays the sound stored in the file specified by the given \a filename.
\inmodule QtMultimedia
\ingroup multimedia_qml
+ \ingroup multimedia_audio_qml
\inqmlmodule QtMultimedia 5
This element is part of the \b{QtMultimedia 5.0} module.
*/
+/*!
+ \enum QSoundEffect::Loop
+
+ \value Infinite Used as a parameter to \l loops for infinite looping
+*/
+
+/*!
+ \enum QSoundEffect::Status
+
+ \value Null No source has been set or the source is null.
+ \value Loading The soundeffect is trying to load the source.
+ \value Ready The source is loaded and ready for play.
+ \value Error An error occurred during operation, such as failure of loading the source.
+
+*/
+
/*!
\qmlproperty url QtMultimedia5::SoundEffect::source
\property QSoundEffect::source
/*!
\qmlproperty bool QtMultimedia5::SoundEffect::playing
- \property QSoundEffect::source
+ \property QSoundEffect::playing
This property indicates if the soundeffect is playing or not.
*/
/*!
- \qmlproperty int QtMultimedia5::SoundEffect::status
+ \qmlproperty enumeration QtMultimedia5::SoundEffect::status
This property indicates the following status of the soundeffect.
- Null: no source has been set or is null.
- Loading: the soundeffect is trying to load the source.
- Ready: the source is loaded and ready for play.
- Error: some error happened during operation, such as failure of loading the source.
+ \table
+ \header \li Value \li Description
+ \row \li SoundEffect.Null \li No source has been set or the source is null.
+ \row \li SoundEffect.Loading \li The soundeffect is trying to load the source.
+ \row \li SoundEffect.Ready \li The source is loaded and ready for play.
+ \row \li SoundEffect.Error \li An error occurred during operation, such as failure of loading the source.
+ \endtable
*/
/*!
d->release();
}
+/*!
+ \fn QSoundEffect::supportedMimeTypes()
+
+ Returns a list of the supported mime types for this sound effect.
+*/
QStringList QSoundEffect::supportedMimeTypes()
{
return QSoundEffectPrivate::supportedMimeTypes();
return d->loopCount();
}
+/*!
+ \qmlproperty int QtMultimedia5::SoundEffect::loopsRemaining
+
+ This property contains the number of loops remaining before the sound effect
+ stops by itself, or SoundEffect.Infinite if that's what has been set in \l loops.
+*/
+/*!
+ \property QSoundEffect::loopsRemaining
+
+ This property contains the number of loops remaining before the sound effect
+ stops by itself, or QSoundEffect::Infinite if that's what has been set in \l loops.
+*/
int QSoundEffect::loopsRemaining() const
{
return d->loopsRemaining();
d->setMuted(muted);
}
+/*!
+ \qmlmethod bool QtMultimedia5::SoundEffect::isLoaded()
+ \fn QSoundEffect::isLoaded() const
+
+ Returns whether the sound effect has finished loading the \l source.
+*/
bool QSoundEffect::isLoaded() const
{
return d->isLoaded();
}
/*!
- \qmlmethod QtMultimedia5::SoundEffect::play()
+ \qmlmethod QtMultimedia5::SoundEffect::play()
- Start playback of the sound effect, looping the effect for the number of
- times as specified in the loops property.
+ Start playback of the sound effect, looping the effect for the number of
+ times as specified in the loops property.
- This is the default method for SoundEffect.
+ This is the default method for SoundEffect.
- \snippet doc/src/snippets/multimedia-snippets/soundeffect.qml play sound on click
+ \snippet doc/src/snippets/multimedia-snippets/soundeffect.qml play sound on click
+*/
+/*!
+ \fn QSoundEffect::play()
+
+ Start playback of the sound effect, looping the effect for the number of
+ times as specified in the loops property.
*/
void QSoundEffect::play()
{
return d->isPlaying();
}
-/*!
- \enum QSoundEffect::Status
- \value Null This sound effect does not have a source set.
- \value Loading The source is being loaded
- \value Ready The source has been loaded, and can be played.
- \value Error An error occurred while loading the source or during playback.
-*/
-
/*!
Returns the current status of this sound effect.
*/
/*!
\qmlmethod QtMultimedia5::SoundEffect::stop()
+ \fn QSoundEffect::stop()
Stop current playback.
+
Note that if the backend is PulseAudio, due to the limitation of the underlying API,
tis stop will only prevent next looping but will not be able to stop current playback immediately.
/*!
- Construct a QCamera from service \a provider and \a parent.
+ Construct a QCamera with a \a parent.
*/
QCamera::QCamera(QObject *parent):
}
/*!
- \property QCameraExposure::spotMeteringPoint
+ \fn QCameraExposure::spotMeteringPoint() const
- When supported, this property is the (normalized) position of the point of the image
+ When supported, the spot metering point is the (normalized) position of the point of the image
where exposure metering will be performed. This is typically used to indicate an
"interesting" area of the image that should be exposed properly.
which is typically the default spot metering point.
The spot metering point is only used with spot metering mode.
- */
+
+ \sa setSpotMeteringPoint()
+*/
QPointF QCameraExposure::spotMeteringPoint() const
{
return d_func()->exposureControl ? d_func()->exposureControl->actualValue(QCameraExposureControl::SpotMeteringPoint).toPointF() : QPointF();
}
+/*!
+ \fn QCameraExposure::setSpotMeteringPoint(const QPointF &point)
+
+ Allows setting the spot metering point to \a point.
+
+ \sa spotMeteringPoint()
+*/
+
void QCameraExposure::setSpotMeteringPoint(const QPointF &point)
{
if (d_func()->exposureControl)
\sa QCamera
*/
+/*!
+ \enum QCameraImageCapture::CaptureDestination
+
+ \value CaptureToFile Capture the image to a file.
+ \value CaptureToBuffer Capture the image to a buffer for further processing.
+*/
+
namespace
{
class MediaRecorderRegisterMetaTypes
}
/*!
- Sets the buffer image capture format to be used.
+ Sets the buffer image capture \a format to be used.
- \sa BufferFormat() supportedBufferFormats() captureDestination()
+ \sa bufferFormat() supportedBufferFormats() captureDestination()
*/
void QCameraImageCapture::setBufferFormat(const QVideoFrame::PixelFormat format)
{
/*!
\fn QCameraImageCapture::imageMetadataAvailable(int id, const QString &key, const QVariant &value)
- Signals that a metadata for an image with request \a id is available.
+ Signals that a metadata for an image with request \a id is available. Also
+ includes the \a key and \a value of the metadata.
This signal is emitted between imageExposed and imageSaved signals.
*/
QList<QVideoFrame::PixelFormat> supportedBufferFormats() const;
QVideoFrame::PixelFormat bufferFormat() const;
- void setBufferFormat(QVideoFrame::PixelFormat format);
+ void setBufferFormat(const QVideoFrame::PixelFormat format);
bool isCaptureDestinationSupported(CaptureDestinations destination) const;
CaptureDestinations captureDestination() const;
In some cases changing these settings may result in a longer delay
before an image is ready.
- For more information on image processing of camera frames, see \l {Camera Image Processing}.
+ For more information on image processing of camera frames, see \l {camera_image_processing}{Camera Image Processing}.
\sa QCameraImageProcessingControl
*/
*/
/*!
- \fn QAudioDecoderControl::audioFormat()
+ \fn QAudioDecoderControl::audioFormat() const
Returns the current audio format of the decoded stream.
Any buffers returned should have this format.
*/
/*!
- \fn QAudioDecoderControl::position()
+ \fn QAudioDecoderControl::position() const
Returns position (in milliseconds) of the last buffer read from
the decoder or -1 if no buffers have been read.
*/
/*!
- \fn QAudioDecoderControl::duration()
+ \fn QAudioDecoderControl::duration() const
Returns total duration (in milliseconds) of the audio stream
or -1 if not available.
*/
/*!
\fn QCameraCaptureDestinationControl::captureDestination() const
- Returns the current capture \a destination. The default destination is QCameraImageCapture::CaptureToFile.
+ Returns the current capture destination. The default destination is QCameraImageCapture::CaptureToFile.
*/
/*!
*/
/*!
- \fn bool QCameraFeedbackControl::setEventFeedbackEnabled(EventType event, bool enabled) const
+ \fn bool QCameraFeedbackControl::setEventFeedbackEnabled(EventType event, bool enabled)
Turns on feedback for the specific \a event if \a enabled is true, otherwise disables the
feedback. Returns true if the feedback could be modified, or false otherwise (e.g. this feedback
/*!
- \fn void QCameraFeedbackControl::resetEventFeedback(EventType event) const
+ \fn void QCameraFeedbackControl::resetEventFeedback(EventType event)
Restores the feedback setting for this \a event to its default setting.
*/
/*!
- \fn bool setEventFeedbackSound(EventType event, const QString &filePath)
+ \fn bool QCameraFeedbackControl::setEventFeedbackSound(EventType event, const QString &filePath)
When the given \a event occurs, the sound effect referenced by \a filePath
will be played instead of the default sound.
/*!
\fn void QCameraFocusControl::focusModeChanged(QCameraFocus::FocusModes mode)
- Signal is emitted when the focus mode is chaged,
+ Signal is emitted when the focus \a mode is changed,
usually in result of QCameraFocusControl::setFocusMode call or capture mode changes.
- \sa QCameraFocusControl::focusMode QCameraFocusControl::setFocusMode
+ \sa QCameraFocusControl::focusMode() QCameraFocusControl::setFocusMode()
*/
/*!
\fn void QCameraFocusControl::focusPointModeChanged(QCameraFocus::FocusPointMode mode)
- Signal is emitted when the focus point mode is chaged,
+ Signal is emitted when the focus point \a mode is changed,
usually in result of QCameraFocusControl::setFocusPointMode call or capture mode changes.
- \sa QCameraFocusControl::focusPointMode QCameraFocusControl::setFocusPointMode
+ \sa QCameraFocusControl::focusPointMode() QCameraFocusControl::setFocusPointMode()
*/
/*!
\fn void QCameraFocusControl::customFocusPointChanged(const QPointF &point)
- Signal is emitted when the custom focus point is changed.
+ Signal is emitted when the custom focus \a point is changed.
- \sa QCameraFocusControl::customFocusPoint QCameraFocusControl::setCustomFocusPoint
+ \sa QCameraFocusControl::customFocusPoint() QCameraFocusControl::setCustomFocusPoint()
*/
/*!
\fn QCameraImageCaptureControl::imageMetadataAvailable(int id, const QString &key, const QVariant &value)
- Signals that a metadata for an image with request \a id is available.
+ Signals that a metadata for an image with request \a id is available. Signal
+ also contains the \a key and \a value of the metadata.
+
This signal should be emitted between imageExposed and imageSaved signals.
*/
/*!
\fn QMediaAudioProbeControl::audioBufferProbed(const QAudioBuffer &buffer)
- This signal should be emitted when an audio buffer is processed in the
+ This signal should be emitted when an audio \a buffer is processed in the
media service.
*/
/*!
\fn QMediaGaplessPlaybackControl::setNextMedia(const QMediaContent& media)
- Sets the next media for smooth transition.
+ Sets the next \a media for smooth transition.
*/
/*!
\fn QMediaGaplessPlaybackControl::nextMediaChanged(const QMediaContent& media)
- Signals that the next media has changed (either explicitly via \l setNextMedia() or when the
+ Signals that the next \a media has changed (either explicitly via \l setNextMedia() or when the
player clears the next media while advancing to it).
\sa nextMedia()
\fn QMediaGaplessPlaybackControl::isCrossfadeSupported() const
Indicates whether crossfading is supported or not.
- If crossfading is not supported, \l setCrossfadTime() will be ignored and \l crossfadeTime() will
+ If crossfading is not supported, \l setCrossfadeTime() will be ignored and \l crossfadeTime() will
always return 0.
*/
/*!
\fn QMediaGaplessPlaybackControl::setCrossfadeTime(qreal crossfadeTime)
- Sets the crossfade time in seconds for smooth transition.
+ Sets the \a crossfadeTime in seconds for smooth transition.
Positive value means how much time it will take for the next media to transit from silent to
full volume and vice versa for current one. So both current and the next one will be playing
/*!
\fn QMediaGaplessPlaybackControl::crossfadeTimeChanged(qreal crossfadeTime)
- Signals that the crossfade time has changed.
+ Signals that the \a crossfadeTime has changed.
\sa crossfadeTime()
*/
usage by the supported QMediaObject.
*/
+/*!
+ \internal
+*/
QMediaNetworkAccessControl::QMediaNetworkAccessControl(QObject *parent) :
QMediaControl(parent)
{
and replaced with the new list.
*/
-/*
+/*!
\fn QNetworkConfiguration QMediaNetworkAccessControl::currentConfiguration() const
Returns the current active configuration in use.
/*!
\fn QMediaVideoProbeControl::videoFrameProbed(const QVideoFrame &frame)
- This signal should be emitted when a video frame is processed in the
+ This signal should be emitted when a video \a frame is processed in the
media service.
*/
Returns true if Alternative Frequency is currently enabled
*/
+/*!
+ \fn QRadioDataControl::alternativeFrequenciesEnabledChanged(bool enabled)
+
+ Signals that the alternative frequencies setting has changed to the value of \a enabled.
+*/
+
/*!
\fn void QRadioDataControl::stationIdChanged(QString stationId)
*/
/*!
- \fn void QRadioTunerControl::searchAllStations()
+ \fn void QRadioTunerControl::searchAllStations(QRadioTuner::SearchMode searchMode)
- Starts a scan through the whole frequency band searching all stations
+ Starts a scan through the whole frequency band searching all stations with a
+ specific \a searchMode.
*/
/*!
*/
/*!
- \fn void QRadioTunerControl::stationFound(int frequency)
+ \fn void QRadioTunerControl::stationFound(int frequency, QString stationId)
- Signals that new station with \a frequency was found when scanning
+ Signals that new station with \a frequency and \a stationId was found when scanning
*/
/*!
Returns true if the data can be written; and false otherwise.
*/
-/*!
- \fn QMediaPlaylistIOPlugin::keys() const
-
- Returns a list of format keys supported by a plug-in.
-*/
-
/*!
\fn QMediaPlaylistIOPlugin::createReader(QIODevice *device, const QByteArray &format)
\typedef QMediaResourceList
Synonym for \c QList<QMediaResource>
+
+ \relates QMediaResource
*/
/*!
Signal emitted when the availability state has changed to \a available
*/
+/*!
+ \fn QMediaObject::availabilityErrorChanged(QtMultimedia::AvailabilityError error)
+
+ Signal emitted when the availability error has changed to \a error
+*/
+
#include "moc_qmediaobject.cpp"
QT_END_NAMESPACE
to identify the features it supports.
*/
-/*!
- \fn QMediaServiceProviderPlugin::keys() const
-
- Returns a list of keys for media services a plug-in can create.
-*/
-
/*!
\fn QMediaServiceProviderPlugin::create(const QString &key)
If the specified interval is adjacent to, or overlaps existing
intervals within the time range, these intervals will be merged.
- This operation takes \l{linear time}
+ This operation takes linear time.
\sa removeInterval()
*/
such that no intervals within the time range include any part of the
target interval.
- This operation takes \l{linear time}
+ This operation takes linear time.
\sa addInterval()
*/
/*!
\fn operator+(const QMediaTimeRange &r1, const QMediaTimeRange &r2)
+ \relates QMediaTimeRange
Returns a time range containing the union between \a r1 and \a r2.
*/
/*!
\fn operator-(const QMediaTimeRange &r1, const QMediaTimeRange &r2)
+ \relates QMediaTimeRange
Returns a time range containing \a r2 subtracted from \a r1.
*/
}
/*!
- Constructs a radio data based on a media object.
+ Constructs a radio data based on a \a mediaObject and \a parent.
The \a mediaObject should be an instance of \l QRadioTuner. It is preferable to use the
\l{QRadioTuner::radioData()}{radioData} property on a QRadioTuner instance to get an instance
/*!
- Constructs a radio tuner based on a media service allocated by a media service \a provider.
+ Constructs a radio tuner based on a media service allocated by the default
+ media service provider.
The \a parent is passed to QMediaObject.
*/
};
/*!
- Creates a new QVideoProbe class. After setting the
+ Creates a new QVideoProbe class with \a parent. After setting the
source to monitor with \l setSource(), the \l videoFrameProbed()
signal will be emitted when video frames are flowing in the
source media object.
/*!
Starts monitoring the given \a mediaRecorder.
- If \a source is zero, this probe will be deactivated
- and this function wil return true.
+ If there is no mediaObject associated with \a mediaRecorder, or if it is
+ zero, this probe will be deactivated and this function wil return true.
If the media recorder instance does not support monitoring
video, this function will return false.
/*!
\fn QVideoProbe::videoFrameProbed(const QVideoFrame &frame)
- This signal should be emitted when a video frame is processed in the
+ This signal should be emitted when a video \a frame is processed in the
media service.
*/
/*
\class QGraphicsVideoItem
+
\brief The QGraphicsVideoItem class provides a graphics item which display video produced by a QMediaObject.
\inmodule QtMultimedia
this, SLOT(_q_updateNativeSize()), Qt::QueuedConnection);
}
-/*!
+/*
Destroys a video graphics item.
*/
QGraphicsVideoItem::~QGraphicsVideoItem()