summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/multimedia/playback/qmediaplaylist.cpp48
-rw-r--r--src/plugins/alsa/qalsaaudiooutput.cpp34
-rw-r--r--src/plugins/avfoundation/camera/avfmediaassetwriter.mm8
-rw-r--r--src/qtmultimediaquicktools/qdeclarativevideooutput.cpp5
-rw-r--r--src/qtmultimediaquicktools/qtmultimediaquicktools.pro23
-rw-r--r--src/src.pro2
6 files changed, 61 insertions, 59 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/plugins/alsa/qalsaaudiooutput.cpp b/src/plugins/alsa/qalsaaudiooutput.cpp
index ddbe04de9..5c8ae171c 100644
--- a/src/plugins/alsa/qalsaaudiooutput.cpp
+++ b/src/plugins/alsa/qalsaaudiooutput.cpp
@@ -53,9 +53,11 @@
#include <QtMultimedia/private/qaudiohelpers_p.h>
#include "qalsaaudiooutput.h"
#include "qalsaaudiodeviceinfo.h"
+#include <QLoggingCategory>
QT_BEGIN_NAMESPACE
+Q_LOGGING_CATEGORY(lcAlsaOutput, "qt.multimedia.alsa.output")
//#define DEBUG_AUDIO 1
QAlsaAudioOutput::QAlsaAudioOutput(const QByteArray &device)
@@ -403,28 +405,22 @@ bool QAlsaAudioOutput::open()
fatal = true;
errMessage = QString::fromLatin1("QAudioOutput: buffer/period min and max: err = %1").arg(err);
} else {
- if (maxBufferTime < buffer_time || buffer_time < minBufferTime || maxPeriodTime < period_time || minPeriodTime > period_time) {
-#ifdef DEBUG_AUDIO
- qDebug()<<"defaults out of range";
- qDebug()<<"pmin="<<minPeriodTime<<", pmax="<<maxPeriodTime<<", bmin="<<minBufferTime<<", bmax="<<maxBufferTime;
-#endif
- period_time = minPeriodTime;
- if (period_time*4 <= maxBufferTime) {
- // Use 4 periods if possible
- buffer_time = period_time*4;
- chunks = 4;
- } else if (period_time*2 <= maxBufferTime) {
- // Use 2 periods if possible
- buffer_time = period_time*2;
- chunks = 2;
+ static unsigned user_buffer_time = qEnvironmentVariableIntValue("QT_ALSA_OUTPUT_BUFFER_TIME");
+ static unsigned user_period_time = qEnvironmentVariableIntValue("QT_ALSA_OUTPUT_PERIOD_TIME");
+ const bool outOfRange = maxBufferTime < buffer_time || buffer_time < minBufferTime || maxPeriodTime < period_time || minPeriodTime > period_time;
+ if (outOfRange || user_period_time || user_buffer_time) {
+ period_time = user_period_time ? user_period_time : minPeriodTime;
+ if (!user_buffer_time) {
+ chunks = maxBufferTime / period_time;
+ buffer_time = period_time * chunks;
} else {
- qWarning()<<"QAudioOutput: alsa only supports single period!";
- fatal = true;
+ buffer_time = user_buffer_time;
+ chunks = buffer_time / period_time;
}
-#ifdef DEBUG_AUDIO
- qDebug()<<"used: buffer_time="<<buffer_time<<", period_time="<<period_time;
-#endif
}
+ qCDebug(lcAlsaOutput) << "buffer time: [" << minBufferTime << "-" << maxBufferTime << "] =" << buffer_time;
+ qCDebug(lcAlsaOutput) << "period time: [" << minPeriodTime << "-" << maxPeriodTime << "] =" << period_time;
+ qCDebug(lcAlsaOutput) << "chunks =" << chunks;
}
}
if ( !fatal ) {
diff --git a/src/plugins/avfoundation/camera/avfmediaassetwriter.mm b/src/plugins/avfoundation/camera/avfmediaassetwriter.mm
index 318d66117..9030adb2c 100644
--- a/src/plugins/avfoundation/camera/avfmediaassetwriter.mm
+++ b/src/plugins/avfoundation/camera/avfmediaassetwriter.mm
@@ -413,7 +413,7 @@ enum WriterState
m_audioOutput.reset([[AVCaptureAudioDataOutput alloc] init]);
- if (m_audioOutput && [captureSession canAddOutput:m_audioOutput]) {
+ if (m_audioOutput.data() && [captureSession canAddOutput:m_audioOutput]) {
[captureSession addOutput:m_audioOutput];
} else {
qDebugCamera() << Q_FUNC_INFO << "failed to add audio output";
@@ -431,7 +431,7 @@ enum WriterState
{
Q_ASSERT(m_service && m_service->videoOutput()
&& m_service->videoOutput()->videoDataOutput());
- Q_ASSERT(m_assetWriter);
+ Q_ASSERT(m_assetWriter.data());
m_cameraWriterInput.reset([[AVAssetWriterInput alloc] initWithMediaType:AVMediaTypeVideo
outputSettings:m_videoSettings
@@ -451,7 +451,7 @@ enum WriterState
m_cameraWriterInput.data().expectsMediaDataInRealTime = YES;
- if (m_audioOutput) {
+ if (m_audioOutput.data()) {
CMFormatDescriptionRef sourceFormat = m_audioCaptureDevice ? m_audioCaptureDevice.activeFormat.formatDescription : 0;
m_audioWriterInput.reset([[AVAssetWriterInput alloc] initWithMediaType:AVMediaTypeAudio
outputSettings:m_audioSettings
@@ -479,7 +479,7 @@ enum WriterState
[m_service->videoOutput()->videoDataOutput() setSampleBufferDelegate:self queue:m_videoQueue];
- if (m_audioOutput) {
+ if (m_audioOutput.data()) {
Q_ASSERT(m_audioQueue);
[m_audioOutput setSampleBufferDelegate:self queue:m_audioQueue];
}
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 7c8d07647..cb1f8106b 100644
--- a/src/qtmultimediaquicktools/qtmultimediaquicktools.pro
+++ b/src/qtmultimediaquicktools/qtmultimediaquicktools.pro
@@ -11,20 +11,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