} else {
stop = segment->stop;
+ if (stop == -1 && segment->duration != -1)
+ stop = segment->start + segment->duration;
+
/* cannot continue if no stop position set or invalid offset */
g_return_val_if_fail (stop != -1, 0);
g_return_val_if_fail (stop >= offset, 0);