Changed metadata keys type from enum to QString.

This allows to combine metaData and extendedMetaData
and simplify metadata handling on both backend and application sides.

Change-Id: I136eedc86c215be3485db101c43069ca7c82101b
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
This commit is contained in:
Dmytro Poplavskiy
2012-01-16 16:40:47 +10:00
committed by Qt by Nokia
parent 382ba7d4f4
commit 8ff5b88b27
54 changed files with 736 additions and 1050 deletions

View File

@@ -346,7 +346,7 @@ Item {
This property holds the title of the media.
\sa {QtMultimedia::Title}
\sa {QtMultimedia::MetaData::Title}
*/
/*!
@@ -354,7 +354,7 @@ Item {
This property holds the sub-title of the media.
\sa {QtMultimedia::SubTitle}
\sa {QtMultimedia::MetaData::SubTitle}
*/
/*!
@@ -362,7 +362,7 @@ Item {
This property holds the author of the media.
\sa {QtMultimedia::Author}
\sa {QtMultimedia::MetaData::Author}
*/
/*!
@@ -370,7 +370,7 @@ Item {
This property holds a user comment about the media.
\sa {QtMultimedia::Comment}
\sa {QtMultimedia::MetaData::Comment}
*/
/*!
@@ -378,7 +378,7 @@ Item {
This property holds a description of the media.
\sa {QtMultimedia::Description}
\sa {QtMultimedia::MetaData::Description}
*/
/*!
@@ -386,7 +386,7 @@ Item {
This property holds the category of the media
\sa {QtMultimedia::Category}
\sa {QtMultimedia::MetaData::Category}
*/
/*!
@@ -394,7 +394,7 @@ Item {
This property holds the genre of the media.
\sa {QtMultimedia::Genre}
\sa {QtMultimedia::MetaData::Genre}
*/
/*!
@@ -402,7 +402,7 @@ Item {
This property holds the year of release of the media.
\sa {QtMultimedia::Year}
\sa {QtMultimedia::MetaData::Year}
*/
/*!
@@ -410,7 +410,7 @@ Item {
This property holds the date of the media.
\sa {QtMultimedia::Date}
\sa {QtMultimedia::MetaData::Date}
*/
/*!
@@ -418,7 +418,7 @@ Item {
This property holds a user rating of the media in the range of 0 to 100.
\sa {QtMultimedia::UserRating}
\sa {QtMultimedia::MetaData::UserRating}
*/
/*!
@@ -426,7 +426,7 @@ Item {
This property holds a list of keywords describing the media.
\sa {QtMultimedia::Keywords}
\sa {QtMultimedia::MetaData::Keywords}
*/
/*!
@@ -434,7 +434,7 @@ Item {
This property holds the language of the media, as an ISO 639-2 code.
\sa {QtMultimedia::Language}
\sa {QtMultimedia::MetaData::Language}
*/
/*!
@@ -442,7 +442,7 @@ Item {
This property holds the publisher of the media.
\sa {QtMultimedia::Publisher}
\sa {QtMultimedia::MetaData::Publisher}
*/
/*!
@@ -450,7 +450,7 @@ Item {
This property holds the media's copyright notice.
\sa {QtMultimedia::Copyright}
\sa {QtMultimedia::MetaData::Copyright}
*/
/*!
@@ -458,7 +458,7 @@ Item {
This property holds the parental rating of the media.
\sa {QtMultimedia::ParentalRating}
\sa {QtMultimedia::MetaData::ParentalRating}
*/
/*!
@@ -467,7 +467,7 @@ Item {
This property holds the name of the rating organization responsible for the
parental rating of the media.
\sa {QtMultimedia::RatingOrganization}
\sa {QtMultimedia::MetaData::RatingOrganization}
*/
/*!
@@ -475,7 +475,7 @@ Item {
This property property holds the size of the media in bytes.
\sa {QtMultimedia::Size}
\sa {QtMultimedia::MetaData::Size}
*/
/*!
@@ -483,7 +483,7 @@ Item {
This property holds the type of the media.
\sa {QtMultimedia::MediaType}
\sa {QtMultimedia::MetaData::MediaType}
*/
/*!
@@ -492,7 +492,7 @@ Item {
This property holds the bit rate of the media's audio stream in bits per
second.
\sa {QtMultimedia::AudioBitRate}
\sa {QtMultimedia::MetaData::AudioBitRate}
*/
/*!
@@ -500,7 +500,7 @@ Item {
This property holds the encoding of the media audio stream.
\sa {QtMultimedia::AudioCodec}
\sa {QtMultimedia::MetaData::AudioCodec}
*/
/*!
@@ -508,7 +508,7 @@ Item {
This property holds the average volume level of the media.
\sa {QtMultimedia::AverageLevel}
\sa {QtMultimedia::MetaData::AverageLevel}
*/
/*!
@@ -516,7 +516,7 @@ Item {
This property holds the number of channels in the media's audio stream.
\sa {QtMultimedia::ChannelCount}
\sa {QtMultimedia::MetaData::ChannelCount}
*/
/*!
@@ -524,7 +524,7 @@ Item {
This property holds the peak volume of the media's audio stream.
\sa {QtMultimedia::PeakValue}
\sa {QtMultimedia::MetaData::PeakValue}
*/
/*!
@@ -532,7 +532,7 @@ Item {
This property holds the sample rate of the media's audio stream in Hertz.
\sa {QtMultimedia::SampleRate}
\sa {QtMultimedia::MetaData::SampleRate}
*/
/*!
@@ -540,7 +540,7 @@ Item {
This property holds the title of the album the media belongs to.
\sa {QtMultimedia::AlbumTitle}
\sa {QtMultimedia::MetaData::AlbumTitle}
*/
/*!
@@ -549,7 +549,7 @@ Item {
This property holds the name of the principal artist of the album the media
belongs to.
\sa {QtMultimedia::AlbumArtist}
\sa {QtMultimedia::MetaData::AlbumArtist}
*/
/*!
@@ -557,7 +557,7 @@ Item {
This property holds the names of artists contributing to the media.
\sa {QtMultimedia::ContributingArtist}
\sa {QtMultimedia::MetaData::ContributingArtist}
*/
/*!
@@ -565,7 +565,7 @@ Item {
This property holds the composer of the media.
\sa {QtMultimedia::Composer}
\sa {QtMultimedia::MetaData::Composer}
*/
/*!
@@ -573,7 +573,7 @@ Item {
This property holds the conductor of the media.
\sa {QtMultimedia::Conductor}
\sa {QtMultimedia::MetaData::Conductor}
*/
/*!
@@ -581,7 +581,7 @@ Item {
This property holds the lyrics to the media.
\sa {QtMultimedia::Lyrics}
\sa {QtMultimedia::MetaData::Lyrics}
*/
/*!
@@ -589,7 +589,7 @@ Item {
This property holds the mood of the media.
\sa {QtMultimedia::Mood}
\sa {QtMultimedia::MetaData::Mood}
*/
/*!
@@ -597,7 +597,7 @@ Item {
This property holds the track number of the media.
\sa {QtMultimedia::TrackNumber}
\sa {QtMultimedia::MetaData::TrackNumber}
*/
/*!
@@ -605,7 +605,7 @@ Item {
This property holds the number of track on the album containing the media.
\sa {QtMultimedia::TrackNumber}
\sa {QtMultimedia::MetaData::TrackNumber}
*/
/*!
@@ -613,7 +613,7 @@ Item {
This property holds the URL of a small cover art image.
\sa {QtMultimedia::CoverArtUrlSmall}
\sa {QtMultimedia::MetaData::CoverArtUrlSmall}
*/
/*!
@@ -621,7 +621,7 @@ Item {
This property holds the URL of a large cover art image.
\sa {QtMultimedia::CoverArtUrlLarge}
\sa {QtMultimedia::MetaData::CoverArtUrlLarge}
*/
/*!
@@ -629,7 +629,7 @@ Item {
This property holds the dimension of an image or video.
\sa {QtMultimedia::Resolution}
\sa {QtMultimedia::MetaData::Resolution}
*/
/*!
@@ -637,7 +637,7 @@ Item {
This property holds the pixel aspect ratio of an image or video.
\sa {QtMultimedia::PixelAspectRatio}
\sa {QtMultimedia::MetaData::PixelAspectRatio}
*/
/*!
@@ -645,7 +645,7 @@ Item {
This property holds the frame rate of the media's video stream.
\sa {QtMultimedia::VideoFrameRate}
\sa {QtMultimedia::MetaData::VideoFrameRate}
*/
/*!
@@ -654,7 +654,7 @@ Item {
This property holds the bit rate of the media's video stream in bits per
second.
\sa {QtMultimedia::VideoBitRate}
\sa {QtMultimedia::MetaData::VideoBitRate}
*/
/*!
@@ -662,7 +662,7 @@ Item {
This property holds the encoding of the media's video stream.
\sa {QtMultimedia::VideoCodec}
\sa {QtMultimedia::MetaData::VideoCodec}
*/
/*!
@@ -670,7 +670,7 @@ Item {
This property holds the URL of a poster image.
\sa {QtMultimedia::PosterUrl}
\sa {QtMultimedia::MetaData::PosterUrl}
*/
/*!
@@ -678,7 +678,7 @@ Item {
This property holds the chapter number of the media.
\sa {QtMultimedia::ChapterNumber}
\sa {QtMultimedia::MetaData::ChapterNumber}
*/
/*!
@@ -686,7 +686,7 @@ Item {
This property holds the director of the media.
\sa {QtMultimedia::Director}
\sa {QtMultimedia::MetaData::Director}
*/
/*!
@@ -694,7 +694,7 @@ Item {
This property holds the lead performer in the media.
\sa {QtMultimedia::LeadPerformer}
\sa {QtMultimedia::MetaData::LeadPerformer}
*/
/*!
@@ -702,7 +702,7 @@ Item {
This property holds the writer of the media.
\sa {QtMultimedia::Writer}
\sa {QtMultimedia::MetaData::Writer}
*/
// The remaining properties are related to photos, and are technically
@@ -711,156 +711,156 @@ Item {
/*!
\qmlproperty variant Video::metaData.cameraManufacturer
\sa {QtMultimedia::CameraManufacturer}
\sa {QtMultimedia::MetaData::CameraManufacturer}
*/
/*!
\qmlproperty variant Video::metaData.cameraModel
\sa {QtMultimedia::CameraModel}
\sa {QtMultimedia::MetaData::CameraModel}
*/
/*!
\qmlproperty variant Video::metaData.event
\sa {QtMultimedia::Event}
\sa {QtMultimedia::MetaData::Event}
*/
/*!
\qmlproperty variant Video::metaData.subject
\sa {QtMultimedia::Subject}
\sa {QtMultimedia::MetaData::Subject}
*/
/*!
\qmlproperty variant Video::metaData.orientation
\sa {QtMultimedia::Orientation}
\sa {QtMultimedia::MetaData::Orientation}
*/
/*!
\qmlproperty variant Video::metaData.exposureTime
\sa {QtMultimedia::ExposureTime}
\sa {QtMultimedia::MetaData::ExposureTime}
*/
/*!
\qmlproperty variant Video::metaData.fNumber
\sa {QtMultimedia::FNumber}
\sa {QtMultimedia::MetaData::FNumber}
*/
/*!
\qmlproperty variant Video::metaData.exposureProgram
\sa {QtMultimedia::ExposureProgram}
\sa {QtMultimedia::MetaData::ExposureProgram}
*/
/*!
\qmlproperty variant Video::metaData.isoSpeedRatings
\sa {QtMultimedia::ISOSpeedRatings}
\sa {QtMultimedia::MetaData::ISOSpeedRatings}
*/
/*!
\qmlproperty variant Video::metaData.exposureBiasValue
\sa {QtMultimedia::ExposureBiasValue}
\sa {QtMultimedia::MetaData::ExposureBiasValue}
*/
/*!
\qmlproperty variant Video::metaData.dateTimeDigitized
\sa {QtMultimedia::DateTimeDigitized}
\sa {QtMultimedia::MetaData::DateTimeDigitized}
*/
/*!
\qmlproperty variant Video::metaData.subjectDistance
\sa {QtMultimedia::SubjectDistance}
\sa {QtMultimedia::MetaData::SubjectDistance}
*/
/*!
\qmlproperty variant Video::metaData.meteringMode
\sa {QtMultimedia::MeteringMode}
\sa {QtMultimedia::MetaData::MeteringMode}
*/
/*!
\qmlproperty variant Video::metaData.lightSource
\sa {QtMultimedia::LightSource}
\sa {QtMultimedia::MetaData::LightSource}
*/
/*!
\qmlproperty variant Video::metaData.flash
\sa {QtMultimedia::Flash}
\sa {QtMultimedia::MetaData::Flash}
*/
/*!
\qmlproperty variant Video::metaData.focalLength
\sa {QtMultimedia::FocalLength}
\sa {QtMultimedia::MetaData::FocalLength}
*/
/*!
\qmlproperty variant Video::metaData.exposureMode
\sa {QtMultimedia::ExposureMode}
\sa {QtMultimedia::MetaData::ExposureMode}
*/
/*!
\qmlproperty variant Video::metaData.whiteBalance
\sa {QtMultimedia::WhiteBalance}
\sa {QtMultimedia::MetaData::WhiteBalance}
*/
/*!
\qmlproperty variant Video::metaData.DigitalZoomRatio
\sa {QtMultimedia::DigitalZoomRatio}
\sa {QtMultimedia::MetaData::DigitalZoomRatio}
*/
/*!
\qmlproperty variant Video::metaData.focalLengthIn35mmFilm
\sa {QtMultimedia::FocalLengthIn35mmFile}
\sa {QtMultimedia::MetaData::FocalLengthIn35mmFile}
*/
/*!
\qmlproperty variant Video::metaData.sceneCaptureType
\sa {QtMultimedia::SceneCaptureType}
\sa {QtMultimedia::MetaData::SceneCaptureType}
*/
/*!
\qmlproperty variant Video::metaData.gainControl
\sa {QtMultimedia::GainControl}
\sa {QtMultimedia::MetaData::GainControl}
*/
/*!
\qmlproperty variant Video::metaData.contrast
\sa {QtMultimedia::contrast}
\sa {QtMultimedia::MetaData::contrast}
*/
/*!
\qmlproperty variant Video::metaData.saturation
\sa {QtMultimedia::Saturation}
\sa {QtMultimedia::MetaData::Saturation}
*/
/*!
\qmlproperty variant Video::metaData.sharpness
\sa {QtMultimedia::Sharpness}
\sa {QtMultimedia::MetaData::Sharpness}
*/
/*!
\qmlproperty variant Video::metaData.deviceSettingDescription
\sa {QtMultimedia::DeviceSettingDescription}
\sa {QtMultimedia::MetaData::DeviceSettingDescription}
*/

View File

@@ -363,7 +363,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the tile of the media.
\sa {QtMultimedia::Title}
\sa {QtMultimedia::MetaData::Title}
*/
/*!
@@ -371,7 +371,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the sub-title of the media.
\sa {QtMultimedia::SubTitle}
\sa {QtMultimedia::MetaData::SubTitle}
*/
/*!
@@ -379,7 +379,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the author of the media.
\sa {QtMultimedia::Author}
\sa {QtMultimedia::MetaData::Author}
*/
/*!
@@ -387,7 +387,7 @@ void QDeclarativeAudio::componentComplete()
This property holds a user comment about the media.
\sa {QtMultimedia::Comment}
\sa {QtMultimedia::MetaData::Comment}
*/
/*!
@@ -395,7 +395,7 @@ void QDeclarativeAudio::componentComplete()
This property holds a description of the media.
\sa {QtMultimedia::Description}
\sa {QtMultimedia::MetaData::Description}
*/
/*!
@@ -403,7 +403,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the category of the media
\sa {QtMultimedia::Category}
\sa {QtMultimedia::MetaData::Category}
*/
/*!
@@ -411,7 +411,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the genre of the media.
\sa {QtMultimedia::Genre}
\sa {QtMultimedia::MetaData::Genre}
*/
/*!
@@ -419,7 +419,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the year of release of the media.
\sa {QtMultimedia::Year}
\sa {QtMultimedia::MetaData::Year}
*/
/*!
@@ -427,7 +427,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the date of the media.
\sa {QtMultimedia::Date}
\sa {QtMultimedia::MetaData::Date}
*/
/*!
@@ -435,7 +435,7 @@ void QDeclarativeAudio::componentComplete()
This property holds a user rating of the media in the range of 0 to 100.
\sa {QtMultimedia::UserRating}
\sa {QtMultimedia::MetaData::UserRating}
*/
/*!
@@ -443,7 +443,7 @@ void QDeclarativeAudio::componentComplete()
This property holds a list of keywords describing the media.
\sa {QtMultimedia::Keywords}
\sa {QtMultimedia::MetaData::Keywords}
*/
/*!
@@ -451,7 +451,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the language of the media, as an ISO 639-2 code.
\sa {QtMultimedia::Language}
\sa {QtMultimedia::MetaData::Language}
*/
/*!
@@ -459,7 +459,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the publisher of the media.
\sa {QtMultimedia::Publisher}
\sa {QtMultimedia::MetaData::Publisher}
*/
/*!
@@ -467,7 +467,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the media's copyright notice.
\sa {QtMultimedia::Copyright}
\sa {QtMultimedia::MetaData::Copyright}
*/
/*!
@@ -475,7 +475,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the parental rating of the media.
\sa {QtMultimedia::ParentalRating}
\sa {QtMultimedia::MetaData::ParentalRating}
*/
/*!
@@ -484,7 +484,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the name of the rating organization responsible for the
parental rating of the media.
\sa {QtMultimedia::RatingOrganization}
\sa {QtMultimedia::MetaData::RatingOrganization}
*/
/*!
@@ -492,7 +492,7 @@ void QDeclarativeAudio::componentComplete()
This property property holds the size of the media in bytes.
\sa {QtMultimedia::Size}
\sa {QtMultimedia::MetaData::Size}
*/
/*!
@@ -500,7 +500,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the type of the media.
\sa {QtMultimedia::MediaType}
\sa {QtMultimedia::MetaData::MediaType}
*/
/*!
@@ -509,7 +509,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the bit rate of the media's audio stream ni bits per
second.
\sa {QtMultimedia::AudioBitRate}
\sa {QtMultimedia::MetaData::AudioBitRate}
*/
/*!
@@ -517,7 +517,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the encoding of the media audio stream.
\sa {QtMultimedia::AudioCodec}
\sa {QtMultimedia::MetaData::AudioCodec}
*/
/*!
@@ -525,7 +525,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the average volume level of the media.
\sa {QtMultimedia::AverageLevel}
\sa {QtMultimedia::MetaData::AverageLevel}
*/
/*!
@@ -533,7 +533,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the number of channels in the media's audio stream.
\sa {QtMultimedia::ChannelCount}
\sa {QtMultimedia::MetaData::ChannelCount}
*/
/*!
@@ -541,7 +541,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the peak volume of media's audio stream.
\sa {QtMultimedia::PeakValue}
\sa {QtMultimedia::MetaData::PeakValue}
*/
/*!
@@ -549,7 +549,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the sample rate of the media's audio stream in hertz.
\sa {QtMultimedia::SampleRate}
\sa {QtMultimedia::MetaData::SampleRate}
*/
/*!
@@ -557,7 +557,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the title of the album the media belongs to.
\sa {QtMultimedia::AlbumTitle}
\sa {QtMultimedia::MetaData::AlbumTitle}
*/
/*!
@@ -566,7 +566,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the name of the principal artist of the album the media
belongs to.
\sa {QtMultimedia::AlbumArtist}
\sa {QtMultimedia::MetaData::AlbumArtist}
*/
/*!
@@ -574,7 +574,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the names of artists contributing to the media.
\sa {QtMultimedia::ContributingArtist}
\sa {QtMultimedia::MetaData::ContributingArtist}
*/
/*!
@@ -582,7 +582,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the composer of the media.
\sa {QtMultimedia::Composer}
\sa {QtMultimedia::MetaData::Composer}
*/
/*!
@@ -590,7 +590,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the conductor of the media.
\sa {QtMultimedia::Conductor}
\sa {QtMultimedia::MetaData::Conductor}
*/
/*!
@@ -598,7 +598,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the lyrics to the media.
\sa {QtMultimedia::Lyrics}
\sa {QtMultimedia::MetaData::Lyrics}
*/
/*!
@@ -606,7 +606,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the mood of the media.
\sa {QtMultimedia::Mood}
\sa {QtMultimedia::MetaData::Mood}
*/
/*!
@@ -614,7 +614,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the track number of the media.
\sa {QtMultimedia::TrackNumber}
\sa {QtMultimedia::MetaData::TrackNumber}
*/
/*!
@@ -622,7 +622,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the number of track on the album containing the media.
\sa {QtMultimedia::TrackNumber}
\sa {QtMultimedia::MetaData::TrackNumber}
*/
/*!
@@ -630,7 +630,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the URL of a small cover art image.
\sa {QtMultimedia::CoverArtUrlSmall}
\sa {QtMultimedia::MetaData::CoverArtUrlSmall}
*/
/*!
@@ -638,7 +638,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the URL of a large cover art image.
\sa {QtMultimedia::CoverArtUrlLarge}
\sa {QtMultimedia::MetaData::CoverArtUrlLarge}
*/
/*!
@@ -646,7 +646,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the dimension of an image or video.
\sa {QtMultimedia::Resolution}
\sa {QtMultimedia::MetaData::Resolution}
*/
/*!
@@ -654,7 +654,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the pixel aspect ratio of an image or video.
\sa {QtMultimedia::PixelAspectRatio}
\sa {QtMultimedia::MetaData::PixelAspectRatio}
*/
/*!
@@ -662,7 +662,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the frame rate of the media's video stream.
\sa {QtMultimedia::VideoFrameRate}
\sa {QtMultimedia::MetaData::VideoFrameRate}
*/
/*!
@@ -671,7 +671,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the bit rate of the media's video stream in bits per
second.
\sa {QtMultimedia::VideoBitRate}
\sa {QtMultimedia::MetaData::VideoBitRate}
*/
/*!
@@ -679,7 +679,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the encoding of the media's video stream.
\sa {QtMultimedia::VideoCodec}
\sa {QtMultimedia::MetaData::VideoCodec}
*/
/*!
@@ -687,7 +687,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the URL of a poster image.
\sa {QtMultimedia::PosterUrl}
\sa {QtMultimedia::MetaData::PosterUrl}
*/
/*!
@@ -695,7 +695,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the chapter number of the media.
\sa {QtMultimedia::ChapterNumber}
\sa {QtMultimedia::MetaData::ChapterNumber}
*/
/*!
@@ -703,7 +703,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the director of the media.
\sa {QtMultimedia::Director}
\sa {QtMultimedia::MetaData::Director}
*/
/*!
@@ -711,7 +711,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the lead performer in the media.
\sa {QtMultimedia::LeadPerformer}
\sa {QtMultimedia::MetaData::LeadPerformer}
*/
/*!
@@ -719,7 +719,7 @@ void QDeclarativeAudio::componentComplete()
This property holds the writer of the media.
\sa {QtMultimedia::Writer}
\sa {QtMultimedia::MetaData::Writer}
*/
QT_END_NAMESPACE

View File

@@ -210,7 +210,7 @@ QString QDeclarativeCameraCapture::errorString() const
void QDeclarativeCameraCapture::setMetadata(const QString &key, const QVariant &value)
{
if (m_metadataWriterControl)
m_metadataWriterControl->setExtendedMetaData(key, value);
m_metadataWriterControl->setMetaData(key, value);
}
/*!

View File

@@ -206,7 +206,7 @@ void QDeclarativeCameraRecorder::setMuted(bool muted)
void QDeclarativeCameraRecorder::setMetadata(const QString &key, const QVariant &value)
{
m_recorder->setExtendedMetaData(key, value);
m_recorder->setMetaData(key, value);
}
void QDeclarativeCameraRecorder::updateRecorderState(QMediaRecorder::State state)

View File

@@ -109,12 +109,8 @@ public:
bool isMetaDataAvailable() const { return false; }
QVariant metaData(QtMultimedia::MetaData) const { return QVariant(); }
QList<QtMultimedia::MetaData> availableMetaData() const {
return QList<QtMultimedia::MetaData>(); }
QVariant extendedMetaData(const QString &) const { return QVariant(); }
QStringList availableExtendedMetaData() const { return QStringList(); }
QVariant metaData(const QString &) const { return QVariant(); }
QStringList availableMetaData() const { return QStringList(); }
};
class QDeclarativeMediaBaseAnimation : public QObject

View File

@@ -117,57 +117,57 @@ public:
{
}
QVariant title() const { return m_control->metaData(QtMultimedia::Title); }
QVariant subTitle() const { return m_control->metaData(QtMultimedia::SubTitle); }
QVariant author() const { return m_control->metaData(QtMultimedia::Author); }
QVariant comment() const { return m_control->metaData(QtMultimedia::Comment); }
QVariant description() const { return m_control->metaData(QtMultimedia::Description); }
QVariant category() const { return m_control->metaData(QtMultimedia::Category); }
QVariant genre() const { return m_control->metaData(QtMultimedia::Genre); }
QVariant year() const { return m_control->metaData(QtMultimedia::Year); }
QVariant date() const { return m_control->metaData(QtMultimedia::Date); }
QVariant userRating() const { return m_control->metaData(QtMultimedia::UserRating); }
QVariant keywords() const { return m_control->metaData(QtMultimedia::Keywords); }
QVariant language() const { return m_control->metaData(QtMultimedia::Language); }
QVariant publisher() const { return m_control->metaData(QtMultimedia::Publisher); }
QVariant copyright() const { return m_control->metaData(QtMultimedia::Copyright); }
QVariant parentalRating() const { return m_control->metaData(QtMultimedia::ParentalRating); }
QVariant title() const { return m_control->metaData(QtMultimedia::MetaData::Title); }
QVariant subTitle() const { return m_control->metaData(QtMultimedia::MetaData::SubTitle); }
QVariant author() const { return m_control->metaData(QtMultimedia::MetaData::Author); }
QVariant comment() const { return m_control->metaData(QtMultimedia::MetaData::Comment); }
QVariant description() const { return m_control->metaData(QtMultimedia::MetaData::Description); }
QVariant category() const { return m_control->metaData(QtMultimedia::MetaData::Category); }
QVariant genre() const { return m_control->metaData(QtMultimedia::MetaData::Genre); }
QVariant year() const { return m_control->metaData(QtMultimedia::MetaData::Year); }
QVariant date() const { return m_control->metaData(QtMultimedia::MetaData::Date); }
QVariant userRating() const { return m_control->metaData(QtMultimedia::MetaData::UserRating); }
QVariant keywords() const { return m_control->metaData(QtMultimedia::MetaData::Keywords); }
QVariant language() const { return m_control->metaData(QtMultimedia::MetaData::Language); }
QVariant publisher() const { return m_control->metaData(QtMultimedia::MetaData::Publisher); }
QVariant copyright() const { return m_control->metaData(QtMultimedia::MetaData::Copyright); }
QVariant parentalRating() const { return m_control->metaData(QtMultimedia::MetaData::ParentalRating); }
QVariant ratingOrganization() const {
return m_control->metaData(QtMultimedia::RatingOrganization); }
QVariant size() const { return m_control->metaData(QtMultimedia::Size); }
QVariant mediaType() const { return m_control->metaData(QtMultimedia::MediaType); }
QVariant duration() const { return m_control->metaData(QtMultimedia::Duration); }
QVariant audioBitRate() const { return m_control->metaData(QtMultimedia::AudioBitRate); }
QVariant audioCodec() const { return m_control->metaData(QtMultimedia::AudioCodec); }
QVariant averageLevel() const { return m_control->metaData(QtMultimedia::AverageLevel); }
QVariant channelCount() const { return m_control->metaData(QtMultimedia::ChannelCount); }
QVariant peakValue() const { return m_control->metaData(QtMultimedia::PeakValue); }
QVariant sampleRate() const { return m_control->metaData(QtMultimedia::SampleRate); }
QVariant albumTitle() const { return m_control->metaData(QtMultimedia::AlbumTitle); }
QVariant albumArtist() const { return m_control->metaData(QtMultimedia::AlbumArtist); }
return m_control->metaData(QtMultimedia::MetaData::RatingOrganization); }
QVariant size() const { return m_control->metaData(QtMultimedia::MetaData::Size); }
QVariant mediaType() const { return m_control->metaData(QtMultimedia::MetaData::MediaType); }
QVariant duration() const { return m_control->metaData(QtMultimedia::MetaData::Duration); }
QVariant audioBitRate() const { return m_control->metaData(QtMultimedia::MetaData::AudioBitRate); }
QVariant audioCodec() const { return m_control->metaData(QtMultimedia::MetaData::AudioCodec); }
QVariant averageLevel() const { return m_control->metaData(QtMultimedia::MetaData::AverageLevel); }
QVariant channelCount() const { return m_control->metaData(QtMultimedia::MetaData::ChannelCount); }
QVariant peakValue() const { return m_control->metaData(QtMultimedia::MetaData::PeakValue); }
QVariant sampleRate() const { return m_control->metaData(QtMultimedia::MetaData::SampleRate); }
QVariant albumTitle() const { return m_control->metaData(QtMultimedia::MetaData::AlbumTitle); }
QVariant albumArtist() const { return m_control->metaData(QtMultimedia::MetaData::AlbumArtist); }
QVariant contributingArtist() const {
return m_control->metaData(QtMultimedia::ContributingArtist); }
QVariant composer() const { return m_control->metaData(QtMultimedia::Composer); }
QVariant conductor() const { return m_control->metaData(QtMultimedia::Conductor); }
QVariant lyrics() const { return m_control->metaData(QtMultimedia::Lyrics); }
QVariant mood() const { return m_control->metaData(QtMultimedia::Mood); }
QVariant trackNumber() const { return m_control->metaData(QtMultimedia::TrackNumber); }
QVariant trackCount() const { return m_control->metaData(QtMultimedia::TrackCount); }
return m_control->metaData(QtMultimedia::MetaData::ContributingArtist); }
QVariant composer() const { return m_control->metaData(QtMultimedia::MetaData::Composer); }
QVariant conductor() const { return m_control->metaData(QtMultimedia::MetaData::Conductor); }
QVariant lyrics() const { return m_control->metaData(QtMultimedia::MetaData::Lyrics); }
QVariant mood() const { return m_control->metaData(QtMultimedia::MetaData::Mood); }
QVariant trackNumber() const { return m_control->metaData(QtMultimedia::MetaData::TrackNumber); }
QVariant trackCount() const { return m_control->metaData(QtMultimedia::MetaData::TrackCount); }
QVariant coverArtUrlSmall() const {
return m_control->metaData(QtMultimedia::CoverArtUrlSmall); }
return m_control->metaData(QtMultimedia::MetaData::CoverArtUrlSmall); }
QVariant coverArtUrlLarge() const {
return m_control->metaData(QtMultimedia::CoverArtUrlLarge); }
QVariant resolution() const { return m_control->metaData(QtMultimedia::Resolution); }
return m_control->metaData(QtMultimedia::MetaData::CoverArtUrlLarge); }
QVariant resolution() const { return m_control->metaData(QtMultimedia::MetaData::Resolution); }
QVariant pixelAspectRatio() const {
return m_control->metaData(QtMultimedia::PixelAspectRatio); }
QVariant videoFrameRate() const { return m_control->metaData(QtMultimedia::VideoFrameRate); }
QVariant videoBitRate() const { return m_control->metaData(QtMultimedia::VideoBitRate); }
QVariant videoCodec() const { return m_control->metaData(QtMultimedia::VideoCodec); }
QVariant posterUrl() const { return m_control->metaData(QtMultimedia::PosterUrl); }
QVariant chapterNumber() const { return m_control->metaData(QtMultimedia::ChapterNumber); }
QVariant director() const { return m_control->metaData(QtMultimedia::Director); }
QVariant leadPerformer() const { return m_control->metaData(QtMultimedia::LeadPerformer); }
QVariant writer() const { return m_control->metaData(QtMultimedia::Writer); }
return m_control->metaData(QtMultimedia::MetaData::PixelAspectRatio); }
QVariant videoFrameRate() const { return m_control->metaData(QtMultimedia::MetaData::VideoFrameRate); }
QVariant videoBitRate() const { return m_control->metaData(QtMultimedia::MetaData::VideoBitRate); }
QVariant videoCodec() const { return m_control->metaData(QtMultimedia::MetaData::VideoCodec); }
QVariant posterUrl() const { return m_control->metaData(QtMultimedia::MetaData::PosterUrl); }
QVariant chapterNumber() const { return m_control->metaData(QtMultimedia::MetaData::ChapterNumber); }
QVariant director() const { return m_control->metaData(QtMultimedia::MetaData::Director); }
QVariant leadPerformer() const { return m_control->metaData(QtMultimedia::MetaData::LeadPerformer); }
QVariant writer() const { return m_control->metaData(QtMultimedia::MetaData::Writer); }
Q_SIGNALS:
void metaDataChanged();

View File

@@ -203,8 +203,6 @@ bool QCameraImageCapture::setMediaObject(QMediaObject *mediaObject)
this, SIGNAL(imageCaptured(int,QImage)));
disconnect(d->control, SIGNAL(imageAvailable(int,QVideoFrame)),
this, SIGNAL(imageAvailable(int,QVideoFrame)));
disconnect(d->control, SIGNAL(imageMetadataAvailable(int,QtMultimedia::MetaData,QVariant)),
this, SIGNAL(imageMetadataAvailable(int,QtMultimedia::MetaData,QVariant)));
disconnect(d->control, SIGNAL(imageMetadataAvailable(int,QString,QVariant)),
this, SIGNAL(imageMetadataAvailable(int,QString,QVariant)));
disconnect(d->control, SIGNAL(imageSaved(int,QString)),
@@ -255,8 +253,6 @@ bool QCameraImageCapture::setMediaObject(QMediaObject *mediaObject)
this, SIGNAL(imageExposed(int)));
connect(d->control, SIGNAL(imageCaptured(int,QImage)),
this, SIGNAL(imageCaptured(int,QImage)));
connect(d->control, SIGNAL(imageMetadataAvailable(int,QtMultimedia::MetaData,QVariant)),
this, SIGNAL(imageMetadataAvailable(int,QtMultimedia::MetaData,QVariant)));
connect(d->control, SIGNAL(imageMetadataAvailable(int,QString,QVariant)),
this, SIGNAL(imageMetadataAvailable(int,QString,QVariant)));
connect(d->control, SIGNAL(imageAvailable(int,QVideoFrame)),
@@ -614,25 +610,14 @@ void QCameraImageCapture::cancelCapture()
Frame \a preview can be displayed to user.
*/
/*!
\fn QCameraImageCapture::imageMetadataAvailable(int id, QtMultimedia::MetaData key, const QVariant &value)
Signals that a metadata for an image with request \a id is available.
This signal is emitted for metadata \a value with a \a key listed in QtMultimedia::MetaData enum.
This signal is emitted between imageExposed and imageSaved signals.
*/
/*!
\fn QCameraImageCapture::imageMetadataAvailable(int id, const QString &key, const QVariant &value)
Signals that a metadata for an image with request \a id is available.
This signal is emitted for extended metadata \a value with a \a key not listed in QtMultimedia::MetaData enum.
This signal is emitted between imageExposed and imageSaved signals.
*/
/*!
\fn QCameraImageCapture::imageAvailable(int id, const QVideoFrame &buffer)

View File

@@ -136,7 +136,6 @@ Q_SIGNALS:
void imageExposed(int id);
void imageCaptured(int id, const QImage &preview);
void imageMetadataAvailable(int id, QtMultimedia::MetaData key, const QVariant &value);
void imageMetadataAvailable(int id, const QString &key, const QVariant &value);
void imageAvailable(int id, const QVideoFrame &image);
void imageSaved(int id, const QString &fileName);

View File

@@ -136,21 +136,10 @@ QCameraImageCaptureControl::~QCameraImageCaptureControl()
has been captured and a \a preview is available.
*/
/*!
\fn QCameraImageCaptureControl::imageMetadataAvailable(int id, QtMultimedia::MetaData key, const QVariant &value)
Signals that a metadata for an image with request \a id is available.
This signal is emitted for metadata \a value with a \a key listed in QtMultimedia::MetaData enum.
This signal should be emitted between imageExposed and imageSaved signals.
*/
/*!
\fn QCameraImageCaptureControl::imageMetadataAvailable(int id, const QString &key, const QVariant &value)
Signals that a metadata for an image with request \a id is available.
This signal is emitted for extended metadata \a value with a \a key not listed in QtMultimedia::MetaData enum.
This signal should be emitted between imageExposed and imageSaved signals.
*/

View File

@@ -76,7 +76,6 @@ Q_SIGNALS:
void imageExposed(int id);
void imageCaptured(int id, const QImage &preview);
void imageMetadataAvailable(int id, QtMultimedia::MetaData key, const QVariant &value);
void imageMetadataAvailable(int id, const QString &key, const QVariant &value);
void imageAvailable(int id, const QVideoFrame &buffer);
void imageSaved(int id, const QString &fileName);

View File

@@ -125,11 +125,12 @@ QMediaStreamsControl::~QMediaStreamsControl()
*/
/*!
\fn QMediaStreamsControl::metaData(int stream, QtMultimedia::MetaData key)
\fn QMediaStreamsControl::metaData(int stream, const QString &key)
Returns the meta-data value of \a key for a given \a stream.
Useful metadata keya are QtMultimedia::Title, QtMultimedia::Description and QtMultimedia::Language.
Useful metadata keys are QtMultimedia::MetaData::Title,
QtMultimedia::MetaData::Description and QtMultimedia::MetaData::Language.
*/
/*!

View File

@@ -67,7 +67,7 @@ public:
virtual int streamCount() = 0;
virtual StreamType streamType(int streamNumber) = 0;
virtual QVariant metaData(int streamNumber, QtMultimedia::MetaData key) = 0;
virtual QVariant metaData(int streamNumber, const QString &key) = 0;
virtual bool isActive(int streamNumber) = 0;
virtual void setActive(int streamNumber, bool state) = 0;

View File

@@ -59,9 +59,8 @@ QT_BEGIN_NAMESPACE
If a QMediaService can provide read or write access to the meta-data of
its current media it will implement QMetaDataReaderControl. This control
provides functions for both retrieving and setting meta-data values.
Meta-data may be addressed by the well defined keys in the
QtMultimedia::MetaData enumeration using the metaData() functions, or by
string keys using the extendedMetaData() functions.
Meta-data may be addressed by the keys defined in the
QtMultimedia::MetaData namespace.
The functionality provided by this control is exposed to application
code by the meta-data members of QMediaObject, and so meta-data access
@@ -112,7 +111,7 @@ QMetaDataReaderControl::~QMetaDataReaderControl()
*/
/*!
\fn QVariant QMetaDataReaderControl::metaData(QtMultimedia::MetaData key) const
\fn QVariant QMetaDataReaderControl::metaData(const QString &key) const
Returns the meta-data for the given \a key.
*/
@@ -123,22 +122,6 @@ QMetaDataReaderControl::~QMetaDataReaderControl()
Returns a list of keys there is meta-data available for.
*/
/*!
\fn QMetaDataReaderControl::extendedMetaData(const QString &key) const
Returns the metaData for an abitrary string \a key.
The valid selection of keys for extended meta-data is determined by the provider and the meaning
and type may differ between providers.
*/
/*!
\fn QMetaDataReaderControl::availableExtendedMetaData() const
Returns a list of keys there is extended meta-data available for.
*/
/*!
\fn void QMetaDataReaderControl::metaDataChanged()

View File

@@ -66,11 +66,8 @@ public:
virtual bool isMetaDataAvailable() const = 0;
virtual QVariant metaData(QtMultimedia::MetaData key) const = 0;
virtual QList<QtMultimedia::MetaData> availableMetaData() const = 0;
virtual QVariant extendedMetaData(const QString &key) const = 0;
virtual QStringList availableExtendedMetaData() const = 0;
virtual QVariant metaData(const QString &key) const = 0;
virtual QStringList availableMetaData() const = 0;
Q_SIGNALS:
void metaDataChanged();

View File

@@ -59,9 +59,8 @@ QT_BEGIN_NAMESPACE
If a QMediaService can provide write access to the meta-data of its
current media it will implement QMetaDataWriterControl. This control
provides functions for both retrieving and setting meta-data values.
Meta-data may be addressed by the well defined keys in the
QtMultimedia::MetaData enumeration using the metaData() functions, or
by string keys using the extendedMetaData() functions.
Meta-data may be addressed by the keys defined in the
QtMultimedia::MetaData namespace.
The functionality provided by this control is exposed to application code
by the meta-data members of QMediaObject, and so meta-data access is
@@ -119,13 +118,13 @@ QMetaDataWriterControl::~QMetaDataWriterControl()
*/
/*!
\fn QVariant QMetaDataWriterControl::metaData(QtMultimedia::MetaData key) const
\fn QVariant QMetaDataWriterControl::metaData(const QString &key) const
Returns the meta-data for the given \a key.
*/
/*!
\fn void QMetaDataWriterControl::setMetaData(QtMultimedia::MetaData key, const QVariant &value)
\fn void QMetaDataWriterControl::setMetaData(const QString &key, const QVariant &value)
Sets the \a value of the meta-data element with the given \a key.
*/
@@ -136,31 +135,6 @@ QMetaDataWriterControl::~QMetaDataWriterControl()
Returns a list of keys there is meta-data available for.
*/
/*!
\fn QMetaDataWriterControl::extendedMetaData(const QString &key) const
Returns the meta-data for an abitrary string \a key.
The valid selection of keys for extended meta-data is determined by the provider and the meaning
and type may differ between providers.
*/
/*!
\fn QMetaDataWriterControl::setExtendedMetaData(const QString &key, const QVariant &value)
Change the value of the meta-data element with an abitrary string \a key to \a value.
The valid selection of keys for extended meta-data is determined by the provider and the meaning
and type may differ between providers.
*/
/*!
\fn QMetaDataWriterControl::availableExtendedMetaData() const
Returns a list of keys there is extended meta-data available for.
*/
/*!
\fn void QMetaDataWriterControl::metaDataChanged()

View File

@@ -67,14 +67,9 @@ public:
virtual bool isWritable() const = 0;
virtual bool isMetaDataAvailable() const = 0;
virtual QVariant metaData(QtMultimedia::MetaData key) const = 0;
virtual void setMetaData(QtMultimedia::MetaData key, const QVariant &value) = 0;
virtual QList<QtMultimedia::MetaData> availableMetaData() const = 0;
virtual QVariant extendedMetaData(const QString &key) const = 0;
virtual void setExtendedMetaData(const QString &key, const QVariant &value) = 0;
virtual QStringList availableExtendedMetaData() const = 0;
virtual QVariant metaData(const QString &key) const = 0;
virtual void setMetaData(const QString &key, const QVariant &value) = 0;
virtual QStringList availableMetaData() const = 0;
Q_SIGNALS:
void metaDataChanged();

View File

@@ -322,7 +322,7 @@ bool QMediaObject::isMetaDataAvailable() const
/*!
Returns the value associated with a meta-data \a key.
*/
QVariant QMediaObject::metaData(QtMultimedia::MetaData key) const
QVariant QMediaObject::metaData(const QString &key) const
{
Q_D(const QMediaObject);
@@ -334,13 +334,13 @@ QVariant QMediaObject::metaData(QtMultimedia::MetaData key) const
/*!
Returns a list of keys there is meta-data available for.
*/
QList<QtMultimedia::MetaData> QMediaObject::availableMetaData() const
QStringList QMediaObject::availableMetaData() const
{
Q_D(const QMediaObject);
return d->metaDataControl
? d->metaDataControl->availableMetaData()
: QList<QtMultimedia::MetaData>();
: QStringList();
}
/*!
@@ -349,34 +349,6 @@ QList<QtMultimedia::MetaData> QMediaObject::availableMetaData() const
Signals that this media object's meta-data has changed.
*/
/*!
Returns the value associated with a meta-data \a key.
The naming and type of extended meta-data is not standardized, so the values and meaning
of keys may vary between backends.
*/
QVariant QMediaObject::extendedMetaData(const QString &key) const
{
Q_D(const QMediaObject);
return d->metaDataControl
? d->metaDataControl->extendedMetaData(key)
: QVariant();
}
/*!
Returns a list of keys there is extended meta-data available for.
*/
QStringList QMediaObject::availableExtendedMetaData() const
{
Q_D(const QMediaObject);
return d->metaDataControl
? d->metaDataControl->availableExtendedMetaData()
: QStringList();
}
void QMediaObject::setupMetaData()
{
Q_D(QMediaObject);

View File

@@ -79,11 +79,8 @@ public:
bool isMetaDataAvailable() const;
QVariant metaData(QtMultimedia::MetaData key) const;
QList<QtMultimedia::MetaData> availableMetaData() const;
QVariant extendedMetaData(const QString &key) const;
QStringList availableExtendedMetaData() const;
QVariant metaData(const QString &key) const;
QStringList availableMetaData() const;
Q_SIGNALS:
void notifyIntervalChanged(int milliSeconds);

View File

@@ -54,17 +54,127 @@ namespace
{
qRegisterMetaType<QtMultimedia::AvailabilityError>();
qRegisterMetaType<QtMultimedia::SupportEstimate>();
qRegisterMetaType<QtMultimedia::MetaData>();
qRegisterMetaType<QtMultimedia::EncodingMode>();
qRegisterMetaType<QtMultimedia::EncodingQuality>();
}
} _registerMetaTypes;
}
/*!
\enum QtMultimedia::MetaData
/*
When these conditions are satisfied, QStringLiteral is implemented by
gcc's statement-expression extension. However, in this file it will
not work, because "statement-expressions are not allowed outside functions
nor in template-argument lists".
This enum provides identifiers for meta-data attributes.
Fall back to the less-performant QLatin1String in this case.
*/
#if defined(QStringLiteral) && defined(QT_UNICODE_LITERAL_II) && defined(Q_CC_GNU) && !defined(Q_COMPILER_LAMBDA)
# undef QStringLiteral
# define QStringLiteral QLatin1String
#endif
#define Q_DEFINE_METADATA(key) const QString QtMultimedia::MetaData::key(QStringLiteral(#key))
// Common
Q_DEFINE_METADATA(Title);
Q_DEFINE_METADATA(SubTitle);
Q_DEFINE_METADATA(Author);
Q_DEFINE_METADATA(Comment);
Q_DEFINE_METADATA(Description);
Q_DEFINE_METADATA(Category);
Q_DEFINE_METADATA(Genre);
Q_DEFINE_METADATA(Year);
Q_DEFINE_METADATA(Date);
Q_DEFINE_METADATA(UserRating);
Q_DEFINE_METADATA(Keywords);
Q_DEFINE_METADATA(Language);
Q_DEFINE_METADATA(Publisher);
Q_DEFINE_METADATA(Copyright);
Q_DEFINE_METADATA(ParentalRating);
Q_DEFINE_METADATA(RatingOrganization);
// Media
Q_DEFINE_METADATA(Size);
Q_DEFINE_METADATA(MediaType);
Q_DEFINE_METADATA(Duration);
// Audio
Q_DEFINE_METADATA(AudioBitRate);
Q_DEFINE_METADATA(AudioCodec);
Q_DEFINE_METADATA(AverageLevel);
Q_DEFINE_METADATA(ChannelCount);
Q_DEFINE_METADATA(PeakValue);
Q_DEFINE_METADATA(SampleRate);
// Music
Q_DEFINE_METADATA(AlbumTitle);
Q_DEFINE_METADATA(AlbumArtist);
Q_DEFINE_METADATA(ContributingArtist);
Q_DEFINE_METADATA(Composer);
Q_DEFINE_METADATA(Conductor);
Q_DEFINE_METADATA(Lyrics);
Q_DEFINE_METADATA(Mood);
Q_DEFINE_METADATA(TrackNumber);
Q_DEFINE_METADATA(TrackCount);
Q_DEFINE_METADATA(CoverArtUrlSmall);
Q_DEFINE_METADATA(CoverArtUrlLarge);
// Image/Video
Q_DEFINE_METADATA(Resolution);
Q_DEFINE_METADATA(PixelAspectRatio);
// Video
Q_DEFINE_METADATA(VideoFrameRate);
Q_DEFINE_METADATA(VideoBitRate);
Q_DEFINE_METADATA(VideoCodec);
Q_DEFINE_METADATA(PosterUrl);
// Movie
Q_DEFINE_METADATA(ChapterNumber);
Q_DEFINE_METADATA(Director);
Q_DEFINE_METADATA(LeadPerformer);
Q_DEFINE_METADATA(Writer);
// Photos
Q_DEFINE_METADATA(CameraManufacturer);
Q_DEFINE_METADATA(CameraModel);
Q_DEFINE_METADATA(Event);
Q_DEFINE_METADATA(Subject);
Q_DEFINE_METADATA(Orientation);
Q_DEFINE_METADATA(ExposureTime);
Q_DEFINE_METADATA(FNumber);
Q_DEFINE_METADATA(ExposureProgram);
Q_DEFINE_METADATA(ISOSpeedRatings);
Q_DEFINE_METADATA(ExposureBiasValue);
Q_DEFINE_METADATA(DateTimeOriginal);
Q_DEFINE_METADATA(DateTimeDigitized);
Q_DEFINE_METADATA(SubjectDistance);
Q_DEFINE_METADATA(MeteringMode);
Q_DEFINE_METADATA(LightSource);
Q_DEFINE_METADATA(Flash);
Q_DEFINE_METADATA(FocalLength);
Q_DEFINE_METADATA(ExposureMode);
Q_DEFINE_METADATA(WhiteBalance);
Q_DEFINE_METADATA(DigitalZoomRatio);
Q_DEFINE_METADATA(FocalLengthIn35mmFilm);
Q_DEFINE_METADATA(SceneCaptureType);
Q_DEFINE_METADATA(GainControl);
Q_DEFINE_METADATA(Contrast);
Q_DEFINE_METADATA(Saturation);
Q_DEFINE_METADATA(Sharpness);
Q_DEFINE_METADATA(DeviceSettingDescription);
Q_DEFINE_METADATA(PosterImage);
Q_DEFINE_METADATA(CoverArtImage);
Q_DEFINE_METADATA(ThumbnailImage);
/*!
\namespace QtMultimedia::MetaData
This namespace provides identifiers for meta-data attributes.
\note Not all identifiers are supported on all platforms. Please consult vendor documentation for specific support
on different platforms.

View File

@@ -44,6 +44,7 @@
#include <QtCore/qpair.h>
#include <QtCore/qmetatype.h>
#include <QtCore/qstring.h>
#include <qtmultimediadefs.h>
@@ -53,106 +54,106 @@ QT_BEGIN_NAMESPACE
QT_MODULE(Multimedia)
#define Q_DECLARE_METADATA(key) Q_MULTIMEDIA_EXPORT extern const QString key
namespace QtMultimedia
{
enum MetaData
{
namespace MetaData {
// Common
Title,
SubTitle,
Author,
Comment,
Description,
Category,
Genre,
Year,
Date,
UserRating,
Keywords,
Language,
Publisher,
Copyright,
ParentalRating,
RatingOrganization,
Q_DECLARE_METADATA(Title);
Q_DECLARE_METADATA(SubTitle);
Q_DECLARE_METADATA(Author);
Q_DECLARE_METADATA(Comment);
Q_DECLARE_METADATA(Description);
Q_DECLARE_METADATA(Category);
Q_DECLARE_METADATA(Genre);
Q_DECLARE_METADATA(Year);
Q_DECLARE_METADATA(Date);
Q_DECLARE_METADATA(UserRating);
Q_DECLARE_METADATA(Keywords);
Q_DECLARE_METADATA(Language);
Q_DECLARE_METADATA(Publisher);
Q_DECLARE_METADATA(Copyright);
Q_DECLARE_METADATA(ParentalRating);
Q_DECLARE_METADATA(RatingOrganization);
// Media
Size,
MediaType,
Duration,
Q_DECLARE_METADATA(Size);
Q_DECLARE_METADATA(MediaType);
Q_DECLARE_METADATA(Duration);
// Audio
AudioBitRate,
AudioCodec,
AverageLevel,
ChannelCount,
PeakValue,
SampleRate,
Q_DECLARE_METADATA(AudioBitRate);
Q_DECLARE_METADATA(AudioCodec);
Q_DECLARE_METADATA(AverageLevel);
Q_DECLARE_METADATA(ChannelCount);
Q_DECLARE_METADATA(PeakValue);
Q_DECLARE_METADATA(SampleRate);
// Music
AlbumTitle,
AlbumArtist,
ContributingArtist,
Composer,
Conductor,
Lyrics,
Mood,
TrackNumber,
TrackCount,
Q_DECLARE_METADATA(AlbumTitle);
Q_DECLARE_METADATA(AlbumArtist);
Q_DECLARE_METADATA(ContributingArtist);
Q_DECLARE_METADATA(Composer);
Q_DECLARE_METADATA(Conductor);
Q_DECLARE_METADATA(Lyrics);
Q_DECLARE_METADATA(Mood);
Q_DECLARE_METADATA(TrackNumber);
Q_DECLARE_METADATA(TrackCount);
CoverArtUrlSmall,
CoverArtUrlLarge,
Q_DECLARE_METADATA(CoverArtUrlSmall);
Q_DECLARE_METADATA(CoverArtUrlLarge);
// Image/Video
Resolution,
PixelAspectRatio,
Q_DECLARE_METADATA(Resolution);
Q_DECLARE_METADATA(PixelAspectRatio);
// Video
VideoFrameRate,
VideoBitRate,
VideoCodec,
Q_DECLARE_METADATA(VideoFrameRate);
Q_DECLARE_METADATA(VideoBitRate);
Q_DECLARE_METADATA(VideoCodec);
PosterUrl,
Q_DECLARE_METADATA(PosterUrl);
// Movie
ChapterNumber,
Director,
LeadPerformer,
Writer,
Q_DECLARE_METADATA(ChapterNumber);
Q_DECLARE_METADATA(Director);
Q_DECLARE_METADATA(LeadPerformer);
Q_DECLARE_METADATA(Writer);
// Photos
CameraManufacturer,
CameraModel,
Event,
Subject,
Orientation,
ExposureTime,
FNumber,
ExposureProgram,
ISOSpeedRatings,
ExposureBiasValue,
DateTimeOriginal,
DateTimeDigitized,
SubjectDistance,
MeteringMode,
LightSource,
Flash,
FocalLength,
ExposureMode,
WhiteBalance,
DigitalZoomRatio,
FocalLengthIn35mmFilm,
SceneCaptureType,
GainControl,
Contrast,
Saturation,
Sharpness,
DeviceSettingDescription,
Q_DECLARE_METADATA(CameraManufacturer);
Q_DECLARE_METADATA(CameraModel);
Q_DECLARE_METADATA(Event);
Q_DECLARE_METADATA(Subject);
Q_DECLARE_METADATA(Orientation);
Q_DECLARE_METADATA(ExposureTime);
Q_DECLARE_METADATA(FNumber);
Q_DECLARE_METADATA(ExposureProgram);
Q_DECLARE_METADATA(ISOSpeedRatings);
Q_DECLARE_METADATA(ExposureBiasValue);
Q_DECLARE_METADATA(DateTimeOriginal);
Q_DECLARE_METADATA(DateTimeDigitized);
Q_DECLARE_METADATA(SubjectDistance);
Q_DECLARE_METADATA(MeteringMode);
Q_DECLARE_METADATA(LightSource);
Q_DECLARE_METADATA(Flash);
Q_DECLARE_METADATA(FocalLength);
Q_DECLARE_METADATA(ExposureMode);
Q_DECLARE_METADATA(WhiteBalance);
Q_DECLARE_METADATA(DigitalZoomRatio);
Q_DECLARE_METADATA(FocalLengthIn35mmFilm);
Q_DECLARE_METADATA(SceneCaptureType);
Q_DECLARE_METADATA(GainControl);
Q_DECLARE_METADATA(Contrast);
Q_DECLARE_METADATA(Saturation);
Q_DECLARE_METADATA(Sharpness);
Q_DECLARE_METADATA(DeviceSettingDescription);
PosterImage,
CoverArtImage,
ThumbnailImage
};
Q_DECLARE_METADATA(PosterImage);
Q_DECLARE_METADATA(CoverArtImage);
Q_DECLARE_METADATA(ThumbnailImage);
}
enum SupportEstimate
{
@@ -189,11 +190,12 @@ namespace QtMultimedia
}
#undef Q_DECLARE_METADATA
QT_END_NAMESPACE
Q_DECLARE_METATYPE(QtMultimedia::AvailabilityError)
Q_DECLARE_METATYPE(QtMultimedia::SupportEstimate)
Q_DECLARE_METATYPE(QtMultimedia::MetaData)
Q_DECLARE_METATYPE(QtMultimedia::EncodingMode)
Q_DECLARE_METATYPE(QtMultimedia::EncodingQuality)

View File

@@ -764,7 +764,7 @@ bool QMediaRecorder::isMetaDataWritable() const
/*!
Returns the value associated with a meta-data \a key.
*/
QVariant QMediaRecorder::metaData(QtMultimedia::MetaData key) const
QVariant QMediaRecorder::metaData(const QString &key) const
{
Q_D(const QMediaRecorder);
@@ -779,7 +779,7 @@ QVariant QMediaRecorder::metaData(QtMultimedia::MetaData key) const
\note To ensure that meta data is set corretly, it should be set before starting the recording.
Once the recording is stopped, any meta data set will be attached to the next recording.
*/
void QMediaRecorder::setMetaData(QtMultimedia::MetaData key, const QVariant &value)
void QMediaRecorder::setMetaData(const QString &key, const QVariant &value)
{
Q_D(QMediaRecorder);
@@ -790,13 +790,13 @@ void QMediaRecorder::setMetaData(QtMultimedia::MetaData key, const QVariant &val
/*!
Returns a list of keys there is meta-data available for.
*/
QList<QtMultimedia::MetaData> QMediaRecorder::availableMetaData() const
QStringList QMediaRecorder::availableMetaData() const
{
Q_D(const QMediaRecorder);
return d->metaDataControl
? d->metaDataControl->availableMetaData()
: QList<QtMultimedia::MetaData>();
: QStringList();
}
/*!
@@ -805,47 +805,6 @@ QList<QtMultimedia::MetaData> QMediaRecorder::availableMetaData() const
Signals that a media object's meta-data has changed.
*/
/*!
Returns the value associated with a meta-data \a key.
The naming and type of extended meta-data is not standardized, so the values and meaning
of keys may vary between backends.
*/
QVariant QMediaRecorder::extendedMetaData(const QString &key) const
{
Q_D(const QMediaRecorder);
return d->metaDataControl
? d->metaDataControl->extendedMetaData(key)
: QVariant();
}
/*!
Sets a \a value for a meta-data \a key.
The naming and type of extended meta-data is not standardized, so the values and meaning
of keys may vary between backends.
*/
void QMediaRecorder::setExtendedMetaData(const QString &key, const QVariant &value)
{
Q_D(QMediaRecorder);
if (d->metaDataControl)
d->metaDataControl->setExtendedMetaData(key, value);
}
/*!
Returns a list of keys there is extended meta-data available for.
*/
QStringList QMediaRecorder::availableExtendedMetaData() const
{
Q_D(const QMediaRecorder);
return d->metaDataControl
? d->metaDataControl->availableExtendedMetaData()
: QStringList();
}
#include "moc_qmediarecorder.cpp"
QT_END_NAMESPACE

View File

@@ -145,13 +145,9 @@ public:
bool isMetaDataAvailable() const;
bool isMetaDataWritable() const;
QVariant metaData(QtMultimedia::MetaData key) const;
void setMetaData(QtMultimedia::MetaData key, const QVariant &value);
QList<QtMultimedia::MetaData> availableMetaData() const;
QVariant extendedMetaData(const QString &key) const;
void setExtendedMetaData(const QString &key, const QVariant &value);
QStringList availableExtendedMetaData() const;
QVariant metaData(const QString &key) const;
void setMetaData(const QString &key, const QVariant &value);
QStringList availableMetaData() const;
public Q_SLOTS:
void record();

View File

@@ -54,76 +54,76 @@ namespace
{
struct QWMMetaDataKeyLookup
{
QtMultimedia::MetaData key;
QString key;
const wchar_t *token;
};
}
static const QWMMetaDataKeyLookup qt_wmMetaDataKeys[] =
{
{ QtMultimedia::Title, L"Title" },
{ QtMultimedia::SubTitle, L"WM/SubTitle" },
{ QtMultimedia::Author, L"Author" },
{ QtMultimedia::Comment, L"Comment" },
{ QtMultimedia::Description, L"Description" },
{ QtMultimedia::Category, L"WM/Category" },
{ QtMultimedia::Genre, L"WM/Genre" },
//{ QtMultimedia::Date, 0 },
{ QtMultimedia::Year, L"WM/Year" },
{ QtMultimedia::UserRating, L"UserRating" },
//{ QtMultimedia::MetaDatawords, 0 },
{ QtMultimedia::Language, L"Language" },
{ QtMultimedia::Publisher, L"WM/Publisher" },
{ QtMultimedia::Copyright, L"Copyright" },
{ QtMultimedia::ParentalRating, L"ParentalRating" },
{ QtMultimedia::RatingOrganization, L"RatingOrganisation" },
{ QtMultimedia::MetaData::Title, L"Title" },
{ QtMultimedia::MetaData::SubTitle, L"WM/SubTitle" },
{ QtMultimedia::MetaData::Author, L"Author" },
{ QtMultimedia::MetaData::Comment, L"Comment" },
{ QtMultimedia::MetaData::Description, L"Description" },
{ QtMultimedia::MetaData::Category, L"WM/Category" },
{ QtMultimedia::MetaData::Genre, L"WM/Genre" },
//{ QtMultimedia::MetaData::Date, 0 },
{ QtMultimedia::MetaData::Year, L"WM/Year" },
{ QtMultimedia::MetaData::UserRating, L"UserRating" },
//{ QtMultimedia::MetaData::MetaDatawords, 0 },
{ QtMultimedia::MetaData::Language, L"Language" },
{ QtMultimedia::MetaData::Publisher, L"WM/Publisher" },
{ QtMultimedia::MetaData::Copyright, L"Copyright" },
{ QtMultimedia::MetaData::ParentalRating, L"ParentalRating" },
{ QtMultimedia::MetaData::RatingOrganisation, L"RatingOrganisation" },
// Media
{ QtMultimedia::Size, L"FileSize" },
{ QtMultimedia::MediaType, L"MediaType" },
{ QtMultimedia::Duration, L"Duration" },
{ QtMultimedia::MetaData::Size, L"FileSize" },
{ QtMultimedia::MetaData::MediaType, L"MediaType" },
{ QtMultimedia::MetaData::Duration, L"Duration" },
// Audio
{ QtMultimedia::AudioBitRate, L"AudioBitRate" },
{ QtMultimedia::AudioCodec, L"AudioCodec" },
{ QtMultimedia::ChannelCount, L"ChannelCount" },
{ QtMultimedia::SampleRate, L"Frequency" },
{ QtMultimedia::MetaData::AudioBitRate, L"AudioBitRate" },
{ QtMultimedia::MetaData::AudioCodec, L"AudioCodec" },
{ QtMultimedia::MetaData::ChannelCount, L"ChannelCount" },
{ QtMultimedia::MetaData::SampleRate, L"Frequency" },
// Music
{ QtMultimedia::AlbumTitle, L"WM/AlbumTitle" },
{ QtMultimedia::AlbumArtist, L"WM/AlbumArtist" },
{ QtMultimedia::ContributingArtist, L"Author" },
{ QtMultimedia::Composer, L"WM/Composer" },
{ QtMultimedia::Conductor, L"WM/Conductor" },
{ QtMultimedia::Lyrics, L"WM/Lyrics" },
{ QtMultimedia::Mood, L"WM/Mood" },
{ QtMultimedia::TrackNumber, L"WM/TrackNumber" },
//{ QtMultimedia::TrackCount, 0 },
//{ QtMultimedia::CoverArtUriSmall, 0 },
//{ QtMultimedia::CoverArtUriLarge, 0 },
{ QtMultimedia::MetaData::AlbumTitle, L"WM/AlbumTitle" },
{ QtMultimedia::MetaData::AlbumArtist, L"WM/AlbumArtist" },
{ QtMultimedia::MetaData::ContributingArtist, L"Author" },
{ QtMultimedia::MetaData::Composer, L"WM/Composer" },
{ QtMultimedia::MetaData::Conductor, L"WM/Conductor" },
{ QtMultimedia::MetaData::Lyrics, L"WM/Lyrics" },
{ QtMultimedia::MetaData::Mood, L"WM/Mood" },
{ QtMultimedia::MetaData::TrackNumber, L"WM/TrackNumber" },
//{ QtMultimedia::MetaData::TrackCount, 0 },
//{ QtMultimedia::MetaData::CoverArtUriSmall, 0 },
//{ QtMultimedia::MetaData::CoverArtUriLarge, 0 },
// Image/Video
//{ QtMultimedia::Resolution, 0 },
//{ QtMultimedia::PixelAspectRatio, 0 },
//{ QtMultimedia::MetaData::Resolution, 0 },
//{ QtMultimedia::MetaData::PixelAspectRatio, 0 },
// Video
//{ QtMultimedia::FrameRate, 0 },
{ QtMultimedia::VideoBitRate, L"VideoBitRate" },
{ QtMultimedia::VideoCodec, L"VideoCodec" },
//{ QtMultimedia::MetaData::FrameRate, 0 },
{ QtMultimedia::MetaData::VideoBitRate, L"VideoBitRate" },
{ QtMultimedia::MetaData::VideoCodec, L"VideoCodec" },
//{ QtMultimedia::PosterUri, 0 },
//{ QtMultimedia::MetaData::PosterUri, 0 },
// Movie
{ QtMultimedia::ChapterNumber, L"ChapterNumber" },
{ QtMultimedia::Director, L"WM/Director" },
{ QtMultimedia::LeadPerformer, L"LeadPerformer" },
{ QtMultimedia::Writer, L"WM/Writer" },
{ QtMultimedia::MetaData::ChapterNumber, L"ChapterNumber" },
{ QtMultimedia::MetaData::Director, L"WM/Director" },
{ QtMultimedia::MetaData::LeadPerformer, L"LeadPerformer" },
{ QtMultimedia::MetaData::Writer, L"WM/Writer" },
// Photos
{ QtMultimedia::CameraManufacturer, L"CameraManufacturer" },
{ QtMultimedia::CameraModel, L"CameraModel" },
{ QtMultimedia::Event, L"Event" },
{ QtMultimedia::Subject, L"Subject" }
{ QtMultimedia::MetaData::CameraManufacturer, L"CameraManufacturer" },
{ QtMultimedia::MetaData::CameraModel, L"CameraModel" },
{ QtMultimedia::MetaData::Event, L"Event" },
{ QtMultimedia::MetaData::Subject, L"Subject" }
};
static QVariant getValue(IWMHeaderInfo *header, const wchar_t *key)
@@ -249,7 +249,7 @@ bool DirectShowMetaDataControl::isMetaDataAvailable() const
#endif
}
QVariant DirectShowMetaDataControl::metaData(QtMultimedia::MetaData key) const
QVariant DirectShowMetaDataControl::metaData(const QString &key) const
{
QVariant value;
@@ -268,25 +268,16 @@ QVariant DirectShowMetaDataControl::metaData(QtMultimedia::MetaData key) const
#endif
BSTR string = 0;
switch (key) {
case QtMultimedia::Author:
if (key == QtMultimedia::MetaData::Author)
m_content->get_AuthorName(&string);
break;
case QtMultimedia::Title:
else if (key == QtMultimedia::MetaData::Title)
m_content->get_Title(&string);
break;
case QtMultimedia::ParentalRating:
else if (key == QtMultimedia::MetaData::ParentalRating)
m_content->get_Rating(&string);
break;
case QtMultimedia::Description:
else if (key == QtMultimedia::MetaData::Description)
m_content->get_Description(&string);
break;
case QtMultimedia::Copyright:
else if (key == QtMultimedia::MetaData::Copyright)
m_content->get_Copyright(&string);
break;
default:
break;
}
if (string) {
value = QString::fromUtf16(reinterpret_cast<ushort *>(string), ::SysStringLen(string));
@@ -297,17 +288,7 @@ QVariant DirectShowMetaDataControl::metaData(QtMultimedia::MetaData key) const
return value;
}
QList<QtMultimedia::MetaData> DirectShowMetaDataControl::availableMetaData() const
{
return QList<QtMultimedia::MetaData>();
}
QVariant DirectShowMetaDataControl::extendedMetaData(const QString &) const
{
return QVariant();
}
QStringList DirectShowMetaDataControl::availableExtendedMetaData() const
QStringList DirectShowMetaDataControl::availableMetaData() const
{
return QStringList();
}

View File

@@ -67,11 +67,8 @@ public:
bool isMetaDataAvailable() const;
QVariant metaData(QtMultimedia::MetaData key) const;
QList<QtMultimedia::MetaData> availableMetaData() const;
QVariant extendedMetaData(const QString &key) const;
QStringList availableExtendedMetaData() const;
QVariant metaData(const QString &key) const;
QStringList availableMetaData() const;
void updateGraph(IFilterGraph2 *graph, IBaseFilter *source);

View File

@@ -124,26 +124,26 @@ gboolean CameraBinImageCapture::metadataEventProbe(GstPad *pad, GstEvent *event,
qDebug() << "Capture event probe" << extendedTags;
#endif
QMap<QtMultimedia::MetaData, QVariant> tags;
tags[QtMultimedia::ISOSpeedRatings] = extendedTags.value("capturing-iso-speed");
tags[QtMultimedia::DigitalZoomRatio] = extendedTags.value("capturing-digital-zoom-ratio");
tags[QtMultimedia::ExposureTime] = extendedTags.value("capturing-shutter-speed");
tags[QtMultimedia::WhiteBalance] = extendedTags.value("capturing-white-balance");
tags[QtMultimedia::Flash] = extendedTags.value("capturing-flash-fired");
tags[QtMultimedia::FocalLengthIn35mmFilm] = extendedTags.value("capturing-focal-length");
tags[QtMultimedia::MeteringMode] = extendedTags.value("capturing-metering-mode");
tags[QtMultimedia::ExposureMode] = extendedTags.value("capturing-exposure-mode");
tags[QtMultimedia::FNumber] = extendedTags.value("capturing-focal-ratio");
tags[QtMultimedia::ExposureMode] = extendedTags.value("capturing-exposure-mode");
QVariantMap tags;
tags[QtMultimedia::MetaData::ISOSpeedRatings] = extendedTags.value("capturing-iso-speed");
tags[QtMultimedia::MetaData::DigitalZoomRatio] = extendedTags.value("capturing-digital-zoom-ratio");
tags[QtMultimedia::MetaData::ExposureTime] = extendedTags.value("capturing-shutter-speed");
tags[QtMultimedia::MetaData::WhiteBalance] = extendedTags.value("capturing-white-balance");
tags[QtMultimedia::MetaData::Flash] = extendedTags.value("capturing-flash-fired");
tags[QtMultimedia::MetaData::FocalLengthIn35mmFilm] = extendedTags.value("capturing-focal-length");
tags[QtMultimedia::MetaData::MeteringMode] = extendedTags.value("capturing-metering-mode");
tags[QtMultimedia::MetaData::ExposureMode] = extendedTags.value("capturing-exposure-mode");
tags[QtMultimedia::MetaData::FNumber] = extendedTags.value("capturing-focal-ratio");
tags[QtMultimedia::MetaData::ExposureMode] = extendedTags.value("capturing-exposure-mode");
QMapIterator<QtMultimedia::MetaData, QVariant> i(tags);
QMapIterator<QString, QVariant> i(tags);
while (i.hasNext()) {
i.next();
if (i.value().isValid()) {
QMetaObject::invokeMethod(self, "imageMetadataAvailable",
Qt::QueuedConnection,
Q_ARG(int, self->m_requestId),
Q_ARG(QtMultimedia::MetaData, i.key()),
Q_ARG(QString, i.key()),
Q_ARG(QVariant, i.value()));
}
}

View File

@@ -46,77 +46,77 @@
struct QGstreamerMetaDataKeyLookup
{
QtMultimedia::MetaData key;
QString key;
const char *token;
};
static const QGstreamerMetaDataKeyLookup qt_gstreamerMetaDataKeys[] =
{
{ QtMultimedia::Title, GST_TAG_TITLE },
//{ QtMultimedia::SubTitle, 0 },
//{ QtMultimedia::Author, 0 },
{ QtMultimedia::Comment, GST_TAG_COMMENT },
{ QtMultimedia::Description, GST_TAG_DESCRIPTION },
//{ QtMultimedia::Category, 0 },
{ QtMultimedia::Genre, GST_TAG_GENRE },
//{ QtMultimedia::Year, 0 },
//{ QtMultimedia::UserRating, 0 },
{ QtMultimedia::MetaData::Title, GST_TAG_TITLE },
//{ QtMultimedia::MetaData::SubTitle, 0 },
//{ QtMultimedia::MetaData::Author, 0 },
{ QtMultimedia::MetaData::Comment, GST_TAG_COMMENT },
{ QtMultimedia::MetaData::Description, GST_TAG_DESCRIPTION },
//{ QtMultimedia::MetaData::Category, 0 },
{ QtMultimedia::MetaData::Genre, GST_TAG_GENRE },
//{ QtMultimedia::MetaData::Year, 0 },
//{ QtMultimedia::MetaData::UserRating, 0 },
{ QtMultimedia::Language, GST_TAG_LANGUAGE_CODE },
{ QtMultimedia::MetaData::Language, GST_TAG_LANGUAGE_CODE },
{ QtMultimedia::Publisher, GST_TAG_ORGANIZATION },
{ QtMultimedia::Copyright, GST_TAG_COPYRIGHT },
//{ QtMultimedia::ParentalRating, 0 },
//{ QtMultimedia::RatingOrganization, 0 },
{ QtMultimedia::MetaData::Publisher, GST_TAG_ORGANIZATION },
{ QtMultimedia::MetaData::Copyright, GST_TAG_COPYRIGHT },
//{ QtMultimedia::MetaData::ParentalRating, 0 },
//{ QtMultimedia::MetaData::RatingOrganisation, 0 },
// Media
//{ QtMultimedia::Size, 0 },
//{ QtMultimedia::MediaType, 0 },
{ QtMultimedia::Duration, GST_TAG_DURATION },
//{ QtMultimedia::MetaData::Size, 0 },
//{ QtMultimedia::MetaData::MediaType, 0 },
{ QtMultimedia::MetaData::Duration, GST_TAG_DURATION },
// Audio
{ QtMultimedia::AudioBitRate, GST_TAG_BITRATE },
{ QtMultimedia::AudioCodec, GST_TAG_AUDIO_CODEC },
//{ QtMultimedia::ChannelCount, 0 },
//{ QtMultimedia::SampleRate, 0 },
{ QtMultimedia::MetaData::AudioBitRate, GST_TAG_BITRATE },
{ QtMultimedia::MetaData::AudioCodec, GST_TAG_AUDIO_CODEC },
//{ QtMultimedia::MetaData::ChannelCount, 0 },
//{ QtMultimedia::MetaData::SampleRate, 0 },
// Music
{ QtMultimedia::AlbumTitle, GST_TAG_ALBUM },
{ QtMultimedia::AlbumArtist, GST_TAG_ARTIST},
{ QtMultimedia::ContributingArtist, GST_TAG_PERFORMER },
{ QtMultimedia::MetaData::AlbumTitle, GST_TAG_ALBUM },
{ QtMultimedia::MetaData::AlbumArtist, GST_TAG_ARTIST},
{ QtMultimedia::MetaData::ContributingArtist, GST_TAG_PERFORMER },
#if (GST_VERSION_MAJOR >= 0) && (GST_VERSION_MINOR >= 10) && (GST_VERSION_MICRO >= 19)
{ QtMultimedia::Composer, GST_TAG_COMPOSER },
{ QtMultimedia::MetaData::Composer, GST_TAG_COMPOSER },
#endif
//{ QtMultimedia::Conductor, 0 },
//{ QtMultimedia::Lyrics, 0 },
//{ QtMultimedia::Mood, 0 },
{ QtMultimedia::TrackNumber, GST_TAG_TRACK_NUMBER },
//{ QtMultimedia::MetaData::Conductor, 0 },
//{ QtMultimedia::MetaData::Lyrics, 0 },
//{ QtMultimedia::MetaData::Mood, 0 },
{ QtMultimedia::MetaData::TrackNumber, GST_TAG_TRACK_NUMBER },
//{ QtMultimedia::CoverArtUrlSmall, 0 },
//{ QtMultimedia::CoverArtUrlLarge, 0 },
//{ QtMultimedia::MetaData::CoverArtUrlSmall, 0 },
//{ QtMultimedia::MetaData::CoverArtUrlLarge, 0 },
// Image/Video
//{ QtMultimedia::Resolution, 0 },
//{ QtMultimedia::PixelAspectRatio, 0 },
//{ QtMultimedia::MetaData::Resolution, 0 },
//{ QtMultimedia::MetaData::PixelAspectRatio, 0 },
// Video
//{ QtMultimedia::VideoFrameRate, 0 },
//{ QtMultimedia::VideoBitRate, 0 },
{ QtMultimedia::VideoCodec, GST_TAG_VIDEO_CODEC },
//{ QtMultimedia::MetaData::VideoFrameRate, 0 },
//{ QtMultimedia::MetaData::VideoBitRate, 0 },
{ QtMultimedia::MetaData::VideoCodec, GST_TAG_VIDEO_CODEC },
//{ QtMultimedia::PosterUrl, 0 },
//{ QtMultimedia::MetaData::PosterUrl, 0 },
// Movie
//{ QtMultimedia::ChapterNumber, 0 },
//{ QtMultimedia::Director, 0 },
{ QtMultimedia::LeadPerformer, GST_TAG_PERFORMER },
//{ QtMultimedia::Writer, 0 },
//{ QtMultimedia::MetaData::ChapterNumber, 0 },
//{ QtMultimedia::MetaData::Director, 0 },
{ QtMultimedia::MetaData::LeadPerformer, GST_TAG_PERFORMER },
//{ QtMultimedia::MetaData::Writer, 0 },
// Photos
//{ QtMultimedia::CameraManufacturer, 0 },
//{ QtMultimedia::CameraModel, 0 },
//{ QtMultimedia::Event, 0 },
//{ QtMultimedia::Subject, 0 }
//{ QtMultimedia::MetaData::CameraManufacturer, 0 },
//{ QtMultimedia::MetaData::CameraModel, 0 },
//{ QtMultimedia::MetaData::Event, 0 },
//{ QtMultimedia::MetaData::Subject, 0 }
};
CameraBinMetaData::CameraBinMetaData(QObject *parent)
@@ -124,7 +124,7 @@ CameraBinMetaData::CameraBinMetaData(QObject *parent)
{
}
QVariant CameraBinMetaData::metaData(QtMultimedia::MetaData key) const
QVariant CameraBinMetaData::metaData(const QString &key) const
{
static const int count = sizeof(qt_gstreamerMetaDataKeys) / sizeof(QGstreamerMetaDataKeyLookup);
@@ -138,7 +138,7 @@ QVariant CameraBinMetaData::metaData(QtMultimedia::MetaData key) const
return QVariant();
}
void CameraBinMetaData::setMetaData(QtMultimedia::MetaData key, const QVariant &value)
void CameraBinMetaData::setMetaData(const QString &key, const QVariant &value)
{
static const int count = sizeof(qt_gstreamerMetaDataKeys) / sizeof(QGstreamerMetaDataKeyLookup);
@@ -156,9 +156,9 @@ void CameraBinMetaData::setMetaData(QtMultimedia::MetaData key, const QVariant &
}
}
QList<QtMultimedia::MetaData> CameraBinMetaData::availableMetaData() const
QStringList CameraBinMetaData::availableMetaData() const
{
static QMap<QByteArray, QtMultimedia::MetaData> keysMap;
static QMap<QByteArray, QString> keysMap;
if (keysMap.isEmpty()) {
const int count = sizeof(qt_gstreamerMetaDataKeys) / sizeof(QGstreamerMetaDataKeyLookup);
for (int i = 0; i < count; ++i) {
@@ -166,33 +166,12 @@ QList<QtMultimedia::MetaData> CameraBinMetaData::availableMetaData() const
}
}
QList<QtMultimedia::MetaData> res;
QStringList res;
foreach (const QByteArray &key, m_values.keys()) {
QtMultimedia::MetaData tag = keysMap.value(key, QtMultimedia::MetaData(-1));
if (tag != -1)
QString tag = keysMap.value(key);
if (!tag.isEmpty())
res.append(tag);
}
return res;
}
QVariant CameraBinMetaData::extendedMetaData(QString const &name) const
{
return m_values.value(name.toLatin1());
}
void CameraBinMetaData::setExtendedMetaData(QString const &name, QVariant const &value)
{
m_values.insert(name.toLatin1(), value);
emit QMetaDataWriterControl::metaDataChanged();
emit metaDataChanged(m_values);
}
QStringList CameraBinMetaData::availableExtendedMetaData() const
{
QStringList res;
foreach (const QByteArray &key, m_values.keys())
res.append(QString(key));
return res;
}

View File

@@ -57,13 +57,9 @@ public:
bool isMetaDataAvailable() const { return true; }
bool isWritable() const { return true; }
QVariant metaData(QtMultimedia::MetaData key) const;
void setMetaData(QtMultimedia::MetaData key, const QVariant &value);
QList<QtMultimedia::MetaData> availableMetaData() const;
QVariant extendedMetaData(QString const &name) const;
void setExtendedMetaData(QString const &name, QVariant const &value);
QStringList availableExtendedMetaData() const;
QVariant metaData(const QString &key) const;
void setMetaData(const QString &key, const QVariant &value);
QStringList availableMetaData() const;
Q_SIGNALS:
void metaDataChanged(const QMap<QByteArray, QVariant>&);

View File

@@ -46,77 +46,77 @@
struct QGstreamerMetaDataKeyLookup
{
QtMultimedia::MetaData key;
QString key;
const char *token;
};
static const QGstreamerMetaDataKeyLookup qt_gstreamerMetaDataKeys[] =
{
{ QtMultimedia::Title, GST_TAG_TITLE },
//{ QtMultimedia::SubTitle, 0 },
//{ QtMultimedia::Author, 0 },
{ QtMultimedia::Comment, GST_TAG_COMMENT },
{ QtMultimedia::Description, GST_TAG_DESCRIPTION },
//{ QtMultimedia::Category, 0 },
{ QtMultimedia::Genre, GST_TAG_GENRE },
//{ QtMultimedia::Year, 0 },
//{ QtMultimedia::UserRating, 0 },
{ QtMultimedia::MetaData::Title, GST_TAG_TITLE },
//{ QtMultimedia::MetaData::SubTitle, 0 },
//{ QtMultimedia::MetaData::Author, 0 },
{ QtMultimedia::MetaData::Comment, GST_TAG_COMMENT },
{ QtMultimedia::MetaData::Description, GST_TAG_DESCRIPTION },
//{ QtMultimedia::MetaData::Category, 0 },
{ QtMultimedia::MetaData::Genre, GST_TAG_GENRE },
//{ QtMultimedia::MetaData::Year, 0 },
//{ QtMultimedia::MetaData::UserRating, 0 },
{ QtMultimedia::Language, GST_TAG_LANGUAGE_CODE },
{ QtMultimedia::MetaData::Language, GST_TAG_LANGUAGE_CODE },
{ QtMultimedia::Publisher, GST_TAG_ORGANIZATION },
{ QtMultimedia::Copyright, GST_TAG_COPYRIGHT },
//{ QtMultimedia::ParentalRating, 0 },
//{ QtMultimedia::RatingOrganization, 0 },
{ QtMultimedia::MetaData::Publisher, GST_TAG_ORGANIZATION },
{ QtMultimedia::MetaData::Copyright, GST_TAG_COPYRIGHT },
//{ QtMultimedia::MetaData::ParentalRating, 0 },
//{ QtMultimedia::MetaData::RatingOrganisation, 0 },
// Media
//{ QtMultimedia::Size, 0 },
//{ QtMultimedia::MediaType, 0 },
{ QtMultimedia::Duration, GST_TAG_DURATION },
//{ QtMultimedia::MetaData::Size, 0 },
//{ QtMultimedia::MetaData::MediaType, 0 },
{ QtMultimedia::MetaData::Duration, GST_TAG_DURATION },
// Audio
{ QtMultimedia::AudioBitRate, GST_TAG_BITRATE },
{ QtMultimedia::AudioCodec, GST_TAG_AUDIO_CODEC },
//{ QtMultimedia::ChannelCount, 0 },
//{ QtMultimedia::SampleRate, 0 },
{ QtMultimedia::MetaData::AudioBitRate, GST_TAG_BITRATE },
{ QtMultimedia::MetaData::AudioCodec, GST_TAG_AUDIO_CODEC },
//{ QtMultimedia::MetaData::ChannelCount, 0 },
//{ QtMultimedia::MetaData::SampleRate, 0 },
// Music
{ QtMultimedia::AlbumTitle, GST_TAG_ALBUM },
{ QtMultimedia::AlbumArtist, GST_TAG_ARTIST},
{ QtMultimedia::ContributingArtist, GST_TAG_PERFORMER },
{ QtMultimedia::MetaData::AlbumTitle, GST_TAG_ALBUM },
{ QtMultimedia::MetaData::AlbumArtist, GST_TAG_ARTIST},
{ QtMultimedia::MetaData::ContributingArtist, GST_TAG_PERFORMER },
#if (GST_VERSION_MAJOR >= 0) && (GST_VERSION_MINOR >= 10) && (GST_VERSION_MICRO >= 19)
{ QtMultimedia::Composer, GST_TAG_COMPOSER },
{ QtMultimedia::MetaData::Composer, GST_TAG_COMPOSER },
#endif
//{ QtMultimedia::Conductor, 0 },
//{ QtMultimedia::Lyrics, 0 },
//{ QtMultimedia::Mood, 0 },
{ QtMultimedia::TrackNumber, GST_TAG_TRACK_NUMBER },
//{ QtMultimedia::MetaData::Conductor, 0 },
//{ QtMultimedia::MetaData::Lyrics, 0 },
//{ QtMultimedia::MetaData::Mood, 0 },
{ QtMultimedia::MetaData::TrackNumber, GST_TAG_TRACK_NUMBER },
//{ QtMultimedia::CoverArtUrlSmall, 0 },
//{ QtMultimedia::CoverArtUrlLarge, 0 },
//{ QtMultimedia::MetaData::CoverArtUrlSmall, 0 },
//{ QtMultimedia::MetaData::CoverArtUrlLarge, 0 },
// Image/Video
//{ QtMultimedia::Resolution, 0 },
//{ QtMultimedia::PixelAspectRatio, 0 },
//{ QtMultimedia::MetaData::Resolution, 0 },
//{ QtMultimedia::MetaData::PixelAspectRatio, 0 },
// Video
//{ QtMultimedia::VideoFrameRate, 0 },
//{ QtMultimedia::VideoBitRate, 0 },
{ QtMultimedia::VideoCodec, GST_TAG_VIDEO_CODEC },
//{ QtMultimedia::MetaData::VideoFrameRate, 0 },
//{ QtMultimedia::MetaData::VideoBitRate, 0 },
{ QtMultimedia::MetaData::VideoCodec, GST_TAG_VIDEO_CODEC },
//{ QtMultimedia::PosterUrl, 0 },
//{ QtMultimedia::MetaData::PosterUrl, 0 },
// Movie
//{ QtMultimedia::ChapterNumber, 0 },
//{ QtMultimedia::Director, 0 },
{ QtMultimedia::LeadPerformer, GST_TAG_PERFORMER },
//{ QtMultimedia::Writer, 0 },
//{ QtMultimedia::MetaData::ChapterNumber, 0 },
//{ QtMultimedia::MetaData::Director, 0 },
{ QtMultimedia::MetaData::LeadPerformer, GST_TAG_PERFORMER },
//{ QtMultimedia::MetaData::Writer, 0 },
// Photos
//{ QtMultimedia::CameraManufacturer, 0 },
//{ QtMultimedia::CameraModel, 0 },
//{ QtMultimedia::Event, 0 },
//{ QtMultimedia::Subject, 0 }
//{ QtMultimedia::MetaData::CameraManufacturer, 0 },
//{ QtMultimedia::MetaData::CameraModel, 0 },
//{ QtMultimedia::MetaData::Event, 0 },
//{ QtMultimedia::MetaData::Subject, 0 }
};
QGstreamerCaptureMetaDataControl::QGstreamerCaptureMetaDataControl(QObject *parent)
@@ -124,7 +124,7 @@ QGstreamerCaptureMetaDataControl::QGstreamerCaptureMetaDataControl(QObject *pare
{
}
QVariant QGstreamerCaptureMetaDataControl::metaData(QtMultimedia::MetaData key) const
QVariant QGstreamerCaptureMetaDataControl::metaData(const QString &key) const
{
static const int count = sizeof(qt_gstreamerMetaDataKeys) / sizeof(QGstreamerMetaDataKeyLookup);
@@ -138,7 +138,7 @@ QVariant QGstreamerCaptureMetaDataControl::metaData(QtMultimedia::MetaData key)
return QVariant();
}
void QGstreamerCaptureMetaDataControl::setMetaData(QtMultimedia::MetaData key, const QVariant &value)
void QGstreamerCaptureMetaDataControl::setMetaData(const QString &key, const QVariant &value)
{
static const int count = sizeof(qt_gstreamerMetaDataKeys) / sizeof(QGstreamerMetaDataKeyLookup);
@@ -156,9 +156,9 @@ void QGstreamerCaptureMetaDataControl::setMetaData(QtMultimedia::MetaData key, c
}
}
QList<QtMultimedia::MetaData> QGstreamerCaptureMetaDataControl::availableMetaData() const
QStringList QGstreamerCaptureMetaDataControl::availableMetaData() const
{
static QMap<QByteArray, QtMultimedia::MetaData> keysMap;
static QMap<QByteArray, QString> keysMap;
if (keysMap.isEmpty()) {
const int count = sizeof(qt_gstreamerMetaDataKeys) / sizeof(QGstreamerMetaDataKeyLookup);
for (int i = 0; i < count; ++i) {
@@ -166,33 +166,12 @@ QList<QtMultimedia::MetaData> QGstreamerCaptureMetaDataControl::availableMetaDat
}
}
QList<QtMultimedia::MetaData> res;
QStringList res;
foreach (const QByteArray &key, m_values.keys()) {
QtMultimedia::MetaData tag = keysMap.value(key, QtMultimedia::MetaData(-1));
if (tag != -1)
QString tag = keysMap.value(key);
if (!tag.isEmpty())
res.append(tag);
}
return res;
}
QVariant QGstreamerCaptureMetaDataControl::extendedMetaData(QString const &name) const
{
return m_values.value(name.toLatin1());
}
void QGstreamerCaptureMetaDataControl::setExtendedMetaData(QString const &name, QVariant const &value)
{
m_values.insert(name.toLatin1(), value);
emit QMetaDataWriterControl::metaDataChanged();
emit metaDataChanged(m_values);
}
QStringList QGstreamerCaptureMetaDataControl::availableExtendedMetaData() const
{
QStringList res;
foreach (const QByteArray &key, m_values.keys())
res.append(QString(key));
return res;
}

View File

@@ -57,13 +57,9 @@ public:
bool isMetaDataAvailable() const { return true; }
bool isWritable() const { return true; }
QVariant metaData(QtMultimedia::MetaData key) const;
void setMetaData(QtMultimedia::MetaData key, const QVariant &value);
QList<QtMultimedia::MetaData> availableMetaData() const;
QVariant extendedMetaData(QString const &name) const;
void setExtendedMetaData(QString const &name, QVariant const &value);
QStringList availableExtendedMetaData() const;
QVariant metaData(const QString &key) const;
void setMetaData(const QString &key, const QVariant &value);
QStringList availableMetaData() const;
Q_SIGNALS:
void metaDataChanged(const QMap<QByteArray, QVariant>&);

View File

@@ -49,77 +49,77 @@ QT_BEGIN_NAMESPACE
struct QGstreamerMetaDataKeyLookup
{
QtMultimedia::MetaData key;
QString key;
const char *token;
};
static const QGstreamerMetaDataKeyLookup qt_gstreamerMetaDataKeys[] =
{
{ QtMultimedia::Title, GST_TAG_TITLE },
//{ QtMultimedia::SubTitle, 0 },
//{ QtMultimedia::Author, 0 },
{ QtMultimedia::Comment, GST_TAG_COMMENT },
{ QtMultimedia::Description, GST_TAG_DESCRIPTION },
//{ QtMultimedia::Category, 0 },
{ QtMultimedia::Genre, GST_TAG_GENRE },
{ QtMultimedia::Year, "year" },
//{ QtMultimedia::UserRating, 0 },
{ QtMultimedia::MetaData::Title, GST_TAG_TITLE },
//{ QtMultimedia::MetaData::SubTitle, 0 },
//{ QtMultimedia::MetaData::Author, 0 },
{ QtMultimedia::MetaData::Comment, GST_TAG_COMMENT },
{ QtMultimedia::MetaData::Description, GST_TAG_DESCRIPTION },
//{ QtMultimedia::MetaData::Category, 0 },
{ QtMultimedia::MetaData::Genre, GST_TAG_GENRE },
{ QtMultimedia::MetaData::Year, "year" },
//{ QtMultimedia::MetaData::UserRating, 0 },
{ QtMultimedia::Language, GST_TAG_LANGUAGE_CODE },
{ QtMultimedia::MetaData::Language, GST_TAG_LANGUAGE_CODE },
{ QtMultimedia::Publisher, GST_TAG_ORGANIZATION },
{ QtMultimedia::Copyright, GST_TAG_COPYRIGHT },
//{ QtMultimedia::ParentalRating, 0 },
//{ QtMultimedia::RatingOrganization, 0 },
{ QtMultimedia::MetaData::Publisher, GST_TAG_ORGANIZATION },
{ QtMultimedia::MetaData::Copyright, GST_TAG_COPYRIGHT },
//{ QtMultimedia::MetaData::ParentalRating, 0 },
//{ QtMultimedia::MetaData::RatingOrganisation, 0 },
// Media
//{ QtMultimedia::Size, 0 },
//{ QtMultimedia::MediaType, 0 },
{ QtMultimedia::Duration, GST_TAG_DURATION },
//{ QtMultimedia::MetaData::Size, 0 },
//{ QtMultimedia::MetaData::MediaType, 0 },
{ QtMultimedia::MetaData::Duration, GST_TAG_DURATION },
// Audio
{ QtMultimedia::AudioBitRate, GST_TAG_BITRATE },
{ QtMultimedia::AudioCodec, GST_TAG_AUDIO_CODEC },
//{ QtMultimedia::ChannelCount, 0 },
//{ QtMultimedia::SampleRate, 0 },
{ QtMultimedia::MetaData::AudioBitRate, GST_TAG_BITRATE },
{ QtMultimedia::MetaData::AudioCodec, GST_TAG_AUDIO_CODEC },
//{ QtMultimedia::MetaData::ChannelCount, 0 },
//{ QtMultimedia::MetaData::SampleRate, 0 },
// Music
{ QtMultimedia::AlbumTitle, GST_TAG_ALBUM },
{ QtMultimedia::AlbumArtist, GST_TAG_ARTIST},
{ QtMultimedia::ContributingArtist, GST_TAG_PERFORMER },
{ QtMultimedia::MetaData::AlbumTitle, GST_TAG_ALBUM },
{ QtMultimedia::MetaData::AlbumArtist, GST_TAG_ARTIST},
{ QtMultimedia::MetaData::ContributingArtist, GST_TAG_PERFORMER },
#if (GST_VERSION_MAJOR >= 0) && (GST_VERSION_MINOR >= 10) && (GST_VERSION_MICRO >= 19)
{ QtMultimedia::Composer, GST_TAG_COMPOSER },
{ QtMultimedia::MetaData::Composer, GST_TAG_COMPOSER },
#endif
//{ QtMultimedia::Conductor, 0 },
//{ QtMultimedia::Lyrics, 0 },
//{ QtMultimedia::Mood, 0 },
{ QtMultimedia::TrackNumber, GST_TAG_TRACK_NUMBER },
//{ QtMultimedia::MetaData::Conductor, 0 },
//{ QtMultimedia::MetaData::Lyrics, 0 },
//{ QtMultimedia::MetaData::Mood, 0 },
{ QtMultimedia::MetaData::TrackNumber, GST_TAG_TRACK_NUMBER },
//{ QtMultimedia::CoverArtUrlSmall, 0 },
//{ QtMultimedia::CoverArtUrlLarge, 0 },
//{ QtMultimedia::MetaData::CoverArtUrlSmall, 0 },
//{ QtMultimedia::MetaData::CoverArtUrlLarge, 0 },
// Image/Video
{ QtMultimedia::Resolution, "resolution" },
{ QtMultimedia::PixelAspectRatio, "pixel-aspect-ratio" },
{ QtMultimedia::MetaData::Resolution, "resolution" },
{ QtMultimedia::MetaData::PixelAspectRatio, "pixel-aspect-ratio" },
// Video
//{ QtMultimedia::VideoFrameRate, 0 },
//{ QtMultimedia::VideoBitRate, 0 },
{ QtMultimedia::VideoCodec, GST_TAG_VIDEO_CODEC },
//{ QtMultimedia::MetaData::VideoFrameRate, 0 },
//{ QtMultimedia::MetaData::VideoBitRate, 0 },
{ QtMultimedia::MetaData::VideoCodec, GST_TAG_VIDEO_CODEC },
//{ QtMultimedia::PosterUrl, 0 },
//{ QtMultimedia::MetaData::PosterUrl, 0 },
// Movie
//{ QtMultimedia::ChapterNumber, 0 },
//{ QtMultimedia::Director, 0 },
{ QtMultimedia::LeadPerformer, GST_TAG_PERFORMER },
//{ QtMultimedia::Writer, 0 },
//{ QtMultimedia::MetaData::ChapterNumber, 0 },
//{ QtMultimedia::MetaData::Director, 0 },
{ QtMultimedia::MetaData::LeadPerformer, GST_TAG_PERFORMER },
//{ QtMultimedia::MetaData::Writer, 0 },
// Photos
//{ QtMultimedia::CameraManufacturer, 0 },
//{ QtMultimedia::CameraModel, 0 },
//{ QtMultimedia::Event, 0 },
//{ QtMultimedia::Subject, 0 }
//{ QtMultimedia::MetaData::CameraManufacturer, 0 },
//{ QtMultimedia::MetaData::CameraModel, 0 },
//{ QtMultimedia::MetaData::Event, 0 },
//{ QtMultimedia::MetaData::Subject, 0 }
};
QGstreamerMetaDataProvider::QGstreamerMetaDataProvider(QGstreamerPlayerSession *session, QObject *parent)
@@ -142,7 +142,7 @@ bool QGstreamerMetaDataProvider::isWritable() const
return false;
}
QVariant QGstreamerMetaDataProvider::metaData(QtMultimedia::MetaData key) const
QVariant QGstreamerMetaDataProvider::metaData(const QString &key) const
{
static const int count = sizeof(qt_gstreamerMetaDataKeys) / sizeof(QGstreamerMetaDataKeyLookup);
@@ -154,9 +154,9 @@ QVariant QGstreamerMetaDataProvider::metaData(QtMultimedia::MetaData key) const
return QVariant();
}
QList<QtMultimedia::MetaData> QGstreamerMetaDataProvider::availableMetaData() const
QStringList QGstreamerMetaDataProvider::availableMetaData() const
{
static QMap<QByteArray, QtMultimedia::MetaData> keysMap;
static QMap<QByteArray, QString> keysMap;
if (keysMap.isEmpty()) {
const int count = sizeof(qt_gstreamerMetaDataKeys) / sizeof(QGstreamerMetaDataKeyLookup);
for (int i = 0; i < count; ++i) {
@@ -164,30 +164,16 @@ QList<QtMultimedia::MetaData> QGstreamerMetaDataProvider::availableMetaData() co
}
}
QList<QtMultimedia::MetaData> res;
QStringList res;
foreach (const QByteArray &key, m_session->tags().keys()) {
QtMultimedia::MetaData tag = keysMap.value(key, QtMultimedia::MetaData(-1));
if (tag != -1)
QString tag = keysMap.value(key);
if (!tag.isEmpty())
res.append(tag);
}
return res;
}
QVariant QGstreamerMetaDataProvider::extendedMetaData(const QString &key) const
{
return m_session->tags().value(key.toLatin1());
}
QStringList QGstreamerMetaDataProvider::availableExtendedMetaData() const
{
QStringList res;
foreach (const QByteArray &key, m_session->tags().keys())
res.append(QString(key));
return res;
}
void QGstreamerMetaDataProvider::updateTags()
{
emit metaDataChanged();

View File

@@ -58,11 +58,8 @@ public:
bool isMetaDataAvailable() const;
bool isWritable() const;
QVariant metaData(QtMultimedia::MetaData key) const;
QList<QtMultimedia::MetaData> availableMetaData() const;
QVariant extendedMetaData(const QString &key) const ;
QStringList availableExtendedMetaData() const;
QVariant metaData(const QString &key) const;
QStringList availableMetaData() const;
private slots:
void updateTags();

View File

@@ -1221,7 +1221,7 @@ void QGstreamerPlayerSession::getStreamsInfo()
for (int i=0; i<m_streamTypes.count(); i++) {
QMediaStreamsControl::StreamType streamType = m_streamTypes[i];
QMap<QtMultimedia::MetaData, QVariant> streamProperties;
QMap<QString, QVariant> streamProperties;
int streamIndex = i - m_playbin2StreamOffset[streamType];
@@ -1243,7 +1243,7 @@ void QGstreamerPlayerSession::getStreamsInfo()
if (tags && gst_is_tag_list(tags)) {
gchar *languageCode = 0;
if (gst_tag_list_get_string(tags, GST_TAG_LANGUAGE_CODE, &languageCode))
streamProperties[QtMultimedia::Language] = QString::fromUtf8(languageCode);
streamProperties[QtMultimedia::MetaData::Language] = QString::fromUtf8(languageCode);
//qDebug() << "language for setream" << i << QString::fromUtf8(languageCode);
g_free (languageCode);
@@ -1303,8 +1303,8 @@ void QGstreamerPlayerSession::getStreamsInfo()
break;
}
QMap<QtMultimedia::MetaData, QVariant> streamProperties;
streamProperties[QtMultimedia::Language] = QString::fromUtf8(languageCode);
QMap<QString, QVariant> streamProperties;
streamProperties[QtMultimedia::MetaData::Language] = QString::fromUtf8(languageCode);
m_streamProperties.append(streamProperties);
m_streamTypes.append(streamType);

View File

@@ -103,7 +103,7 @@ public:
QMediaTimeRange availablePlaybackRanges() const;
QMap<QByteArray ,QVariant> tags() const { return m_tags; }
QMap<QtMultimedia::MetaData,QVariant> streamProperties(int streamNumber) const { return m_streamProperties[streamNumber]; }
QMap<QString,QVariant> streamProperties(int streamNumber) const { return m_streamProperties[streamNumber]; }
int streamCount() const { return m_streamProperties.count(); }
QMediaStreamsControl::StreamType streamType(int streamNumber) { return m_streamTypes.value(streamNumber, QMediaStreamsControl::UnknownStream); }
@@ -195,7 +195,7 @@ private:
#endif
QMap<QByteArray, QVariant> m_tags;
QList< QMap<QtMultimedia::MetaData,QVariant> > m_streamProperties;
QList< QMap<QString,QVariant> > m_streamProperties;
QList<QMediaStreamsControl::StreamType> m_streamTypes;
QMap<QMediaStreamsControl::StreamType, int> m_playbin2StreamOffset;

View File

@@ -62,7 +62,7 @@ QMediaStreamsControl::StreamType QGstreamerStreamsControl::streamType(int stream
return m_session->streamType(streamNumber);
}
QVariant QGstreamerStreamsControl::metaData(int streamNumber, QtMultimedia::MetaData key)
QVariant QGstreamerStreamsControl::metaData(int streamNumber, const QString &key)
{
return m_session->streamProperties(streamNumber).value(key);
}

View File

@@ -58,7 +58,7 @@ public:
virtual int streamCount();
virtual StreamType streamType(int streamNumber);
virtual QVariant metaData(int streamNumber, QtMultimedia::MetaData key);
virtual QVariant metaData(int streamNumber, const QString &key);
virtual bool isActive(int streamNumber);
virtual void setActive(int streamNumber, bool state);

View File

@@ -58,18 +58,15 @@ public:
bool isMetaDataAvailable() const;
bool isWritable() const;
QVariant metaData(QtMultimedia::MetaData key) const;
QList<QtMultimedia::MetaData> availableMetaData() const;
QVariant extendedMetaData(const QString &key) const ;
QStringList availableExtendedMetaData() const;
QVariant metaData(const QString &key) const;
QStringList availableMetaData() const;
private Q_SLOTS:
void updateTags();
private:
QT7PlayerSession *m_session;
QMap<QtMultimedia::MetaData, QVariant> m_tags;
QMap<QString, QVariant> m_tags;
};
QT_END_NAMESPACE

View File

@@ -72,27 +72,16 @@ bool QT7PlayerMetaDataControl::isWritable() const
return false;
}
QVariant QT7PlayerMetaDataControl::metaData(QtMultimedia::MetaData key) const
QVariant QT7PlayerMetaDataControl::metaData(const QString &key) const
{
return m_tags.value(key);
}
QList<QtMultimedia::MetaData> QT7PlayerMetaDataControl::availableMetaData() const
QStringList QT7PlayerMetaDataControl::availableMetaData() const
{
return m_tags.keys();
}
QVariant QT7PlayerMetaDataControl::extendedMetaData(const QString &key) const
{
Q_UNUSED(key);
return QVariant();
}
QStringList QT7PlayerMetaDataControl::availableExtendedMetaData() const
{
return QStringList();
}
#ifdef QUICKTIME_C_API_AVAILABLE
static QString stripCopyRightSymbol(const QString &key)
@@ -244,13 +233,13 @@ void QT7PlayerMetaDataControl::updateTags()
metaMap.insert(QLatin1String("nam"), QString::fromUtf8([name UTF8String]));
#endif // QUICKTIME_C_API_AVAILABLE
m_tags.insert(QtMultimedia::AlbumArtist, metaMap.value(QLatin1String("ART")));
m_tags.insert(QtMultimedia::AlbumTitle, metaMap.value(QLatin1String("alb")));
m_tags.insert(QtMultimedia::Title, metaMap.value(QLatin1String("nam")));
m_tags.insert(QtMultimedia::Date, metaMap.value(QLatin1String("day")));
m_tags.insert(QtMultimedia::Genre, metaMap.value(QLatin1String("gnre")));
m_tags.insert(QtMultimedia::TrackNumber, metaMap.value(QLatin1String("trk")));
m_tags.insert(QtMultimedia::Description, metaMap.value(QLatin1String("des")));
m_tags.insert(QtMultimedia::MetaData::AlbumArtist, metaMap.value(QLatin1String("ART")));
m_tags.insert(QtMultimedia::MetaData::AlbumTitle, metaMap.value(QLatin1String("alb")));
m_tags.insert(QtMultimedia::MetaData::Title, metaMap.value(QLatin1String("nam")));
m_tags.insert(QtMultimedia::MetaData::Date, metaMap.value(QLatin1String("day")));
m_tags.insert(QtMultimedia::MetaData::Genre, metaMap.value(QLatin1String("gnre")));
m_tags.insert(QtMultimedia::MetaData::TrackNumber, metaMap.value(QLatin1String("trk")));
m_tags.insert(QtMultimedia::MetaData::Description, metaMap.value(QLatin1String("des")));
}
if (!wasEmpty || !m_tags.isEmpty())

View File

@@ -65,7 +65,7 @@ bool MFMetaDataControl::isMetaDataAvailable() const
return m_content || m_metaData;
}
QVariant MFMetaDataControl::metaData(QtMultimedia::MetaData key) const
QVariant MFMetaDataControl::metaData(const QString &key) const
{
QVariant value;
if (!isMetaDataAvailable())
@@ -113,38 +113,11 @@ QVariant MFMetaDataControl::convertValue(const PROPVARIANT& var) const
return value;
}
QList<QtMultimedia::MetaData> MFMetaDataControl::availableMetaData() const
QStringList MFMetaDataControl::availableMetaData() const
{
return m_availableMetaDatas;
}
QVariant MFMetaDataControl::extendedMetaData(const QString &key) const
{
QVariant value;
HRESULT hr = S_FALSE;
PROPVARIANT var;
PropVariantInit(&var);
if (m_content) {
int index = m_extendedMetaDatas.indexOf(key);
if (index >= 0) {
hr = m_content->GetValue(m_extendedKeys[index], &var);
}
} else if (m_metaData) {
hr = m_metaData->GetProperty(key.utf16(), &var);
}
if (SUCCEEDED(hr))
value = convertValue(var);
PropVariantClear(&var);
return value;
}
QStringList MFMetaDataControl::availableExtendedMetaData() const
{
return m_extendedMetaDatas;
}
void MFMetaDataControl::updateSource(IMFPresentationDescriptor* sourcePD, IMFMediaSource* mediaSource)
{
if (m_metaData) {
@@ -173,15 +146,15 @@ void MFMetaDataControl::updateSource(IMFPresentationDescriptor* sourcePD, IMFMed
continue;
bool common = true;
if (key == PKEY_Author) {
m_availableMetaDatas.push_back(QtMultimedia::Author);
m_availableMetaDatas.push_back(QtMultimedia::MetaData::Author);
} else if (key == PKEY_Title) {
m_availableMetaDatas.push_back(QtMultimedia::Title);
m_availableMetaDatas.push_back(QtMultimedia::MetaData::Title);
} else if (key == PKEY_ParentalRating) {
m_availableMetaDatas.push_back(QtMultimedia::ParentalRating);
m_availableMetaDatas.push_back(QtMultimedia::MetaData::ParentalRating);
} else if (key == PKEY_Comment) {
m_availableMetaDatas.push_back(QtMultimedia::Description);
m_availableMetaDatas.push_back(QtMultimedia::MetaData::Description);
} else if (key == PKEY_Copyright) {
m_availableMetaDatas.push_back(QtMultimedia::Copyright);
m_availableMetaDatas.push_back(QtMultimedia::MetaData::Copyright);
//TODO: add more common keys
} else {
common = false;
@@ -211,24 +184,21 @@ void MFMetaDataControl::updateSource(IMFPresentationDescriptor* sourcePD, IMFMed
#ifdef DEBUG_MEDIAFOUNDATION
qDebug() << "metadata: " << QString::fromUtf16(sName);
#endif
bool common = true;
if (wcscmp(sName, L"Author") == 0) {
m_availableMetaDatas.push_back(QtMultimedia::Author);
m_availableMetaDatas.push_back(QtMultimedia::MetaData::Author);
} else if (wcscmp(sName, L"Title") == 0) {
m_availableMetaDatas.push_back(QtMultimedia::Title);
m_availableMetaDatas.push_back(QtMultimedia::MetaData::Title);
} else if (wcscmp(sName, L"Rating") == 0) {
m_availableMetaDatas.push_back(QtMultimedia::ParentalRating);
m_availableMetaDatas.push_back(QtMultimedia::MetaData::ParentalRating);
} else if (wcscmp(sName, L"Description") == 0) {
m_availableMetaDatas.push_back(QtMultimedia::Description);
m_availableMetaDatas.push_back(QtMultimedia::MetaData::Description);
} else if (wcscmp(sName, L"Copyright") == 0) {
m_availableMetaDatas.push_back(QtMultimedia::Copyright);
m_availableMetaDatas.push_back(QtMultimedia::MetaData::Copyright);
//TODO: add more common keys
} else {
common = false;
m_extendedMetaDatas.push_back(QString::fromUtf16(sName));
m_availableMetaDatas.push_back(QString::fromUtf16(sName));
}
if (common)
m_commonNames.push_back(QString::fromUtf16(sName));
m_commonNames.push_back(QString::fromUtf16(sName));
}
}
PropVariantClear(&varNames);

View File

@@ -56,11 +56,8 @@ public:
bool isMetaDataAvailable() const;
QVariant metaData(QtMultimedia::MetaData key) const;
QList<QtMultimedia::MetaData> availableMetaData() const;
QVariant extendedMetaData(const QString &key) const;
QStringList availableExtendedMetaData() const;
QVariant metaData(const QString &key) const;
QStringList availableMetaData() const;
void updateSource(IMFPresentationDescriptor* sourcePD, IMFMediaSource* mediaSource);
@@ -69,12 +66,9 @@ private:
IPropertyStore *m_content; //for Windows7
IMFMetadata *m_metaData; //for Vista
QList<QtMultimedia::MetaData> m_availableMetaDatas;
QStringList m_availableMetaDatas;
QList<PROPERTYKEY> m_commonKeys; //for Windows7
QStringList m_commonNames; //for Vista
QStringList m_extendedMetaDatas;
QList<PROPERTYKEY> m_extendedKeys; //for Windows7
};
#endif