)]}'
{
  "commit": "9438ddc9fc6bddeb7409e8a24827c8ed06c2a9ee",
  "tree": "38e0c97f4b49bf338fcdcf1d35b82364605358f7",
  "parents": [
    "f9ed56b656fbef32ff5d8a26a25c7411d2292529"
  ],
  "author": {
    "name": "Henrik Boström",
    "email": "hbos@webrtc.org",
    "time": "Mon May 11 14:32:41 2020"
  },
  "committer": {
    "name": "Commit Bot",
    "email": "commit-bot@chromium.org",
    "time": "Mon May 11 21:39:40 2020"
  },
  "message": "[Adaptation] Give QualityScaler a pending callbacks queue and unittests\n\nThis CL adds a queue for pending QualityScalerQpUsageHandlerCallbacks\nand private methods for \"Queueing\", \"Handling\" and \"Aborting\" them,\nusing a sequence number as an ID to ensure we don\u0027t accidentally invoke\nthe same callback twice.\n\nBecause we don\u0027t have the adaptation task queue yet, callbacks are still\nsynchronously handled, which means the \"pending callbacks\" queue would\nnever have more than 1 element. However, when the adaptation task queue\nis added and this is made asynchronous, it will be possible for multiple\ncallbacks to be pending simultaneously. This design is future-proof.\n\nThis CL is split out to aid reviewability. The CL that adds the\nadaptation task queue will affect a lot of code. By landing this\nseparately, the adaptation queue CL will be easier to review.\n\nThis CL adds quality_scaler_resource_unittest.cc.\n\nBug: webrtc:11542, webrtc:11520\nChange-Id: I00e7f6bfda9f8e8e82ec25916aa48e9349c8d70c\nReviewed-on: https://webrtc-review.googlesource.com/c/src/+/174802\nCommit-Queue: Henrik Boström \u003chbos@webrtc.org\u003e\nReviewed-by: Evan Shrubsole \u003ceshr@google.com\u003e\nReviewed-by: Ilya Nikolaevskiy \u003cilnik@webrtc.org\u003e\nCr-Commit-Position: refs/heads/master@{#31219}\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3269d89ac97313cb07a7113b5087e18244d7abc5",
      "old_mode": 33188,
      "old_path": "video/adaptation/BUILD.gn",
      "new_id": "51e6a2d84ec5fabb18ed565ea5fdd878a71ea490",
      "new_mode": 33188,
      "new_path": "video/adaptation/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "9fcc58e6be5040b4532270466cc26a41f4316a7f",
      "old_mode": 33188,
      "old_path": "video/adaptation/quality_scaler_resource.cc",
      "new_id": "631e5b08fd763406eb8283069b1a2308014037d9",
      "new_mode": 33188,
      "new_path": "video/adaptation/quality_scaler_resource.cc"
    },
    {
      "type": "modify",
      "old_id": "6cec79c4b0e956b4ff052073118dbf5e5ac3dd5e",
      "old_mode": 33188,
      "old_path": "video/adaptation/quality_scaler_resource.h",
      "new_id": "7c55e9bacdee84d661fa04a77b969dd2be6a840d",
      "new_mode": 33188,
      "new_path": "video/adaptation/quality_scaler_resource.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d49addfe8c78c27b08e107ae2579e4432c75c869",
      "new_mode": 33188,
      "new_path": "video/adaptation/quality_scaler_resource_unittest.cc"
    }
  ]
}
