From: Frederik Gladhorn Date: Tue, 24 Feb 2015 16:38:46 +0000 (+0100) Subject: Merge remote-tracking branch 'origin/5.4' into 5.5 X-Git-Tag: v5.5.90+alpha1~30^2~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=39bb642cb297dcd95273ba0dba417beec03e686c;p=platform%2Fupstream%2Fqtmultimedia.git Merge remote-tracking branch 'origin/5.4' into 5.5 Conflicts: qtmultimedia.pro src/gsttools/qgstreamervideowidget.cpp src/plugins/gstreamer/camerabin/camerabinservice.cpp Change-Id: I883f20dc17924ab42514a1aa00d16675a0f13d99 --- 39bb642cb297dcd95273ba0dba417beec03e686c diff --cc qtmultimedia.pro index 489589d,cf97e64..21d72d0 --- a/qtmultimedia.pro +++ b/qtmultimedia.pro @@@ -15,18 -15,9 +15,18 @@@ win32 } else:qnx { qtCompileTest(mmrenderer) } else { - qtCompileTest(alsa) - qtCompileTest(pulseaudio) + contains(QT_CONFIG, alsa):qtCompileTest(alsa) + contains(QT_CONFIG, pulseaudio):qtCompileTest(pulseaudio) - qtCompileTest(gstreamer) { + + isEmpty(GST_VERSION) { + contains(QT_CONFIG, gstreamer-0.10) { + GST_VERSION = 0.10 + } else: contains(QT_CONFIG, gstreamer-1.0) { + GST_VERSION = 1.0 + } + } + cache(GST_VERSION, set) + !isEmpty(GST_VERSION):qtCompileTest(gstreamer) { qtCompileTest(gstreamer_photography) qtCompileTest(gstreamer_encodingprofiles) qtCompileTest(gstreamer_appsrc) diff --cc src/plugins/gstreamer/camerabin/camerabinservice.cpp index 706907e,e4aa594..25fd448 --- a/src/plugins/gstreamer/camerabin/camerabinservice.cpp +++ b/src/plugins/gstreamer/camerabin/camerabinservice.cpp @@@ -124,8 -121,23 +124,22 @@@ CameraBinService::CameraBinService(GstE #else m_videoWindow = new QGstreamerVideoWindow(this); #endif + // If the GStreamer sink element is not available (xvimagesink), don't provide + // the video window control since it won't work anyway. + if (!m_videoWindow->videoSink()) { + delete m_videoWindow; + m_videoWindow = 0; + } - #if defined(HAVE_WIDGETS) m_videoWidgetControl = new QGstreamerVideoWidgetControl(this); + + // If the GStreamer sink element is not available (xvimagesink or ximagesink), don't provide + // the video widget control since it won't work anyway. + // QVideoWidget will fall back to QVideoRendererControl in that case. + if (!m_videoWidgetControl->videoSink()) { + delete m_videoWidgetControl; + m_videoWidgetControl = 0; + } #endif m_audioInputSelector = new QGstreamerAudioInputSelector(this); diff --cc src/plugins/gstreamer/mediacapture/qgstreamercaptureservice.h index 2cd3d3d,e5166d1..23978ee --- a/src/plugins/gstreamer/mediacapture/qgstreamercaptureservice.h +++ b/src/plugins/gstreamer/mediacapture/qgstreamercaptureservice.h @@@ -82,13 -82,11 +83,13 @@@ private QMediaControl *m_videoOutput; QGstreamerVideoRenderer *m_videoRenderer; - QMediaControl *m_videoWindow; + QGstreamerVideoWindow *m_videoWindow; #if defined(HAVE_WIDGETS) - QMediaControl *m_videoWidgetControl; + QGstreamerVideoWidgetControl *m_videoWidgetControl; #endif QGstreamerImageCaptureControl *m_imageCaptureControl; + + QGstreamerAudioProbeControl *m_audioProbeControl; }; QT_END_NAMESPACE diff --cc src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.h index 15ea6c2,0c5b406..943107e --- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.h +++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.h @@@ -50,10 -50,9 +50,11 @@@ class QGstreamerPlayerSession class QGstreamerMetaDataProvider; class QGstreamerStreamsControl; class QGstreamerVideoRenderer; + class QGstreamerVideoWindow; class QGstreamerVideoWidgetControl; class QGStreamerAvailabilityControl; +class QGstreamerAudioProbeControl; +class QGstreamerVideoProbeControl; class QGstreamerPlayerService : public QMediaService { @@@ -72,14 -71,11 +73,14 @@@ private QGstreamerStreamsControl *m_streamsControl; QGStreamerAvailabilityControl *m_availabilityControl; + QGstreamerAudioProbeControl *m_audioProbeControl; + QGstreamerVideoProbeControl *m_videoProbeControl; + QMediaControl *m_videoOutput; QMediaControl *m_videoRenderer; - QMediaControl *m_videoWindow; + QGstreamerVideoWindow *m_videoWindow; #if defined(HAVE_WIDGETS) - QMediaControl *m_videoWidget; + QGstreamerVideoWidgetControl *m_videoWidget; #endif void increaseVideoRef();