diff options
-rw-r--r-- | src/multimedia/playback/qmediaplaylist.cpp | 48 | ||||
-rw-r--r-- | src/qtmultimediaquicktools/qdeclarativevideooutput.cpp | 5 | ||||
-rw-r--r-- | src/qtmultimediaquicktools/qtmultimediaquicktools.pro | 23 | ||||
-rw-r--r-- | src/src.pro | 2 | ||||
-rw-r--r-- | tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp | 25 |
5 files changed, 46 insertions, 57 deletions
diff --git a/src/multimedia/playback/qmediaplaylist.cpp b/src/multimedia/playback/qmediaplaylist.cpp index 7c21a599b..9539a1809 100644 --- a/src/multimedia/playback/qmediaplaylist.cpp +++ b/src/multimedia/playback/qmediaplaylist.cpp @@ -184,20 +184,20 @@ bool QMediaPlaylist::setMediaObject(QMediaObject *mediaObject) disconnect(playlist, SIGNAL(loadFailed(QMediaPlaylist::Error,QString)), this, SLOT(_q_loadFailed(QMediaPlaylist::Error,QString))); - disconnect(playlist, SIGNAL(mediaChanged(int,int)), this, SIGNAL(mediaChanged(int,int))); - disconnect(playlist, SIGNAL(mediaAboutToBeInserted(int,int)), this, SIGNAL(mediaAboutToBeInserted(int,int))); - disconnect(playlist, SIGNAL(mediaInserted(int,int)), this, SIGNAL(mediaInserted(int,int))); - disconnect(playlist, SIGNAL(mediaAboutToBeRemoved(int,int)), this, SIGNAL(mediaAboutToBeRemoved(int,int))); - disconnect(playlist, SIGNAL(mediaRemoved(int,int)), this, SIGNAL(mediaRemoved(int,int))); + disconnect(playlist, &QMediaPlaylistProvider::mediaChanged, this, &QMediaPlaylist::mediaChanged); + disconnect(playlist, &QMediaPlaylistProvider::mediaAboutToBeInserted, this, &QMediaPlaylist::mediaAboutToBeInserted); + disconnect(playlist, &QMediaPlaylistProvider::mediaInserted, this, &QMediaPlaylist::mediaInserted); + disconnect(playlist, &QMediaPlaylistProvider::mediaAboutToBeRemoved, this, &QMediaPlaylist::mediaAboutToBeRemoved); + disconnect(playlist, &QMediaPlaylistProvider::mediaRemoved, this, &QMediaPlaylist::mediaRemoved); - disconnect(playlist, SIGNAL(loaded()), this, SIGNAL(loaded())); + disconnect(playlist, &QMediaPlaylistProvider::loaded, this, &QMediaPlaylist::loaded); - disconnect(d->control, SIGNAL(playbackModeChanged(QMediaPlaylist::PlaybackMode)), - this, SIGNAL(playbackModeChanged(QMediaPlaylist::PlaybackMode))); - disconnect(d->control, SIGNAL(currentIndexChanged(int)), - this, SIGNAL(currentIndexChanged(int))); - disconnect(d->control, SIGNAL(currentMediaChanged(QMediaContent)), - this, SIGNAL(currentMediaChanged(QMediaContent))); + disconnect(d->control, &QMediaPlaylistControl::playbackModeChanged, + this, &QMediaPlaylist::playbackModeChanged); + disconnect(d->control, &QMediaPlaylistControl::currentIndexChanged, + this, &QMediaPlaylist::currentIndexChanged); + disconnect(d->control, &QMediaPlaylistControl::currentMediaChanged, + this, &QMediaPlaylist::currentMediaChanged); // Copy playlist items, sync playback mode and sync current index between // old control and new control @@ -214,20 +214,20 @@ bool QMediaPlaylist::setMediaObject(QMediaObject *mediaObject) connect(playlist, SIGNAL(loadFailed(QMediaPlaylist::Error,QString)), this, SLOT(_q_loadFailed(QMediaPlaylist::Error,QString))); - connect(playlist, SIGNAL(mediaChanged(int,int)), this, SIGNAL(mediaChanged(int,int))); - connect(playlist, SIGNAL(mediaAboutToBeInserted(int,int)), this, SIGNAL(mediaAboutToBeInserted(int,int))); - connect(playlist, SIGNAL(mediaInserted(int,int)), this, SIGNAL(mediaInserted(int,int))); - connect(playlist, SIGNAL(mediaAboutToBeRemoved(int,int)), this, SIGNAL(mediaAboutToBeRemoved(int,int))); - connect(playlist, SIGNAL(mediaRemoved(int,int)), this, SIGNAL(mediaRemoved(int,int))); + connect(playlist, &QMediaPlaylistProvider::mediaChanged, this, &QMediaPlaylist::mediaChanged); + connect(playlist, &QMediaPlaylistProvider::mediaAboutToBeInserted, this, &QMediaPlaylist::mediaAboutToBeInserted); + connect(playlist, &QMediaPlaylistProvider::mediaInserted, this, &QMediaPlaylist::mediaInserted); + connect(playlist, &QMediaPlaylistProvider::mediaAboutToBeRemoved, this, &QMediaPlaylist::mediaAboutToBeRemoved); + connect(playlist, &QMediaPlaylistProvider::mediaRemoved, this, &QMediaPlaylist::mediaRemoved); - connect(playlist, SIGNAL(loaded()), this, SIGNAL(loaded())); + connect(playlist, &QMediaPlaylistProvider::loaded, this, &QMediaPlaylist::loaded); - connect(d->control, SIGNAL(playbackModeChanged(QMediaPlaylist::PlaybackMode)), - this, SIGNAL(playbackModeChanged(QMediaPlaylist::PlaybackMode))); - connect(d->control, SIGNAL(currentIndexChanged(int)), - this, SIGNAL(currentIndexChanged(int))); - connect(d->control, SIGNAL(currentMediaChanged(QMediaContent)), - this, SIGNAL(currentMediaChanged(QMediaContent))); + connect(d->control, &QMediaPlaylistControl::playbackModeChanged, + this, &QMediaPlaylist::playbackModeChanged); + connect(d->control, &QMediaPlaylistControl::currentIndexChanged, + this, &QMediaPlaylist::currentIndexChanged); + connect(d->control, &QMediaPlaylistControl::currentMediaChanged, + this, &QMediaPlaylist::currentMediaChanged); if (removedStart != -1 && removedEnd != -1) { emit mediaAboutToBeRemoved(removedStart, removedEnd); diff --git a/src/qtmultimediaquicktools/qdeclarativevideooutput.cpp b/src/qtmultimediaquicktools/qdeclarativevideooutput.cpp index 18cf0e927..74c83246f 100644 --- a/src/qtmultimediaquicktools/qdeclarativevideooutput.cpp +++ b/src/qtmultimediaquicktools/qdeclarativevideooutput.cpp @@ -206,6 +206,7 @@ void QDeclarativeVideoOutput::setSource(QObject *source) } m_sourceType = MediaObjectSource; +#if QT_CONFIG(opengl) } else if (metaObject->indexOfProperty("videoSurface") != -1) { // Make sure our backend is a QDeclarativeVideoRendererBackend m_backend.reset(); @@ -219,6 +220,7 @@ void QDeclarativeVideoOutput::setSource(QObject *source) m_source.data()->setProperty("videoSurface", QVariant::fromValue<QAbstractVideoSurface*>(surface)); m_sourceType = VideoSurfaceSource; +#endif } else { m_sourceType = NoSource; } @@ -247,12 +249,13 @@ bool QDeclarativeVideoOutput::createBackend(QMediaService *service) } } } - +#if QT_CONFIG(opengl) if (!backendAvailable) { m_backend.reset(new QDeclarativeVideoRendererBackend(this)); if (m_backend->init(service)) backendAvailable = true; } +#endif // QDeclarativeVideoWindowBackend only works when there is a service with a QVideoWindowControl. // Without service, the QDeclarativeVideoRendererBackend should always work. diff --git a/src/qtmultimediaquicktools/qtmultimediaquicktools.pro b/src/qtmultimediaquicktools/qtmultimediaquicktools.pro index bffdc6ec2..fd29ee5a4 100644 --- a/src/qtmultimediaquicktools/qtmultimediaquicktools.pro +++ b/src/qtmultimediaquicktools/qtmultimediaquicktools.pro @@ -16,20 +16,23 @@ PRIVATE_HEADERS += \ HEADERS += \ $$PRIVATE_HEADERS \ - qdeclarativevideooutput_render_p.h \ - qdeclarativevideooutput_window_p.h \ - qsgvideonode_yuv_p.h \ - qsgvideonode_rgb_p.h \ - qsgvideonode_texture_p.h + qdeclarativevideooutput_window_p.h SOURCES += \ qsgvideonode_p.cpp \ qdeclarativevideooutput.cpp \ - qdeclarativevideooutput_render.cpp \ - qdeclarativevideooutput_window.cpp \ - qsgvideonode_yuv.cpp \ - qsgvideonode_rgb.cpp \ - qsgvideonode_texture.cpp + qdeclarativevideooutput_window.cpp + +qtConfig(opengl) { + SOURCES += qdeclarativevideooutput_render.cpp \ + qsgvideonode_rgb.cpp \ + qsgvideonode_yuv.cpp \ + qsgvideonode_texture.cpp + HEADERS += qdeclarativevideooutput_render_p.h \ + qsgvideonode_rgb_p.h \ + qsgvideonode_yuv_p.h \ + qsgvideonode_texture_p.h +} RESOURCES += \ qtmultimediaquicktools.qrc diff --git a/src/src.pro b/src/src.pro index 97a053379..1dc1015c6 100644 --- a/src/src.pro +++ b/src/src.pro @@ -16,7 +16,7 @@ src_plugins.subdir = plugins src_plugins.depends = multimedia -qtHaveModule(quick):qtConfig(opengl) { +qtHaveModule(quick) { src_qtmultimediaquicktools.subdir = qtmultimediaquicktools src_qtmultimediaquicktools.depends = multimedia diff --git a/tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp b/tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp index b8d501c12..80e2e693c 100644 --- a/tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp +++ b/tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp @@ -49,6 +49,7 @@ #include <qcameraimagecapture.h> #include <qvideorenderercontrol.h> #include <private/qmediaserviceprovider_p.h> +#include <private/qvideoframe_p.h> QT_USE_NAMESPACE @@ -408,8 +409,6 @@ void tst_QCameraBackend::testCaptureToBuffer() QTRY_COMPARE(camera.status(), QCamera::LoadedStatus); - QCOMPARE(imageCapture.bufferFormat(), QVideoFrame::Format_Jpeg); - QVERIFY(imageCapture.isCaptureDestinationSupported(QCameraImageCapture::CaptureToFile)); QVERIFY(imageCapture.isCaptureDestinationSupported(QCameraImageCapture::CaptureToBuffer)); QVERIFY(imageCapture.isCaptureDestinationSupported( @@ -446,23 +445,9 @@ void tst_QCameraBackend::testCaptureToBuffer() QCOMPARE(imageAvailableSignal.first().first().toInt(), id); QVideoFrame frame = imageAvailableSignal.first().last().value<QVideoFrame>(); - QVERIFY(frame.isValid()); - QCOMPARE(frame.pixelFormat(), QVideoFrame::Format_Jpeg); - QVERIFY(!frame.size().isEmpty()); - QVERIFY(frame.map(QAbstractVideoBuffer::ReadOnly)); - QByteArray data((const char *)frame.bits(), frame.mappedBytes()); - frame.unmap(); - frame = QVideoFrame(); - - QVERIFY(!data.isEmpty()); - QBuffer buffer; - buffer.setData(data); - buffer.open(QIODevice::ReadOnly); - QImageReader reader(&buffer, "JPG"); - reader.setScaledSize(QSize(640,480)); - QImage img(reader.read()); - QVERIFY(!img.isNull()); + QVERIFY(!qt_imageFromVideoFrame(frame).isNull()); + frame = QVideoFrame(); capturedSignal.clear(); imageAvailableSignal.clear(); savedSignal.clear(); @@ -518,9 +503,7 @@ void tst_QCameraBackend::testCaptureToBuffer() QCOMPARE(imageAvailableSignal.first().first().toInt(), id); frame = imageAvailableSignal.first().last().value<QVideoFrame>(); - QVERIFY(frame.isValid()); - QCOMPARE(frame.pixelFormat(), QVideoFrame::Format_Jpeg); - QVERIFY(!frame.size().isEmpty()); + QVERIFY(!qt_imageFromVideoFrame(frame).isNull()); QString fileName = savedSignal.first().last().toString(); QVERIFY(QFileInfo(fileName).exists()); |