)]}'
{
  "commit": "2f3b5dfafd8e9de9b63e27ccfee1850011a554b3",
  "tree": "6a7a0f92d27f4ec942064358b6f573521342bcbd",
  "parents": [
    "f6d7ed83546f1979ca1a498b12cf8eaec6f18763"
  ],
  "author": {
    "name": "David Turner",
    "email": "david.turner@argondesign.com",
    "time": "Wed Jan 02 14:30:50 2019 +0000"
  },
  "committer": {
    "name": "David Turner",
    "email": "david.turner@argondesign.com",
    "time": "Fri Jan 04 17:44:34 2019 +0000"
  },
  "message": "Merge encode_{with,without}_recode_loop()\n\nThere is a lot of overlap between encode_with_recode_loop() and\nencode_without_recode_loop(): Since the two were split, a lot of\nduplicate code has been added to both functions.  In this commit I merge\nthe two functions so that encode_with_recode_loop is always used and\nrecoding can be disabled by setting sf.recode_loop \u003d DISALLOW_RECODE.  I\nfeel this simplifies the code and it should not have any significant\nspeed implication: the extra complexity in encode_with_recode_loop() is\nsuppressed if recoding is disallowed.\n\nAt the same time, I move all the code concerned with updating q in the\nrecode loop to a new function, recode_loop_update_q(), so that\nencode_with_recode_loop() is less vast.\n\nI also remove a commented-out call to update_base_skip_probs(), which\nhas not existed since 2013.\n\nThis forms part of wider restructuring and refactoring in order to\nachieve a clean API separation at the entry to the low-level encoder.\n\nBUG\u003daomedia:2244\n\nChange-Id: Ib41f593325c82015ba87e64226a923ffba73cf68\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0dc75431969fb6eaa189566459b20e86f6f6ed12",
      "old_mode": 33188,
      "old_path": "av1/encoder/encoder.c",
      "new_id": "2202bbb898e12489fbb78c8d226632e40d8c3987",
      "new_mode": 33188,
      "new_path": "av1/encoder/encoder.c"
    }
  ]
}
