**
****************************************************************************/
-// XXX OMG its so bad
-// namespace warning
-// why mention control?
-// bad brief
-// control list
-// links?
-
/*!
\page camera.html
APIs to play and record media, and manage a collection of media content.
*/
-// XXX title sucks
-// XXX move backend stuff away
-// XXX move QML stuff up
-// XXX more introductory material
-// XXX terminology
-// XXX separate pages for audio, video, camera, radio, metadata
-// control, mediaobject etc stuff
-// symbian/harmattan specific pages
-
/*!
\page multimedia.html
Device names vary depending on the platform/audio plugin being used.
- XXX
-
They are a unique string identifier for the audio device.
eg. default, Intel, U0x46d0x9a4
\ingroup multimedia
\since 1.0
- XXX Needs more blurb about use cases etc
- Link to terminology etc
- Push/Pull mode
- State diagram
-
-
You can construct an audio input with the system's
\l{QAudioDeviceInfo::defaultInputDevice()}{default audio input
device}. It is also possible to create QAudioInput with a
\ingroup multimedia
\since 1.0
- XXX
-
You can construct an audio output with the system's
\l{QAudioDeviceInfo::defaultOutputDevice()}{default audio output
device}. It is also possible to create QAudioOutput with a
/*!
Destroys this audio output.
- XXX This will release any system resources used and free any buffers.
+ This will release any system resources used and free any buffers.
*/
QAudioOutput::~QAudioOutput()
{
/*!
Stops the audio output, detaching from the system resource.
- XXX
Sets error() to QAudio::NoError, state() to QAudio::StoppedState and
emit stateChanged() signal.
\since 1.0
/*!
Drops all audio data in the buffers, resets buffers to zero.
- XXX what about state
\since 1.0
*/
void QAudioOutput::reset()
/*!
Stops processing audio data, preserving buffered audio data.
- XXX
-
Sets error() to QAudio::NoError, state() to QAudio::SuspendedState and
emits stateChanged() signal.
\since 1.0
/*!
Resumes processing audio data after a suspend().
-XXX
-
Sets error() to QAudio::NoError.
Sets state() to QAudio::ActiveState if you previously called start(QIODevice*).
Sets state() to QAudio::IdleState if you previously called start().
endpoints available on a system and allows one to be selected as the audio
of a media service.
- XXX why do I care
-
The interface name of QAudioEndpointSelector is \c com.nokia.Qt.QAudioEndpointSelector/1.0 as
defined in QAudioEndpointSelector_iid.
You can retrieve this control from the camera object in the usual way:
- XXX snippet for retrieving control
-
Some camera devices may not have flash hardware, or may not be configurable. In that
case, there will be no QCameraFlashControl available.
the core functionality of the service and a number of optional controls which
expose any additional functionality.
- XXX concrete example of this relationship
-
A pointer to a control implemented by a media service can be obtained using
the \l {QMediaService::requestControl()} member of QMediaService. If the
service doesn't implement a control it will instead return a null pointer.
\ingroup multimedia
\since 1.0
- XXX why do I care
-
QMediaObject derived classes provide access to the functionality of a
QMediaService. Each media object hosts a QMediaService and uses the
QMediaControl interfaces implemented by the service to implement its
that wrap this functionality, so this function rarely needs to be
called directly.
- XXX for example
-
The object passed must implement the QMediaBindableInterface interface.
\since 1.0
video data. Creating a subclass of QAbstractVideoBuffer will allow you to construct video
frames from preallocated or static buffers.
- XXX where do these come from?
-
The contents of a buffer can be accessed by mapping the buffer to memory using the map()
function which returns a pointer to memory containing the contents of the the video buffer.
The memory returned by map() is released by calling the unmap() function.
The handle() of a buffer may also be used to manipulate its contents using type specific APIs.
The type of a buffer's handle is given by the handleType() function.
- XXX example of handle stuff (opengl etc)
-
\sa QVideoFrame
*/
The type of the handle is given by handleType() function.
- XXX put a table here too
-
\since 1.0
\sa handleType()
*/
A video surface presents a continuous stream of identically formatted frames, where the format
of each frame is compatible with a stream format supplied when starting a presentation.
- XXX Why do I carE?
-
The QAbstractVideoSurface class defines the standard interface that video producers use to
inter-operate with video presentation surfaces. It is not supposed to be instantiated directly.
Instead, you should subclass it to create new video surfaces.
hold a reference to the buffer of a presented video frame until a new frame is presented or
streaming is stopped. The stop() function will disable a surface and a release any video
buffers it holds references to.
-
- XXX Example?
*/
/*!
A QVideoFrame encapsulates the data of a video frame, and information about the frame.
- XXX why do I care
-
The contents of a video frame can be mapped to memory using the map() function. While
mapped, the video data can accessed using the bits() function, which returns a pointer to a
buffer. The total size of this buffer is given by the mappedBytes() function, and the size of each line is given
\note QVideoFrame is explicitly shared, any change made to video frame will also apply to any
copies.
-
- XXX example
*/
/*!
/*!
Constructs a copy of \a other.
- XXX reference count
-
\since 1.0
*/
QVideoFrame::QVideoFrame(const QVideoFrame &other)
/*!
Destroys a video frame.
-
- XXX reference count
*/
QVideoFrame::~QVideoFrame()
{
/*!
Returns the type of a video frame's handle.
- XXX What about it?
-
\since 1.0
*/
QAbstractVideoBuffer::HandleType QVideoFrame::handleType() const
Returns true if the buffer was mapped to memory in the given \a mode and false otherwise.
- XXX examples and why do I care
-
\since 1.0
\sa unmap(), mapMode(), bits()
*/
\note This is the bytes per line of the first plane only. The bytes per line of subsequent
planes should be calculated as per the frame type.
- XXX examples of these calculations
-
This value is only valid while the frame data is \l {map()}{mapped}.
\since 1.0
For an OpenGL texture this would be the texture ID.
- XXX Perhaps a table with corresondence
-
\since 1.0
\sa QAbstractVideoBuffer::handle()
*/
/*!
Returns the presentation time when a frame should stop being displayed.
- XXX example? if start=end what happens?
\since 1.0
*/
qint64 QVideoFrame::endTime() const
A video surface presents a stream of video frames. The surface's format describes the type of
the frames and determines how they should be presented.
- XXX Why do I care
- XXX why isn't it videostreamformat then?
-
The core properties of a video stream required to setup a video surface are the pixel format
given by pixelFormat(), and the frame dimensions given by frameSize().