summaryrefslogtreecommitdiff
path: root/gst/playback/gstplaysink.c
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@collabora.co.uk>2009-11-17 16:39:09 +0100
committerWim Taymans <wim.taymans@collabora.co.uk>2009-11-17 16:39:09 +0100
commitc4d7dbce1a032305005620b160be7606e8ad84d3 (patch)
treef0babb4e281f87b02d90b4ca706fef7c34232034 /gst/playback/gstplaysink.c
parent65773b58dd62022ef632403ce515a80538aab254 (diff)
playsink: make sure we always go to PAUSED async
Set the need_async_start flag before going to PAUSED so that we always post the ASYNC_START message, even after reusing playsink.
Diffstat (limited to 'gst/playback/gstplaysink.c')
-rw-r--r--gst/playback/gstplaysink.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gst/playback/gstplaysink.c b/gst/playback/gstplaysink.c
index c72b9fefa..20a84400c 100644
--- a/gst/playback/gstplaysink.c
+++ b/gst/playback/gstplaysink.c
@@ -329,7 +329,6 @@ gst_play_sink_init (GstPlaySink * playsink)
playsink->flags = DEFAULT_FLAGS;
g_static_rec_mutex_init (&playsink->lock);
- playsink->need_async_start = TRUE;
GST_OBJECT_FLAG_SET (playsink, GST_ELEMENT_IS_SINK);
}
@@ -842,8 +841,10 @@ do_async_start (GstPlaySink * playsink)
{
GstMessage *message;
- if (!playsink->need_async_start)
+ if (!playsink->need_async_start) {
+ GST_INFO_OBJECT (playsink, "no async_start needed");
return;
+ }
playsink->async_pending = TRUE;
@@ -2441,6 +2442,7 @@ gst_play_sink_change_state (GstElement * element, GstStateChange transition)
switch (transition) {
case GST_STATE_CHANGE_READY_TO_PAUSED:
+ playsink->need_async_start = TRUE;
/* we want to go async to PAUSED until we managed to configure and add the
* sinks */
do_async_start (playsink);