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.4.0.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
index 3cec526..84f2548 100644
index cf97e64..48a71ce 100644
--- a/qtmultimedia.pro
+++ b/qtmultimedia.pro
@@ -17,11 +17,27 @@ win32 {
@@ -17,12 +17,27 @@ win32 {
} else {
qtCompileTest(alsa)
qtCompileTest(pulseaudio)
contains(QT_CONFIG, alsa):qtCompileTest(alsa)
contains(QT_CONFIG, pulseaudio):qtCompileTest(pulseaudio)
- qtCompileTest(gstreamer) {
- qtCompileTest(gstreamer_photography)
- qtCompileTest(gstreamer_encodingprofiles)
- qtCompileTest(gstreamer_appsrc)
- qtCompileTest(linux_v4l)
- }
+ !done_config_gstreamer {
+ gstver=0.10
+ !isEmpty(GST_VERSION): gstver=$$GST_VERSION
@ -133,9 +134,9 @@ index 3cec526..84f2548 100644
+ qtCompileTest(linux_v4l)
+ }
+ }
}
qtCompileTest(resourcepolicy)
qtCompileTest(gpu_vivante)
}
diff --git a/src/gsttools/gsttools.pro b/src/gsttools/gsttools.pro
index 7c809a7..7c41f1a 100644
--- a/src/gsttools/gsttools.pro
@ -1123,7 +1124,7 @@ index 2b66f76..804dce9 100644
#include <gst/gst.h>
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
+++ b/src/gsttools/qgstreamervideowidget.cpp
@@ -40,8 +40,13 @@
@ -1140,16 +1141,7 @@ index aa2e2a3..1ae57a0 100644
QT_BEGIN_NAMESPACE
@@ -130,8 +135,6 @@ void QGstreamerVideoWidgetControl::createVideoWidget()
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
@@ -161,9 +166,13 @@ bool QGstreamerVideoWidgetControl::processSyncMessage(const QGstreamerMessage &m
{
GstMessage* gm = message.rawMessage();
@ -1164,7 +1156,7 @@ index aa2e2a3..1ae57a0 100644
setOverlay();
QMetaObject::invokeMethod(this, "updateNativeVideoSize", Qt::QueuedConnection);
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()
{
@ -1191,7 +1183,7 @@ index aa2e2a3..1ae57a0 100644
gst_object_unref(GST_OBJECT(pad));
if (caps) {
@@ -225,8 +239,13 @@ void QGstreamerVideoWidgetControl::updateNativeVideoSize()
@@ -217,8 +233,13 @@ void QGstreamerVideoWidgetControl::updateNativeVideoSize()
void QGstreamerVideoWidgetControl::windowExposed()
{
@ -1413,25 +1405,10 @@ index a373dcc..8011349 100644
GstElement *QGstreamerVideoWindow::videoSink()
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
+++ b/src/gsttools/qgstutils.cpp
@@ -40,7 +40,14 @@
#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,
@@ -83,15 +83,24 @@ static void addTagToMap(const GstTagList *list,
map->insert(QByteArray(tag), g_value_get_boolean(&val));
break;
case G_TYPE_CHAR:
@ -1456,7 +1433,7 @@ index 1281d3f..86d9404 100644
if (g_date_valid(date)) {
int year = g_date_get_year(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;
}
@ -1499,7 +1476,7 @@ index 1281d3f..86d9404 100644
/*!
Returns audio format for caps.
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)
{
@ -1528,7 +1505,7 @@ index 1281d3f..86d9404 100644
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 {
return QAudioFormat();
}
@ -1559,7 +1536,7 @@ index 1281d3f..86d9404 100644
QAudioFormat QGstUtils::audioFormatForBuffer(GstBuffer *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);
return format;
}
@ -1568,7 +1545,7 @@ index 1281d3f..86d9404 100644
/*!
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.
*/
@ -1602,7 +1579,7 @@ index 1281d3f..86d9404 100644
GstStructure *structure = 0;
if (format.isValid()) {
@@ -313,6 +418,7 @@ GstCaps *QGstUtils::capsForAudioFormat(QAudioFormat format)
@@ -314,6 +412,7 @@ GstCaps *QGstUtils::capsForAudioFormat(QAudioFormat format)
}
return caps;
@ -1610,7 +1587,7 @@ index 1281d3f..86d9404 100644
}
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();
}
@ -2241,7 +2218,7 @@ index 1281d3f..86d9404 100644
gst_object_ref_sink(object);
#else
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
}
@ -5106,7 +5083,7 @@ index 3a04c2f..801c7ab 100644
QAudioEncoderSettings audioSettings = audioEncoderControl->audioSettings();
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
+++ b/src/plugins/gstreamer/camerabin/camerabinservice.cpp
@@ -56,11 +56,11 @@
@ -5122,15 +5099,7 @@ index 969955f..388f2fd 100644
#if defined(HAVE_WIDGETS)
#include <private/qgstreamervideowidget_p.h>
#endif
@@ -121,7 +121,6 @@ CameraBinService::CameraBinService(GstElementFactory *sourceFactory, QObject *pa
#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)
@@ -164,8 +164,6 @@ QMediaControl *CameraBinService::requestControl(const char *name)
if (!m_captureSession)
return 0;
@ -5139,7 +5108,7 @@ index 969955f..388f2fd 100644
if (!m_videoOutput) {
if (qstrcmp(name, QVideoRendererControl_iid) == 0) {
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()
{
@ -5747,7 +5716,7 @@ index d05df49..8881445 100644
if (m_audioSettings.sampleRate() > 0)
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
index 97a165d..1ab98cd 100644
index e77feeb..04e2966 100644
--- a/src/plugins/gstreamer/mediacapture/qgstreamercaptureservice.cpp
+++ b/src/plugins/gstreamer/mediacapture/qgstreamercaptureservice.cpp
@@ -62,27 +62,25 @@
@ -5793,7 +5762,7 @@ index 97a165d..1ab98cd 100644
if (service == Q_MEDIASERVICE_AUDIOSOURCE) {
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;
if (qstrcmp(name,QMediaAudioProbeControl_iid) == 0) {
@ -5811,7 +5780,7 @@ index 97a165d..1ab98cd 100644
}
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)
{
@ -5837,7 +5806,7 @@ index 97a165d..1ab98cd 100644
}
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
+++ b/src/plugins/gstreamer/mediacapture/qgstreamercaptureservice.h
@@ -43,6 +43,7 @@ QT_BEGIN_NAMESPACE
@ -5848,8 +5817,8 @@ index 7ff8ce2..e0cf4ee 100644
class QGstreamerCaptureSession;
class QGstreamerCameraControl;
class QGstreamerMessage;
@@ -86,6 +87,8 @@ private:
QMediaControl *m_videoWidgetControl;
@@ -87,6 +88,8 @@ private:
QGstreamerVideoWidgetControl *m_videoWidgetControl;
#endif
QGstreamerImageCaptureControl *m_imageCaptureControl;
+
@ -6547,7 +6516,7 @@ index fed756a..c1fb64a 100644
if (!request.url().isEmpty() || userStreamValid) {
#else
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
+++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp
@@ -51,7 +51,11 @@
@ -6581,7 +6550,7 @@ index ce267d7..84805b6 100644
#else
m_videoRenderer = new QGstreamerVideoRenderer(this);
#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)
return m_availabilityControl;
@ -6617,7 +6586,7 @@ index ce267d7..84805b6 100644
}
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)
{
@ -6659,11 +6628,11 @@ index ce267d7..84805b6 100644
}
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
+++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.h
@@ -52,6 +52,8 @@ class QGstreamerStreamsControl;
class QGstreamerVideoRenderer;
@@ -53,6 +53,8 @@ class QGstreamerVideoRenderer;
class QGstreamerVideoWindow;
class QGstreamerVideoWidgetControl;
class QGStreamerAvailabilityControl;
+class QGstreamerAudioProbeControl;
@ -6671,7 +6640,7 @@ index f3081e9..22be262 100644
class QGstreamerPlayerService : public QMediaService
{
@@ -70,6 +72,9 @@ private:
@@ -71,6 +73,9 @@ private:
QGstreamerStreamsControl *m_streamsControl;
QGStreamerAvailabilityControl *m_availabilityControl;
@ -6680,7 +6649,7 @@ index f3081e9..22be262 100644
+
QMediaControl *m_videoOutput;
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
index 7d20b6d..f1fd421 100644
--- 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