Skip to content
Snippets Groups Projects
Commit 9ec39937 authored by Ray Simard's avatar Ray Simard Committed by Michael Niedermayer
Browse files

deshake: variable used uninitialized


Sometimes the scan finds nothing that qualifies for addition to
the array and pos is zero after the loops.  The code forces pos to
1 and the array is then processed as if it had one valid element in it,
producing some amusing but not very useful results.

I don't see the rationale for this.  If pos is zero coming out of the
loops, the only appropriate thing to do is set t->angle to zero.  The
attached patch does that.  It's worked properly in several tests so far.

Signed-off-by: default avatarMichael Niedermayer <michaelni@gmx.at>
parent bdd739e9
No related branches found
No related tags found
No related merge requests found
......@@ -292,14 +292,15 @@ static void find_motion(DeshakeContext *deshake, uint8_t *src1, uint8_t *src2,
}
}
pos = FFMAX(1, pos);
center_x /= pos;
center_y /= pos;
t->angle = clean_mean(angles, pos);
if (t->angle < 0.001)
t->angle = 0;
if (pos) {
center_x /= pos;
center_y /= pos;
t->angle = clean_mean(angles, pos);
if (t->angle < 0.001)
t->angle = 0;
} else {
t->angle = 0;
}
// Find the most common motion vector in the frame and use it as the gmv
for (y = deshake->ry * 2; y >= 0; y--) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment