diff options
Diffstat (limited to 'gst-libs')
-rw-r--r-- | gst-libs/gst/play/play.c | 10 | ||||
-rw-r--r-- | gst-libs/gst/riff/riff-read.c | 2 |
2 files changed, 12 insertions, 0 deletions
diff --git a/gst-libs/gst/play/play.c b/gst-libs/gst/play/play.c index 0fac17bf..dfa73fd9 100644 --- a/gst-libs/gst/play/play.c +++ b/gst-libs/gst/play/play.c @@ -457,6 +457,16 @@ gst_play_state_change (GstElement *element, GstElementState old, (GSourceFunc) gst_play_get_length_callback, play); } + else { + if (play->priv->tick_id) { + g_source_remove (play->priv->tick_id); + play->priv->tick_id = 0; + } + if (play->priv->length_id) { + g_source_remove (play->priv->length_id); + play->priv->length_id = 0; + } + } if (GST_ELEMENT_CLASS (parent_class)->state_change) GST_ELEMENT_CLASS (parent_class)->state_change (element, old, state); diff --git a/gst-libs/gst/riff/riff-read.c b/gst-libs/gst/riff/riff-read.c index 19d69981..40fc4005 100644 --- a/gst-libs/gst/riff/riff-read.c +++ b/gst-libs/gst/riff/riff-read.c @@ -260,6 +260,8 @@ gst_riff_read_seek (GstRiffRead *riff, break; } else if (GST_EVENT_TYPE (event) != GST_EVENT_DISCONTINUOUS) { gst_pad_event_default (riff->sinkpad, event); + if (GST_EVENT_TYPE (event) == GST_EVENT_EOS) + return NULL; event = NULL; } } |