diff options
author | Sebastian Dröge <slomo@circular-chaos.org> | 2008-02-27 15:23:51 +0000 |
---|---|---|
committer | Sebastian Dröge <slomo@circular-chaos.org> | 2008-02-27 15:23:51 +0000 |
commit | 71f6199a9036319b5946ab776f38a2c170862012 (patch) | |
tree | 691f38c3e3923114b7f739d721c17cd3f6b40546 | |
parent | b6529e9d6084e42329a9a487d9237bb6442dca41 (diff) | |
download | gstreamer-plugins-ugly-71f6199a9036319b5946ab776f38a2c170862012.tar.gz |
Push EOS, FLUSH_STOP and NEWSEGMENT immediately instead of dropping and leaking them.
Original commit message from CVS:
* ext/mad/gstmad.c: (gst_mad_sink_event):
* gst/mpegaudioparse/gstmpegaudioparse.c:
(gst_mp3parse_sink_event):
Push EOS, FLUSH_STOP and NEWSEGMENT immediately instead
of dropping and leaking them.
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | ext/mad/gstmad.c | 5 | ||||
-rw-r--r-- | gst/mpegaudioparse/gstmpegaudioparse.c | 10 |
3 files changed, 15 insertions, 8 deletions
@@ -1,5 +1,13 @@ 2008-02-27 Sebastian Dröge <slomo@circular-chaos.org> + * ext/mad/gstmad.c: (gst_mad_sink_event): + * gst/mpegaudioparse/gstmpegaudioparse.c: + (gst_mp3parse_sink_event): + Push EOS, FLUSH_STOP and NEWSEGMENT immediately instead + of dropping and leaking them. + +2008-02-27 Sebastian Dröge <slomo@circular-chaos.org> + * ext/mad/gstmad.c: (gst_mad_dispose), (gst_mad_sink_event), (gst_mad_chain): * ext/mad/gstmad.h: diff --git a/ext/mad/gstmad.c b/ext/mad/gstmad.c index 7dfa6f59..a49ff1dd 100644 --- a/ext/mad/gstmad.c +++ b/ext/mad/gstmad.c @@ -993,9 +993,8 @@ gst_mad_sink_event (GstPad * pad, GstEvent * event) break; default: if (mad->restart) { - /* Cache all events except EOS if we still have to send a NEWSEGMENT */ - if (GST_EVENT_TYPE (event) != GST_EVENT_EOS) - mad->pending_events = g_list_append (mad->pending_events, event); + /* Cache all other events if we still have to send a NEWSEGMENT */ + mad->pending_events = g_list_append (mad->pending_events, event); result = TRUE; } else { result = gst_pad_event_default (pad, event); diff --git a/gst/mpegaudioparse/gstmpegaudioparse.c b/gst/mpegaudioparse/gstmpegaudioparse.c index 5657aaa2..80d51221 100644 --- a/gst/mpegaudioparse/gstmpegaudioparse.c +++ b/gst/mpegaudioparse/gstmpegaudioparse.c @@ -541,11 +541,11 @@ gst_mp3parse_sink_event (GstPad * pad, GstEvent * event) break; default: GST_PAD_STREAM_LOCK (pad); - if (mp3parse->pending_segment) { - /* Cache all events except EOS if we have a pending segment */ - if (GST_EVENT_TYPE (event) != GST_EVENT_EOS) - mp3parse->pending_events = - g_list_append (mp3parse->pending_events, event); + /* Cache all events except EOS and the ones above if we have + * a pending segment */ + if (mp3parse->pending_segment && GST_EVENT_TYPE (event) != GST_EVENT_EOS) { + mp3parse->pending_events = + g_list_append (mp3parse->pending_events, event); } else { res = gst_pad_push_event (mp3parse->srcpad, event); } |