diff options
author | JuanZhao <juan.j.zhao@intel.com> | 2010-10-20 08:46:51 +0800 |
---|---|---|
committer | Damien Lespiau <damien.lespiau@intel.com> | 2010-10-20 20:02:51 +0100 |
commit | eeca041e1ac9272705b609ff319390fe7e2e0026 (patch) | |
tree | 26af53530231146b1fb168a250a1f9b333db50eb | |
parent | 7a9b09e5ef1990021f62bd66ef972a6476721671 (diff) |
video-texture: Set the pipeline line state to NULL on error
When playback has finished (an EOS message has been received on the bus)
or an error has occured (an ERROR message has been received on the bus),
playbin should be set back to READY or NULL state.
-rw-r--r-- | clutter-gst/clutter-gst-video-texture.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/clutter-gst/clutter-gst-video-texture.c b/clutter-gst/clutter-gst-video-texture.c index cd4e044..5778099 100644 --- a/clutter-gst/clutter-gst-video-texture.c +++ b/clutter-gst/clutter-gst-video-texture.c @@ -1082,11 +1082,14 @@ bus_message_error_cb (GstBus *bus, ClutterGstVideoTexture *video_texture) { GError *error = NULL; + ClutterGstVideoTexturePrivate *priv = video_texture->priv; gst_message_parse_error (message, &error, NULL); g_signal_emit_by_name (video_texture, "error", error); + gst_element_set_state(priv->pipeline, GST_STATE_NULL); + g_error_free (error); } @@ -1095,11 +1098,14 @@ bus_message_eos_cb (GstBus *bus, GstMessage *message, ClutterGstVideoTexture *video_texture) { + ClutterGstVideoTexturePrivate *priv = video_texture->priv; g_object_notify (G_OBJECT (video_texture), "progress"); CLUTTER_GST_NOTE (MEDIA, "EOS"); g_signal_emit_by_name (video_texture, "eos"); + + gst_element_set_state(priv->pipeline, GST_STATE_NULL); } static void |