)]}'
{
  "commit": "0188c4ff58cd3d0ac5e440d7688aabeb1b5351cd",
  "tree": "bbd890c71b2f97ad491463a0b806e0703a6c60c8",
  "parents": [
    "9b896fe99aa7f6e82c229372e208e6ebe6fb72fd"
  ],
  "author": {
    "name": "Atneya Nair",
    "email": "atneya@google.com",
    "time": "Wed May 10 17:26:30 2023 -0700"
  },
  "committer": {
    "name": "Android Build Coastguard Worker",
    "email": "android-build-coastguard-worker@google.com",
    "time": "Tue May 23 17:23:19 2023 +0000"
  },
  "message": "Force unsilence record clients on startInput\n\nWe call startRecording unconditionally in startInput, so we must\nupdate the client state to be unsilenced (since we are treating as\nsuch). We subsequently re-update the silence state (with the client\nmarked as active to dispatch ops) in updateUidStates_l.\n\nThis fixes an issue where we call startRecording for a silenced client,\nthen call it again when it moves to unsilenced when the client is active.\nSince startRecording is ref-counted, this leaves the client in the\nrecording state leading to incorrect appop attributions.\n\nBug: 279905816\nBug: 281485019\nTest: Manual verification of repro cases + verbose log analysis\n(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:e7720b379bfaba648ab6d85c4c2df6f03ec854d3)\n(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:12e41309c3e6bde85430c288e469fc1776835db0)\nMerged-In: I31d50457ca8adae577407a28d4d4c0e8582bac5d\nChange-Id: I31d50457ca8adae577407a28d4d4c0e8582bac5d\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9856b0ba2af59ea9b242692e08d4a9d40d24e88a",
      "old_mode": 33188,
      "old_path": "services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp",
      "new_id": "0bd3b7ce02b377f31612b13597da0b98b54b2a19",
      "new_mode": 33188,
      "new_path": "services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp"
    }
  ]
}
