From e70ebfd2ed8d522478f04ab823b527b48ed24671 Mon Sep 17 00:00:00 2001 From: Dmytro Poplavskiy Date: Tue, 2 Aug 2011 14:33:38 +1000 Subject: Gstreamer media backend cleanup. Moved controls specific bus/sync messages handling from player/camera/capture session to corresponding controls. Reviewed-by: Michael Goddard Change-Id: Ieb67976ed335b0ef1cde87dc60e8ad8da3409526 Reviewed-on: http://codereview.qt.nokia.com/2535 Reviewed-by: Qt Sanity Bot Reviewed-by: Michael Goddard --- src/plugins/gstreamer/qgstreamervideowindow.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'src/plugins/gstreamer/qgstreamervideowindow.cpp') 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 -- cgit v1.2.3