qtmobility/plugins/declarative/multimedia/qdeclarativevideo.cpp
changeset 14 6fbed849b4f4
child 15 1f895d8a5b2b
equal deleted inserted replaced
11:06b8e2af4411 14:6fbed849b4f4
       
     1 /****************************************************************************
       
     2 **
       
     3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     4 ** All rights reserved.
       
     5 ** Contact: Nokia Corporation (qt-info@nokia.com)
       
     6 **
       
     7 ** This file is part of the Qt Mobility Components.
       
     8 **
       
     9 ** $QT_BEGIN_LICENSE:LGPL$
       
    10 ** No Commercial Usage
       
    11 ** This file contains pre-release code and may not be distributed.
       
    12 ** You may use this file in accordance with the terms and conditions
       
    13 ** contained in the Technology Preview License Agreement accompanying
       
    14 ** this package.
       
    15 **
       
    16 ** GNU Lesser General Public License Usage
       
    17 ** Alternatively, this file may be used under the terms of the GNU Lesser
       
    18 ** General Public License version 2.1 as published by the Free Software
       
    19 ** Foundation and appearing in the file LICENSE.LGPL included in the
       
    20 ** packaging of this file.  Please review the following information to
       
    21 ** ensure the GNU Lesser General Public License version 2.1 requirements
       
    22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
       
    23 **
       
    24 ** In addition, as a special exception, Nokia gives you certain additional
       
    25 ** rights.  These rights are described in the Nokia Qt LGPL Exception
       
    26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
       
    27 **
       
    28 ** If you have questions regarding the use of this file, please contact
       
    29 ** Nokia at qt-info@nokia.com.
       
    30 **
       
    31 **
       
    32 **
       
    33 **
       
    34 **
       
    35 **
       
    36 **
       
    37 **
       
    38 ** $QT_END_LICENSE$
       
    39 **
       
    40 ****************************************************************************/
       
    41 
       
    42 #include "qdeclarativevideo_p.h"
       
    43 
       
    44 #include <qmediaplayercontrol.h>
       
    45 #include <qmediaservice.h>
       
    46 #include <qpaintervideosurface_p.h>
       
    47 #include <qvideorenderercontrol.h>
       
    48 
       
    49 
       
    50 QT_BEGIN_NAMESPACE
       
    51 
       
    52 
       
    53 void QDeclarativeVideo::_q_nativeSizeChanged(const QSizeF &size)
       
    54 {
       
    55     setImplicitWidth(size.width());
       
    56     setImplicitHeight(size.height());
       
    57 }
       
    58 
       
    59 void QDeclarativeVideo::_q_error(int errorCode, const QString &errorString)
       
    60 {
       
    61     m_error = QMediaPlayer::Error(errorCode);
       
    62     m_errorString = errorString;
       
    63 
       
    64     emit error(Error(errorCode), errorString);
       
    65     emit errorChanged();
       
    66 }
       
    67 
       
    68 
       
    69 /*!
       
    70     \qmlclass Video QDeclarativeVideo
       
    71     \brief The Video element allows you to add videos to a scene.
       
    72     \inherits Item
       
    73 
       
    74     This element is part of the \bold{Qt.multimedia 1.0} module.
       
    75 
       
    76     \qml
       
    77     import Qt 4.7
       
    78     import Qt.multimedia 1.0
       
    79 
       
    80     Video {
       
    81         id: video
       
    82         width : 800
       
    83         height : 600
       
    84         source: "video.avi"
       
    85 
       
    86         MouseArea {
       
    87             anchors.fill: parent
       
    88             onClicked: {
       
    89                 video.play()
       
    90             }
       
    91         }
       
    92 
       
    93         focus: true
       
    94         Keys.onSpacePressed: video.paused = !video.paused
       
    95         Keys.onLeftPressed: video.position -= 5000
       
    96         Keys.onRightPressed: video.position += 5000
       
    97     }
       
    98     \endqml
       
    99 
       
   100     The Video item supports untransformed, stretched, and uniformly scaled video presentation.
       
   101     For a description of stretched uniformly scaled presentation, see the \l fillMode property
       
   102     description.
       
   103 
       
   104     The Video item is only visible when the \l hasVideo property is true and the video is playing.
       
   105 
       
   106     \sa Audio
       
   107 */
       
   108 
       
   109 /*!
       
   110     \internal
       
   111     \class QDeclarativeVideo
       
   112     \brief The QDeclarativeVideo class provides a video item that you can add to a QDeclarativeView.
       
   113 */
       
   114 
       
   115 QDeclarativeVideo::QDeclarativeVideo(QDeclarativeItem *parent)
       
   116     : QDeclarativeItem(parent)
       
   117     , m_graphicsItem(0)
       
   118 
       
   119 {
       
   120     m_graphicsItem = new QGraphicsVideoItem(this);
       
   121     connect(m_graphicsItem, SIGNAL(nativeSizeChanged(QSizeF)),
       
   122             this, SLOT(_q_nativeSizeChanged(QSizeF)));
       
   123 }
       
   124 
       
   125 QDeclarativeVideo::~QDeclarativeVideo()
       
   126 {
       
   127     shutdown();
       
   128 
       
   129     delete m_graphicsItem;
       
   130 }
       
   131 
       
   132 /*!
       
   133     \qmlproperty url Video::source
       
   134 
       
   135     This property holds the source URL of the media.
       
   136 */
       
   137 
       
   138 /*!
       
   139     \qmlproperty url Video::autoLoad
       
   140 
       
   141     This property indicates if loading of media should begin immediately.
       
   142 
       
   143     Defaults to true, if false media will not be loaded until playback is started.
       
   144 */
       
   145 
       
   146 /*!
       
   147     \qmlproperty bool Video::playing
       
   148 
       
   149     This property holds whether the media is playing.
       
   150 
       
   151     Defaults to false, and can be set to true to start playback.
       
   152 */
       
   153 
       
   154 /*!
       
   155     \qmlproperty bool Video::paused
       
   156 
       
   157     This property holds whether the media is paused.
       
   158 
       
   159     Defaults to false, and can be set to true to pause playback.
       
   160 */
       
   161 
       
   162 /*!
       
   163     \qmlsignal Video::onStarted()
       
   164 
       
   165     This handler is called when playback is started.
       
   166 */
       
   167 
       
   168 /*!
       
   169     \qmlsignal Video::onResumed()
       
   170 
       
   171     This handler is called when playback is resumed from the paused state.
       
   172 */
       
   173 
       
   174 /*!
       
   175     \qmlsignal Video::onPaused()
       
   176 
       
   177     This handler is called when playback is paused.
       
   178 */
       
   179 
       
   180 /*!
       
   181     \qmlsignal Video::onStopped()
       
   182 
       
   183     This handler is called when playback is stopped.
       
   184 */
       
   185 
       
   186 /*!
       
   187     \qmlproperty enumeration Video::status
       
   188 
       
   189     This property holds the status of media loading. It can be one of:
       
   190 
       
   191     \list
       
   192     \o NoMedia - no media has been set.
       
   193     \o Loading - the media is currently being loaded.
       
   194     \o Loaded - the media has been loaded.
       
   195     \o Buffering - the media is buffering data.
       
   196     \o Stalled - playback has been interrupted while the media is buffering data.
       
   197     \o Buffered - the media has buffered data.
       
   198     \o EndOfMedia - the media has played to the end.
       
   199     \o InvalidMedia - the media cannot be played.
       
   200     \o UnknownStatus - the status of the media is cannot be determined.
       
   201     \endlist
       
   202 */
       
   203 
       
   204 QDeclarativeVideo::Status QDeclarativeVideo::status() const
       
   205 {
       
   206     return Status(m_status);
       
   207 }
       
   208 
       
   209 /*!
       
   210     \qmlsignal Video::onLoaded()
       
   211 
       
   212     This handler is called when the media source has been loaded.
       
   213 */
       
   214 
       
   215 /*!
       
   216     \qmlsignal Video::onBuffering()
       
   217 
       
   218     This handler is called when the media starts buffering.
       
   219 */
       
   220 
       
   221 /*!
       
   222     \qmlsignal Video::onStalled()
       
   223 
       
   224     This handler is called when playback has stalled while the media buffers.
       
   225 */
       
   226 
       
   227 /*!
       
   228     \qmlsignal Video::onBuffered()
       
   229 
       
   230     This handler is called when the media has finished buffering.
       
   231 */
       
   232 
       
   233 /*!
       
   234     \qmlsignal Video::onEndOfMedia()
       
   235 
       
   236     This handler is called when playback stops because end of the media has been reached.
       
   237 */
       
   238 
       
   239 /*!
       
   240     \qmlproperty int Video::duration
       
   241 
       
   242     This property holds the duration of the media in milliseconds.
       
   243 
       
   244     If the media doesn't have a fixed duration (a live stream for example) this will be 0.
       
   245 */
       
   246 
       
   247 /*!
       
   248     \qmlproperty int Video::position
       
   249 
       
   250     This property holds the current playback position in milliseconds.
       
   251 */
       
   252 
       
   253 /*!
       
   254     \qmlproperty real Video::volume
       
   255 
       
   256     This property holds the volume of the audio output, from 0.0 (silent) to 1.0 (maximum volume).
       
   257 */
       
   258 
       
   259 /*!
       
   260     \qmlproperty bool Video::muted
       
   261 
       
   262     This property holds whether the audio output is muted.
       
   263 */
       
   264 
       
   265 /*!
       
   266     \qmlproperty bool Video::hasAudio
       
   267 
       
   268     This property holds whether the media contains audio.
       
   269 */
       
   270 
       
   271 bool QDeclarativeVideo::hasAudio() const
       
   272 {
       
   273     return m_playerControl == 0 ? false : m_playerControl->isAudioAvailable();
       
   274 }
       
   275 
       
   276 /*!
       
   277     \qmlproperty bool Video::hasVideo
       
   278 
       
   279     This property holds whether the media contains video.
       
   280 */
       
   281 
       
   282 bool QDeclarativeVideo::hasVideo() const
       
   283 {
       
   284     return m_playerControl == 0 ? false : m_playerControl->isVideoAvailable();
       
   285 }
       
   286 
       
   287 /*!
       
   288     \qmlproperty real Video::bufferProgress
       
   289 
       
   290     This property holds how much of the data buffer is currently filled, from 0.0 (empty) to 1.0
       
   291     (full).
       
   292 */
       
   293 
       
   294 /*!
       
   295     \qmlproperty bool Video::seekable
       
   296 
       
   297     This property holds whether position of the video can be changed.
       
   298 */
       
   299 
       
   300 /*!
       
   301     \qmlproperty real Video::playbackRate
       
   302 
       
   303     This property holds the rate at which video is played at as a multiple of the normal rate.
       
   304 */
       
   305 
       
   306 /*!
       
   307     \qmlproperty enumeration Video::error
       
   308 
       
   309     This property holds the error state of the video.  It can be one of:
       
   310 
       
   311     \list
       
   312     \o NoError - there is no current error.
       
   313     \o ResourceError - the video cannot be played due to a problem allocating resources.
       
   314     \o FormatError - the video format is not supported.
       
   315     \o NetworkError - the video cannot be played due to network issues.
       
   316     \o AccessDenied - the video cannot be played due to insufficient permissions.
       
   317     \o ServiceMissing -  the video cannot be played because the media service could not be
       
   318     instantiated.
       
   319     \endlist
       
   320 */
       
   321 
       
   322 
       
   323 QDeclarativeVideo::Error QDeclarativeVideo::error() const
       
   324 {
       
   325     return Error(m_error);
       
   326 }
       
   327 
       
   328 /*!
       
   329     \qmlproperty string Video::errorString
       
   330 
       
   331     This property holds a string describing the current error condition in more detail.
       
   332 */
       
   333 
       
   334 /*!
       
   335     \qmlsignal Video::onError(error, errorString)
       
   336 
       
   337     This handler is called when an \l {QMediaPlayer::Error}{error} has
       
   338     occurred.  The errorString parameter may contain more detailed
       
   339     information about the error.
       
   340 */
       
   341 
       
   342 /*!
       
   343     \qmlproperty enumeration Video::fillMode
       
   344 
       
   345     Set this property to define how the video is scaled to fit the target area.
       
   346 
       
   347     \list
       
   348     \o Stretch - the video is scaled to fit.
       
   349     \o PreserveAspectFit - the video is scaled uniformly to fit without cropping
       
   350     \o PreserveAspectCrop - the video is scaled uniformly to fill, cropping if necessary
       
   351     \endlist
       
   352 
       
   353     The default fill mode is PreserveAspectFit.
       
   354 */
       
   355 
       
   356 QDeclarativeVideo::FillMode QDeclarativeVideo::fillMode() const
       
   357 {
       
   358     return FillMode(m_graphicsItem->aspectRatioMode());
       
   359 }
       
   360 
       
   361 void QDeclarativeVideo::setFillMode(FillMode mode)
       
   362 {
       
   363     m_graphicsItem->setAspectRatioMode(Qt::AspectRatioMode(mode));
       
   364 }
       
   365 
       
   366 /*!
       
   367     \qmlmethod Video::play()
       
   368 
       
   369     Starts playback of the media.
       
   370 
       
   371     Sets the \l playing property to true, and the \l paused property to false.
       
   372 */
       
   373 
       
   374 void QDeclarativeVideo::play()
       
   375 {
       
   376     if (m_playerControl == 0)
       
   377         return;
       
   378 
       
   379     setPaused(false);
       
   380     setPlaying(true);
       
   381 }
       
   382 
       
   383 /*!
       
   384     \qmlmethod Video::pause()
       
   385 
       
   386     Pauses playback of the media.
       
   387 
       
   388     Sets the \l playing and \l paused properties to true.
       
   389 */
       
   390 
       
   391 void QDeclarativeVideo::pause()
       
   392 {
       
   393     if (m_playerControl == 0)
       
   394         return;
       
   395 
       
   396     setPaused(true);
       
   397     setPlaying(true);
       
   398 }
       
   399 
       
   400 /*!
       
   401     \qmlmethod Video::stop()
       
   402 
       
   403     Stops playback of the media.
       
   404 
       
   405     Sets the \l playing and \l paused properties to false.
       
   406 */
       
   407 
       
   408 void QDeclarativeVideo::stop()
       
   409 {
       
   410     if (m_playerControl == 0)
       
   411         return;
       
   412 
       
   413     setPlaying(false);
       
   414     setPaused(false);
       
   415 }
       
   416 
       
   417 void QDeclarativeVideo::paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *)
       
   418 {
       
   419 }
       
   420 
       
   421 void QDeclarativeVideo::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry)
       
   422 {
       
   423     m_graphicsItem->setSize(newGeometry.size());
       
   424 
       
   425     QDeclarativeItem::geometryChanged(newGeometry, oldGeometry);
       
   426 }
       
   427 
       
   428 void QDeclarativeVideo::componentComplete()
       
   429 {
       
   430     setObject(this);
       
   431 
       
   432     if (m_mediaService) {
       
   433         connect(m_playerControl, SIGNAL(audioAvailableChanged(bool)),
       
   434                 this, SIGNAL(hasAudioChanged()));
       
   435         connect(m_playerControl, SIGNAL(videoAvailableChanged(bool)),
       
   436                 this, SIGNAL(hasVideoChanged()));
       
   437 
       
   438         m_mediaObject->bind(m_graphicsItem);
       
   439     }
       
   440 }
       
   441 
       
   442 QT_END_NAMESPACE
       
   443 
       
   444 // ***************************************
       
   445 // Documentation for meta-data properties.
       
   446 // ***************************************
       
   447 
       
   448 /*!
       
   449     \qmlproperty variant Video::title
       
   450 
       
   451     This property holds the tile of the media.
       
   452 
       
   453     \sa {QtMultimedia::Title}
       
   454 */
       
   455 
       
   456 /*!
       
   457     \qmlproperty variant Video::subTitle
       
   458 
       
   459     This property holds the sub-title of the media.
       
   460 
       
   461     \sa {QtMultimedia::SubTitle}
       
   462 */
       
   463 
       
   464 /*!
       
   465     \qmlproperty variant Video::author
       
   466 
       
   467     This property holds the author of the media.
       
   468 
       
   469     \sa {QtMultimedia::Author}
       
   470 */
       
   471 
       
   472 /*!
       
   473     \qmlproperty variant Video::comment
       
   474 
       
   475     This property holds a user comment about the media.
       
   476 
       
   477     \sa {QtMultimedia::Comment}
       
   478 */
       
   479 
       
   480 /*!
       
   481     \qmlproperty variant Video::description
       
   482 
       
   483     This property holds a description of the media.
       
   484 
       
   485     \sa {QtMultimedia::Description}
       
   486 */
       
   487 
       
   488 /*!
       
   489     \qmlproperty variant Video::category
       
   490 
       
   491     This property holds the category of the media
       
   492 
       
   493     \sa {QtMultimedia::Category}
       
   494 */
       
   495 
       
   496 /*!
       
   497     \qmlproperty variant Video::genre
       
   498 
       
   499     This property holds the genre of the media.
       
   500 
       
   501     \sa {QtMultimedia::Genre}
       
   502 */
       
   503 
       
   504 /*!
       
   505     \qmlproperty variant Video::year
       
   506 
       
   507     This property holds the year of release of the media.
       
   508 
       
   509     \sa {QtMultimedia::Year}
       
   510 */
       
   511 
       
   512 /*!
       
   513     \qmlproperty variant Video::date
       
   514 
       
   515     This property holds the date of the media.
       
   516 
       
   517     \sa {QtMultimedia::Date}
       
   518 */
       
   519 
       
   520 /*!
       
   521     \qmlproperty variant Video::userRating
       
   522 
       
   523     This property holds a user rating of the media in the range of 0 to 100.
       
   524 
       
   525     \sa {QtMultimedia::UserRating}
       
   526 */
       
   527 
       
   528 /*!
       
   529     \qmlproperty variant Video::keywords
       
   530 
       
   531     This property holds a list of keywords describing the media.
       
   532 
       
   533     \sa {QtMultimedia::Keywords}
       
   534 */
       
   535 
       
   536 /*!
       
   537     \qmlproperty variant Video::language
       
   538 
       
   539     This property holds the language of the media, as an ISO 639-2 code.
       
   540 
       
   541     \sa {QtMultimedia::Language}
       
   542 */
       
   543 
       
   544 /*!
       
   545     \qmlproperty variant Video::publisher
       
   546 
       
   547     This property holds the publisher of the media.
       
   548 
       
   549     \sa {QtMultimedia::Publisher}
       
   550 */
       
   551 
       
   552 /*!
       
   553     \qmlproperty variant Video::copyright
       
   554 
       
   555     This property holds the media's copyright notice.
       
   556 
       
   557     \sa {QtMultimedia::Copyright}
       
   558 */
       
   559 
       
   560 /*!
       
   561     \qmlproperty variant Video::parentalRating
       
   562 
       
   563     This property holds the parental rating of the media.
       
   564 
       
   565     \sa {QtMultimedia::ParentalRating}
       
   566 */
       
   567 
       
   568 /*!
       
   569     \qmlproperty variant Video::ratingOrganisation
       
   570 
       
   571     This property holds the name of the rating organisation responsible for the
       
   572     parental rating of the media.
       
   573 
       
   574     \sa {QtMultimedia::RatingOrganisation}
       
   575 */
       
   576 
       
   577 /*!
       
   578     \qmlproperty variant Video::size
       
   579 
       
   580     This property property holds the size of the media in bytes.
       
   581 
       
   582     \sa {QtMultimedia::Size}
       
   583 */
       
   584 
       
   585 /*!
       
   586     \qmlproperty variant Video::mediaType
       
   587 
       
   588     This property holds the type of the media.
       
   589 
       
   590     \sa {QtMultimedia::MediaType}
       
   591 */
       
   592 
       
   593 /*!
       
   594     \qmlproperty variant Video::audioBitRate
       
   595 
       
   596     This property holds the bit rate of the media's audio stream ni bits per
       
   597     second.
       
   598 
       
   599     \sa {QtMultimedia::AudioBitRate}
       
   600 */
       
   601 
       
   602 /*!
       
   603     \qmlproperty variant Video::audioCodec
       
   604 
       
   605     This property holds the encoding of the media audio stream.
       
   606 
       
   607     \sa {QtMultimedia::AudioCodec}
       
   608 */
       
   609 
       
   610 /*!
       
   611     \qmlproperty variant Video::averageLevel
       
   612 
       
   613     This property holds the average volume level of the media.
       
   614 
       
   615     \sa {QtMultimedia::AverageLevel}
       
   616 */
       
   617 
       
   618 /*!
       
   619     \qmlproperty variant Video::channelCount
       
   620 
       
   621     This property holds the number of channels in the media's audio stream.
       
   622 
       
   623     \sa {QtMultimedia::ChannelCount}
       
   624 */
       
   625 
       
   626 /*!
       
   627     \qmlproperty variant Video::peakValue
       
   628 
       
   629     This property holds the peak volume of media's audio stream.
       
   630 
       
   631     \sa {QtMultimedia::PeakValue}
       
   632 */
       
   633 
       
   634 /*!
       
   635     \qmlproperty variant Video::sampleRate
       
   636 
       
   637     This property holds the sample rate of the media's audio stream in hertz.
       
   638 
       
   639     \sa {QtMultimedia::SampleRate}
       
   640 */
       
   641 
       
   642 /*!
       
   643     \qmlproperty variant Video::albumTitle
       
   644 
       
   645     This property holds the title of the album the media belongs to.
       
   646 
       
   647     \sa {QtMultimedia::AlbumTitle}
       
   648 */
       
   649 
       
   650 /*!
       
   651     \qmlproperty variant Video::albumArtist
       
   652 
       
   653     This property holds the name of the principal artist of the album the media
       
   654     belongs to.
       
   655 
       
   656     \sa {QtMultimedia::AlbumArtist}
       
   657 */
       
   658 
       
   659 /*!
       
   660     \qmlproperty variant Video::contributingArtist
       
   661 
       
   662     This property holds the names of artists contributing to the media.
       
   663 
       
   664     \sa {QtMultimedia::ContributingArtist}
       
   665 */
       
   666 
       
   667 /*!
       
   668     \qmlproperty variant Video::composer
       
   669 
       
   670     This property holds the composer of the media.
       
   671 
       
   672     \sa {QtMultimedia::Composer}
       
   673 */
       
   674 
       
   675 /*!
       
   676     \qmlproperty variant Video::conductor
       
   677 
       
   678     This property holds the conductor of the media.
       
   679 
       
   680     \sa {QtMultimedia::Conductor}
       
   681 */
       
   682 
       
   683 /*!
       
   684     \qmlproperty variant Video::lyrics
       
   685 
       
   686     This property holds the lyrics to the media.
       
   687 
       
   688     \sa {QtMultimedia::Lyrics}
       
   689 */
       
   690 
       
   691 /*!
       
   692     \qmlproperty variant Video::mood
       
   693 
       
   694     This property holds the mood of the media.
       
   695 
       
   696     \sa {QtMultimedia::Mood}
       
   697 */
       
   698 
       
   699 /*!
       
   700     \qmlproperty variant Video::trackNumber
       
   701 
       
   702     This property holds the track number of the media.
       
   703 
       
   704     \sa {QtMultimedia::TrackNumber}
       
   705 */
       
   706 
       
   707 /*!
       
   708     \qmlproperty variant Video::trackCount
       
   709 
       
   710     This property holds the number of track on the album containing the media.
       
   711 
       
   712     \sa {QtMultimedia::TrackNumber}
       
   713 */
       
   714 
       
   715 /*!
       
   716     \qmlproperty variant Video::coverArtUrlSmall
       
   717 
       
   718     This property holds the URL of a small cover art image.
       
   719 
       
   720     \sa {QtMultimedia::CoverArtUrlSmall}
       
   721 */
       
   722 
       
   723 /*!
       
   724     \qmlproperty variant Video::coverArtUrlLarge
       
   725 
       
   726     This property holds the URL of a large cover art image.
       
   727 
       
   728     \sa {QtMultimedia::CoverArtUrlLarge}
       
   729 */
       
   730 
       
   731 /*!
       
   732     \qmlproperty variant Video::resolution
       
   733 
       
   734     This property holds the dimension of an image or video.
       
   735 
       
   736     \sa {QtMultimedia::Resolution}
       
   737 */
       
   738 
       
   739 /*!
       
   740     \qmlproperty variant Video::pixelAspectRatio
       
   741 
       
   742     This property holds the pixel aspect ratio of an image or video.
       
   743 
       
   744     \sa {QtMultimedia::PixelAspectRatio}
       
   745 */
       
   746 
       
   747 /*!
       
   748     \qmlproperty variant Video::videoFrameRate
       
   749 
       
   750     This property holds the frame rate of the media's video stream.
       
   751 
       
   752     \sa {QtMultimedia::VideoFrameRate}
       
   753 */
       
   754 
       
   755 /*!
       
   756     \qmlproperty variant Video::videoBitRate
       
   757 
       
   758     This property holds the bit rate of the media's video stream in bits per
       
   759     second.
       
   760 
       
   761     \sa {QtMultimedia::VideoBitRate}
       
   762 */
       
   763 
       
   764 /*!
       
   765     \qmlproperty variant Video::videoCodec
       
   766 
       
   767     This property holds the encoding of the media's video stream.
       
   768 
       
   769     \sa {QtMultimedia::VideoCodec}
       
   770 */
       
   771 
       
   772 /*!
       
   773     \qmlproperty variant Video::posterUrl
       
   774 
       
   775     This property holds the URL of a poster image.
       
   776 
       
   777     \sa {QtMultimedia::PosterUrl}
       
   778 */
       
   779 
       
   780 /*!
       
   781     \qmlproperty variant Video::chapterNumber
       
   782 
       
   783     This property holds the chapter number of the media.
       
   784 
       
   785     \sa {QtMultimedia::ChapterNumber}
       
   786 */
       
   787 
       
   788 /*!
       
   789     \qmlproperty variant Video::director
       
   790 
       
   791     This property holds the director of the media.
       
   792 
       
   793     \sa {QtMultimedia::Director}
       
   794 */
       
   795 
       
   796 /*!
       
   797     \qmlproperty variant Video::leadPerformer
       
   798 
       
   799     This property holds the lead performer in the media.
       
   800 
       
   801     \sa {QtMultimedia::LeadPerformer}
       
   802 */
       
   803 
       
   804 /*!
       
   805     \qmlproperty variant Video::writer
       
   806 
       
   807     This property holds the writer of the media.
       
   808 
       
   809     \sa {QtMultimedia::Writer}
       
   810 */
       
   811 
       
   812 // The remaining properties are related to photos, and are technically
       
   813 // available but will certainly never have values.
       
   814 #ifndef Q_QDOC
       
   815 
       
   816 /*!
       
   817     \qmlproperty variant Video::cameraManufacturer
       
   818 
       
   819     \sa {QtMultimedia::CameraManufacturer}
       
   820 */
       
   821 
       
   822 /*!
       
   823     \qmlproperty variant Video::cameraModel
       
   824 
       
   825     \sa {QtMultimedia::CameraModel}
       
   826 */
       
   827 
       
   828 /*!
       
   829     \qmlproperty variant Video::event
       
   830 
       
   831     \sa {QtMultimedia::Event}
       
   832 */
       
   833 
       
   834 /*!
       
   835     \qmlproperty variant Video::subject
       
   836 
       
   837     \sa {QtMultimedia::Subject}
       
   838 */
       
   839 
       
   840 /*!
       
   841     \qmlproperty variant Video::orientation
       
   842 
       
   843     \sa {QtMultimedia::Orientation}
       
   844 */
       
   845 
       
   846 /*!
       
   847     \qmlproperty variant Video::exposureTime
       
   848 
       
   849     \sa {QtMultimedia::ExposureTime}
       
   850 */
       
   851 
       
   852 /*!
       
   853     \qmlproperty variant Video::fNumber
       
   854 
       
   855     \sa {QtMultimedia::FNumber}
       
   856 */
       
   857 
       
   858 /*!
       
   859     \qmlproperty variant Video::exposureProgram
       
   860 
       
   861     \sa {QtMultimedia::ExposureProgram}
       
   862 */
       
   863 
       
   864 /*!
       
   865     \qmlproperty variant Video::isoSpeedRatings
       
   866 
       
   867     \sa {QtMultimedia::ISOSpeedRatings}
       
   868 */
       
   869 
       
   870 /*!
       
   871     \qmlproperty variant Video::exposureBiasValue
       
   872 
       
   873     \sa {QtMultimedia::ExposureBiasValue}
       
   874 */
       
   875 
       
   876 /*!
       
   877     \qmlproperty variant Video::dateTimeDigitized
       
   878 
       
   879     \sa {QtMultimedia::DateTimeDigitized}
       
   880 */
       
   881 
       
   882 /*!
       
   883     \qmlproperty variant Video::subjectDistance
       
   884 
       
   885     \sa {QtMultimedia::SubjectDistance}
       
   886 */
       
   887 
       
   888 /*!
       
   889     \qmlproperty variant Video::meteringMode
       
   890 
       
   891     \sa {QtMultimedia::MeteringMode}
       
   892 */
       
   893 
       
   894 /*!
       
   895     \qmlproperty variant Video::lightSource
       
   896 
       
   897     \sa {QtMultimedia::LightSource}
       
   898 */
       
   899 
       
   900 /*!
       
   901     \qmlproperty variant Video::flash
       
   902 
       
   903     \sa {QtMultimedia::Flash}
       
   904 */
       
   905 
       
   906 /*!
       
   907     \qmlproperty variant Video::focalLength
       
   908 
       
   909     \sa {QtMultimedia::FocalLength}
       
   910 */
       
   911 
       
   912 /*!
       
   913     \qmlproperty variant Video::exposureMode
       
   914 
       
   915     \sa {QtMultimedia::ExposureMode}
       
   916 */
       
   917 
       
   918 /*!
       
   919     \qmlproperty variant Video::whiteBalance
       
   920 
       
   921     \sa {QtMultimedia::WhiteBalance}
       
   922 */
       
   923 
       
   924 /*!
       
   925     \qmlproperty variant Video::DigitalZoomRatio
       
   926 
       
   927     \sa {QtMultimedia::DigitalZoomRatio}
       
   928 */
       
   929 
       
   930 /*!
       
   931     \qmlproperty variant Video::focalLengthIn35mmFilm
       
   932 
       
   933     \sa {QtMultimedia::FocalLengthIn35mmFile}
       
   934 */
       
   935 
       
   936 /*!
       
   937     \qmlproperty variant Video::sceneCaptureType
       
   938 
       
   939     \sa {QtMultimedia::SceneCaptureType}
       
   940 */
       
   941 
       
   942 /*!
       
   943     \qmlproperty variant Video::gainControl
       
   944 
       
   945     \sa {QtMultimedia::GainControl}
       
   946 */
       
   947 
       
   948 /*!
       
   949     \qmlproperty variant Video::contrast
       
   950 
       
   951     \sa {QtMultimedia::contrast}
       
   952 */
       
   953 
       
   954 /*!
       
   955     \qmlproperty variant Video::saturation
       
   956 
       
   957     \sa {QtMultimedia::Saturation}
       
   958 */
       
   959 
       
   960 /*!
       
   961     \qmlproperty variant Video::sharpness
       
   962 
       
   963     \sa {QtMultimedia::Sharpness}
       
   964 */
       
   965 
       
   966 /*!
       
   967     \qmlproperty variant Video::deviceSettingDescription
       
   968 
       
   969     \sa {QtMultimedia::DeviceSettingDescription}
       
   970 */
       
   971 
       
   972 #endif
       
   973 
       
   974 #include "moc_qdeclarativevideo_p.cpp"