diff options
author | Michael Goddard <michael.goddard@nokia.com> | 2011-08-30 14:42:21 +1000 |
---|---|---|
committer | Michael Goddard <michael.goddard@nokia.com> | 2011-08-30 15:34:30 +1000 |
commit | 3bf236cc23c2e67e1b5cbc01e05e61263528fc10 (patch) | |
tree | b6b547e7863a929a2638528cddfd52c0fff6f8d9 /src/plugins/gstreamer/qgstreamervideowindow.cpp | |
parent | 4ddffcdae313bf494ac12d098743af341add77e3 (diff) | |
parent | 47a5dd4371bfc6774790cc900e287f5def12406a (diff) |
Merge branch 'camera' of git://scm.dev.nokia.troll.no/qt/qtmultimediakit
Change-Id: Iec6f96e3713257d25f7b1e06c6da9c153b23800b
Diffstat (limited to 'src/plugins/gstreamer/qgstreamervideowindow.cpp')
-rw-r--r-- | src/plugins/gstreamer/qgstreamervideowindow.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/plugins/gstreamer/qgstreamervideowindow.cpp b/src/plugins/gstreamer/qgstreamervideowindow.cpp index 0f92d76a9..d8d822269 100644 --- a/src/plugins/gstreamer/qgstreamervideowindow.cpp +++ b/src/plugins/gstreamer/qgstreamervideowindow.cpp @@ -115,14 +115,23 @@ void QGstreamerVideoWindow::setWinId(WId id) emit readyChanged(false); } -void QGstreamerVideoWindow::precessNewStream() +bool QGstreamerVideoWindow::processSyncMessage(const QGstreamerMessage &message) { - if (m_videoSink && GST_IS_X_OVERLAY(m_videoSink)) { + GstMessage* gm = message.rawMessage(); + + if ((GST_MESSAGE_TYPE(gm) == GST_MESSAGE_ELEMENT) && + gst_structure_has_name(gm->structure, "prepare-xwindow-id") && + m_videoSink && GST_IS_X_OVERLAY(m_videoSink)) { + gst_x_overlay_set_xwindow_id(GST_X_OVERLAY(m_videoSink), m_windowId); GstPad *pad = gst_element_get_static_pad(m_videoSink,"sink"); m_bufferProbeId = gst_pad_add_buffer_probe(pad, G_CALLBACK(padBufferProbe), this); + + return true; } + + return false; } QRect QGstreamerVideoWindow::displayRect() const |