)]}'
{
  "log": [
    {
      "commit": "cf10d743aedcd29a53f3a4f16a25565f5b462dd8",
      "tree": "17f4ba2cd404347873f8f059d620a2ec890a7529",
      "parents": [
        "c2b11cbcb88c5970fb4ec6ff8a562b1465dfa70a"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 28 15:38:24 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 30 17:39:50 2020 -0700"
      },
      "message": "ThreadMetrics: Add device-based statistics for audio\n\nCompute summary statistics based on the current device\nrather than the entire Audio Thread duration.\n\nTest: adb shell dumpsys media.metrics\nBug: 149850236\nChange-Id: Ie6d459b06b4a469401ee9e0c194e45ea5ce380c6\n"
    },
    {
      "commit": "c2b11cbcb88c5970fb4ec6ff8a562b1465dfa70a",
      "tree": "dedee4f6e9c95af20ef76e79bddbc79ed850781a",
      "parents": [
        "199012b0c66d555207d81fedb7cce16305c865f8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 22 09:04:01 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 30 17:18:26 2020 -0700"
      },
      "message": "TrackMetrics: Add device-based statistics for audio\n\nCompute summary statistics based on the current device\nrather than the entire AudioTrack or AudioRecord duration.\n\nTest: adb shell dumpsys media.metrics\nBug: 149850236\nChange-Id: Ia3a5707c43c4530f5a6ac90f52901bd2e0bd0bab\n"
    },
    {
      "commit": "2c4f8cec92e58141b2e8b246ef8dfe94d250be22",
      "tree": "8d0c44463f390fb88559c8fc499cdc2d20f34c7c",
      "parents": [
        "55bfd11fd19949f9a657eda09053901a2515060a",
        "0e26e3f980a9904f23f24b0390844dcfeedd1418"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 30 00:16:23 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 30 00:16:23 2020 +0000"
      },
      "message": "Merge \"Audio policy: fix areAllDevicesSupported()\" into rvc-dev"
    },
    {
      "commit": "0e26e3f980a9904f23f24b0390844dcfeedd1418",
      "tree": "537c172187d9dd6bf3155c0a2a9c85c7b0a06669",
      "parents": [
        "ec660f185a1e212b1d22125de81e9bd1d0ff58a3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 29 14:24:16 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 30 00:15:50 2020 +0000"
      },
      "message": "Audio policy: fix areAllDevicesSupported()\n\nFix areAllDevicesSupported() where HwModules.getDeviceDescriptor()\nmust be called with matchAddress \u003d\u003d true: if the caller does not want to\ndistinguish on address it can leave the address field empty in the\nAudioDeviceTypeAddr passed which has the same effect as using\nmatchAddress \u003d\u003d false.\n\nAlso fix places where device_distinguishes_on_address() was improperly\nused in place of audio_is_remote_submix_device().\n\nBug: 155224229\nTest: build and launch car emulator\nTest: AudioHostTest\nTest: AudioServiceHostTest\nTest: audiopolicy_tests\nTest: manual mirroring and car projection tests\nChange-Id: I74295de95bcd82e7fa439c396ae32749b9c70c05\n"
    },
    {
      "commit": "26f937a4c27a91f53e08ab6a584b0db81e9e0b66",
      "tree": "5ffe17f6df7db73d185a8b9537a97f93b28f1268",
      "parents": [
        "b79d3b8d4bfafc8600e4b01d8bf5d88f76876c63",
        "9b0d9534c75dc4d40edbf13938aa09c3eec737a1"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 29 23:00:11 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 29 23:00:11 2020 +0000"
      },
      "message": "Merge \"Camera: Fix off-by-1 error for scaling crop region\" into rvc-dev"
    },
    {
      "commit": "0a957d32556294b0f4209bb5b7914fd05d742751",
      "tree": "5890a5b9d69c9df0905b8652cb30e274c08b6d81",
      "parents": [
        "ec660f185a1e212b1d22125de81e9bd1d0ff58a3"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Apr 29 10:56:20 2020 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Apr 29 10:56:20 2020 -0700"
      },
      "message": "Check silent mode when updating output device.\n\nAfter refactoring audio device type, the output devices will only be set\nwhen create/release audio patch. In that case, the output devices are\nempty when creating the thread. If the \"ro.audio.silent\" is set, it will\nmake master muted if the output devices are empty. To fix the issue, do\nnot check silent mode when the output devices are empty, but check\nsilent mode when output devices are updated.\n\nTest: atest AudioHostTest with setting \"ro.audio.silent\"\nBug: 154037767\nChange-Id: I6cb219353e541ba99ba9acebd6ce853128d963d3\n"
    },
    {
      "commit": "ec660f185a1e212b1d22125de81e9bd1d0ff58a3",
      "tree": "2895b3bb6e630fe798eb3345f25942186a0734df",
      "parents": [
        "6d05a57e70a66ce0864db0387eb40df48d52bc4a",
        "c08f261af02a7678e81f6c1c2ca5c8453b5cfc0e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Apr 28 16:28:07 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 28 16:28:07 2020 +0000"
      },
      "message": "Merge \"fix audioflinger integer multiplication overflow\" into rvc-dev"
    },
    {
      "commit": "6d05a57e70a66ce0864db0387eb40df48d52bc4a",
      "tree": "115e842644461e9c2947d4fe34f983896c0075aa",
      "parents": [
        "5559ae7c9dabaf8b0bbfaf7553fef050f008f425",
        "c529cf6fa9b500506d675ec971909dba18cfb71b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 28 15:35:46 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 28 15:35:46 2020 +0000"
      },
      "message": "Merge \"audio policy: allow direct outputs for dynamic audio policies\" into rvc-dev"
    },
    {
      "commit": "d203eb6b3cd99af3c9616df2bd0d982796b0f918",
      "tree": "0f2cfa6c24a30d32913de484c6dd52514b37a9a3",
      "parents": [
        "2578a95a57dd9796b55095dc22b8171dd5da73c3"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 27 09:12:46 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 27 23:42:41 2020 -0700"
      },
      "message": "MediaMetrics: Use AllowUid property for services to control client access\n\nRemove implicit first client uid access.\n\nTest: adb shell dumpsys media.metrics\nBug: 149850236\nChange-Id: I4f953db4688bf5f174c3e1611f492f31d2926e96\n"
    },
    {
      "commit": "c08f261af02a7678e81f6c1c2ca5c8453b5cfc0e",
      "tree": "0856b7fce43c4044a150cfdd52a19475cc09820b",
      "parents": [
        "433ccf7dca6db9ffd774cd10d539ccf9d62e3f46"
      ],
      "author": {
        "name": "wendy lin",
        "email": "wendy.lin@mediatek.com",
        "time": "Wed Jun 12 10:37:11 2019 +0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 27 16:04:37 2020 -0700"
      },
      "message": "fix audioflinger integer multiplication overflow\n\nwhen underrun duration is over 3 sec, overflow happens\nfor multiplication of nsec\u003dsec*1000000000. Use correct format transform\nto solve it.\n\nBug: 135075416\nTest: run MTBF test\n\nChange-Id: I0a09ca41f2fad055ce0cfa18f936131b7a630f52\n"
    },
    {
      "commit": "c529cf6fa9b500506d675ec971909dba18cfb71b",
      "tree": "ebd662d9270ac9ca37849fa7a44b16fe73cd4abd",
      "parents": [
        "02d69c15b683418de39901a74f1eea8ddbfcbf40"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 17 18:19:10 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 27 14:42:06 2020 -0700"
      },
      "message": "audio policy: allow direct outputs for dynamic audio policies\n\nAdd support for direct outputs with RENDER audio policy mixes.\nA mix of type render can be registered even if no corresponding\noutput is opened to reach targeted device provided a direct output\nprofile exist for this device.\n\nAlso:\n- Fix setUidDeviceAffinities(): was not closing direct outputs\nopened by checkOutputsForDevice() and was not re-evaluating routes\n\n- Fix removeUidDeviceAffinities(): was not re-evaluating routes\n\n- Implement consistent sanity checks on selected devices in\nsetUidDeviceAffinities(), setUserIdDeviceAffinities() and\nsetPreferredDeviceForStrategy().\n\n- Fix onNewAudioModulesAvailableInt(): attached devices reachable only\nvia direct outputs were not loaded.\n\nBug: 130296239\nTest: AudioHostTest\nTest: AudioServiceHostTest\nTest: audiopolicy_tests\nTest: manual test: Auto projection over USB, screen mirroring\nChange-Id: I54470b61b4bc7e041e3a295764d368c5ded21268\n"
    },
    {
      "commit": "cc40c5fa11767eb9a87cf6e1a5e8a99d6cec2847",
      "tree": "7d2a46abbe29eb5b8ce6afacdf673eab55823ba5",
      "parents": [
        "784745befac68d978fe7abf09f0aeea33fb0e4ff",
        "a9876703e89afa6db42913d48e2360b7dad98725"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 24 14:30:58 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 24 14:30:58 2020 +0000"
      },
      "message": "Merge \"aaudio: add MediaMetrics for MMAP streams\" into rvc-dev"
    },
    {
      "commit": "a9876703e89afa6db42913d48e2360b7dad98725",
      "tree": "4e51b01b2fa4be83868318a1619e3b7c2f42f36e",
      "parents": [
        "6e89a0704605f4750f87a3243495b175c67e6fbb"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Apr 20 18:16:15 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Apr 23 18:00:10 2020 -0700"
      },
      "message": "aaudio: add MediaMetrics for MMAP streams\n\nLog events from service.\nLog start, stop, disconnect and other events.\nLog underruns and bufferSize.\n\nBug: 154543374\nTest: adb shell dumpsys media.metrics --clear\nTest: run an app that uses MMAP, like OboeTester\nTest: adb shell dumpsys media.metrics\nTest: Expect to see lots of \"audio.stream\" events.\nChange-Id: I690e5226b695d53d038d644f4438c759e08f9fbb\n"
    },
    {
      "commit": "7d947b361853035f3c1eefdb5a65ac2c9da3982f",
      "tree": "76b1fb9b7cfd36f1f9863ff1488160b30670ef27",
      "parents": [
        "02ec2d9d9a0040d4565e038a0291ca5b862a3a41",
        "00abf0d08363d063bd5ea6e35a71c54f16f3ed31"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 23 21:47:28 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 23 21:47:28 2020 +0000"
      },
      "message": "Merge \"AudioFlinger: fix getMicrophones implementation\" into rvc-dev"
    },
    {
      "commit": "9b0d9534c75dc4d40edbf13938aa09c3eec737a1",
      "tree": "8497e2d67c87e7ba12b86bf7bd07d2cf7a531e1a",
      "parents": [
        "ec77ef69320225579dbee12b5199442fe3e669ca"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Tue Apr 14 17:14:20 2020 -0700"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Thu Apr 23 12:19:22 2020 -0700"
      },
      "message": "Camera: Fix off-by-1 error for scaling crop region\n\nMake sure the scaling of coordinates based on zoomRatio is symmetric\nrelative to the center of the image. And use the center of the pixel\nfor calculation.\n\nTest: testZoomRatio, testDigitalZoom, cameraservice_test\nTest: vendor testing\nBug: 153959755\nChange-Id: I966bd31bde5afd50462a018590c7a4fefc3eaac6\n"
    },
    {
      "commit": "00abf0d08363d063bd5ea6e35a71c54f16f3ed31",
      "tree": "1d9de701622390a7d3db05b77393ad238b8d35f6",
      "parents": [
        "369ad274564c02b79c15b13e8e69ccb73080d6fb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 22 19:28:22 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 23 09:04:24 2020 -0700"
      },
      "message": "AudioFlinger: fix getMicrophones implementation\n\ngetMicrophones() should return aggregated mic information\nfrom all HW modules, not just primary.\n\nAlso:\n- Fix assignment of mPrimaryHardwareDev that should be\nfirst from HW module name and then according to primary output\nif no module with name \"primary\" is loaded.\n\n- Make sure we do not dereference mPrimaryHardwareDev if null.\nNote that this should not happen with current rule that a primary module\nmust be present.\n\n- Implement consistent locking scheme where both mPrimaryHardwareDev and\nmAudioHwDevs are guarded by mHardwareLock\n\nBug: 154772890\nTest: AudioManagerTest#testGetMicrophones\nChange-Id: I7c9449bb705a6fbebdc0642166e58348d47b7ee8\n"
    },
    {
      "commit": "7d391087f86cee1c4dc87c03e5549aa4359ddfe6",
      "tree": "e67969f57ea54f0beaa950d6f5c9351e5182ee72",
      "parents": [
        "369ad274564c02b79c15b13e8e69ccb73080d6fb"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Apr 18 15:03:51 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 22 16:32:38 2020 -0700"
      },
      "message": "MediaMetrics: Misc fixes\n\nRemove unneeded headers from MediaMetricsItem.\nOptimize map writes with emplace_hint.\n\nTest: atest mediametrics_tests\nBug: 149850236\nChange-Id: Ice6fddb8402a5ccbf1df6e6e02fa4aae4c1b42d5\n"
    },
    {
      "commit": "718f96b3bb80a72cda547f2a345e23e595bf7fbb",
      "tree": "595a94dbf7e6b8fb7f853a4bca5669830b56beaf",
      "parents": [
        "e202fc24bc2b4916ddfd8e52b5a7bffb9b5898e9",
        "f7c14104673750445bd1c2553021fd61aaeb7f2c"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 21 04:19:04 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 21 04:19:04 2020 +0000"
      },
      "message": "Merge \"MediaMetrics: Add thread-safety checking\" into rvc-dev"
    },
    {
      "commit": "f7c14104673750445bd1c2553021fd61aaeb7f2c",
      "tree": "bbdef5be71641b2b894f543a36472f0f581e581a",
      "parents": [
        "a6127a935639f127db56974851abc2dda360eca2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Apr 18 14:54:08 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 20 18:07:51 2020 -0700"
      },
      "message": "MediaMetrics: Add thread-safety checking\n\nTest: atest mediametrics_tests\nBug: 70398235\nBug: 149850236\nChange-Id: I288ef92e6444785e02043c2629355c229c14e85c\n"
    },
    {
      "commit": "afee5576faeef5d557a4dbd233250eb6a8ca8e1e",
      "tree": "c2de0ae50aeabfd1077f3e0edf11b252f5d0fc64",
      "parents": [
        "ccc44f3f72a8d65c1d9fa829515eab478c647ebc",
        "99a3463d17da6c287e6db05790372b5b943d6468"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 20 19:25:21 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 20 19:25:21 2020 +0000"
      },
      "message": "Merge \"audio policy: fix volume for unsupported device\" into rvc-dev"
    },
    {
      "commit": "99a3463d17da6c287e6db05790372b5b943d6468",
      "tree": "acda2bb9a80c4b740768eccd3a1f31c950a090b1",
      "parents": [
        "a4cfeca69f76fbd2eedd6217b058d118844a5d4c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 16 16:52:38 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 20 16:30:13 2020 +0000"
      },
      "message": "audio policy: fix volume for unsupported device\n\nDo not allow changing volume on an output when\nthe specified device is not supported by the\ncorresponding output profile.\n\nThere is a similar sanity check in setOutputDevices()\nbut there was none in AudioOutputDescriptor::setvolume().\n\nBug: 153411189\nTest: atest AudioManagerTest\nTest: manual audio smoke tests\nChange-Id: I539697c54d70c442ba1ce38d212b43cd3ef0138c\n"
    },
    {
      "commit": "27cf37ca3ed87077c4beaceb2f7373c98e16737c",
      "tree": "f22fffa28ae98f0bb8319aaa0a5a82f15ed8fb89",
      "parents": [
        "a6127a935639f127db56974851abc2dda360eca2"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Apr 14 14:47:01 2020 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Apr 17 01:54:47 2020 +0000"
      },
      "message": "audio: Centralize audio configuration paths specification\n\nThe list of possible paths for the audio configuration\nfiles is now retrieved using audio_get_configuration_paths()\nfunction. All duplicated lists of known configuration\ndirectories have been removed.\n\nBug: 153680356\nTest: test audio on built image working\n      atest VtsHalAudioV6_0TargetTest VtsHalAudioPolicyV6_0TargetTest\nChange-Id: I8c369442f5ca7baa17df95e6a001396fc9de5681\nMerged-In: I8c369442f5ca7baa17df95e6a001396fc9de5681\n"
    },
    {
      "commit": "ec77ef69320225579dbee12b5199442fe3e669ca",
      "tree": "2003bdf216eae4a09956727b820bf7e94b9884f1",
      "parents": [
        "f8673bf03d095bf9c9b3fe89b88b5df64c37060a",
        "2c656796f416401ae48cd4a2e313dcb9e3aa256b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 14 21:06:18 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 14 21:06:18 2020 +0000"
      },
      "message": "Merge \"Camera: Handle the case of calling Uid being cameraserver\" into rvc-dev"
    },
    {
      "commit": "2c656796f416401ae48cd4a2e313dcb9e3aa256b",
      "tree": "32f9cfe2e8d6fa552d24a5c1c9bbbafb6607a3f5",
      "parents": [
        "7e540682b362a3e8679e274084aeaefdf01314da"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Mon Apr 13 17:36:49 2020 -0700"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Tue Apr 14 09:39:35 2020 -0700"
      },
      "message": "Camera: Handle the case of calling Uid being cameraserver\n\nWith HAL1-camera2 legacy implementation, the getCameraCharacteristics\nmay be called without camera permission. So the cameraserver\u0027s Uid is\nused in that case.\n\nAppOpsManager returns MODE_IGNORED when the cameraserver\u0027s Uid is passed.\nDo not treat this as an error case.\n\nBug: 153511543\nTest: On Pixel 2 device, run \"adb root; adb shell setprop\npersist.camera.HAL3.enabled 0; adb reboot\", then \"atest\ncts/tests/camera/CaptureRequestTest\"\n\nChange-Id: I29aaa2045b14233537c737bf0738fbc32422540e\n"
    },
    {
      "commit": "9b8c695c4879c2e28ee359cc55d6101da8931a9e",
      "tree": "a33496cdd3d5191b868ec2435c453f3908fd0ed2",
      "parents": [
        "7feb854e9ff78e8ca64e012af874503569905924",
        "26874fed269f1f88d5e9eaef831d0d4c14ba74be"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 14 01:52:49 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 14 01:52:49 2020 +0000"
      },
      "message": "Merge \"audio policy: fix crash in findPreferredDevice() on duplicating outputs\" into rvc-dev"
    },
    {
      "commit": "26874fed269f1f88d5e9eaef831d0d4c14ba74be",
      "tree": "1b53a2407f10fbf3197a7859d24899f79cb8fd1f",
      "parents": [
        "141095dce0006e73b7941367c4b03f64c6ae997d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 13 15:52:39 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 13 15:52:39 2020 -0700"
      },
      "message": "audio policy: fix crash in findPreferredDevice() on duplicating outputs\n\nDuplicating outputs do not have an associated IOProfile and\ngetPolicyAudioPort() returns null.\n\nAdd a method to AudioIODescriptorInterface to query if the\ninput or output descriptor corresponds to MMAP IO profile or not.\n\nBug: 153849965\nTest: repro steps in the bug\nChange-Id: I300356880198f1785e3a5e1359ffd393c6ae4190\n"
    },
    {
      "commit": "7feb854e9ff78e8ca64e012af874503569905924",
      "tree": "5fc22308c6ebd0a7f2066a8d7acf19a18e4347a5",
      "parents": [
        "141095dce0006e73b7941367c4b03f64c6ae997d"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Mon Apr 06 17:39:47 2020 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 13 13:21:15 2020 -0700"
      },
      "message": "AudioPolicy: managerdefault: fix onAudioDeviceUpdate callback\n\nScenario: startAudioSource (SW bridge) started, then stopped.\nAF patch is released, so PlaybackThread has empty patch.\n\nNext playback using the same sink will not recreate any patch\non AF as same device (and output desc has still valid patch handle)\n\nHence, ioconfichanged will get PORT NONE as sink device, no\nonAudioDeviceUpdate cb can be fired.\n\nThis CL fixes this issue by reset of patch handle on the output\n\nBug: 136121584\nTest: startAudioSource / stopAudioSource then playback on the same\nsink. Ensure onAudioDeviceUpdate is fired\nTest: atest RoutingTest\n\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: Ia9c2570f687166f38335ed7efae28920f7acc474\n"
    },
    {
      "commit": "fd27c5239294058ec92ab2120256e7906110ffb4",
      "tree": "4e4ef7232f04db88ce82ca05fcaa603cef8a3a86",
      "parents": [
        "292b3e63852e6d438fa8f6b37ce76737e73added",
        "b744fafc831e1a13cc5e054aa4812281c3c5c7fc"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Apr 10 01:05:53 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 10 01:05:53 2020 +0000"
      },
      "message": "Merge \"MediaMetrics: Fix clang-tidy warnings\" into rvc-dev"
    },
    {
      "commit": "a73e0d674d83be857ffe7148aea4ab0f4dbeda06",
      "tree": "1dca718e55d47556a90e7e851b960759115e8808",
      "parents": [
        "3ee398df16f90491c53e3fca46445c4e7d7be511",
        "2325bf07edfa494aa5a186aacdcc80ff0233adbe"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 09 20:51:04 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 09 20:51:04 2020 +0000"
      },
      "message": "Merge \"AudioFlinger: mute mic on primary HAL only\" into rvc-dev"
    },
    {
      "commit": "b744fafc831e1a13cc5e054aa4812281c3c5c7fc",
      "tree": "8ac63b4df77923f6a8ba054036b43dee8ef79211",
      "parents": [
        "cc39f3d7fe665dcb39ce6757f5811f7c9ab6c992"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 09 13:09:26 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 09 13:09:26 2020 -0700"
      },
      "message": "MediaMetrics: Fix clang-tidy warnings\n\nTest: atest mediametrics_tests\nBug: 153658358\nChange-Id: Ic3c05de5466df24ffd37b224c97ac1138257a73c\n"
    },
    {
      "commit": "2325bf07edfa494aa5a186aacdcc80ff0233adbe",
      "tree": "97c72fb106d9f84c2cbbb654b657ab928843f494",
      "parents": [
        "967bfe95b6e95d4e590bb172826623e8a59664bd"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 08 19:38:13 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 09 10:03:30 2020 -0700"
      },
      "message": "AudioFlinger: mute mic on primary HAL only\n\nOnly the primary HAL has to support mic mute function.\nIgnore errors returned by other HALs in setMicMute() and\nonly report mic mute state from primary HAL in getMicMute().\n\nBug: 153103117\nTest: CTS AudioManagerTest.testMicrophoneMute\nTest: manual phone call and verify microphone mute.\nChange-Id: Ic121c49e7e7cd75eeee9342249271c7fca7c1c2a\n"
    },
    {
      "commit": "98fc01e7d68ab445103da4170958fdb7131eb595",
      "tree": "c419d674be8d9376eb585da5f592da4e0f2b9b80",
      "parents": [
        "967bfe95b6e95d4e590bb172826623e8a59664bd"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Apr 06 12:58:39 2020 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Apr 08 16:42:15 2020 -0700"
      },
      "message": "Make missing seccomp file fatal.\n\nIf there is an issue where this is not loaded, we should know.\n\nBug: 146059841\nTest: boot health check on devices\nChange-Id: I3c50078b254e3caff5c824024909cb722dfb1aae\n"
    },
    {
      "commit": "967bfe95b6e95d4e590bb172826623e8a59664bd",
      "tree": "8f2ec48d60b45a29faf25a4c72f7e5652fc442f4",
      "parents": [
        "b27ef83f2c8e37d2b9c50b001e03969c451b9131",
        "2a245e16f70635c0489efc204d8a76b935f4a0df"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 08 19:11:02 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 08 19:11:02 2020 +0000"
      },
      "message": "Merge \"Camera: Fix possible invalid metadata access\" into rvc-dev"
    },
    {
      "commit": "2a245e16f70635c0489efc204d8a76b935f4a0df",
      "tree": "c774fa4f6b9ff064c1c69536d043498c07aef414",
      "parents": [
        "1ad04e663d0f6eb86032b7c4ac7ef7b3dba01de1"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Tue Apr 07 16:54:14 2020 -0700"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Apr 08 08:34:34 2020 -0700"
      },
      "message": "Camera: Fix possible invalid metadata access\n\nCamera metadata entries can become invalid\nafter updates. Avoid using the possibly\nreleased entry pointer when extending\ncamera characteristics with dynamic depth\ntags.\nAdditionally simplify rotate and crop\nregion checks.\n\nBug: 152240541\nTest: cameraservice_test\nChange-Id: I416739ed7e128f4ec94353ec2938b9bf226be182\n"
    },
    {
      "commit": "d03d42b5478f9b65f8f0a7807626c4ec9c65ad8a",
      "tree": "8e563cd28a6ae4d157feda80c088f93899cf4e8d",
      "parents": [
        "44e8ff246da8bbf73fa38fa6c95fc3915de0bda1"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Sun Jan 19 17:27:41 2020 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Apr 07 22:12:22 2020 +0000"
      },
      "message": "flexibility for having extra policy files\n\nadd an interface to accept a list of additional policy files, instead of just a single file.\nAlso add TEST_MAPPING for presubmit.\n\nBug: 147914640\nTest: boot with empty, 1, and 2 element lists, atest\nChange-Id: I97e8e0ec7b68699838595c09a4a8e7c7eef657c3\nMerged-In: I97e8e0ec7b68699838595c09a4a8e7c7eef657c3\n(cherry picked from commit 11c1a68778c39564ed37e653d7af6881a2d11ea6)\n"
    },
    {
      "commit": "709b91e1e8a646f17117fc5e9baa224182cbec64",
      "tree": "00f091b41d344a9ef0609d11e0a750bdeddb024a",
      "parents": [
        "1ad04e663d0f6eb86032b7c4ac7ef7b3dba01de1"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Apr 04 14:23:36 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 07 12:22:38 2020 -0700"
      },
      "message": "MediaMetrics: Update dumpsys parameters\n\nMake --prefix and --since work for analytics.\n\nTest: adb shell dumpsys media.metrics --all\nTest: adb shell dumpsys media.metrics --clear\nTest: adb shell dumpsys media.metrics --heap\nTest: adb shell dumpsys media.metrics --help\nTest: adb shell dumpsys media.metrics --prefix c\nTest: adb shell dumpsys media.metrics --prefix audio.volume\nTest: adb shell dumpsys media.metrics --since -100\nTest: adb shell dumpsys media.metrics --unreachable\nBug: 149850236\nChange-Id: Id3e0cb6fe789027b5d5c86cce93ce07f636736bf\n"
    },
    {
      "commit": "1ad04e663d0f6eb86032b7c4ac7ef7b3dba01de1",
      "tree": "62ee64eda54d20399ef782e1aede345ab15be31b",
      "parents": [
        "2e717a0265d6b95094946fb5ca41035019fa9716",
        "9099a1a58dfd8828381fe080a8c897d7d06c88be"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 07 03:49:26 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 07 03:49:26 2020 +0000"
      },
      "message": "Merge \"MediaMetrics: Use libmemunreachable for memory testing\" into rvc-dev"
    },
    {
      "commit": "2e717a0265d6b95094946fb5ca41035019fa9716",
      "tree": "a6b431d6066a92be07956c3d8808680ed1b856c7",
      "parents": [
        "65328604dedbb0c01937efa0e831e62a191869f8",
        "85732f4121889191410448cfc19c336e0ea69285"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 07 01:15:26 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 07 01:15:26 2020 +0000"
      },
      "message": "Merge \"audio policy: fix mmap stream invalidation logic\" into rvc-dev"
    },
    {
      "commit": "65328604dedbb0c01937efa0e831e62a191869f8",
      "tree": "41870604bbdecc2565f81e2e8651dddaca86913b",
      "parents": [
        "9509d74058eda44fb4de1acc3e119e53f78e1ae7",
        "e9eb03e9db8f66c711e2824e0f96d1fdc8f727b5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 06 22:57:50 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 06 22:57:50 2020 +0000"
      },
      "message": "Merge \"MediaUtils: Move MemoryLeakTrackUtil.h to the proper library.\" into rvc-dev"
    },
    {
      "commit": "9099a1a58dfd8828381fe080a8c897d7d06c88be",
      "tree": "7d4741e9fa1d965cefd957d5aa9f6474e8ffae49",
      "parents": [
        "e9eb03e9db8f66c711e2824e0f96d1fdc8f727b5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Apr 04 14:23:36 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 06 14:41:40 2020 -0700"
      },
      "message": "MediaMetrics: Use libmemunreachable for memory testing\n\nFull testing steps:\n\n// required for unreachable\n$ adb shell setenforce 0\n// set up debug malloc\n$ adb shell setprop libc.debug.malloc.program mediametrics\n$ adb shell setprop libc.debug.malloc.options backtrace\u003d8\n\n// kill media metrics\n$ adb shell pkill -f media.metrics\n// verify media.metrics has restarted with new pid\n$ adb shell pgrep -f media.metrics\n\n// now check media metrics heap (largest 100 items) and unreachable memory.\n$ adb shell dumpsys media.metrics --heap\n$ adb shell dumpsys media.metrics --unreachable\n\nTest: adb shell dumpsys media.metrics --heap\nTest: adb shell dumpsys media.metrics --unreachable\nBug: 149850236\nChange-Id: I269003485dd6933c399171fbd9d9a152cee50886\n"
    },
    {
      "commit": "0fa486f5148b706062f333e7283a0af4b9374382",
      "tree": "cb929db2d288c553907d09e69abe7b57da3a4fb5",
      "parents": [
        "95ec1b8ea487abbf4ef50d53c227338f559e9599",
        "c530c5973f425f574fc5e4add205938e5f040ab4"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 06 19:42:12 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 06 19:42:12 2020 +0000"
      },
      "message": "Merge \"Camera: fix use after free in sensor timestamp\" into rvc-dev"
    },
    {
      "commit": "e9eb03e9db8f66c711e2824e0f96d1fdc8f727b5",
      "tree": "77671b8d041a66b35884657fc4e05c5e5214787a",
      "parents": [
        "95ec1b8ea487abbf4ef50d53c227338f559e9599"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Apr 04 14:08:23 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 06 09:48:59 2020 -0700"
      },
      "message": "MediaUtils: Move MemoryLeakTrackUtil.h to the proper library.\n\nTest: dumpsys sanity check of mediaserver, audioflinger, drmmanager\nBug: 149850236\nChange-Id: I7a3694444de0f940beacb699bc6f07ebb6a7cc7d\n"
    },
    {
      "commit": "95ec1b8ea487abbf4ef50d53c227338f559e9599",
      "tree": "59fbb841d724d8012ae7b46e9b9c58c77760dbb5",
      "parents": [
        "944e25516ee01715c74e4e65a2d69ef5b7398d06"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Thu Apr 02 18:08:36 2020 -0700"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Thu Apr 02 19:34:08 2020 -0700"
      },
      "message": "Keep the death recipient alive\n\nBinder doesn\u0027t hold on to the death recipient.\nThis caused audio server to miss notifications about system server\ndeath.\n\nFixes: 153080001\nTest: Manual verification of killing the system process.\nChange-Id: Iad1b2d4c5348d3d9917efc6838e86b736fa33094\n"
    },
    {
      "commit": "19c458805f7a91b09a6c90a2940a3f03ed20d44b",
      "tree": "1327295f9eec0056f3e6e64654f9e42af4f7eec1",
      "parents": [
        "a3e42f87b635b883fa86996120f0308cc790e2cb",
        "28dcd1c4441915e377209e11e4dbc06db30d531e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 02 00:18:19 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 02 00:18:19 2020 +0000"
      },
      "message": "Merge \"Camera: don\u0027t stop preview on disconnecting device\" into rvc-dev"
    },
    {
      "commit": "28dcd1c4441915e377209e11e4dbc06db30d531e",
      "tree": "82e9df1fcd5809cb3e80eb1a18473472bca851a1",
      "parents": [
        "1cfbd0a8a1083af1a7afeb19b2bdc0d757d9daf5"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed Feb 05 12:41:07 2020 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed Apr 01 10:40:10 2020 -0700"
      },
      "message": "Camera: don\u0027t stop preview on disconnecting device\n\nTest: partner monkey testing\nBug: 147333205\nMerged-In: I0a58c10f5372cd5e5420771a5ec8ae5e6ac93169\nChange-Id: I0a58c10f5372cd5e5420771a5ec8ae5e6ac93169\n"
    },
    {
      "commit": "85093d5efc28216f8e091f5163092b2a800f8773",
      "tree": "eaab1d0d25dd312af33eee8d6b062e2c19437efe",
      "parents": [
        "987d12c425ba681fb93af150ccb537eac8c683fa"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Thu Mar 26 09:41:15 2020 -0700"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Wed Apr 01 09:59:50 2020 -0700"
      },
      "message": "Invert how sound trigger capture is notified\n\nPreviously, audio policy client would call an method on the sound\ntrigger middleware service. This has been replaced by the sound\ntrigger service registering a callback, in order to avoid a cyclic\ndependency between the services.\n\nBug: 146157104\nMerged-In: I876461a7650d337d6dd05fbe80efaf08f8ef20dd\nChange-Id: Ia8f674d7dd50f6dcdd6595bcbadec2f25fdb3561\n"
    },
    {
      "commit": "987d12c425ba681fb93af150ccb537eac8c683fa",
      "tree": "c4eb387678f39425bd49a219cce9981c8ea46720",
      "parents": [
        "f698ff2d177d62a714d452ce63430606738a4190"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Tue Mar 24 17:35:44 2020 -0700"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Wed Apr 01 09:59:43 2020 -0700"
      },
      "message": "Introduce CaptureStateNotifier\n\nThis is a helper class for notifying a client of capture\nstate changes.\n\nBug: 146157104\nTest: Compiles (further testing as part of the topic).\nMerged-In: Ie27bc404805d319a6969290a6369d59fb68c1f38\nChange-Id: I2902468c4692ba68e4bc9be0e5038d5505da7154\n"
    },
    {
      "commit": "f698ff2d177d62a714d452ce63430606738a4190",
      "tree": "e53e0cbf41ce80cc85b73f6495323207899c86c9",
      "parents": [
        "1cfbd0a8a1083af1a7afeb19b2bdc0d757d9daf5"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Mar 31 10:07:29 2020 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Mar 31 22:06:58 2020 +0000"
      },
      "message": "Fix uninitialized variable use in Effects.cpp\n\nInitialize variable \u0027strategy\u0027 in\nAudioFlinger::EffectBase::updatePolicyState.\nFound by clang-tidy.\n\nBug: 152526318\nTest: m\nChange-Id: I5aad916a9873122eed0bb8e40bb26d677f338b16\n"
    },
    {
      "commit": "1cfbd0a8a1083af1a7afeb19b2bdc0d757d9daf5",
      "tree": "5d4775de3b94eaa2c952f6266c61d6f60c7d4e4f",
      "parents": [
        "e2074d7b4f23d8736e77750ce5ab59d61c1bb350",
        "d1f1cb68f567363a0b1e4cd4db6286afc6c8a1e2"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 31 02:23:51 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 31 02:23:51 2020 +0000"
      },
      "message": "Merge \"Add audio attributes info when starting aaudio tracks on MMAP mix.\" into rvc-dev"
    },
    {
      "commit": "e2074d7b4f23d8736e77750ce5ab59d61c1bb350",
      "tree": "7f4520856e6c8368a27eb78e229487aec09d31e4",
      "parents": [
        "3c0f2d0400949bfa234eed1d0e31e73a1a0e10f5",
        "a623a1350d58a0648d6f57829887b04c04ba6782"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 31 00:17:46 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 31 00:17:46 2020 +0000"
      },
      "message": "Merge \"Allow DEFAULT_INPUT_METHOD to capture audio during RTT call\" into rvc-dev"
    },
    {
      "commit": "a623a1350d58a0648d6f57829887b04c04ba6782",
      "tree": "bac00f33a30c4f426120836cee511de1bef9d881",
      "parents": [
        "0bf91a9596eba0c4ea2217506370f0f21655e740"
      ],
      "author": {
        "name": "Kohsuke Yatoh",
        "email": "kyatoh@google.com",
        "time": "Tue Mar 24 20:10:26 2020 -0700"
      },
      "committer": {
        "name": "Kohsuke Yatoh",
        "email": "kyatoh@google.com",
        "time": "Mon Mar 30 21:44:46 2020 +0000"
      },
      "message": "Allow DEFAULT_INPUT_METHOD to capture audio during RTT call\n\nThe UID of the current InputMethodService (DEFAULT_INPUT_METHOD) is\npushed from AudioService to AudioPolicyService via AudioSystem.\nAllow capture audio if:\n- the UID is the current InputMethodService\u0027s UID,\n- AND a RTT call is active,\n- AND the source is AUDIO_SOURCE_VOICE_RECOGNITION.\n\nBug: 147037345\nTest: use voice input with Gboard 9.1.4 during a simulated RTT call.\nChange-Id: Ib32ec25e962833eddd0320742e177e3c1e0e5c05\n"
    },
    {
      "commit": "d7e0dd45243735bed789589ca767485ce3fc4e7b",
      "tree": "4ad113977dd16b064452aafdc74db03b99214e7c",
      "parents": [
        "36696ba9a249d629c4827fda442352b396a11056"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 27 16:42:34 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Mar 30 10:03:22 2020 -0700"
      },
      "message": "MediaMetrics: Move LimitProcessMemory to libmediautils\n\nEliminates the need for libmedia in media.metrics, cutting\nRSS nearly in half.\n\nTest: adb shell showmap \u0027$(pgrep -f media.metrics)\u0027\nTest: adb shell showmap \u0027$(pgrep -f media.extractor)\u0027\nBug: 152256321\nChange-Id: Id8aae66de84e712915888422b7372fd2b880570d\n"
    },
    {
      "commit": "d1f1cb68f567363a0b1e4cd4db6286afc6c8a1e2",
      "tree": "3b32985218612d05bf95fed08c18025d1735b2d4",
      "parents": [
        "06675ff30f63323905ff18c3c4e0d34a9fee4c60"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Mar 24 11:57:57 2020 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Mar 27 11:33:09 2020 -0700"
      },
      "message": "Add audio attributes info when starting aaudio tracks on MMAP mix.\n\nIn aaudio, when adding tracks to mixed stream, it is needed to update\naudio attributes to HAL whenever the tracks are added or removed.\nCurrently, only the audio attributes used to open the stream will be\nsent to the HAL. In that case, adding audio attributes of the clients\nwhen starting the stream can help solve the problem. In audio flinger,\nthe client\u0027s audio attributes will be used to create MmapTrack.\n\nTest: play multiple aaudio tracks, add log\nBug: 77279923\nChange-Id: Ic1c536049e194a2bb7513425ee4828d52769d27f\n"
    },
    {
      "commit": "f4cabacb4cb6e1c4b18b5bd907d3fb5b6746dbec",
      "tree": "ee8db0b1769ba6142f89e17e6603630198785a31",
      "parents": [
        "1cb0a63dd903b8548685a99eb4d544890e1fd78f",
        "72ee01deddaecbfb8766b3acdc60cc04f1bad24e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 27 00:08:58 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 27 00:08:58 2020 +0000"
      },
      "message": "Merge changes Ifc1efbee,Ib8c71eaf into rvc-dev\n\n* changes:\n  TimeCheck: fix use of uninitialized variable\n  Fix uninitialized variable use in Effects.cpp\n"
    },
    {
      "commit": "379d687ba8c831cedf406d95309c4e7a6f66639d",
      "tree": "543cda1db6f2044e1e2f699c54c42f680e04e219",
      "parents": [
        "7bb5d6abf90125a7eacdd98f1201a694258f9bea"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Mar 26 13:04:11 2020 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Mar 26 13:04:11 2020 -0700"
      },
      "message": "Fix uninitialized variable use in Effects.cpp\n\nInitialize variable \u0027io\u0027 in\nAudioFlinger::EffectBase::updatePolicyState.\nFound by clang-tidy.\n\nBug: 152526318\nTest: m\nChange-Id: Ib8c71eaf83dc140874d3e65a094e52e36918160f\n"
    },
    {
      "commit": "1cb0a63dd903b8548685a99eb4d544890e1fd78f",
      "tree": "e10cbe626fe00665539266f21703fd5a122369d0",
      "parents": [
        "4a23235ad6a7a963982888da882f5292ce30e0b3",
        "242a9f8db150d0fe94c9cb95dde768edaa649a1c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 26 19:16:55 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 26 19:16:55 2020 +0000"
      },
      "message": "Merge changes I5e12b2c7,Ic79effb1 into rvc-dev\n\n* changes:\n  [audiopolicy][managerdefault] Filter unknown stream for volume settings\n  [AudioPolicy][engine][Strategy] fallback on music stream\n"
    },
    {
      "commit": "ff54b89f5e95ff4da00f7cc1af7e240dd03569f2",
      "tree": "f8ab0c14896e5255f9258edd1a65b5faf15a1637",
      "parents": [
        "d155a1fd9493b0aad727214c78194d61175f2f29",
        "d25dc976bd8bb77228ff686a5944042ef061d8b7"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 26 17:56:34 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 26 17:56:34 2020 +0000"
      },
      "message": "Merge \"Camera: Make sure JPEG_QUALITY has reasonable default values in default templates\" into rvc-dev"
    },
    {
      "commit": "7bb5d6abf90125a7eacdd98f1201a694258f9bea",
      "tree": "0cb0bc1d4e01ce78aa4671f7a856f755ecb55bc4",
      "parents": [
        "e3ccb65e2d1f2d99537de0cbf4ce24271a6f7fd1",
        "d0e2c74984f7542cc154a899190bda100ef38671"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 26 03:15:34 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 26 03:15:34 2020 +0000"
      },
      "message": "Merge \"APM: Notify the client about new audio ports\" into rvc-dev"
    },
    {
      "commit": "d0e2c74984f7542cc154a899190bda100ef38671",
      "tree": "ee96ed7f289021026ab9bf29b252cad3240c0c3d",
      "parents": [
        "3006a83565b6863f247bf634faa929b84608026e"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Mar 25 15:59:59 2020 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Mar 25 17:04:49 2020 -0700"
      },
      "message": "APM: Notify the client about new audio ports\n\nAdded missing notification to the APM client\nabout new audio ports. This should make the\nports provided by the newly discovered HAL\nto be available to apps.\n\nProcess the onNewAudioModulesAvailable notification\non the \"APM Output\" command thread to avoid clashing\nwith outgoing commands from APM during module\ninitialization.\n\nBug: 149854039\nTest: atest audiopolicy_tests\nChange-Id: I3fede7f5a04419b15e15476d8b5ac7dc6d63c98d\n"
    },
    {
      "commit": "5a280ea72324ff62472c619c39dd955bd3bcd7d3",
      "tree": "de45b40602dc5fdbe03c245bda68f5aef4737f53",
      "parents": [
        "322300408f13880ff9f1d758a645869e7d19b60e",
        "ffffffc42242cf06c433e4e4958d7991a7e2848c"
      ],
      "author": {
        "name": "Hui Yu",
        "email": "huiyu@google.com",
        "time": "Wed Mar 25 23:47:51 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 25 23:47:51 2020 +0000"
      },
      "message": "Merge \"Add isUidActiveOrForeground() for camera/audio to use.\" into rvc-dev"
    },
    {
      "commit": "242a9f8db150d0fe94c9cb95dde768edaa649a1c",
      "tree": "c2239970a597d68f9cc03863805a7b54287b9108",
      "parents": [
        "fd5779fa71d1a2fcb9f9e57e7e46137cefb65f5c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 23 15:57:04 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 25 11:59:05 2020 -0700"
      },
      "message": "[audiopolicy][managerdefault] Filter unknown stream for volume settings\n\nStream for which no attributes is associated (aka no strategy supports it)\nwill use default attributes hence it will change the default strategy\nvolume (aka Music).\nIt leads to eroneous volume changes.\nThis bug does not happen on phone / tablets targets as all streams are\nlinked to a strategy with specifc attributes.\nIn case of OEM configuration, some stream types may not be supported\nand associated to any strategy.\n\nBug: 136121584\nTest: dumpsys audio \u0026 dumpsus media.audio_policy.\n    Ensure volumes of stream types and their aliases match.\n\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: I5e12b2c7248074d10affb6c28d1866d4589cb9e8\nMerged-In: I5e12b2c7248074d10affb6c28d1866d4589cb9e8\n"
    },
    {
      "commit": "fd5779fa71d1a2fcb9f9e57e7e46137cefb65f5c",
      "tree": "6e62a0be5c936e32081b7288802c4e823b92200b",
      "parents": [
        "e8ca692b95846034bb3edbde60eecaa9a28a2d24"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 23 15:50:02 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 25 11:59:05 2020 -0700"
      },
      "message": "[AudioPolicy][engine][Strategy] fallback on music stream\n\nIf a strategy matches a attributes, whatever a stream type has\nbeen provided, the MUSIC stream type shall be returned as a fallback\nto ensure AudioFlinger will apply the right gain to the right stream\n(which always fallback as music if none is provided)\n\nBug: 136121584\nTest: build \u0026 run cts-dev -m CtsMediaTestCase --test android.media.cts.AudioProductStrategyTest\nrun cts-dev -m CtsMediaTestCase --test android.media.cts.AudioVolumeGroupTest\nrun cts-dev -m CtsMediaTestCase --test android.media.cts.AudioVolumeGroupChangeHandlerTest\nrun cts-dev -m CtsMediaTestCase --test android.media.cts.AudioManagerTest#testPermissionsForVolumePerAttributes\nrun cts-dev -m CtsMediaTestCase --test android.media.cts.AudioManagerTest#testGetAndValidateProductStrategies\nrun cts-dev -m CtsMediaTestCase --test android.media.cts.AudioManagerTest#testGetAndValidateVolumeGroups\nrun cts-dev -m CtsMediaTestCase --test android.media.cts.AudioManagerTest#testSetGetVolumePerAttributesWithInvalidAttributes\nrun cts-dev -m CtsMediaTestCase --test android.media.cts.AudioManagerTest#testSetGetVolumePerAttributes\nrun cts-dev -m CtsMediaTestCase --test android.media.cts.AudioManagerTest#testVolumeGroupCallback\n\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: Ic79effb1341b788d90f5d73d23ae92b983f17225\nMerged-In: Ic79effb1341b788d90f5d73d23ae92b983f17225\n"
    },
    {
      "commit": "8197962345217dc30551a2ddcd0d6289282ced5a",
      "tree": "058cbcde3f98a8ac6a14acc194b6bb5cf1ffaeb6",
      "parents": [
        "e5867f41bbf05635ed6770393ecfb89f48aa4f2c",
        "2d91d3fa1f66623976c747e0890e77959cdcb78f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 25 01:28:05 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 25 01:28:05 2020 +0000"
      },
      "message": "Merge \"Reland: Register C2 HAL Service v1.0 for Q and v1.1 for R.\" into rvc-dev"
    },
    {
      "commit": "ffffffc42242cf06c433e4e4958d7991a7e2848c",
      "tree": "d2ef2ad6334135cd2fde6ae172e163623739da0c",
      "parents": [
        "1939a00071ce5dc757566c7af24a1f5589ea22f7"
      ],
      "author": {
        "name": "Hui Yu",
        "email": "huiyu@google.com",
        "time": "Tue Mar 24 16:13:59 2020 -0700"
      },
      "committer": {
        "name": "Hui Yu",
        "email": "huiyu@google.com",
        "time": "Tue Mar 24 18:22:49 2020 -0700"
      },
      "message": "Add isUidActiveOrForeground() for camera/audio to use.\n\nWhen start/resume activity, WindowManagerService start/resume the\nactivity, then post a runnable to DiaplayThread and\nActivityManagerService to update UidRecord\u0027s\nproc state, because the thread switch, the latency before proc\nstate update is undetermined.\n\nWhen CameraService calls ActivityManagerService.isUidActive(), the proc\nstate may not have been updated and camera access is denied.\n\nisUidActiveOrForeground() will check isUidActive() first, if false,\ncheck isUidForeground() which is actually to check with WindowManagerService if\nthe uid is foreground, which is equivalent to ActivityManagerService\u0027s uid\nactive, just updated earlier.\n\nBug: 151185692, 151777097, 109950150\nTest: manual test.\nChange-Id: I3685e0c8d2e69ca7ff3c4de4bef4ec754c400015\n"
    },
    {
      "commit": "d25dc976bd8bb77228ff686a5944042ef061d8b7",
      "tree": "451783f05bb08ebdc229fb1f92fc970bcfa9065f",
      "parents": [
        "8f612b453b1f2d8d873e615aae281cb047d5a7dc"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Tue Mar 24 17:11:43 2020 -0700"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Tue Mar 24 17:11:43 2020 -0700"
      },
      "message": "Camera: Make sure JPEG_QUALITY has reasonable default values in default templates\n\nTest: CameraDeviceTest on Pixel 4\nBug: 149337877\nChange-Id: I77b8302ba9011db80acb931b3849087d18b7153e\n"
    },
    {
      "commit": "57a3769fb12dc8b2df457e0919850bd976716706",
      "tree": "f170ceb064b6be5d9443af5f2f95ac55c612c270",
      "parents": [
        "3006a83565b6863f247bf634faa929b84608026e"
      ],
      "author": {
        "name": "Ricardo Correa",
        "email": "rgcorrea@google.com",
        "time": "Mon Mar 23 17:27:25 2020 -0700"
      },
      "committer": {
        "name": "Ricardo Correa",
        "email": "rgcorrea@google.com",
        "time": "Tue Mar 24 16:20:36 2020 +0000"
      },
      "message": "Revert \"Allow call audio access for default dialer application\"\n\nThis reverts commit ac26cf749f457e12a3d8d7456bbcd58a3e028d69.\n\nReason for revert: Feature has been postponed\nBug: 151761909\n\nChange-Id: I90a977a23c5b97ddf95976cf2c4d517165f8e8c2\n"
    },
    {
      "commit": "2d91d3fa1f66623976c747e0890e77959cdcb78f",
      "tree": "ab629f08d891a88592decb554942fdcf258c344e",
      "parents": [
        "1261c29e1efbe523285dc65138d4c29bf5ae6b39"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Dec 09 13:53:34 2019 -0800"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Mon Mar 23 16:41:59 2020 -0700"
      },
      "message": "Reland: Register C2 HAL Service v1.0 for Q and v1.1 for R.\n\nTest: TARGET_BUILD_APPS\u003dcom.android.media.swcodec m dist \u0026\u0026 adb install\n--staged out/dist/com.android.media.swcodec.apex \u0026\u0026 adb reboot userspace\nTest: atest CtsMediaTestCases -- --module-arg\nCtsMediaTestCases:exclude-annotation:android.media.cts.NonMediaMainlineTest\n\nBug: 144271235\nChange-Id: I92611b7204e7b16fd8da652d5fc1521e3025a4cd\n"
    },
    {
      "commit": "3006a83565b6863f247bf634faa929b84608026e",
      "tree": "d5199b47770c80334a28b94ab827d24e63dc4a9d",
      "parents": [
        "1261c29e1efbe523285dc65138d4c29bf5ae6b39",
        "6c22190e49f47b3debc122e15ca042befdd39cee"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Mar 23 17:03:59 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 23 17:03:59 2020 +0000"
      },
      "message": "Merge \"MediaMetrics: limit maximum memory used\" into rvc-dev"
    },
    {
      "commit": "6c22190e49f47b3debc122e15ca042befdd39cee",
      "tree": "e1f359598e1b2f0fd2810780e649def0ef00c349",
      "parents": [
        "8d386f779d76eb2a87ec570bf6ee3c0ce674085f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 20 16:35:24 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 20 17:30:41 2020 -0700"
      },
      "message": "MediaMetrics: limit maximum memory used\n\nUse media utility function limitProcessMemory().\n\nTest: restrict mediametrics memory by property, ensure restart\nBug: 152084875\nChange-Id: I20b51cecd67e9ac5e03ab34c1c68b1cfd0b8a964\n"
    },
    {
      "commit": "b3e62a0302fb4d3b51b860d2badbc72663746dd9",
      "tree": "5bf1a4ede6eb601f3639a059ef55ee6d737d50f7",
      "parents": [
        "6437df87da8175a05e2a522c7c71eddcde88f97c",
        "04cb8f72e799d6045583304d1b90cd16875b9bd0"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Mar 21 00:08:42 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 21 00:08:42 2020 +0000"
      },
      "message": "Merge \"AudioFlinger: Add master volume to the dumpsys\" into rvc-dev"
    },
    {
      "commit": "04cb8f72e799d6045583304d1b90cd16875b9bd0",
      "tree": "23c22ea54fe8c2df03107e08c578554c4b885514",
      "parents": [
        "8d386f779d76eb2a87ec570bf6ee3c0ce674085f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 20 13:44:33 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 20 14:00:23 2020 -0700"
      },
      "message": "AudioFlinger: Add master volume to the dumpsys\n\nNow PlaybackThreads shows master volume, which enables tracking\nsubtle silence issues. (Note MmapThreads already dump master volume.)\n\nTest: adb shell dumpsys media.audio_flinger\nBug: 145107983\nChange-Id: I2efc1a133c0ea07929c646b7e7148a9f3f311912\n"
    },
    {
      "commit": "c2462eaef9f174eac472bf8848081cda0e2b52d1",
      "tree": "33706f1cf51ee387424ecc3a15eafb4cd18cf5c1",
      "parents": [
        "301dd5f1d99993725cb6336e6d520904e23ce925",
        "c0fe54c6427be540e4c5e1549f7b537f88cb5570"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 20 17:59:15 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 20 17:59:15 2020 +0000"
      },
      "message": "Merge \"Camera: Release online and offline resources\" into rvc-dev"
    },
    {
      "commit": "85732f4121889191410448cfc19c336e0ea69285",
      "tree": "95f34d584a0ad4a2695b67ef7de733a5825b357f",
      "parents": [
        "f57740fc311c80bc7e62fde8b03b4f8f4d34ccda"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 19 11:31:10 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 19 17:49:51 2020 -0700"
      },
      "message": "audio policy: fix mmap stream invalidation logic\n\nImplement a MMAP stream invalidation logic consistent with AAudio\ndisconnect callback policy.\n\n- When a MMAP stream is opened with a preferred device selection:\n  Invalidate the stream only when the preferred device becomes unavailable,\n  either because disconnected or not selectable by highest priority use case.\n- When a MMAP stream is opened without explicit device selection:\n  Invalidate the stream when current device selection changes due to the\n  routing rules applicable to the stream\u0027s audio attributes (attributes\n  of first client on that stream).\n\nBug: 144020984\nTest: OboeTester \u003e TEST DISCONNECT\n\nChange-Id: I70fde0bc8ab9d544b8d3badb713e6239d792cbdb\n"
    },
    {
      "commit": "f57740fc311c80bc7e62fde8b03b4f8f4d34ccda",
      "tree": "318ca47e02e7c7da2cc7bb18f0ccbb6357093ae1",
      "parents": [
        "eaac82f33f2a064c6ae1a5f1791bb13669820687",
        "2fe0acd07f9fb2d0eefbe0fa9d25fbaf0f672596"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 19 17:57:49 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 19 17:57:49 2020 +0000"
      },
      "message": "Merge \"audioflinger: add effect creation probe mode\" into rvc-dev"
    },
    {
      "commit": "8d386f779d76eb2a87ec570bf6ee3c0ce674085f",
      "tree": "23882c11fc70381e07df23e416d1eb101e1debdc",
      "parents": [
        "c7c50f47ce0998ea6d2ea5f40abc937fbde278e2",
        "7f82d1a74e77e0a89fd8431dbaf68f9b8e8b7118"
      ],
      "author": {
        "name": "Jasmine Cha",
        "email": "chajasmine@google.com",
        "time": "Wed Mar 18 06:51:02 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Mar 18 06:51:02 2020 +0000"
      },
      "message": "audio policy: fix disordered sequence while changing device am: 7f82d1a74e\n\nChange-Id: I8a46ba81d6055e097c7328a79e9d945ad83bda81\n"
    },
    {
      "commit": "7f82d1a74e77e0a89fd8431dbaf68f9b8e8b7118",
      "tree": "2bdca4c4ccac9de11c954108c71c6d2293c66be8",
      "parents": [
        "a5d212cfee978920684ad90f4b9bb3cfb3eeee8a"
      ],
      "author": {
        "name": "Jasmine Cha",
        "email": "chajasmine@google.com",
        "time": "Mon Mar 16 13:21:47 2020 +0800"
      },
      "committer": {
        "name": "Bubble Fang",
        "email": "bubblefang@google.com",
        "time": "Wed Mar 18 01:16:26 2020 +0000"
      },
      "message": "audio policy: fix disordered sequence while changing device\n\n  Disordered sequence will occur when delayMs of muting volume\n  and changing path are the same and no additional delay between\n  both commands (muteWaitMs \u003d\u003d 0).\n  Add half reported latency to delayMs for routing could avoid\n  processing muting stream volume and switching path concurrently.\n\nBug: 149798335\nTest: Make VoIP/voice call and switch device between handset/handsfree.\n      Check if touch tone is truncated in QXDM.\n\nSigned-off-by: Jasmine Cha \u003cchajasmine@google.com\u003e\nChange-Id: Ifa15ba9de330805637cfb20ee96c4293c1c1bd31\n"
    },
    {
      "commit": "2fe0acd07f9fb2d0eefbe0fa9d25fbaf0f672596",
      "tree": "10a5a6ceaee79473c53b3dacb08b58172bcd14f2",
      "parents": [
        "90334d0f03f4bee709969433898025fc16863f01"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 13 14:30:46 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 16 13:49:20 2020 -0700"
      },
      "message": "audioflinger: add effect creation probe mode\n\nAdd an argument to IAudioFlinger::createEffect() API to\nask AudioFlinger to just run the pre flight checks but not\ncreate the actual audio effect instance and allocate resources.\nThis is the basis of an API for apps to query if a given\neffect can be created without having to allocate the resources\nand risk an exception when calling the constructor.\n\nBug: 150699608\nTest: CTS and GTS Tests for audio effects\nChange-Id: Ibdda22fd945c88c33e3c7342a7a5ed3e02d399ac\n"
    },
    {
      "commit": "c530c5973f425f574fc5e4add205938e5f040ab4",
      "tree": "ec05f4a2862d0b3e42fc5ff93b4a6e95f938c7b1",
      "parents": [
        "90334d0f03f4bee709969433898025fc16863f01"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Mon Mar 09 14:50:36 2020 -0700"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Mon Mar 16 17:45:47 2020 +0000"
      },
      "message": "Camera: fix use after free in sensor timestamp\n\nThe metadata object might be overriden later and has it memory\nre-allocated; hence snaping the sensor timestamp value before\nwe call into any method that might change the metadata.\n\nTest: build\nBug: 150944913\nMerged-In: I0f944fc9133d3ab279859f20236d956d7ca338f8\nChange-Id: I0f944fc9133d3ab279859f20236d956d7ca338f8\n(cherry picked from commit 60afc2fd8dab203a5697adbdb8dd4718d00bd9f1)\n"
    },
    {
      "commit": "28fc70a6cb4f90c5ff24873d41ad2320a4e7fc34",
      "tree": "30435c4dffc4afd72d6fe7be76e7da2b9992ef56",
      "parents": [
        "1ca9e116a1a8cc1eaecdb3d2481dac71909c270d",
        "cad23c25737f100ac117835aa234c02f2013c0a9"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Sat Mar 14 01:44:49 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 14 01:44:49 2020 +0000"
      },
      "message": "Merge \"cameraserver: rename getConcurrentStreamingCameraIds -\u003e getConcurrentCameraIds.\" into rvc-dev"
    },
    {
      "commit": "fa2ea8d036e6533bdf2116d0db0eb9b71cdd4c0d",
      "tree": "58e017b3391b075c98bd2f70b2728c68e4d28a04",
      "parents": [
        "aa22b0cd8e15c7a97836fcbb3a3f9a2a29c7f3f2",
        "f90036285d193c6903fe8c2ffc4b27ae40701c2d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 12 23:17:39 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 12 23:17:39 2020 +0000"
      },
      "message": "Merge \"audiopolicy: Remove global static initializers\" into rvc-dev"
    },
    {
      "commit": "c0fe54c6427be540e4c5e1549f7b537f88cb5570",
      "tree": "ed5030049ca87eae2fcf9b9bfb3dbd234d82fbdb",
      "parents": [
        "5e3b7679084322e027a7e5121ff0f4944b3b6de6"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Mar 11 14:05:07 2020 -0700"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Mar 11 17:20:07 2020 -0700"
      },
      "message": "Camera: Release online and offline resources\n\nClear the cached previous request in case of\nsuccessful offline switch. The request can\npotentially continue to have valid references\nto offline streams.\nClear the online camera device reference after\ncomposite streams switch to offline mode.\nIn this case, all internal offline streams must\nbe released by the offline session.\n\nBug: 149346795\nTest: Camera CTS\nChange-Id: If29308dd0f402ab492e304e0475005b2a9801e74\n"
    },
    {
      "commit": "cad23c25737f100ac117835aa234c02f2013c0a9",
      "tree": "06b8ffe5296c19a4256e990ac2eced37bc209caa",
      "parents": [
        "904b623c8cdbd43a2089c5d3b45240757bd3bc81"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Tue Mar 10 15:04:59 2020 -0700"
      },
      "committer": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Wed Mar 11 16:11:14 2020 -0700"
      },
      "message": "cameraserver: rename getConcurrentStreamingCameraIds -\u003e getConcurrentCameraIds.\n\nBug: 150896133\n\nTest: builds\nTest: atest ConcurrentCameraTest.java\n\nChange-Id: Id73f15164200a4cc91354b67784bab3c470caf57\nSigned-off-by: Jayant Chowdhary \u003cjchowdhary@google.com\u003e\n"
    },
    {
      "commit": "c8c4e1823b5ccefe7a886a8689cdfad10afd836d",
      "tree": "856da186879fae5dba15aef9c5e64e05fdca41ad",
      "parents": [
        "5e3b7679084322e027a7e5121ff0f4944b3b6de6"
      ],
      "author": {
        "name": "Robin Lee",
        "email": "rgl@google.com",
        "time": "Wed Mar 11 22:06:47 2020 +0100"
      },
      "committer": {
        "name": "Robin Lee",
        "email": "rgl@google.com",
        "time": "Wed Mar 11 21:22:54 2020 +0000"
      },
      "message": "Give 32-bit mediaextractor permission to mremap()\n\nTest: Boot device, see if setup video plays\nTest: atp/tv_***_video_playback_smoke_test\nBug: 151156096\nBug: 151163101\nChange-Id: I768bf36765fdc5dbd81c4c7632741f47e148147b\n"
    },
    {
      "commit": "1499f86e03e0fe9be271b6096ffa456eb2631f4b",
      "tree": "95945f77b8b32e6a244b1cf9c9f7670be32085e5",
      "parents": [
        "5ae4551c9290e02f7890e014ca69b1b748567ccd",
        "78668ac7c707fbec5edea3e8e4c96a4d65784794"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Mar 11 02:29:06 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 11 02:29:06 2020 +0000"
      },
      "message": "Merge \"allow mremap to use MEMRMREMAP_MAYMOVE flag\" into rvc-dev"
    },
    {
      "commit": "78668ac7c707fbec5edea3e8e4c96a4d65784794",
      "tree": "16ca6a206a3bc7877178eb478d32f598b0e3e6af",
      "parents": [
        "6b4d9a1f19aba17aa923369b17316500934ba7d1"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Mar 10 16:15:45 2020 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Mar 10 23:39:14 2020 +0000"
      },
      "message": "allow mremap to use MEMRMREMAP_MAYMOVE flag\n\nbug: 151163101\ntest: see bug, shouldn\u0027t see crash in mediacodec minijail\n\nChange-Id: If25dc5a56fe2f549d7867aa5a459b949be7e6947\n"
    },
    {
      "commit": "5ae4551c9290e02f7890e014ca69b1b748567ccd",
      "tree": "fd79b82cc0c58b7fd38e27018d79c6a45052bb55",
      "parents": [
        "9b7a350a079651072bc412c5c3d5fa0e0c1867e4",
        "695044d6f177871d349fa7e9a4a2ac07e093ae25"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 10 23:27:46 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 10 23:27:46 2020 +0000"
      },
      "message": "Merge \"Camera: Add onCameraOpened/onCameraClosed callbacks\" into rvc-dev"
    },
    {
      "commit": "f90036285d193c6903fe8c2ffc4b27ae40701c2d",
      "tree": "9b9a264025963188e857adb7e3d9466e32342ed9",
      "parents": [
        "c62ad13ad8da6b31168f0d9f3e5f2a770ed0bbee"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Mar 10 13:15:08 2020 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Mar 10 22:29:12 2020 +0000"
      },
      "message": "audiopolicy: Remove global static initializers\n\nReplace global static instances of non-primitive\ntypes with function static instances. The latter\nget initialized on the first call to the function\ninstead of module load time.\n\nThis also gets rid of ASAN UAF errors reported\nduring unit test execution.\n\nBug: 150649241\nTest: atest audiopolicy_tests\nTest: atest audio_health_tests\n  (for ASAN-instrumented libraries and test)\nChange-Id: I514c9205b9d3e7a3f0a1d8aa71d71fcc792e7a7b\n"
    },
    {
      "commit": "00756ce1c430d5e0a1ac84b68b8fbcceb09489b2",
      "tree": "f0488214fb11da7f29734189f290c93a3e2f3869",
      "parents": [
        "9c4bc394f0b2ffcb85afb0500b04e71434c0b91f",
        "0dfdf931b6dc4ee66722d67745ef0dd0133964b3"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Tue Mar 10 21:50:56 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 10 21:50:56 2020 +0000"
      },
      "message": "Merge \"Revert \"stagefright: MediaCodec::releaseAsync()\"\" into rvc-dev"
    },
    {
      "commit": "7dfc94a0eac6070791f663b9fdb7121b740271e3",
      "tree": "dd5ed47203fc640ffcb81313ed992148c78bc775",
      "parents": [
        "1cd41d5ce183e92a84ba79da0016cb3eef545822",
        "88b30d2c1520112670472ae879b20cc33a1b6eb0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 10 19:07:24 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 10 19:07:24 2020 +0000"
      },
      "message": "Merge changes from topic \"fix-b-149854039-dynamic-hal-modules\" into rvc-dev\n\n* changes:\n  Plumb the notification about audio HAL services update to APM\n  libaudiohal: Allow late registration of HIDL HAL services\n  Allow for late audio module discovery in APM\n"
    },
    {
      "commit": "1bb30b2efa3cf029daaedf7cfb4cbec7433ee38d",
      "tree": "90e9b007d4327887126db4907cd3131d9a083a82",
      "parents": [
        "a6544e3bf7de17f104d5fb509d6cb7f6d90dc79f"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Fri Mar 06 09:02:23 2020 -0800"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Tue Mar 10 11:38:13 2020 -0700"
      },
      "message": "Camera: Add onCameraOpened/onCameraClosed callbacks\n\nThe onCameraOpened/onCameraClosed callbacks are used to notify camera\nservice client with [] permission that a certain camera device has been\nopened/closed.\n\nTest: Manually check callbacks are received in SystemUI app\nBug: 150540299\nChange-Id: If6f3624c43927c30afef7df0a780eafe3ae4c527\nMerged-In: If6f3624c43927c30afef7df0a780eafe3ae4c527\n"
    },
    {
      "commit": "88b30d2c1520112670472ae879b20cc33a1b6eb0",
      "tree": "a3afdce3d25d97385bd4a29d8223cffe0fc2203a",
      "parents": [
        "88de22ff76578985801dd7662acb07a5641298c1"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Mar 09 19:43:13 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Mar 10 16:17:26 2020 +0000"
      },
      "message": "Plumb the notification about audio HAL services update to APM\n\nAudioFlinger registers a callback with libaudiohal to receive\nnotifications when new HAL services get registered. It relays\nthe notification to AudioPolicyManager via AudioSystem /\nIAudioPolicyService interface.\n\nBecause AF / APM only interact via Binder interfaces and APM\u0027s\ninterface gets registered later than AF\u0027s, the notification\nfrom AF is made asynchronous.\n\nBug: 149854039\nTest: audio test on a regular phone configuration\n      audio test on a phone with MSD audio HAL module\nChange-Id: I158e941b8f75e2a4614b9d84ca798b0f1f47aa6a\n"
    },
    {
      "commit": "0dfdf931b6dc4ee66722d67745ef0dd0133964b3",
      "tree": "b8d3449ab3e3daa2876dc330d225a463e37ffdfb",
      "parents": [
        "96544178efa46936543d099e6ac059eea704af1a"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Mar 09 21:22:44 2020 +0000"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Mar 09 21:27:11 2020 +0000"
      },
      "message": "Revert \"stagefright: MediaCodec::releaseAsync()\"\n\nRevert submission 10446783-mediacodec-lazy-release\n\nReason for revert: back-to-back video playback jitters\nReverted Changes:\nI119945684:stagefright: MediaCodec::releaseAsync()\nIeb4c0b2e1:media: lazy MediaCodec.release()\n\nBug: 150662913\nChange-Id: I5dfbd4a09af5ab29b9a20d58e804ce43993f2088\n"
    },
    {
      "commit": "c0d04987f6f7bd6e054210b1ca33a827afce650b",
      "tree": "32385a3831d727298a1a766d09183c28a93e2f5d",
      "parents": [
        "c62ad13ad8da6b31168f0d9f3e5f2a770ed0bbee"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Mar 02 21:02:28 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Mar 09 20:19:42 2020 +0000"
      },
      "message": "Allow for late audio module discovery in APM\n\nExtract code that loads hardware modules and fills out\nmAvailable{Input|Output}Devices into a reusable function.\nIt is used both during APM initialization and on\nreceiving a notification that a new HAL service has\nbeen discovered.\n\nBug: 149854039\nTest: atest audiopolicy_tests\nChange-Id: Ifb7f0b61b06a0609802e63dccb26f3472328ef48\n"
    },
    {
      "commit": "695044d6f177871d349fa7e9a4a2ac07e093ae25",
      "tree": "e0dda6998c8734784af3f88cc4fa96da98d0eeba",
      "parents": [
        "6d4357197004ad81b2a256db33c82aa5c86a0b41"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Fri Mar 06 09:02:23 2020 -0800"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Mon Mar 09 08:43:25 2020 -0700"
      },
      "message": "Camera: Add onCameraOpened/onCameraClosed callbacks\n\nThe onCameraOpened/onCameraClosed callbacks are used to notify camera\nservice client with CAMERA_OPEN_CLOSE_LISTENER permission that a certain\ncamera device has been opened/closed.\n\nTest: Manually check callbacks are received in SystemUI app\nBug: 150540299\nChange-Id: If6f3624c43927c30afef7df0a780eafe3ae4c527\n"
    },
    {
      "commit": "40598a663cb78c3f931bbf49c69077787de26241",
      "tree": "179c8d1b7ccb94f586a480193cda80b4bf3c841a",
      "parents": [
        "fb471f4f307da9e124035bb3852e11e2362e8a5e",
        "d505c647c527b45b8b1c157504d57df247fee8b6"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Mar 07 02:48:48 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 07 02:48:48 2020 +0000"
      },
      "message": "Merge \"Effects: set hw volume if effect chain doesn\u0027t have volume control\" into rvc-dev"
    },
    {
      "commit": "fb471f4f307da9e124035bb3852e11e2362e8a5e",
      "tree": "1e4b07ed2464899cbb2f73b93523af75c587378c",
      "parents": [
        "6d4357197004ad81b2a256db33c82aa5c86a0b41",
        "ed416da90cd9d91c959d4dbd64b974aefd9b448b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Mar 07 01:29:25 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 07 01:29:25 2020 +0000"
      },
      "message": "Merge \"MediaMetrics: Remove remaining BOOTTIME references\" into rvc-dev"
    },
    {
      "commit": "d505c647c527b45b8b1c157504d57df247fee8b6",
      "tree": "ec18a301b74cb8928faa3e427457ea929abe89aa",
      "parents": [
        "831ed185aa1dd8211bc37a05c9af8ed6941bf809"
      ],
      "author": {
        "name": "Zhou Song",
        "email": "zhous@codeaurora.org",
        "time": "Thu Feb 20 16:35:37 2020 +0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 06 16:01:52 2020 -0800"
      },
      "message": "Effects: set hw volume if effect chain doesn\u0027t have volume control\n\nIf effect chain has non-offloaded effect, and is enabled for direct\noutput, when there\u0027s no volume control for all the effect modules\nwithin this chain, volume should still be set to HAL.\n\nTest: Play Music, Videos with effects\nBug: 149899134\nCRs-Fixed: 2625597\nChange-Id: I77bd0d456d5fa4e88afb283002a5eb1e2b704ca8\n"
    },
    {
      "commit": "ed416da90cd9d91c959d4dbd64b974aefd9b448b",
      "tree": "c11ee8428e14bbb1e1c4cd2079365c345b4e6644",
      "parents": [
        "831ed185aa1dd8211bc37a05c9af8ed6941bf809"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Mar 05 18:42:55 2020 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 06 14:35:21 2020 -0800"
      },
      "message": "MediaMetrics: Remove remaining BOOTTIME references\n\nUse SYSTEM_TIME_REALTIME instead.\nAs we always specify the time when the item arrives,\nthis has no real effect, just for internal consistency.\n\nTest: atest mediametrics_tests\nBug: 149850236\nChange-Id: I34d7bed0c4e25b288493ce1ecf3574c4d87334d9\n"
    },
    {
      "commit": "6d4357197004ad81b2a256db33c82aa5c86a0b41",
      "tree": "c37a827bf5360f03bae4f5c97a6f7aed133ebb14",
      "parents": [
        "831ed185aa1dd8211bc37a05c9af8ed6941bf809",
        "fca6714fd6d72f6e9e47927d6ef246807cece7bf"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 06 21:07:27 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 06 21:07:27 2020 +0000"
      },
      "message": "Merge \"Camera: Intialize useGrid and chooseHeic variables\" into rvc-dev"
    },
    {
      "commit": "831ed185aa1dd8211bc37a05c9af8ed6941bf809",
      "tree": "b29c8172e28ae3d86b2e629e126aa2009184dbf7",
      "parents": [
        "6da8961b4c694b7c45243a78303e3caa702e8a8b",
        "796804387e39ddb35a63b747759dac955683809e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 06 18:31:20 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 06 18:31:20 2020 +0000"
      },
      "message": "Merge \"Camera: Fix ProviderInfo leak\" into rvc-dev"
    }
  ],
  "next": "fca6714fd6d72f6e9e47927d6ef246807cece7bf"
}
