summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew den Exter <andrew.den-exter@nokia.com>2010-10-06 12:02:12 +1000
committerAndrew den Exter <andrew.den-exter@nokia.com>2010-10-06 12:41:36 +1000
commit43afae646c920d04584bdc2946f7119da4893859 (patch)
tree554441ab1b1111e27f77e48d081ba9022ca6759b
parent806002dbb1323397b37db8d29a04e94bb097099d (diff)
QVideoWidget::sizeHint() is only updated when media is loaded.
Update the size hint when the the state of the video sink changes instead of when the entire pipeline's state changes. Task-number: QTMOBILITY-548 Reviewed-by: Dmytro Poplavskiy
-rw-r--r--plugins/multimedia/gstreamer/mediaplayer/qgstreamerplayersession.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/plugins/multimedia/gstreamer/mediaplayer/qgstreamerplayersession.cpp b/plugins/multimedia/gstreamer/mediaplayer/qgstreamerplayersession.cpp
index 01f8b15639..06828fe19a 100644
--- a/plugins/multimedia/gstreamer/mediaplayer/qgstreamerplayersession.cpp
+++ b/plugins/multimedia/gstreamer/mediaplayer/qgstreamerplayersession.cpp
@@ -710,13 +710,7 @@ void QGstreamerPlayerSession::busMessage(const QGstreamerMessage &message)
m_playbackRate = 1.0;
setPlaybackRate(rate);
}
-
- if (m_renderer)
- m_renderer->precessNewStream();
-
}
-
-
break;
case GST_STATE_PLAYING:
if (oldState == GST_STATE_PAUSED)
@@ -804,6 +798,16 @@ void QGstreamerPlayerSession::busMessage(const QGstreamerMessage &message)
case GST_MESSAGE_ANY:
break;
}
+ } else if (m_videoSink
+ && m_renderer
+ && GST_MESSAGE_SRC(gm) == GST_OBJECT_CAST(m_videoSink)
+ && GST_MESSAGE_TYPE(gm) == GST_MESSAGE_STATE_CHANGED) {
+ GstState oldState;
+ GstState newState;
+ gst_message_parse_state_changed(gm, &oldState, &newState, 0);
+
+ if (oldState == GST_STATE_READY && newState == GST_STATE_PAUSED)
+ m_renderer->precessNewStream();
}
}
}