diff options
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/alsa/alsa.pro | 2 | ||||
-rw-r--r-- | src/plugins/alsa/qalsaaudiodeviceinfo.cpp | 2 | ||||
-rw-r--r-- | src/plugins/alsa/qalsaaudiodeviceinfo.h | 2 | ||||
-rw-r--r-- | src/plugins/directshow/player/directshowplayercontrol.cpp | 14 | ||||
-rw-r--r-- | src/plugins/gstreamer/camerabin/camerabinsession.cpp | 6 | ||||
-rw-r--r-- | src/plugins/gstreamer/mediacapture/qgstreameraudioencode.cpp | 4 | ||||
-rw-r--r-- | src/plugins/gstreamer/mediacapture/qgstreamervideoencode.cpp | 4 | ||||
-rw-r--r-- | src/plugins/videonode/imx6/imx6.pro | 6 | ||||
-rw-r--r-- | src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp | 12 |
9 files changed, 38 insertions, 14 deletions
diff --git a/src/plugins/alsa/alsa.pro b/src/plugins/alsa/alsa.pro index 56657f100..4012bb8f6 100644 --- a/src/plugins/alsa/alsa.pro +++ b/src/plugins/alsa/alsa.pro @@ -1,7 +1,7 @@ TARGET = qtaudio_alsa QT += multimedia-private -LIBS += -lasound +QMAKE_USE += alsa HEADERS += \ qalsaplugin.h \ diff --git a/src/plugins/alsa/qalsaaudiodeviceinfo.cpp b/src/plugins/alsa/qalsaaudiodeviceinfo.cpp index 5e8edc3fc..474fd6bde 100644 --- a/src/plugins/alsa/qalsaaudiodeviceinfo.cpp +++ b/src/plugins/alsa/qalsaaudiodeviceinfo.cpp @@ -54,7 +54,7 @@ QT_BEGIN_NAMESPACE -QAlsaAudioDeviceInfo::QAlsaAudioDeviceInfo(QByteArray dev, QAudio::Mode mode) +QAlsaAudioDeviceInfo::QAlsaAudioDeviceInfo(const QByteArray &dev, QAudio::Mode mode) { handle = 0; diff --git a/src/plugins/alsa/qalsaaudiodeviceinfo.h b/src/plugins/alsa/qalsaaudiodeviceinfo.h index 21e30f49b..65675df54 100644 --- a/src/plugins/alsa/qalsaaudiodeviceinfo.h +++ b/src/plugins/alsa/qalsaaudiodeviceinfo.h @@ -74,7 +74,7 @@ class QAlsaAudioDeviceInfo : public QAbstractAudioDeviceInfo { Q_OBJECT public: - QAlsaAudioDeviceInfo(QByteArray dev,QAudio::Mode mode); + QAlsaAudioDeviceInfo(const QByteArray &dev,QAudio::Mode mode); ~QAlsaAudioDeviceInfo(); bool testSettings(const QAudioFormat& format) const; diff --git a/src/plugins/directshow/player/directshowplayercontrol.cpp b/src/plugins/directshow/player/directshowplayercontrol.cpp index 7e1413b56..2fe43f21b 100644 --- a/src/plugins/directshow/player/directshowplayercontrol.cpp +++ b/src/plugins/directshow/player/directshowplayercontrol.cpp @@ -89,9 +89,11 @@ void DirectShowPlayerControl::setPosition(qint64 position) emit mediaStatusChanged(m_status); } - if (m_state == QMediaPlayer::StoppedState && m_pendingPosition != position) { - m_pendingPosition = position; - emit positionChanged(m_pendingPosition); + if (m_state == QMediaPlayer::StoppedState) { + if (m_pendingPosition != position) { + m_pendingPosition = position; + emit positionChanged(m_pendingPosition); + } return; } @@ -280,6 +282,9 @@ void DirectShowPlayerControl::emitPropertyChanges() int properties = m_updateProperties; m_updateProperties = 0; + if (properties & StatusProperty) + emit mediaStatusChanged(m_status); + if ((properties & ErrorProperty) && m_error != QMediaPlayer::NoError) emit error(m_error, m_errorString); @@ -300,9 +305,6 @@ void DirectShowPlayerControl::emitPropertyChanges() if (properties & SeekableProperty) emit seekableChanged(m_seekable); - if (properties & StatusProperty) - emit mediaStatusChanged(m_status); - if (properties & StateProperty) emit stateChanged(m_state); } diff --git a/src/plugins/gstreamer/camerabin/camerabinsession.cpp b/src/plugins/gstreamer/camerabin/camerabinsession.cpp index b96ba6792..3e505a413 100644 --- a/src/plugins/gstreamer/camerabin/camerabinsession.cpp +++ b/src/plugins/gstreamer/camerabin/camerabinsession.cpp @@ -1312,6 +1312,9 @@ QList< QPair<int,int> > CameraBinSession::supportedFrameRates(const QSize &frame for (uint i=0; i<gst_caps_get_size(caps); i++) { GstStructure *structure = gst_caps_get_structure(caps, i); gst_structure_set_name(structure, "video/x-raw"); +#if GST_CHECK_VERSION(1,2,0) + gst_caps_set_features(caps, i, NULL); +#endif const GValue *oldRate = gst_structure_get_value(structure, "framerate"); if (!oldRate) continue; @@ -1424,6 +1427,9 @@ QList<QSize> CameraBinSession::supportedResolutions(QPair<int,int> rate, for (uint i=0; i<gst_caps_get_size(caps); i++) { GstStructure *structure = gst_caps_get_structure(caps, i); gst_structure_set_name(structure, "video/x-raw"); +#if GST_CHECK_VERSION(1,2,0) + gst_caps_set_features(caps, i, NULL); +#endif const GValue *oldW = gst_structure_get_value(structure, "width"); const GValue *oldH = gst_structure_get_value(structure, "height"); if (!oldW || !oldH) diff --git a/src/plugins/gstreamer/mediacapture/qgstreameraudioencode.cpp b/src/plugins/gstreamer/mediacapture/qgstreameraudioencode.cpp index 98aaded72..1a35c5cf6 100644 --- a/src/plugins/gstreamer/mediacapture/qgstreameraudioencode.cpp +++ b/src/plugins/gstreamer/mediacapture/qgstreameraudioencode.cpp @@ -205,8 +205,8 @@ GstElement *QGstreamerAudioEncode::createEncoder() QMap<QString, QVariant> options = m_options.value(codec); for (auto it = options.cbegin(), end = options.cend(); it != end; ++it) { - QString option = it.key(); - QVariant value = it.value(); + const QString &option = it.key(); + const QVariant &value = it.value(); switch (value.type()) { case QVariant::Int: diff --git a/src/plugins/gstreamer/mediacapture/qgstreamervideoencode.cpp b/src/plugins/gstreamer/mediacapture/qgstreamervideoencode.cpp index 4cc0e5f25..a2ed1d288 100644 --- a/src/plugins/gstreamer/mediacapture/qgstreamervideoencode.cpp +++ b/src/plugins/gstreamer/mediacapture/qgstreamervideoencode.cpp @@ -196,8 +196,8 @@ GstElement *QGstreamerVideoEncode::createEncoder() QMap<QString,QVariant> options = m_options.value(codec); for (auto it = options.cbegin(), end = options.cend(); it != end; ++it) { - QString option = it.key(); - QVariant value = it.value(); + const QString &option = it.key(); + const QVariant &value = it.value(); switch (value.type()) { case QVariant::Int: diff --git a/src/plugins/videonode/imx6/imx6.pro b/src/plugins/videonode/imx6/imx6.pro index c8085a31e..43e17e725 100644 --- a/src/plugins/videonode/imx6/imx6.pro +++ b/src/plugins/videonode/imx6/imx6.pro @@ -2,6 +2,12 @@ TARGET = imx6vivantevideonode QT += multimedia-private qtmultimediaquicktools-private +qtConfig(gstreamer_imxcommon) { + QT += multimediagsttools-private + QMAKE_USE += gstreamer_imxcommon + DEFINES += GST_USE_UNSTABLE_API +} + HEADERS += \ qsgvivantevideonode.h \ qsgvivantevideomaterialshader.h \ diff --git a/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp b/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp index 4b68f47a4..e1468fe34 100644 --- a/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp +++ b/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp @@ -49,6 +49,11 @@ #include <unistd.h> +#include <QtMultimedia/private/qtmultimediaglobal_p.h> +#if QT_CONFIG(gstreamer_imxcommon) +#include "private/qgstvideobuffer_p.h" +#include <gst/allocators/imx/phys_mem_meta.h> +#endif //#define QT_VIVANTE_VIDEO_DEBUG @@ -224,7 +229,12 @@ GLuint QSGVivanteVideoMaterial::vivanteMapping(QVideoFrame vF) #endif GLuint physical = ~0U; - +#if QT_CONFIG(gstreamer_imxcommon) + auto buffer = reinterpret_cast<QGstVideoBuffer *>(vF.buffer()); + GstImxPhysMemMeta *meta = GST_IMX_PHYS_MEM_META_GET(buffer->buffer()); + if (meta && meta->phys_addr) + physical = meta->phys_addr; +#endif glBindTexture(GL_TEXTURE_2D, tmpTexId); glTexDirectVIVMap_LOCAL(GL_TEXTURE_2D, fullWidth, fullHeight, |