ext/a52dec/gsta52dec.c: Drain queued buffers before forwarding the segment event.

Original commit message from CVS:
* ext/a52dec/gsta52dec.c: (gst_a52dec_sink_event):
Drain queued buffers before forwarding the segment event.
This commit is contained in:
Wim Taymans 2008-06-02 15:44:57 +00:00
parent 8a0500bf3b
commit e29dfee55c
2 changed files with 9 additions and 3 deletions

View file

@ -1,3 +1,8 @@
2008-06-02 Wim Taymans <wim.taymans@collabora.co.uk>
* ext/a52dec/gsta52dec.c: (gst_a52dec_sink_event):
Drain queued buffers before forwarding the segment event.
2008-06-02 Wim Taymans <wim.taymans@collabora.co.uk> 2008-06-02 Wim Taymans <wim.taymans@collabora.co.uk>
* ext/a52dec/gsta52dec.c: (clear_queued), (flush_queued), * ext/a52dec/gsta52dec.c: (clear_queued), (flush_queued),

View file

@ -492,6 +492,10 @@ gst_a52dec_sink_event (GstPad * pad, GstEvent * event)
gst_event_parse_new_segment (event, &update, &rate, &fmt, &start, &end, gst_event_parse_new_segment (event, &update, &rate, &fmt, &start, &end,
&pos); &pos);
/* drain queued buffers before activating the segment so that we can clip
* against the old segment first */
gst_a52dec_drain (a52dec);
if (fmt != GST_FORMAT_TIME || !GST_CLOCK_TIME_IS_VALID (start)) { if (fmt != GST_FORMAT_TIME || !GST_CLOCK_TIME_IS_VALID (start)) {
GST_WARNING ("No time in newsegment event %p (format is %s)", GST_WARNING ("No time in newsegment event %p (format is %s)",
event, gst_format_get_name (fmt)); event, gst_format_get_name (fmt));
@ -503,9 +507,6 @@ gst_a52dec_sink_event (GstPad * pad, GstEvent * event)
a52dec->sent_segment = TRUE; a52dec->sent_segment = TRUE;
ret = gst_pad_push_event (a52dec->srcpad, event); ret = gst_pad_push_event (a52dec->srcpad, event);
} }
/* drain queued buffers before activating the segment so that we can clip
* against the old segment first */
gst_a52dec_drain (a52dec);
gst_segment_set_newsegment (&a52dec->segment, update, rate, fmt, start, gst_segment_set_newsegment (&a52dec->segment, update, rate, fmt, start,
end, pos); end, pos);