summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <slomo@circular-chaos.org>2008-02-27 15:23:51 +0000
committerSebastian Dröge <slomo@circular-chaos.org>2008-02-27 15:23:51 +0000
commit71f6199a9036319b5946ab776f38a2c170862012 (patch)
tree691f38c3e3923114b7f739d721c17cd3f6b40546
parentb6529e9d6084e42329a9a487d9237bb6442dca41 (diff)
downloadgstreamer-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--ChangeLog8
-rw-r--r--ext/mad/gstmad.c5
-rw-r--r--gst/mpegaudioparse/gstmpegaudioparse.c10
3 files changed, 15 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 4ab07767..f7a1b06d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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);
}