)]}'
{
  "log": [
    {
      "commit": "16c41dd97f4c0728b8135773e3289c63e37a20f2",
      "tree": "9d80dc255c81bb2515ee6169ee55455ac539cb8c",
      "parents": [
        "2038329cf5ec113112ba67c205fb6d890be788c1",
        "c435e5f936374098c485a77123cddda8c4f4ea52"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 01 21:16:42 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 01 21:16:42 2020 +0000"
      },
      "message": "Merge \"Revert \"Force DIRECT flag on direct output thread.\"\" into rvc-dev"
    },
    {
      "commit": "c435e5f936374098c485a77123cddda8c4f4ea52",
      "tree": "ae20e4e48fc2ccda1611c3010b378e4dc34b2e63",
      "parents": [
        "f7667505a23d017d984e03fbb71a6fc28be34449"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 01 15:13:17 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Jul 01 16:56:33 2020 +0000"
      },
      "message": "Revert \"Force DIRECT flag on direct output thread.\"\n\nThis reverts commit f7667505a23d017d984e03fbb71a6fc28be34449.\n\nReason for revert: b/160316553\n\nBug: 130296239\nBug: 160316553\nChange-Id: Ib1d3a9bbbba66455585e0c4a2826f3c05263334e\n"
    },
    {
      "commit": "cdde799ce524c18e19baf24f0ec20a163e1c0eec",
      "tree": "50fba1a456182a0e913be03f97d5735ea3f5745b",
      "parents": [
        "9cc5cecf1896a03a0b549c210242219c383de3c4",
        "ffabb49539cfa682feb9f77c93e050b27e0fa151"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 30 23:35:55 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 30 23:35:55 2020 +0000"
      },
      "message": "Merge \"audio policy: remove capture restrictions for IN_COMMUNICATION mode\" into rvc-dev"
    },
    {
      "commit": "ffabb49539cfa682feb9f77c93e050b27e0fa151",
      "tree": "8aa81baece273a4c6dcab48cdcf544791a294836",
      "parents": [
        "498c4ed2faa20036408a8790a90a3b2575976f6a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 30 14:06:37 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 30 14:06:37 2020 -0700"
      },
      "message": "audio policy: remove capture restrictions for IN_COMMUNICATION mode\n\nRemove capture restrictions added to prevent apps from capturing\nwhen audio mode is IN_COMMUNICATION if they are not the audio mode\nowner.\n\nBug: 153934174\nBug: 160260850\nTest: repro steps in bug.\nTest: regression for VoIP calls\nTest: atest AudioManagerTest#testAccessMode\nTest: atest AudioRecordTest\nChange-Id: Iba423e0aceec7e07089440ad1efb9e1325953305\n"
    },
    {
      "commit": "9cc5cecf1896a03a0b549c210242219c383de3c4",
      "tree": "d6d6ad3e10af51a2ec4919a7cec58b1b81ccd140",
      "parents": [
        "c166ca1e919565fa775a10d0b9f069f36390e657",
        "d477626b2eed4bb6812b772248caf5ba07cf96b7"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 30 18:17:04 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 30 18:17:04 2020 +0000"
      },
      "message": "Merge \"cameraserver: Make trace points in HFR code paths optional.\" into rvc-dev"
    },
    {
      "commit": "c166ca1e919565fa775a10d0b9f069f36390e657",
      "tree": "127302424a7c10f077c19ecec5a5f834ec7d2bd4",
      "parents": [
        "61375308e213979ece3e5c7ccc687a2917d43124",
        "4746fff673bae80cb618437652d97343ecb3a54b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 30 18:07:34 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 30 18:07:34 2020 +0000"
      },
      "message": "Merge \"Camera: Check for failing request ids when syncing with device\" into rvc-dev"
    },
    {
      "commit": "3ba3b691c10a8373f0e79c1550219219e9f0b3db",
      "tree": "1b4d855e0f7afa522f1355a1a1bd232da43c2159",
      "parents": [
        "bf0d7ca7e4314ae3e7bd33e379f5d973843b19ce",
        "ba0dfbefb87fa076072de70790239ae1e33b72eb"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 30 06:59:45 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 30 06:59:45 2020 +0000"
      },
      "message": "Merge \"avoid duplicate of mediaswcodec seccomp policy files\" into rvc-dev"
    },
    {
      "commit": "d477626b2eed4bb6812b772248caf5ba07cf96b7",
      "tree": "e7ba31331c7bb26186fddcc01ebe1754b3729f9b",
      "parents": [
        "54cc1e3c434ab84d623d558db19679f37bb60142"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Tue Jun 23 23:45:57 2020 -0700"
      },
      "committer": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Mon Jun 29 17:46:36 2020 -0700"
      },
      "message": "cameraserver: Make trace points in HFR code paths optional.\n\nPer processCaptureResult save 4 trace point costs -\u003e approximately 2%of 4ms budget.\nSave 2 trace points per processCaptureRequest call.\n\n[assuming each trace point costs around 10us]\n\nBug: 155910869\n\nTest: Try HFR; record perfetto trace, make sure trace points opted out\n      don\u0027t appear\n\nChange-Id: Ifcfec6e0d5a40958cd4f84734b6be094afaa4f17\nSigned-off-by: Jayant Chowdhary \u003cjchowdhary@google.com\u003e\n"
    },
    {
      "commit": "bf0d7ca7e4314ae3e7bd33e379f5d973843b19ce",
      "tree": "a2da4b17dfbaabe059a8a93ea9dceb6c19c5fbdd",
      "parents": [
        "77bec6bc61fdae31c0750c11ae1367e20874c81a"
      ],
      "author": {
        "name": "Henry Fang",
        "email": "quxiangfang@google.com",
        "time": "Mon Jun 29 13:11:39 2020 -0700"
      },
      "committer": {
        "name": "Henry Fang",
        "email": "quxiangfang@google.com",
        "time": "Mon Jun 29 22:05:05 2020 +0000"
      },
      "message": "Fix use after free issue\n\ninside removeResource, it free this (DeathNotifier object)\noverridePid after removeResource will cause use-after-free issue\n\nbug: 152324474\nTest: Manual\nChange-Id: I353a3e6812dd3c0b4989aa7fdb28b17f83fb0816\n(cherry picked from commit b35141c641f319ea0568fedcaab37eaacae84828)\n"
    },
    {
      "commit": "ba0dfbefb87fa076072de70790239ae1e33b72eb",
      "tree": "d0def1ca4d10f6ed28432415720faff67ea426e2",
      "parents": [
        "77bec6bc61fdae31c0750c11ae1367e20874c81a"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon Jun 29 11:35:57 2020 -0700"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon Jun 29 20:57:58 2020 +0000"
      },
      "message": "avoid duplicate of mediaswcodec seccomp policy files\n\nRemove superfluous Android.bp clauses\n\nBug: 160125811\nTest: check generated files, boot to verify use of proper files\nChange-Id: I7f4e88553ae3b014a00adbfd796e72b43d31ee61\n(cherry picked from commit dc1cfaeb847682de0a06c9eb7a6781000b57cc63)\n"
    },
    {
      "commit": "4746fff673bae80cb618437652d97343ecb3a54b",
      "tree": "2550104476742bc7953439c3efbb0c87483497bb",
      "parents": [
        "ae87d21ce7b5a6b76a88fdefbe80ba0e3120b16a"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Thu Jun 25 14:37:31 2020 -0700"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Thu Jun 25 14:37:31 2020 -0700"
      },
      "message": "Camera: Check for failing request ids when syncing with device\n\nCapture requests especially those near the end of a capture session\ncan fail due to various reasons like Hal errors, invalid output\nsurfaces etc. Avoid possible timeouts when waiting for a request id\nto return by checking the respective error notifications.\n\nBug: 159476108\nTest: Legacy API Camera CTS\nChange-Id: I84dedfbee1eeb0ff8cddf67fdb36c5dfafbb70ef\n"
    },
    {
      "commit": "8847f120b6fd52b852d7770f67b58af725f5b43e",
      "tree": "590d6490fd1fccdfbcd474efbbaf4d3024f27202",
      "parents": [
        "cd6719411b4356c9f6c02b6e4e2b8ce62f0ae97e",
        "af6d36f23a359a6d1ae6629c084655d776bfe2c5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 24 19:31:48 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 24 19:31:48 2020 +0000"
      },
      "message": "Merge \"audio policy: do not consider telephony TX device as a local device\" into rvc-dev"
    },
    {
      "commit": "54cc1e3c434ab84d623d558db19679f37bb60142",
      "tree": "6785a188315c72876af44f7b27120084e6d67328",
      "parents": [
        "de38ff80042687152302c73df823fccad2b8c25e",
        "fc62917d0adf02637011960ecd2ac0c3d20317a7"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jun 23 00:07:10 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 23 00:07:10 2020 +0000"
      },
      "message": "Merge \"AudioFlinger: Fix spurious underrun logging\" into rvc-dev"
    },
    {
      "commit": "de38ff80042687152302c73df823fccad2b8c25e",
      "tree": "3fa91a1555944515f8209bc43651b62a96dcd369",
      "parents": [
        "eb622de2f80055505b921a05484178b150232796",
        "5a557295627932e9b8e78abe7383c4ba5c07f2e4"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jun 22 23:26:49 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 22 23:26:49 2020 +0000"
      },
      "message": "Merge \"Push new codec values to statsd\" into rvc-dev"
    },
    {
      "commit": "fc62917d0adf02637011960ecd2ac0c3d20317a7",
      "tree": "7e9350c96601dca8ed5391324009e0d3b1fbb819",
      "parents": [
        "f3f98cc259b9ab73a1069e0a9bb63b3de8288dab"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jun 22 10:06:23 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jun 22 10:41:48 2020 -0700"
      },
      "message": "AudioFlinger: Fix spurious underrun logging\n\nRemoves false positive errors in metrics and debugging.\n\nTest: Play Music, check underruns\nBug: 159620406\nChange-Id: I008381bbf3aae13c0fe8289a0eeec47b7780e587\n"
    },
    {
      "commit": "4a29ff5062afb1fb93161fe787dd284140b4bef0",
      "tree": "988e8198d2fbe530225fd2d900e9b0c2faaf3b7b",
      "parents": [
        "f00b91b986fca9d87b900ed0e34c963bb85519f1",
        "0bdfa28ffa45b9bc45d78040ebbd96692ebdfdab"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sun Jun 21 22:53:20 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Jun 21 22:53:20 2020 +0000"
      },
      "message": "Merge \"Camera: Adjust documentation and comments for insensitive language.\" into rvc-dev"
    },
    {
      "commit": "af6d36f23a359a6d1ae6629c084655d776bfe2c5",
      "tree": "ef3d18d83d3a9c3eca74302031f5bca53234d0b5",
      "parents": [
        "f00b91b986fca9d87b900ed0e34c963bb85519f1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jun 20 13:14:09 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jun 20 20:25:57 2020 +0000"
      },
      "message": "audio policy: do not consider telephony TX device as a local device\n\nExclude playback over AUDIO_DEVICE_OUT_TELEPHONY_TX when evaluating\nlocal playback activity on a HW module as this is a virtual device\ninjecting audio to telephony TX path and as such not interfering\nwith local playback.\n\nBug: 159480161\nTest: repro steps in bug\nChange-Id: I8cd27acc0033725fa66f95c7661c58b38d31532a\n"
    },
    {
      "commit": "f00b91b986fca9d87b900ed0e34c963bb85519f1",
      "tree": "64e9642f4b7be8efce891e2361cdc2cd0a693b76",
      "parents": [
        "f3f98cc259b9ab73a1069e0a9bb63b3de8288dab",
        "3dce9c8d928c57508762ab7e8fef5bdb320cf156"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Fri Jun 19 22:37:32 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 22:37:32 2020 +0000"
      },
      "message": "Merge \"cameraserver: remove assumption that status change callbacks must be called from cameraserver process.\" into rvc-dev"
    },
    {
      "commit": "f3f98cc259b9ab73a1069e0a9bb63b3de8288dab",
      "tree": "14d5948db59556f925dfb51a84ccc7c5a8c91eae",
      "parents": [
        "d25de3abdedff261085f3fd3332884771612133c",
        "b18f506c3c29f2aee335a6d205a77793d7b539fd"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 19 22:29:05 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 22:29:05 2020 +0000"
      },
      "message": "Merge \"MediaMetrics: Retain previous audio state a limited time.\" into rvc-dev"
    },
    {
      "commit": "0bdfa28ffa45b9bc45d78040ebbd96692ebdfdab",
      "tree": "946d517e494fae27fee45aa97bd91436cd4f50c8",
      "parents": [
        "7a0d96e9223a6a2b68f98b27e86d75a443080189"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jun 19 13:54:35 2020 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jun 19 15:26:15 2020 -0700"
      },
      "message": "Camera: Adjust documentation and comments for insensitive language.\n\nTest: Builds\nBug: 159480149\nChange-Id: I598b5638a7166d2b93bf90915e4d845773c4e215\n"
    },
    {
      "commit": "d25de3abdedff261085f3fd3332884771612133c",
      "tree": "cf80264ca28fdf632078dacac4dafffe27787d1f",
      "parents": [
        "656bbee30a9e57e35b84cc4092a6eb4ddee9998a",
        "47178c2d75ab261903ab859c28ecd10ffe90d212"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 19 21:21:46 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 21:21:46 2020 +0000"
      },
      "message": "Merge \"MediaMetrics: Tune garbage collection\" into rvc-dev"
    },
    {
      "commit": "b18f506c3c29f2aee335a6d205a77793d7b539fd",
      "tree": "d793a782a2d832ad7d68de41e809ce3a83d843cb",
      "parents": [
        "47178c2d75ab261903ab859c28ecd10ffe90d212"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jun 18 23:10:08 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 19 12:28:17 2020 -0700"
      },
      "message": "MediaMetrics: Retain previous audio state a limited time.\n\nClears after 1 hour to reduce memory footprint.\nOnly one previous state is kept at any time.\n\nTest: reboot, wait, mediametrics dumpsys/logcat\nBug: 159410113\nChange-Id: I1bce419a69dc14699e70ac481354c1121477b194\n"
    },
    {
      "commit": "47178c2d75ab261903ab859c28ecd10ffe90d212",
      "tree": "ff9b1743ced2b7d812dcf404224fa27fa7561129",
      "parents": [
        "453044a3a0b190548ef15b27201444617bfec5d9"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jun 18 18:57:35 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 19 12:27:47 2020 -0700"
      },
      "message": "MediaMetrics: Tune garbage collection\n\nReduce thresholds for garbage collection.\nTrack the number of gcs in the dumpsys.\n\nTest: 30x repeated invocation of AudioTrackTest\nTest: adb shell showmap \u0027$(pgrep -f audioserver)\u0027\nTest: adb shell dumpsys media.metrics --all\nBug: 159410113\nChange-Id: I3ff7bb84bc45e44fe3d5ea84fecdf05c76cf5733\n"
    },
    {
      "commit": "2e2461eab59b9c93a6eb197aa0e30eedbc98a6e2",
      "tree": "6be7e5c9ffe58ed99eeff5a0fcca8284a77e0d76",
      "parents": [
        "453044a3a0b190548ef15b27201444617bfec5d9",
        "b7b426553c366e19327000605c58fe9d2206206b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 18 22:00:11 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 22:00:11 2020 +0000"
      },
      "message": "Merge \"Camera: Add lastCompletedFrameNumber in CaptureResultExtras (take 2)\" into rvc-dev"
    },
    {
      "commit": "b7b426553c366e19327000605c58fe9d2206206b",
      "tree": "cd2fbdeb52dcd6e58c5e5370a22bbd97e4266865",
      "parents": [
        "a0a5ad220b5fe5ef6bf880ea41b7476f0fcc703b"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Thu May 07 11:59:02 2020 -0700"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Thu Jun 18 11:09:48 2020 -0700"
      },
      "message": "Camera: Add lastCompletedFrameNumber in CaptureResultExtras (take 2)\n\nThe new fields in CaptureResultExtras notify the application the last\ncompleted frame numbers. A frame number is completed if:\n- All buffers are returned, and\n- Final capture result is returned, or RESULT_ERROR/REQUEST_ERROR is called,\n\nIgnore the HAL\u0027s notify(ERROR_BUFFER), and depends on the buffers\u0027\nSTATUS_ERROR bit, capture result metadata, and ERROR_RESULT/ERROR_REQUEST\nfor sending ERROR_BUFFER to the application.\n\nThis makes sure client doesn\u0027t ignore BUFFER_ERROR after capture\nresult metadata callback.\n\nPublic API and NDK logic are fixed. VNDK is yet to be done.\n\nTest: Camera CTS\nBug: 155353799\nChange-Id: I54d198080b251239aeb88a8f93456bba6b3630d8\n"
    },
    {
      "commit": "453044a3a0b190548ef15b27201444617bfec5d9",
      "tree": "72792165a83f5405e6ac51aba6be80fae4157494",
      "parents": [
        "eeb744f5f985ab272552e1f1a0e5c553a50f5f65",
        "991b7b672203d79b66ba7fcb672cb885d7947ae1"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 18 18:09:24 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 18:09:24 2020 +0000"
      },
      "message": "Merge \"Camera: Fix a wrong erase call for app segment buffer\" into rvc-dev"
    },
    {
      "commit": "991b7b672203d79b66ba7fcb672cb885d7947ae1",
      "tree": "0cc5547b9ee22303c27a285d239648a8ff6b1d11",
      "parents": [
        "752adf7f1a340cbb6599fcff1842cf3659c75612"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Wed Jun 17 11:39:11 2020 -0700"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Thu Jun 18 16:10:11 2020 +0000"
      },
      "message": "Camera: Fix a wrong erase call for app segment buffer\n\nAlso make sure the pending frame number is also removed in the error\ncase.\n\nTest: vendor testing\nBug: 159197773\nChange-Id: I3f9ba90d0b9335e99283bbafbd635d3eaebf2275\n"
    },
    {
      "commit": "eeb744f5f985ab272552e1f1a0e5c553a50f5f65",
      "tree": "540f8005c5da017fe84777c3b13e98dba5c1629e",
      "parents": [
        "e28883fe1be2f291516adb167ff0dc4367f8adf5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jun 17 11:10:04 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jun 17 15:39:57 2020 -0700"
      },
      "message": "Revert \"audio: allow standby for direct track\"\n\nThis reverts commit 9cd7ad101315e0bff4c5f171706c6f80c7e22644.\n\nPrior CL allows Direct PCM tracks to enter standby on pause\nwhich unfortunately causes timestamp frame position to reset to 0.\n\nTest: Audio sanity test\nTest: Verified in bug to remove the regression above.\nBug: 157609403\nChange-Id: I5e0d43a0e50981a300bc05711b71efe0b7e22f98\n"
    },
    {
      "commit": "e28883fe1be2f291516adb167ff0dc4367f8adf5",
      "tree": "af691e6c23d56a65c2d52ec30a07b568e5bff4fb",
      "parents": [
        "d3c372d58bf7345e9d7646ee45591fb72af7f2f5",
        "087b37c360200e3e97935efd958ce4384a6675cd"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 17 02:21:55 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 02:21:55 2020 +0000"
      },
      "message": "Merge \"Rename \"Westworld\" to \"Statsd\"\" into rvc-dev"
    },
    {
      "commit": "d36b1491911b73cba7aec2164e2d4b2d333ed243",
      "tree": "846ab948dab3e546fc7612e58eb039a0f603a689",
      "parents": [
        "6f375184378365b3464c4dc51a60687ad2501291",
        "1a89ab3cbe122a8de9c8e001536afef8cd15f28e"
      ],
      "author": {
        "name": "Hayden Gomes",
        "email": "haydengomes@google.com",
        "time": "Wed Jun 17 01:09:39 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 01:09:39 2020 +0000"
      },
      "message": "Merge \"Adding sanity checks for invalid frame sizes\" into rvc-dev"
    },
    {
      "commit": "087b37c360200e3e97935efd958ce4384a6675cd",
      "tree": "72d22173c3730582683e078d8e1a7192e3c8d94c",
      "parents": [
        "19d51164324653a7312c6d7bc0fd0ac43d581503"
      ],
      "author": {
        "name": "Muhammad Qureshi",
        "email": "muhammadq@google.com",
        "time": "Tue Jun 16 16:37:36 2020 -0700"
      },
      "committer": {
        "name": "Muhammad Qureshi",
        "email": "muhammadq@google.com",
        "time": "Tue Jun 16 18:05:47 2020 -0700"
      },
      "message": "Rename \"Westworld\" to \"Statsd\"\n\nBug: 158725651\nTest: N/A; trivial name change\nChange-Id: I39f8847059c6decac070aaea901b7d0d418c75e9\n"
    },
    {
      "commit": "6b72bc88b6a0bc575b2b73fcb7cc46f6ca6af43a",
      "tree": "53adc59006aadca4994aa5eae5add2b83cbbd44b",
      "parents": [
        "b94ef88fddd7378a267297537347f4f54de0b550",
        "79ea958e3bedbdfe625fffdd0423a4b94dfc1182"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 16 20:57:30 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 16 20:57:30 2020 +0000"
      },
      "message": "Merge \"Audio policy: fix failure to unmute strategy.\" into rvc-dev"
    },
    {
      "commit": "1a89ab3cbe122a8de9c8e001536afef8cd15f28e",
      "tree": "2f50130862b83f92dbd63a02496c2e6f18d8376c",
      "parents": [
        "19d51164324653a7312c6d7bc0fd0ac43d581503"
      ],
      "author": {
        "name": "Hayden Gomes",
        "email": "haydengomes@google.com",
        "time": "Fri Jun 12 11:05:47 2020 -0700"
      },
      "committer": {
        "name": "Hayden Gomes",
        "email": "haydengomes@google.com",
        "time": "Mon Jun 15 14:23:45 2020 -0700"
      },
      "message": "Adding sanity checks for invalid frame sizes\n\nInvalid frame size can cause the audio server to crash due to a\ndivide-by-zero error. Adding sanity checks to make that issue easier to\ndiagnose.\n\nBug: 155646578\nTest: Ran CarAudioManagerSystemTest suite which was encountering the\nerror\n\nChange-Id: Ibc5b8e13738eb8957d21509b7f87ddaf3115cd4a\n"
    },
    {
      "commit": "79ea958e3bedbdfe625fffdd0423a4b94dfc1182",
      "tree": "bf4ff094fd9c8e233c4db2fc9f9bde4cf128ebbf",
      "parents": [
        "3244d0db9d52223d417df71b6343064adbcad957"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 11 18:49:24 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 12 17:26:33 2020 -0700"
      },
      "message": "Audio policy: fix failure to unmute strategy.\n\nWhen setOutputDevices() is called with a device not supported by the\noutput profile, checkDeviceMuteStrategies() was not called.\nIf a strategy was muted by this output because of a previous\ndevice combination, it will never be unmuted.\nA typical repro scenario is:\n1) music plays over A2DP via offload path\n2) incoming call: ringtone plays over speaker + A2DP\n   \u003d\u003e music is paused by audio focus\n3) music manually resumed\n   \u003d\u003e media strategy is muted because it cannot play over\na2dp + speaker\n4) call answered and routed to earpiece\n   a) offload output is routed to earpiece which is not\nsupported by offload output profile\n   \u003d\u003e we fail to unmute media\n   b) music stream is invalidated because earpiece is\n   not supported by offload output\n   \u003d\u003e offload output is closed and we will never unmute media strategy\n\nFixed by calling checkDeviceMuteStrategies() before exiting in\ncase of unsupported device.\n\nBug: 157344812\nTest: repro steps in bug\nTest: audio regression tests\nChange-Id: I0c1c189c038803a584dc222aee50c3a99c572263\n"
    },
    {
      "commit": "a0a5ad220b5fe5ef6bf880ea41b7476f0fcc703b",
      "tree": "8843cd288e1dc090acc622d564d6373ed8345b17",
      "parents": [
        "a629bd13e9f224b8472365135757f0676636f8e2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 12 09:30:34 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 12 10:54:39 2020 -0700"
      },
      "message": "MediaMetrics: Enable proto upload to statsd\n\nMediaMetricsAudioRecordDeviceUsageReported\nMediaMetricsAudioThreadDeviceUsageReported\nMediaMetricsAudioTrackDeviceUsageReported\nMediaMetricsAudioDeviceConnectionReported\n\nTest: adb shell dumpsys media.metrics (after BT connection)\nTest: statsd_testdrive (294-297)\nBug: 149850236\nChange-Id: I10ec2945488860cddfe35e58613f207d305d8a55\n"
    },
    {
      "commit": "a629bd13e9f224b8472365135757f0676636f8e2",
      "tree": "4bdce444fd726634f20803fd279ab254a478c262",
      "parents": [
        "752adf7f1a340cbb6599fcff1842cf3659c75612"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 05 16:03:53 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 12 10:43:37 2020 -0700"
      },
      "message": "MediaMetrics: Prepare audio device usage protos for statsd\n\nMediaMetricsAudioRecordDeviceUsageReported\nMediaMetricsAudioThreadDeviceUsageReported\nMediaMetricsAudioTrackDeviceUsageReported\nMediaMetricsAudioDeviceConnectionReported\n\nAdd track traits to identify static AudioTracks.\nFix AudioTrack/AudioRecord flag communication.\nMove debug logging to verbose (delivered protos show in dumpsys).\nUnknown strings which fail validation become empty.\nTest statsd type validation.\n\nTest: atest mediametrics_tests\nTest: adb shell dumpsys media.metrics (after BT connection)\nTest: statsd_testdrive (294-297)\nBug: 149850236\nChange-Id: I53c5d18a346af54941007b9938a8ab10e34b7038\n"
    },
    {
      "commit": "5a557295627932e9b8e78abe7383c4ba5c07f2e4",
      "tree": "ec536e69d02d6b046b44da52ee799a6125b56518",
      "parents": [
        "752adf7f1a340cbb6599fcff1842cf3659c75612"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Wed Jun 10 21:31:33 2020 -0700"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Jun 12 06:02:42 2020 -0700"
      },
      "message": "Push new codec values to statsd\n\nWe can enable these now that statsd is ready to accept them\n\nBug: 139143194\nTest: dumpsys mediametrics\nTest: statsd_testdrive for field presence/sanity\nChange-Id: I6d1304ef5d3d518039c8aa351e6ebb93adccb16a\n"
    },
    {
      "commit": "3dce9c8d928c57508762ab7e8fef5bdb320cf156",
      "tree": "4f1ae12cfd70f78cb325c27e07e42ce908d10e95",
      "parents": [
        "6d5a5c10a5b9389cd84b5a10d5814e65eeb004aa"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Tue Jun 09 17:22:36 2020 -0700"
      },
      "committer": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Wed Jun 10 15:06:20 2020 -0700"
      },
      "message": "cameraserver: remove assumption that status change callbacks must be called from cameraserver process.\n\nSome code in disconnectClient, which is probably a remnant from pre-treble days assumes\nonDeviceStatusChanged callbacks can be made from only the cameraserver process.\nPost treble, this is not true since the cameraserver could receive a cameraDeviceStatusChanged\ncallback from the camera HAL process (which could call onDeviceStatusChanged).\n\nBug: 158252149\n\nTest: GCA (sanity)\n\nChange-Id: Ic76ecf45b0c06dcb69d1b0758b7cd9047a0364ac\nSigned-off-by: Jayant Chowdhary \u003cjchowdhary@google.com\u003e\n"
    },
    {
      "commit": "6c8d71e9582c690c7463177570f68188e67d7e90",
      "tree": "8d72ae64ae1f8d4ff4356613be325c8f0ee14efb",
      "parents": [
        "49509200dca7c4a2137f7a0034b6880fad97804e",
        "8dfe4648925922aeff80bcdb3ebee6b89e434e1e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 10 18:17:45 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 10 18:17:45 2020 +0000"
      },
      "message": "Merge \"Camera: update eviction logic for same owner case\" into rvc-dev"
    },
    {
      "commit": "49509200dca7c4a2137f7a0034b6880fad97804e",
      "tree": "ae7ab858f24839494ba15a47a545a33dcc641aca",
      "parents": [
        "3244d0db9d52223d417df71b6343064adbcad957",
        "51b882c2a996be51f4fd2108348949e7435dcbbb"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 10 16:33:40 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 10 16:33:40 2020 +0000"
      },
      "message": "Merge \"Revert \"Camera: Add lastCompletedFrameNumber in CaptureResultExtras\"\" into rvc-dev"
    },
    {
      "commit": "51b882c2a996be51f4fd2108348949e7435dcbbb",
      "tree": "14f2b63319b45ba43108b1b318dceafa419543b8",
      "parents": [
        "730a7916262d23d406296f21aa2ac89a0a47c94c"
      ],
      "author": {
        "name": "Greg Kaiser",
        "email": "gkaiser@google.com",
        "time": "Wed Jun 10 05:41:44 2020 +0000"
      },
      "committer": {
        "name": "Greg Kaiser",
        "email": "gkaiser@google.com",
        "time": "Wed Jun 10 05:41:44 2020 +0000"
      },
      "message": "Revert \"Camera: Add lastCompletedFrameNumber in CaptureResultExtras\"\n\nRevert \"Camera: Fix race for onCaptureBufferLost callback\"\n\nRevert submission 11415576-bufferErrorLossFix\n\nReason for revert: Breaks Camera on at least the wembley device\nReverted Changes:\nI12b716acc:Camera: Fix race for onCaptureBufferLost callback\nI43f0f5ea1:Camera: Add lastCompletedFrameNumber in CaptureRes...\n\nBug: 158622719\nChange-Id: I98440c52f61d571e1cb6692667fb067020746795\nTest: Locally tried this revert on rvc-dev on a wembley, and now the Camera works\n"
    },
    {
      "commit": "8dfe4648925922aeff80bcdb3ebee6b89e434e1e",
      "tree": "bdecd6a5fbd3caeec784704636e5f7709351c6c5",
      "parents": [
        "6d5a5c10a5b9389cd84b5a10d5814e65eeb004aa"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Mon Jun 01 11:57:45 2020 -0700"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Jun 09 13:57:53 2020 -0700"
      },
      "message": "Camera: update eviction logic for same owner case\n\nUpdate the eviction logic when the same owner is trying\nto open a new camera. The new expected behavior:\n   1. If the same camera is opened twice, the second\n      open will succeed and the first one would be\n      evicted.\n   2. If the owner is trying to open a camera that is\n      conflicting with any camera that\u0027s opened by\n      the same owner, the open call will fail.\n\nBefore this change, the behavior of #2 above\ncould vary (either old or new camera being evicted) on\ndifferent devices depending on how conflicting device\nis listed by camera HAL, which is not exposed to\napplication developers.\n\nAlso added new unit test to verify the eviction logic.\n\nBug: 153699385\nTest: B1 camera CTS test\nChange-Id: Id935e30f441d172ba774fc99a2714ade974668a8\n"
    },
    {
      "commit": "45d5095e0550cd84ed169b881a8f801ce2f64b7c",
      "tree": "0b43bc24bd24c8413bd5c7afff76f915185bf6a9",
      "parents": [
        "385d335254e05f62ad92d8414781cd769afdd629",
        "c209fe49e74dc30100a6f409c616f04382d48f05"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 09 15:29:01 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 09 15:29:01 2020 +0000"
      },
      "message": "Merge \"audio policy: output selection upon dynamic policy registration\" into rvc-dev"
    },
    {
      "commit": "c209fe49e74dc30100a6f409c616f04382d48f05",
      "tree": "afa05faf2118a2f09b308341a9d227df57bcb723",
      "parents": [
        "ea5f4133c7c029ffb988f4aa454c45c86294531c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 05 18:11:23 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 08 18:56:15 2020 -0700"
      },
      "message": "audio policy: output selection upon dynamic policy registration\n\nForce reevalution of output selection for AudioTrack clients when a\ndynamic audio policy (DAP) of type RENDER is registered or unregistered.\nFor LOOPBACK policies, this is not needed because the remote submix\ndevice is connected or disconnected triggering output reevaluation.\n\nAlso refactor checkOutputForAttributes to take actual output selection\nfor each client associated to a DAP instead of blindly forcing stream\ninvalidation as soon as an output associated with a DAP is found.\nThis covers direct outputs as the output is not opened when the DAP\nis registered.\n\nBug: 130296239\nTest: AudioHostTest\nTest: AudioServiceHostTest\nTest: audiopolicy_tests\nTest: regression with auto projected mode and live caption\nChange-Id: I07977e7902eb31c59621462a8fe2d7d1a4b1ba36\n"
    },
    {
      "commit": "56c303b7729e095ed9e9f5b0cc0afb9c0652e0a4",
      "tree": "fd03bc9db60f87bb7e64a3371144fa5f6ff26d57",
      "parents": [
        "79f08b942dfbcb2e9f88763fcbc168d981b787f5",
        "a38704a692224aebca63c430ab15acf5a9d5b29f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jun 08 21:00:55 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 08 21:00:55 2020 +0000"
      },
      "message": "Merge \"replace char * with std::string\" into rvc-dev"
    },
    {
      "commit": "79f08b942dfbcb2e9f88763fcbc168d981b787f5",
      "tree": "979ddcebb95874e0d626c01d39911852f377a1c2",
      "parents": [
        "ea5f4133c7c029ffb988f4aa454c45c86294531c",
        "730a7916262d23d406296f21aa2ac89a0a47c94c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jun 08 19:28:31 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 08 19:28:31 2020 +0000"
      },
      "message": "Merge \"Camera: Add lastCompletedFrameNumber in CaptureResultExtras\" into rvc-dev"
    },
    {
      "commit": "5a126eaf40f04ea4871f537d4cef50c15b0686de",
      "tree": "886e269dd361c645bd58c820779ac0711606345f",
      "parents": [
        "fab932e9edd3beb3a0539735d0692dcdbe2b1855",
        "8e2255ad97be8c5665b6bc8973d37c241fb5814b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 05 23:37:12 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 05 23:37:12 2020 +0000"
      },
      "message": "Merge \"aaudio: fix race when disconnecting\" into rvc-dev"
    },
    {
      "commit": "8e2255ad97be8c5665b6bc8973d37c241fb5814b",
      "tree": "1131a333ad55726c9783e420d3a57f35bca18ad9",
      "parents": [
        "6d5a5c10a5b9389cd84b5a10d5814e65eeb004aa"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jun 05 09:58:26 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jun 05 13:08:09 2020 -0700"
      },
      "message": "aaudio: fix race when disconnecting\n\nWhen disconnecting more than one stream,\nand the apps reopen the streams,\nthere was a race condition that resulted\nin the first app getting a Legacy stream instead of an\nMMAP stream. That is because it was disconnected before the\nother streams had stopped.\n\nNow we run the stop loop before the disconnect loop\nto prevent the race.\n\nBug: 158316262\nTest: test_steal_exclusive -r0 -d0 -s\nChange-Id: Ib8efde9c2f94f6ab1ba3475d88b45d373cc8d3bb\n"
    },
    {
      "commit": "ccfd5262b788718046a4d90713832199fffe1549",
      "tree": "71f8a315c95701ee94b19f3b862e2e966ae032b0",
      "parents": [
        "7a0d96e9223a6a2b68f98b27e86d75a443080189",
        "3bead5f9b87a5c5adad2b687f60a172d0475502a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 05 19:55:43 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 05 19:55:43 2020 +0000"
      },
      "message": "Merge \"Camera: Don\u0027t mark request thread as IDLE in configured state\" into rvc-dev"
    },
    {
      "commit": "743f640339310f980cc6480514fb67bcd26cc717",
      "tree": "75f7c4cb4c3682850fddb8ff4080acd2307a4931",
      "parents": [
        "4e48c2477d084919f13ee191a6c36713d83063f3"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jun 03 13:17:04 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jun 03 16:58:35 2020 -0700"
      },
      "message": "AudioFlinger: Fix read timestamp if HAL returns error\n\nTest: android.media.cts.AudioRecordTest#testTimestamp\nBug: 158112444\nChange-Id: Ibb35c6247ab94e63d586eddd1c95b7fc186e7822\n"
    },
    {
      "commit": "730a7916262d23d406296f21aa2ac89a0a47c94c",
      "tree": "63998bad70f9e02896b03b6dab2d79f3301fafb3",
      "parents": [
        "4e48c2477d084919f13ee191a6c36713d83063f3"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Thu May 07 11:59:02 2020 -0700"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Wed Jun 03 14:32:02 2020 -0700"
      },
      "message": "Camera: Add lastCompletedFrameNumber in CaptureResultExtras\n\nThe new fields in CaptureResultExtras notify the application the last\ncompleted frame numbers. A frame number is completed if:\n- All buffers are returned\n- Final capture result is returned, or CAPTURE_ERROR is called,\n- For buffers that are cancelled, all notifyError() is called.\n\nThis makes sure client doesn\u0027t ignore BUFFER_ERROR after capture\nresult metadata callback.\n\nPublic API and NDK logic are fixed. VNDK is yet to be done.\n\nTest: Camera CTS\nBug: 155353799\nChange-Id: I43f0f5ea18a670dfa00872ebc581567e2df76ad4\n"
    },
    {
      "commit": "4e48c2477d084919f13ee191a6c36713d83063f3",
      "tree": "14f2b63319b45ba43108b1b318dceafa419543b8",
      "parents": [
        "1ae898a10c9f3c66dc7c58c7c9808bcc8411650a",
        "836f9df5638d4edc475a5a9a69f385ed83831da0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 03 00:50:10 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 03 00:50:10 2020 +0000"
      },
      "message": "Merge \"aaudio: disable exclusive mode after steal\" into rvc-dev"
    },
    {
      "commit": "a9d7640540c6a499c170072faa7d2d2b81d4ec34",
      "tree": "7ff70d2b96b1e944e7abd5961cfe33234b1a3f0e",
      "parents": [
        "044eaa62c79775870cbf08e323b152752edcfb9d",
        "8e544543add8e4e0e53f6b27a265254e6af2422b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 02 22:55:59 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 02 22:55:59 2020 +0000"
      },
      "message": "Merge \"AudioPolicy: manager: fix patch list growing up\" into rvc-dev"
    },
    {
      "commit": "8e544543add8e4e0e53f6b27a265254e6af2422b",
      "tree": "00175e73755007accffd18f0b48d40a2360bc303",
      "parents": [
        "e0c3d791757109b0302cf74e7027bcada2221b1f"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Mon May 11 14:12:53 2020 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 02 14:17:13 2020 -0700"
      },
      "message": "AudioPolicy: manager: fix patch list growing up\n\ncommit 3b17354a caused potential stale audio patches\nrecords in audio policy manager for patches associated\nwith audio flinger software patches sharing an output mixer.\n\nBug: 136121584\nTest: dumpsys media.audio_policy \u0026\u0026\nadb shell /data/nativetest64/AudioPolicyEmulatorTests/AudioPolicyEmulatorTests --gtest_filter\u003dAudioPatchTest/AudioModeBridgingTest.\n\u0026\u0026 dumpsys media.audio_policy:\nensure list of patches did not grow up\nTest: atest audiopolicy_tests\n\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: Ife8035dc2d2d9c0b568d6847ca5eb0d2cba77cea\n"
    },
    {
      "commit": "044eaa62c79775870cbf08e323b152752edcfb9d",
      "tree": "20c1160ca8d5e6f26cef06f80877453beb4701d6",
      "parents": [
        "f1a5f750ebc11f53846bd114f1caf0d43596a1d0",
        "33403f0ef8ec7e6217f4969879fa81101e6b84ee"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 02 20:44:03 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 02 20:44:03 2020 +0000"
      },
      "message": "Merge \"AudioFlinger: fix fast capture silence\" into rvc-dev"
    },
    {
      "commit": "a38704a692224aebca63c430ab15acf5a9d5b29f",
      "tree": "8c48a0b2b05e6fd1fb99cfa88c4179b611db3abc",
      "parents": [
        "d40bc7615ff9bb6aac308083c51980437a9c6a21"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon Jun 01 13:56:28 2020 -0700"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon Jun 01 15:57:32 2020 -0700"
      },
      "message": "replace char * with std::string\n\nchange some statsd parameters that were formerly bare C strings to\nuse std::string; statsd changed behavior from Q (NULL was tolerated) to\nR (NULL causes crash within statsd).\n\nBug: 157887206\nBug: 155363739\nTest: playback of protected content\nChange-Id: Id3f65c43212f20d1b042a445753d57432c94a259\n"
    },
    {
      "commit": "3bead5f9b87a5c5adad2b687f60a172d0475502a",
      "tree": "c7d29cac2a6febb65537c36eb0f2e5aa72e740fe",
      "parents": [
        "b4a3b65d297a8436ba48138ce7ce2ba6b7a652b8"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Thu May 28 17:29:08 2020 -0700"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Mon Jun 01 15:39:26 2020 -0700"
      },
      "message": "Camera: Don\u0027t mark request thread as IDLE in configured state\n\nMarking the request thread as IDLE in any state different from\nACTIVE is not necessary. In configured state the device can\nimmediately reconfigure the streams and will not wait\nfor the status tracker notification.\n\nBug: 157451818\nTest: Camera CTS\n\nChange-Id: I22e357ab13d016404cfc939ca595d48fb08cf686\n"
    },
    {
      "commit": "836f9df5638d4edc475a5a9a69f385ed83831da0",
      "tree": "f23d43481b747647e20936462c435149aabba323",
      "parents": [
        "d40bc7615ff9bb6aac308083c51980437a9c6a21"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri May 29 13:20:28 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Jun 01 15:24:44 2020 -0700"
      },
      "message": "aaudio: disable exclusive mode after steal\n\nPrevent a process that had its exclusive stream stolen\nfrom obtaining another exclusive stream.\nThis can prevent a collision between two processes after\nthey both try to open EXCLUSIVE streams after\na DISCONNECT event.\n\nBug: 157777324\nTest: adb shell test_steal_exclusive -r0 -d100\nChange-Id: I0fe12be95a8fbd05ed03f10796e1ca716025c885\n"
    },
    {
      "commit": "33403f0ef8ec7e6217f4969879fa81101e6b84ee",
      "tree": "6036db6c23094fc0aadb3703349aa97f0a86c5dd",
      "parents": [
        "ea63cf2b4479bcef697592e57025b63b60b2af4c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 29 18:35:06 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 29 18:44:33 2020 -0700"
      },
      "message": "AudioFlinger: fix fast capture silence\n\nSilencing fast catpure tracks was not properly implemented.\nFix by zeroing fast capture thread HAL read buffer if the silenced\ntrack is the only active, or by invalidating the silenced track\nif other non fast tracks are active.\n\nBug: 157708122\nTest: repro steps in the bug\nChange-Id: I88b19540815bc1491b9e76c1ae6b6f85e32afa8f\n"
    },
    {
      "commit": "09a88538622f7e97e3ec4ca7fe43e09bb60290e8",
      "tree": "3bbd430cd0fd5e3c9a4c04a0a91880e79c6c476a",
      "parents": [
        "701a08e2d4d991d076ec66a1b5929e1342c9bba5",
        "a21a3d3540689439043ce1559e82a8224d2f7088"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat May 30 01:04:38 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat May 30 01:04:38 2020 +0000"
      },
      "message": "Merge \"Additional mediametrics for MediaCodec\" into rvc-dev"
    },
    {
      "commit": "a21a3d3540689439043ce1559e82a8224d2f7088",
      "tree": "24bd0e01f1885c3371ad5f71f9a7c8c0bdbd863f",
      "parents": [
        "bf74c089dc2f02f46bfc252e02ddf12cbff9198e"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Sun May 10 21:08:10 2020 -0700"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Wed May 27 19:38:16 2020 -0700"
      },
      "message": "Additional mediametrics for MediaCodec\n\nbitrate + bitrate mode\nhandle updates to profile/level coming back from codec.\nlifetime of the codec\n\nBug: 139143194\nTest: instagram recording/playback\nChange-Id: Ic6f4074b65d1307782de4aeff4ed196218dfb00f\n"
    },
    {
      "commit": "3fdcc3469075ce68a9e419409819a605dea220d6",
      "tree": "c607df5759fd0000237c0847230b22129877f605",
      "parents": [
        "d46fedc30fe07f500f2e2681d2f8d8a8a794faa5",
        "6292112eca818eab9fa5056bc4a28092812b291b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 28 02:03:46 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 28 02:03:46 2020 +0000"
      },
      "message": "Merge \"Tracks: Stabilize the latency/startup metrics for BT\" into rvc-dev"
    },
    {
      "commit": "6292112eca818eab9fa5056bc4a28092812b291b",
      "tree": "1e37d150cd5325d37b7d1b115c18fc7e4e1c0d0c",
      "parents": [
        "b4a3b65d297a8436ba48138ce7ce2ba6b7a652b8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon May 18 10:47:31 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 27 11:47:47 2020 -0700"
      },
      "message": "Tracks: Stabilize the latency/startup metrics for BT\n\nUse kernel timestamps instead of server timestamps.\nPostpone latency / startup collection until later\nto ensure BT is stabilized.\n\nTest: adb shell dumpsys media.metrics\nBug: 149850236\nChange-Id: Ie4e0658cedec13000f7b713407630e273df391b7\n"
    },
    {
      "commit": "1ea842e9b24b2e3fcb92afe90309ccd96a571a1d",
      "tree": "d795e6e97330a175fd197126045212f952146713",
      "parents": [
        "b4a3b65d297a8436ba48138ce7ce2ba6b7a652b8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon May 18 10:47:31 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 27 11:32:19 2020 -0700"
      },
      "message": "MediaMetrics: Update and clean proto formatting\n\nMake code compatible with both string\nand integer enumeration in the protos.\n\nTest: adb shell dumpsys media.metrics\nTest: atest mediametrics_tests\nBug: 149850236\nChange-Id: I0a1c21be711f82915f3bb403860b40c695a0587d\n"
    },
    {
      "commit": "666caaf1eeffd98cff00f25f8a3c84108d86ea42",
      "tree": "1ea57cc510d06e589f6821e241ff6de6ad91a1b3",
      "parents": [
        "557bdaa8d244b97afcdb75eeab06278a0fb93d6f",
        "3ab1b329780cdd4c93741128b0003bbaa4a7c938"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 22 00:00:16 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 22 00:00:16 2020 +0000"
      },
      "message": "Merge \"MediaMetrics: Add and fix clang-tidy\" into rvc-dev"
    },
    {
      "commit": "3ab1b329780cdd4c93741128b0003bbaa4a7c938",
      "tree": "9d4002f18913fb752fc2e8f4aeb10c962fd38a6a",
      "parents": [
        "6296cc3b9c44867131e651ca058b56614cb4a472"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon May 18 10:47:31 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 21 09:36:52 2020 -0700"
      },
      "message": "MediaMetrics: Add and fix clang-tidy\n\nTest: adb shell dumpsys media.metrics\nTest: atest mediametrics_tests\nBug: 149850236\nChange-Id: Ia02fad2cbefdbfe3deba3897526a21dd88270c27\n"
    },
    {
      "commit": "eca178fbbf489c06f1dd275658dc8a438328565e",
      "tree": "17dce5b20fb79abf74ebbe776e94a9003d819a78",
      "parents": [
        "3bd241dcd726b2c4119a0b6bb1246bcdc513a912",
        "d1478ceafe5acf538e96f5d0e42dda92bbfb118e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 19 05:07:26 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 19 05:07:26 2020 +0000"
      },
      "message": "Merge \"cameraserver: system camera rules should be checked before making onPhysicalCameraStatusChanged callbacks.\" into rvc-dev"
    },
    {
      "commit": "3bd241dcd726b2c4119a0b6bb1246bcdc513a912",
      "tree": "54fe12c143c4045bc1fb35a52d62fe8858b65862",
      "parents": [
        "db0b34440ac627f7d153ec7849d7590ab199d334",
        "7ebbc11051f1af7a520e9ae7e582125c63e92f95"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 19 03:28:54 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 19 03:28:54 2020 +0000"
      },
      "message": "Merge \"aaudio: lock transport methods\" into rvc-dev"
    },
    {
      "commit": "7ebbc11051f1af7a520e9ae7e582125c63e92f95",
      "tree": "7605285baef0ae3c9e08a2a887af0fa4b4739628",
      "parents": [
        "05be7e510992ebf41919c84a26b38717a7f3211f"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed May 13 15:55:17 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon May 18 16:23:28 2020 -0700"
      },
      "message": "aaudio: lock transport methods\n\nThe start/pause/stop/flush/close and other binder methods\nneed to be thread safe. They do not need to run\nin parallel. So a lock was added for each.\n\nWhere virtual methods are needed, the locked method calls\na corresponding _l submethod, eg. stop() calls stop_l().\n\nThe close logic was also simplified because the \"pending\"\ntechnique is not needed now that we have the locks.\nIt was only needed because a close could have occured\nwhile in the middle of another method.\n\nThis CL was merged with changes in RVC-DEV.\n\nBug: 153358911\nTest: adb logcat *:F\nTest: in another window:  test_binder_attack\nTest: There should be no fatal error in the logcat.\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: I5920cf78af4501856756c5c2fc8e77758232508a\n"
    },
    {
      "commit": "d3d11c6dd5e520db0aba8ad17fdfe9f57d47a4df",
      "tree": "8e5eea63867d21226acdfa1e34a9f2839a10b08a",
      "parents": [
        "6021501137c85ac531ecdf0bb5a5c3bea4c72541",
        "e3cf41a2806834c4d678a78534134aeee4e12cc5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon May 18 20:18:29 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 18 20:18:29 2020 +0000"
      },
      "message": "Merge \"Set min_sdk_version (for non-mainline files)\" into rvc-dev"
    },
    {
      "commit": "0a37803c9c9432ab156ea40f52ae0f32da3bff9c",
      "tree": "7c7a417b457e701f0d23a1aa458b25b532734f63",
      "parents": [
        "f7d03e830d791cfcfc4540e290a48e06c4438207"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 15 11:35:12 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 15 11:43:00 2020 -0700"
      },
      "message": "MediaMetrics: Enable AudioPowerUsage to statsd\n\nTest: adb shell dumpsys stats --metadata | grep 275\nBug: 121318157\nChange-Id: Iba2416ceb4c113a8fc219f670c7f99ba55969efa\n"
    },
    {
      "commit": "09869a1c369e0edc421a379c2ffb3cb3afbbe392",
      "tree": "d687f660faef689641c3503573b708073d6f4d75",
      "parents": [
        "22e58223044a6910a1d92f2c6cef3c7b418c4d4f",
        "ea84038803580b4c35ce4cb60918c0c384127417"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 13 22:12:54 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 13 22:12:54 2020 +0000"
      },
      "message": "Merge \"MediaMetrics: Prepare statistics for protos\" into rvc-dev"
    },
    {
      "commit": "ea84038803580b4c35ce4cb60918c0c384127417",
      "tree": "d8c91402af2f630e4f1c36f7798d161767d01301",
      "parents": [
        "38e65911a65a51edf2efd5ca63c4e00daac24852"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 05 21:50:17 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 13 11:15:49 2020 -0700"
      },
      "message": "MediaMetrics: Prepare statistics for protos\n\n1) Add AudioRecord to Analytics trigger.\n2) Log RecordThread statistics.\n3) Rename DURATIONNS to EXECUTETIMENS to avoid confusion.\n4) Use streamType from server not client.\n5) Split MMAP types to MMAP_PLAYBACK and MMAP_CAPTURE.\n6) Use string flags for AudioTrack and AudioRecord.\n7) Compute underrun frames for MixerThread.\n8) Log BT connection state.\n\nTest: adb shell dumpsys media.metrics\nTest: atest mediametrics_tests\nTest: adb shell dumpsys stats --metadata\nBug: 149850236\nChange-Id: Iacf3f117c00ec9f377e62862080252aef9dc084f\n"
    },
    {
      "commit": "22e58223044a6910a1d92f2c6cef3c7b418c4d4f",
      "tree": "f29e3133eb02ab9b3e8415d18dfd630e4f81bc11",
      "parents": [
        "3e58083f214629ebc87cd0a0d965e84e673524f0",
        "e867578b74c62770971f64734d5e0729a870a4b0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 13 04:55:28 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 13 04:55:28 2020 +0000"
      },
      "message": "Merge \"Camera3: Add flush support to HEIC composite streams\" into rvc-dev"
    },
    {
      "commit": "e867578b74c62770971f64734d5e0729a870a4b0",
      "tree": "90f507899ae0d082eab9ed82f3c04b3f41834b2a",
      "parents": [
        "40fae84d5e67baab376c831df2b1ad33f9b989ce"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Thu Dec 05 09:12:14 2019 -0800"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Tue May 12 15:02:52 2020 -0700"
      },
      "message": "Camera3: Add flush support to HEIC composite streams\n\n- Handle various corner cases with regard to REQUEST_ERROR, RESULT_ERROR, and BUFFER_ERROR.\n- Drain the codec outputs in case the input buffer isn\u0027t dropped.\n- Allow APP_SEGMENT to drop while still producing valid output image.\n- Add a status tracker to manage active/idle state.\n- Use frame number as key for pending input frames since with ZSL, 2\ncapture result could have the same timestamp.\n- Also removed some deprecated variable/methods.\n\nTest: CTS, vendor testing\nBug: 145579077\nChange-Id: I9c3e929469b8fb75b32b016f9006036c954f663f\n"
    },
    {
      "commit": "d1478ceafe5acf538e96f5d0e42dda92bbfb118e",
      "tree": "508c7fd844d177479685a73f328f47c06b721e13",
      "parents": [
        "5120edaad25acb60218d81bde9a1e7b79ac3f143"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Thu May 07 17:35:23 2020 -0700"
      },
      "committer": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Mon May 11 15:14:21 2020 -0700"
      },
      "message": "cameraserver: system camera rules should be checked before making onPhysicalCameraStatusChanged callbacks.\n\nBug: 152089822\n\nTest: GCA (sanity)\nTest: Camera CTS\n\nChange-Id: I1cdca010819550f9743f8a6d1c209b123cb16ba4\nSigned-off-by: Jayant Chowdhary \u003cjchowdhary@google.com\u003e\n"
    },
    {
      "commit": "651d0a575517e0b1591715f74c862335ab04ac72",
      "tree": "1b3c7e1b59ba074aa676281dd908fd5e2aba95f8",
      "parents": [
        "05be7e510992ebf41919c84a26b38717a7f3211f"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri May 08 14:00:58 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri May 08 14:00:58 2020 -0700"
      },
      "message": "audioflinger: fix NUL terminator in dumpsys\n\nBug: 155096545\nTest: adb shell dumpsys media.audio_flinger | more\nTest: then search for \"Device\"\nTest: There should be no garbage characters on the next line.\nChange-Id: I798d914cede3f45151f97178de3ceee09b4e24c0\n"
    },
    {
      "commit": "05be7e510992ebf41919c84a26b38717a7f3211f",
      "tree": "3a79e37da026cb5068fd197d31dc1e0a7314bf26",
      "parents": [
        "07f031e889d78edd549d8ad4254cd31902b46479",
        "1c4794bfdee92c9491312432bd966d2439c49179"
      ],
      "author": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Fri May 08 18:26:31 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 08 18:26:31 2020 +0000"
      },
      "message": "Merge \"Support query encapsualtion modes and metadata types.\" into rvc-dev"
    },
    {
      "commit": "07f031e889d78edd549d8ad4254cd31902b46479",
      "tree": "b834592b9dfb110146c5664ecd6dbfb0f0925f81",
      "parents": [
        "e3469d1d6d7a8a894064e925b0770765bbe4bea0",
        "f7667505a23d017d984e03fbb71a6fc28be34449"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 08 01:27:35 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 08 01:27:35 2020 +0000"
      },
      "message": "Merge \"Force DIRECT flag on direct output thread.\" into rvc-dev"
    },
    {
      "commit": "e3469d1d6d7a8a894064e925b0770765bbe4bea0",
      "tree": "0e0b84a3912239aaf3452410bc19d1c2681c4acc",
      "parents": [
        "eaad70fbfcec64206f42a11071efa683efe0c3ab",
        "a77869d964afe3915ae6dfcb1b832a7ccb1fe308"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 08 00:53:00 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 08 00:53:00 2020 +0000"
      },
      "message": "Merge \"aaudio: process callbacks asynchronously\" into rvc-dev"
    },
    {
      "commit": "1c4794bfdee92c9491312432bd966d2439c49179",
      "tree": "0947f6dea04e00753357a87d2ab38cb9d6fd13e4",
      "parents": [
        "eaad70fbfcec64206f42a11071efa683efe0c3ab"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue May 05 10:08:05 2020 -0700"
      },
      "committer": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Fri May 08 00:37:55 2020 +0000"
      },
      "message": "Support query encapsualtion modes and metadata types.\n\nWhen a new device is attached to hardware module, query the HAL to get\nthe supported encapsulation modes and metadata types.\n\nTest: atest EnumDevicesTest, manually\nTest: atest audiofoundation_parcelable_test\nBug: 155799506\nChange-Id: I903e46e35a44416c9f2d206c128face8a6c61dcb\n"
    },
    {
      "commit": "a77869d964afe3915ae6dfcb1b832a7ccb1fe308",
      "tree": "37a516c20dbd10c7575cbe1ce90cb352dd6b49a5",
      "parents": [
        "686dac0cdb04834b889b1264f7a41c5d6ce25d2a"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu May 07 10:39:47 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu May 07 14:33:39 2020 -0700"
      },
      "message": "aaudio: process callbacks asynchronously\n\nSpawn a thread to handle the disconnects for onRoutingChanged()\nand onTearDown(). This is to prevent deadlocks when calling back into\nAudioFlinger.\n\nBug: 155819038\nTest: See bug for repro steps with OboeTester\nTest: Also run TEST DISCONNECT in OboeTester. It was failing.\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: I83212fea140d3b6beca9aa737606a77a7c97b007\n"
    },
    {
      "commit": "5298998e5749ce5883cda027b0791d071c4c8b0b",
      "tree": "2d5cd73553f7795e4dae085e1bddad5bc48686d3",
      "parents": [
        "ad531ce5d938385330ec260d4049914b354d1c37"
      ],
      "author": {
        "name": "Joey Poomarin",
        "email": "poomarin@google.com",
        "time": "Thu Mar 05 17:40:49 2020 +0800"
      },
      "committer": {
        "name": "Robert Lee",
        "email": "lerobert@google.com",
        "time": "Thu May 07 12:25:59 2020 +0800"
      },
      "message": "MediaMetrics: Implement audio power usage metrics\n\n- Trigger audio power usage logging when\n   1. endAudioIntervalGroup event for track/record\n   2. setMode to NORMAL for telephony\n- Aggregate audio usage by type and device\n- Send audiousage data every 24hrs by default, using property\n  persist.media.audio_power_metrics.interval_hr to config the interval\n- Add property persist.media.audio_power_metrics.disable to disable\n  audio power metrics\n\nBug: 121318157\nBug: 140909217\nTest: atest mediametrics_tests\nTest: adb shell dumpsys media.metrics --all\nChange-Id: I94ff00a5609a49c96a14827d3260d481c1310abe\nSigned-off-by: Robert Lee \u003clerobert@google.com\u003e\n"
    },
    {
      "commit": "e3cf41a2806834c4d678a78534134aeee4e12cc5",
      "tree": "98562f4fc57f3ca03b8d8e37afadcced6f15ad5c",
      "parents": [
        "ddd5870816f48e598e8c7e2c43940169f848c02f"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Thu Apr 30 04:22:22 2020 +0900"
      },
      "committer": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Thu May 07 03:15:31 2020 +0900"
      },
      "message": "Set min_sdk_version (for non-mainline files)\n\nModules contributing mainline modules (APK/APEX) should set\nmin_sdk_version as well as apex_available.\n\nFor now setting min_sdk_version doesn\u0027t change build outputs.\nBut build-time checks will be added soon.\n\nThis is second part of two CLs: covers non-mainline files\n\nBug: 152655956\nTest: m\nChange-Id: I55336e644990d3f175e0c011856b52ec600e452a\n"
    },
    {
      "commit": "f7667505a23d017d984e03fbb71a6fc28be34449",
      "tree": "45e9d5370330e051307878944a68468333892420",
      "parents": [
        "cc79094c69bdc85c7c8f52247a00bae1dff68473"
      ],
      "author": {
        "name": "yucliu",
        "email": "yucliu@google.com",
        "time": "Tue Apr 28 15:33:55 2020 -0700"
      },
      "committer": {
        "name": "Yuchen Liu",
        "email": "yucliu@google.com",
        "time": "Wed May 06 18:02:52 2020 +0000"
      },
      "message": "Force DIRECT flag on direct output thread.\n\nForce DIRECT flag if current playback thread is direct output thread.\n\nThis can happen when the playback is re-routed to direct output stream\nby dynamic audio policy.\n\nBug: 130296239\nTest: manual\nChange-Id: I24efd87f74bacf6b769d3663e9521eb27b1704e9\n"
    },
    {
      "commit": "cc79094c69bdc85c7c8f52247a00bae1dff68473",
      "tree": "ae20e4e48fc2ccda1611c3010b378e4dc34b2e63",
      "parents": [
        "b3cedfdf595bbb3538a7a6e36b70de5e62a58fa1",
        "12c7ec759a2629c2b11861ec89fd8a3bef778d39"
      ],
      "author": {
        "name": "Hui Yu",
        "email": "huiyu@google.com",
        "time": "Wed May 06 16:59:34 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 06 16:59:34 2020 +0000"
      },
      "message": "Merge \"Revert \"Add isUidActiveOrForeground() for camera/audio to use.\"\" into rvc-dev"
    },
    {
      "commit": "b3cedfdf595bbb3538a7a6e36b70de5e62a58fa1",
      "tree": "ed9f3624e2615c3260276284eaaafdba4469e179",
      "parents": [
        "40fae84d5e67baab376c831df2b1ad33f9b989ce",
        "ce9b66343a4bbd570bddbd8916279af612d6341f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 06 02:53:29 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 06 02:53:29 2020 +0000"
      },
      "message": "Merge \"MediaMetrics: Add device-based actions for Bluetooth\" into rvc-dev"
    },
    {
      "commit": "ce9b66343a4bbd570bddbd8916279af612d6341f",
      "tree": "2285bebd7f0bd11fe8553a0e470ff993bba98747",
      "parents": [
        "25b1e25a724ac10547670382745789bdf8a18e0b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 28 20:15:17 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 05 17:46:17 2020 -0700"
      },
      "message": "MediaMetrics: Add device-based actions for Bluetooth\n\nLog summary group statistics by device.\n\nTest: adb shell dumpsys media.metrics\nBug: 149850236\nChange-Id: I31fef89fa020de175e59784049ef4741914f3a2c\n"
    },
    {
      "commit": "686dac0cdb04834b889b1264f7a41c5d6ce25d2a",
      "tree": "e62aea3a7797665dd7a839e1c5072dfd494bf3be",
      "parents": [
        "789d4e903e47669066a5fe4c3b05360e83ee012b",
        "6e463ce6fc456a3c185b80086d3605e2189eccd6"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 05 11:08:28 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 05 11:08:28 2020 +0000"
      },
      "message": "Merge changes I7f8339d8,Idff0c394 into rvc-dev\n\n* changes:\n  aaudio: steal exclusive streams\n  aaudio test: test stealing an exclusive stream\n"
    },
    {
      "commit": "6e463ce6fc456a3c185b80086d3605e2189eccd6",
      "tree": "5c897c19218b6ab714ad781076018079ef2b0240",
      "parents": [
        "4756a9f78b39c7aad0bd79c18b97bf8ed00b4bc6"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Apr 13 10:20:20 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue May 05 02:54:41 2020 -0700"
      },
      "message": "aaudio: steal exclusive streams\n\nAn app (B) that asks for an exclusive stream can steal\nan exclusive stream from an earlier app (A).\nApp B will be given the MMAP resource as a SHARED stream.\nThe stream for app A will be disconnected and released\nby the service.\nIf app A reopens a stream then it will get a SHARED\nstream.\n\nThe order of the opening of the streams is controlled by using a\nrecursive_mutex in AAudioService::openStream().\n\nBug: 129846760\nTest: media/libaaudio/tests/test_steal_exclusive.cpp\nTest: also\nTest: Launch AudioTroubleMaker. It should say \"EXCLUSIVE\".\nTest: Press Home button.\nTest: Siren sound from AudioTroubleMaker should continue.\nTest: Launch OboeTester\nTest: TEST OUTPUT, then Open, Start\nTest: You should get an MMAP SHARED stream on Pixel.\nTest: Go back to AudioTroubleMaker. It should say \"SHARED\".\nChange-Id: I7f8339d8ed62546520a9b46ed398418b41ca2832\n"
    },
    {
      "commit": "12c7ec759a2629c2b11861ec89fd8a3bef778d39",
      "tree": "f6761f74625adddd3853d93fd8d5e92a7f388950",
      "parents": [
        "ffffffc42242cf06c433e4e4958d7991a7e2848c"
      ],
      "author": {
        "name": "Hui Yu",
        "email": "huiyu@google.com",
        "time": "Mon May 04 17:40:52 2020 +0000"
      },
      "committer": {
        "name": "Hui Yu",
        "email": "huiyu@google.com",
        "time": "Mon May 04 18:06:32 2020 +0000"
      },
      "message": "Revert \"Add isUidActiveOrForeground() for camera/audio to use.\"\n\nRevert \"Add isUidActiveOrForeground() for camera/audio to use.\"\n\nRevert \"Add isUidActiveOrForeground for camera/audio to use.\"\n\nRevert submission 10829580-isUidForeground\n\nReason for revert: In CameraService.cpp, before this change, around \"am.isUidActive\", there was up to 300 ms retry. After this change, the code could move forward fast without retry, but at \"mAppOpsManager-\u003estartOpNoThrow\" call, for the same reason as uid is not updated fast enough, \"mAppOpsManager-\u003estartOpNoThrow\" could also fail.\n\nThis CL does not really fix the root cause, but it changes the timing and now the code fails at \"mAppOpsManager-\u003estartOpNoThrow\" call.\n\nAlso the timing change may also cause recent multiple CTS test failures.\n\n\nBug: 154570809, 155032617, 154849083\n\nReverted Changes:\nIffed63293:Add isUidActiveOrForeground() for camera/audio to ...\nI3685e0c8d:Add isUidActiveOrForeground() for camera/audio to ...\nI51ed1fe78:Add isUidActiveOrForeground for camera/audio to us...\n\nChange-Id: I8acde2524201b6c6d0d5c0ff9cfb2053ffbcb8ef\n"
    },
    {
      "commit": "6ffc516235c5bdda22b06afc7f840ce2a60dc79e",
      "tree": "5929e758151a2343edc6f867873d7023ee7c88e4",
      "parents": [
        "2fc997ef3107415ba111cbe64d4355059830d85f",
        "12b716ce09943cc7b427f192d986e6830822c166"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon May 04 16:30:09 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 04 16:30:09 2020 +0000"
      },
      "message": "Merge \"Enforce basic thread safety in Audio Policy Service\" into rvc-dev"
    },
    {
      "commit": "2fc997ef3107415ba111cbe64d4355059830d85f",
      "tree": "24d9b2dbe9f7b9d590ac8cbc8486c7ef1510d1bc",
      "parents": [
        "ef9abae0c7f05913cddb3e87566aa4d64b6f353f",
        "9bf8a6fcf9800df24961d2a4691fee7cccb242e9"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon May 04 05:28:39 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 04 05:28:39 2020 +0000"
      },
      "message": "Merge \"Camera: Initialize preCorrectionActiveArraySize\" into rvc-dev"
    },
    {
      "commit": "9bf8a6fcf9800df24961d2a4691fee7cccb242e9",
      "tree": "18213271661c1cdadb629c9d0c6113455fb3692d",
      "parents": [
        "241746e794c0e160a18fcd2ddf989584e81f3dad"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Fri May 01 09:49:04 2020 -0700"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Sat May 02 22:28:27 2020 -0700"
      },
      "message": "Camera: Initialize preCorrectionActiveArraySize\n\nHandle the case where the HAL doesn\u0027t advertise\npreCorrectionActiveArraySize by initializing it to activeArraySize.\n\nTest: \"dumpsys media.camera\" before and after the change\nBug: 145300768\nChange-Id: I1281686d9b324793a4a99c6a4ddf5d693172507b\n"
    },
    {
      "commit": "029f52b0d1c235f83723d22533fb9f129b172f24",
      "tree": "53d5d50b4ba6fa4f62851bebd610213aed9561b5",
      "parents": [
        "12a6940bb181aae48383e9365b6ab62e24663bfd"
      ],
      "author": {
        "name": "Suren Baghdasaryan",
        "email": "surenb@google.com",
        "time": "Thu Apr 30 14:39:39 2020 -0700"
      },
      "committer": {
        "name": "Suren Baghdasaryan",
        "email": "surenb@google.com",
        "time": "Sat May 02 00:29:57 2020 +0000"
      },
      "message": "Replace direct pid writes with setting task profiles\n\nFor easy transition from SchedTune to UtilClamp, direct access to these\ncgroups should be abstracted by using task profiles. Replace writepid\ncommands with new task_profiles command.\n\nBug: 155419956\nTest: change .rc file and confirm task profile is applied\nSigned-off-by: Suren Baghdasaryan \u003csurenb@google.com\u003e\nChange-Id: Id00370b25af973a4b3813a4a1d6ccbd1e555c87f\nMerged-In: Id00370b25af973a4b3813a4a1d6ccbd1e555c87f\n"
    },
    {
      "commit": "12b716ce09943cc7b427f192d986e6830822c166",
      "tree": "9c3d2d8e77a1db06766593f620e37b9e3686d48d",
      "parents": [
        "929c3645336dd0e01d3f61ffaedc95fe417ab1bb"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Apr 30 22:37:43 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri May 01 23:29:38 2020 +0000"
      },
      "message": "Enforce basic thread safety in Audio Policy Service\n\nEnable clang thread safety analysis. Convert comments on TS\ninto directives. Fix missing lock acquisitions. Add missing\ndefault initializers for the fields of UidPolicy and\nSensorPrivacyPolicy\n\nAlso remove unused fields mpAudioPolicyDev and mpAudioPolicy\nfrom AudioPolicyService.\n\nTODO: Consider protecting pointers to command threads,\nAPM instance and the client, and system usages with a separate\nlock.\n\nBug: 70398235\nBug: 155336464\nTest: make, flash, and test audio on device\n      execute \"adb shell cmd media.audio_policy\" commands\nChange-Id: I47b132c8b5c977812fad5c89fa57882a37779c18\nMerged-In: I47b132c8b5c977812fad5c89fa57882a37779c18\n"
    },
    {
      "commit": "25b1e25a724ac10547670382745789bdf8a18e0b",
      "tree": "0cdad164ce8e7c534d0c0bfcb70290397c98e673",
      "parents": [
        "31300b43da852e6eeb93791361ece11015963cf4",
        "cf10d743aedcd29a53f3a4f16a25565f5b462dd8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 01 19:59:16 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 01 19:59:16 2020 +0000"
      },
      "message": "Merge \"ThreadMetrics: Add device-based statistics for audio\" into rvc-dev"
    },
    {
      "commit": "31300b43da852e6eeb93791361ece11015963cf4",
      "tree": "c34b92381b740682048d7be61da9769a0450117d",
      "parents": [
        "17f951088b42c4f399e1c18b65f1ffebee48fa80",
        "c2b11cbcb88c5970fb4ec6ff8a562b1465dfa70a"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 01 19:57:50 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 01 19:57:50 2020 +0000"
      },
      "message": "Merge \"TrackMetrics: Add device-based statistics for audio\" into rvc-dev"
    },
    {
      "commit": "17f951088b42c4f399e1c18b65f1ffebee48fa80",
      "tree": "3455820b06beee3f5b10d0272ad348a11b74e722",
      "parents": [
        "fc8cd670b78d399981f95209e410e155c6bce43d",
        "7ffbd9898911062cea59c1c6b39875be88b66eb3"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 01 18:00:47 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 01 18:00:47 2020 +0000"
      },
      "message": "Merge \"Camera: Fix potentail race condition\" into rvc-dev"
    },
    {
      "commit": "74dc21be3318f53013d099b6cbf235430296fa08",
      "tree": "4f0aa53d433fe43664222fa2665c409302e3092e",
      "parents": [
        "36c77d400c1e86b0aab5d529f061c158a674a122",
        "68eb212b74e31e43ffa112586cd056a6cf402bfb"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 01 02:09:56 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 01 02:09:56 2020 +0000"
      },
      "message": "Merge \"audio policy: add ECHO_REFERENCE to virtual audio sources\" into rvc-dev"
    }
  ],
  "next": "36c77d400c1e86b0aab5d529f061c158a674a122"
}
