Fix bug in TemporalFilterTest

This CL fixes the uninitialized access which was causing
a nightly test failure.

BUG=aomedia:2841

Change-Id: Iddf10c8244ab6bf673452c8a70546fb2443ce615
diff --git a/av1/encoder/temporal_filter.c b/av1/encoder/temporal_filter.c
index 96b8df4..9c66371 100644
--- a/av1/encoder/temporal_filter.c
+++ b/av1/encoder/temporal_filter.c
@@ -834,7 +834,8 @@
   memset(tmp_mb_mode_info, 0, sizeof(MB_MODE_INFO));
   mbd->mi = &tmp_mb_mode_info;
   mbd->mi[0]->motion_mode = SIMPLE_TRANSLATION;
-  // Allocate memory for predictor, accumulator and count.
+  // TODO(Jayasanker): Optimize buffers based on chroma subsampling and
+  // bit-depth. Allocate memory for predictor, accumulator and count.
   uint8_t *pred8 = aom_memalign(32, num_planes * mb_pels * sizeof(uint8_t));
   uint16_t *pred16 = aom_memalign(32, num_planes * mb_pels * sizeof(uint16_t));
   uint32_t *accum = aom_memalign(16, num_planes * mb_pels * sizeof(uint32_t));
diff --git a/test/temporal_filter_test.cc b/test/temporal_filter_test.cc
index 21fb2ab..e360d51 100644
--- a/test/temporal_filter_test.cc
+++ b/test/temporal_filter_test.cc
@@ -81,12 +81,13 @@
   void GenRandomData(int width, int height, int stride, int stride2,
                      int num_planes, int subsampling_x, int subsampling_y) {
     uint8_t *src1p = src1_;
-    uint8_t *src2p = src2_;
+    uint8_t *src2p;
     for (int plane = 0; plane < num_planes; plane++) {
       int plane_w = plane ? width >> subsampling_x : width;
       int plane_h = plane ? height >> subsampling_y : height;
       int plane_stride = plane ? stride >> subsampling_x : stride;
       int plane_stride2 = plane ? stride2 >> subsampling_x : stride2;
+      src2p = src2_ + plane * stride2 * height;
       for (int ii = 0; ii < plane_h; ii++) {
         for (int jj = 0; jj < plane_w; jj++) {
           src1p[jj] = rnd_.Rand8();
@@ -102,12 +103,13 @@
                       int num_planes, int subsampling_x, int subsampling_y,
                       uint8_t val) {
     uint8_t *src1p = src1_;
-    uint8_t *src2p = src2_;
+    uint8_t *src2p;
     for (int plane = 0; plane < num_planes; plane++) {
       int plane_w = plane ? width >> subsampling_x : width;
       int plane_h = plane ? height >> subsampling_y : height;
       int plane_stride = plane ? stride >> subsampling_x : stride;
       int plane_stride2 = plane ? stride2 >> subsampling_x : stride2;
+      src2p = src2_ + plane * stride2 * height;
       for (int ii = 0; ii < plane_h; ii++) {
         for (int jj = 0; jj < plane_w; jj++) {
           src1p[jj] = val;
@@ -196,8 +198,10 @@
     MACROBLOCKD *mbd = (MACROBLOCKD *)malloc(sizeof(MACROBLOCKD));
     mbd->bd = 8;
     for (int plane = AOM_PLANE_Y; plane < num_planes; plane++) {
+      int plane_height = plane ? height >> subsampling_y : height;
+      int plane_stride = plane ? stride >> subsampling_x : stride;
       ref_frame->buffers[plane] =
-          ref_frame->buffer_alloc + plane * width * height;
+          ref_frame->buffer_alloc + plane * plane_stride * plane_height;
       mbd->plane[plane].subsampling_x = plane ? subsampling_x : 0;
       mbd->plane[plane].subsampling_y = plane ? subsampling_y : 0;
     }
@@ -332,13 +336,14 @@
   void GenRandomData(int width, int height, int stride, int stride2, int bd,
                      int subsampling_x, int subsampling_y, int num_planes) {
     uint16_t *src1p = src1_;
-    uint16_t *src2p = src2_;
+    uint16_t *src2p;
     for (int plane = AOM_PLANE_Y; plane < num_planes; plane++) {
       int plane_w = plane ? width >> subsampling_x : width;
       int plane_h = plane ? height >> subsampling_y : height;
       int plane_stride = plane ? stride >> subsampling_x : stride;
       int plane_stride2 = plane ? stride2 >> subsampling_x : stride2;
       const uint16_t max_val = (1 << bd) - 1;
+      src2p = src2_ + plane * stride2 * height;
       for (int ii = 0; ii < plane_h; ii++) {
         for (int jj = 0; jj < plane_w; jj++) {
           src1p[jj] = rnd_.Rand16() & max_val;
@@ -354,12 +359,13 @@
                       int subsampling_x, int subsampling_y, int num_planes,
                       uint16_t val) {
     uint16_t *src1p = src1_;
-    uint16_t *src2p = src2_;
+    uint16_t *src2p;
     for (int plane = AOM_PLANE_Y; plane < num_planes; plane++) {
       int plane_w = plane ? width >> subsampling_x : width;
       int plane_h = plane ? height >> subsampling_y : height;
       int plane_stride = plane ? stride >> subsampling_x : stride;
       int plane_stride2 = plane ? stride2 >> subsampling_x : stride2;
+      src2p = src2_ + plane * stride2 * height;
       uint16_t max_val = (1 << bd) - 1;
       for (int ii = 0; ii < plane_h; ii++) {
         for (int jj = 0; jj < plane_w; jj++) {
@@ -450,8 +456,10 @@
     MACROBLOCKD *mbd = (MACROBLOCKD *)malloc(sizeof(MACROBLOCKD));
     mbd->bd = BD;
     for (int plane = AOM_PLANE_Y; plane < num_planes; plane++) {
+      int plane_height = plane ? height >> subsampling_y : height;
+      int plane_stride = plane ? stride >> subsampling_x : stride;
       ref_frame->buffers[plane] =
-          ref_frame->buffer_alloc + plane * width * height;
+          ref_frame->buffer_alloc + plane * plane_stride * plane_height;
       mbd->plane[plane].subsampling_x = plane ? subsampling_x : 0;
       mbd->plane[plane].subsampling_y = plane ? subsampling_y : 0;
     }