summaryrefslogtreecommitdiffstats
path: root/recipes-qt/qt5/qtmultimedia
diff options
context:
space:
mode:
authorJonathan Liu <net147@gmail.com>2014-12-11 15:52:18 +1100
committerMartin Jansa <Martin.Jansa@gmail.com>2014-12-11 13:24:22 +0100
commit6566f728ab3d14a4908516fb13ad555dbfe04471 (patch)
treed73319dd12e71d434c01b25d04f9b5c84a5c83cc /recipes-qt/qt5/qtmultimedia
parentc9a1041cb956d94c04cbf635b00ca19725ffc129 (diff)
downloadmeta-qt5-6566f728ab3d14a4908516fb13ad555dbfe04471.tar.gz
recipes: upgrade from 5.3.2 to 5.4.0
MJ: nativesdk-qtbase, nativesdk-qttools, qtbase-native: Drop unnecessary LICENSE/LIC_FILES_CHKSUM MJ: qtwebkit: move leveldb dependency to .inc Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Jonathan Liu <net147@gmail.com>
Diffstat (limited to 'recipes-qt/qt5/qtmultimedia')
-rw-r--r--recipes-qt/qt5/qtmultimedia/0001-Initial-porting-effort-to-GStreamer-1.0.patch316
-rw-r--r--recipes-qt/qt5/qtmultimedia/0002-qtmultimedia.pro-Respect-OE_GSTREAMER_ENABLED-OE_GST.patch4
2 files changed, 154 insertions, 166 deletions
diff --git a/recipes-qt/qt5/qtmultimedia/0001-Initial-porting-effort-to-GStreamer-1.0.patch b/recipes-qt/qt5/qtmultimedia/0001-Initial-porting-effort-to-GStreamer-1.0.patch
index c32ddaf0..ab819f26 100644
--- a/recipes-qt/qt5/qtmultimedia/0001-Initial-porting-effort-to-GStreamer-1.0.patch
+++ b/recipes-qt/qt5/qtmultimedia/0001-Initial-porting-effort-to-GStreamer-1.0.patch
@@ -1,4 +1,4 @@
1From f8e3c6be700907a597ae706afeec14e26103b31e Mon Sep 17 00:00:00 2001 1From 4af76880d63e8d392eb8add8b8999e3f5031675a Mon Sep 17 00:00:00 2001
2From: Yoann Lopes <yoann.lopes@digia.com> 2From: Yoann Lopes <yoann.lopes@digia.com>
3Date: Thu, 31 Oct 2013 15:06:30 +0100 3Date: Thu, 31 Oct 2013 15:06:30 +0100
4Subject: [PATCH 1/2] Initial porting effort to GStreamer 1.0. 4Subject: [PATCH 1/2] Initial porting effort to GStreamer 1.0.
@@ -38,7 +38,7 @@ Conflicts:
38 src/gsttools/qgstreamervideowindow.cpp | 79 +++++++- 38 src/gsttools/qgstreamervideowindow.cpp | 79 +++++++-
39 src/gsttools/qgstutils.cpp | 27 ++- 39 src/gsttools/qgstutils.cpp | 27 ++-
40 src/gsttools/qgstvideobuffer.cpp | 18 +- 40 src/gsttools/qgstvideobuffer.cpp | 18 +-
41 src/gsttools/qvideosurfacegstsink.cpp | 143 +++++++++++++-- 41 src/gsttools/qvideosurfacegstsink.cpp | 138 +++++++++++++-
42 src/multimedia/gsttools_headers/qgstappsrc_p.h | 3 + 42 src/multimedia/gsttools_headers/qgstappsrc_p.h | 3 +
43 .../qgstreameraudioprobecontrol_p.h | 5 +- 43 .../qgstreameraudioprobecontrol_p.h | 5 +-
44 .../qgstreamervideoprobecontrol_p.h | 4 + 44 .../qgstreamervideoprobecontrol_p.h | 4 +
@@ -58,7 +58,7 @@ Conflicts:
58 .../mediaplayer/qgstreamerplayerserviceplugin.cpp | 27 ++- 58 .../mediaplayer/qgstreamerplayerserviceplugin.cpp | 27 ++-
59 .../mediaplayer/qgstreamerplayersession.cpp | 154 ++++++++++++++-- 59 .../mediaplayer/qgstreamerplayersession.cpp | 154 ++++++++++++++--
60 .../mediaplayer/qgstreamerplayersession.h | 9 + 60 .../mediaplayer/qgstreamerplayersession.h | 9 +
61 36 files changed, 875 insertions(+), 132 deletions(-) 61 36 files changed, 872 insertions(+), 130 deletions(-)
62 62
63diff --git a/config.tests/gstreamer/gstreamer.pro b/config.tests/gstreamer/gstreamer.pro 63diff --git a/config.tests/gstreamer/gstreamer.pro b/config.tests/gstreamer/gstreamer.pro
64index 02a7e34..6b9843a 100644 64index 02a7e34..6b9843a 100644
@@ -244,10 +244,10 @@ index 7c809a7..6b9bf5d 100644
244 244
245 config_linux_v4l: DEFINES += USE_V4L 245 config_linux_v4l: DEFINES += USE_V4L
246diff --git a/src/gsttools/gstvideoconnector.c b/src/gsttools/gstvideoconnector.c 246diff --git a/src/gsttools/gstvideoconnector.c b/src/gsttools/gstvideoconnector.c
247index 3e08fe5..ff3f9a3 100644 247index 3ed539e..ed0ed3c 100644
248--- a/src/gsttools/gstvideoconnector.c 248--- a/src/gsttools/gstvideoconnector.c
249+++ b/src/gsttools/gstvideoconnector.c 249+++ b/src/gsttools/gstvideoconnector.c
250@@ -67,26 +67,93 @@ GST_STATIC_PAD_TEMPLATE ("src", 250@@ -59,26 +59,93 @@ GST_STATIC_PAD_TEMPLATE ("src",
251 GST_PAD_ALWAYS, 251 GST_PAD_ALWAYS,
252 GST_STATIC_CAPS_ANY); 252 GST_STATIC_CAPS_ANY);
253 253
@@ -342,7 +342,7 @@ index 3e08fe5..ff3f9a3 100644
342 342
343 static void 343 static void
344 gst_video_connector_base_init (gpointer g_class) 344 gst_video_connector_base_init (gpointer g_class)
345@@ -128,18 +195,33 @@ gst_video_connector_class_init (GstVideoConnectorClass * klass) 345@@ -120,18 +187,33 @@ gst_video_connector_class_init (GstVideoConnectorClass * klass)
346 g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); 346 g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
347 } 347 }
348 348
@@ -378,7 +378,7 @@ index 3e08fe5..ff3f9a3 100644
378 gst_pad_set_bufferalloc_function(element->sinkpad, 378 gst_pad_set_bufferalloc_function(element->sinkpad,
379 GST_DEBUG_FUNCPTR (gst_video_connector_buffer_alloc)); 379 GST_DEBUG_FUNCPTR (gst_video_connector_buffer_alloc));
380 gst_pad_set_setcaps_function(element->sinkpad, 380 gst_pad_set_setcaps_function(element->sinkpad,
381@@ -148,14 +230,23 @@ gst_video_connector_init (GstVideoConnector *element, 381@@ -140,14 +222,23 @@ gst_video_connector_init (GstVideoConnector *element,
382 GST_DEBUG_FUNCPTR(gst_video_connector_getcaps)); 382 GST_DEBUG_FUNCPTR(gst_video_connector_getcaps));
383 gst_pad_set_acceptcaps_function(element->sinkpad, 383 gst_pad_set_acceptcaps_function(element->sinkpad,
384 GST_DEBUG_FUNCPTR(gst_video_connector_acceptcaps)); 384 GST_DEBUG_FUNCPTR(gst_video_connector_acceptcaps));
@@ -403,7 +403,7 @@ index 3e08fe5..ff3f9a3 100644
403 gst_element_add_pad (GST_ELEMENT (element), element->srcpad); 403 gst_element_add_pad (GST_ELEMENT (element), element->srcpad);
404 404
405 element->relinked = FALSE; 405 element->relinked = FALSE;
406@@ -183,9 +274,16 @@ gst_video_connector_dispose (GObject * object) 406@@ -175,9 +266,16 @@ gst_video_connector_dispose (GObject * object)
407 407
408 gst_video_connector_reset (element); 408 gst_video_connector_reset (element);
409 409
@@ -420,7 +420,7 @@ index 3e08fe5..ff3f9a3 100644
420 // "When this function returns anything else than GST_FLOW_OK, 420 // "When this function returns anything else than GST_FLOW_OK,
421 // the buffer allocation failed and buf does not contain valid data." 421 // the buffer allocation failed and buf does not contain valid data."
422 static GstFlowReturn 422 static GstFlowReturn
423@@ -229,6 +327,7 @@ gst_video_connector_buffer_alloc (GstPad * pad, guint64 offset, guint size, 423@@ -221,6 +319,7 @@ gst_video_connector_buffer_alloc (GstPad * pad, guint64 offset, guint size,
424 if (state == GST_STATE_NULL) { 424 if (state == GST_STATE_NULL) {
425 GST_DEBUG_OBJECT (element, "Downstream element is in NULL state"); 425 GST_DEBUG_OBJECT (element, "Downstream element is in NULL state");
426 // Downstream filter seems to be in the wrong state 426 // Downstream filter seems to be in the wrong state
@@ -428,7 +428,7 @@ index 3e08fe5..ff3f9a3 100644
428 return GST_FLOW_UNEXPECTED; 428 return GST_FLOW_UNEXPECTED;
429 } 429 }
430 } 430 }
431@@ -301,6 +400,7 @@ static GstCaps *gst_video_connector_getcaps (GstPad * pad) 431@@ -293,6 +392,7 @@ static GstCaps *gst_video_connector_getcaps (GstPad * pad)
432 return caps; 432 return caps;
433 } 433 }
434 434
@@ -436,7 +436,7 @@ index 3e08fe5..ff3f9a3 100644
436 static gboolean gst_video_connector_acceptcaps (GstPad * pad, GstCaps * caps) 436 static gboolean gst_video_connector_acceptcaps (GstPad * pad, GstCaps * caps)
437 { 437 {
438 GstVideoConnector *element; 438 GstVideoConnector *element;
439@@ -308,6 +408,7 @@ static gboolean gst_video_connector_acceptcaps (GstPad * pad, GstCaps * caps) 439@@ -300,6 +400,7 @@ static gboolean gst_video_connector_acceptcaps (GstPad * pad, GstCaps * caps)
440 440
441 return gst_pad_peer_accept_caps(element->srcpad, caps); 441 return gst_pad_peer_accept_caps(element->srcpad, caps);
442 } 442 }
@@ -444,7 +444,7 @@ index 3e08fe5..ff3f9a3 100644
444 444
445 static void 445 static void
446 gst_video_connector_resend_new_segment(GstElement * element, gboolean emitFailedSignal) 446 gst_video_connector_resend_new_segment(GstElement * element, gboolean emitFailedSignal)
447@@ -319,11 +420,39 @@ gst_video_connector_resend_new_segment(GstElement * element, gboolean emitFailed 447@@ -311,11 +412,39 @@ gst_video_connector_resend_new_segment(GstElement * element, gboolean emitFailed
448 connector->failedSignalEmited = FALSE; 448 connector->failedSignalEmited = FALSE;
449 } 449 }
450 450
@@ -485,7 +485,7 @@ index 3e08fe5..ff3f9a3 100644
485 485
486 GstVideoConnector *element = GST_VIDEO_CONNECTOR (object); 486 GstVideoConnector *element = GST_VIDEO_CONNECTOR (object);
487 487
488@@ -335,16 +464,23 @@ static gboolean gst_video_connector_new_buffer_probe(GstObject *pad, GstBuffer * 488@@ -327,16 +456,23 @@ static gboolean gst_video_connector_new_buffer_probe(GstObject *pad, GstBuffer *
489 if (element->relinked) 489 if (element->relinked)
490 GST_LOG_OBJECT(element, "rejected buffer because of new segment request"); 490 GST_LOG_OBJECT(element, "rejected buffer because of new segment request");
491 491
@@ -511,7 +511,7 @@ index 3e08fe5..ff3f9a3 100644
511 element = GST_VIDEO_CONNECTOR (gst_pad_get_parent (pad)); 511 element = GST_VIDEO_CONNECTOR (gst_pad_get_parent (pad));
512 512
513 do { 513 do {
514@@ -356,20 +492,29 @@ gst_video_connector_chain (GstPad * pad, GstBuffer * buf) 514@@ -348,20 +484,29 @@ gst_video_connector_chain (GstPad * pad, GstBuffer * buf)
515 */ 515 */
516 while (element->relinked) { 516 while (element->relinked) {
517 element->relinked = FALSE; 517 element->relinked = FALSE;
@@ -543,7 +543,7 @@ index 3e08fe5..ff3f9a3 100644
543 543
544 GST_DEBUG_OBJECT (element, "Pushing new segment event"); 544 GST_DEBUG_OBJECT (element, "Pushing new segment event");
545 if (!gst_pad_push_event (element->srcpad, ev)) { 545 if (!gst_pad_push_event (element->srcpad, ev)) {
546@@ -432,8 +577,11 @@ gst_video_connector_change_state (GstElement * element, 546@@ -424,8 +569,11 @@ gst_video_connector_change_state (GstElement * element,
547 GstStateChangeReturn result; 547 GstStateChangeReturn result;
548 548
549 connector = GST_VIDEO_CONNECTOR(element); 549 connector = GST_VIDEO_CONNECTOR(element);
@@ -556,7 +556,7 @@ index 3e08fe5..ff3f9a3 100644
556 switch (transition) { 556 switch (transition) {
557 case GST_STATE_CHANGE_PAUSED_TO_READY: 557 case GST_STATE_CHANGE_PAUSED_TO_READY:
558 gst_video_connector_reset (connector); 558 gst_video_connector_reset (connector);
559@@ -448,9 +596,32 @@ gst_video_connector_change_state (GstElement * element, 559@@ -440,9 +588,32 @@ gst_video_connector_change_state (GstElement * element,
560 return result; 560 return result;
561 } 561 }
562 562
@@ -591,7 +591,7 @@ index 3e08fe5..ff3f9a3 100644
591 if (GST_EVENT_TYPE (event) == GST_EVENT_NEWSEGMENT) { 591 if (GST_EVENT_TYPE (event) == GST_EVENT_NEWSEGMENT) {
592 GstVideoConnector *element = GST_VIDEO_CONNECTOR (gst_pad_get_parent (pad)); 592 GstVideoConnector *element = GST_VIDEO_CONNECTOR (gst_pad_get_parent (pad));
593 593
594@@ -461,7 +632,6 @@ gst_video_connector_handle_sink_event (GstPad * pad, GstEvent * event) 594@@ -453,7 +624,6 @@ gst_video_connector_handle_sink_event (GstPad * pad, GstEvent * event)
595 595
596 gst_event_parse_new_segment_full (event, &update, &rate, &arate, &format, 596 gst_event_parse_new_segment_full (event, &update, &rate, &arate, &format,
597 &start, &stop, &time); 597 &start, &stop, &time);
@@ -599,7 +599,7 @@ index 3e08fe5..ff3f9a3 100644
599 GST_LOG_OBJECT (element, 599 GST_LOG_OBJECT (element,
600 "NEWSEGMENT update %d, rate %lf, applied rate %lf, " 600 "NEWSEGMENT update %d, rate %lf, applied rate %lf, "
601 "format %d, " "%" G_GINT64_FORMAT " -- %" G_GINT64_FORMAT ", time %" 601 "format %d, " "%" G_GINT64_FORMAT " -- %" G_GINT64_FORMAT ", time %"
602@@ -469,9 +639,10 @@ gst_video_connector_handle_sink_event (GstPad * pad, GstEvent * event) 602@@ -461,9 +631,10 @@ gst_video_connector_handle_sink_event (GstPad * pad, GstEvent * event)
603 603
604 gst_segment_set_newsegment_full (&element->segment, update, 604 gst_segment_set_newsegment_full (&element->segment, update,
605 rate, arate, format, start, stop, time); 605 rate, arate, format, start, stop, time);
@@ -612,10 +612,10 @@ index 3e08fe5..ff3f9a3 100644
612+ 612+
613+#endif 613+#endif
614diff --git a/src/gsttools/qgstappsrc.cpp b/src/gsttools/qgstappsrc.cpp 614diff --git a/src/gsttools/qgstappsrc.cpp b/src/gsttools/qgstappsrc.cpp
615index 2c9f64c..7916d89 100644 615index 561a96f..d5e106f 100644
616--- a/src/gsttools/qgstappsrc.cpp 616--- a/src/gsttools/qgstappsrc.cpp
617+++ b/src/gsttools/qgstappsrc.cpp 617+++ b/src/gsttools/qgstappsrc.cpp
618@@ -155,23 +155,44 @@ void QGstAppSrc::pushDataToAppSrc() 618@@ -147,23 +147,44 @@ void QGstAppSrc::pushDataToAppSrc()
619 size = qMin(m_stream->bytesAvailable(), (qint64)m_dataRequestSize); 619 size = qMin(m_stream->bytesAvailable(), (qint64)m_dataRequestSize);
620 620
621 if (size) { 621 if (size) {
@@ -665,10 +665,10 @@ index 2c9f64c..7916d89 100644
665 } else { 665 } else {
666 sendEOS(); 666 sendEOS();
667diff --git a/src/gsttools/qgstreameraudioprobecontrol.cpp b/src/gsttools/qgstreameraudioprobecontrol.cpp 667diff --git a/src/gsttools/qgstreameraudioprobecontrol.cpp b/src/gsttools/qgstreameraudioprobecontrol.cpp
668index 94d07c9..8c85973 100644 668index 3baca53..be3de3f 100644
669--- a/src/gsttools/qgstreameraudioprobecontrol.cpp 669--- a/src/gsttools/qgstreameraudioprobecontrol.cpp
670+++ b/src/gsttools/qgstreameraudioprobecontrol.cpp 670+++ b/src/gsttools/qgstreameraudioprobecontrol.cpp
671@@ -53,9 +53,14 @@ QGstreamerAudioProbeControl::~QGstreamerAudioProbeControl() 671@@ -45,9 +45,14 @@ QGstreamerAudioProbeControl::~QGstreamerAudioProbeControl()
672 672
673 } 673 }
674 674
@@ -684,7 +684,7 @@ index 94d07c9..8c85973 100644
684 if (!caps) 684 if (!caps)
685 return; 685 return;
686 686
687@@ -64,8 +69,20 @@ void QGstreamerAudioProbeControl::bufferProbed(GstBuffer* buffer) 687@@ -56,8 +61,20 @@ void QGstreamerAudioProbeControl::bufferProbed(GstBuffer* buffer)
688 if (!format.isValid()) 688 if (!format.isValid())
689 return; 689 return;
690 690
@@ -706,10 +706,10 @@ index 94d07c9..8c85973 100644
706 QMutexLocker locker(&m_bufferMutex); 706 QMutexLocker locker(&m_bufferMutex);
707 m_pendingBuffer = audioBuffer; 707 m_pendingBuffer = audioBuffer;
708diff --git a/src/gsttools/qgstreamerbushelper.cpp b/src/gsttools/qgstreamerbushelper.cpp 708diff --git a/src/gsttools/qgstreamerbushelper.cpp b/src/gsttools/qgstreamerbushelper.cpp
709index da7506e..6b4cdd2 100644 709index 84eda46..eb1fc36 100644
710--- a/src/gsttools/qgstreamerbushelper.cpp 710--- a/src/gsttools/qgstreamerbushelper.cpp
711+++ b/src/gsttools/qgstreamerbushelper.cpp 711+++ b/src/gsttools/qgstreamerbushelper.cpp
712@@ -162,13 +162,21 @@ QGstreamerBusHelper::QGstreamerBusHelper(GstBus* bus, QObject* parent): 712@@ -154,13 +154,21 @@ QGstreamerBusHelper::QGstreamerBusHelper(GstBus* bus, QObject* parent):
713 QObject(parent) 713 QObject(parent)
714 { 714 {
715 d = new QGstreamerBusHelperPrivate(this, bus); 715 d = new QGstreamerBusHelperPrivate(this, bus);
@@ -732,10 +732,10 @@ index da7506e..6b4cdd2 100644
732 } 732 }
733 733
734diff --git a/src/gsttools/qgstreamervideoprobecontrol.cpp b/src/gsttools/qgstreamervideoprobecontrol.cpp 734diff --git a/src/gsttools/qgstreamervideoprobecontrol.cpp b/src/gsttools/qgstreamervideoprobecontrol.cpp
735index f2e6c3f..55632ff 100644 735index a78a9da..9c31140 100644
736--- a/src/gsttools/qgstreamervideoprobecontrol.cpp 736--- a/src/gsttools/qgstreamervideoprobecontrol.cpp
737+++ b/src/gsttools/qgstreamervideoprobecontrol.cpp 737+++ b/src/gsttools/qgstreamervideoprobecontrol.cpp
738@@ -75,12 +75,21 @@ void QGstreamerVideoProbeControl::stopFlushing() 738@@ -67,12 +67,21 @@ void QGstreamerVideoProbeControl::stopFlushing()
739 m_flushing = false; 739 m_flushing = false;
740 } 740 }
741 741
@@ -758,10 +758,10 @@ index f2e6c3f..55632ff 100644
758 return; 758 return;
759 759
760diff --git a/src/gsttools/qgstreamervideorenderer.cpp b/src/gsttools/qgstreamervideorenderer.cpp 760diff --git a/src/gsttools/qgstreamervideorenderer.cpp b/src/gsttools/qgstreamervideorenderer.cpp
761index 36c9f78..da85dea 100644 761index 2b66f76..804dce9 100644
762--- a/src/gsttools/qgstreamervideorenderer.cpp 762--- a/src/gsttools/qgstreamervideorenderer.cpp
763+++ b/src/gsttools/qgstreamervideorenderer.cpp 763+++ b/src/gsttools/qgstreamervideorenderer.cpp
764@@ -43,8 +43,7 @@ 764@@ -35,8 +35,7 @@
765 #include <private/qvideosurfacegstsink_p.h> 765 #include <private/qvideosurfacegstsink_p.h>
766 #include <private/qgstutils_p.h> 766 #include <private/qgstutils_p.h>
767 #include <qabstractvideosurface.h> 767 #include <qabstractvideosurface.h>
@@ -772,10 +772,10 @@ index 36c9f78..da85dea 100644
772 #include <gst/gst.h> 772 #include <gst/gst.h>
773 773
774diff --git a/src/gsttools/qgstreamervideowidget.cpp b/src/gsttools/qgstreamervideowidget.cpp 774diff --git a/src/gsttools/qgstreamervideowidget.cpp b/src/gsttools/qgstreamervideowidget.cpp
775index 7e11bfb..7848f2f 100644 775index aa2e2a3..14c1f04 100644
776--- a/src/gsttools/qgstreamervideowidget.cpp 776--- a/src/gsttools/qgstreamervideowidget.cpp
777+++ b/src/gsttools/qgstreamervideowidget.cpp 777+++ b/src/gsttools/qgstreamervideowidget.cpp
778@@ -48,8 +48,13 @@ 778@@ -40,8 +40,13 @@
779 #include <QtGui/qpainter.h> 779 #include <QtGui/qpainter.h>
780 780
781 #include <gst/gst.h> 781 #include <gst/gst.h>
@@ -789,7 +789,7 @@ index 7e11bfb..7848f2f 100644
789 789
790 QT_BEGIN_NAMESPACE 790 QT_BEGIN_NAMESPACE
791 791
792@@ -177,9 +182,13 @@ bool QGstreamerVideoWidgetControl::processSyncMessage(const QGstreamerMessage &m 792@@ -169,9 +174,13 @@ bool QGstreamerVideoWidgetControl::processSyncMessage(const QGstreamerMessage &m
793 { 793 {
794 GstMessage* gm = message.rawMessage(); 794 GstMessage* gm = message.rawMessage();
795 795
@@ -804,7 +804,7 @@ index 7e11bfb..7848f2f 100644
804 setOverlay(); 804 setOverlay();
805 QMetaObject::invokeMethod(this, "updateNativeVideoSize", Qt::QueuedConnection); 805 QMetaObject::invokeMethod(this, "updateNativeVideoSize", Qt::QueuedConnection);
806 return true; 806 return true;
807@@ -207,18 +216,29 @@ bool QGstreamerVideoWidgetControl::processBusMessage(const QGstreamerMessage &me 807@@ -199,18 +208,29 @@ bool QGstreamerVideoWidgetControl::processBusMessage(const QGstreamerMessage &me
808 808
809 void QGstreamerVideoWidgetControl::setOverlay() 809 void QGstreamerVideoWidgetControl::setOverlay()
810 { 810 {
@@ -835,7 +835,7 @@ index 7e11bfb..7848f2f 100644
835 835
836 if (caps) { 836 if (caps) {
837 m_widget->setNativeSize(QGstUtils::capsCorrectedResolution(caps)); 837 m_widget->setNativeSize(QGstUtils::capsCorrectedResolution(caps));
838@@ -233,8 +253,13 @@ void QGstreamerVideoWidgetControl::updateNativeVideoSize() 838@@ -225,8 +245,13 @@ void QGstreamerVideoWidgetControl::updateNativeVideoSize()
839 839
840 void QGstreamerVideoWidgetControl::windowExposed() 840 void QGstreamerVideoWidgetControl::windowExposed()
841 { 841 {
@@ -850,10 +850,10 @@ index 7e11bfb..7848f2f 100644
850 850
851 QWidget *QGstreamerVideoWidgetControl::videoWidget() 851 QWidget *QGstreamerVideoWidgetControl::videoWidget()
852diff --git a/src/gsttools/qgstreamervideowindow.cpp b/src/gsttools/qgstreamervideowindow.cpp 852diff --git a/src/gsttools/qgstreamervideowindow.cpp b/src/gsttools/qgstreamervideowindow.cpp
853index 2dc3510..45e9374 100644 853index a373dcc..587b010 100644
854--- a/src/gsttools/qgstreamervideowindow.cpp 854--- a/src/gsttools/qgstreamervideowindow.cpp
855+++ b/src/gsttools/qgstreamervideowindow.cpp 855+++ b/src/gsttools/qgstreamervideowindow.cpp
856@@ -45,8 +45,12 @@ 856@@ -37,8 +37,12 @@
857 #include <QtCore/qdebug.h> 857 #include <QtCore/qdebug.h>
858 858
859 #include <gst/gst.h> 859 #include <gst/gst.h>
@@ -866,7 +866,7 @@ index 2dc3510..45e9374 100644
866 866
867 867
868 QGstreamerVideoWindow::QGstreamerVideoWindow(QObject *parent, const char *elementName) 868 QGstreamerVideoWindow::QGstreamerVideoWindow(QObject *parent, const char *elementName)
869@@ -57,18 +61,25 @@ QGstreamerVideoWindow::QGstreamerVideoWindow(QObject *parent, const char *elemen 869@@ -49,18 +53,25 @@ QGstreamerVideoWindow::QGstreamerVideoWindow(QObject *parent, const char *elemen
870 , m_fullScreen(false) 870 , m_fullScreen(false)
871 , m_colorKey(QColor::Invalid) 871 , m_colorKey(QColor::Invalid)
872 { 872 {
@@ -894,7 +894,7 @@ index 2dc3510..45e9374 100644
894 } 894 }
895 895
896 QGstreamerVideoWindow::~QGstreamerVideoWindow() 896 QGstreamerVideoWindow::~QGstreamerVideoWindow()
897@@ -90,11 +101,15 @@ void QGstreamerVideoWindow::setWinId(WId id) 897@@ -82,11 +93,15 @@ void QGstreamerVideoWindow::setWinId(WId id)
898 WId oldId = m_windowId; 898 WId oldId = m_windowId;
899 899
900 m_windowId = id; 900 m_windowId = id;
@@ -912,7 +912,7 @@ index 2dc3510..45e9374 100644
912 if (!oldId) 912 if (!oldId)
913 emit readyChanged(true); 913 emit readyChanged(true);
914 914
915@@ -105,7 +120,20 @@ void QGstreamerVideoWindow::setWinId(WId id) 915@@ -97,7 +112,20 @@ void QGstreamerVideoWindow::setWinId(WId id)
916 bool QGstreamerVideoWindow::processSyncMessage(const QGstreamerMessage &message) 916 bool QGstreamerVideoWindow::processSyncMessage(const QGstreamerMessage &message)
917 { 917 {
918 GstMessage* gm = message.rawMessage(); 918 GstMessage* gm = message.rawMessage();
@@ -933,7 +933,7 @@ index 2dc3510..45e9374 100644
933 if ((GST_MESSAGE_TYPE(gm) == GST_MESSAGE_ELEMENT) && 933 if ((GST_MESSAGE_TYPE(gm) == GST_MESSAGE_ELEMENT) &&
934 gst_structure_has_name(gm->structure, "prepare-xwindow-id") && 934 gst_structure_has_name(gm->structure, "prepare-xwindow-id") &&
935 m_videoSink && GST_IS_X_OVERLAY(m_videoSink)) { 935 m_videoSink && GST_IS_X_OVERLAY(m_videoSink)) {
936@@ -118,7 +146,7 @@ bool QGstreamerVideoWindow::processSyncMessage(const QGstreamerMessage &message) 936@@ -110,7 +138,7 @@ bool QGstreamerVideoWindow::processSyncMessage(const QGstreamerMessage &message)
937 937
938 return true; 938 return true;
939 } 939 }
@@ -942,7 +942,7 @@ index 2dc3510..45e9374 100644
942 return false; 942 return false;
943 } 943 }
944 944
945@@ -130,7 +158,19 @@ QRect QGstreamerVideoWindow::displayRect() const 945@@ -122,7 +150,19 @@ QRect QGstreamerVideoWindow::displayRect() const
946 void QGstreamerVideoWindow::setDisplayRect(const QRect &rect) 946 void QGstreamerVideoWindow::setDisplayRect(const QRect &rect)
947 { 947 {
948 m_displayRect = rect; 948 m_displayRect = rect;
@@ -963,7 +963,7 @@ index 2dc3510..45e9374 100644
963 if (m_videoSink && GST_IS_X_OVERLAY(m_videoSink)) { 963 if (m_videoSink && GST_IS_X_OVERLAY(m_videoSink)) {
964 #if GST_VERSION_MICRO >= 29 964 #if GST_VERSION_MICRO >= 29
965 if (m_displayRect.isEmpty()) 965 if (m_displayRect.isEmpty())
966@@ -144,6 +184,7 @@ void QGstreamerVideoWindow::setDisplayRect(const QRect &rect) 966@@ -136,6 +176,7 @@ void QGstreamerVideoWindow::setDisplayRect(const QRect &rect)
967 repaint(); 967 repaint();
968 #endif 968 #endif
969 } 969 }
@@ -971,7 +971,7 @@ index 2dc3510..45e9374 100644
971 } 971 }
972 972
973 Qt::AspectRatioMode QGstreamerVideoWindow::aspectRatioMode() const 973 Qt::AspectRatioMode QGstreamerVideoWindow::aspectRatioMode() const
974@@ -165,6 +206,16 @@ void QGstreamerVideoWindow::setAspectRatioMode(Qt::AspectRatioMode mode) 974@@ -157,6 +198,16 @@ void QGstreamerVideoWindow::setAspectRatioMode(Qt::AspectRatioMode mode)
975 975
976 void QGstreamerVideoWindow::repaint() 976 void QGstreamerVideoWindow::repaint()
977 { 977 {
@@ -988,7 +988,7 @@ index 2dc3510..45e9374 100644
988 if (m_videoSink && GST_IS_X_OVERLAY(m_videoSink)) { 988 if (m_videoSink && GST_IS_X_OVERLAY(m_videoSink)) {
989 //don't call gst_x_overlay_expose if the sink is in null state 989 //don't call gst_x_overlay_expose if the sink is in null state
990 GstState state = GST_STATE_NULL; 990 GstState state = GST_STATE_NULL;
991@@ -173,6 +224,7 @@ void QGstreamerVideoWindow::repaint() 991@@ -165,6 +216,7 @@ void QGstreamerVideoWindow::repaint()
992 gst_x_overlay_expose(GST_X_OVERLAY(m_videoSink)); 992 gst_x_overlay_expose(GST_X_OVERLAY(m_videoSink));
993 } 993 }
994 } 994 }
@@ -996,7 +996,7 @@ index 2dc3510..45e9374 100644
996 } 996 }
997 997
998 QColor QGstreamerVideoWindow::colorKey() const 998 QColor QGstreamerVideoWindow::colorKey() const
999@@ -304,11 +356,22 @@ QSize QGstreamerVideoWindow::nativeSize() const 999@@ -296,11 +348,22 @@ QSize QGstreamerVideoWindow::nativeSize() const
1000 return m_nativeSize; 1000 return m_nativeSize;
1001 } 1001 }
1002 1002
@@ -1019,7 +1019,7 @@ index 2dc3510..45e9374 100644
1019 } 1019 }
1020 1020
1021 void QGstreamerVideoWindow::updateNativeVideoSize() 1021 void QGstreamerVideoWindow::updateNativeVideoSize()
1022@@ -319,7 +382,11 @@ void QGstreamerVideoWindow::updateNativeVideoSize() 1022@@ -311,7 +374,11 @@ void QGstreamerVideoWindow::updateNativeVideoSize()
1023 if (m_videoSink) { 1023 if (m_videoSink) {
1024 //find video native size to update video widget size hint 1024 //find video native size to update video widget size hint
1025 GstPad *pad = gst_element_get_static_pad(m_videoSink,"sink"); 1025 GstPad *pad = gst_element_get_static_pad(m_videoSink,"sink");
@@ -1032,7 +1032,7 @@ index 2dc3510..45e9374 100644
1032 1032
1033 if (caps) { 1033 if (caps) {
1034diff --git a/src/gsttools/qgstutils.cpp b/src/gsttools/qgstutils.cpp 1034diff --git a/src/gsttools/qgstutils.cpp b/src/gsttools/qgstutils.cpp
1035index 41bd005..3ca1921 100644 1035index 556fc03..5ea2c59 100644
1036--- a/src/gsttools/qgstutils.cpp 1036--- a/src/gsttools/qgstutils.cpp
1037+++ b/src/gsttools/qgstutils.cpp 1037+++ b/src/gsttools/qgstutils.cpp
1038@@ -89,8 +89,13 @@ static void addTagToMap(const GstTagList *list, 1038@@ -89,8 +89,13 @@ static void addTagToMap(const GstTagList *list,
@@ -1083,7 +1083,7 @@ index 41bd005..3ca1921 100644
1083 1083
1084 /*! 1084 /*!
1085 Builds GstCaps for an audio format. 1085 Builds GstCaps for an audio format.
1086@@ -403,7 +426,7 @@ QMultimedia::SupportEstimate QGstUtils::hasSupport(const QString &mimeType, 1086@@ -579,7 +602,7 @@ QByteArray QGstUtils::cameraDriver(const QString &device, GstElementFactory *fac
1087 1087
1088 void qt_gst_object_ref_sink(gpointer object) 1088 void qt_gst_object_ref_sink(gpointer object)
1089 { 1089 {
@@ -1093,10 +1093,10 @@ index 41bd005..3ca1921 100644
1093 #else 1093 #else
1094 g_return_if_fail (GST_IS_OBJECT(object)); 1094 g_return_if_fail (GST_IS_OBJECT(object));
1095diff --git a/src/gsttools/qgstvideobuffer.cpp b/src/gsttools/qgstvideobuffer.cpp 1095diff --git a/src/gsttools/qgstvideobuffer.cpp b/src/gsttools/qgstvideobuffer.cpp
1096index 45556d1..750a07f 100644 1096index 18702ec..93f22f5 100644
1097--- a/src/gsttools/qgstvideobuffer.cpp 1097--- a/src/gsttools/qgstvideobuffer.cpp
1098+++ b/src/gsttools/qgstvideobuffer.cpp 1098+++ b/src/gsttools/qgstvideobuffer.cpp
1099@@ -78,21 +78,33 @@ QAbstractVideoBuffer::MapMode QGstVideoBuffer::mapMode() const 1099@@ -70,21 +70,33 @@ QAbstractVideoBuffer::MapMode QGstVideoBuffer::mapMode() const
1100 uchar *QGstVideoBuffer::map(MapMode mode, int *numBytes, int *bytesPerLine) 1100 uchar *QGstVideoBuffer::map(MapMode mode, int *numBytes, int *bytesPerLine)
1101 { 1101 {
1102 if (mode != NotMapped && m_mode == NotMapped) { 1102 if (mode != NotMapped && m_mode == NotMapped) {
@@ -1134,10 +1134,10 @@ index 45556d1..750a07f 100644
1134 } 1134 }
1135 1135
1136diff --git a/src/gsttools/qvideosurfacegstsink.cpp b/src/gsttools/qvideosurfacegstsink.cpp 1136diff --git a/src/gsttools/qvideosurfacegstsink.cpp b/src/gsttools/qvideosurfacegstsink.cpp
1137index 81d5f60..51c4107 100644 1137index f3e2d88..a964e82 100644
1138--- a/src/gsttools/qvideosurfacegstsink.cpp 1138--- a/src/gsttools/qvideosurfacegstsink.cpp
1139+++ b/src/gsttools/qvideosurfacegstsink.cpp 1139+++ b/src/gsttools/qvideosurfacegstsink.cpp
1140@@ -51,7 +51,11 @@ 1140@@ -43,7 +43,11 @@
1141 1141
1142 #include "qvideosurfacegstsink_p.h" 1142 #include "qvideosurfacegstsink_p.h"
1143 1143
@@ -1150,7 +1150,7 @@ index 81d5f60..51c4107 100644
1150 1150
1151 QT_BEGIN_NAMESPACE 1151 QT_BEGIN_NAMESPACE
1152 1152
1153@@ -71,10 +75,12 @@ QVideoSurfaceGstDelegate::QVideoSurfaceGstDelegate( 1153@@ -62,10 +66,12 @@ QVideoSurfaceGstDelegate::QVideoSurfaceGstDelegate(
1154 if (m_surface) { 1154 if (m_surface) {
1155 foreach (QObject *instance, bufferPoolLoader()->instances(QGstBufferPoolPluginKey)) { 1155 foreach (QObject *instance, bufferPoolLoader()->instances(QGstBufferPoolPluginKey)) {
1156 QGstBufferPoolInterface* plugin = qobject_cast<QGstBufferPoolInterface*>(instance); 1156 QGstBufferPoolInterface* plugin = qobject_cast<QGstBufferPoolInterface*>(instance);
@@ -1163,7 +1163,7 @@ index 81d5f60..51c4107 100644
1163 updateSupportedFormats(); 1163 updateSupportedFormats();
1164 connect(m_surface, SIGNAL(supportedFormatsChanged()), this, SLOT(updateSupportedFormats())); 1164 connect(m_surface, SIGNAL(supportedFormatsChanged()), this, SLOT(updateSupportedFormats()));
1165 } 1165 }
1166@@ -208,6 +214,8 @@ GstFlowReturn QVideoSurfaceGstDelegate::render(GstBuffer *buffer) 1166@@ -198,6 +204,8 @@ GstFlowReturn QVideoSurfaceGstDelegate::render(GstBuffer *buffer)
1167 if (QThread::currentThread() == thread()) { 1167 if (QThread::currentThread() == thread()) {
1168 if (!m_surface.isNull()) 1168 if (!m_surface.isNull())
1169 m_surface->present(m_frame); 1169 m_surface->present(m_frame);
@@ -1172,7 +1172,7 @@ index 81d5f60..51c4107 100644
1172 } else { 1172 } else {
1173 QMetaObject::invokeMethod(this, "queuedRender", Qt::QueuedConnection); 1173 QMetaObject::invokeMethod(this, "queuedRender", Qt::QueuedConnection);
1174 m_renderCondition.wait(&m_mutex, 300); 1174 m_renderCondition.wait(&m_mutex, 300);
1175@@ -310,6 +318,27 @@ void QVideoSurfaceGstDelegate::updateSupportedFormats() 1175@@ -283,6 +291,27 @@ void QVideoSurfaceGstDelegate::updateSupportedFormats()
1176 } 1176 }
1177 } 1177 }
1178 1178
@@ -1200,7 +1200,7 @@ index 81d5f60..51c4107 100644
1200 struct YuvFormat 1200 struct YuvFormat
1201 { 1201 {
1202 QVideoFrame::PixelFormat pixelFormat; 1202 QVideoFrame::PixelFormat pixelFormat;
1203@@ -327,6 +356,7 @@ static const YuvFormat qt_yuvColorLookup[] = 1203@@ -300,6 +329,7 @@ static const YuvFormat qt_yuvColorLookup[] =
1204 { QVideoFrame::Format_NV21, GST_MAKE_FOURCC('N','V','2','1'), 8 }, 1204 { QVideoFrame::Format_NV21, GST_MAKE_FOURCC('N','V','2','1'), 8 },
1205 { QVideoFrame::Format_AYUV444, GST_MAKE_FOURCC('A','Y','U','V'), 32 } 1205 { QVideoFrame::Format_AYUV444, GST_MAKE_FOURCC('A','Y','U','V'), 32 }
1206 }; 1206 };
@@ -1208,7 +1208,7 @@ index 81d5f60..51c4107 100644
1208 1208
1209 static int indexOfYuvColor(QVideoFrame::PixelFormat format) 1209 static int indexOfYuvColor(QVideoFrame::PixelFormat format)
1210 { 1210 {
1211@@ -339,12 +369,20 @@ static int indexOfYuvColor(QVideoFrame::PixelFormat format) 1211@@ -312,12 +342,20 @@ static int indexOfYuvColor(QVideoFrame::PixelFormat format)
1212 return -1; 1212 return -1;
1213 } 1213 }
1214 1214
@@ -1229,7 +1229,7 @@ index 81d5f60..51c4107 100644
1229 return i; 1229 return i;
1230 1230
1231 return -1; 1231 return -1;
1232@@ -417,13 +455,13 @@ GType QVideoSurfaceGstSink::get_type() 1232@@ -388,13 +426,13 @@ GType QVideoSurfaceGstSink::get_type()
1233 if (type == 0) { 1233 if (type == 0) {
1234 static const GTypeInfo info = 1234 static const GTypeInfo info =
1235 { 1235 {
@@ -1245,7 +1245,7 @@ index 81d5f60..51c4107 100644
1245 0, // n_preallocs 1245 0, // n_preallocs
1246 instance_init, // instance_init 1246 instance_init, // instance_init
1247 0 // value_table 1247 0 // value_table
1248@@ -445,7 +483,11 @@ void QVideoSurfaceGstSink::class_init(gpointer g_class, gpointer class_data) 1248@@ -419,7 +457,11 @@ void QVideoSurfaceGstSink::class_init(gpointer g_class, gpointer class_data)
1249 GstBaseSinkClass *base_sink_class = reinterpret_cast<GstBaseSinkClass *>(g_class); 1249 GstBaseSinkClass *base_sink_class = reinterpret_cast<GstBaseSinkClass *>(g_class);
1250 base_sink_class->get_caps = QVideoSurfaceGstSink::get_caps; 1250 base_sink_class->get_caps = QVideoSurfaceGstSink::get_caps;
1251 base_sink_class->set_caps = QVideoSurfaceGstSink::set_caps; 1251 base_sink_class->set_caps = QVideoSurfaceGstSink::set_caps;
@@ -1256,8 +1256,8 @@ index 81d5f60..51c4107 100644
1256+#endif 1256+#endif
1257 base_sink_class->start = QVideoSurfaceGstSink::start; 1257 base_sink_class->start = QVideoSurfaceGstSink::start;
1258 base_sink_class->stop = QVideoSurfaceGstSink::stop; 1258 base_sink_class->stop = QVideoSurfaceGstSink::stop;
1259 // base_sink_class->unlock = QVideoSurfaceGstSink::unlock; // Not implemented. 1259
1260@@ -464,6 +506,18 @@ void QVideoSurfaceGstSink::base_init(gpointer g_class) 1260@@ -434,6 +476,18 @@ void QVideoSurfaceGstSink::base_init(gpointer g_class)
1261 { 1261 {
1262 static GstStaticPadTemplate sink_pad_template = GST_STATIC_PAD_TEMPLATE( 1262 static GstStaticPadTemplate sink_pad_template = GST_STATIC_PAD_TEMPLATE(
1263 "sink", GST_PAD_SINK, GST_PAD_ALWAYS, GST_STATIC_CAPS( 1263 "sink", GST_PAD_SINK, GST_PAD_ALWAYS, GST_STATIC_CAPS(
@@ -1276,7 +1276,7 @@ index 81d5f60..51c4107 100644
1276 "video/x-raw-rgb, " 1276 "video/x-raw-rgb, "
1277 "framerate = (fraction) [ 0, MAX ], " 1277 "framerate = (fraction) [ 0, MAX ], "
1278 "width = (int) [ 1, MAX ], " 1278 "width = (int) [ 1, MAX ], "
1279@@ -472,6 +526,7 @@ void QVideoSurfaceGstSink::base_init(gpointer g_class) 1279@@ -442,6 +496,7 @@ void QVideoSurfaceGstSink::base_init(gpointer g_class)
1280 "framerate = (fraction) [ 0, MAX ], " 1280 "framerate = (fraction) [ 0, MAX ], "
1281 "width = (int) [ 1, MAX ], " 1281 "width = (int) [ 1, MAX ], "
1282 "height = (int) [ 1, MAX ]")); 1282 "height = (int) [ 1, MAX ]"));
@@ -1284,7 +1284,7 @@ index 81d5f60..51c4107 100644
1284 1284
1285 gst_element_class_add_pad_template( 1285 gst_element_class_add_pad_template(
1286 GST_ELEMENT_CLASS(g_class), gst_static_pad_template_get(&sink_pad_template)); 1286 GST_ELEMENT_CLASS(g_class), gst_static_pad_template_get(&sink_pad_template));
1287@@ -520,7 +575,11 @@ GstStateChangeReturn QVideoSurfaceGstSink::change_state( 1287@@ -490,7 +545,11 @@ GstStateChangeReturn QVideoSurfaceGstSink::change_state(
1288 element, transition); 1288 element, transition);
1289 } 1289 }
1290 1290
@@ -1297,7 +1297,7 @@ index 81d5f60..51c4107 100644
1297 { 1297 {
1298 VO_SINK(base); 1298 VO_SINK(base);
1299 1299
1300@@ -533,6 +592,7 @@ GstCaps *QVideoSurfaceGstSink::get_caps(GstBaseSink *base) 1300@@ -503,6 +562,7 @@ GstCaps *QVideoSurfaceGstSink::get_caps(GstBaseSink *base)
1301 QList<QVideoFrame::PixelFormat> poolHandleFormats; 1301 QList<QVideoFrame::PixelFormat> poolHandleFormats;
1302 sink->delegate->poolMutex()->lock(); 1302 sink->delegate->poolMutex()->lock();
1303 QGstBufferPoolInterface *pool = sink->delegate->pool(); 1303 QGstBufferPoolInterface *pool = sink->delegate->pool();
@@ -1305,7 +1305,7 @@ index 81d5f60..51c4107 100644
1305 if (pool) 1305 if (pool)
1306 poolHandleFormats = sink->delegate->supportedPixelFormats(pool->handleType()); 1306 poolHandleFormats = sink->delegate->supportedPixelFormats(pool->handleType());
1307 sink->delegate->poolMutex()->unlock(); 1307 sink->delegate->poolMutex()->unlock();
1308@@ -548,11 +608,19 @@ GstCaps *QVideoSurfaceGstSink::get_caps(GstBaseSink *base) 1308@@ -518,11 +578,19 @@ GstCaps *QVideoSurfaceGstSink::get_caps(GstBaseSink *base)
1309 1309
1310 if (index != -1) { 1310 if (index != -1) {
1311 gst_caps_append_structure(caps, gst_structure_new( 1311 gst_caps_append_structure(caps, gst_structure_new(
@@ -1326,7 +1326,7 @@ index 81d5f60..51c4107 100644
1326 NULL)); 1326 NULL));
1327 continue; 1327 continue;
1328 } 1328 }
1329@@ -562,7 +630,18 @@ GstCaps *QVideoSurfaceGstSink::get_caps(GstBaseSink *base) 1329@@ -532,7 +600,18 @@ GstCaps *QVideoSurfaceGstSink::get_caps(GstBaseSink *base)
1330 for (int i = 0; i < count; ++i) { 1330 for (int i = 0; i < count; ++i) {
1331 if (qt_rgbColorLookup[i].pixelFormat == format) { 1331 if (qt_rgbColorLookup[i].pixelFormat == format) {
1332 GstStructure *structure = gst_structure_new( 1332 GstStructure *structure = gst_structure_new(
@@ -1345,7 +1345,7 @@ index 81d5f60..51c4107 100644
1345 "framerate" , GST_TYPE_FRACTION_RANGE, 0, 1, INT_MAX, 1, 1345 "framerate" , GST_TYPE_FRACTION_RANGE, 0, 1, INT_MAX, 1,
1346 "width" , GST_TYPE_INT_RANGE, 1, INT_MAX, 1346 "width" , GST_TYPE_INT_RANGE, 1, INT_MAX,
1347 "height" , GST_TYPE_INT_RANGE, 1, INT_MAX, 1347 "height" , GST_TYPE_INT_RANGE, 1, INT_MAX,
1348@@ -583,6 +662,7 @@ GstCaps *QVideoSurfaceGstSink::get_caps(GstBaseSink *base) 1348@@ -553,6 +632,7 @@ GstCaps *QVideoSurfaceGstSink::get_caps(GstBaseSink *base)
1349 } 1349 }
1350 } 1350 }
1351 1351
@@ -1353,7 +1353,7 @@ index 81d5f60..51c4107 100644
1353 return caps; 1353 return caps;
1354 } 1354 }
1355 1355
1356@@ -622,7 +702,7 @@ gboolean QVideoSurfaceGstSink::set_caps(GstBaseSink *base, GstCaps *caps) 1356@@ -592,7 +672,7 @@ gboolean QVideoSurfaceGstSink::set_caps(GstBaseSink *base, GstCaps *caps)
1357 sink->lastRequestedCaps = 0; 1357 sink->lastRequestedCaps = 0;
1358 1358
1359 #ifdef DEBUG_VIDEO_SURFACE_SINK 1359 #ifdef DEBUG_VIDEO_SURFACE_SINK
@@ -1362,7 +1362,7 @@ index 81d5f60..51c4107 100644
1362 qDebug() << format; 1362 qDebug() << format;
1363 qDebug() << "bytesPerLine:" << bytesPerLine; 1363 qDebug() << "bytesPerLine:" << bytesPerLine;
1364 #endif 1364 #endif
1365@@ -647,11 +727,49 @@ QVideoSurfaceFormat QVideoSurfaceGstSink::formatForCaps(GstCaps *caps, int *byte 1365@@ -617,11 +697,49 @@ QVideoSurfaceFormat QVideoSurfaceGstSink::formatForCaps(GstCaps *caps, int *byte
1366 gst_structure_get_int(structure, "width", &size.rwidth()); 1366 gst_structure_get_int(structure, "width", &size.rwidth());
1367 gst_structure_get_int(structure, "height", &size.rheight()); 1367 gst_structure_get_int(structure, "height", &size.rheight());
1368 1368
@@ -1412,7 +1412,7 @@ index 81d5f60..51c4107 100644
1412 if (index != -1) { 1412 if (index != -1) {
1413 pixelFormat = qt_yuvColorLookup[index].pixelFormat; 1413 pixelFormat = qt_yuvColorLookup[index].pixelFormat;
1414 bitsPerPixel = qt_yuvColorLookup[index].bitsPerPixel; 1414 bitsPerPixel = qt_yuvColorLookup[index].bitsPerPixel;
1415@@ -677,6 +795,7 @@ QVideoSurfaceFormat QVideoSurfaceGstSink::formatForCaps(GstCaps *caps, int *byte 1415@@ -647,6 +765,7 @@ QVideoSurfaceFormat QVideoSurfaceGstSink::formatForCaps(GstCaps *caps, int *byte
1416 if (index != -1) 1416 if (index != -1)
1417 pixelFormat = qt_rgbColorLookup[index].pixelFormat; 1417 pixelFormat = qt_rgbColorLookup[index].pixelFormat;
1418 } 1418 }
@@ -1420,7 +1420,7 @@ index 81d5f60..51c4107 100644
1420 1420
1421 if (pixelFormat != QVideoFrame::Format_Invalid) { 1421 if (pixelFormat != QVideoFrame::Format_Invalid) {
1422 QVideoSurfaceFormat format(size, pixelFormat, handleType); 1422 QVideoSurfaceFormat format(size, pixelFormat, handleType);
1423@@ -773,7 +892,11 @@ GstFlowReturn QVideoSurfaceGstSink::buffer_alloc( 1423@@ -722,7 +841,11 @@ GstFlowReturn QVideoSurfaceGstSink::buffer_alloc(
1424 1424
1425 poolLock.unlock(); 1425 poolLock.unlock();
1426 1426
@@ -1432,7 +1432,7 @@ index 81d5f60..51c4107 100644
1432 1432
1433 if (gst_caps_is_empty (intersection)) { 1433 if (gst_caps_is_empty (intersection)) {
1434 gst_caps_unref(intersection); 1434 gst_caps_unref(intersection);
1435@@ -814,7 +937,7 @@ GstFlowReturn QVideoSurfaceGstSink::buffer_alloc( 1435@@ -763,7 +886,7 @@ GstFlowReturn QVideoSurfaceGstSink::buffer_alloc(
1436 QVideoSurfaceFormat surfaceFormat = sink->delegate->surfaceFormat(); 1436 QVideoSurfaceFormat surfaceFormat = sink->delegate->surfaceFormat();
1437 1437
1438 if (!pool->isFormatSupported(surfaceFormat)) { 1438 if (!pool->isFormatSupported(surfaceFormat)) {
@@ -1441,7 +1441,7 @@ index 81d5f60..51c4107 100644
1441 return GST_FLOW_OK; 1441 return GST_FLOW_OK;
1442 } 1442 }
1443 1443
1444@@ -838,7 +961,6 @@ GstFlowReturn QVideoSurfaceGstSink::buffer_alloc( 1444@@ -787,7 +910,6 @@ GstFlowReturn QVideoSurfaceGstSink::buffer_alloc(
1445 gboolean QVideoSurfaceGstSink::start(GstBaseSink *base) 1445 gboolean QVideoSurfaceGstSink::start(GstBaseSink *base)
1446 { 1446 {
1447 Q_UNUSED(base); 1447 Q_UNUSED(base);
@@ -1449,23 +1449,11 @@ index 81d5f60..51c4107 100644
1449 return TRUE; 1449 return TRUE;
1450 } 1450 }
1451 1451
1452@@ -864,8 +986,9 @@ gboolean QVideoSurfaceGstSink::event(GstBaseSink *base, GstEvent *event)
1453 VO_SINK(base);
1454 sink->delegate->setLastPrerolledBuffer(0);
1455 }
1456-
1457- return TRUE;
1458+#if GST_CHECK_VERSION(1, 0, 0)
1459+ return GST_BASE_SINK_CLASS (sink_parent_class)->event (base, event);
1460+#endif
1461 }
1462
1463 GstFlowReturn QVideoSurfaceGstSink::preroll(GstBaseSink *base, GstBuffer *buffer)
1464diff --git a/src/multimedia/gsttools_headers/qgstappsrc_p.h b/src/multimedia/gsttools_headers/qgstappsrc_p.h 1452diff --git a/src/multimedia/gsttools_headers/qgstappsrc_p.h b/src/multimedia/gsttools_headers/qgstappsrc_p.h
1465index bfb038e..a188e18 100644 1453index 4af9252..0e0fc0a 100644
1466--- a/src/multimedia/gsttools_headers/qgstappsrc_p.h 1454--- a/src/multimedia/gsttools_headers/qgstappsrc_p.h
1467+++ b/src/multimedia/gsttools_headers/qgstappsrc_p.h 1455+++ b/src/multimedia/gsttools_headers/qgstappsrc_p.h
1468@@ -47,7 +47,10 @@ 1456@@ -39,7 +39,10 @@
1469 1457
1470 #include <gst/gst.h> 1458 #include <gst/gst.h>
1471 #include <gst/app/gstappsrc.h> 1459 #include <gst/app/gstappsrc.h>
@@ -1477,10 +1465,10 @@ index bfb038e..a188e18 100644
1477 QT_BEGIN_NAMESPACE 1465 QT_BEGIN_NAMESPACE
1478 1466
1479diff --git a/src/multimedia/gsttools_headers/qgstreameraudioprobecontrol_p.h b/src/multimedia/gsttools_headers/qgstreameraudioprobecontrol_p.h 1467diff --git a/src/multimedia/gsttools_headers/qgstreameraudioprobecontrol_p.h b/src/multimedia/gsttools_headers/qgstreameraudioprobecontrol_p.h
1480index 71ea2ff..879f071 100644 1468index 34669b8..0f3b165 100644
1481--- a/src/multimedia/gsttools_headers/qgstreameraudioprobecontrol_p.h 1469--- a/src/multimedia/gsttools_headers/qgstreameraudioprobecontrol_p.h
1482+++ b/src/multimedia/gsttools_headers/qgstreameraudioprobecontrol_p.h 1470+++ b/src/multimedia/gsttools_headers/qgstreameraudioprobecontrol_p.h
1483@@ -55,8 +55,11 @@ class QGstreamerAudioProbeControl : public QMediaAudioProbeControl 1471@@ -47,8 +47,11 @@ class QGstreamerAudioProbeControl : public QMediaAudioProbeControl
1484 public: 1472 public:
1485 explicit QGstreamerAudioProbeControl(QObject *parent); 1473 explicit QGstreamerAudioProbeControl(QObject *parent);
1486 virtual ~QGstreamerAudioProbeControl(); 1474 virtual ~QGstreamerAudioProbeControl();
@@ -1494,10 +1482,10 @@ index 71ea2ff..879f071 100644
1494 private slots: 1482 private slots:
1495 void bufferProbed(); 1483 void bufferProbed();
1496diff --git a/src/multimedia/gsttools_headers/qgstreamervideoprobecontrol_p.h b/src/multimedia/gsttools_headers/qgstreamervideoprobecontrol_p.h 1484diff --git a/src/multimedia/gsttools_headers/qgstreamervideoprobecontrol_p.h b/src/multimedia/gsttools_headers/qgstreamervideoprobecontrol_p.h
1497index c512b48..0a8a654 100644 1485index 49064f9..fce6309 100644
1498--- a/src/multimedia/gsttools_headers/qgstreamervideoprobecontrol_p.h 1486--- a/src/multimedia/gsttools_headers/qgstreamervideoprobecontrol_p.h
1499+++ b/src/multimedia/gsttools_headers/qgstreamervideoprobecontrol_p.h 1487+++ b/src/multimedia/gsttools_headers/qgstreamervideoprobecontrol_p.h
1500@@ -56,7 +56,11 @@ public: 1488@@ -48,7 +48,11 @@ public:
1501 explicit QGstreamerVideoProbeControl(QObject *parent); 1489 explicit QGstreamerVideoProbeControl(QObject *parent);
1502 virtual ~QGstreamerVideoProbeControl(); 1490 virtual ~QGstreamerVideoProbeControl();
1503 1491
@@ -1510,10 +1498,10 @@ index c512b48..0a8a654 100644
1510 void stopFlushing(); 1498 void stopFlushing();
1511 1499
1512diff --git a/src/multimedia/gsttools_headers/qgstreamervideowindow_p.h b/src/multimedia/gsttools_headers/qgstreamervideowindow_p.h 1500diff --git a/src/multimedia/gsttools_headers/qgstreamervideowindow_p.h b/src/multimedia/gsttools_headers/qgstreamervideowindow_p.h
1513index 45582d6..4440337 100644 1501index 81e5764..c9fdb5c 100644
1514--- a/src/multimedia/gsttools_headers/qgstreamervideowindow_p.h 1502--- a/src/multimedia/gsttools_headers/qgstreamervideowindow_p.h
1515+++ b/src/multimedia/gsttools_headers/qgstreamervideowindow_p.h 1503+++ b/src/multimedia/gsttools_headers/qgstreamervideowindow_p.h
1516@@ -112,7 +112,11 @@ private slots: 1504@@ -104,7 +104,11 @@ private slots:
1517 void updateNativeVideoSize(); 1505 void updateNativeVideoSize();
1518 1506
1519 private: 1507 private:
@@ -1526,10 +1514,10 @@ index 45582d6..4440337 100644
1526 GstElement *m_videoSink; 1514 GstElement *m_videoSink;
1527 WId m_windowId; 1515 WId m_windowId;
1528diff --git a/src/multimedia/gsttools_headers/qgstutils_p.h b/src/multimedia/gsttools_headers/qgstutils_p.h 1516diff --git a/src/multimedia/gsttools_headers/qgstutils_p.h b/src/multimedia/gsttools_headers/qgstutils_p.h
1529index eea1e15..6369df7 100644 1517index 65ff759..6015980 100644
1530--- a/src/multimedia/gsttools_headers/qgstutils_p.h 1518--- a/src/multimedia/gsttools_headers/qgstutils_p.h
1531+++ b/src/multimedia/gsttools_headers/qgstutils_p.h 1519+++ b/src/multimedia/gsttools_headers/qgstutils_p.h
1532@@ -70,7 +70,11 @@ namespace QGstUtils { 1520@@ -73,7 +73,11 @@ namespace QGstUtils {
1533 QSize capsResolution(const GstCaps *caps); 1521 QSize capsResolution(const GstCaps *caps);
1534 QSize capsCorrectedResolution(const GstCaps *caps); 1522 QSize capsCorrectedResolution(const GstCaps *caps);
1535 QAudioFormat audioFormatForCaps(const GstCaps *caps); 1523 QAudioFormat audioFormatForCaps(const GstCaps *caps);
@@ -1542,10 +1530,10 @@ index eea1e15..6369df7 100644
1542 void initializeGst(); 1530 void initializeGst();
1543 QMultimedia::SupportEstimate hasSupport(const QString &mimeType, 1531 QMultimedia::SupportEstimate hasSupport(const QString &mimeType,
1544diff --git a/src/multimedia/gsttools_headers/qgstvideobuffer_p.h b/src/multimedia/gsttools_headers/qgstvideobuffer_p.h 1532diff --git a/src/multimedia/gsttools_headers/qgstvideobuffer_p.h b/src/multimedia/gsttools_headers/qgstvideobuffer_p.h
1545index 505a6c6..9bde1e0 100644 1533index 1e0fda8..be48820 100644
1546--- a/src/multimedia/gsttools_headers/qgstvideobuffer_p.h 1534--- a/src/multimedia/gsttools_headers/qgstvideobuffer_p.h
1547+++ b/src/multimedia/gsttools_headers/qgstvideobuffer_p.h 1535+++ b/src/multimedia/gsttools_headers/qgstvideobuffer_p.h
1548@@ -79,6 +79,9 @@ private: 1536@@ -71,6 +71,9 @@ private:
1549 int m_bytesPerLine; 1537 int m_bytesPerLine;
1550 MapMode m_mode; 1538 MapMode m_mode;
1551 QVariant m_handle; 1539 QVariant m_handle;
@@ -1556,10 +1544,10 @@ index 505a6c6..9bde1e0 100644
1556 1544
1557 QT_END_NAMESPACE 1545 QT_END_NAMESPACE
1558diff --git a/src/multimedia/gsttools_headers/qvideosurfacegstsink_p.h b/src/multimedia/gsttools_headers/qvideosurfacegstsink_p.h 1546diff --git a/src/multimedia/gsttools_headers/qvideosurfacegstsink_p.h b/src/multimedia/gsttools_headers/qvideosurfacegstsink_p.h
1559index 7563f06..505ff39 100644 1547index 11b305d..01935f7 100644
1560--- a/src/multimedia/gsttools_headers/qvideosurfacegstsink_p.h 1548--- a/src/multimedia/gsttools_headers/qvideosurfacegstsink_p.h
1561+++ b/src/multimedia/gsttools_headers/qvideosurfacegstsink_p.h 1549+++ b/src/multimedia/gsttools_headers/qvideosurfacegstsink_p.h
1562@@ -146,7 +146,11 @@ private: 1550@@ -131,7 +131,11 @@ private:
1563 1551
1564 static GstStateChangeReturn change_state(GstElement *element, GstStateChange transition); 1552 static GstStateChangeReturn change_state(GstElement *element, GstStateChange transition);
1565 1553
@@ -1573,10 +1561,10 @@ index 7563f06..505ff39 100644
1573 1561
1574 static GstFlowReturn buffer_alloc( 1562 static GstFlowReturn buffer_alloc(
1575diff --git a/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecoderserviceplugin.cpp b/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecoderserviceplugin.cpp 1563diff --git a/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecoderserviceplugin.cpp b/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecoderserviceplugin.cpp
1576index e6d2421..00291ab 100644 1564index 3098aab..9c54663 100644
1577--- a/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecoderserviceplugin.cpp 1565--- a/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecoderserviceplugin.cpp
1578+++ b/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecoderserviceplugin.cpp 1566+++ b/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecoderserviceplugin.cpp
1579@@ -82,29 +82,42 @@ void QGstreamerAudioDecoderServicePlugin::updateSupportedMimeTypes() const 1567@@ -74,29 +74,42 @@ void QGstreamerAudioDecoderServicePlugin::updateSupportedMimeTypes() const
1580 gst_init(NULL, NULL); 1568 gst_init(NULL, NULL);
1581 1569
1582 GList *plugins, *orig_plugins; 1570 GList *plugins, *orig_plugins;
@@ -1627,10 +1615,10 @@ index e6d2421..00291ab 100644
1627 GstStaticPadTemplate *padtemplate = (GstStaticPadTemplate*)(pads->data); 1615 GstStaticPadTemplate *padtemplate = (GstStaticPadTemplate*)(pads->data);
1628 pads = g_list_next (pads); 1616 pads = g_list_next (pads);
1629diff --git a/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecodersession.cpp b/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecodersession.cpp 1617diff --git a/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecodersession.cpp b/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecodersession.cpp
1630index 9f1a765..dd6bd02 100644 1618index f944a60..72d1cf1 100644
1631--- a/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecodersession.cpp 1619--- a/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecodersession.cpp
1632+++ b/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecodersession.cpp 1620+++ b/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecodersession.cpp
1633@@ -454,21 +454,40 @@ QAudioBuffer QGstreamerAudioDecoderSession::read() 1621@@ -446,21 +446,40 @@ QAudioBuffer QGstreamerAudioDecoderSession::read()
1634 if (buffersAvailable == 1) 1622 if (buffersAvailable == 1)
1635 emit bufferAvailableChanged(false); 1623 emit bufferAvailableChanged(false);
1636 1624
@@ -1673,7 +1661,7 @@ index 9f1a765..dd6bd02 100644
1673 } 1661 }
1674 1662
1675 return audioBuffer; 1663 return audioBuffer;
1676@@ -539,7 +558,12 @@ void QGstreamerAudioDecoderSession::addAppSink() 1664@@ -531,7 +550,12 @@ void QGstreamerAudioDecoderSession::addAppSink()
1677 1665
1678 GstAppSinkCallbacks callbacks; 1666 GstAppSinkCallbacks callbacks;
1679 memset(&callbacks, 0, sizeof(callbacks)); 1667 memset(&callbacks, 0, sizeof(callbacks));
@@ -1686,7 +1674,7 @@ index 9f1a765..dd6bd02 100644
1686 gst_app_sink_set_callbacks(m_appSink, &callbacks, this, NULL); 1674 gst_app_sink_set_callbacks(m_appSink, &callbacks, this, NULL);
1687 gst_app_sink_set_max_buffers(m_appSink, MAX_BUFFERS_IN_QUEUE); 1675 gst_app_sink_set_max_buffers(m_appSink, MAX_BUFFERS_IN_QUEUE);
1688 gst_base_sink_set_sync(GST_BASE_SINK(m_appSink), FALSE); 1676 gst_base_sink_set_sync(GST_BASE_SINK(m_appSink), FALSE);
1689@@ -565,8 +589,13 @@ void QGstreamerAudioDecoderSession::updateDuration() 1677@@ -557,8 +581,13 @@ void QGstreamerAudioDecoderSession::updateDuration()
1690 gint64 gstDuration = 0; 1678 gint64 gstDuration = 0;
1691 int duration = -1; 1679 int duration = -1;
1692 1680
@@ -1701,22 +1689,22 @@ index 9f1a765..dd6bd02 100644
1701 if (m_duration != duration) { 1689 if (m_duration != duration) {
1702 m_duration = duration; 1690 m_duration = duration;
1703diff --git a/src/plugins/gstreamer/camerabin/camerabinsession.cpp b/src/plugins/gstreamer/camerabin/camerabinsession.cpp 1691diff --git a/src/plugins/gstreamer/camerabin/camerabinsession.cpp b/src/plugins/gstreamer/camerabin/camerabinsession.cpp
1704index a835b1c..6bd3682 100644 1692index a4038c5..9d1fdfa 100644
1705--- a/src/plugins/gstreamer/camerabin/camerabinsession.cpp 1693--- a/src/plugins/gstreamer/camerabin/camerabinsession.cpp
1706+++ b/src/plugins/gstreamer/camerabin/camerabinsession.cpp 1694+++ b/src/plugins/gstreamer/camerabin/camerabinsession.cpp
1707@@ -731,7 +731,11 @@ qint64 CameraBinSession::duration() const 1695@@ -760,7 +760,11 @@ qint64 CameraBinSession::duration() const
1708 GstFormat format = GST_FORMAT_TIME; 1696 if (fileSink) {
1709 gint64 duration = 0; 1697 GstFormat format = GST_FORMAT_TIME;
1710 1698 gint64 duration = 0;
1711+#if GST_CHECK_VERSION(1,0,0) 1699+#if GST_CHECK_VERSION(1,0,0)
1712+ if ( m_camerabin && gst_element_query_duration(m_camerabin, format, &duration)) 1700+ bool ret = gst_element_query_duration(fileSink, format, &duration);
1713+#else 1701+#else
1714 if ( m_camerabin && gst_element_query_position(m_camerabin, &format, &duration)) 1702 bool ret = gst_element_query_position(fileSink, &format, &duration);
1715+#endif 1703+#endif
1716 return duration / 1000000; 1704 gst_object_unref(GST_OBJECT(fileSink));
1717 else 1705 if (ret)
1718 return 0; 1706 return duration / 1000000;
1719@@ -764,8 +768,13 @@ void CameraBinSession::setMetaData(const QMap<QByteArray, QVariant> &data) 1707@@ -797,8 +801,13 @@ void CameraBinSession::setMetaData(const QMap<QByteArray, QVariant> &data)
1720 1708
1721 if (m_camerabin) { 1709 if (m_camerabin) {
1722 GstIterator *elements = gst_bin_iterate_all_by_interface(GST_BIN(m_camerabin), GST_TYPE_TAG_SETTER); 1710 GstIterator *elements = gst_bin_iterate_all_by_interface(GST_BIN(m_camerabin), GST_TYPE_TAG_SETTER);
@@ -1730,7 +1718,7 @@ index a835b1c..6bd3682 100644
1730 gst_tag_setter_reset_tags(GST_TAG_SETTER(element)); 1718 gst_tag_setter_reset_tags(GST_TAG_SETTER(element));
1731 1719
1732 QMapIterator<QByteArray, QVariant> it(data); 1720 QMapIterator<QByteArray, QVariant> it(data);
1733@@ -826,7 +835,11 @@ bool CameraBinSession::processSyncMessage(const QGstreamerMessage &message) 1721@@ -859,7 +868,11 @@ bool CameraBinSession::processSyncMessage(const QGstreamerMessage &message)
1734 1722
1735 if (gm && GST_MESSAGE_TYPE(gm) == GST_MESSAGE_ELEMENT) { 1723 if (gm && GST_MESSAGE_TYPE(gm) == GST_MESSAGE_ELEMENT) {
1736 if (m_captureMode == QCamera::CaptureStillImage && 1724 if (m_captureMode == QCamera::CaptureStillImage &&
@@ -1742,7 +1730,7 @@ index a835b1c..6bd3682 100644
1742 st = gst_message_get_structure(gm); 1730 st = gst_message_get_structure(gm);
1743 1731
1744 if (gst_structure_has_field_typed(st, "buffer", GST_TYPE_BUFFER)) { 1732 if (gst_structure_has_field_typed(st, "buffer", GST_TYPE_BUFFER)) {
1745@@ -836,7 +849,11 @@ bool CameraBinSession::processSyncMessage(const QGstreamerMessage &message) 1733@@ -869,7 +882,11 @@ bool CameraBinSession::processSyncMessage(const QGstreamerMessage &message)
1746 1734
1747 QImage img; 1735 QImage img;
1748 1736
@@ -1754,7 +1742,7 @@ index a835b1c..6bd3682 100644
1754 if (caps) { 1742 if (caps) {
1755 GstStructure *structure = gst_caps_get_structure(caps, 0); 1743 GstStructure *structure = gst_caps_get_structure(caps, 0);
1756 gint width = 0; 1744 gint width = 0;
1757@@ -1109,7 +1126,11 @@ QList< QPair<int,int> > CameraBinSession::supportedFrameRates(const QSize &frame 1745@@ -1142,7 +1159,11 @@ QList< QPair<int,int> > CameraBinSession::supportedFrameRates(const QSize &frame
1758 gst_structure_remove_all_fields(structure); 1746 gst_structure_remove_all_fields(structure);
1759 gst_structure_set_value(structure, "framerate", &rate); 1747 gst_structure_set_value(structure, "framerate", &rate);
1760 } 1748 }
@@ -1766,7 +1754,7 @@ index a835b1c..6bd3682 100644
1766 1754
1767 1755
1768 for (uint i=0; i<gst_caps_get_size(caps); i++) { 1756 for (uint i=0; i<gst_caps_get_size(caps); i++) {
1769@@ -1229,7 +1250,11 @@ QList<QSize> CameraBinSession::supportedResolutions(QPair<int,int> rate, 1757@@ -1262,7 +1283,11 @@ QList<QSize> CameraBinSession::supportedResolutions(QPair<int,int> rate,
1770 gst_structure_set_value(structure, "width", &w); 1758 gst_structure_set_value(structure, "width", &w);
1771 gst_structure_set_value(structure, "height", &h); 1759 gst_structure_set_value(structure, "height", &h);
1772 } 1760 }
@@ -1836,10 +1824,10 @@ index 7649010..fce55ac 100644
1836 1824
1837 OTHER_FILES += \ 1825 OTHER_FILES += \
1838diff --git a/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.cpp b/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.cpp 1826diff --git a/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.cpp b/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.cpp
1839index b9114c6..97d9203 100644 1827index a2bd80d..d12e9a5 100644
1840--- a/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.cpp 1828--- a/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.cpp
1841+++ b/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.cpp 1829+++ b/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.cpp
1842@@ -506,6 +506,11 @@ GstElement *QGstreamerCaptureSession::buildImageCapture() 1830@@ -498,6 +498,11 @@ GstElement *QGstreamerCaptureSession::buildImageCapture()
1843 gst_pad_add_buffer_probe(pad, G_CALLBACK(passImageFilter), this); 1831 gst_pad_add_buffer_probe(pad, G_CALLBACK(passImageFilter), this);
1844 gst_object_unref(GST_OBJECT(pad)); 1832 gst_object_unref(GST_OBJECT(pad));
1845 1833
@@ -1861,10 +1849,10 @@ index 2ca9377..b986fc7 100644
1861 mediaplayer.json 1849 mediaplayer.json
1862- 1850-
1863diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp 1851diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp
1864index 99c471b..deec236 100644 1852index fed756a..8239710 100644
1865--- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp 1853--- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp
1866+++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp 1854+++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp
1867@@ -527,6 +527,8 @@ void QGstreamerPlayerControl::processEOS() 1855@@ -537,6 +537,8 @@ void QGstreamerPlayerControl::processEOS()
1868 m_session->showPrerollFrames(false); // stop showing prerolled frames in stop state 1856 m_session->showPrerollFrames(false); // stop showing prerolled frames in stop state
1869 } 1857 }
1870 1858
@@ -1874,10 +1862,10 @@ index 99c471b..deec236 100644
1874 } 1862 }
1875 1863
1876diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp 1864diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp
1877index 854da46..2fd4345 100644 1865index ce267d7..062de07 100644
1878--- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp 1866--- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp
1879+++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp 1867+++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp
1880@@ -59,7 +59,11 @@ 1868@@ -51,7 +51,11 @@
1881 #include <private/qgstreamervideorenderer_p.h> 1869 #include <private/qgstreamervideorenderer_p.h>
1882 1870
1883 #if defined(Q_WS_MAEMO_6) && defined(__arm__) 1871 #if defined(Q_WS_MAEMO_6) && defined(__arm__)
@@ -1890,7 +1878,7 @@ index 854da46..2fd4345 100644
1890 #endif 1878 #endif
1891 1879
1892 #include "qgstreamerstreamscontrol.h" 1880 #include "qgstreamerstreamscontrol.h"
1893@@ -90,6 +94,9 @@ QGstreamerPlayerService::QGstreamerPlayerService(QObject *parent): 1881@@ -82,6 +86,9 @@ QGstreamerPlayerService::QGstreamerPlayerService(QObject *parent):
1894 1882
1895 #if defined(Q_WS_MAEMO_6) && defined(__arm__) 1883 #if defined(Q_WS_MAEMO_6) && defined(__arm__)
1896 m_videoRenderer = new QGstreamerGLTextureRenderer(this); 1884 m_videoRenderer = new QGstreamerGLTextureRenderer(this);
@@ -1901,10 +1889,10 @@ index 854da46..2fd4345 100644
1901 m_videoRenderer = new QGstreamerVideoRenderer(this); 1889 m_videoRenderer = new QGstreamerVideoRenderer(this);
1902 #endif 1890 #endif
1903diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerserviceplugin.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerserviceplugin.cpp 1891diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerserviceplugin.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerserviceplugin.cpp
1904index a9052ca..7968799 100644 1892index 7d20b6d..bf2f9f8 100644
1905--- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerserviceplugin.cpp 1893--- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerserviceplugin.cpp
1906+++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerserviceplugin.cpp 1894+++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerserviceplugin.cpp
1907@@ -95,7 +95,11 @@ void QGstreamerPlayerServicePlugin::updateSupportedMimeTypes() const 1895@@ -87,7 +87,11 @@ void QGstreamerPlayerServicePlugin::updateSupportedMimeTypes() const
1908 gst_init(NULL, NULL); 1896 gst_init(NULL, NULL);
1909 1897
1910 GList *plugins, *orig_plugins; 1898 GList *plugins, *orig_plugins;
@@ -1916,7 +1904,7 @@ index a9052ca..7968799 100644
1916 1904
1917 while (plugins) { 1905 while (plugins) {
1918 GList *features, *orig_features; 1906 GList *features, *orig_features;
1919@@ -103,22 +107,33 @@ void QGstreamerPlayerServicePlugin::updateSupportedMimeTypes() const 1907@@ -95,22 +99,33 @@ void QGstreamerPlayerServicePlugin::updateSupportedMimeTypes() const
1920 GstPlugin *plugin = (GstPlugin *) (plugins->data); 1908 GstPlugin *plugin = (GstPlugin *) (plugins->data);
1921 plugins = g_list_next (plugins); 1909 plugins = g_list_next (plugins);
1922 1910
@@ -1957,10 +1945,10 @@ index a9052ca..7968799 100644
1957 GstStaticPadTemplate *padtemplate = (GstStaticPadTemplate*)(pads->data); 1945 GstStaticPadTemplate *padtemplate = (GstStaticPadTemplate*)(pads->data);
1958 pads = g_list_next (pads); 1946 pads = g_list_next (pads);
1959diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp 1947diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp
1960index 87b71d7..03185a2 100644 1948index 15924a6..8013d0d 100644
1961--- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp 1949--- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp
1962+++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp 1950+++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp
1963@@ -93,6 +93,16 @@ typedef enum { 1951@@ -85,6 +85,16 @@ typedef enum {
1964 GST_PLAY_FLAG_BUFFERING = 0x000000100 1952 GST_PLAY_FLAG_BUFFERING = 0x000000100
1965 } GstPlayFlags; 1953 } GstPlayFlags;
1966 1954
@@ -1977,7 +1965,7 @@ index 87b71d7..03185a2 100644
1977 #define DEFAULT_RAW_CAPS \ 1965 #define DEFAULT_RAW_CAPS \
1978 "video/x-raw-yuv; " \ 1966 "video/x-raw-yuv; " \
1979 "video/x-raw-rgb; " \ 1967 "video/x-raw-rgb; " \
1980@@ -105,6 +115,8 @@ typedef enum { 1968@@ -97,6 +107,8 @@ typedef enum {
1981 "text/x-pango-markup; " \ 1969 "text/x-pango-markup; " \
1982 "video/x-dvd-subpicture; " \ 1970 "video/x-dvd-subpicture; " \
1983 "subpicture/x-pgs" 1971 "subpicture/x-pgs"
@@ -1986,7 +1974,7 @@ index 87b71d7..03185a2 100644
1986 static GstStaticCaps static_RawCaps = GST_STATIC_CAPS(DEFAULT_RAW_CAPS); 1974 static GstStaticCaps static_RawCaps = GST_STATIC_CAPS(DEFAULT_RAW_CAPS);
1987 1975
1988 QGstreamerPlayerSession::QGstreamerPlayerSession(QObject *parent) 1976 QGstreamerPlayerSession::QGstreamerPlayerSession(QObject *parent)
1989@@ -145,8 +157,11 @@ QGstreamerPlayerSession::QGstreamerPlayerSession(QObject *parent) 1977@@ -137,8 +149,11 @@ QGstreamerPlayerSession::QGstreamerPlayerSession(QObject *parent)
1990 gboolean result = gst_type_find_register(0, "playlist", GST_RANK_MARGINAL, playlistTypeFindFunction, 0, 0, this, 0); 1978 gboolean result = gst_type_find_register(0, "playlist", GST_RANK_MARGINAL, playlistTypeFindFunction, 0, 0, this, 0);
1991 Q_ASSERT(result == TRUE); 1979 Q_ASSERT(result == TRUE);
1992 Q_UNUSED(result); 1980 Q_UNUSED(result);
@@ -1999,7 +1987,7 @@ index 87b71d7..03185a2 100644
1999 1987
2000 if (m_playbin) { 1988 if (m_playbin) {
2001 //GST_PLAY_FLAG_NATIVE_VIDEO omits configuration of ffmpegcolorspace and videoscale, 1989 //GST_PLAY_FLAG_NATIVE_VIDEO omits configuration of ffmpegcolorspace and videoscale,
2002@@ -196,7 +211,11 @@ QGstreamerPlayerSession::QGstreamerPlayerSession(QObject *parent) 1990@@ -188,7 +203,11 @@ QGstreamerPlayerSession::QGstreamerPlayerSession(QObject *parent)
2003 m_videoIdentity = GST_ELEMENT(g_object_new(gst_video_connector_get_type(), 0)); // floating ref 1991 m_videoIdentity = GST_ELEMENT(g_object_new(gst_video_connector_get_type(), 0)); // floating ref
2004 g_signal_connect(G_OBJECT(m_videoIdentity), "connection-failed", G_CALLBACK(insertColorSpaceElement), (gpointer)this); 1992 g_signal_connect(G_OBJECT(m_videoIdentity), "connection-failed", G_CALLBACK(insertColorSpaceElement), (gpointer)this);
2005 1993
@@ -2011,7 +1999,7 @@ index 87b71d7..03185a2 100644
2011 // might not get a parent, take ownership to avoid leak 1999 // might not get a parent, take ownership to avoid leak
2012 qt_gst_object_ref_sink(GST_OBJECT(m_colorSpace)); 2000 qt_gst_object_ref_sink(GST_OBJECT(m_colorSpace));
2013 2001
2014@@ -214,7 +233,7 @@ QGstreamerPlayerSession::QGstreamerPlayerSession(QObject *parent) 2002@@ -206,7 +225,7 @@ QGstreamerPlayerSession::QGstreamerPlayerSession(QObject *parent)
2015 2003
2016 // add ghostpads 2004 // add ghostpads
2017 GstPad *pad = gst_element_get_static_pad(m_videoIdentity,"sink"); 2005 GstPad *pad = gst_element_get_static_pad(m_videoIdentity,"sink");
@@ -2020,7 +2008,7 @@ index 87b71d7..03185a2 100644
2020 gst_object_unref(GST_OBJECT(pad)); 2008 gst_object_unref(GST_OBJECT(pad));
2021 2009
2022 if (m_playbin != 0) { 2010 if (m_playbin != 0) {
2023@@ -226,7 +245,7 @@ QGstreamerPlayerSession::QGstreamerPlayerSession(QObject *parent) 2011@@ -218,7 +237,7 @@ QGstreamerPlayerSession::QGstreamerPlayerSession(QObject *parent)
2024 g_object_set(G_OBJECT(m_playbin), "video-sink", m_videoOutputBin, NULL); 2012 g_object_set(G_OBJECT(m_playbin), "video-sink", m_videoOutputBin, NULL);
2025 2013
2026 g_signal_connect(G_OBJECT(m_playbin), "notify::source", G_CALLBACK(playbinNotifySource), this); 2014 g_signal_connect(G_OBJECT(m_playbin), "notify::source", G_CALLBACK(playbinNotifySource), this);
@@ -2029,7 +2017,7 @@ index 87b71d7..03185a2 100644
2029 2017
2030 if (usePlaybinVolume()) { 2018 if (usePlaybinVolume()) {
2031 updateVolume(); 2019 updateVolume();
2032@@ -350,9 +369,13 @@ qint64 QGstreamerPlayerSession::position() const 2020@@ -342,9 +361,13 @@ qint64 QGstreamerPlayerSession::position() const
2033 GstFormat format = GST_FORMAT_TIME; 2021 GstFormat format = GST_FORMAT_TIME;
2034 gint64 position = 0; 2022 gint64 position = 0;
2035 2023
@@ -2044,7 +2032,7 @@ index 87b71d7..03185a2 100644
2044 return m_lastPosition; 2032 return m_lastPosition;
2045 } 2033 }
2046 2034
2047@@ -482,9 +505,18 @@ bool QGstreamerPlayerSession::isAudioAvailable() const 2035@@ -474,9 +497,18 @@ bool QGstreamerPlayerSession::isAudioAvailable() const
2048 return m_audioAvailable; 2036 return m_audioAvailable;
2049 } 2037 }
2050 2038
@@ -2063,7 +2051,7 @@ index 87b71d7..03185a2 100644
2063 #ifdef DEBUG_PLAYBIN 2051 #ifdef DEBUG_PLAYBIN
2064 qDebug() << "block_pad_cb, blocked:" << blocked; 2052 qDebug() << "block_pad_cb, blocked:" << blocked;
2065 #endif 2053 #endif
2066@@ -493,6 +525,7 @@ static void block_pad_cb(GstPad *pad, gboolean blocked, gpointer user_data) 2054@@ -485,6 +517,7 @@ static void block_pad_cb(GstPad *pad, gboolean blocked, gpointer user_data)
2067 QGstreamerPlayerSession *session = reinterpret_cast<QGstreamerPlayerSession*>(user_data); 2055 QGstreamerPlayerSession *session = reinterpret_cast<QGstreamerPlayerSession*>(user_data);
2068 QMetaObject::invokeMethod(session, "finishVideoOutputChange", Qt::QueuedConnection); 2056 QMetaObject::invokeMethod(session, "finishVideoOutputChange", Qt::QueuedConnection);
2069 } 2057 }
@@ -2071,7 +2059,7 @@ index 87b71d7..03185a2 100644
2071 } 2059 }
2072 2060
2073 void QGstreamerPlayerSession::updateVideoRenderer() 2061 void QGstreamerPlayerSession::updateVideoRenderer()
2074@@ -537,7 +570,7 @@ void QGstreamerPlayerSession::setVideoRenderer(QObject *videoOutput) 2062@@ -529,7 +562,7 @@ void QGstreamerPlayerSession::setVideoRenderer(QObject *videoOutput)
2075 m_renderer = renderer; 2063 m_renderer = renderer;
2076 2064
2077 #ifdef DEBUG_VO_BIN_DUMP 2065 #ifdef DEBUG_VO_BIN_DUMP
@@ -2080,7 +2068,7 @@ index 87b71d7..03185a2 100644
2080 GstDebugGraphDetails(GST_DEBUG_GRAPH_SHOW_ALL /* GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE | GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS | GST_DEBUG_GRAPH_SHOW_STATES*/), 2068 GstDebugGraphDetails(GST_DEBUG_GRAPH_SHOW_ALL /* GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE | GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS | GST_DEBUG_GRAPH_SHOW_STATES*/),
2081 "playbin_set"); 2069 "playbin_set");
2082 #endif 2070 #endif
2083@@ -641,7 +674,11 @@ void QGstreamerPlayerSession::setVideoRenderer(QObject *videoOutput) 2071@@ -633,7 +666,11 @@ void QGstreamerPlayerSession::setVideoRenderer(QObject *videoOutput)
2084 2072
2085 //block pads, async to avoid locking in paused state 2073 //block pads, async to avoid locking in paused state
2086 GstPad *srcPad = gst_element_get_static_pad(m_videoIdentity, "src"); 2074 GstPad *srcPad = gst_element_get_static_pad(m_videoIdentity, "src");
@@ -2092,7 +2080,7 @@ index 87b71d7..03185a2 100644
2092 gst_object_unref(GST_OBJECT(srcPad)); 2080 gst_object_unref(GST_OBJECT(srcPad));
2093 2081
2094 //Unpause the sink to avoid waiting until the buffer is processed 2082 //Unpause the sink to avoid waiting until the buffer is processed
2095@@ -682,7 +719,11 @@ void QGstreamerPlayerSession::finishVideoOutputChange() 2083@@ -674,7 +711,11 @@ void QGstreamerPlayerSession::finishVideoOutputChange()
2096 //video output was change back to the current one, 2084 //video output was change back to the current one,
2097 //no need to torment the pipeline, just unblock the pad 2085 //no need to torment the pipeline, just unblock the pad
2098 if (gst_pad_is_blocked(srcPad)) 2086 if (gst_pad_is_blocked(srcPad))
@@ -2104,7 +2092,7 @@ index 87b71d7..03185a2 100644
2104 2092
2105 m_pendingVideoSink = 0; 2093 m_pendingVideoSink = 0;
2106 gst_object_unref(GST_OBJECT(srcPad)); 2094 gst_object_unref(GST_OBJECT(srcPad));
2107@@ -768,12 +809,17 @@ void QGstreamerPlayerSession::finishVideoOutputChange() 2095@@ -760,12 +801,17 @@ void QGstreamerPlayerSession::finishVideoOutputChange()
2108 2096
2109 //don't have to wait here, it will unblock eventually 2097 //don't have to wait here, it will unblock eventually
2110 if (gst_pad_is_blocked(srcPad)) 2098 if (gst_pad_is_blocked(srcPad))
@@ -2125,7 +2113,7 @@ index 87b71d7..03185a2 100644
2125 "playbin_finish"); 2113 "playbin_finish");
2126 #endif 2114 #endif
2127 } 2115 }
2128@@ -838,6 +884,7 @@ bool QGstreamerPlayerSession::play() 2116@@ -830,6 +876,7 @@ bool QGstreamerPlayerSession::play()
2129 #ifdef DEBUG_PLAYBIN 2117 #ifdef DEBUG_PLAYBIN
2130 qDebug() << Q_FUNC_INFO; 2118 qDebug() << Q_FUNC_INFO;
2131 #endif 2119 #endif
@@ -2133,7 +2121,7 @@ index 87b71d7..03185a2 100644
2133 m_everPlayed = false; 2121 m_everPlayed = false;
2134 if (m_playbin) { 2122 if (m_playbin) {
2135 m_pendingState = QMediaPlayer::PlayingState; 2123 m_pendingState = QMediaPlayer::PlayingState;
2136@@ -1335,8 +1382,11 @@ void QGstreamerPlayerSession::getStreamsInfo() 2124@@ -1327,8 +1374,11 @@ void QGstreamerPlayerSession::getStreamsInfo()
2137 default: 2125 default:
2138 break; 2126 break;
2139 } 2127 }
@@ -2146,7 +2134,7 @@ index 87b71d7..03185a2 100644
2146 gchar *languageCode = 0; 2134 gchar *languageCode = 0;
2147 if (gst_tag_list_get_string(tags, GST_TAG_LANGUAGE_CODE, &languageCode)) 2135 if (gst_tag_list_get_string(tags, GST_TAG_LANGUAGE_CODE, &languageCode))
2148 streamProperties[QMediaMetaData::Language] = QString::fromUtf8(languageCode); 2136 streamProperties[QMediaMetaData::Language] = QString::fromUtf8(languageCode);
2149@@ -1375,7 +1425,11 @@ void QGstreamerPlayerSession::updateVideoResolutionTag() 2137@@ -1367,7 +1417,11 @@ void QGstreamerPlayerSession::updateVideoResolutionTag()
2150 QSize aspectRatio; 2138 QSize aspectRatio;
2151 2139
2152 GstPad *pad = gst_element_get_static_pad(m_videoIdentity, "src"); 2140 GstPad *pad = gst_element_get_static_pad(m_videoIdentity, "src");
@@ -2158,7 +2146,7 @@ index 87b71d7..03185a2 100644
2158 2146
2159 if (caps) { 2147 if (caps) {
2160 const GstStructure *structure = gst_caps_get_structure(caps, 0); 2148 const GstStructure *structure = gst_caps_get_structure(caps, 0);
2161@@ -1419,7 +1473,11 @@ void QGstreamerPlayerSession::updateDuration() 2149@@ -1411,7 +1465,11 @@ void QGstreamerPlayerSession::updateDuration()
2162 gint64 gstDuration = 0; 2150 gint64 gstDuration = 0;
2163 int duration = -1; 2151 int duration = -1;
2164 2152
@@ -2170,7 +2158,7 @@ index 87b71d7..03185a2 100644
2170 duration = gstDuration / 1000000; 2158 duration = gstDuration / 1000000;
2171 2159
2172 if (m_duration != duration) { 2160 if (m_duration != duration) {
2173@@ -1475,7 +1533,11 @@ void QGstreamerPlayerSession::playbinNotifySource(GObject *o, GParamSpec *p, gpo 2161@@ -1467,7 +1525,11 @@ void QGstreamerPlayerSession::playbinNotifySource(GObject *o, GParamSpec *p, gpo
2174 2162
2175 // The rest 2163 // The rest
2176 if (g_object_class_find_property(G_OBJECT_GET_CLASS(source), "extra-headers") != 0) { 2164 if (g_object_class_find_property(G_OBJECT_GET_CLASS(source), "extra-headers") != 0) {
@@ -2182,7 +2170,7 @@ index 87b71d7..03185a2 100644
2182 2170
2183 foreach (const QByteArray &rawHeader, self->m_request.rawHeaderList()) { 2171 foreach (const QByteArray &rawHeader, self->m_request.rawHeaderList()) {
2184 if (rawHeader == userAgentString) // Filter User-Agent 2172 if (rawHeader == userAgentString) // Filter User-Agent
2185@@ -1630,7 +1692,11 @@ GstAutoplugSelectResult QGstreamerPlayerSession::handleAutoplugSelect(GstBin *bi 2173@@ -1623,7 +1685,11 @@ GstAutoplugSelectResult QGstreamerPlayerSession::handleAutoplugSelect(GstBin *bi
2186 const gchar *factoryName = gst_plugin_feature_get_name(GST_PLUGIN_FEATURE(factory)); 2174 const gchar *factoryName = gst_plugin_feature_get_name(GST_PLUGIN_FEATURE(factory));
2187 if (g_str_has_prefix(factoryName, "vaapi")) { 2175 if (g_str_has_prefix(factoryName, "vaapi")) {
2188 GstPad *sinkPad = gst_element_get_static_pad(session->m_videoSink, "sink"); 2176 GstPad *sinkPad = gst_element_get_static_pad(session->m_videoSink, "sink");
@@ -2194,7 +2182,7 @@ index 87b71d7..03185a2 100644
2194 2182
2195 #if (GST_VERSION_MAJOR == 0) && ((GST_VERSION_MINOR < 10) || (GST_VERSION_MICRO < 33)) 2183 #if (GST_VERSION_MAJOR == 0) && ((GST_VERSION_MINOR < 10) || (GST_VERSION_MICRO < 33))
2196 if (!factory_can_src_any_caps(factory, sinkCaps)) 2184 if (!factory_can_src_any_caps(factory, sinkCaps))
2197@@ -1659,14 +1725,19 @@ void QGstreamerPlayerSession::handleElementAdded(GstBin *bin, GstElement *elemen 2185@@ -1652,14 +1718,19 @@ void QGstreamerPlayerSession::handleElementAdded(GstBin *bin, GstElement *elemen
2198 // Disable on-disk buffering. 2186 // Disable on-disk buffering.
2199 g_object_set(G_OBJECT(element), "temp-template", NULL, NULL); 2187 g_object_set(G_OBJECT(element), "temp-template", NULL, NULL);
2200 } else if (g_str_has_prefix(elementName, "uridecodebin") || 2188 } else if (g_str_has_prefix(elementName, "uridecodebin") ||
@@ -2216,7 +2204,7 @@ index 87b71d7..03185a2 100644
2216 } 2204 }
2217 2205
2218 //listen for queue2 element added to uridecodebin/decodebin2 as well. 2206 //listen for queue2 element added to uridecodebin/decodebin2 as well.
2219@@ -1734,7 +1805,27 @@ void QGstreamerPlayerSession::removeProbe(QGstreamerVideoProbeControl* probe) 2207@@ -1727,7 +1798,27 @@ void QGstreamerPlayerSession::removeProbe(QGstreamerVideoProbeControl* probe)
2220 // Assume user releases any outstanding references to video frames. 2208 // Assume user releases any outstanding references to video frames.
2221 } 2209 }
2222 2210
@@ -2245,7 +2233,7 @@ index 87b71d7..03185a2 100644
2245 { 2233 {
2246 Q_UNUSED(pad); 2234 Q_UNUSED(pad);
2247 2235
2248@@ -1749,6 +1840,7 @@ gboolean QGstreamerPlayerSession::padVideoBufferProbe(GstPad *pad, GstBuffer *bu 2236@@ -1742,6 +1833,7 @@ gboolean QGstreamerPlayerSession::padVideoBufferProbe(GstPad *pad, GstBuffer *bu
2249 2237
2250 return TRUE; 2238 return TRUE;
2251 } 2239 }
@@ -2253,7 +2241,7 @@ index 87b71d7..03185a2 100644
2253 2241
2254 void QGstreamerPlayerSession::addProbe(QGstreamerAudioProbeControl* probe) 2242 void QGstreamerPlayerSession::addProbe(QGstreamerAudioProbeControl* probe)
2255 { 2243 {
2256@@ -1766,6 +1858,24 @@ void QGstreamerPlayerSession::removeProbe(QGstreamerAudioProbeControl* probe) 2244@@ -1759,6 +1851,24 @@ void QGstreamerPlayerSession::removeProbe(QGstreamerAudioProbeControl* probe)
2257 m_audioProbes.removeOne(probe); 2245 m_audioProbes.removeOne(probe);
2258 } 2246 }
2259 2247
@@ -2278,7 +2266,7 @@ index 87b71d7..03185a2 100644
2278 gboolean QGstreamerPlayerSession::padAudioBufferProbe(GstPad *pad, GstBuffer *buffer, gpointer user_data) 2266 gboolean QGstreamerPlayerSession::padAudioBufferProbe(GstPad *pad, GstBuffer *buffer, gpointer user_data)
2279 { 2267 {
2280 Q_UNUSED(pad); 2268 Q_UNUSED(pad);
2281@@ -1781,7 +1891,7 @@ gboolean QGstreamerPlayerSession::padAudioBufferProbe(GstPad *pad, GstBuffer *bu 2269@@ -1774,7 +1884,7 @@ gboolean QGstreamerPlayerSession::padAudioBufferProbe(GstPad *pad, GstBuffer *bu
2282 2270
2283 return TRUE; 2271 return TRUE;
2284 } 2272 }
@@ -2287,7 +2275,7 @@ index 87b71d7..03185a2 100644
2287 // This function is similar to stop(), 2275 // This function is similar to stop(),
2288 // but does not set m_everPlayed, m_lastPosition, 2276 // but does not set m_everPlayed, m_lastPosition,
2289 // and setSeekable() values. 2277 // and setSeekable() values.
2290@@ -1814,7 +1924,11 @@ void QGstreamerPlayerSession::removeVideoBufferProbe() 2278@@ -1807,7 +1917,11 @@ void QGstreamerPlayerSession::removeVideoBufferProbe()
2291 2279
2292 GstPad *pad = gst_element_get_static_pad(m_videoSink, "sink"); 2280 GstPad *pad = gst_element_get_static_pad(m_videoSink, "sink");
2293 if (pad) { 2281 if (pad) {
@@ -2299,7 +2287,7 @@ index 87b71d7..03185a2 100644
2299 gst_object_unref(GST_OBJECT(pad)); 2287 gst_object_unref(GST_OBJECT(pad));
2300 } 2288 }
2301 2289
2302@@ -1829,7 +1943,11 @@ void QGstreamerPlayerSession::addVideoBufferProbe() 2290@@ -1822,7 +1936,11 @@ void QGstreamerPlayerSession::addVideoBufferProbe()
2303 2291
2304 GstPad *pad = gst_element_get_static_pad(m_videoSink, "sink"); 2292 GstPad *pad = gst_element_get_static_pad(m_videoSink, "sink");
2305 if (pad) { 2293 if (pad) {
@@ -2311,7 +2299,7 @@ index 87b71d7..03185a2 100644
2311 gst_object_unref(GST_OBJECT(pad)); 2299 gst_object_unref(GST_OBJECT(pad));
2312 } 2300 }
2313 } 2301 }
2314@@ -1846,7 +1964,11 @@ void QGstreamerPlayerSession::removeAudioBufferProbe() 2302@@ -1839,7 +1957,11 @@ void QGstreamerPlayerSession::removeAudioBufferProbe()
2315 2303
2316 GstPad *pad = gst_element_get_static_pad(m_audioSink, "sink"); 2304 GstPad *pad = gst_element_get_static_pad(m_audioSink, "sink");
2317 if (pad) { 2305 if (pad) {
@@ -2323,7 +2311,7 @@ index 87b71d7..03185a2 100644
2323 gst_object_unref(GST_OBJECT(pad)); 2311 gst_object_unref(GST_OBJECT(pad));
2324 } 2312 }
2325 2313
2326@@ -1861,7 +1983,11 @@ void QGstreamerPlayerSession::addAudioBufferProbe() 2314@@ -1854,7 +1976,11 @@ void QGstreamerPlayerSession::addAudioBufferProbe()
2327 2315
2328 GstPad *pad = gst_element_get_static_pad(m_audioSink, "sink"); 2316 GstPad *pad = gst_element_get_static_pad(m_audioSink, "sink");
2329 if (pad) { 2317 if (pad) {
@@ -2335,7 +2323,7 @@ index 87b71d7..03185a2 100644
2335 gst_object_unref(GST_OBJECT(pad)); 2323 gst_object_unref(GST_OBJECT(pad));
2336 } 2324 }
2337 } 2325 }
2338@@ -1894,7 +2020,7 @@ void QGstreamerPlayerSession::playlistTypeFindFunction(GstTypeFind *find, gpoint 2326@@ -1887,7 +2013,7 @@ void QGstreamerPlayerSession::playlistTypeFindFunction(GstTypeFind *find, gpoint
2339 length = qMin(length, guint64(1024)); 2327 length = qMin(length, guint64(1024));
2340 2328
2341 while (length > 0) { 2329 while (length > 0) {
@@ -2345,10 +2333,10 @@ index 87b71d7..03185a2 100644
2345 session->m_isPlaylist = (QPlaylistFileParser::findPlaylistType(QString::fromUtf8(uri), 0, data, length) != QPlaylistFileParser::UNKNOWN); 2333 session->m_isPlaylist = (QPlaylistFileParser::findPlaylistType(QString::fromUtf8(uri), 0, data, length) != QPlaylistFileParser::UNKNOWN);
2346 return; 2334 return;
2347diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.h b/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.h 2335diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.h b/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.h
2348index 23e7031..707779b 100644 2336index f2e760a..50bda3d 100644
2349--- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.h 2337--- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.h
2350+++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.h 2338+++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.h
2351@@ -127,11 +127,19 @@ public: 2339@@ -119,11 +119,19 @@ public:
2352 2340
2353 void addProbe(QGstreamerVideoProbeControl* probe); 2341 void addProbe(QGstreamerVideoProbeControl* probe);
2354 void removeProbe(QGstreamerVideoProbeControl* probe); 2342 void removeProbe(QGstreamerVideoProbeControl* probe);
@@ -2368,7 +2356,7 @@ index 23e7031..707779b 100644
2368 2356
2369 void endOfMediaReset(); 2357 void endOfMediaReset();
2370 2358
2371@@ -260,6 +268,7 @@ private: 2359@@ -252,6 +260,7 @@ private:
2372 bool m_isLiveSource; 2360 bool m_isLiveSource;
2373 2361
2374 bool m_isPlaylist; 2362 bool m_isPlaylist;
@@ -2377,5 +2365,5 @@ index 23e7031..707779b 100644
2377 2365
2378 QT_END_NAMESPACE 2366 QT_END_NAMESPACE
2379-- 2367--
23802.1.1 23682.1.3
2381 2369
diff --git a/recipes-qt/qt5/qtmultimedia/0002-qtmultimedia.pro-Respect-OE_GSTREAMER_ENABLED-OE_GST.patch b/recipes-qt/qt5/qtmultimedia/0002-qtmultimedia.pro-Respect-OE_GSTREAMER_ENABLED-OE_GST.patch
index 23c400ca..1654e00d 100644
--- a/recipes-qt/qt5/qtmultimedia/0002-qtmultimedia.pro-Respect-OE_GSTREAMER_ENABLED-OE_GST.patch
+++ b/recipes-qt/qt5/qtmultimedia/0002-qtmultimedia.pro-Respect-OE_GSTREAMER_ENABLED-OE_GST.patch
@@ -1,4 +1,4 @@
1From 5b6ff7fc6a102c9dc00ba947efbe000f34addbd5 Mon Sep 17 00:00:00 2001 1From b5c058f62a79efa213e4492ac7209b3a92f45e3b Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com> 2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Sat, 5 Jul 2014 09:10:02 +0200 3Date: Sat, 5 Jul 2014 09:10:02 +0200
4Subject: [PATCH 2/2] qtmultimedia.pro: Respect 4Subject: [PATCH 2/2] qtmultimedia.pro: Respect
@@ -49,5 +49,5 @@ index 109dd81..54b67a8 100644
49 cache(GST_VERSION, set, gstver); 49 cache(GST_VERSION, set, gstver);
50 # Force a re-run of the test 50 # Force a re-run of the test
51-- 51--
522.1.1 522.1.3
53 53