shithub: dav1d

Download patch

ref: 82f7611b3c560a5756e08c65fbcecc053dbf0a05
parent: c36909909e1b531fdc0f2dc4f0bf3fdd8f2692fa
author: Janne Grunau <janne-vlc@jannau.net>
date: Tue Sep 25 17:23:37 EDT 2018

get rid of variable length arrays in intra prediction

--- a/src/ipred.c
+++ b/src/ipred.c
@@ -454,7 +454,7 @@
     angle &= 511;
     assert(angle < 90);
     const int dx = dr_intra_derivative[angle];
-    pixel top_out[(width + height) * 2];
+    pixel top_out[(64 + 64) * 2];
     const pixel *top;
     int max_base_x;
     const int upsample_above = get_upsample(width + height, 90 - angle, is_sm);
@@ -519,7 +519,7 @@
     const int dx = dr_intra_derivative[180 - angle];
     const int upsample_left = get_upsample(width + height, 180 - angle, is_sm);
     const int upsample_above = get_upsample(width + height, angle - 90, is_sm);
-    pixel edge[width * 2 + height * 2 + 1];
+    pixel edge[64 * 2 + 64 * 2 + 1];
     pixel *const topleft = &edge[height * 2];
 
     if (upsample_above) {
@@ -597,7 +597,7 @@
     angle &= 511;
     assert(angle > 180);
     const int dy = dr_intra_derivative[270 - angle];
-    pixel left_out[(width + height) * 2];
+    pixel left_out[(64 + 64) * 2];
     const pixel *left;
     int max_base_y;
     const int upsample_left = get_upsample(width + height, angle - 180, is_sm);