diff options
author | Liang Qi <liang.qi@qt.io> | 2016-12-12 09:48:13 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2016-12-12 10:27:59 +0100 |
commit | 533759ef333e4db8625cd02f763994788da01199 (patch) | |
tree | dcb4b4ec8882b42ce8213f4e309534dd8d234843 /src/multimedia | |
parent | 31ed506ea2c7a8be439d77e02ca0d67b6f9ce675 (diff) | |
parent | 7bc230386e0d8d6f3c4ad5a0a6a22a625c9a8327 (diff) |
Merge remote-tracking branch 'origin/5.8' into dev
Conflicts:
src/plugins/gstreamer/mediacapture/qgstreameraudioencode.cpp
Change-Id: I7c30c2d13fdd07ee07e4449d5d3e256e988d3793
Diffstat (limited to 'src/multimedia')
54 files changed, 495 insertions, 376 deletions
diff --git a/src/multimedia/audio/audio.pri b/src/multimedia/audio/audio.pri index 4706fd23e..d6d74a316 100644 --- a/src/multimedia/audio/audio.pri +++ b/src/multimedia/audio/audio.pri @@ -40,20 +40,12 @@ SOURCES += \ audio/qaudiodecoder.cpp \ audio/qaudiohelpers.cpp -unix:!mac { - config_pulseaudio { - CONFIG += link_pkgconfig - PKGCONFIG_PRIVATE += libpulse +qtConfig(pulseaudio) { + QMAKE_USE += pulseaudio - DEFINES += QT_MULTIMEDIA_PULSEAUDIO - PRIVATE_HEADERS += audio/qsoundeffect_pulse_p.h - SOURCES += audio/qsoundeffect_pulse_p.cpp - !maemo*:DEFINES += QTM_PULSEAUDIO_DEFAULTBUFFER - } else { - DEFINES += QT_MULTIMEDIA_QAUDIO - PRIVATE_HEADERS += audio/qsoundeffect_qaudio_p.h - SOURCES += audio/qsoundeffect_qaudio_p.cpp - } + DEFINES += QT_MULTIMEDIA_PULSEAUDIO + PRIVATE_HEADERS += audio/qsoundeffect_pulse_p.h + SOURCES += audio/qsoundeffect_pulse_p.cpp } else { DEFINES += QT_MULTIMEDIA_QAUDIO PRIVATE_HEADERS += audio/qsoundeffect_qaudio_p.h diff --git a/src/multimedia/audio/qaudio.h b/src/multimedia/audio/qaudio.h index 457a3b621..1c38e9f35 100644 --- a/src/multimedia/audio/qaudio.h +++ b/src/multimedia/audio/qaudio.h @@ -41,7 +41,7 @@ #ifndef QAUDIO_H #define QAUDIO_H -#include <QtMultimedia/qtmultimediadefs.h> +#include <QtMultimedia/qtmultimediaglobal.h> #include <QtMultimedia/qmultimedia.h> #include <QtCore/qmetatype.h> diff --git a/src/multimedia/audio/qaudiobuffer.h b/src/multimedia/audio/qaudiobuffer.h index c45b56ed3..bed387462 100644 --- a/src/multimedia/audio/qaudiobuffer.h +++ b/src/multimedia/audio/qaudiobuffer.h @@ -42,7 +42,7 @@ #include <QtCore/qshareddata.h> -#include <QtMultimedia/qtmultimediadefs.h> +#include <QtMultimedia/qtmultimediaglobal.h> #include <QtMultimedia/qmultimedia.h> #include <QtMultimedia/qaudio.h> diff --git a/src/multimedia/audio/qaudiobuffer_p.h b/src/multimedia/audio/qaudiobuffer_p.h index 06233ca7c..e770989f2 100644 --- a/src/multimedia/audio/qaudiobuffer_p.h +++ b/src/multimedia/audio/qaudiobuffer_p.h @@ -51,7 +51,7 @@ // We mean it. // -#include <qtmultimediadefs.h> +#include <qtmultimediaglobal.h> #include <qmultimedia.h> #include "qaudioformat.h" diff --git a/src/multimedia/audio/qaudiodevicefactory_p.h b/src/multimedia/audio/qaudiodevicefactory_p.h index 7ad5e4e78..238be46a7 100644 --- a/src/multimedia/audio/qaudiodevicefactory_p.h +++ b/src/multimedia/audio/qaudiodevicefactory_p.h @@ -54,7 +54,7 @@ #include <QtCore/qbytearray.h> #include <QtCore/qlist.h> -#include <qtmultimediadefs.h> +#include <qtmultimediaglobal.h> #include <qmultimedia.h> #include "qaudiodeviceinfo.h" diff --git a/src/multimedia/audio/qaudiodeviceinfo.h b/src/multimedia/audio/qaudiodeviceinfo.h index 709e6830a..390458b39 100644 --- a/src/multimedia/audio/qaudiodeviceinfo.h +++ b/src/multimedia/audio/qaudiodeviceinfo.h @@ -47,7 +47,7 @@ #include <QtCore/qstringlist.h> #include <QtCore/qlist.h> -#include <QtMultimedia/qtmultimediadefs.h> +#include <QtMultimedia/qtmultimediaglobal.h> #include <QtMultimedia/qmultimedia.h> #include <QtMultimedia/qaudio.h> diff --git a/src/multimedia/audio/qaudioformat.h b/src/multimedia/audio/qaudioformat.h index 2ae6d6aef..97779ea2c 100644 --- a/src/multimedia/audio/qaudioformat.h +++ b/src/multimedia/audio/qaudioformat.h @@ -44,7 +44,7 @@ #include <QtCore/qobject.h> #include <QtCore/qshareddata.h> -#include <QtMultimedia/qtmultimediadefs.h> +#include <QtMultimedia/qtmultimediaglobal.h> #include <QtMultimedia/qmultimedia.h> QT_BEGIN_NAMESPACE diff --git a/src/multimedia/audio/qaudioinput.h b/src/multimedia/audio/qaudioinput.h index d1a58424e..5794276d2 100644 --- a/src/multimedia/audio/qaudioinput.h +++ b/src/multimedia/audio/qaudioinput.h @@ -43,7 +43,7 @@ #include <QtCore/qiodevice.h> -#include <QtMultimedia/qtmultimediadefs.h> +#include <QtMultimedia/qtmultimediaglobal.h> #include <QtMultimedia/qmultimedia.h> #include <QtMultimedia/qaudio.h> diff --git a/src/multimedia/audio/qaudiooutput.h b/src/multimedia/audio/qaudiooutput.h index fab562ae1..9f817271d 100644 --- a/src/multimedia/audio/qaudiooutput.h +++ b/src/multimedia/audio/qaudiooutput.h @@ -43,7 +43,7 @@ #include <QtCore/qiodevice.h> -#include <QtMultimedia/qtmultimediadefs.h> +#include <QtMultimedia/qtmultimediaglobal.h> #include <QtMultimedia/qmultimedia.h> #include <QtMultimedia/qaudio.h> diff --git a/src/multimedia/audio/qaudiosystem.h b/src/multimedia/audio/qaudiosystem.h index 1a927589d..dabf8df0b 100644 --- a/src/multimedia/audio/qaudiosystem.h +++ b/src/multimedia/audio/qaudiosystem.h @@ -40,7 +40,7 @@ #ifndef QAUDIOSYSTEM_H #define QAUDIOSYSTEM_H -#include <QtMultimedia/qtmultimediadefs.h> +#include <QtMultimedia/qtmultimediaglobal.h> #include <QtMultimedia/qmultimedia.h> #include <QtMultimedia/qaudio.h> diff --git a/src/multimedia/audio/qaudiosystemplugin.h b/src/multimedia/audio/qaudiosystemplugin.h index b26b2a3b9..3368c9b98 100644 --- a/src/multimedia/audio/qaudiosystemplugin.h +++ b/src/multimedia/audio/qaudiosystemplugin.h @@ -44,7 +44,7 @@ #include <QtCore/qstring.h> #include <QtCore/qplugin.h> -#include <QtMultimedia/qtmultimediadefs.h> +#include <QtMultimedia/qtmultimediaglobal.h> #include <QtMultimedia/qmultimedia.h> #include <QtMultimedia/qaudioformat.h> diff --git a/src/multimedia/audio/qaudiosystempluginext_p.h b/src/multimedia/audio/qaudiosystempluginext_p.h index 380bc5afa..6493b7f77 100644 --- a/src/multimedia/audio/qaudiosystempluginext_p.h +++ b/src/multimedia/audio/qaudiosystempluginext_p.h @@ -40,7 +40,7 @@ #ifndef QAUDIOSYSTEMPLUGINEXT_P_H #define QAUDIOSYSTEMPLUGINEXT_P_H -#include <QtMultimedia/qtmultimediadefs.h> +#include <QtMultimedia/qtmultimediaglobal.h> #include <QtMultimedia/qaudio.h> #include <QtCore/qplugin.h> diff --git a/src/multimedia/audio/qsound.h b/src/multimedia/audio/qsound.h index f8d47676f..304019ced 100644 --- a/src/multimedia/audio/qsound.h +++ b/src/multimedia/audio/qsound.h @@ -40,7 +40,7 @@ #ifndef QSOUND_H #define QSOUND_H -#include <QtMultimedia/qtmultimediadefs.h> +#include <QtMultimedia/qtmultimediaglobal.h> #include <QtCore/qobject.h> QT_BEGIN_NAMESPACE diff --git a/src/multimedia/audio/qsoundeffect.h b/src/multimedia/audio/qsoundeffect.h index f59c4d91d..7420d7b81 100644 --- a/src/multimedia/audio/qsoundeffect.h +++ b/src/multimedia/audio/qsoundeffect.h @@ -40,7 +40,7 @@ #ifndef QSOUNDEFFECT_H #define QSOUNDEFFECT_H -#include <QtMultimedia/qtmultimediadefs.h> +#include <QtMultimedia/qtmultimediaglobal.h> #include <QtCore/qobject.h> #include <QtCore/qurl.h> #include <QtCore/qstringlist.h> diff --git a/src/multimedia/audio/qsoundeffect_pulse_p.cpp b/src/multimedia/audio/qsoundeffect_pulse_p.cpp index fcf4fee35..2e2dfc2db 100644 --- a/src/multimedia/audio/qsoundeffect_pulse_p.cpp +++ b/src/multimedia/audio/qsoundeffect_pulse_p.cpp @@ -62,9 +62,6 @@ #include <unistd.h> //#define QT_PA_DEBUG -#ifndef QTM_PULSEAUDIO_DEFAULTBUFFER -#define QT_PA_STREAM_BUFFER_SIZE_MAX (1024 * 64) //64KB is a trade-off for balancing control latency and uploading overhead -#endif QT_BEGIN_NAMESPACE @@ -679,7 +676,6 @@ void QSoundEffectPrivate::sampleReady() #ifdef QT_PA_DEBUG qDebug() << this << "reuse existing pulsestream"; #endif -#ifdef QTM_PULSEAUDIO_DEFAULTBUFFER const pa_buffer_attr *bufferAttr = pa_stream_get_buffer_attr(m_pulseStream); if (bufferAttr->prebuf > uint32_t(m_sample->data().size())) { pa_buffer_attr newBufferAttr; @@ -693,33 +689,6 @@ void QSoundEffectPrivate::sampleReady() } else { streamReady(); } -#else - const pa_buffer_attr *bufferAttr = pa_stream_get_buffer_attr(m_pulseStream); - if (bufferAttr->tlength < m_sample->data().size() && bufferAttr->tlength < QT_PA_STREAM_BUFFER_SIZE_MAX) { - pa_buffer_attr newBufferAttr; - newBufferAttr.maxlength = -1; - newBufferAttr.tlength = qMin(m_sample->data().size(), QT_PA_STREAM_BUFFER_SIZE_MAX); - newBufferAttr.minreq = bufferAttr->tlength / 2; - newBufferAttr.prebuf = -1; - newBufferAttr.fragsize = -1; - pa_operation *op = pa_stream_set_buffer_attr(m_pulseStream, &newBufferAttr, stream_reset_buffer_callback, m_ref->getRef()); - if (op) - pa_operation_unref(op); - else - qWarning("QSoundEffect(pulseaudio): failed to adjust pre-buffer attribute"); - } else if (bufferAttr->prebuf > uint32_t(m_sample->data().size())) { - pa_buffer_attr newBufferAttr; - newBufferAttr = *bufferAttr; - newBufferAttr.prebuf = m_sample->data().size(); - pa_operation *op = pa_stream_set_buffer_attr(m_pulseStream, &newBufferAttr, stream_adjust_prebuffer_callback, m_ref->getRef()); - if (op) - pa_operation_unref(op); - else - qWarning("QSoundEffect(pulseaudio): failed to adjust pre-buffer attribute"); - } else { - streamReady(); - } -#endif } else { if (!pulseDaemon()->context() || pa_context_get_state(pulseDaemon()->context()) != PA_CONTEXT_READY) { connect(pulseDaemon(), SIGNAL(contextReady()), SLOT(contextReady())); @@ -963,17 +932,7 @@ void QSoundEffectPrivate::createPulseStream() } m_pulseStream = stream; -#ifndef QTM_PULSEAUDIO_DEFAULTBUFFER - pa_buffer_attr bufferAttr; - bufferAttr.tlength = qMin(m_sample->data().size(), QT_PA_STREAM_BUFFER_SIZE_MAX); - bufferAttr.maxlength = -1; - bufferAttr.minreq = bufferAttr.tlength / 2; - bufferAttr.prebuf = -1; - bufferAttr.fragsize = -1; - if (pa_stream_connect_playback(m_pulseStream, 0, &bufferAttr, -#else if (pa_stream_connect_playback(m_pulseStream, 0, 0, -#endif PA_STREAM_START_CORKED, 0, 0) < 0) { qWarning("QSoundEffect(pulseaudio): Failed to connect stream, error = %s", pa_strerror(pa_context_errno(pulseDaemon()->context()))); @@ -1048,39 +1007,6 @@ void QSoundEffectPrivate::stream_state_callback(pa_stream *s, void *userdata) } } -void QSoundEffectPrivate::stream_reset_buffer_callback(pa_stream *s, int success, void *userdata) -{ -#ifdef QT_PA_DEBUG - qDebug() << "stream_reset_buffer_callback"; -#endif - Q_UNUSED(s); - QSoundEffectRef *ref = reinterpret_cast<QSoundEffectRef*>(userdata); - QSoundEffectPrivate *self = ref->soundEffect(); - ref->release(); - if (!self) - return; - - if (!success) - qWarning("QSoundEffect(pulseaudio): failed to reset buffer attribute"); -#ifdef QT_PA_DEBUG - qDebug() << self << "stream_reset_buffer_callback"; -#endif - const pa_buffer_attr *bufferAttr = pa_stream_get_buffer_attr(self->m_pulseStream); - self->m_pulseBufferSize = bufferAttr->tlength; - if (bufferAttr->prebuf > uint32_t(self->m_sample->data().size())) { - pa_buffer_attr newBufferAttr; - newBufferAttr = *bufferAttr; - newBufferAttr.prebuf = self->m_sample->data().size(); - pa_operation *op = pa_stream_set_buffer_attr(self->m_pulseStream, &newBufferAttr, stream_adjust_prebuffer_callback, userdata); - if (op) - pa_operation_unref(op); - else - qWarning("QSoundEffect(pulseaudio): failed to adjust pre-buffer attribute"); - } else { - QMetaObject::invokeMethod(self, "streamReady", Qt::QueuedConnection); - } -} - void QSoundEffectPrivate::stream_adjust_prebuffer_callback(pa_stream *s, int success, void *userdata) { #ifdef QT_PA_DEBUG diff --git a/src/multimedia/audio/qsoundeffect_pulse_p.h b/src/multimedia/audio/qsoundeffect_pulse_p.h index 020aa031a..7be88c55a 100644 --- a/src/multimedia/audio/qsoundeffect_pulse_p.h +++ b/src/multimedia/audio/qsoundeffect_pulse_p.h @@ -148,7 +148,6 @@ private: static void stream_flush_reload_callback(pa_stream *s, int success, void *userdata); static void stream_write_done_callback(void *p); static void stream_adjust_prebuffer_callback(pa_stream *s, int success, void *userdata); - static void stream_reset_buffer_callback(pa_stream *s, int success, void *userdata); pa_stream *m_pulseStream; int m_sinkInputId; diff --git a/src/multimedia/camera/qcamera.cpp b/src/multimedia/camera/qcamera.cpp index 4c1c0a924..fd804316c 100644 --- a/src/multimedia/camera/qcamera.cpp +++ b/src/multimedia/camera/qcamera.cpp @@ -71,17 +71,15 @@ static void qRegisterCameraMetaTypes() Q_CONSTRUCTOR_FUNCTION(qRegisterCameraMetaTypes) -static bool qt_sizeLessThan(const QSize &s1, const QSize &s2) +Q_DECL_CONSTEXPR static bool qt_sizeLessThan(const QSize &s1, const QSize &s2) Q_DECL_NOTHROW { return (s1.width() * s1.height()) < (s2.width() * s2.height()); } -static bool qt_frameRateRangeLessThan(const QCamera::FrameRateRange &s1, const QCamera::FrameRateRange &s2) +Q_DECL_CONSTEXPR static bool qt_frameRateRangeLessThan(const QCamera::FrameRateRange &s1, const QCamera::FrameRateRange &s2) Q_DECL_NOTHROW { - if (s1.maximumFrameRate == s2.maximumFrameRate) - return s1.minimumFrameRate < s2.minimumFrameRate; - - return s1.maximumFrameRate < s2.maximumFrameRate; + return qFuzzyCompare(s1.maximumFrameRate, s2.maximumFrameRate) ? (s1.minimumFrameRate < s2.minimumFrameRate) + : (s1.maximumFrameRate < s2.maximumFrameRate); } /*! diff --git a/src/multimedia/camera/qcameraviewfindersettings.h b/src/multimedia/camera/qcameraviewfindersettings.h index df544dd8f..432bdcf1f 100644 --- a/src/multimedia/camera/qcameraviewfindersettings.h +++ b/src/multimedia/camera/qcameraviewfindersettings.h @@ -40,7 +40,7 @@ #ifndef QCAMERAVIEWFINDERSETTINGS_H #define QCAMERAVIEWFINDERSETTINGS_H -#include <QtMultimedia/qtmultimediadefs.h> +#include <QtMultimedia/qtmultimediaglobal.h> #include <QtMultimedia/qvideoframe.h> #include <QtCore/qshareddata.h> diff --git a/src/multimedia/configure.json b/src/multimedia/configure.json new file mode 100644 index 000000000..8fb2eb868 --- /dev/null +++ b/src/multimedia/configure.json @@ -0,0 +1,314 @@ +{ + "module": "multimedia", + "depends": [ + "gui" + ], + "testDir": "../../config.tests", + + "commandline": { + "options": { + "alsa": "boolean", + "gstreamer": { "type": "optionalString", "values": [ "no", "yes", "0.10", "1.0" ] }, + "pulseaudio": "boolean", + "wmf-backend": "boolean" + } + }, + + "libraries": { + "alsa": { + "label": "ALSA", + "test": "alsa", + "sources": [ + "-lasound" + ] + }, + "avfoundation": { + "label": "AVFoundation", + "test": "avfoundation", + "sources": [ + { "libs": "-framework AVFoundation -framework Foundation" } + ] + }, + "directshow": { + "label": "DirectShow", + "test": "directshow", + "sources": [ + { "libs": "-lstrmiids -ldmoguids -luuid -lmsdmo -lole32 -loleaut32" } + ] + }, + "gstreamer_0_10": { + "label": "GStreamer 0.10", + "export": "gstreamer", + "test": "gstreamer", + "sources": [ + { "type": "pkgConfig", + "args": "gstreamer-0.10 gstreamer-base-0.10 gstreamer-audio-0.10 gstreamer-video-0.10 gstreamer-pbutils-0.10 gstreamer-interfaces-0.10" } + ] + }, + "gstreamer_1_0": { + "label": "GStreamer 1.0", + "export": "gstreamer", + "test": "gstreamer", + "sources": [ + { "type": "pkgConfig", + "args": "gstreamer-1.0 gstreamer-base-1.0 gstreamer-audio-1.0 gstreamer-video-1.0 gstreamer-pbutils-1.0" } + ] + }, + "gstreamer_app_0_10": { + "label": "GStreamer App 0.10", + "export": "gstreamer_app", + "test": "gstreamer_appsrc", + "use": "gstreamer_0_10", + "sources": [ + { "type": "pkgConfig", "args": "gstreamer-app-0.10" } + ] + }, + "gstreamer_app_1_0": { + "label": "GStreamer App 1.0", + "export": "gstreamer_app", + "test": "gstreamer_appsrc", + "use": "gstreamer_1_0", + "sources": [ + { "type": "pkgConfig", "args": "gstreamer-app-1.0" } + ] + }, + "gstreamer_photography_0_10": { + "label": "GStreamer Photography 0.10", + "export": "gstreamer_photography", + "test": "gstreamer_photography", + "use": "gstreamer_0_10", + "sources": [ + { "libs": "-lgstphotography-0.10" } + ] + }, + "gstreamer_photography_1_0": { + "label": "GStreamer Photography 1.0", + "export": "gstreamer_photography", + "test": "gstreamer_photography", + "use": "gstreamer_1_0", + "sources": [ + { "libs": "-lgstphotography-1.0" } + ] + }, + "libresourceqt5": { + "label": "libresourceqt5", + "test": "resourcepolicy", + "sources": [ + { "type": "pkgConfig", "args": "libresourceqt5" } + ] + }, + "mmrenderer": { + "label": "MMRenderer", + "test": "mmrenderer", + "sources": [ + { "libs": "-lmmrndclient -lstrm" } + ] + }, + "openal": { + "label": "OpenAL", + "test": "openal", + "sources": [ + { "type": "pkgConfig", "args": "openal" }, + { "libs": "-lOpenAL32", "condition": "config.win32" }, + { "libs": "-framework OpenAL", "condition": "config.darwin" }, + { "libs": "-lopenal", "condition": "config.unix && !config.darwin" } + ] + }, + "pulseaudio": { + "label": "PulseAudio >= 0.9.10", + "test": "pulseaudio", + "sources": [ + { "type": "pkgConfig", "args": "libpulse >= 0.9.10 libpulse-mainloop-glib" } + ] + }, + "wmf": { + "label": "WMF", + "test": "wmf", + "sources": [ + { "libs": "-lstrmiids -ldmoguids -luuid -lmsdmo -lole32 -loleaut32 -lMf -lMfuuid -lMfplat -lPropsys" } + ] + } + }, + + "tests": { + "evr": { + "label": "evr.h", + "type": "compile", + "test": "evr" + }, + "gstreamer_encodingprofiles_1_0": { + "label": "GStreamer encoding-profile.h", + "type": "compile", + "use": "gstreamer_1_0", + "test": "gstreamer_encodingprofiles" + }, + "gstreamer_encodingprofiles_0_10": { + "label": "GStreamer encoding-profile.h", + "type": "compile", + "use": "gstreamer_0_10", + "test": "gstreamer_encodingprofiles" + }, + "gpu_vivante": { + "label": "Vivante GPU", + "type": "compile", + "test": "gpu_vivante" + }, + "linux_v4l": { + "label": "Video for Linux", + "type": "compile", + "test": "linux_v4l" + }, + "wasapi": { + "label": "Windows Audio Services", + "type": "compile", + "test": "wasapi" + }, + "wmsdk": { + "label": "wmsdk.h", + "type": "compile", + "test": "wmsdk" + }, + "wshellitem": { + "label": "WShellItem", + "type": "compile", + "test": "wshellitem" + } + }, + + "features": { + "alsa": { + "label": "ALSA", + "condition": "config.unix && libs.alsa", + "output": [ "feature", "privateFeature" ] + }, + "avfoundation": { + "label": "AVFoundation", + "emitIf": "config.darwin", + "condition": "libs.avfoundation", + "output": [ "feature", "privateFeature" ] + }, + "directshow": { + "label": "DirectShow", + "condition": "config.win32 && libs.directshow", + "output": [ "feature", "privateFeature" ] + }, + "evr": { + "label": "evr.h", + "condition": "config.win32 && tests.evr", + "output": [ "feature", "privateFeature" ] + }, + "gstreamer_0_10": { + "label": "GStreamer 0.10", + "disable": "input.gstreamer == '1.0' || input.gstreamer == 'no'", + "enable": "input.gstreamer == '0.10'", + "condition": "!features.gstreamer_1_0 && libs.gstreamer_0_10", + "output": [ "privateFeature" ] + }, + "gstreamer_1_0": { + "label": "GStreamer 1.0", + "disable": "input.gstreamer == '0.10' || input.gstreamer == 'no'", + "enable": "input.gstreamer == '1.0'", + "condition": "libs.gstreamer_1_0", + "output": [ "privateFeature" ] + }, + "gstreamer": { + "condition": "features.gstreamer_1_0 || features.gstreamer_0_10", + "output": [ "privateFeature" ] + }, + "gstreamer_app": { + "label": "GStreamer App", + "condition": "(features.gstreamer_1_0 && libs.gstreamer_app_1_0) + || (features.gstreamer_0_10 && libs.gstreamer_app_0_10)", + "output": [ "privateFeature" ] + }, + "gstreamer_encodingprofiles": { + "label": "GStreamer encoding-profile.h", + "condition": "(features.gstreamer_1_0 && tests.gstreamer_encodingprofiles_1_0) + || (features.gstreamer_0_10 && tests.gstreamer_encodingprofiles_0_10)", + "output": [ "privateFeature" ] + }, + "gstreamer_photography": { + "label": "GStreamer Photography", + "condition": "(features.gstreamer_1_0 && libs.gstreamer_photography_1_0) + || (features.gstreamer_0_10 && libs.gstreamer_photography_0_10)", + "output": [ "privateFeature" ] + }, + "gpu_vivante": { + "label": "Vivante GPU", + "condition": "features.opengles2 && tests.gpu_vivante", + "output": [ "privateFeature" ] + }, + "resourcepolicy": { + "label": "Resource Policy (libresourceqt5)", + "condition": "libs.libresourceqt5", + "output": [ "privateFeature" ] + }, + "linux_v4l": { + "label": "Video for Linux", + "condition": "config.unix && tests.linux_v4l", + "output": [ "privateFeature" ] + }, + "mmrenderer": { + "label": "MMRenderer", + "emitIf": "config.qnx", + "condition": "libs.mmrenderer", + "output": [ "feature", "privateFeature" ] + }, + "openal": { + "label": "OpenAL", + "condition": "libs.openal", + "output": [ "feature", "privateFeature" ] + }, + "pulseaudio": { + "label": "PulseAudio", + "autoDetect": "config.unix", + "condition": "libs.pulseaudio", + "output": [ "feature", "privateFeature" ] + }, + "wasapi": { + "label": "Windows Audio Services", + "autoDetect": "false", + "condition": "config.win32 && tests.wasapi", + "output": [ "privateFeature" ] + }, + "wmsdk": { + "label": "wmsdk.h", + "condition": "config.win32 && tests.wmsdk", + "output": [ "feature", "privateFeature" ] + }, + "wshellitem": { + "label": "WShellItem", + "condition": "config.win32 && features.directshow && tests.wshellitem", + "output": [ "feature", "privateFeature" ] + }, + "wmf-backend": { + "label": "Windows Media Foundation", + "emitIf": "config.win32", + "autoDetect": false, + "condition": "libraries.wmf", + "output": [ "privateFeature" ] + } + }, + + "report": [ + ], + + "summary": [ + { + "section": "Qt Multimedia", + "entries": [ + "alsa", + "gstreamer_1_0", + "gstreamer_0_10", + "linux_v4l", + "openal", + "pulseaudio", + "resourcepolicy", + "mmrenderer", + "avfoundation", + "directshow", + "wmf-backend" + ] + } + ] +} diff --git a/src/multimedia/controls/qmediastreamscontrol.h b/src/multimedia/controls/qmediastreamscontrol.h index ea12dd188..3c36e96cb 100644 --- a/src/multimedia/controls/qmediastreamscontrol.h +++ b/src/multimedia/controls/qmediastreamscontrol.h @@ -43,7 +43,7 @@ #include <QtMultimedia/qmediacontrol.h> #include <QtMultimedia/qmultimedia.h> -#include <QtMultimedia/qtmultimediadefs.h> +#include <QtMultimedia/qtmultimediaglobal.h> #include <QtMultimedia/qmediaenumdebug.h> QT_BEGIN_NAMESPACE diff --git a/src/multimedia/controls/qmetadatareadercontrol.h b/src/multimedia/controls/qmetadatareadercontrol.h index 9162d6454..455ce814e 100644 --- a/src/multimedia/controls/qmetadatareadercontrol.h +++ b/src/multimedia/controls/qmetadatareadercontrol.h @@ -45,7 +45,7 @@ #include <QtMultimedia/qmediaresource.h> -#include <QtMultimedia/qtmultimediadefs.h> +#include <QtMultimedia/qtmultimediaglobal.h> #include <QtMultimedia/qmultimedia.h> QT_BEGIN_NAMESPACE diff --git a/src/multimedia/controls/qmetadatawritercontrol.h b/src/multimedia/controls/qmetadatawritercontrol.h index 1c2f4cf69..da3413f77 100644 --- a/src/multimedia/controls/qmetadatawritercontrol.h +++ b/src/multimedia/controls/qmetadatawritercontrol.h @@ -45,7 +45,7 @@ #include <QtMultimedia/qmediaresource.h> -#include <QtMultimedia/qtmultimediadefs.h> +#include <QtMultimedia/qtmultimediaglobal.h> #include <QtMultimedia/qmultimedia.h> QT_BEGIN_NAMESPACE diff --git a/src/multimedia/controls/qradiodatacontrol.cpp b/src/multimedia/controls/qradiodatacontrol.cpp index 59c7c8cb1..eaa9aaed6 100644 --- a/src/multimedia/controls/qradiodatacontrol.cpp +++ b/src/multimedia/controls/qradiodatacontrol.cpp @@ -37,7 +37,7 @@ ** ****************************************************************************/ -#include <qtmultimediadefs.h> +#include <qtmultimediaglobal.h> #include "qradiodatacontrol.h" #include "qmediacontrol_p.h" diff --git a/src/multimedia/controls/qradiotunercontrol.cpp b/src/multimedia/controls/qradiotunercontrol.cpp index 5e5c1d5a7..8b9e865e1 100644 --- a/src/multimedia/controls/qradiotunercontrol.cpp +++ b/src/multimedia/controls/qradiotunercontrol.cpp @@ -37,7 +37,7 @@ ** ****************************************************************************/ -#include <qtmultimediadefs.h> +#include <qtmultimediaglobal.h> #include "qradiotunercontrol.h" #include "qmediacontrol_p.h" diff --git a/src/multimedia/doc/src/blackberry.qdoc b/src/multimedia/doc/src/blackberry.qdoc deleted file mode 100644 index 28c176deb..000000000 --- a/src/multimedia/doc/src/blackberry.qdoc +++ /dev/null @@ -1,86 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Research In Motion -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Free Documentation License Usage -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. Please review the following information to ensure -** the GNU Free Documentation License version 1.3 requirements -** will be met: http://www.gnu.org/copyleft/fdl.html. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page blackberry.html -\title Qt Multimedia on BlackBerry -\brief Platform notes for the BlackBerry Platform - -Qt Multimedia supports BlackBerry devices that run the BB10 operating system. -This page covers the availability of different features on BB10. - -\section1 Implementation - -BB10 ships with a few different multimedia libraries. The main library for audio -and video playback is \e mmrenderer. For low-latency output of raw audio samples, -\e libasound, a variant of the Linux ALSA library, is available. Finally, for -three-dimensional positional audio playback, \e OpenAL is supported and present -on BB10. - -The Qt Multimedia BlackBerry backend uses mmrenderer for media playback. - -For the positional audio classes in the \l{Qt Audio Engine QML Types}{Qt Audio Engine} -QML module, OpenAL is used as on all other platforms. - -For recording videos and taking photos, the camapi library is used. - -\section1 Supported Features - -Playback of audio and video with QMediaPlayer and related classes is supported. -This includes the corresponding QML elements like MediaPlayer and VideoOutput. -Since the playback is delegated to mmrenderer, the supported formats are the same as in -mmrenderer. As mmrenderer supports streaming from HTTP and other URLs, this is -supported in QMediaPlayer as well. Playlists as sources are also supported. - -mmrenderer does not allow access to the pixel data of video frames, hence Qt Multimedia -classes like QVideoFrame and QAbstractVideoSurface will not work since they require access -to the image data. QVideoWidget and the VideoOutput QML element are implemented with an overlay window; -mmrenderer creates a separate window displaying a video and puts that on top of the Qt application. -As a consequence, no other widget or QML element can be put on top of the video, and QML shaders have -no effect. - -The \l{Qt Audio Engine QML Types}{Qt Audio Engine} QML module is fully supported, as it is based on OpenAL which is available -in BB10. - -The \l {camera} {QCamera} support includes recording of videos and taking photos. The viewfinder -is available through QCameraViewfinder and the VideoOutput QML element. - -Note: To use the camera on BB10, your application needs the 'access_shared', 'use_camera' and 'record_audio' -permissions set in the bar-descriptor.xml file. - -\section1 Unsupported Features - -Low-latency output and input of raw audio samples with QAudioOutput, QAudioInput and related classes is -not yet supported. The SoundEffect QML element and QSoundEffect are based on these classes. In your -QML file, use the MediaPlayer element instead of the SoundEffect element, as the APIs are nearly identical. - -QMediaPlayer does not support QIODevice-based streaming sources. However, streaming by specifying, for example, -an HTTP URL as the source does work. In addition, QMediaPlayer does not yet provide metadata like -the artist and album of the current track. - -Radio and audio recording are not yet supported. -*/ diff --git a/src/multimedia/doc/src/qtmultimedia-index.qdoc b/src/multimedia/doc/src/qtmultimedia-index.qdoc index 484338dc8..553732fd1 100644 --- a/src/multimedia/doc/src/qtmultimedia-index.qdoc +++ b/src/multimedia/doc/src/qtmultimedia-index.qdoc @@ -157,7 +157,6 @@ following topics provide more platform-specific information. \list - \li \l{Qt Multimedia on BlackBerry}{BlackBerry} \li \l{Qt Multimedia on Windows}{Windows} \endlist diff --git a/src/multimedia/gsttools_headers/qgstreamergltexturerenderer_p.h b/src/multimedia/gsttools_headers/qgstreamergltexturerenderer_p.h deleted file mode 100644 index 8abdd1e02..000000000 --- a/src/multimedia/gsttools_headers/qgstreamergltexturerenderer_p.h +++ /dev/null @@ -1,141 +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 QGSTREAMERGLTEXTURERENDERER_H -#define QGSTREAMERGLTEXTURERENDERER_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 <qvideorenderercontrol.h> -#include <private/qvideosurfacegstsink_p.h> -#include <private/qgstreamerbushelper_p.h> - -#include "qgstreamervideorendererinterface_p.h" -#include <QtGui/qcolor.h> - -#include <X11/extensions/Xv.h> - -QT_BEGIN_NAMESPACE - -class QGLContext; - -class QGstreamerGLTextureRenderer : public QVideoRendererControl, - public QGstreamerVideoRendererInterface, - public QGstreamerSyncMessageFilter, - public QGstreamerBusMessageFilter -{ - Q_OBJECT - Q_INTERFACES(QGstreamerVideoRendererInterface QGstreamerSyncMessageFilter QGstreamerBusMessageFilter) - - Q_PROPERTY(bool overlayEnabled READ overlayEnabled WRITE setOverlayEnabled) - Q_PROPERTY(qulonglong winId READ winId WRITE setWinId) - Q_PROPERTY(QRect overlayGeometry READ overlayGeometry WRITE setOverlayGeometry) - Q_PROPERTY(QColor colorKey READ colorKey) - Q_PROPERTY(QSize nativeSize READ nativeSize NOTIFY nativeSizeChanged) - -public: - QGstreamerGLTextureRenderer(QObject *parent = 0); - virtual ~QGstreamerGLTextureRenderer(); - - QAbstractVideoSurface *surface() const; - void setSurface(QAbstractVideoSurface *surface); - - GstElement *videoSink(); - - bool isReady() const; - bool processBusMessage(const QGstreamerMessage &message); - bool processSyncMessage(const QGstreamerMessage &message); - void stopRenderer(); - - int framebufferNumber() const; - - bool overlayEnabled() const; - WId winId() const; - QRect overlayGeometry() const; - QColor colorKey() const; - QSize nativeSize() const; - -public slots: - void renderGLFrame(int); - - void setOverlayEnabled(bool); - void setWinId(WId id); - void setOverlayGeometry(const QRect &geometry); - void repaintOverlay(); - -signals: - void sinkChanged(); - void readyChanged(bool); - void nativeSizeChanged(); - -private slots: - void handleFormatChange(); - void updateNativeVideoSize(); - -private: - static void handleFrameReady(GstElement *sink, gint frame, gpointer data); - static gboolean padBufferProbe(GstPad *pad, GstBuffer *buffer, gpointer user_data); - - GstElement *m_videoSink; - QAbstractVideoSurface *m_surface; - QGLContext *m_context; - QSize m_nativeSize; - - WId m_winId; - QColor m_colorKey; - QRect m_displayRect; - bool m_overlayEnabled; - int m_bufferProbeId; - - QMutex m_mutex; - QWaitCondition m_renderCondition; -}; - -QT_END_NAMESPACE - -#endif // QGSTREAMERVIDEORENDRER_H diff --git a/src/multimedia/multimedia.pro b/src/multimedia/multimedia.pro index 761e488ba..0f3f3ff6b 100644 --- a/src/multimedia/multimedia.pro +++ b/src/multimedia/multimedia.pro @@ -15,6 +15,7 @@ QMAKE_DOCS = $$PWD/doc/qtmultimedia.qdocconf INCLUDEPATH *= . PRIVATE_HEADERS += \ + qtmultimediaglobal_p.h \ qmediacontrol_p.h \ qmediaobject_p.h \ qmediapluginloader_p.h \ @@ -28,6 +29,7 @@ PRIVATE_HEADERS += \ qmultimediautils_p.h PUBLIC_HEADERS += \ + qtmultimediaglobal.h \ qmediabindableinterface.h \ qmediacontrol.h \ qmediaenumdebug.h \ @@ -36,8 +38,7 @@ PUBLIC_HEADERS += \ qmediaservice.h \ qmediaserviceproviderplugin.h \ qmediatimerange.h \ - qmultimedia.h \ - qtmultimediadefs.h \ + qmultimedia.h SOURCES += \ qmediabindableinterface.cpp \ diff --git a/src/multimedia/playback/playlistfileparser_p.h b/src/multimedia/playback/playlistfileparser_p.h index 353da3eca..bdf95fe7a 100644 --- a/src/multimedia/playback/playlistfileparser_p.h +++ b/src/multimedia/playback/playlistfileparser_p.h @@ -51,7 +51,7 @@ // We mean it. // -#include "qtmultimediadefs.h" +#include "qtmultimediaglobal.h" #include <QtNetwork/QNetworkRequest> QT_BEGIN_NAMESPACE diff --git a/src/multimedia/playback/qmediacontent.h b/src/multimedia/playback/qmediacontent.h index 25db6ecf5..f7c086752 100644 --- a/src/multimedia/playback/qmediacontent.h +++ b/src/multimedia/playback/qmediacontent.h @@ -45,7 +45,7 @@ #include <QtMultimedia/qmediaresource.h> -#include <QtMultimedia/qtmultimediadefs.h> +#include <QtMultimedia/qtmultimediaglobal.h> QT_BEGIN_NAMESPACE diff --git a/src/multimedia/playback/qmediaplayer.cpp b/src/multimedia/playback/qmediaplayer.cpp index 191095e82..c9b9b4fc1 100644 --- a/src/multimedia/playback/qmediaplayer.cpp +++ b/src/multimedia/playback/qmediaplayer.cpp @@ -100,7 +100,6 @@ static void qRegisterMediaPlayerMetaTypes() Q_CONSTRUCTOR_FUNCTION(qRegisterMediaPlayerMetaTypes) - #define MAX_NESTED_PLAYLISTS 16 class QMediaPlayerPrivate : public QMediaObjectPrivate @@ -112,38 +111,39 @@ public: : provider(0) , control(0) , audioRoleControl(0) + , playlist(0) + , networkAccessControl(0) , state(QMediaPlayer::StoppedState) , status(QMediaPlayer::UnknownMediaStatus) , error(QMediaPlayer::NoError) , ignoreNextStatusChange(-1) - , playlist(0) - , networkAccessControl(0) - , hasStreamPlaybackFeature(false) , nestedPlaylists(0) + , hasStreamPlaybackFeature(false) {} QMediaServiceProvider *provider; QMediaPlayerControl* control; QAudioRoleControl *audioRoleControl; - QMediaPlayer::State state; - QMediaPlayer::MediaStatus status; - QMediaPlayer::Error error; QString errorString; - int ignoreNextStatusChange; QPointer<QObject> videoOutput; QMediaPlaylist *playlist; QMediaNetworkAccessControl *networkAccessControl; QVideoSurfaceOutput surfaceOutput; - bool hasStreamPlaybackFeature; QMediaContent qrcMedia; QScopedPointer<QFile> qrcFile; QMediaContent rootMedia; QMediaContent pendingPlaylist; + QMediaPlayer::State state; + QMediaPlayer::MediaStatus status; + QMediaPlayer::Error error; + int ignoreNextStatusChange; + int nestedPlaylists; + bool hasStreamPlaybackFeature; + QMediaPlaylist *parentPlaylist(QMediaPlaylist *pls); bool isInChain(const QUrl &url); - int nestedPlaylists; void setMedia(const QMediaContent &media, QIODevice *stream = 0); diff --git a/src/multimedia/playback/qmediaplaylistioplugin_p.h b/src/multimedia/playback/qmediaplaylistioplugin_p.h index 62bb6757a..73281b2bf 100644 --- a/src/multimedia/playback/qmediaplaylistioplugin_p.h +++ b/src/multimedia/playback/qmediaplaylistioplugin_p.h @@ -54,7 +54,7 @@ #include <QtCore/qobject.h> #include <QtCore/qplugin.h> -#include <qtmultimediadefs.h> +#include <qtmultimediaglobal.h> #include "qmediacontent.h" diff --git a/src/multimedia/playback/qmediaresource.h b/src/multimedia/playback/qmediaresource.h index 83f998eb9..9740166c6 100644 --- a/src/multimedia/playback/qmediaresource.h +++ b/src/multimedia/playback/qmediaresource.h @@ -44,7 +44,7 @@ #include <QtCore/qmetatype.h> #include <QtNetwork/qnetworkrequest.h> -#include <QtMultimedia/qtmultimediadefs.h> +#include <QtMultimedia/qtmultimediaglobal.h> QT_BEGIN_NAMESPACE diff --git a/src/multimedia/qmediacontrol.h b/src/multimedia/qmediacontrol.h index 3c95444d0..680b18e7f 100644 --- a/src/multimedia/qmediacontrol.h +++ b/src/multimedia/qmediacontrol.h @@ -40,7 +40,7 @@ #ifndef QABSTRACTMEDIACONTROL_H #define QABSTRACTMEDIACONTROL_H -#include <QtMultimedia/qtmultimediadefs.h> +#include <QtMultimedia/qtmultimediaglobal.h> #include <QtCore/qobject.h> #include <QtCore/qstring.h> diff --git a/src/multimedia/qmediacontrol_p.h b/src/multimedia/qmediacontrol_p.h index 948f9fdd5..e9827fd1e 100644 --- a/src/multimedia/qmediacontrol_p.h +++ b/src/multimedia/qmediacontrol_p.h @@ -51,7 +51,7 @@ // We mean it. // -#include <qtmultimediadefs.h> +#include <qtmultimediaglobal.h> QT_BEGIN_NAMESPACE diff --git a/src/multimedia/qmediametadata.cpp b/src/multimedia/qmediametadata.cpp index 9ffd2a727..42fabbe7e 100644 --- a/src/multimedia/qmediametadata.cpp +++ b/src/multimedia/qmediametadata.cpp @@ -164,7 +164,7 @@ Q_DEFINE_METADATA(ThumbnailImage); \ingroup multimedia \inmodule QtMultimedia - This namespace provides identifiers for meta-data attributes. + \brief 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. diff --git a/src/multimedia/qmediametadata.h b/src/multimedia/qmediametadata.h index 2fb49c88e..8d8744490 100644 --- a/src/multimedia/qmediametadata.h +++ b/src/multimedia/qmediametadata.h @@ -44,7 +44,7 @@ #include <QtCore/qmetatype.h> #include <QtCore/qstring.h> -#include <QtMultimedia/qtmultimediadefs.h> +#include <QtMultimedia/qtmultimediaglobal.h> QT_BEGIN_NAMESPACE diff --git a/src/multimedia/qmediaobject.h b/src/multimedia/qmediaobject.h index efd89f840..5788254b8 100644 --- a/src/multimedia/qmediaobject.h +++ b/src/multimedia/qmediaobject.h @@ -43,7 +43,7 @@ #include <QtCore/qobject.h> #include <QtCore/qstringlist.h> -#include <QtMultimedia/qtmultimediadefs.h> +#include <QtMultimedia/qtmultimediaglobal.h> #include <QtMultimedia/qmultimedia.h> QT_BEGIN_NAMESPACE diff --git a/src/multimedia/qmediapluginloader_p.h b/src/multimedia/qmediapluginloader_p.h index 9798f2ae8..a4e726544 100644 --- a/src/multimedia/qmediapluginloader_p.h +++ b/src/multimedia/qmediapluginloader_p.h @@ -51,7 +51,7 @@ // We mean it. // -#include <qtmultimediadefs.h> +#include <qtmultimediaglobal.h> #include <QtCore/qobject.h> #include <QtCore/qstring.h> #include <QtCore/qstringlist.h> diff --git a/src/multimedia/qmediaresourcepolicy_p.h b/src/multimedia/qmediaresourcepolicy_p.h index bfc89df84..13e3f4913 100644 --- a/src/multimedia/qmediaresourcepolicy_p.h +++ b/src/multimedia/qmediaresourcepolicy_p.h @@ -52,7 +52,7 @@ // #include <QObject> -#include "qtmultimediadefs.h" +#include "qtmultimediaglobal.h" QT_BEGIN_NAMESPACE diff --git a/src/multimedia/qmediaresourcepolicyplugin_p.h b/src/multimedia/qmediaresourcepolicyplugin_p.h index 66cef02d6..7b53c3b3a 100644 --- a/src/multimedia/qmediaresourcepolicyplugin_p.h +++ b/src/multimedia/qmediaresourcepolicyplugin_p.h @@ -52,7 +52,7 @@ // #include <QObject> -#include <qtmultimediadefs.h> +#include <qtmultimediaglobal.h> QT_BEGIN_NAMESPACE diff --git a/src/multimedia/qmediaresourceset_p.h b/src/multimedia/qmediaresourceset_p.h index 1df6e19e5..a0158877f 100644 --- a/src/multimedia/qmediaresourceset_p.h +++ b/src/multimedia/qmediaresourceset_p.h @@ -51,7 +51,7 @@ // We mean it. // #include <QObject> -#include <qtmultimediadefs.h> +#include <qtmultimediaglobal.h> QT_BEGIN_NAMESPACE diff --git a/src/multimedia/qmediaservice.h b/src/multimedia/qmediaservice.h index 64fe63b84..9e653b2d8 100644 --- a/src/multimedia/qmediaservice.h +++ b/src/multimedia/qmediaservice.h @@ -40,7 +40,7 @@ #ifndef QABSTRACTMEDIASERVICE_H #define QABSTRACTMEDIASERVICE_H -#include <QtMultimedia/qtmultimediadefs.h> +#include <QtMultimedia/qtmultimediaglobal.h> #include <QtCore/qobject.h> #include <QtCore/qstringlist.h> diff --git a/src/multimedia/qmediaserviceprovider_p.h b/src/multimedia/qmediaserviceprovider_p.h index 63e1bdd18..4ca9c9e8f 100644 --- a/src/multimedia/qmediaserviceprovider_p.h +++ b/src/multimedia/qmediaserviceprovider_p.h @@ -53,7 +53,7 @@ #include <QtCore/qobject.h> #include <QtCore/qshareddata.h> -#include <qtmultimediadefs.h> +#include <qtmultimediaglobal.h> #include "qmultimedia.h" #include "qmediaserviceproviderplugin.h" diff --git a/src/multimedia/qmediaserviceproviderplugin.h b/src/multimedia/qmediaserviceproviderplugin.h index 6cdc18d61..43fe55d43 100644 --- a/src/multimedia/qmediaserviceproviderplugin.h +++ b/src/multimedia/qmediaserviceproviderplugin.h @@ -43,7 +43,7 @@ #include <QtCore/qstringlist.h> #include <QtCore/qplugin.h> #include <QtMultimedia/qmultimedia.h> -#include <QtMultimedia/qtmultimediadefs.h> +#include <QtMultimedia/qtmultimediaglobal.h> #include <QtMultimedia/qcamera.h> #ifdef Q_MOC_RUN diff --git a/src/multimedia/qmediastoragelocation_p.h b/src/multimedia/qmediastoragelocation_p.h index 29e6a5775..13399b54d 100644 --- a/src/multimedia/qmediastoragelocation_p.h +++ b/src/multimedia/qmediastoragelocation_p.h @@ -51,7 +51,7 @@ // We mean it. // -#include <qtmultimediadefs.h> +#include <qtmultimediaglobal.h> #include <QDir> #include <QMap> #include <QHash> diff --git a/src/multimedia/qmediatimerange.h b/src/multimedia/qmediatimerange.h index a9eab2498..0b4fe8e67 100644 --- a/src/multimedia/qmediatimerange.h +++ b/src/multimedia/qmediatimerange.h @@ -40,7 +40,7 @@ #ifndef QMEDIATIMERANGE_H #define QMEDIATIMERANGE_H -#include <QtMultimedia/qtmultimediadefs.h> +#include <QtMultimedia/qtmultimediaglobal.h> #include <QtMultimedia/qmultimedia.h> #include <QtCore/qshareddata.h> diff --git a/src/multimedia/qmultimedia.h b/src/multimedia/qmultimedia.h index b517b5a32..a3dbc5e3e 100644 --- a/src/multimedia/qmultimedia.h +++ b/src/multimedia/qmultimedia.h @@ -44,7 +44,7 @@ #include <QtCore/qmetatype.h> #include <QtCore/qstring.h> -#include <QtMultimedia/qtmultimediadefs.h> +#include <QtMultimedia/qtmultimediaglobal.h> QT_BEGIN_NAMESPACE diff --git a/src/multimedia/qtmultimediaglobal.h b/src/multimedia/qtmultimediaglobal.h new file mode 100644 index 000000000..ae11ed271 --- /dev/null +++ b/src/multimedia/qtmultimediaglobal.h @@ -0,0 +1,59 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtQml module 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 QTMULTIMEDIAGLOBAL_H +#define QTMULTIMEDIAGLOBAL_H + +#include <QtGui/qtguiglobal.h> +#include <QtMultimedia/qtmultimedia-config.h> + +QT_BEGIN_NAMESPACE + +#ifndef QT_STATIC +# if defined(QT_BUILD_MULTIMEDIA_LIB) +# define Q_MULTIMEDIA_EXPORT Q_DECL_EXPORT +# else +# define Q_MULTIMEDIA_EXPORT Q_DECL_IMPORT +# endif +#else +# define Q_MULTIMEDIA_EXPORT +#endif + +QT_END_NAMESPACE +#endif // QTQMLGLOBAL_H diff --git a/src/multimedia/qtmultimediaglobal_p.h b/src/multimedia/qtmultimediaglobal_p.h new file mode 100644 index 000000000..797142029 --- /dev/null +++ b/src/multimedia/qtmultimediaglobal_p.h @@ -0,0 +1,58 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtQml module 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 QTMULTIMEDIAGLOBAL_P_H +#define QTMULTIMEDIAGLOBAL_P_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 <QtGui/private/qtguiglobal_p.h> +#include <QtMultimedia/private/qtmultimedia-config_p.h> +#include <QtMultimedia/qtmultimediaglobal.h> + +#endif // QTQMLGLOBAL_P_H diff --git a/src/multimedia/recording/qmediaencodersettings.h b/src/multimedia/recording/qmediaencodersettings.h index d6f92ca5c..0d6a9eddf 100644 --- a/src/multimedia/recording/qmediaencodersettings.h +++ b/src/multimedia/recording/qmediaencodersettings.h @@ -44,7 +44,7 @@ #include <QtCore/qstring.h> #include <QtCore/qsize.h> #include <QtCore/qvariant.h> -#include <QtMultimedia/qtmultimediadefs.h> +#include <QtMultimedia/qtmultimediaglobal.h> #include <QtMultimedia/qmultimedia.h> QT_BEGIN_NAMESPACE diff --git a/src/multimedia/video/qabstractvideobuffer.h b/src/multimedia/video/qabstractvideobuffer.h index 7b246a712..dcefdf7bc 100644 --- a/src/multimedia/video/qabstractvideobuffer.h +++ b/src/multimedia/video/qabstractvideobuffer.h @@ -40,7 +40,7 @@ #ifndef QABSTRACTVIDEOBUFFER_H #define QABSTRACTVIDEOBUFFER_H -#include <QtMultimedia/qtmultimediadefs.h> +#include <QtMultimedia/qtmultimediaglobal.h> #include <QtMultimedia/qmultimedia.h> diff --git a/src/multimedia/video/qabstractvideobuffer_p.h b/src/multimedia/video/qabstractvideobuffer_p.h index cae018d3c..6fbd75a30 100644 --- a/src/multimedia/video/qabstractvideobuffer_p.h +++ b/src/multimedia/video/qabstractvideobuffer_p.h @@ -54,7 +54,7 @@ #include <QtCore/qshareddata.h> #include "qabstractvideobuffer.h" -#include <qtmultimediadefs.h> +#include <qtmultimediaglobal.h> #include <qmultimedia.h> diff --git a/src/multimedia/video/qvideooutputorientationhandler_p.h b/src/multimedia/video/qvideooutputorientationhandler_p.h index cf3ddbdb2..b5cfc089b 100644 --- a/src/multimedia/video/qvideooutputorientationhandler_p.h +++ b/src/multimedia/video/qvideooutputorientationhandler_p.h @@ -51,7 +51,7 @@ // We mean it. // -#include <qtmultimediadefs.h> +#include <qtmultimediaglobal.h> #include <QObject> |