/usr/share/qt5/doc/qtmultimedia/multimediabackend.html is in qtmultimedia5-doc-html 5.5.1-4ubuntu2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- multimediabackend.qdoc -->
<title>Multimedia Backend Development | Qt Multimedia 5.5</title>
<link rel="stylesheet" type="text/css" href="style/offline.css" />
</head>
<body>
<div class="header" id="qtdocheader">
<div class="main">
<div class="main-rounded">
<div class="navigationbar">
<ul>
<li>Qt 5.5</li>
<li><a href="qtmultimedia-index.html">Qt Multimedia</a></li>
<li>Multimedia Backend Development</li>
<li id="buildversion">Qt 5.5.1 Reference Documentation</li>
</ul>
</div>
</div>
<div class="content">
<div class="line">
<div class="content mainContent">
<div class="sidebar">
<div class="toc">
<h3><a name="toc">Contents</a></h3>
<ul>
<li class="level1"><a href="#overview">Overview</a></li>
<li class="level1"><a href="#extending-the-api">Extending the API</a></li>
<li class="level2"><a href="#adding-a-media-service-provider">Adding a Media Service Provider</a></li>
<li class="level2"><a href="#classes-for-service-implementers">Classes for service implementers.</a></li>
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
<h1 class="title">Multimedia Backend Development</h1>
<span class="subtitle"></span>
<!-- $$$multimediabackend.html-description -->
<div class="descr"> <a name="details"></a>
<a name="overview"></a>
<h2 id="overview">Overview</h2>
<p>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.</p>
<p>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.</p>
<a name="extending-the-api"></a>
<h2 id="extending-the-api">Extending the API</h2>
<p>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 <a href="qmediaservice.html">QMediaService</a>, QMediaServiceProvider and <a href="qmediacontrol.html">QMediaControl</a>. Some of these classes are not in the public API since they are very seldom useful to application developers.</p>
<p>To extend the Multimedia API you would use the following three classes or classes derived from them.</p>
<ul>
<li>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>
<li><a href="qmediaservice.html">QMediaService</a> provides a service and when asked by the top level object, say a component, will return a <a href="qmediacontrol.html">QMediaControl</a> object.</li>
<li><a href="qmediacontrol.html">QMediaControl</a> allows the control of the service using a known interface.</li>
</ul>
<p>Consider a developer creating, for example, a media player class called MyPlayer. It may have special requirements beyond ordinary media players and so may need a custom service and a custom control. We can subclass QMediaServiceProvider to create our MyServiceProvider class. Also we will create a MyMediaService, and the MyMediaControl to manipulate the media service.</p>
<p>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 <a href="qmediaservice.html#requestControl">requestControl()</a> it will receive the control object derived from <a href="qmediacontrol.html">QMediaControl</a>.</p>
<p>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 zero-terminated string, <i>const char *</i>, for the interface.</p>
<a name="adding-a-media-service-provider"></a>
<h3 >Adding a Media Service Provider</h3>
<p>In general, adding a new media service provider is outside the scope of this documentation. For best results, consult the existing provider source code, and seek assistance on the relevant mailing lists and IRC channels.</p>
<a name="classes-for-service-implementers"></a>
<h3 >Classes for service implementers.</h3>
<div class="table"><table class="annotated">
<tr class="odd topAlign"><td class="tblName"><p><a href="qaudiodecodercontrol.html">QAudioDecoderControl</a></p></td><td class="tblDescr"><p>Access to the audio decoding functionality of a QMediaService</p></td></tr>
<tr class="even topAlign"><td class="tblName"><p><a href="qaudioencodersettingscontrol.html">QAudioEncoderSettingsControl</a></p></td><td class="tblDescr"><p>Access to the settings of a media service that performs audio encoding</p></td></tr>
<tr class="odd topAlign"><td class="tblName"><p><a href="qaudioinputselectorcontrol.html">QAudioInputSelectorControl</a></p></td><td class="tblDescr"><p>Audio input selector media control</p></td></tr>
<tr class="even topAlign"><td class="tblName"><p><a href="qaudiooutputselectorcontrol.html">QAudioOutputSelectorControl</a></p></td><td class="tblDescr"><p>Audio output selector media control</p></td></tr>
<tr class="odd topAlign"><td class="tblName"><p><a href="qaudiorolecontrol.html">QAudioRoleControl</a></p></td><td class="tblDescr"><p>Control over the audio role of a media object</p></td></tr>
<tr class="even topAlign"><td class="tblName"><p><a href="qcameracapturebufferformatcontrol.html">QCameraCaptureBufferFormatControl</a></p></td><td class="tblDescr"><p>Control for setting the capture buffer format</p></td></tr>
<tr class="odd topAlign"><td class="tblName"><p><a href="qcameracapturedestinationcontrol.html">QCameraCaptureDestinationControl</a></p></td><td class="tblDescr"><p>Control for setting capture destination</p></td></tr>
<tr class="even topAlign"><td class="tblName"><p><a href="qcameracontrol.html">QCameraControl</a></p></td><td class="tblDescr"><p>Abstract base class for classes that control still cameras or video cameras</p></td></tr>
<tr class="odd topAlign"><td class="tblName"><p><a href="qcameraexposurecontrol.html">QCameraExposureControl</a></p></td><td class="tblDescr"><p>Allows controlling camera exposure parameters</p></td></tr>
<tr class="even topAlign"><td class="tblName"><p><a href="qcamerafeedbackcontrol.html">QCameraFeedbackControl</a></p></td><td class="tblDescr"><p>Allows controlling feedback (sounds etc) during camera operation</p></td></tr>
<tr class="odd topAlign"><td class="tblName"><p><a href="qcameraflashcontrol.html">QCameraFlashControl</a></p></td><td class="tblDescr"><p>Allows controlling a camera's flash</p></td></tr>
<tr class="even topAlign"><td class="tblName"><p><a href="qcamerafocuscontrol.html">QCameraFocusControl</a></p></td><td class="tblDescr"><p>Supplies control for focusing related camera parameters</p></td></tr>
<tr class="odd topAlign"><td class="tblName"><p><a href="qcameraimagecapturecontrol.html">QCameraImageCaptureControl</a></p></td><td class="tblDescr"><p>Control interface for image capture services</p></td></tr>
<tr class="even topAlign"><td class="tblName"><p><a href="qcameraimageprocessingcontrol.html">QCameraImageProcessingControl</a></p></td><td class="tblDescr"><p>Abstract class for controlling image processing parameters, like white balance, contrast, saturation, sharpening and denoising</p></td></tr>
<tr class="odd topAlign"><td class="tblName"><p><a href="qcamerainfocontrol.html">QCameraInfoControl</a></p></td><td class="tblDescr"><p>Camera info media control</p></td></tr>
<tr class="even topAlign"><td class="tblName"><p><a href="qcameralockscontrol.html">QCameraLocksControl</a></p></td><td class="tblDescr"><p>Abstract base class for classes that control still cameras or video cameras</p></td></tr>
<tr class="odd topAlign"><td class="tblName"><p><a href="qcameraviewfindersettingscontrol.html">QCameraViewfinderSettingsControl</a></p></td><td class="tblDescr"><p>Abstract class for controlling camera viewfinder parameters</p></td></tr>
<tr class="even topAlign"><td class="tblName"><p><a href="qcameraviewfindersettingscontrol2.html">QCameraViewfinderSettingsControl2</a></p></td><td class="tblDescr"><p>Access to the viewfinder settings of a camera media service</p></td></tr>
<tr class="odd topAlign"><td class="tblName"><p><a href="qcamerazoomcontrol.html">QCameraZoomControl</a></p></td><td class="tblDescr"><p>Supplies control for optical and digital camera zoom</p></td></tr>
<tr class="even topAlign"><td class="tblName"><p><a href="qimageencodercontrol.html">QImageEncoderControl</a></p></td><td class="tblDescr"><p>Access to the settings of a media service that performs image encoding</p></td></tr>
<tr class="odd topAlign"><td class="tblName"><p><a href="qmediaaudioprobecontrol.html">QMediaAudioProbeControl</a></p></td><td class="tblDescr"><p>Allows control over probing audio data in media objects</p></td></tr>
<tr class="even topAlign"><td class="tblName"><p><a href="qmediaavailabilitycontrol.html">QMediaAvailabilityControl</a></p></td><td class="tblDescr"><p>Supplies a control for reporting availability of a service</p></td></tr>
<tr class="odd topAlign"><td class="tblName"><p><a href="qmediacontainercontrol.html">QMediaContainerControl</a></p></td><td class="tblDescr"><p>Access to the output container format of a QMediaService</p></td></tr>
<tr class="even topAlign"><td class="tblName"><p><a href="qmediacontrol.html">QMediaControl</a></p></td><td class="tblDescr"><p>Base interface for media service controls</p></td></tr>
<tr class="odd topAlign"><td class="tblName"><p><a href="qmediagaplessplaybackcontrol.html">QMediaGaplessPlaybackControl</a></p></td><td class="tblDescr"><p>Access to the gapless playback related control of a QMediaService</p></td></tr>
<tr class="even topAlign"><td class="tblName"><p><a href="qmedianetworkaccesscontrol.html">QMediaNetworkAccessControl</a></p></td><td class="tblDescr"><p>Allows the setting of the Network Access Point for media related activities</p></td></tr>
<tr class="odd topAlign"><td class="tblName"><p><a href="qmediaplayercontrol.html">QMediaPlayerControl</a></p></td><td class="tblDescr"><p>Access to the media playing functionality of a QMediaService</p></td></tr>
<tr class="even topAlign"><td class="tblName"><p><a href="qmediarecordercontrol.html">QMediaRecorderControl</a></p></td><td class="tblDescr"><p>Access to the recording functionality of a QMediaService</p></td></tr>
<tr class="odd topAlign"><td class="tblName"><p><a href="qmediaservice.html">QMediaService</a></p></td><td class="tblDescr"><p>Common base class for media service implementations</p></td></tr>
<tr class="even topAlign"><td class="tblName"><p><a href="qmediastreamscontrol.html">QMediaStreamsControl</a></p></td><td class="tblDescr"><p>Media stream selection control</p></td></tr>
<tr class="odd topAlign"><td class="tblName"><p><a href="qmediavideoprobecontrol.html">QMediaVideoProbeControl</a></p></td><td class="tblDescr"><p>Allows control over probing video frames in media objects</p></td></tr>
<tr class="even topAlign"><td class="tblName"><p><a href="qmetadatareadercontrol.html">QMetaDataReaderControl</a></p></td><td class="tblDescr"><p>Read access to the meta-data of a QMediaService's media</p></td></tr>
<tr class="odd topAlign"><td class="tblName"><p><a href="qmetadatawritercontrol.html">QMetaDataWriterControl</a></p></td><td class="tblDescr"><p>Write access to the meta-data of a QMediaService's media</p></td></tr>
<tr class="even topAlign"><td class="tblName"><p><a href="qradiodatacontrol.html">QRadioDataControl</a></p></td><td class="tblDescr"><p>Access to the RDS functionality of the radio in the QMediaService</p></td></tr>
<tr class="odd topAlign"><td class="tblName"><p><a href="qradiotunercontrol.html">QRadioTunerControl</a></p></td><td class="tblDescr"><p>Access to the radio tuning functionality of a QMediaService</p></td></tr>
<tr class="even topAlign"><td class="tblName"><p><a href="qvideodeviceselectorcontrol.html">QVideoDeviceSelectorControl</a></p></td><td class="tblDescr"><p>Video device selector media control</p></td></tr>
<tr class="odd topAlign"><td class="tblName"><p><a href="qvideoencodersettingscontrol.html">QVideoEncoderSettingsControl</a></p></td><td class="tblDescr"><p>Access to the settings of a media service that performs video encoding</p></td></tr>
<tr class="even topAlign"><td class="tblName"><p><a href="qvideorenderercontrol.html">QVideoRendererControl</a></p></td><td class="tblDescr"><p>Media control for rendering video to a QAbstractVideoSurface</p></td></tr>
<tr class="odd topAlign"><td class="tblName"><p><a href="qvideowindowcontrol.html">QVideoWindowControl</a></p></td><td class="tblDescr"><p>Media control for rendering video to a window</p></td></tr>
</table></div>
</div>
<!-- @@@multimediabackend.html -->
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<p>
<acronym title="Copyright">©</acronym> 2015 The Qt Company Ltd.
Documentation contributions included herein are the copyrights of
their respective owners.<br> The documentation provided herein is licensed under the terms of the <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation License version 1.3</a> as published by the Free Software Foundation.<br> Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property
of their respective owners. </p>
</div>
</body>
</html>
|