diff options
author | Lars Knoll <lars.knoll@qt.io> | 2021-02-09 12:55:32 +0100 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2021-02-12 15:38:47 +0000 |
commit | 187419edb2c087063afc5931134d36692f4b39a4 (patch) | |
tree | 88d9117e2c6475f8c32d83b2ee09f27b2dba60a9 /src/multimedia/platform/darwin | |
parent | 3c59ba2b3ce96f578b2d677ecc1fbf7da0b2e27f (diff) |
Rework the metadata handling
Get rid of metadata reader and writer controls. Instead use
a simple cross platform value class to store meta data.
The backend can then convert to and from whatever the native
API expects.
Change-Id: I7cf84bfbe8eef2a88615a52ba5afeec50a0652c8
Reviewed-by: Doris Verria <doris.verria@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/multimedia/platform/darwin')
14 files changed, 43 insertions, 308 deletions
diff --git a/src/multimedia/platform/darwin/camera/avfcamerametadatacontrol.mm b/src/multimedia/platform/darwin/camera/avfcamerametadatacontrol.mm deleted file mode 100644 index d346a7dee..000000000 --- a/src/multimedia/platform/darwin/camera/avfcamerametadatacontrol.mm +++ /dev/null @@ -1,83 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd and/or its subsidiary(-ies). -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "avfcamerametadatacontrol_p.h" -#include "avfcamerasession_p.h" -#include "avfcameraservice_p.h" -#include "avfmediarecordercontrol_p.h" - -QT_USE_NAMESPACE - -//metadata support is not implemented yet - -AVFCameraMetaDataControl::AVFCameraMetaDataControl(AVFMediaRecorderControl *parent) - : QMetaDataWriterControl(parent) -{ -} - -AVFCameraMetaDataControl::~AVFCameraMetaDataControl() -{ -} - -bool AVFCameraMetaDataControl::isMetaDataAvailable() const -{ - return !m_tags.isEmpty(); -} - -bool AVFCameraMetaDataControl::isWritable() const -{ - return false; -} - -QVariant AVFCameraMetaDataControl::metaData(const QString &key) const -{ - return m_tags.value(key); -} - -void AVFCameraMetaDataControl::setMetaData(const QString &key, const QVariant &value) -{ - m_tags.insert(key, value); -} - -QStringList AVFCameraMetaDataControl::availableMetaData() const -{ - return m_tags.keys(); -} - -#include "moc_avfcamerametadatacontrol_p.cpp" diff --git a/src/multimedia/platform/darwin/camera/avfcamerametadatacontrol_p.h b/src/multimedia/platform/darwin/camera/avfcamerametadatacontrol_p.h deleted file mode 100644 index 45addb946..000000000 --- a/src/multimedia/platform/darwin/camera/avfcamerametadatacontrol_p.h +++ /dev/null @@ -1,81 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef AVFCAMERAMETADATACONTROL_H -#define AVFCAMERAMETADATACONTROL_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include <qmetadatawritercontrol.h> -#include <QtCore/qvariant.h> - -QT_BEGIN_NAMESPACE - -class AVFMediaRecorderControl; - -class AVFCameraMetaDataControl : public QMetaDataWriterControl -{ - Q_OBJECT -public: - AVFCameraMetaDataControl(AVFMediaRecorderControl *parent = nullptr); - virtual ~AVFCameraMetaDataControl(); - - bool isMetaDataAvailable() const override; - bool isWritable() const override; - - QVariant metaData(const QString &key) const override; - void setMetaData(const QString &key, const QVariant &value) override; - QStringList availableMetaData() const override; - -private: - QMap<QString, QVariant> m_tags; -}; - -QT_END_NAMESPACE - -#endif diff --git a/src/multimedia/platform/darwin/camera/avfcameraservice.mm b/src/multimedia/platform/darwin/camera/avfcameraservice.mm index b327c8d17..0ed6b74ce 100644 --- a/src/multimedia/platform/darwin/camera/avfcameraservice.mm +++ b/src/multimedia/platform/darwin/camera/avfcameraservice.mm @@ -43,7 +43,6 @@ #include "avfcameraservice_p.h" #include "avfcameracontrol_p.h" #include "avfcamerasession_p.h" -#include "avfcamerametadatacontrol_p.h" #include "avfmediarecordercontrol_p.h" #include "avfimagecapturecontrol_p.h" #include "avfcamerarenderercontrol_p.h" diff --git a/src/multimedia/platform/darwin/camera/avfmediarecordercontrol.mm b/src/multimedia/platform/darwin/camera/avfmediarecordercontrol.mm index 983fd8357..e39161cfd 100644 --- a/src/multimedia/platform/darwin/camera/avfmediarecordercontrol.mm +++ b/src/multimedia/platform/darwin/camera/avfmediarecordercontrol.mm @@ -42,7 +42,6 @@ #include "avfcamerasession_p.h" #include "avfcameraservice_p.h" #include "avfcameracontrol_p.h" -#include "avfcamerametadatacontrol_p.h" #include "qaudiodeviceinfo.h" #include "qmediadevicemanager.h" @@ -151,8 +150,6 @@ AVFMediaRecorderControl::AVFMediaRecorderControl(AVFCameraService *service, QObj connect(m_cameraControl, SIGNAL(captureModeChanged(QCamera::CaptureModes)), SLOT(setupSessionForCapture())); connect(m_session, SIGNAL(readyToConfigureConnections()), SLOT(setupSessionForCapture())); connect(m_session, SIGNAL(stateChanged(QCamera::State)), SLOT(setupSessionForCapture())); - - m_metaData = new AVFCameraMetaDataControl(this); } AVFMediaRecorderControl::~AVFMediaRecorderControl() @@ -533,11 +530,6 @@ void AVFMediaRecorderControl::setEncoderSettings(const QMediaEncoderSettings &se m_settings = settings; } -QMetaDataWriterControl *AVFMediaRecorderControl::metaDataControl() -{ - return m_metaData; -} - void AVFMediaRecorderControl::setState(QMediaRecorder::State state) { if (m_state == state) diff --git a/src/multimedia/platform/darwin/camera/avfmediarecordercontrol_p.h b/src/multimedia/platform/darwin/camera/avfmediarecordercontrol_p.h index 1d50ceb72..02a8581d2 100644 --- a/src/multimedia/platform/darwin/camera/avfmediarecordercontrol_p.h +++ b/src/multimedia/platform/darwin/camera/avfmediarecordercontrol_p.h @@ -68,7 +68,6 @@ QT_BEGIN_NAMESPACE class AVFCameraSession; class AVFCameraControl; class AVFCameraService; -class AVFCameraMetaDataControl; class AVFMediaRecorderControl : public QMediaRecorderControl { @@ -96,8 +95,6 @@ public: void setEncoderSettings(const QMediaEncoderSettings &settings) override; - QMetaDataWriterControl *metaDataControl() override; - public Q_SLOTS: void setState(QMediaRecorder::State state) override; void setMuted(bool muted) override; @@ -116,7 +113,6 @@ private: AVFCameraControl *m_cameraControl; AVFCameraSession *m_session; AVCaptureDevice *m_audioCaptureDevice = nullptr; - AVFCameraMetaDataControl *m_metaData = nullptr; bool m_connected; QUrl m_outputLocation; diff --git a/src/multimedia/platform/darwin/camera/camera.pri b/src/multimedia/platform/darwin/camera/camera.pri index 648c5c358..49aecdac4 100644 --- a/src/multimedia/platform/darwin/camera/camera.pri +++ b/src/multimedia/platform/darwin/camera/camera.pri @@ -1,7 +1,6 @@ HEADERS += \ $$PWD/avfcameradebug_p.h \ $$PWD/avfcameracontrol_p.h \ - $$PWD/avfcamerametadatacontrol_p.h \ $$PWD/avfimagecapturecontrol_p.h \ $$PWD/avfcameraservice_p.h \ $$PWD/avfcamerasession_p.h \ @@ -15,7 +14,6 @@ HEADERS += \ SOURCES += \ $$PWD/avfcameracontrol.mm \ - $$PWD/avfcamerametadatacontrol.mm \ $$PWD/avfimagecapturecontrol.mm \ $$PWD/avfcameraservice.mm \ $$PWD/avfcamerasession.mm \ diff --git a/src/multimedia/platform/darwin/mediaplayer/avfmediaplayercontrol.mm b/src/multimedia/platform/darwin/mediaplayer/avfmediaplayercontrol.mm index bfc667509..1e55fb770 100644 --- a/src/multimedia/platform/darwin/mediaplayer/avfmediaplayercontrol.mm +++ b/src/multimedia/platform/darwin/mediaplayer/avfmediaplayercontrol.mm @@ -177,6 +177,17 @@ QAudioDeviceInfo AVFMediaPlayerControl::audioOutput() const #endif } +QMediaMetaData AVFMediaPlayerControl::metaData() const +{ + return m_metaData; +} + +void AVFMediaPlayerControl::setMetaData(const QMediaMetaData &metaData) +{ + m_metaData = metaData; + metaDataChanged(); +} + void AVFMediaPlayerControl::setPosition(qint64 pos) { m_session->setPosition(pos); diff --git a/src/multimedia/platform/darwin/mediaplayer/avfmediaplayercontrol_p.h b/src/multimedia/platform/darwin/mediaplayer/avfmediaplayercontrol_p.h index b4fd8dc5a..9b8018ecb 100644 --- a/src/multimedia/platform/darwin/mediaplayer/avfmediaplayercontrol_p.h +++ b/src/multimedia/platform/darwin/mediaplayer/avfmediaplayercontrol_p.h @@ -94,6 +94,9 @@ public: bool setAudioOutput(const QAudioDeviceInfo &) override; QAudioDeviceInfo audioOutput() const override; + QMediaMetaData metaData() const override; + void setMetaData(const QMediaMetaData &metaData); + public Q_SLOTS: void setPosition(qint64 pos) override; @@ -106,6 +109,7 @@ public Q_SLOTS: private: AVFMediaPlayerSession *m_session; + QMediaMetaData m_metaData; }; QT_END_NAMESPACE diff --git a/src/multimedia/platform/darwin/mediaplayer/avfmediaplayerservice.mm b/src/multimedia/platform/darwin/mediaplayer/avfmediaplayerservice.mm index b300c4c1a..32cc5fd27 100644 --- a/src/multimedia/platform/darwin/mediaplayer/avfmediaplayerservice.mm +++ b/src/multimedia/platform/darwin/mediaplayer/avfmediaplayerservice.mm @@ -40,7 +40,6 @@ #include "avfmediaplayerservice_p.h" #include "avfmediaplayersession_p.h" #include "avfmediaplayercontrol_p.h" -#include "avfmediaplayermetadatacontrol_p.h" #include "avfvideooutput_p.h" #if QT_CONFIG(opengl) #include "avfvideorenderercontrol_p.h" @@ -56,9 +55,6 @@ AVFMediaPlayerService::AVFMediaPlayerService() m_session = new AVFMediaPlayerSession(this); m_control = new AVFMediaPlayerControl(this); m_control->setSession(m_session); - m_playerMetaDataControl = new AVFMediaPlayerMetaDataControl(m_session, this); - - connect(m_control, SIGNAL(mediaChanged(QMediaContent)), m_playerMetaDataControl, SLOT(updateTags())); } AVFMediaPlayerService::~AVFMediaPlayerService() @@ -78,9 +74,6 @@ QObject *AVFMediaPlayerService::requestControl(const char *name) if (qstrcmp(name, QMediaPlayerControl_iid) == 0) return m_control; - if (qstrcmp(name, QMetaDataReaderControl_iid) == 0) - return m_playerMetaDataControl; - #if QT_CONFIG(opengl) if (qstrcmp(name, QVideoRendererControl_iid) == 0) { if (!m_videoOutput) @@ -124,11 +117,6 @@ QMediaPlayerControl *AVFMediaPlayerService::player() return m_control; } -QMetaDataReaderControl *AVFMediaPlayerService::dataReader() -{ - return m_playerMetaDataControl; -} - QVideoRendererControl *AVFMediaPlayerService::createVideoRenderer() { if (m_videoOutput) @@ -152,20 +140,3 @@ QVideoWindowControl *AVFMediaPlayerService::createVideoWindow() m_session->setVideoOutput(control); return control; } - -#if 0 -void listSupportedMimeTypes() -{ - //Populate m_supportedMimeTypes with mimetypes AVAsset supports - NSArray *mimeTypes = [AVURLAsset audiovisualMIMETypes]; - for (NSString *mimeType in mimeTypes) - { - m_supportedMimeTypes.append(QString::fromUtf8([mimeType UTF8String])); - } -#ifdef QT_DEBUG_AVF - qDebug() << "AVFMediaPlayerServicePlugin::buildSupportedTypes"; - qDebug() << "Supported Types: " << m_supportedMimeTypes; -#endif - -} -#endif diff --git a/src/multimedia/platform/darwin/mediaplayer/avfmediaplayerservice_p.h b/src/multimedia/platform/darwin/mediaplayer/avfmediaplayerservice_p.h index f37c1e50f..2690c7828 100644 --- a/src/multimedia/platform/darwin/mediaplayer/avfmediaplayerservice_p.h +++ b/src/multimedia/platform/darwin/mediaplayer/avfmediaplayerservice_p.h @@ -57,7 +57,6 @@ QT_BEGIN_NAMESPACE class AVFMediaPlayerSession; class AVFMediaPlayerControl; -class AVFMediaPlayerMetaDataControl; class AVFVideoOutput; class AVFMediaPlayerService : public QMediaPlatformPlayerInterface @@ -71,7 +70,6 @@ public: // QMediaPlatformPlayerInterface QMediaPlayerControl *player() override; - QMetaDataReaderControl *dataReader() override; // QMediaStreamsControl *streams() override; QVideoRendererControl *createVideoRenderer() override; @@ -82,7 +80,6 @@ private: AVFMediaPlayerSession *m_session = nullptr; AVFMediaPlayerControl *m_control = nullptr; QObject *m_videoOutput = nullptr; - AVFMediaPlayerMetaDataControl *m_playerMetaDataControl = nullptr; }; QT_END_NAMESPACE diff --git a/src/multimedia/platform/darwin/mediaplayer/avfmediaplayersession.mm b/src/multimedia/platform/darwin/mediaplayer/avfmediaplayersession.mm index 7fa6d25c6..386e66ecd 100644 --- a/src/multimedia/platform/darwin/mediaplayer/avfmediaplayersession.mm +++ b/src/multimedia/platform/darwin/mediaplayer/avfmediaplayersession.mm @@ -39,7 +39,9 @@ #include "avfmediaplayersession_p.h" #include "avfmediaplayerservice_p.h" +#include "avfmediaplayercontrol_p.h" #include "avfvideooutput_p.h" +#include "avfmetadata_p.h" #include <qpointer.h> #include <QFileInfo> @@ -945,6 +947,10 @@ void AVFMediaPlayerSession::processLoadStateChange(QMediaPlayer::State newState) AVPlayerItem *playerItem = [static_cast<AVFMediaPlayerSessionObserver*>(m_observer) playerItem]; + // get the meta data + QMediaMetaData metaData = AVFMetaData::fromAsset(playerItem.asset); + static_cast<AVFMediaPlayerControl *>(m_service->player())->setMetaData(metaData); + if (playerItem) { // Check each track for audio and video content AVAssetTrack *videoTrack = nil; diff --git a/src/multimedia/platform/darwin/mediaplayer/avfmediaplayermetadatacontrol.mm b/src/multimedia/platform/darwin/mediaplayer/avfmetadata.mm index 5a5780e52..0b6feace4 100644 --- a/src/multimedia/platform/darwin/mediaplayer/avfmediaplayermetadatacontrol.mm +++ b/src/multimedia/platform/darwin/mediaplayer/avfmetadata.mm @@ -37,8 +37,7 @@ ** ****************************************************************************/ -#include "avfmediaplayermetadatacontrol_p.h" -#include "avfmediaplayersession_p.h" +#include "avfmetadata_p.h" #include <QtMultimedia/qmediametadata.h> @@ -46,50 +45,15 @@ QT_USE_NAMESPACE -AVFMediaPlayerMetaDataControl::AVFMediaPlayerMetaDataControl(AVFMediaPlayerSession *session, QObject *parent) - : QMetaDataReaderControl(parent) - , m_session(session) - , m_asset(nullptr) -{ - QObject::connect(m_session, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)), this, SLOT(updateTags())); -} - -AVFMediaPlayerMetaDataControl::~AVFMediaPlayerMetaDataControl() -{ -#ifdef QT_DEBUG_AVF - qDebug() << Q_FUNC_INFO; -#endif -} - -bool AVFMediaPlayerMetaDataControl::isMetaDataAvailable() const -{ - return !m_tags.isEmpty(); -} - -bool AVFMediaPlayerMetaDataControl::isWritable() const -{ - return false; -} - -QVariant AVFMediaPlayerMetaDataControl::metaData(const QString &key) const -{ - return m_tags.value(key); -} - -QStringList AVFMediaPlayerMetaDataControl::availableMetaData() const -{ - return m_tags.keys(); -} - -static QString itemKey(AVMetadataItem *item) +static std::optional<QMediaMetaData::Key> itemKey(AVMetadataItem *item) { NSString *keyString = [item commonKey]; if (keyString.length != 0) { if ([keyString isEqualToString:AVMetadataCommonKeyTitle]) { return QMediaMetaData::Title; - } else if ([keyString isEqualToString: AVMetadataCommonKeySubject]) { - return QMediaMetaData::SubTitle; +// } else if ([keyString isEqualToString: AVMetadataCommonKeySubject]) { +// return QMediaMetaData::SubTitle; } else if ([keyString isEqualToString: AVMetadataCommonKeyDescription]) { return QMediaMetaData::Description; } else if ([keyString isEqualToString: AVMetadataCommonKeyPublisher]) { @@ -108,54 +72,32 @@ static QString itemKey(AVMetadataItem *item) return QMediaMetaData::Author; } else if ([keyString isEqualToString: AVMetadataCommonKeyArtist]) { return QMediaMetaData::ContributingArtist; - } else if ([keyString isEqualToString: AVMetadataCommonKeyArtwork]) { - return QMediaMetaData::PosterUrl; +// } else if ([keyString isEqualToString: AVMetadataCommonKeyArtwork]) { +// return QMediaMetaData::PosterUrl; } } - return QString(); + return std::nullopt; } -void AVFMediaPlayerMetaDataControl::updateTags() +QMediaMetaData AVFMetaData::fromAsset(AVAsset *asset) { #ifdef QT_DEBUG_AVF qDebug() << Q_FUNC_INFO; #endif - AVAsset *currentAsset = static_cast<AVAsset*>(m_session->currentAssetHandle()); - - //Don't read the tags from the same asset more than once - if (currentAsset == m_asset) - return; - - m_asset = currentAsset; - - QVariantMap oldTags = m_tags; - //Since we've changed assets, clear old tags - m_tags.clear(); - bool changed = false; + QMediaMetaData metaData; // TODO: also process ID3, iTunes and QuickTime metadata - NSArray *metadataItems = [currentAsset commonMetadata]; + NSArray *metadataItems = [asset commonMetadata]; for (AVMetadataItem* item in metadataItems) { - const QString key = itemKey(item); - if (!key.isEmpty()) { - const QString value = QString::fromNSString([item stringValue]); - if (!value.isNull()) { - m_tags.insert(key, value); - if (value != oldTags.value(key)) { - changed = true; - Q_EMIT metaDataChanged(key, value); - } - } - } - } + auto key = itemKey(item); + if (!key) + continue; - if (oldTags.isEmpty() != m_tags.isEmpty()) { - Q_EMIT metaDataAvailableChanged(!m_tags.isEmpty()); - changed = true; + const QString value = QString::fromNSString([item stringValue]); + if (!value.isNull()) + metaData.insert(*key, value); } - - if (changed) - Q_EMIT metaDataChanged(); + return metaData; } diff --git a/src/multimedia/platform/darwin/mediaplayer/avfmediaplayermetadatacontrol_p.h b/src/multimedia/platform/darwin/mediaplayer/avfmetadata_p.h index 067aa2487..c88a4084d 100644 --- a/src/multimedia/platform/darwin/mediaplayer/avfmediaplayermetadatacontrol_p.h +++ b/src/multimedia/platform/darwin/mediaplayer/avfmetadata_p.h @@ -51,7 +51,7 @@ // We mean it. // -#include <QtMultimedia/QMetaDataReaderControl> +#include <QtMultimedia/QMediaMetaData> #include <QtCore/qvariant.h> QT_BEGIN_NAMESPACE @@ -60,27 +60,10 @@ Q_FORWARD_DECLARE_OBJC_CLASS(AVAsset); class AVFMediaPlayerSession; -class AVFMediaPlayerMetaDataControl : public QMetaDataReaderControl +class AVFMetaData { - Q_OBJECT public: - explicit AVFMediaPlayerMetaDataControl(AVFMediaPlayerSession *session, QObject *parent = nullptr); - virtual ~AVFMediaPlayerMetaDataControl(); - - bool isMetaDataAvailable() const override; - bool isWritable() const; - - QVariant metaData(const QString &key) const override; - QStringList availableMetaData() const override; - -private Q_SLOTS: - void updateTags(); - -private: - AVFMediaPlayerSession *m_session; - QVariantMap m_tags; - AVAsset *m_asset; - + static QMediaMetaData fromAsset(AVAsset *asset); }; QT_END_NAMESPACE diff --git a/src/multimedia/platform/darwin/mediaplayer/mediaplayer.pri b/src/multimedia/platform/darwin/mediaplayer/mediaplayer.pri index 6c02ed23d..0aab9faa5 100644 --- a/src/multimedia/platform/darwin/mediaplayer/mediaplayer.pri +++ b/src/multimedia/platform/darwin/mediaplayer/mediaplayer.pri @@ -2,7 +2,7 @@ QT += opengl network HEADERS += \ $$PWD/avfmediaplayercontrol_p.h \ - $$PWD/avfmediaplayermetadatacontrol_p.h \ + $$PWD/avfmetadata_p.h \ $$PWD/avfmediaplayerservice_p.h \ $$PWD/avfmediaplayersession_p.h \ $$PWD/avfvideooutput_p.h \ @@ -10,7 +10,7 @@ HEADERS += \ SOURCES += \ $$PWD/avfmediaplayercontrol.mm \ - $$PWD/avfmediaplayermetadatacontrol.mm \ + $$PWD/avfmetadata.mm \ $$PWD/avfmediaplayerservice.mm \ $$PWD/avfmediaplayersession.mm \ $$PWD/avfvideooutput.mm \ |