Skip to content

Commit 3984fa8

Browse files
committed
fix tests
1 parent 49dbf1d commit 3984fa8

File tree

1 file changed

+9
-17
lines changed

1 file changed

+9
-17
lines changed

src/scenechange/mod.rs

+9-17
Original file line numberDiff line numberDiff line change
@@ -136,11 +136,6 @@ impl<T: Pixel> SceneChangeDetector<T> {
136136
return false;
137137
}
138138

139-
// Decrease deque offset if there is no more new frames
140-
if self.deque_offset > frame_set.len() + 1 && self.lookahead_offset > 0 {
141-
self.deque_offset = self.deque_offset - 1;
142-
}
143-
144139
// Initially fill score deque with forward frames
145140
// ititiallization is different depending on frame set length
146141
if self.deque_offset > 0
@@ -164,13 +159,16 @@ impl<T: Pixel> SceneChangeDetector<T> {
164159
self.deque_offset = frame_set.len() - 2;
165160
}
166161
// Running single frame comparison and adding it to deque
162+
// Decrease deque offset if there is no new frames
167163
if frame_set.len() > self.deque_offset + 1 {
168164
self.run_comparison(
169165
frame_set[self.deque_offset].clone(),
170166
frame_set[self.deque_offset + 1].clone(),
171167
input_frameno,
172168
previous_keyframe,
173169
);
170+
} else {
171+
self.deque_offset -= 1;
174172
}
175173

176174
// Adaptive scenecut check
@@ -237,12 +235,6 @@ impl<T: Pixel> SceneChangeDetector<T> {
237235
let mut cloned_deque = self.score_deque.to_vec();
238236
cloned_deque.remove(self.deque_offset);
239237

240-
let max_of_deque: f64 = cloned_deque
241-
.iter()
242-
.cloned()
243-
.map(|(b, _)| b)
244-
.fold(-1. / 0. /* -inf */, f64::max);
245-
246238
let scene_score = self.score_deque[self.deque_offset].0;
247239
let scene_threshold = self.score_deque[self.deque_offset].1;
248240

@@ -261,6 +253,7 @@ impl<T: Pixel> SceneChangeDetector<T> {
261253
if !back_over_tr.is_empty()
262254
&& forward_over_tr.is_empty()
263255
&& back_deque.len() > 1
256+
&& back_over_tr.len() > 1
264257
{
265258
return true;
266259
}
@@ -274,14 +267,13 @@ impl<T: Pixel> SceneChangeDetector<T> {
274267
{
275268
return true;
276269
}
270+
271+
if !back_over_tr.is_empty() || !forward_over_tr.is_empty() {
272+
return false;
273+
}
277274
}
278275

279-
let threshold = if self.fast_mode {
280-
self.threshold as f64 + max_of_deque
281-
} else {
282-
scene_threshold
283-
};
284-
scene_score >= threshold
276+
scene_score >= scene_threshold
285277
}
286278

287279
/// The fast algorithm detects fast cuts using a raw difference

0 commit comments

Comments
 (0)