Update to 5.4.2

This commit is contained in:
Jan Grulich 2015-06-03 14:54:38 +02:00
parent 9cc62c66af
commit c4411d1325
3 changed files with 481 additions and 511 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
/qtmultimedia-opensource-src-5.3.2.tar.xz /qtmultimedia-opensource-src-5.3.2.tar.xz
/qtmultimedia-opensource-src-5.4.0.tar.xz /qtmultimedia-opensource-src-5.4.0.tar.xz
/qtmultimedia-opensource-src-5.4.1.tar.xz /qtmultimedia-opensource-src-5.4.1.tar.xz
/qtmultimedia-opensource-src-5.4.2.tar.xz

View File

@ -100,18 +100,19 @@ index 751b38d..251df34 100644
} }
diff --git a/qtmultimedia.pro b/qtmultimedia.pro diff --git a/qtmultimedia.pro b/qtmultimedia.pro
index 3cec526..84f2548 100644 index cf97e64..48a71ce 100644
--- a/qtmultimedia.pro --- a/qtmultimedia.pro
+++ b/qtmultimedia.pro +++ b/qtmultimedia.pro
@@ -17,11 +17,27 @@ win32 { @@ -17,12 +17,27 @@ win32 {
} else { } else {
qtCompileTest(alsa) contains(QT_CONFIG, alsa):qtCompileTest(alsa)
qtCompileTest(pulseaudio) contains(QT_CONFIG, pulseaudio):qtCompileTest(pulseaudio)
- qtCompileTest(gstreamer) { - qtCompileTest(gstreamer) {
- qtCompileTest(gstreamer_photography) - qtCompileTest(gstreamer_photography)
- qtCompileTest(gstreamer_encodingprofiles) - qtCompileTest(gstreamer_encodingprofiles)
- qtCompileTest(gstreamer_appsrc) - qtCompileTest(gstreamer_appsrc)
- qtCompileTest(linux_v4l) - qtCompileTest(linux_v4l)
- }
+ !done_config_gstreamer { + !done_config_gstreamer {
+ gstver=0.10 + gstver=0.10
+ !isEmpty(GST_VERSION): gstver=$$GST_VERSION + !isEmpty(GST_VERSION): gstver=$$GST_VERSION
@ -133,9 +134,9 @@ index 3cec526..84f2548 100644
+ qtCompileTest(linux_v4l) + qtCompileTest(linux_v4l)
+ } + }
+ } + }
}
qtCompileTest(resourcepolicy) qtCompileTest(resourcepolicy)
qtCompileTest(gpu_vivante) qtCompileTest(gpu_vivante)
}
diff --git a/src/gsttools/gsttools.pro b/src/gsttools/gsttools.pro diff --git a/src/gsttools/gsttools.pro b/src/gsttools/gsttools.pro
index 7c809a7..7c41f1a 100644 index 7c809a7..7c41f1a 100644
--- a/src/gsttools/gsttools.pro --- a/src/gsttools/gsttools.pro
@ -1123,7 +1124,7 @@ index 2b66f76..804dce9 100644
#include <gst/gst.h> #include <gst/gst.h>
diff --git a/src/gsttools/qgstreamervideowidget.cpp b/src/gsttools/qgstreamervideowidget.cpp diff --git a/src/gsttools/qgstreamervideowidget.cpp b/src/gsttools/qgstreamervideowidget.cpp
index aa2e2a3..1ae57a0 100644 index b26369a..72a5a12 100644
--- a/src/gsttools/qgstreamervideowidget.cpp --- a/src/gsttools/qgstreamervideowidget.cpp
+++ b/src/gsttools/qgstreamervideowidget.cpp +++ b/src/gsttools/qgstreamervideowidget.cpp
@@ -40,8 +40,13 @@ @@ -40,8 +40,13 @@
@ -1140,16 +1141,7 @@ index aa2e2a3..1ae57a0 100644
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
@@ -130,8 +135,6 @@ void QGstreamerVideoWidgetControl::createVideoWidget() @@ -161,9 +166,13 @@ bool QGstreamerVideoWidgetControl::processSyncMessage(const QGstreamerMessage &m
m_videoSink = gst_element_factory_make ("ximagesink", NULL);
qt_gst_object_ref_sink(GST_OBJECT (m_videoSink)); //Take ownership
-
-
}
GstElement *QGstreamerVideoWidgetControl::videoSink()
@@ -169,9 +172,13 @@ bool QGstreamerVideoWidgetControl::processSyncMessage(const QGstreamerMessage &m
{ {
GstMessage* gm = message.rawMessage(); GstMessage* gm = message.rawMessage();
@ -1164,7 +1156,7 @@ index aa2e2a3..1ae57a0 100644
setOverlay(); setOverlay();
QMetaObject::invokeMethod(this, "updateNativeVideoSize", Qt::QueuedConnection); QMetaObject::invokeMethod(this, "updateNativeVideoSize", Qt::QueuedConnection);
return true; return true;
@@ -199,17 +206,24 @@ bool QGstreamerVideoWidgetControl::processBusMessage(const QGstreamerMessage &me @@ -191,17 +200,24 @@ bool QGstreamerVideoWidgetControl::processBusMessage(const QGstreamerMessage &me
void QGstreamerVideoWidgetControl::setOverlay() void QGstreamerVideoWidgetControl::setOverlay()
{ {
@ -1191,7 +1183,7 @@ index aa2e2a3..1ae57a0 100644
gst_object_unref(GST_OBJECT(pad)); gst_object_unref(GST_OBJECT(pad));
if (caps) { if (caps) {
@@ -225,8 +239,13 @@ void QGstreamerVideoWidgetControl::updateNativeVideoSize() @@ -217,8 +233,13 @@ void QGstreamerVideoWidgetControl::updateNativeVideoSize()
void QGstreamerVideoWidgetControl::windowExposed() void QGstreamerVideoWidgetControl::windowExposed()
{ {
@ -1413,25 +1405,10 @@ index a373dcc..8011349 100644
GstElement *QGstreamerVideoWindow::videoSink() GstElement *QGstreamerVideoWindow::videoSink()
diff --git a/src/gsttools/qgstutils.cpp b/src/gsttools/qgstutils.cpp diff --git a/src/gsttools/qgstutils.cpp b/src/gsttools/qgstutils.cpp
index 1281d3f..86d9404 100644 index 465f439..b1161f7 100644
--- a/src/gsttools/qgstutils.cpp --- a/src/gsttools/qgstutils.cpp
+++ b/src/gsttools/qgstutils.cpp +++ b/src/gsttools/qgstutils.cpp
@@ -40,7 +40,14 @@ @@ -83,15 +83,24 @@ static void addTagToMap(const GstTagList *list,
#include <QtCore/qsize.h>
#include <QtCore/qset.h>
#include <QtCore/qstringlist.h>
+#include <QtGui/qimage.h>
#include <qaudioformat.h>
+#include <QtMultimedia/qvideosurfaceformat.h>
+
+#include <gst/audio/audio.h>
+#include <gst/video/video.h>
+
+template<typename T, int N> static int lengthOf(const T (&)[N]) { return N; }
#ifdef USE_V4L
# include <private/qcore_unix_p.h>
@@ -82,15 +89,24 @@ static void addTagToMap(const GstTagList *list,
map->insert(QByteArray(tag), g_value_get_boolean(&val)); map->insert(QByteArray(tag), g_value_get_boolean(&val));
break; break;
case G_TYPE_CHAR: case G_TYPE_CHAR:
@ -1456,7 +1433,7 @@ index 1281d3f..86d9404 100644
if (g_date_valid(date)) { if (g_date_valid(date)) {
int year = g_date_get_year(date); int year = g_date_get_year(date);
int month = g_date_get_month(date); int month = g_date_get_month(date);
@@ -169,6 +185,42 @@ QSize QGstUtils::capsCorrectedResolution(const GstCaps *caps) @@ -170,6 +179,42 @@ QSize QGstUtils::capsCorrectedResolution(const GstCaps *caps)
return size; return size;
} }
@ -1499,7 +1476,7 @@ index 1281d3f..86d9404 100644
/*! /*!
Returns audio format for caps. Returns audio format for caps.
If caps doesn't have a valid audio format, an empty QAudioFormat is returned. If caps doesn't have a valid audio format, an empty QAudioFormat is returned.
@@ -176,9 +228,26 @@ QSize QGstUtils::capsCorrectedResolution(const GstCaps *caps) @@ -177,9 +222,26 @@ QSize QGstUtils::capsCorrectedResolution(const GstCaps *caps)
QAudioFormat QGstUtils::audioFormatForCaps(const GstCaps *caps) QAudioFormat QGstUtils::audioFormatForCaps(const GstCaps *caps)
{ {
@ -1528,7 +1505,7 @@ index 1281d3f..86d9404 100644
if (qstrcmp(gst_structure_get_name(structure), "audio/x-raw-int") == 0) { if (qstrcmp(gst_structure_get_name(structure), "audio/x-raw-int") == 0) {
@@ -249,16 +318,28 @@ QAudioFormat QGstUtils::audioFormatForCaps(const GstCaps *caps) @@ -250,16 +312,28 @@ QAudioFormat QGstUtils::audioFormatForCaps(const GstCaps *caps)
} else { } else {
return QAudioFormat(); return QAudioFormat();
} }
@ -1559,7 +1536,7 @@ index 1281d3f..86d9404 100644
QAudioFormat QGstUtils::audioFormatForBuffer(GstBuffer *buffer) QAudioFormat QGstUtils::audioFormatForBuffer(GstBuffer *buffer)
{ {
GstCaps* caps = gst_buffer_get_caps(buffer); GstCaps* caps = gst_buffer_get_caps(buffer);
@@ -269,7 +350,7 @@ QAudioFormat QGstUtils::audioFormatForBuffer(GstBuffer *buffer) @@ -270,7 +344,7 @@ QAudioFormat QGstUtils::audioFormatForBuffer(GstBuffer *buffer)
gst_caps_unref(caps); gst_caps_unref(caps);
return format; return format;
} }
@ -1568,7 +1545,7 @@ index 1281d3f..86d9404 100644
/*! /*!
Builds GstCaps for an audio format. Builds GstCaps for an audio format.
@@ -277,8 +358,32 @@ QAudioFormat QGstUtils::audioFormatForBuffer(GstBuffer *buffer) @@ -278,8 +352,32 @@ QAudioFormat QGstUtils::audioFormatForBuffer(GstBuffer *buffer)
Caller must unref GstCaps. Caller must unref GstCaps.
*/ */
@ -1602,7 +1579,7 @@ index 1281d3f..86d9404 100644
GstStructure *structure = 0; GstStructure *structure = 0;
if (format.isValid()) { if (format.isValid()) {
@@ -313,6 +418,7 @@ GstCaps *QGstUtils::capsForAudioFormat(QAudioFormat format) @@ -314,6 +412,7 @@ GstCaps *QGstUtils::capsForAudioFormat(QAudioFormat format)
} }
return caps; return caps;
@ -1610,7 +1587,7 @@ index 1281d3f..86d9404 100644
} }
void QGstUtils::initializeGst() void QGstUtils::initializeGst()
@@ -578,10 +684,629 @@ QByteArray QGstUtils::cameraDriver(const QString &device, GstElementFactory *fac @@ -585,10 +684,629 @@ QByteArray QGstUtils::cameraDriver(const QString &device, GstElementFactory *fac
return QByteArray(); return QByteArray();
} }
@ -2241,7 +2218,7 @@ index 1281d3f..86d9404 100644
gst_object_ref_sink(object); gst_object_ref_sink(object);
#else #else
g_return_if_fail (GST_IS_OBJECT(object)); g_return_if_fail (GST_IS_OBJECT(object));
@@ -597,4 +1322,50 @@ void qt_gst_object_ref_sink(gpointer object) @@ -604,4 +1322,50 @@ void qt_gst_object_ref_sink(gpointer object)
#endif #endif
} }
@ -5106,7 +5083,7 @@ index 3a04c2f..801c7ab 100644
QAudioEncoderSettings audioSettings = audioEncoderControl->audioSettings(); QAudioEncoderSettings audioSettings = audioEncoderControl->audioSettings();
diff --git a/src/plugins/gstreamer/camerabin/camerabinservice.cpp b/src/plugins/gstreamer/camerabin/camerabinservice.cpp diff --git a/src/plugins/gstreamer/camerabin/camerabinservice.cpp b/src/plugins/gstreamer/camerabin/camerabinservice.cpp
index 969955f..388f2fd 100644 index e4aa594..e669a57 100644
--- a/src/plugins/gstreamer/camerabin/camerabinservice.cpp --- a/src/plugins/gstreamer/camerabin/camerabinservice.cpp
+++ b/src/plugins/gstreamer/camerabin/camerabinservice.cpp +++ b/src/plugins/gstreamer/camerabin/camerabinservice.cpp
@@ -56,11 +56,11 @@ @@ -56,11 +56,11 @@
@ -5122,15 +5099,7 @@ index 969955f..388f2fd 100644
#if defined(HAVE_WIDGETS) #if defined(HAVE_WIDGETS)
#include <private/qgstreamervideowidget_p.h> #include <private/qgstreamervideowidget_p.h>
#endif #endif
@@ -121,7 +121,6 @@ CameraBinService::CameraBinService(GstElementFactory *sourceFactory, QObject *pa @@ -164,8 +164,6 @@ QMediaControl *CameraBinService::requestControl(const char *name)
#else
m_videoWindow = new QGstreamerVideoWindow(this);
#endif
-
#if defined(HAVE_WIDGETS)
m_videoWidgetControl = new QGstreamerVideoWidgetControl(this);
#endif
@@ -150,8 +149,6 @@ QMediaControl *CameraBinService::requestControl(const char *name)
if (!m_captureSession) if (!m_captureSession)
return 0; return 0;
@ -5139,7 +5108,7 @@ index 969955f..388f2fd 100644
if (!m_videoOutput) { if (!m_videoOutput) {
if (qstrcmp(name, QVideoRendererControl_iid) == 0) { if (qstrcmp(name, QVideoRendererControl_iid) == 0) {
m_videoOutput = m_videoRenderer; m_videoOutput = m_videoRenderer;
@@ -249,7 +246,7 @@ void CameraBinService::releaseControl(QMediaControl *control) @@ -263,7 +261,7 @@ void CameraBinService::releaseControl(QMediaControl *control)
bool CameraBinService::isCameraBinAvailable() bool CameraBinService::isCameraBinAvailable()
{ {
@ -5747,7 +5716,7 @@ index d05df49..8881445 100644
if (m_audioSettings.sampleRate() > 0) if (m_audioSettings.sampleRate() > 0)
gst_structure_set(structure, "rate", G_TYPE_INT, m_audioSettings.sampleRate(), NULL ); gst_structure_set(structure, "rate", G_TYPE_INT, m_audioSettings.sampleRate(), NULL );
diff --git a/src/plugins/gstreamer/mediacapture/qgstreamercaptureservice.cpp b/src/plugins/gstreamer/mediacapture/qgstreamercaptureservice.cpp diff --git a/src/plugins/gstreamer/mediacapture/qgstreamercaptureservice.cpp b/src/plugins/gstreamer/mediacapture/qgstreamercaptureservice.cpp
index 97a165d..1ab98cd 100644 index e77feeb..04e2966 100644
--- a/src/plugins/gstreamer/mediacapture/qgstreamercaptureservice.cpp --- a/src/plugins/gstreamer/mediacapture/qgstreamercaptureservice.cpp
+++ b/src/plugins/gstreamer/mediacapture/qgstreamercaptureservice.cpp +++ b/src/plugins/gstreamer/mediacapture/qgstreamercaptureservice.cpp
@@ -62,27 +62,25 @@ @@ -62,27 +62,25 @@
@ -5793,7 +5762,7 @@ index 97a165d..1ab98cd 100644
if (service == Q_MEDIASERVICE_AUDIOSOURCE) { if (service == Q_MEDIASERVICE_AUDIOSOURCE) {
m_captureSession = new QGstreamerCaptureSession(QGstreamerCaptureSession::Audio, this); m_captureSession = new QGstreamerCaptureSession(QGstreamerCaptureSession::Audio, this);
} }
@@ -163,12 +161,12 @@ QMediaControl *QGstreamerCaptureService::requestControl(const char *name) @@ -178,12 +176,12 @@ QMediaControl *QGstreamerCaptureService::requestControl(const char *name)
return m_imageCaptureControl; return m_imageCaptureControl;
if (qstrcmp(name,QMediaAudioProbeControl_iid) == 0) { if (qstrcmp(name,QMediaAudioProbeControl_iid) == 0) {
@ -5811,7 +5780,7 @@ index 97a165d..1ab98cd 100644
} }
if (!m_videoOutput) { if (!m_videoOutput) {
@@ -194,17 +192,15 @@ QMediaControl *QGstreamerCaptureService::requestControl(const char *name) @@ -209,17 +207,15 @@ QMediaControl *QGstreamerCaptureService::requestControl(const char *name)
void QGstreamerCaptureService::releaseControl(QMediaControl *control) void QGstreamerCaptureService::releaseControl(QMediaControl *control)
{ {
@ -5837,7 +5806,7 @@ index 97a165d..1ab98cd 100644
} }
diff --git a/src/plugins/gstreamer/mediacapture/qgstreamercaptureservice.h b/src/plugins/gstreamer/mediacapture/qgstreamercaptureservice.h diff --git a/src/plugins/gstreamer/mediacapture/qgstreamercaptureservice.h b/src/plugins/gstreamer/mediacapture/qgstreamercaptureservice.h
index 7ff8ce2..e0cf4ee 100644 index e5166d1..d6a5843 100644
--- a/src/plugins/gstreamer/mediacapture/qgstreamercaptureservice.h --- a/src/plugins/gstreamer/mediacapture/qgstreamercaptureservice.h
+++ b/src/plugins/gstreamer/mediacapture/qgstreamercaptureservice.h +++ b/src/plugins/gstreamer/mediacapture/qgstreamercaptureservice.h
@@ -43,6 +43,7 @@ QT_BEGIN_NAMESPACE @@ -43,6 +43,7 @@ QT_BEGIN_NAMESPACE
@ -5848,8 +5817,8 @@ index 7ff8ce2..e0cf4ee 100644
class QGstreamerCaptureSession; class QGstreamerCaptureSession;
class QGstreamerCameraControl; class QGstreamerCameraControl;
class QGstreamerMessage; class QGstreamerMessage;
@@ -86,6 +87,8 @@ private: @@ -87,6 +88,8 @@ private:
QMediaControl *m_videoWidgetControl; QGstreamerVideoWidgetControl *m_videoWidgetControl;
#endif #endif
QGstreamerImageCaptureControl *m_imageCaptureControl; QGstreamerImageCaptureControl *m_imageCaptureControl;
+ +
@ -6547,7 +6516,7 @@ index fed756a..c1fb64a 100644
if (!request.url().isEmpty() || userStreamValid) { if (!request.url().isEmpty() || userStreamValid) {
#else #else
diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp
index ce267d7..84805b6 100644 index ddc828e..1fee6bf 100644
--- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp --- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp
+++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp +++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp
@@ -51,7 +51,11 @@ @@ -51,7 +51,11 @@
@ -6581,7 +6550,7 @@ index ce267d7..84805b6 100644
#else #else
m_videoRenderer = new QGstreamerVideoRenderer(this); m_videoRenderer = new QGstreamerVideoRenderer(this);
#endif #endif
@@ -115,23 +123,23 @@ QMediaControl *QGstreamerPlayerService::requestControl(const char *name) @@ -129,23 +137,23 @@ QMediaControl *QGstreamerPlayerService::requestControl(const char *name)
if (qstrcmp(name, QMediaAvailabilityControl_iid) == 0) if (qstrcmp(name, QMediaAvailabilityControl_iid) == 0)
return m_availabilityControl; return m_availabilityControl;
@ -6617,7 +6586,7 @@ index ce267d7..84805b6 100644
} }
if (!m_videoOutput) { if (!m_videoOutput) {
@@ -156,28 +164,21 @@ QMediaControl *QGstreamerPlayerService::requestControl(const char *name) @@ -170,28 +178,21 @@ QMediaControl *QGstreamerPlayerService::requestControl(const char *name)
void QGstreamerPlayerService::releaseControl(QMediaControl *control) void QGstreamerPlayerService::releaseControl(QMediaControl *control)
{ {
@ -6659,11 +6628,11 @@ index ce267d7..84805b6 100644
} }
diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.h b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.h diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.h b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.h
index f3081e9..22be262 100644 index 0c5b406..a5dbe98 100644
--- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.h --- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.h
+++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.h +++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.h
@@ -52,6 +52,8 @@ class QGstreamerStreamsControl; @@ -53,6 +53,8 @@ class QGstreamerVideoRenderer;
class QGstreamerVideoRenderer; class QGstreamerVideoWindow;
class QGstreamerVideoWidgetControl; class QGstreamerVideoWidgetControl;
class QGStreamerAvailabilityControl; class QGStreamerAvailabilityControl;
+class QGstreamerAudioProbeControl; +class QGstreamerAudioProbeControl;
@ -6671,7 +6640,7 @@ index f3081e9..22be262 100644
class QGstreamerPlayerService : public QMediaService class QGstreamerPlayerService : public QMediaService
{ {
@@ -70,6 +72,9 @@ private: @@ -71,6 +73,9 @@ private:
QGstreamerStreamsControl *m_streamsControl; QGstreamerStreamsControl *m_streamsControl;
QGStreamerAvailabilityControl *m_availabilityControl; QGStreamerAvailabilityControl *m_availabilityControl;
@ -6680,7 +6649,7 @@ index f3081e9..22be262 100644
+ +
QMediaControl *m_videoOutput; QMediaControl *m_videoOutput;
QMediaControl *m_videoRenderer; QMediaControl *m_videoRenderer;
QMediaControl *m_videoWindow; QGstreamerVideoWindow *m_videoWindow;
diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerserviceplugin.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerserviceplugin.cpp diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerserviceplugin.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerserviceplugin.cpp
index 7d20b6d..f1fd421 100644 index 7d20b6d..f1fd421 100644
--- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerserviceplugin.cpp --- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerserviceplugin.cpp

View File

@ -1 +1 @@
7412a5c62da71b44b9f29e29fdc6af4d qtmultimedia-opensource-src-5.4.1.tar.xz b94baed3effda9187d71300b3e37d2d5 qtmultimedia-opensource-src-5.4.2.tar.xz