lavfi/avcodec.c: fix copyright
[ffmpeg.git] / libavfilter / vf_deshake.c
index 1464147..cdece5c 100644 (file)
@@ -259,8 +259,6 @@ static void find_motion(DeshakeContext *deshake, uint8_t *src1, uint8_t *src2,
 
     int pos;
     double *angles = av_malloc(sizeof(*angles) * width * height / (16 * deshake->blocksize));
-    double totalangles = 0;
-
     int center_x = 0, center_y = 0;
     double p_x, p_y;
 
@@ -294,22 +292,16 @@ static void find_motion(DeshakeContext *deshake, uint8_t *src1, uint8_t *src2,
         }
     }
 
-    pos = FFMAX(1, pos);
-
-    center_x /= pos;
-    center_y /= pos;
-
-    for (x = 0; x < pos; x++) {
-        totalangles += angles[x];
+    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;
     }
 
-    //av_log(NULL, AV_LOG_ERROR, "Angle: %lf\n", totalangles / (pos - 1));
-    t->angle = totalangles / (pos - 1);
-
-    t->angle = clean_mean(angles, pos);
-    if (t->angle < 0.001)
-        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--) {
         for (x = 0; x < deshake->rx * 2 + 1; x++) {
@@ -426,6 +418,8 @@ static av_cold void uninit(AVFilterContext *ctx)
     avfilter_unref_buffer(deshake->ref);
     if (deshake->fp)
         fclose(deshake->fp);
+    avcodec_close(deshake->avctx);
+    av_freep(&deshake->avctx);
 }
 
 static void end_frame(AVFilterLink *link)