&& self->pattern_count >= telecine_patterns[self->pattern].length) {
self->pattern_count = 0;
self->output_count = 0;
- gst_deinterlace_update_pattern_timestamps (self);
}
}
}
/* loop over all phases */
for (j = 0; j < length; j++) {
/* low-latency mode looks at past buffers, high latency at future buffers */
- const gint state_idx = (self->low_latency ? length : state_count) - 1;
+ const gint state_idx =
+ self->low_latency ? (self->history_count - 1) >> 1 : state_count - 1;
/* loop over history, breaking on differing buffer states */
for (k = 0; k < length && k < state_count; k++) {
const guint8 hist = self->buf_states[state_idx - k].state;
score = k;
pattern = i;
phase = j;
- if (self->low_latency) {
- /* state_idx + 1 is the number of buffers yet to be pushed out
- * so length - state_idx - 1 is the number of old buffers in the
- * pattern */
- phase = (phase + length - state_idx - 1) % length;
- }
}
}
}