)]}'
{
  "commit": "0a4cfadc966469fa8f73f00e0f8caeb7a04d531f",
  "tree": "5d21990dc5baac267cdc6179ee0c9505620f643b",
  "parents": [
    "c613fd4df033b75cbc1fd8e839b292d338d3e530"
  ],
  "author": {
    "name": "Urvang Joshi",
    "email": "urvang@google.com",
    "time": "Fri Sep 07 11:10:39 2018 -0700"
  },
  "committer": {
    "name": "Urvang Joshi",
    "email": "urvang@google.com",
    "time": "Sat Sep 08 00:15:44 2018 +0000"
  },
  "message": "decodeframe and reconinter_enc: Reduce stack use.\n\nWe use heap instead of stack memory for the following large arrays.\n\n(1) In dec_build_obmc_inter_predictors_sb():\n    - tmp_buf1 of size 98304 ( \u003d 2 * 3 * 128 * 128 )\n    - tmp_buf2 of size 98304 as well\n\n(2) In dec_build_inter_predictors():\n    - tmp_dst of size 128\n    - tmp_dst of size 32768\n\n(3) In av1_build_obmc_inter_predictors_sb():\n    - tmp_buf1 of size 98304 ( \u003d 2 * 3 * 128 * 128 )\n    - tmp_buf2 of size 98304 as well\n\n(4) In build_inter_predictors():\n    - tmp_dst of size 128\n    - tmp_dst of size 32768\n\nTotal stack memory reduced \u003d 229504 bytes each on encoder and decoder\nsides.\n\nFor this, we allocate 3 arrays once and store them in ThreadData struct, to be\nreused as many times as needed. That way, they are NOT reallocated on\nevery use.\n\nBUG\u003daomedia:2135\n\nChange-Id: Ib95001e306f68ba5d0f7103598ac22d8fa3c6664\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "67725b2e2ffd59a00f2c0fff800b050d4df5f338",
      "old_mode": 33188,
      "old_path": "av1/common/reconinter.h",
      "new_id": "0909932872910a172e2661143b7201cc9ba4731d",
      "new_mode": 33188,
      "new_path": "av1/common/reconinter.h"
    },
    {
      "type": "modify",
      "old_id": "319532ab059be6ccd89140d8bef4db8514aed0a7",
      "old_mode": 33188,
      "old_path": "av1/decoder/decodeframe.c",
      "new_id": "30f52778f7226422dba65a2f72559fcc833c4da2",
      "new_mode": 33188,
      "new_path": "av1/decoder/decodeframe.c"
    },
    {
      "type": "modify",
      "old_id": "8bffd8996bbb70cb074d97f35135c3136171e63e",
      "old_mode": 33188,
      "old_path": "av1/decoder/decoder.h",
      "new_id": "592db79c8acd0b7073ebcd697c0649b6fbdd3945",
      "new_mode": 33188,
      "new_path": "av1/decoder/decoder.h"
    },
    {
      "type": "modify",
      "old_id": "cfde813fd1c11854d0ffa5d956b9dc3ad81ab5d7",
      "old_mode": 33188,
      "old_path": "av1/encoder/block.h",
      "new_id": "6a92e904c38982cbd57c494c0c340cf9a58973fe",
      "new_mode": 33188,
      "new_path": "av1/encoder/block.h"
    },
    {
      "type": "modify",
      "old_id": "48abd3d3d1bc1626c9ffabaf5df4cd7a63c00f71",
      "old_mode": 33188,
      "old_path": "av1/encoder/encodeframe.c",
      "new_id": "6513d0374daa071d5cca32311f581d0e64a79cde",
      "new_mode": 33188,
      "new_path": "av1/encoder/encodeframe.c"
    },
    {
      "type": "modify",
      "old_id": "5bd881b6bd087e828346fa341acb02ed8713eb03",
      "old_mode": 33188,
      "old_path": "av1/encoder/encoder.c",
      "new_id": "a053935f5f3fa744969c306082dc8d39bb517f53",
      "new_mode": 33188,
      "new_path": "av1/encoder/encoder.c"
    },
    {
      "type": "modify",
      "old_id": "54a26da1fe4662c3fcbec41e9b03dc76e4d95b2e",
      "old_mode": 33188,
      "old_path": "av1/encoder/encoder.h",
      "new_id": "ee7fc46379b78e103ad668561179ca04b72c0f85",
      "new_mode": 33188,
      "new_path": "av1/encoder/encoder.h"
    },
    {
      "type": "modify",
      "old_id": "d1616ac6b57c290e2ae1b0b874cd965924973428",
      "old_mode": 33188,
      "old_path": "av1/encoder/ethread.c",
      "new_id": "e9b81edbf2fa08eaa41df2d27a1135b1990b430c",
      "new_mode": 33188,
      "new_path": "av1/encoder/ethread.c"
    },
    {
      "type": "modify",
      "old_id": "3b90a5c199d4cfa56b58a7c1b99efc4516254c4a",
      "old_mode": 33188,
      "old_path": "av1/encoder/firstpass.c",
      "new_id": "7533ca441e653edbed29ae84faef452c20929def",
      "new_mode": 33188,
      "new_path": "av1/encoder/firstpass.c"
    },
    {
      "type": "modify",
      "old_id": "1a35ff77c7ca43d9c5a6f940616d3f108a222403",
      "old_mode": 33188,
      "old_path": "av1/encoder/mbgraph.c",
      "new_id": "44d05baa299947fb5c86a82346c23b0aa07d7204",
      "new_mode": 33188,
      "new_path": "av1/encoder/mbgraph.c"
    },
    {
      "type": "modify",
      "old_id": "8f6de9b532f5b24dda09cd52e8ec456c0cb994a5",
      "old_mode": 33188,
      "old_path": "av1/encoder/mcomp.c",
      "new_id": "51263f784df2c72a18b604286cb2619b2268057f",
      "new_mode": 33188,
      "new_path": "av1/encoder/mcomp.c"
    },
    {
      "type": "modify",
      "old_id": "1174ca8807f819d41e6a22df694ffc8c48b9bf7c",
      "old_mode": 33188,
      "old_path": "av1/encoder/rdopt.c",
      "new_id": "8e04bfbf8aed54c5bebf4eeef69e4ffffe1bba4d",
      "new_mode": 33188,
      "new_path": "av1/encoder/rdopt.c"
    },
    {
      "type": "modify",
      "old_id": "82eeff5a20f870399d8ed36a5c957608bcd71970",
      "old_mode": 33188,
      "old_path": "av1/encoder/reconinter_enc.c",
      "new_id": "8aca98d64b1d425633168edb44419887f98c8f2c",
      "new_mode": 33188,
      "new_path": "av1/encoder/reconinter_enc.c"
    },
    {
      "type": "modify",
      "old_id": "90980b96b2edbe801d554e95041a5e4ffae3edab",
      "old_mode": 33188,
      "old_path": "av1/encoder/reconinter_enc.h",
      "new_id": "7f9414ef05805ad1e347bd8568f6661ebb2d36cd",
      "new_mode": 33188,
      "new_path": "av1/encoder/reconinter_enc.h"
    }
  ]
}
