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
This commit is contained in:
@@ -124,8 +124,22 @@ CameraBinService::CameraBinService(GstElementFactory *sourceFactory, QObject *pa
|
||||
#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);
|
||||
|
||||
@@ -48,6 +48,7 @@ class CameraBinControl;
|
||||
class QGstreamerMessage;
|
||||
class QGstreamerBusHelper;
|
||||
class QGstreamerVideoRenderer;
|
||||
class QGstreamerVideoWindow;
|
||||
class QGstreamerVideoWidgetControl;
|
||||
class QGstreamerElementFactory;
|
||||
class CameraBinMetaData;
|
||||
@@ -81,7 +82,7 @@ private:
|
||||
QMediaControl *m_videoOutput;
|
||||
|
||||
QMediaControl *m_videoRenderer;
|
||||
QMediaControl *m_videoWindow;
|
||||
QGstreamerVideoWindow *m_videoWindow;
|
||||
#if defined(HAVE_WIDGETS)
|
||||
QGstreamerVideoWidgetControl *m_videoWidgetControl;
|
||||
#endif
|
||||
|
||||
@@ -100,10 +100,25 @@ QGstreamerCaptureService::QGstreamerCaptureService(const QString &service, QObje
|
||||
m_videoInput->setDevice(m_videoInputDevice->deviceName(m_videoInputDevice->selectedDevice()));
|
||||
|
||||
m_videoRenderer = new QGstreamerVideoRenderer(this);
|
||||
|
||||
m_videoWindow = new QGstreamerVideoWindow(this);
|
||||
// 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_imageCaptureControl = new QGstreamerImageCaptureControl(m_captureSession);
|
||||
}
|
||||
|
||||
@@ -49,6 +49,7 @@ class QGstreamerCameraControl;
|
||||
class QGstreamerMessage;
|
||||
class QGstreamerBusHelper;
|
||||
class QGstreamerVideoRenderer;
|
||||
class QGstreamerVideoWindow;
|
||||
class QGstreamerVideoWidgetControl;
|
||||
class QGstreamerElementFactory;
|
||||
class QGstreamerCaptureMetaDataControl;
|
||||
@@ -82,9 +83,9 @@ 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;
|
||||
|
||||
|
||||
@@ -99,9 +99,23 @@ QGstreamerPlayerService::QGstreamerPlayerService(QObject *parent):
|
||||
#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_videoWidget = 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_videoWidget->videoSink()) {
|
||||
delete m_videoWidget;
|
||||
m_videoWidget = 0;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -50,6 +50,7 @@ class QGstreamerPlayerSession;
|
||||
class QGstreamerMetaDataProvider;
|
||||
class QGstreamerStreamsControl;
|
||||
class QGstreamerVideoRenderer;
|
||||
class QGstreamerVideoWindow;
|
||||
class QGstreamerVideoWidgetControl;
|
||||
class QGStreamerAvailabilityControl;
|
||||
class QGstreamerAudioProbeControl;
|
||||
@@ -77,9 +78,9 @@ private:
|
||||
|
||||
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();
|
||||
|
||||
Reference in New Issue
Block a user