summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--ext/faad/gstfaad.c6
2 files changed, 8 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index c9c45174..6deea0a8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-06-02 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * ext/faad/gstfaad.c: (gst_faad_sink_event):
+ Always drain before activating the new segment.
+
2008-06-02 Sebastian Dröge <slomo@circular-chaos.org>
* gst/interleave/interleave.c: (gst_interleave_pad_get_type),
diff --git a/ext/faad/gstfaad.c b/ext/faad/gstfaad.c
index 178ff642..f1ba39f6 100644
--- a/ext/faad/gstfaad.c
+++ b/ext/faad/gstfaad.c
@@ -896,6 +896,9 @@ gst_faad_sink_event (GstPad * pad, GstEvent * event)
gst_event_parse_new_segment (event, &is_update, &rate, &fmt, &start,
&end, &base);
+ /* drain queued buffers before we activate the new segment */
+ gst_faad_drain (faad);
+
if (fmt == GST_FORMAT_TIME) {
GST_DEBUG ("Got NEWSEGMENT event in GST_FORMAT_TIME, passing on (%"
GST_TIME_FORMAT " - %" GST_TIME_FORMAT ")", GST_TIME_ARGS (start),
@@ -921,9 +924,6 @@ gst_faad_sink_event (GstPad * pad, GstEvent * event)
}
gst_event_unref (event);
- /* drain queued buffers before we activate the new segment */
- gst_faad_drain (faad);
-
event = gst_event_new_new_segment (is_update, rate,
GST_FORMAT_TIME, new_start, new_end, new_start);