)]}'
{
  "log": [
    {
      "commit": "1888c866419cb11a422a36ad08e2e6ca2c2f8aeb",
      "tree": "2eb76c155a3bf0438ef3a105db30832010f9d3ea",
      "parents": [
        "34dfaeb3f46e45e538e21b6d788200f85b53d6be",
        "1ea2c0f91cb97b17cc8849cf14848b05684b63b7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 18 11:18:06 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri May 18 11:18:06 2018 -0700"
      },
      "message": "Merge \"audio policy: add device to audio record media metrics\" into pi-dev\nam: 1ea2c0f91c\n\nChange-Id: Ic9cacf6f5b2b9f3aa51367914f71c8c03592a415\n"
    },
    {
      "commit": "99fcae46d54639e7841d87b1dcacbc229bbf8dc4",
      "tree": "f1f6c0ffb8e22e7df27fbe5b5cd42e3bef3e7658",
      "parents": [
        "0ba1ae398e65718fba66bb1bd258d4d0a9ba6c28"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 17 16:59:18 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 17 18:17:44 2018 -0700"
      },
      "message": "audio policy: add device to audio record media metrics\n\nAdd information about requested and active input device type in\naudiopolicy media metrics on recording clients.\n\nBug: 78595399\nTest: recording over several devices, dumpsys media.metrics\nChange-Id: Ifeeb2c51ee3ed2dbb86406c0e8d74e7aa70dd8fb\n"
    },
    {
      "commit": "7221451768a69fa5bc8dbbff8ea76af47d3ea70a",
      "tree": "862cc3e9533ab6d1220c351fab87017e4a24dd77",
      "parents": [
        "52f0c23904b2249fb92ad015d74d9c6969930cdb",
        "0ba1ae398e65718fba66bb1bd258d4d0a9ba6c28"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 17 14:58:36 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 17 14:58:36 2018 -0700"
      },
      "message": "Merge \"audiopolicy: Optimize A2DP codec config change\" into pi-dev\nam: 0ba1ae398e\n\nChange-Id: I8a8da84dafe1f941b7fb0240ac353c35ea06ace3\n"
    },
    {
      "commit": "3432e0439d3b09756f125dfa734951c654d63baf",
      "tree": "a5ccde7855da94bf284d302e61adf0d155f0dcfa",
      "parents": [
        "5eb9d967e81ace00d96ab50b9264b25560e9df1d"
      ],
      "author": {
        "name": "Aniket Kumar Lata",
        "email": "alata@codeaurora.org",
        "time": "Fri Apr 06 14:22:15 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 17 11:18:25 2018 -0700"
      },
      "message": "audiopolicy: Optimize A2DP codec config change\n\nHandle A2DP codec config change in audio HAL without\nclosing / re-opening outputs or invalidating streams\nfrom AudioPolicyManager.\n\nBug: 79476124\nTest: music playback over BT A2DP\nChange-Id: I87263da32815a4d4f6273068ef0b2a5b93c73b75\n"
    },
    {
      "commit": "0e66c708f9afc27195d6854977f70f070ba1e46b",
      "tree": "41f18c0a17321ae6f19a513fac91baaecb8a62cd",
      "parents": [
        "cfc4aff2d73d329bbc56dd1c322524d733a5972b",
        "f824853eabf8eab483de7387c001493dda63966b"
      ],
      "author": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Tue May 15 14:01:54 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 15 14:01:54 2018 -0700"
      },
      "message": "Merge \"Add support for manually set surround formats.\" into pi-dev\nam: f824853eab\n\nChange-Id: Id134ce99f99d0fa067a95ed5e2f109ec96c7cfbf\n"
    },
    {
      "commit": "f824853eabf8eab483de7387c001493dda63966b",
      "tree": "2d56a1a846f7adf1e25a7cf4465d34d648cd861a",
      "parents": [
        "625e3020f8c070c8d8449af1bdaeaa002c11cc03",
        "817729095966c338615a8a791d2dbf774fc034ef"
      ],
      "author": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Tue May 15 20:54:28 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 15 20:54:28 2018 +0000"
      },
      "message": "Merge \"Add support for manually set surround formats.\" into pi-dev"
    },
    {
      "commit": "84b79e642ba977143d882c8270426dacfd6e117f",
      "tree": "c3e546e33984a0d04088e07f906605b9187e099b",
      "parents": [
        "a18b655832a629d7d14967b137f27ed0a36417af",
        "c7c321335610ac2ee193c41ef673517ad43d6c42"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 15 12:12:35 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 15 12:12:35 2018 -0700"
      },
      "message": "Merge \"audio policy: reduce mute time when invalidating tracks\" into pi-dev\nam: c7c3213356\n\nChange-Id: I3d617996be5d86a74b5b1f113d5e37e75fbc4780\n"
    },
    {
      "commit": "ac3a690c79467612a12e2c3a216c8ea2c4efbd64",
      "tree": "b192daca5cbceadc29316e9b22413bcb3914a856",
      "parents": [
        "2c82a511797920451aa20ad5e089fc71aaff78af"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 11 16:39:10 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon May 14 18:35:05 2018 -0700"
      },
      "message": "audio policy: reduce mute time when invalidating tracks\n\nReplace fixed 2 seconds mute time in checkOutputForStrategy() by\na variable time based on actual maximum output latency.\n\nAlso fix problem where src outputs where queried from mOutputs list\ninstead of from mPreviousOutputs.\n\nBug: 70632415\nTest: manual connections/disconnection of BT A2DP and USB headset\nChange-Id: I3a9ea915a134d95a2dc5abea2fbfe6152f147e80\n"
    },
    {
      "commit": "812511dbb573f2630a2a98d197e5cbeb3c595671",
      "tree": "16d2b76a2f6f2373f0a892aecd4ab68e2a18f29e",
      "parents": [
        "e34561be0524fc177c3c1ba973a4e739e6f01ec9",
        "ff9407d5c6eb3598edc2dd2405fb0d3367e726d4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 10 19:03:51 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 10 19:03:51 2018 -0700"
      },
      "message": "Merge \"audiopolicy: clean delayMs to 0 before reevaluate all outputs routing when call state changes\" into pi-dev\nam: ff9407d5c6\n\nChange-Id: Ica74623612e88680887789288c744a4a4a6a0275\n"
    },
    {
      "commit": "ff9407d5c6eb3598edc2dd2405fb0d3367e726d4",
      "tree": "2891a0fb38a687c814663d206c02456a5eb024ae",
      "parents": [
        "b1f8c80d3a0c144407d1bd6b63eb6ac9e90112f2",
        "f60c824b23de449d3e31e69d5b91e3dba83067b1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 11 01:56:14 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 11 01:56:14 2018 +0000"
      },
      "message": "Merge \"audiopolicy: clean delayMs to 0 before reevaluate all outputs routing when call state changes\" into pi-dev"
    },
    {
      "commit": "817729095966c338615a8a791d2dbf774fc034ef",
      "tree": "b9c23fc427ec841575b37c59280000467c5a1648",
      "parents": [
        "183eb5fb74b9c723ba8e8da9b3c962031bac2c6a"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Apr 02 17:52:27 2018 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu May 10 18:20:24 2018 -0700"
      },
      "message": "Add support for manually set surround formats.\n\nTo make surround sound setting more clear to users, we are changing\nsurround setting from ALWAYS to MANUAL. With MANUAL, users could enable\nsurround formats according to their need.\n\nBug: 67479735\nTest: Try creating AudioTrack with enable/disable surround formats.\nChange-Id: Ia6c0e1210ff6215f4b80a278a0aa90ca9543f262\n"
    },
    {
      "commit": "f60c824b23de449d3e31e69d5b91e3dba83067b1",
      "tree": "ba06f79b07ed975db58456cddb214248b3a48fbd",
      "parents": [
        "ec2c0359ecc1225ea8d15bd16fd6e01d5c006933"
      ],
      "author": {
        "name": "Yung Ti Su",
        "email": "andysu@google.com",
        "time": "Thu May 10 18:07:26 2018 +0800"
      },
      "committer": {
        "name": "Carter Hsu",
        "email": "carterhsu@google.com",
        "time": "Fri May 11 06:40:15 2018 +0800"
      },
      "message": "audiopolicy: clean delayMs to 0 before reevaluate all outputs routing when call state changes\n\nsince the delayMs is for updateCallRouting(),\nwe need to clean delayMs to 0 before reevaluate\nall outputs routing when call state changes.\nOtherwise, setPhoneState will cost too much time\nwhich will block UI making phone call.\nTest: self-test making phone call and check for delay time\nBug: 79187322\n\nTest: delayed time is reduced.\nChange-Id: I3f71af700efb958c0716b4bf28aa436d85c5af66\nSigned-off-by: Yung Ti Su \u003candysu@google.com\u003e\n"
    },
    {
      "commit": "d0079dbd464ab432c8b9fe587be9ee92ea94a831",
      "tree": "441905c309012389772b2b4c865ccac639ea47d9",
      "parents": [
        "e40378d840927fe569e4939024ade25ceb8f0b13",
        "f4a28339fff6af3696d540d2e6eccb2feb9ce658"
      ],
      "author": {
        "name": "Nadav Bar",
        "email": "nadavbar@google.com",
        "time": "Thu May 10 12:38:26 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 10 12:38:26 2018 -0700"
      },
      "message": "Merge \"Check voice call recording permission according to source.\" into pi-dev\nam: f4a28339ff\n\nChange-Id: Id80d88965bf548348fd709862778339b4b3fa111\n"
    },
    {
      "commit": "f4a28339fff6af3696d540d2e6eccb2feb9ce658",
      "tree": "ee6b7584e239726f29269d31ac953dbfc1801f89",
      "parents": [
        "ff5ab0678880ade264efda5410822b4aee58d12d",
        "744be48d57da2c39f1479bc5a5ad0b7589814704"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 10 19:32:21 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 10 19:32:21 2018 +0000"
      },
      "message": "Merge \"Check voice call recording permission according to source.\" into pi-dev"
    },
    {
      "commit": "c99607b99337028277ee2dffbb1b92ec8b51944f",
      "tree": "67f41c5eb9a0f24f1bfdfac9bcf46ec6d841a119",
      "parents": [
        "2c7246b900bfa78e09759ca1de3b74a9c594b37f",
        "fb4e361a9e49651b30c1d023ae2619143ae62665"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 09 16:30:28 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 09 16:30:28 2018 -0700"
      },
      "message": "Merge \"audio policy: re enable setForceUse for system apps.\" into pi-dev\nam: fb4e361a9e\n\nChange-Id: Id32a78a57c16a897fc124542fe10a0e0f428308c\n"
    },
    {
      "commit": "e17378d11b275daecd20ff840bcb7d275b6801bf",
      "tree": "3f49ff9153c5bd7be9d17e38532efcfc0d98cc1a",
      "parents": [
        "183eb5fb74b9c723ba8e8da9b3c962031bac2c6a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 09 14:43:01 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 09 14:43:01 2018 -0700"
      },
      "message": "audio policy: re enable setForceUse for system apps.\n\nSome system apps (not having system AIDs) still need this\nhidden API due to lack of better option for media use case routing.\n\nAdd protection by privileged permission MODIFY_AUDIO_ROUTING instead.\n\nBug: 79475856\nTest: manual regression for music playback over speaker and bluetooth\nChange-Id: Icaa585a9fa4c043c291f24c9bab4a93f02406955\n"
    },
    {
      "commit": "744be48d57da2c39f1479bc5a5ad0b7589814704",
      "tree": "7c3130520c6336b859837f6eefe02fe85d5fafd5",
      "parents": [
        "84e84a5dd3b6d9ee4cf032e8d6206c70969b7107"
      ],
      "author": {
        "name": "Nadav Bar",
        "email": "nadavbar@google.com",
        "time": "Tue May 08 13:26:21 2018 +0300"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 08 16:00:00 2018 +0000"
      },
      "message": "Check voice call recording permission according to source.\n\nAdded a check for CAPTURE_AUDIO_OUTPUT according to the audio source, in\naddition to the already existing check according to the device type.\n\nTest: Tested manually.\nBug: 77228430.\n\nChange-Id: I84bbe41c9abcdbbd25354b2c160ae47c9c959de4\n"
    },
    {
      "commit": "3b7f469b1ead2428a50bf4049e32b7a81fb2b7f6",
      "tree": "210e40b23a608b6862988f838364434bdd6508cb",
      "parents": [
        "00838b0bc08a3eee51c458a8e560d36985973ef5",
        "84e84a5dd3b6d9ee4cf032e8d6206c70969b7107"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon May 07 11:14:24 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon May 07 11:14:24 2018 -0700"
      },
      "message": "collect more media metrics around audio\nam: 84e84a5dd3\n\nChange-Id: I3403aa6ec0f4bfd53a7ec80c8c45d28267797763\n"
    },
    {
      "commit": "84e84a5dd3b6d9ee4cf032e8d6206c70969b7107",
      "tree": "49fd8e4e911d62ac8be44ae91fdaf35902a234d9",
      "parents": [
        "527da4c9d30c977c0105a288b20a77f0f9e8d0d3"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu May 03 18:45:07 2018 -0700"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon May 07 16:32:02 2018 +0000"
      },
      "message": "collect more media metrics around audio\n\nnew fields in the media metrics \u0027audiorecord\u0027 record for more detail\nlength of time recorded, error conditions\nadd new media metrics type \u0027audiopolicy\u0027 that describes attempts to get\nmicrophone access -- success, failure on contention, what type of access\nwas requested, and (important for the contention) which programs are\ndoing the requesting and holding of the microphones.\n\nwhitelist the \u0027audiopolicy\u0027 metrics type with the  media.metrics service.\n\nBug: 78595399\nTest: concurrent/serial recordings, dumpsys media.metrics\nChange-Id: Ia17860940d4c329b0215b4cf97c6dacacb6a8e32\n"
    },
    {
      "commit": "126495229dde741826639e3e48eaa371cf58d4ee",
      "tree": "88711211e303476d1c859c9e0e3ae51e00d041ab",
      "parents": [
        "f4326116945b1d7a2717eb8b2a8a7cb8f31257c7",
        "8d57302e2deaf84c039d616f6423541813b48c75"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 30 17:54:37 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Apr 30 17:54:37 2018 -0700"
      },
      "message": "Merge \"AudioPolicyManager: Ensure direct output matches exact format\" into pi-dev\nam: 8d57302e2d\n\nChange-Id: I3005367e98e840800b72289565760488a47a9af2\n"
    },
    {
      "commit": "5659ed5327fbd6a412ecd65235eea68a5a59fd39",
      "tree": "cdbee9dc70ddf66800ec413587af91e182e98d81",
      "parents": [
        "e5a37268101a2c9d8019938f4e5ac9eec2e52fca"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 30 10:31:26 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 30 10:56:52 2018 -0700"
      },
      "message": "AudioPolicyManager: Ensure direct output matches exact format\n\nOtherwise AudioFlinger will fail on createTrack.\n\nTest: No regression on Play Music Offload playback\nBug: 77507038\nChange-Id: I0702e3047e385889861288072d4f5c6e99e8924d\n"
    },
    {
      "commit": "fd3ac44e7de0cd303ad12530378d4dfaf23e3526",
      "tree": "620a89afbb1ada5dd32a4924282e1a300d61efe8",
      "parents": [
        "9bdd82e1fcb4b74988c314eec3b506730a7b0c0d",
        "e5a37268101a2c9d8019938f4e5ac9eec2e52fca"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 30 09:51:29 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Apr 30 09:51:29 2018 -0700"
      },
      "message": "Merge \"Fix getOutputForAttr to avoid binder parameter in/out change\" into pi-dev\nam: e5a3726810\n\nChange-Id: Ic33233a6ccb3e291636f3d17cdc585ec7ce50b6b\n"
    },
    {
      "commit": "e5a37268101a2c9d8019938f4e5ac9eec2e52fca",
      "tree": "7d0c6be8f2a9bd25dc6703675a1df112a6d19172",
      "parents": [
        "487109674141a0adb4b173d9f7d682d29587fec3",
        "c88b06445e53ae806e94483a6ae8b2241fe3bf6f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 30 16:43:27 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 30 16:43:27 2018 +0000"
      },
      "message": "Merge \"Fix getOutputForAttr to avoid binder parameter in/out change\" into pi-dev"
    },
    {
      "commit": "c88b06445e53ae806e94483a6ae8b2241fe3bf6f",
      "tree": "af4d4c39a33d69d72813b2cf2b307669c892286b",
      "parents": [
        "ed4f0147db29c87d0404f78eb68dc7b7b81deed8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Apr 27 15:42:35 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Apr 27 18:28:00 2018 -0700"
      },
      "message": "Fix getOutputForAttr to avoid binder parameter in/out change\n\nBug: 78796725\nTest: test_interference.cpp\nChange-Id: Iab9f337d750910c896839c8905c945a181a133c7\n"
    },
    {
      "commit": "e9108d0f23dfb59f59da8a55db8c91f2bdc3297f",
      "tree": "bd2851c0307e2b9897570dd682b28cc705584a96",
      "parents": [
        "f854156ae82ba41965a3129df7fc1912fd36da5f",
        "90033d19134e13de6b7829db496925676c9d4d72"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 26 11:46:45 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 26 11:46:45 2018 -0700"
      },
      "message": "Merge \"audiopolicy: fix preferred device selection\" into pi-dev\nam: 90033d1913\n\nChange-Id: Id90deaf535ea24fcbc7024ca5832de675a9c847f\n"
    },
    {
      "commit": "2157f5bc0c54a77318e75076365eff739e07056f",
      "tree": "5e7ba0e1b401517aeaaebb68a8c6d2f7eab9a6e8",
      "parents": [
        "64da22285776f07a775afd45f9fc36cea1aa05e3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 25 18:33:02 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 25 18:33:02 2018 -0700"
      },
      "message": "audiopolicy: fix preferred device selection\n\nMake sure preferred device selection is taken into account\nin getOutputForAttr() even if called twice on the same session:\nForce changed flag when adding a SessionRoute even if\nthe same device is specified.\n\nAlso renamed SessionRoute isActive() to isActiveOrChanged() and\nhasRouteChanged() to getAndClearRouteChanged() for clarity.\n\nBug: 69680975\nTest: manual\nChange-Id: I3f3a659568c4dfc825a788753b0302136fd89871\n"
    },
    {
      "commit": "f4f01aafa5d45d2c5b1acb80bba9fcaa64e70e61",
      "tree": "b860d7d086757ab2c862f0a29059949e3e4f3084",
      "parents": [
        "f5afe9d02a05dee2dee99e5fd23c920bd38bcac9",
        "030cb3b698958d5b291598b96463b450888e1a27"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 20 19:23:33 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Apr 20 19:23:33 2018 -0700"
      },
      "message": "Merge \"audiopolicy: evaluate all outputs routing when call state changes\" into pi-dev\nam: 030cb3b698\n\nChange-Id: I237d237b388a1434b3dda8e4c3da682d5595e865\n"
    },
    {
      "commit": "030cb3b698958d5b291598b96463b450888e1a27",
      "tree": "3838e8db0f932797f143a4996ca07d2bfbfcf411",
      "parents": [
        "ed4f0147db29c87d0404f78eb68dc7b7b81deed8",
        "2e2a8a993de1aa65a7e174ee1152240779350456"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Apr 21 01:41:19 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Apr 21 01:41:19 2018 +0000"
      },
      "message": "Merge \"audiopolicy: evaluate all outputs routing when call state changes\" into pi-dev"
    },
    {
      "commit": "2e2a8a993de1aa65a7e174ee1152240779350456",
      "tree": "a49c322cbf9216ed7258c28539388b98d343de06",
      "parents": [
        "6b6f4313aae039f2d73664816e45834e65f79bf5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 20 16:21:33 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 20 16:30:02 2018 -0700"
      },
      "message": "audiopolicy: evaluate all outputs routing when call state changes\n\nWhen call state changes, it is possible that some outputs are active in\nwhich case their routing must be reevaluated.\nThis generalizes this behavior already implemented when a device is\nconnected/disconnected or a forced usage changed.\n\nThis is normally not needed as music is paused when a call is active\nbut there can be some race conditions where music resumes before the\naudio mode is actually updated due to the asynchronous nature of audio\nfocus and audio mode management.\n\nBug: 78248310\nTest: repro steps in bug. Audio smoke tests\nChange-Id: If491eb879a90cf29025bedb2bc77210f052bcb6a\n"
    },
    {
      "commit": "150b9846f846165344910b9211739cdb3054ccf4",
      "tree": "cb14ef2c92dc6210a145e34eef3e310f475262ff",
      "parents": [
        "56aad0ab6a23bfa750a3542f6bdcd21b70f082ac"
      ],
      "author": {
        "name": "Petri Gynther",
        "email": "pgynther@google.com",
        "time": "Tue Apr 17 18:46:10 2018 -0700"
      },
      "committer": {
        "name": "Petri Gynther",
        "email": "pgynther@google.com",
        "time": "Fri Apr 20 01:07:22 2018 -0700"
      },
      "message": "A2DP offload: switch to new properties + swap audio XML files\n\nBug: 63932139\nBug: 76201991\nTest: Manual A2DP testing (A2DP offload enabled and disabled)\nChange-Id: I08363a5ee3ede339f1c25baa70d44066d657d967\nMerged-In: I08363a5ee3ede339f1c25baa70d44066d657d967\n"
    },
    {
      "commit": "5a17cf8d6cf2bff974965d87e3ac5f6a05b3c666",
      "tree": "b71116c3a0be80ab0dc62d7ec1a17ea0f775c6ed",
      "parents": [
        "b7d75dd1106af8d0b1c1d82826b317d88598a963",
        "0bd5a3661d38b9c84cfc87b70d415e55d05e2f6f"
      ],
      "author": {
        "name": "Petri Gynther",
        "email": "pgynther@google.com",
        "time": "Fri Apr 20 00:55:21 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Apr 20 00:55:21 2018 -0700"
      },
      "message": "Merge \"A2DP offload: switch to new properties + swap audio XML files\" am: 80236d253e\nam: 0bd5a3661d\n\nChange-Id: If6509649831cf90112d83e485f9718300dfe924e\n"
    },
    {
      "commit": "f497f293021d2f983547c271db2cd11038100e93",
      "tree": "11d0ad8e3c0b6836d277bea01708e7bf3491d9f5",
      "parents": [
        "91a45a421b3598e3519a3d459957959e94b4d3c1"
      ],
      "author": {
        "name": "Petri Gynther",
        "email": "pgynther@google.com",
        "time": "Tue Apr 17 18:46:10 2018 -0700"
      },
      "committer": {
        "name": "Petri Gynther",
        "email": "pgynther@google.com",
        "time": "Thu Apr 19 11:34:50 2018 -0700"
      },
      "message": "A2DP offload: switch to new properties + swap audio XML files\n\nBug: 63932139\nBug: 76201991\nTest: Manual A2DP testing (A2DP offload enabled and disabled)\nChange-Id: I08363a5ee3ede339f1c25baa70d44066d657d967\n"
    },
    {
      "commit": "9321acfedc2fa6a298b6bd01d8a5a2f3a7c02373",
      "tree": "bec9e436f9389d5f550371f8e12dce26b67f02b1",
      "parents": [
        "91c133891afca55e4f0386711d6614d993c85a20",
        "6b6f4313aae039f2d73664816e45834e65f79bf5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 18 14:01:57 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 18 14:01:57 2018 -0700"
      },
      "message": "Merge \"Fix string copy termination\" into pi-dev\nam: 6b6f4313aa\n\nChange-Id: I00ab5500c03a216d8506eed4ab757ee272c4d0fd\n"
    },
    {
      "commit": "7e820c5cfdc8d9fd2f8c34ffe287f2479b6577d2",
      "tree": "1df43cf09ba654b6dc9e6feb5ef472ed35dc430d",
      "parents": [
        "018c8a09a35c6da526af2bcb130522ed593e9432"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 17 19:52:45 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 17 19:52:45 2018 -0700"
      },
      "message": "Fix string copy termination\n\nTest: CTS regression\nBug: 78198288\nChange-Id: Id433eb3197d4faf530d5f5090ff95e51689e7088\n"
    },
    {
      "commit": "e61d413a0f85d53018eddecfd84ce9b743363f9b",
      "tree": "8e7139ec8b8717efd7731cc0d0b05f700e62c5d8",
      "parents": [
        "b3015a96982378dfe6ac5578f941c3480d303816",
        "018c8a09a35c6da526af2bcb130522ed593e9432"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 17 11:05:56 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 17 11:05:56 2018 -0700"
      },
      "message": "Merge \"audioflinger: filter out reserved keys from setParameters()\" into pi-dev\nam: 018c8a09a3\n\nChange-Id: Icbd50d59bc34e5fe5e5144af3d42c9a019eefd0c\n"
    },
    {
      "commit": "018c8a09a35c6da526af2bcb130522ed593e9432",
      "tree": "be6e579d648bb398ae43c9c4a15f4aa01760a41b",
      "parents": [
        "f255369091d48ba7475ee4aae840a8a9c7a15f07",
        "f1047e87767be1acd2c32f4d36028d1d0014f4c0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 17 17:53:28 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 17 17:53:28 2018 +0000"
      },
      "message": "Merge \"audioflinger: filter out reserved keys from setParameters()\" into pi-dev"
    },
    {
      "commit": "b3015a96982378dfe6ac5578f941c3480d303816",
      "tree": "3a345235085043df7704cd5c15f66244050723a2",
      "parents": [
        "56f91c54055d2d36b19d22abf391004fb1d9843e",
        "f255369091d48ba7475ee4aae840a8a9c7a15f07"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 17 10:15:36 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 17 10:15:36 2018 -0700"
      },
      "message": "Merge changes from topic \"silence_mmap_capture_fix\" into pi-dev\nam: f255369091\n\nChange-Id: I2e7140f8c5ff6fb26783adcc38c03641a2e0aac8\n"
    },
    {
      "commit": "f255369091d48ba7475ee4aae840a8a9c7a15f07",
      "tree": "41a75f7dece0aae3664a6ab896535580bd38a85d",
      "parents": [
        "85d2e91d3cb2faaf42338df28d34c1cc1bc968bd",
        "0389387677385a5ab0341e7505258f489e5aacf5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 17 16:55:26 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 17 16:55:26 2018 +0000"
      },
      "message": "Merge changes from topic \"silence_mmap_capture_fix\" into pi-dev\n\n* changes:\n  audiopolicy: fix shared mmap capture\n  audioflinger: fix mmap interface callback lock\n  Revert \"Revert \"audioflinger: implement silenced capture for mmap\"\"\n"
    },
    {
      "commit": "f1047e87767be1acd2c32f4d36028d1d0014f4c0",
      "tree": "4affc2ed3ee3f81e94f90dd4d3a012afa0ee364e",
      "parents": [
        "554e08c6b00b2a57348f4545d450915a9e8c870a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 16 19:18:20 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 17 09:45:32 2018 -0700"
      },
      "message": "audioflinger: filter out reserved keys from setParameters()\n\nOnly allow setParameters() for reserved keys when received from\naudioserver UID. For instance, keys used to control routing or audio\nstream configuration are reserved for use by audio policy manager.\n\nAlso use multiuser_get_app_id() instead of duplicated code to\nextract application ID from UID.\n\nBug: 77869640\nTest: manual audio smoke tests.\nChange-Id: I88852e8fddf7f705e4a084fc02d9ced1f4b0de92\n"
    },
    {
      "commit": "56f91c54055d2d36b19d22abf391004fb1d9843e",
      "tree": "7611968dd6e86273c66464a67057c4b72606e66c",
      "parents": [
        "f0d93bf6e4955892e9ae76c158e226ce9dec758a",
        "85d2e91d3cb2faaf42338df28d34c1cc1bc968bd"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Apr 17 07:50:30 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 17 07:50:30 2018 -0700"
      },
      "message": "Merge \"Make AudioPolicyManager::getInputForDevice prefer profile match on input fast flag\" into pi-dev\nam: 85d2e91d3c\n\nChange-Id: I53a34a352c845373aca3f8441c5e15db5f7c58e0\n"
    },
    {
      "commit": "85d2e91d3cb2faaf42338df28d34c1cc1bc968bd",
      "tree": "da64b9ee9d8f23b0dfa295ffd241121bb924d17f",
      "parents": [
        "554e08c6b00b2a57348f4545d450915a9e8c870a",
        "730b926555ccb9ad5f7d4c47bf01ade526cceef0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Apr 17 14:39:19 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 17 14:39:19 2018 +0000"
      },
      "message": "Merge \"Make AudioPolicyManager::getInputForDevice prefer profile match on input fast flag\" into pi-dev"
    },
    {
      "commit": "f0d93bf6e4955892e9ae76c158e226ce9dec758a",
      "tree": "da4697cf6ccff34fe53c071ab1d3386ea059d0cc",
      "parents": [
        "3fab4693929df83e5963f68e4f40d1d20a16bc0e",
        "554e08c6b00b2a57348f4545d450915a9e8c870a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 16 17:29:43 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Apr 16 17:29:43 2018 -0700"
      },
      "message": "Merge \"Revert \"audioflinger: implement silenced capture for mmap\"\" into pi-dev\nam: 554e08c6b0\n\nChange-Id: I4844d586d7e0916bf1308d663ad486445021a125\n"
    },
    {
      "commit": "0389387677385a5ab0341e7505258f489e5aacf5",
      "tree": "2120e789a785be627628652b86aa3e66c832b057",
      "parents": [
        "734046ead103df5ec86b1dbd29e9945034a1ecb0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 16 16:53:54 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 16 17:08:26 2018 -0700"
      },
      "message": "audiopolicy: fix shared mmap capture\n\nChange default maxActiveCount for MMAP input profiles to 0 (unlimited)\nto enable simultaneaous capture by several streams in shared mmap mode.\n\nBug: 72134552\nTest: \u0027adb shell write_sine_callback -m3 -pl -s100 -x\u0027 and Plug headphones in and out.\nTest: AAudio CTS tests\n\nChange-Id: I8743c2a8afb043c20babf8716878e5ca44bd72a4\n"
    },
    {
      "commit": "331679c8a5cd21a0e6a7a1d851e965e4721f7420",
      "tree": "9e3835bb805631ca42a90ded01796b73307a4642",
      "parents": [
        "554e08c6b00b2a57348f4545d450915a9e8c870a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 16 17:03:16 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 16 17:08:06 2018 -0700"
      },
      "message": "Revert \"Revert \"audioflinger: implement silenced capture for mmap\"\"\n\nThis reverts commit 611ebb95e76c230214780b7b583b8a3c5277ac7a.\n\nBug: 78118584\nbug: 72134552\nTest: \u0027adb shell write_sine_callback -m3 -pl -s100 -x\u0027 and Plug headphones in and out.\nTest: AAudio CTS tests\nChange-Id: I7558ad7b9c6c2d352ebce105382fe914c26fd35e\n"
    },
    {
      "commit": "554e08c6b00b2a57348f4545d450915a9e8c870a",
      "tree": "b66615256ee7a7eeac8a7e54c54c2fd872a3fdd0",
      "parents": [
        "c620796251df712274c16858c76628d802bbb4b1",
        "611ebb95e76c230214780b7b583b8a3c5277ac7a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 16 23:52:19 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 16 23:52:19 2018 +0000"
      },
      "message": "Merge \"Revert \"audioflinger: implement silenced capture for mmap\"\" into pi-dev"
    },
    {
      "commit": "23dc173c4f50a87ee6cd1ec1eb7c8041acd39012",
      "tree": "42a911e9f9a19bfafc68404b5abdd5cc0601a762",
      "parents": [
        "0ab5cce82dea09f921f5cdceee2bc06252fd8d01",
        "ef22118bd17471d63040015df8e3f77230a9d2af"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 16 16:17:56 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Apr 16 16:17:56 2018 -0700"
      },
      "message": "Merge \"audiopolicy: clear caller identity before calling audio policy manager\" into pi-dev\nam: ef22118bd1\n\nChange-Id: I2fe15c27a0b8502510b27e6f9e3ec04e698374c3\n"
    },
    {
      "commit": "ef22118bd17471d63040015df8e3f77230a9d2af",
      "tree": "2f1f93e3d39e322b6b312fb48d199eb66b7d5a17",
      "parents": [
        "4dce3415f7b9be55f0a889dc0451d3931b2060bb",
        "10b7123bd6ce29fe756422aeedc5cfe469c4309f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 16 22:20:06 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 16 22:20:06 2018 +0000"
      },
      "message": "Merge \"audiopolicy: clear caller identity before calling audio policy manager\" into pi-dev"
    },
    {
      "commit": "611ebb95e76c230214780b7b583b8a3c5277ac7a",
      "tree": "1c8ef30309a0954a51a6b4c872f30ca399f064d2",
      "parents": [
        "a2f478ca0b2bda8db9b321f0cfa9e9d3cf6130f9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 16 19:43:59 2018 +0000"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 16 19:43:59 2018 +0000"
      },
      "message": "Revert \"audioflinger: implement silenced capture for mmap\"\n\nThis reverts commit a2f478ca0b2bda8db9b321f0cfa9e9d3cf6130f9.\n\nBug: 78118584\nChange-Id: Ie0da3dea445f2474c7a889c5f9919305c1c96d40\n"
    },
    {
      "commit": "730b926555ccb9ad5f7d4c47bf01ade526cceef0",
      "tree": "86d3404a2113dca7252c57f56829ec73d8569690",
      "parents": [
        "c4b259a584be3e7dc9aad83e0ead06c913ceb998"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 29 15:01:26 2018 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 16 12:16:16 2018 -0700"
      },
      "message": "Make AudioPolicyManager::getInputForDevice prefer profile match on input fast flag\n\nBug: 77292903\nTest: log name of selected profile\nChange-Id: Idad75627f399f01f353d49d5fd78d7cdb2953d60\n"
    },
    {
      "commit": "37bca533ccb05523407abb2b3907ddf67277e8fa",
      "tree": "3fc19a46879cb183a4d4af708cf7a62fd5d89822",
      "parents": [
        "ab45dbb1e9d0aaf354121d1cbd19f6eb92aa8625",
        "6c23e5b1dfa4a3764555b35e74cff938b56e7f99"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Sat Apr 14 19:21:24 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Apr 14 19:21:24 2018 -0700"
      },
      "message": "Merge \"AudioPolicy: fix volume curve query for min/max index\" into pi-dev\nam: 6c23e5b1df\n\nChange-Id: Ie9533d5bfc5d8e22a9edc0a5e376420e30f95196\n"
    },
    {
      "commit": "6c23e5b1dfa4a3764555b35e74cff938b56e7f99",
      "tree": "02c622b05cc49e81d2251167e2f229c5c072f86a",
      "parents": [
        "47887b0b5262f12f2bfbd04b4c4f8b6b62173b87",
        "1443bf8fff29b94470819aa1647bbc98d5780436"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Apr 14 02:08:20 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Apr 14 02:08:20 2018 +0000"
      },
      "message": "Merge \"AudioPolicy: fix volume curve query for min/max index\" into pi-dev"
    },
    {
      "commit": "10b7123bd6ce29fe756422aeedc5cfe469c4309f",
      "tree": "340803c949b9500ce5e2873fbf874fcec782fd3f",
      "parents": [
        "258fb48d1498c8d34d6877700db993938cc89f71"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 13 18:14:44 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 13 18:18:49 2018 -0700"
      },
      "message": "audiopolicy: clear caller identity before calling audio policy manager\n\nAudio policy manager methods must always be executed with the\nlevel of priviledge of audioserver process.\nAfter checking calling permissions, audio policy service will\nclear binder caller identity before calling into audio policy manager.\n\nAlso add restrictions for start source and stop source binder\ntransactions.\n\nBug: 77869640\nTest: manual audio smoke tests\nChange-Id: I993d4fddcea9bfa3f44093c38406b85d69ca8890\n"
    },
    {
      "commit": "1443bf8fff29b94470819aa1647bbc98d5780436",
      "tree": "1dd2f79f5e3807101c757fad512cd6af5a993a8b",
      "parents": [
        "247cc0a3c81ec629a2ae51b40bdcb2afc0e94210"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Apr 13 17:46:54 2018 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Apr 13 17:46:54 2018 -0700"
      },
      "message": "AudioPolicy: fix volume curve query for min/max index\n\nFunction to look up dB attenuation from index in volume curve\n  didn\u0027t check against invalid index values.\n\nBug: 77731632\nTest: cts-tradefed run cts-dev -m CtsMediaTestCases -t android.media.cts.AudioManagerTest#testGetStreamVolumeDb\nChange-Id: Ia89cdbe84dcd586f54b5d08de3774054197aada0\n"
    },
    {
      "commit": "d25975fd2a84fa2bdc2f1b230d8ce1b3ffb683db",
      "tree": "dea0abd4e315faf0f7d8db96d54ec3749a1f59e6",
      "parents": [
        "476d050d3d4044b78a37b98411e33cc5f92d9b2d",
        "258fb48d1498c8d34d6877700db993938cc89f71"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 13 08:21:28 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Apr 13 08:21:28 2018 -0700"
      },
      "message": "Merge \"audio policy: make input device selection more consistent\" into pi-dev\nam: 258fb48d14\n\nChange-Id: I0a66540bd05d6e376fde5e24c5a2bdf0f1776a95\n"
    },
    {
      "commit": "258fb48d1498c8d34d6877700db993938cc89f71",
      "tree": "cec857b4eae1562b17b5a1e37faeadd3cbe2064b",
      "parents": [
        "c16f23e399969e9d82f0b245afb0870fa448e78e",
        "dc95a25769edbe9c47efd1e25962dbd399056157"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 13 15:14:34 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 13 15:14:34 2018 +0000"
      },
      "message": "Merge \"audio policy: make input device selection more consistent\" into pi-dev"
    },
    {
      "commit": "dc95a25769edbe9c47efd1e25962dbd399056157",
      "tree": "eccaa28c2227d69213c7649cb191a96e3e6b23b6",
      "parents": [
        "9fc25229e0723c93b453ab34957f22a643e2b602"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 12 12:46:56 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 12 18:33:50 2018 -0700"
      },
      "message": "audio policy: make input device selection more consistent\n\nMove logic forcing capture device selection when in call\nto engine so that the selection made when opening a capture stream\nis consistent with the selection made when starting the stream.\n\nBug: 73148976\nTest: manual with Oboe tester\nChange-Id: Iee91ffff7d06fc98fdb2c6b54ff1528e7a82596d\n"
    },
    {
      "commit": "476d050d3d4044b78a37b98411e33cc5f92d9b2d",
      "tree": "8bed5d50f8d97ebbb323e0ff3564cdba0d708a3c",
      "parents": [
        "43e143a93a1a730354ed0913c73b50a614599981",
        "c16f23e399969e9d82f0b245afb0870fa448e78e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 12 18:22:59 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 12 18:22:59 2018 -0700"
      },
      "message": "Merge \"audioflinger: implement silenced capture for mmap\" into pi-dev\nam: c16f23e399\n\nChange-Id: I14571f66f097e067edc8b93f0eeaf2c778f1c962\n"
    },
    {
      "commit": "a2f478ca0b2bda8db9b321f0cfa9e9d3cf6130f9",
      "tree": "00e39e41acac99cc35c292c65c7bca60973fdd5a",
      "parents": [
        "9fc25229e0723c93b453ab34957f22a643e2b602"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 10 19:09:40 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 11 19:07:45 2018 -0700"
      },
      "message": "audioflinger: implement silenced capture for mmap\n\nImplement silencing of audio capture for idle UIDs for\nMMAP streams.\n\nUse audio HAL setMicGain() API to silence the mmap buffer for\nexclusive mode and when only one client is active in shared mode.\n\nAdd new MmapStreamCallback method onStreamSilenced() for AAudio\nservice to selectively silence streams from silenced UIDs in\nshared mode.\n\nBug: 72134552\nTest: manual\nChange-Id: I7c92ba0002bc5ba003c1a3c887edddf9ae53b538\n"
    },
    {
      "commit": "2c4019fab93d23523b07820ecf21f30849b78f1f",
      "tree": "a46a309917c64ea9591c3816fc8670fa0edc43fc",
      "parents": [
        "18008a8b4560bb421a90f2cd5fbc2c9e0fffc142",
        "4354cf89469067ef9a264d67b4bfef35213fa60a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 09 12:20:50 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Apr 09 12:20:50 2018 -0700"
      },
      "message": "Merge \"audio policy: fix notification + voicemail routing\" into pi-dev\nam: 4354cf8946\n\nChange-Id: I9d2a33601be09730530b05343f43570438976ed7\n"
    },
    {
      "commit": "4354cf89469067ef9a264d67b4bfef35213fa60a",
      "tree": "05578bff5e5334784f0dc036b11059cc6933c188",
      "parents": [
        "fa33327eb3b81bf1f2173bef0d13ced98b1221c1",
        "7731b5add3a8ba0f57d8f4b299ba7a432ecc7119"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 09 19:00:14 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 09 19:00:14 2018 +0000"
      },
      "message": "Merge \"audio policy: fix notification + voicemail routing\" into pi-dev"
    },
    {
      "commit": "7731b5add3a8ba0f57d8f4b299ba7a432ecc7119",
      "tree": "504268c3b58c3cd373ce4a0062b7b70edb107615",
      "parents": [
        "79d1ed9b6473f4d094aaa6b53f41a6ba92916e42"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 06 15:47:22 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 09 09:13:56 2018 -0700"
      },
      "message": "audio policy: fix notification + voicemail routing\n\nConsider an active VOICE_CALL stream as an indication\nthat notification routing and volume should match voice call routing.\n\nAlso limit notification volume to match current VOICE_CALL volume index,\nnot just VOICE_CALL volume curve with notification volume index.\n\nBug: 74019016\nTest: manual: receive notification while listening to voicemail and\ncheck volume and routing.\n\nChange-Id: Ia9309bdb10b42f6a4fa8745daf3129c90d44f0b8\n"
    },
    {
      "commit": "199ec2485fd746799e469c0cfd67bfe30981e519",
      "tree": "4b1c0ec2c44eaf55394f441998ba51de5d9e55bf",
      "parents": [
        "177b95a7309fd29faa6438fad14146bde14b2a6c",
        "836949cbc2e7a79102e20d766927a061f3f762c7"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Apr 06 10:10:32 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Apr 06 10:10:32 2018 -0700"
      },
      "message": "Merge \"Init gain config to prevent uninit leak.\" into pi-dev\nam: 836949cbc2\n\nChange-Id: I61ce147f90408f10789764bbd4c9d29c8bb3f378\n"
    },
    {
      "commit": "836949cbc2e7a79102e20d766927a061f3f762c7",
      "tree": "0bb9128fdca1e1862f3a4f0560cdcdc91ce38297",
      "parents": [
        "07ea253a2189d5c7a18f6ea18929789348780082",
        "f2f6999b329654641e6af29678f5aa047325d3a0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 06 17:00:04 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 06 17:00:04 2018 +0000"
      },
      "message": "Merge \"Init gain config to prevent uninit leak.\" into pi-dev"
    },
    {
      "commit": "f2f6999b329654641e6af29678f5aa047325d3a0",
      "tree": "4d0ee59b5c7a5782708374f54ea154c270dbb5f5",
      "parents": [
        "93768b1382f021f29772cc72da6f48dc2fb225f7"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Apr 05 17:16:20 2018 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Apr 05 17:16:20 2018 -0700"
      },
      "message": "Init gain config to prevent uninit leak.\n\nIn AudioPortConfig, we only initialize index for audio_gain_config, but\nnot other fields. That may cause uninit leak at listAudioPorts and\nlistAudioPatches.\n\nBug: 77238250\nBug: 77238762\nTest: try repo steps at the bug description.\nChange-Id: I57e3bd0598f9aa698a6fa3d3c0218b046de34e2f\n"
    },
    {
      "commit": "42a6dd5492869f33f42faa86cee4be3ee8395239",
      "tree": "363e9e674ae392346a4622beaecad15a3db57718",
      "parents": [
        "eead9b0533a7bdee199e93cff112e37bce5bc313",
        "2383098d54b6503875bdf0c6b649fa66f22d79ac"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Apr 05 11:48:02 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 05 11:48:02 2018 -0700"
      },
      "message": "Merge \"Clear input routing when closeAllInputs().\" into pi-dev\nam: 2383098d54\n\nChange-Id: Ic35aca73024b4676d1776e2532b45f4d33781607\n"
    },
    {
      "commit": "2383098d54b6503875bdf0c6b649fa66f22d79ac",
      "tree": "fe84dc2f8106f3eca08b4dce0788e00970ea94d0",
      "parents": [
        "ef3dbdbf730a1921aa387eec81f0cd0d46f9260b",
        "829a00bd6e54ce78fe1a28d8739988e24ec4ab6d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 05 18:38:53 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 18:38:53 2018 +0000"
      },
      "message": "Merge \"Clear input routing when closeAllInputs().\" into pi-dev"
    },
    {
      "commit": "990504df286194f7da7993f095cd308e1452853f",
      "tree": "fac734b46702b970d95cc993f81d992c2deef6fb",
      "parents": [
        "43e13d2c5c15415816034ecc71b39a3601367b65",
        "eba668adbdee1ecfcf00fa9f9fc066c022cfddba"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Apr 05 09:46:45 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 05 09:46:45 2018 -0700"
      },
      "message": "AudioPolicyService: Fix typo in UidPolicy::isUidActive\nam: eba668adbd\n\nChange-Id: If7b3c8cf8c49b401fb9fa859662eb8daf29df7b0\n"
    },
    {
      "commit": "eba668adbdee1ecfcf00fa9f9fc066c022cfddba",
      "tree": "b6935bd6cfd0d641abd14d20240f2b3fdad7df80",
      "parents": [
        "79d1ed9b6473f4d094aaa6b53f41a6ba92916e42"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Apr 05 08:13:15 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Apr 05 08:13:15 2018 -0700"
      },
      "message": "AudioPolicyService: Fix typo in UidPolicy::isUidActive\n\nCopy-paste bug.\n\nBug: 77300296\nBug: 77624334\nTest: make\nChange-Id: Id5352dafe70003d7027a2ec71144570ac927ea73\n"
    },
    {
      "commit": "fcefd95f02ba5484b021b3bb2e7280dd69da7800",
      "tree": "c8c8d31a907d1f470e81c23423679ec9d0de3223",
      "parents": [
        "8c0d4456caabda79f40bcf6261428808de4a5699",
        "63977aac6db1bd75a1a1abac3b8836a77b46e09b"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Apr 04 18:04:13 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 04 18:04:13 2018 -0700"
      },
      "message": "Merge \"AudioPolicyService: Properly handle service restarts in UidPolicy\" into pi-dev\nam: 63977aac6d\n\nChange-Id: Iadf1a052c8bbcf27335444e54c6c96ff53323379\n"
    },
    {
      "commit": "63977aac6db1bd75a1a1abac3b8836a77b46e09b",
      "tree": "58bfd5c0c676fb0c20ced94003a1f4de3316e1e7",
      "parents": [
        "e2bd0d498f9f5e9ddac0eb8a0685fc2d7f51745b",
        "eae73eb726c141056caf5a7ff95d45c3bcdd999f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 05 00:49:24 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 00:49:24 2018 +0000"
      },
      "message": "Merge \"AudioPolicyService: Properly handle service restarts in UidPolicy\" into pi-dev"
    },
    {
      "commit": "829a00bd6e54ce78fe1a28d8739988e24ec4ab6d",
      "tree": "6cd0612f5863821718acc89a134c9e41457da163",
      "parents": [
        "93768b1382f021f29772cc72da6f48dc2fb225f7"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Apr 04 16:28:32 2018 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Apr 04 16:28:32 2018 -0700"
      },
      "message": "Clear input routing when closeAllInputs().\n\nWhen the device disconnect, all inputs will be closed before calling\nreleaseInput(). In that case, input route ref count will be wrong due to\nroute couldn\u0027t be removed in releaseInput() since the input is already\nclosed, that may cause the routing error. Clear input routes to prevent\nthe routing error when closing all inputs.\n\nBug: 77520691\nTest: Reconnecting the usb device, check the input routing.\nChange-Id: I754cf2774c9c38b751f918b32e881b6d464a7a01\n"
    },
    {
      "commit": "eae73eb726c141056caf5a7ff95d45c3bcdd999f",
      "tree": "f0e034a867acf3af218b60a9bdc947ddc31e47cc",
      "parents": [
        "728f909a1fecb99e565a0239580c5e9fff264209"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Apr 03 16:57:36 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Apr 04 15:55:12 2018 -0700"
      },
      "message": "AudioPolicyService: Properly handle service restarts in UidPolicy\n\nAdd logic in UidPolicy for handling audioserver restarts as well\nas ActivityManager (system server) restarts.\n\nAlso, refactor the UidPolicy logic to simplify reasoning about\nactive state lookup. As a result, 4 layers are considered:\n\n1. Service UIDs--always active.\n2. Overrides--controlled via \u0027adb shell cmd\u0027.\n3. Cached UIDs from ActivityManager--also updated via IUidObserver.\n4. ActivityManager ground truth.\n\nBug: 73405145\nBug: 77300296\nTest: android.media.cts.AudioRecordTest#testRecordNoDataForIdleUids\n      manual tests with SoloTester\nChange-Id: I426dd5d4d9c9c2570c0e03dde390e18f672c1b1d\n"
    },
    {
      "commit": "74b178765dff710970e410ef040d1f4ad47055e9",
      "tree": "144503d8980d2343006d94ad8bed6f739bf9cb83",
      "parents": [
        "17ed5808e4a42565d695e3ba8cdf12a052c6f6b0",
        "7d08bf4ec05777c7089f1ccba1e42c09786a1511"
      ],
      "author": {
        "name": "Jakub Pawlowski",
        "email": "jpawlowski@google.com",
        "time": "Wed Apr 04 11:44:24 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 04 11:44:24 2018 -0700"
      },
      "message": "Build fix - add sHearingAidVolumeCurve definition in Gains.h\nam: 7d08bf4ec0\n\nChange-Id: I3d13d9023f924a2d8889da0dda4bd3facb2aecef\n"
    },
    {
      "commit": "7d08bf4ec05777c7089f1ccba1e42c09786a1511",
      "tree": "d6baa9fdf9a7abacac1cb403cf48a706885df805",
      "parents": [
        "24b0a892cd14a0852277f325f7bb8dbceb420969"
      ],
      "author": {
        "name": "Jakub Pawlowski",
        "email": "jpawlowski@google.com",
        "time": "Wed Apr 04 10:58:20 2018 -0700"
      },
      "committer": {
        "name": "Jakub Pawlowski",
        "email": "jpawlowski@google.com",
        "time": "Wed Apr 04 18:01:57 2018 +0000"
      },
      "message": "Build fix - add sHearingAidVolumeCurve definition in Gains.h\n\nTest: compilation\nBug: 69623109\nChange-Id: I021834d8013eced600c669b1be3f08721fd35092\n"
    },
    {
      "commit": "17ed5808e4a42565d695e3ba8cdf12a052c6f6b0",
      "tree": "dac9b5ec10dbd86d6fc59716694c2c74f235021f",
      "parents": [
        "80003ee98f10522f93eedcfe258758b560ecb400",
        "24b0a892cd14a0852277f325f7bb8dbceb420969"
      ],
      "author": {
        "name": "Jakub Pawlowski",
        "email": "jpawlowski@google.com",
        "time": "Wed Apr 04 10:24:03 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 04 10:24:03 2018 -0700"
      },
      "message": "Hearing Aid volume curve\nam: 24b0a892cd\n\nChange-Id: I11cc381d28e932e6c26e5baaa1dd1c35cae6a5fc\n"
    },
    {
      "commit": "24b0a892cd14a0852277f325f7bb8dbceb420969",
      "tree": "7826feae528654ff25c2901c6ba8ec3feb51dbf7",
      "parents": [
        "e8c3ff270ef06ab3f4d016f864a92de7b78edd6d"
      ],
      "author": {
        "name": "Jakub Pawlowski",
        "email": "jpawlowski@google.com",
        "time": "Mon Apr 02 19:17:11 2018 -0700"
      },
      "committer": {
        "name": "Jakub Pawlowski",
        "email": "jpawlowski@google.com",
        "time": "Tue Apr 03 22:17:57 2018 -0700"
      },
      "message": "Hearing Aid volume curve\n\nHearing Aid uses volume value from -127 to 0dB. Make sure that volume\ncurve used is able to adjust volume in whole range.\n\nTest: play music using Hearing Aid, try lowering volume to smallest\nnon-mute value.\nBug: 69623109\nFixes: 76434849\nChange-Id: I8b8d64405016252f08ddda823fab74115352de4e\n"
    },
    {
      "commit": "c1f5dfcf02c31917c1ad3007009cefba7cec8020",
      "tree": "e98b87253711e3d22cc0214e1323bfe5828a3dad",
      "parents": [
        "c5ea47a9253b18cc0ecb6779117a66d0b451fffc",
        "93768b1382f021f29772cc72da6f48dc2fb225f7"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Apr 03 17:05:24 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 03 17:05:24 2018 -0700"
      },
      "message": "Merge \"Volume curves: alarm and accessibility can\u0027t be muted\" into pi-dev\nam: 93768b1382\n\nChange-Id: I31cc96abdbf4d05e43073e268a60b9007e9650f7\n"
    },
    {
      "commit": "93768b1382f021f29772cc72da6f48dc2fb225f7",
      "tree": "7c14ad6cdd0715173484bb47bd1164cc08f0dc0e",
      "parents": [
        "728f909a1fecb99e565a0239580c5e9fff264209",
        "bc4d3b86ba345d1ee91b0da73db6a26f3194fa31"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 03 21:08:29 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 03 21:08:29 2018 +0000"
      },
      "message": "Merge \"Volume curves: alarm and accessibility can\u0027t be muted\" into pi-dev"
    },
    {
      "commit": "bc4d3b86ba345d1ee91b0da73db6a26f3194fa31",
      "tree": "475b1c1100377fc91e0c3010881b9248c9da239c",
      "parents": [
        "1f03085b596f185d91ccae11b7c0d9f0bc8cd206"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Apr 02 15:31:45 2018 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Apr 02 18:20:46 2018 -0700"
      },
      "message": "Volume curves: alarm and accessibility can\u0027t be muted\n\nAdd new \"non mutable\" default volume curves, use them for alarm\n  and accessibility.\nVolume curves that start at 1 can be muted (at 0, attenuation\n  is -infinity): modify alarm and a11y curves to start at 0.\n\nBug: 72403580\nBug: 74985293\nTest: try to mute alarms through UI and fail\nChange-Id: Ieed1143f392b359198acabf986caa183536761a5\n"
    },
    {
      "commit": "04617b67c1d9fb085a7e747ca0155df45d0d2cf4",
      "tree": "30e75721714f5cdeba60074aa3b5b2b78fa898e9",
      "parents": [
        "af4d1a8e2a8bb2ed818d7db8e65e0e8b4e175e55",
        "fcf9a4c7e2d646154927a53d7a25bef5c4c380d7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Mar 31 10:29:21 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Mar 31 10:29:21 2018 +0000"
      },
      "message": "Merge \"audio policy: disable silencing of background UID record\" into pi-dev\nam: fcf9a4c7e2\n\nChange-Id: I796ecd2a3128522ab43c9bcb1b880148384d9af3\n"
    },
    {
      "commit": "fcf9a4c7e2d646154927a53d7a25bef5c4c380d7",
      "tree": "b56d15707685ce0732a54d637f968ac86a976b93",
      "parents": [
        "f2c4711aaed2a845e94a50c707c1ba7cec443443",
        "2af67733ac8616ccc763afaa6f6cfebeffc090a3"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 31 10:20:26 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 31 10:20:26 2018 +0000"
      },
      "message": "Merge \"audio policy: disable silencing of background UID record\" into pi-dev"
    },
    {
      "commit": "2af67733ac8616ccc763afaa6f6cfebeffc090a3",
      "tree": "50d7ecf1ef9fe42d3c09094ed143e574f50eac9d",
      "parents": [
        "2ad6e528d603fe45d170ecb56ed522fe467244fd"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 30 18:17:20 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 30 18:25:22 2018 -0700"
      },
      "message": "audio policy: disable silencing of background UID record\n\nThere is a problem when audioserver process restarts where we fail to\nreload the list of active UIDs causing silent capture for all apps\nuntil they are restarted.\n\nBug: 77300296\nBug: 63938985\nTest: crash audioserver and check that capture still works.\nChange-Id: Ie1a93c496516c1b7208780949054832a8a073044\n"
    },
    {
      "commit": "28eecdd3332df4658cb4c45f9deb537864656901",
      "tree": "3782f2f937967d72ff765dfcc18dee0732f602bd",
      "parents": [
        "c2c49ffaf0b6295092a600c86de0f26c7c3994ad",
        "83028d5920884992b16f34aca167cd6c27734d3c"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Mar 30 17:55:29 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 30 17:55:29 2018 +0000"
      },
      "message": "Merge \"Support query microphones information.\" into pi-dev\nam: 83028d5920\n\nChange-Id: I3c44938bcd6073a930687c45c94ebfc341331c75\n"
    },
    {
      "commit": "83028d5920884992b16f34aca167cd6c27734d3c",
      "tree": "84fcfdd9dbb1186a825a77270a69819c087ade7a",
      "parents": [
        "103f5a6268e820daa6a47c560e10a25514dd2ce1",
        "9ff780e58ff96ff98acaae4166bb218880bf9e73"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 30 16:59:41 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 30 16:59:41 2018 +0000"
      },
      "message": "Merge \"Support query microphones information.\" into pi-dev"
    },
    {
      "commit": "9ff780e58ff96ff98acaae4166bb218880bf9e73",
      "tree": "b54bf56b7f6ebc5950064d2908004abfe35d7162",
      "parents": [
        "2ca700737c14edc9141af170ee278853fd99fa87"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Mar 19 18:19:52 2018 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Mar 28 10:17:36 2018 -0700"
      },
      "message": "Support query microphones information.\n\nGet list of all/currently active microphones from hal.\n\nBug: 64038649\nTest: Manual Testing and Cts test\nChange-Id: Id39cae38ba040f9bc91571e713487f87c2eb67b0\n"
    },
    {
      "commit": "764bdbc8c2ffb1a04b85e6af589497f4e5bb3b43",
      "tree": "7d52b4a4080da19ed77b175180700f766ced9c19",
      "parents": [
        "2c0b75167db9f2577adb422dce0529649f28a236",
        "b1eb717472814adea3daa6b276af68d71a6b892f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 27 16:40:00 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Mar 27 16:40:00 2018 +0000"
      },
      "message": "Merge \"audioserver: fix UID checks for multi user\" into pi-dev\nam: b1eb717472\n\nChange-Id: Ib66e1c2f566c3e6241eda8bd2f4f5478ebedf991\n"
    },
    {
      "commit": "96c7eed596077ff84e75b7b1c6f20c3a29219bd1",
      "tree": "cf06852ef755e4d7dccfa81a7d3d4909d6159c60",
      "parents": [
        "bebc764c6b3e90024a56c9af4517a1a68713f3e7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 26 17:57:01 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 27 14:49:16 2018 +0000"
      },
      "message": "audioserver: fix UID checks for multi user\n\nFix UID checks in audioserver to take into account multi user UIDs\nwhere the top part above AID_USER_OFFSET contains the user number.\n\nBug: 76439650\nTest: manual audio smoke tests.\nChange-Id: I6dbd616021bcb2639c7b7369000ce911c7e7e030\n"
    },
    {
      "commit": "48842789e76bd4e5886ccd1ecc1514fc8886d011",
      "tree": "8cf3bbe7b8a59aff1bcc9379aa72524612869db8",
      "parents": [
        "3fdcae8a0ea22b2e5f1b4fbf79e7888b620aa1a7",
        "00f928c514fd5e2ea4004cb6e0ca665e337b57c4"
      ],
      "author": {
        "name": "Jakub Pawlowski",
        "email": "jpawlowski@google.com",
        "time": "Fri Mar 23 19:07:40 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 23 19:07:40 2018 +0000"
      },
      "message": "Hearing Aid: use same rules for ring tones and notifications as headsets\nam: 00f928c514\n\nChange-Id: Ie504e5104b2c91096e4c475037cb110d8e69bd72\n"
    },
    {
      "commit": "00f928c514fd5e2ea4004cb6e0ca665e337b57c4",
      "tree": "3a75499da404c6c18f755295b7a8eb8abb3d0746",
      "parents": [
        "4a6842fc1a5787b58474b8495b51ea624d81868c"
      ],
      "author": {
        "name": "Jakub Pawlowski",
        "email": "jpawlowski@google.com",
        "time": "Thu Mar 22 13:20:03 2018 -0700"
      },
      "committer": {
        "name": "Jakub Pawlowski",
        "email": "jpawlowski@google.com",
        "time": "Fri Mar 23 18:49:47 2018 +0000"
      },
      "message": "Hearing Aid: use same rules for ring tones and notifications as headsets\n\nBug: 74812203\nChange-Id: I505750c89efed10fb23fd064edf0e9166f7002bb\n"
    },
    {
      "commit": "95c3e899e9db5e95f92eb4cc56787216bc29f3ff",
      "tree": "a085d25841b84c44b9960a6274927c46477687b4",
      "parents": [
        "fe2fd8138735e7d2160308df9a30fc9091b9d83b",
        "2b82a9a1b1c675509a7dda60231b63f9a7b93ca0"
      ],
      "author": {
        "name": "Tomoharu Kasahara",
        "email": "tomoharu.kasahara@sony.com",
        "time": "Fri Mar 23 16:51:00 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 23 16:51:00 2018 +0000"
      },
      "message": "Merge \"The sonification sound is muted during a shutter sound\" am: a4c38d6eb4\nam: 2b82a9a1b1\n\nChange-Id: I899ee627557f15b16bd3dbc1a89a4be5f1030de2\n"
    },
    {
      "commit": "a4c38d6eb431ec2de5f8c918cb951523d22a453c",
      "tree": "c2347977f5cc5674ee685485842d19348b89bacf",
      "parents": [
        "39a4c1fd1b924ae74a32c1c15f21871a78b9e06a",
        "a81f098f1fa70a586ecf88478b44760b0d41a148"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 23 16:30:59 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 23 16:30:59 2018 +0000"
      },
      "message": "Merge \"The sonification sound is muted during a shutter sound\""
    },
    {
      "commit": "96117aeb26568ff9aecc97c189a297d5f0fca620",
      "tree": "b475374bf0e62cd7b0ac6e67a1789d69f492c134",
      "parents": [
        "ec57d7b565e1352e2c76040fb5df7614a164b157"
      ],
      "author": {
        "name": "Jack He",
        "email": "siyuanh@google.com",
        "time": "Mon Feb 12 20:52:53 2018 -0800"
      },
      "committer": {
        "name": "Jack He",
        "email": "siyuanh@google.com",
        "time": "Fri Mar 23 06:14:59 2018 +0000"
      },
      "message": "Bluetooth: Enable in-band ringing in vibration mode (3/4)\n\n* Add AUDIO_POLICY_FORCE_FOR_VIBRATE_RINGING mode to force Bluetooth SCO\n  in vibration mode\n* Modify default audio policy engine to route audio through SCO only\n  in AUDIO_POLICY_FORCE_FOR_VIBRATE_RINGING mode\n\nBug: 72647074\nTest: Call phone in vibration mode and hear ringtone on HFP enabled\n      headset, verify that ringtone is only played through headset.\n      Then disconnect headset and call again to verify that ringtone\n      does not play through phone speaker in vibration mode.\n\nChange-Id: I2185955bd51166b76156ffd4efdd1f2f01757518\n(cherry picked from commit 644693eee633980d356afcfedc7518ea7fed2c47)\n"
    },
    {
      "commit": "b62d78b72d9e63b93d869c9c8513f46235f83e03",
      "tree": "1274802d638242980024faf541c52748672cbbc8",
      "parents": [
        "337272811a792a9a6b2eac4e3796d365f80cd0d2"
      ],
      "author": {
        "name": "Tomoharu Kasahara",
        "email": "tomoharu.kasahara@sony.com",
        "time": "Thu Jan 18 20:55:02 2018 +0900"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Mar 20 10:45:53 2018 -0700"
      },
      "message": "The sonification sound is muted during a shutter sound\n\nIn order to fulfill requirements from some operators the\nshutter sound must be heard clearly when playing a ringtone.\nThe new policy is that STRATEGY_SONIFICATION will be muted\non an output if FORCE_SYSTEM_ENFORCED is set.\n\nBug: 72295489\nTest: Check if ringtone is muted when playing shutter sound.\nChange-Id: I10a9ee91eed747fa526260738636b7506bc1f7a5\n"
    },
    {
      "commit": "40ed77288020322f7ffb30c984a2b39c7329bc60",
      "tree": "5d654af67b15dd9fa885e2e03bf7402eb88282a0",
      "parents": [
        "e8f1fe680dc26c04ec8becec4bf690d0a5435b83",
        "2ad7939f0a4a1625913fa8d011e711050569b606"
      ],
      "author": {
        "name": "Petri Gynther",
        "email": "pgynther@google.com",
        "time": "Tue Mar 13 02:00:33 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 13 02:00:33 2018 +0000"
      },
      "message": "Merge \"audiopolicy: Add support for A2DP offload audio policy config\" into pi-dev"
    },
    {
      "commit": "adb11ed8d4bea4b7c6f2254ba1afd998bc72d5c0",
      "tree": "a90a5f696fbd4f50448d345c9493553b9cf007bc",
      "parents": [
        "323717613f804aa507faaec2f6bd6fcd75273849"
      ],
      "author": {
        "name": "Aniket Kumar Lata",
        "email": "alata@codeaurora.org",
        "time": "Wed Jan 31 20:26:59 2018 -0800"
      },
      "committer": {
        "name": "Pavlin Radoslavov",
        "email": "pavlin@google.com",
        "time": "Mon Mar 12 13:36:36 2018 -0700"
      },
      "message": "audiopolicy: Add support for A2DP offload audio policy config\n\nAdd support for A2DP offload audio policy config in\nAudioPolicyManager.\n\nBug: 68824150\nTest: A2DP offload verified on supported codecs\nChange-Id: Ie62eaa10218d24e6ec51d20413fb35426ed5498a\n(cherry picked from commit 713273460076a6559e31c770fe6c51861127fd5c)\n"
    },
    {
      "commit": "323717613f804aa507faaec2f6bd6fcd75273849",
      "tree": "656cb69b8076293c0a3a65807903cafe10e99d5a",
      "parents": [
        "05fa245462238847528cd18e04aa77f85b0491a4"
      ],
      "author": {
        "name": "Aniket Kumar Lata",
        "email": "alata@codeaurora.org",
        "time": "Wed Jan 31 20:24:23 2018 -0800"
      },
      "committer": {
        "name": "Pavlin Radoslavov",
        "email": "pavlin@google.com",
        "time": "Mon Mar 12 13:36:06 2018 -0700"
      },
      "message": "audiopolicy: Check if A2DP playback happens via primary output\n\nAudio policy implementation assumes A2DP playback to happen\nvia HW module other than the primary HAL. This need not be true\nalways, since primary audio HAL can support A2DP playback too.\nAdd an API to check if A2DP playback is supported via primary HAL,\nand if it is supported avoid suspendOutput.\n\nBug: 68824150\nTest: A2DP offload verified on supported codecs\nChange-Id: Ic5546bc2df632462dcc28442af561d05ba2d7c58\n(cherry picked from commit 68364ffbd312cdc28dd44e66c4d80ce5a6ec49ba)\n"
    },
    {
      "commit": "2ad7939f0a4a1625913fa8d011e711050569b606",
      "tree": "c479817b833fb09ecb710897f11fc747d223a920",
      "parents": [
        "dce7559514917e7975a0d2dcc11aaa97d770367a"
      ],
      "author": {
        "name": "Aniket Kumar Lata",
        "email": "alata@codeaurora.org",
        "time": "Wed Jan 31 20:26:59 2018 -0800"
      },
      "committer": {
        "name": "Petri Gynther",
        "email": "pgynther@google.com",
        "time": "Mon Mar 12 19:17:44 2018 +0000"
      },
      "message": "audiopolicy: Add support for A2DP offload audio policy config\n\nAdd support for A2DP offload audio policy config in\nAudioPolicyManager.\n\nBug: 63932139\nBug: 68824150\nTest: A2DP offload verified on supported codecs\nChange-Id: Ie62eaa10218d24e6ec51d20413fb35426ed5498a\n(cherry picked from commit 713273460076a6559e31c770fe6c51861127fd5c)\n"
    },
    {
      "commit": "a8ee996bc065d6938c0e0a5904df7fff5d946fea",
      "tree": "e335626781eed7e03d6bc68b110297ca2dedcd4f",
      "parents": [
        "dce7559514917e7975a0d2dcc11aaa97d770367a"
      ],
      "author": {
        "name": "Aniket Kumar Lata",
        "email": "alata@codeaurora.org",
        "time": "Wed Jan 31 20:24:23 2018 -0800"
      },
      "committer": {
        "name": "Petri Gynther",
        "email": "pgynther@google.com",
        "time": "Mon Mar 12 19:16:49 2018 +0000"
      },
      "message": "audiopolicy: Check if A2DP playback happens via primary output\n\nAudio policy implementation assumes A2DP playback to happen\nvia HW module other than the primary HAL. This need not be true\nalways, since primary audio HAL can support A2DP playback too.\nAdd an API to check if A2DP playback is supported via primary HAL,\nand if it is supported avoid suspendOutput.\n\nBug: 63932139\nBug: 68824150\nTest: A2DP offload verified on supported codecs\nChange-Id: Ic5546bc2df632462dcc28442af561d05ba2d7c58\n(cherry picked from commit 68364ffbd312cdc28dd44e66c4d80ce5a6ec49ba)\n"
    },
    {
      "commit": "58a73fc8445db7fc587e4ef494e59bf5663f8b77",
      "tree": "953f7a1db4c4b6da60818709f0efea126902d3b1",
      "parents": [
        "966c158717dea42a7aa4f69a002f30a73c8713cb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Feb 21 18:46:13 2018 -0800"
      },
      "committer": {
        "name": "Jakub Pawlowski",
        "email": "jpawlowski@google.com",
        "time": "Sat Mar 10 00:44:56 2018 +0000"
      },
      "message": "Add Bluetooth Hearing Aid routing and configuration\n\nBug: 69623109\nTest: connect to Hearing Aid, make phone call, verify audio is heard\nChange-Id: I92267fb48608fb721c5c4ef7ec9fceeafc8ea192\n"
    },
    {
      "commit": "6e64137e95362a8f6eef43ea676418567b327c96",
      "tree": "8a2ed91d013a14058c606d6f41d044ecca7e184e",
      "parents": [
        "dc9df6a12d848b32fbd041421c663d2014f32403"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Mar 02 09:21:30 2018 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Mar 09 21:49:03 2018 +0000"
      },
      "message": "Revert \"Revert \"Use start/finish app op API for mic use\"\"\n\nThis reverts commit 599ec462d94136949e0c90419ea99b0d9ba83eac.\n\nIn addition it fixes an incorrect comparison against opPackageName\ninstead of resolvedOpPackageName creating incorrect short circuit.\n\nTest: atest android.media.cts.AudioRecordAppOpTest\n      \"Okay Google\" works fine\n\nbug: 64085448\n\nChange-Id: I77a8486dfd6e4f020efdf05d28a856a32579ef31\n(cherry picked from commit 5b81f550759c975fe6716e4e7870b11e523834d0)\n"
    }
  ],
  "next": "2d059936882d8d6b8f73dedd4f9a043bdd36405a"
}
