)]}'
{
  "commit": "136857475ecbbcc4ae6fd24f8a9a82b5a2610e4a",
  "tree": "83e7f4340657cd7593c64cca164adc291103279c",
  "parents": [
    "acff1627b8505f904fbbb787840fb7239f9ff544"
  ],
  "author": {
    "name": "John Koleszar",
    "email": "jkoleszar@google.com",
    "time": "Wed Oct 06 22:39:16 2010 -0700"
  },
  "committer": {
    "name": "John Koleszar",
    "email": "jkoleszar@google.com",
    "time": "Tue Oct 12 09:03:19 2010 -0400"
  },
  "message": "Centralize mb skip state calculation\n\nThis patch moves the scattered updates to the mb skip state\n(mode_info_context-\u003embmi.mb_skip_coeff) to vp8_tokenize_mb. Recent\nchanges to the quantizer exposed a bug where if a macroblock\ncould be coded as a skip but isn\u0027t, the encoder would run the\nloopfilter but the decoder wouldn\u0027t, causing a reference buffer\nmismatch.\n\nThe loopfilter is controlled by a flag called dc_diff. The decoder\nlooks at the number of decoded coefficients when setting this flag.\nThe encoder sets this flag based on the skip state, since any\nskippable macroblock should be transmitted as a skip. The coefficient\noptimization pass (vp8_optimize_b()) could change the coefficients\nsuch that a block that was not a skip becomes one. The encoder was\nnot updating the skip state in this situation for intra coded blocks.\n\nThe underlying issue predates it, but this bug was recently triggered\nby enabling trellis quantization on the Y2 block in commit dcd29e3,\nand by changing the quantizer range control in commit 305be4e.\n\nChange-Id: I5cce5da0dbc2d22f7d79ee48149f01e868a64802\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "efbe2365b633d5cc883ce6f33cca44674c31be79",
      "old_mode": 33188,
      "old_path": "vp8/encoder/encodeframe.c",
      "new_id": "91384c73f7973840d3bf26f2a44733dbb26e222a",
      "new_mode": 33188,
      "new_path": "vp8/encoder/encodeframe.c"
    },
    {
      "type": "modify",
      "old_id": "af80857d231063e747919e2a4d9f2da882d26c0e",
      "old_mode": 33188,
      "old_path": "vp8/encoder/encodeintra.c",
      "new_id": "6611e0077ba591182175b7e841603dc170fffcb0",
      "new_mode": 33188,
      "new_path": "vp8/encoder/encodeintra.c"
    },
    {
      "type": "modify",
      "old_id": "63cdf3c1a35db6b41991b51f6a0e843b0ac46b8c",
      "old_mode": 33188,
      "old_path": "vp8/encoder/encodemb.c",
      "new_id": "1f9568902b56814277ea193c8814f2eee1163d6d",
      "new_mode": 33188,
      "new_path": "vp8/encoder/encodemb.c"
    },
    {
      "type": "modify",
      "old_id": "1a8c8ebb795d183e3ef26fc785939a95069ab672",
      "old_mode": 33188,
      "old_path": "vp8/encoder/quantize.c",
      "new_id": "6cc224494db848be96c65873c1f293c104b25a2f",
      "new_mode": 33188,
      "new_path": "vp8/encoder/quantize.c"
    },
    {
      "type": "modify",
      "old_id": "0e86f28dfdd7a02537ee35b95e670d929690d0b2",
      "old_mode": 33188,
      "old_path": "vp8/encoder/tokenize.c",
      "new_id": "e4da833791d49829704a29aa72a77da9fe4bccbe",
      "new_mode": 33188,
      "new_path": "vp8/encoder/tokenize.c"
    }
  ]
}
