)]}'
{
  "commit": "984734436d8f13fc44ca3f0f3d65e0d057d6fd20",
  "tree": "c73a2ac7047b86d5752ae234e7b6ff76a6af4912",
  "parents": [
    "a879b4e6d425e7ec26e6ed9f0ef3e84575a891d4"
  ],
  "author": {
    "name": "James Zern",
    "email": "jzern@google.com",
    "time": "Tue Nov 06 16:58:11 2012 -0800"
  },
  "committer": {
    "name": "James Zern",
    "email": "jzern@google.com",
    "time": "Tue Nov 06 23:06:44 2012 -0800"
  },
  "message": "Fix variance (signed integer) overflow\n\nIn the variance calculations the difference is summed and later squared.\nWhen the sum exceeds sqrt(2^31) the value is treated as a negative when\nit is shifted which gives incorrect results.\n\nTo fix this we force the multiplication to be unsigned.\n\nThe alternative fix is to shift sum down by 4 before multiplying.\nHowever that will reduce precision.\n\nFor 16x16 blocks the maximum sum is 65280 and sqrt(2^31) is 46340 (and\nchange).\n\nThis change is based on:\n1698234 Missed some variance casts\nfea3556 Fix variance overflow\n\nChange-Id: I2c61856cca9db54b9b81de83b4505ea81a050a0f\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "129c188626078d1f7415fa15806287df10db5642",
      "old_mode": 33188,
      "old_path": "test/test.mk",
      "new_id": "9196bd88b8a97378825e0fe9dcf8bab859191225",
      "new_mode": 33188,
      "new_path": "test/test.mk"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f838c05e2c93e68ed52a090cbf234a9d1995ae95",
      "new_mode": 33188,
      "new_path": "test/variance_test.cc"
    },
    {
      "type": "modify",
      "old_id": "52cf07b2f2c328224b91f4f85e79cc3dd162d512",
      "old_mode": 33188,
      "old_path": "vp9/common/findnearmv.c",
      "new_id": "f636f4078b5d30f4d770535fc818390fab1c73b9",
      "new_mode": 33188,
      "new_path": "vp9/common/findnearmv.c"
    },
    {
      "type": "modify",
      "old_id": "62de70301469b15f8022ec7473159b64024f5a66",
      "old_mode": 33188,
      "old_path": "vp9/encoder/variance_c.c",
      "new_id": "8ac956e95fbb5689400ce19cad0f392f56c64ce4",
      "new_mode": 33188,
      "new_path": "vp9/encoder/variance_c.c"
    },
    {
      "type": "modify",
      "old_id": "3fedc6b5c69a0639eec2dd49bf20c885097b2048",
      "old_mode": 33188,
      "old_path": "vp9/encoder/x86/variance_mmx.c",
      "new_id": "3b5f2a1b91c076850b77ffcc5e1373f8d5959adc",
      "new_mode": 33188,
      "new_path": "vp9/encoder/x86/variance_mmx.c"
    },
    {
      "type": "modify",
      "old_id": "e63c53a538e17ce4272fe311ce5c7310ef1dc970",
      "old_mode": 33188,
      "old_path": "vp9/encoder/x86/variance_sse2.c",
      "new_id": "9f897da51173827ffe40b8b1980b24192be29dd2",
      "new_mode": 33188,
      "new_path": "vp9/encoder/x86/variance_sse2.c"
    },
    {
      "type": "modify",
      "old_id": "f37abb881f0aeae2267cea6baf20513276b92f95",
      "old_mode": 33188,
      "old_path": "vp9/encoder/x86/variance_ssse3.c",
      "new_id": "81b06d117532182669627c509feaf0e088d279b7",
      "new_mode": 33188,
      "new_path": "vp9/encoder/x86/variance_ssse3.c"
    }
  ]
}
