+2005-11-11 Michael Smith <msmith@fluendo.com>
+
+ * gst/base/gstbasesink.c: (gst_base_sink_do_sync):
+ Don't sync on buffers that fall partially outside our current
+ segment. Prevents an assertion failure/abort playing some files.
+
2005-11-10 Andy Wingo <wingo@pobox.com>
* check/gst/gstbin.c (test_message_state_changed_children): Style
stream_start = (gint64) start - basesink->segment_start;
stream_end = (gint64) end - basesink->segment_start;
+
+ if (stream_start < 0) {
+ GST_DEBUG_OBJECT (basesink, "stream_start negative, invalid");
+ goto done;
+ }
} else {
stream_start = (gint64) start;
stream_end = (gint64) end;
}
+
/* correct for rate */
if (basesink->segment_rate != 0.0) {
stream_start /= ABS (basesink->segment_rate);
stream_start = (gint64) start - basesink->segment_start;
stream_end = (gint64) end - basesink->segment_start;
+
+ if (stream_start < 0) {
+ GST_DEBUG_OBJECT (basesink, "stream_start negative, invalid");
+ goto done;
+ }
} else {
stream_start = (gint64) start;
stream_end = (gint64) end;
}
+
/* correct for rate */
if (basesink->segment_rate != 0.0) {
stream_start /= ABS (basesink->segment_rate);