deinterlace: Flush QoS and history before applying segment

When handling newsegment, flush out the buffer history in the
existing segment, not the new one. Fixes playback in some DVD
cases.

Partially fixes #633294
This commit is contained in:
Jan Schmidt 2010-11-12 23:59:06 +11:00 committed by Tim-Philipp Müller
parent 5adbc1e4c0
commit 89a24bd36f

View file

@ -1492,6 +1492,10 @@ gst_deinterlace_sink_event (GstPad * pad, GstEvent * event)
gst_event_parse_new_segment_full (event, &is_update, &rate, &applied_rate,
&fmt, &start, &end, &base);
gst_deinterlace_reset_qos (self);
gst_deinterlace_reset_history (self, FALSE);
if (fmt == GST_FORMAT_TIME) {
GST_DEBUG_OBJECT (pad,
"Got NEWSEGMENT event in GST_FORMAT_TIME, passing on (%"
@ -1503,8 +1507,6 @@ gst_deinterlace_sink_event (GstPad * pad, GstEvent * event)
gst_segment_init (&self->segment, GST_FORMAT_UNDEFINED);
}
gst_deinterlace_reset_qos (self);
gst_deinterlace_reset_history (self, FALSE);
res = gst_pad_push_event (self->srcpad, event);
break;
}