)]}'
{
  "log": [
    {
      "commit": "70c2e5ea61daffd458fd0e57be8376036281f737",
      "tree": "50b345f4d8f0737820cafad0cedccd865711000c",
      "parents": [
        "63a0662d03791460a6ba882851e95b3e9eaf8b3b",
        "484e927cf9e9bdd91f21796d52ea23c8fe49f670"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 12 23:42:31 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 12 23:42:31 2018 +0000"
      },
      "message": "Merge \"audiopolicy: fix VoIP and system sound routing concurrency\" into pi-dev"
    },
    {
      "commit": "94ec46f82f5813fd5bcdf6c2f562e009dd4eec03",
      "tree": "a4b1ca73d1a625fa407814d7d3f7197b82ab59dd",
      "parents": [
        "d5217e613d252dcc5d3a223fcd5e6e4109b65b85"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Jun 08 15:03:46 2018 -0700"
      },
      "committer": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Jun 08 16:47:03 2018 -0700"
      },
      "message": "Handle race between UID state and activty resume\n\nThere is a race between the UID turning active and activity\nbeing resume. The proper fix is very risky, so we temporary add\nsome polling which should hapen pretty rarely anyway as the race\nis hard to hit.\n\nTest: camera works fine\n      cts-tradefed run cts-dev -m CtsCameraTestCases\n\nbug:77827041\n\nChange-Id: I1768d00dc08e6e49cec0099f0a29b7889f9affad\n"
    },
    {
      "commit": "484e927cf9e9bdd91f21796d52ea23c8fe49f670",
      "tree": "a4613c94a81ea09cbae3010205d513260782bc19",
      "parents": [
        "bebb9d118340d2ce7b518539eba23f877b6fd8ad"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 07 17:29:23 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 07 18:17:08 2018 -0700"
      },
      "message": "audiopolicy: fix VoIP and system sound routing concurrency\n\nOn platforms with dedicated output profiles for VoIP, activity on\nall output streams should be considered when use case priority is\nevaluated while selecting current device on a given output stream.\n\nFor now, implement a simple rule taking only into account output streams\nattached to the same audio HAL module and limited to voice call use\ncase.\nThis should be extended to all use cases with a refined rule\nconsidering mutually exclusive devices (using same backend) as opposed\nto all streams on the same audio HAL module.\n\nBug: 109640706\nTest: repro steps in b/109640706\nChange-Id: I2cea35911a6121980f128a3a3d694699364854eb\n"
    },
    {
      "commit": "c3462a1b892911f35ba2ff53e0f7aaec38fc2e4d",
      "tree": "012da528b21d4bcbd1c6980a000d939e77229e05",
      "parents": [
        "cc073aac88a30dded339bc8809297fb78cc1b43a"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Thu Jun 07 14:11:30 2018 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jun 07 14:56:54 2018 -0700"
      },
      "message": "Camera: fix metering region conversion\n\nZero weight regions have no actual effect. Skip them.\nAlso clamp the correction result to be within active\narray.\n\nTest: GCA smoke test\nBug: 109766306\nChange-Id: I24640ffb564f30dcbc14cf8c97f8100c0bad2640\n"
    },
    {
      "commit": "cc073aac88a30dded339bc8809297fb78cc1b43a",
      "tree": "4e6eb91a95f71e95cd7bbd25ca313498ec24f406",
      "parents": [
        "89c5da186f5d59372b6c33bb9a5e17d4aa8c6db0"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jun 07 12:27:17 2018 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jun 07 12:27:17 2018 -0700"
      },
      "message": "Camera: DistortionMapper: Move FACE_RECTANGLES to point list\n\nFace rectangles are actually a pair of points, not rects with\n(top, left, width, height).\n\nThis is very silly but what can you do.\n\nTest: Check metadata output with forced-on distortion correction\nBug: 74434422\nChange-Id: I5c0ede9624a198f1dd68328c2dcfa6788ed2d9d9\n"
    },
    {
      "commit": "da74fce85a25272e94341ed3fcb0fe22215d5d7c",
      "tree": "46cbfa81314fc091fb42e515121a68b86c3cf206",
      "parents": [
        "82f153c157ef85f49ff36acd063574eacddf7ad1",
        "7cffc831bcf26e6ef973e615e3002b78c344fcfb"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jun 05 19:45:06 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 05 19:45:06 2018 +0000"
      },
      "message": "Merge changes Iae3d6f9d,I79e25d27 into pi-dev\n\n* changes:\n  CameraService: Add unit tests for DistortionMapper\n  Camera: Enable distortion correction for API1, map metadata when enabled\n"
    },
    {
      "commit": "7cffc831bcf26e6ef973e615e3002b78c344fcfb",
      "tree": "b7004e46d7b71d700beb97a3986947a247ec1395",
      "parents": [
        "7b8a1fd27d12d1b3ea711b0edca6ff5b07f5beb1"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Sun Jun 03 17:32:53 2018 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jun 05 00:24:01 2018 -0700"
      },
      "message": "CameraService: Add unit tests for DistortionMapper\n\n- Make cameraserver_test test module reachable by build system\n- Fix minor compilation error in CameraProviderManagerTest\n- Add tests to verify:\n  - Initialization of DistortionMapper\n  - Transforms with an identity distortion function\n  - Round-trip transform ~1e6 points with a large distortion function\n  - Raw to corrected transform compared against OpenCV undistortPoints,\n    using python to generate the comparison coordinate lists as a C++\n    header\n\nTest: atest cameraservice_test\nBug: 79885994\nChange-Id: Iae3d6f9de2e6c79dd5cea5ca35ee5100b38441f4\n"
    },
    {
      "commit": "7b8a1fd27d12d1b3ea711b0edca6ff5b07f5beb1",
      "tree": "4be88b1ea07031ef23aedb459f3e4a0fa6cccf61",
      "parents": [
        "4ed61f3f1b32753b95ff7a02b820e8612020a78b"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue May 22 15:30:35 2018 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Jun 04 18:52:36 2018 -0700"
      },
      "message": "Camera: Enable distortion correction for API1, map metadata when enabled\n\n- API1 + HAL3: Enable HIGH_QUALITY correction for still capture use\n  cases, FAST for others\n- HAL3: When distortion correction is enabled, map coordinate metadata from\n  corrected to original in capture requests, and from original to corrected\n  in capture results.\n\nTest: Camera CTS\nBug: 79885994\nChange-Id: I79e25d278fe69099770c749f42956fc8e878f7cf\n"
    },
    {
      "commit": "82f153c157ef85f49ff36acd063574eacddf7ad1",
      "tree": "3b47dfa0f91634790d17e27b8a8756a5824da9f1",
      "parents": [
        "2c2fccd6d8cafe8d116201801b699533e91bd193"
      ],
      "author": {
        "name": "Melvin Xu (徐敏)",
        "email": "melvin.xu@spreadtrum.com",
        "time": "Wed May 02 17:45:14 2018 +0800"
      },
      "committer": {
        "name": "Gaurav Sarode",
        "email": "sgaurav@google.com",
        "time": "Mon Jun 04 20:34:56 2018 +0000"
      },
      "message": "CTS-on-gsi test, CtsSecurityHostTestCases--android.security.cts.ProcessMustUseSeccompTest#testMediaextractorHasSeccompFilter\n--android.security.cts.ProcessMustUseSeccompTest#testOmxHalHasSeccompFilter\nfailed\n\n[Android Version]:\nAndroid8.1.0_r2\n\n[CTS pachage version]\nSuite / Plan\tVTS / cts-on-gsi\nSuite / Build\t8.1_R3 / 4632653\n\n[device](Any device config may relate this failure)\nspreadtrum\u0027s iSharkL2\nsize:1080*1920\n\n[bugzilla bugid] 79158930\n\n[CTS Test Pre–Condition]\n1.Language set to EN;\n2.Keyguard set to none;\n3.Enable GPS, Wifi network, USB debugging, Stay awake, Allow mock locations.\n4.CTS version is VTS / cts-on-gsi 8.1_R3\n\n[CTS Test Step]:\n1 ./vts-tradefed\n2 run cts-on-gsi\n\n[Expected Result  ]:\nThis case will pass.\n\n[Testing Result]:\ncase failed:\nCtsSecurityHostTestCases\n--android.security.cts.ProcessMustUseSeccompTest#testMediaextractorHasSeccompFilter\n--android.security.cts.ProcessMustUseSeccompTest#testOmxHalHasSeccompFilter\n\n\n[13. Analysis]:\njunit.framework.AssertionFailedError: media.extractor must have a seccomp filter enabled. The \"Seccomp\" field of media.extractor\u0027s /proc/3292/status file should be set to \"2\"\nat junit.framework.Assert.fail(Assert.java:57)\nat junit.framework.Assert.assertTrue(Assert.java:22)\n\nFor iSharkL2 device, TARGET_ARCH\u003dx86_64, but in the following Android.mk, there is no x86_64 option and mediaextractor-x86_64.policy, so mediaextractor.polily will not be generated in the $(TARGET_OUT)/etc/seccomp_policy.\n\nFrameworks/av/services/mediaextractor/Android.mk:\n# service seccomp filter\nifeq ($(TARGET_ARCH), $(filter $(TARGET_ARCH), arm arm64 x86))\ninclude $(CLEAR_VARS)\nLOCAL_MODULE :\u003d mediaextractor.policy\nLOCAL_MODULE_CLASS :\u003d ETC\nLOCAL_MODULE_PATH :\u003d $(TARGET_OUT)/etc/seccomp_policy\nLOCAL_SRC_FILES :\u003d seccomp_policy/mediaextractor-$(TARGET_ARCH).policy\ninclude $(BUILD_PREBUILT)\nendif\n\n[Analysize]:\nThere is no mediaextractor-x86_64.policy file in the frameworks/av/services/mediaextractor/seccomp_policy/, so we can\u0027t write this mediaextractor-x86_64.policy\n\nAnd mediaextractor-x86_64.policy is got based on the mediaextractor-x86.policy and added the differences between mediaextractor-arm.policy and mediaextractor-arm64.policy.\n\nBut there is a problem of the arrangement order of syscalls in mediaextractor-x86_64.policy, maybe it need Google engineer to refine it.\n\n\n[Conclusion]:\n1. Add a new mediaextractor-x86_x64.policy\n2. Modify the Android.mk file below in the frameworks/av/services/mediaextractor/ seccomp_policy\n3. Because current google AOSP don’t consider x86_64 arch for mediaextractor policy, and iSharkL2 device use x86_64 arch, so we need to support it in the frameworks/av/services/mediaextractor/ seccomp_policy/. We will request to waive for this.\n\n\n[Patch Link]:\nhttps://android-review.googlesource.com/c/platform/frameworks/av/+/676982\n\nbug: 79158930\nbug: 69073312\nTest: Local build\n\nChange-Id: Icd14cc62d6a2b8989ae3e2a1650af3749198522f\nMerged-In: Icd14cc62d6a2b8989ae3e2a1650af3749198522f\n(cherry picked from commit 9f60b56976e7bad73890914b486092cad6632253)\n(cherry picked from commit 178aaae0f64a194bf4804554c45fd65aa41344b1)\n"
    },
    {
      "commit": "4fe8f25fa2e988e318786d218d209298b4e088cb",
      "tree": "a64507ce2d00f4826e5cf22fc13b6a4dfd5db5f9",
      "parents": [
        "0dabe8d05ffda216042696e19f000cc89bf81593",
        "f13bda54c62c0d6c6a35dfc6047c5992b652652f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 31 21:11:24 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 31 21:11:24 2018 +0000"
      },
      "message": "Merge \"Camera: send disable error code to API1 client\" into pi-dev"
    },
    {
      "commit": "f13bda54c62c0d6c6a35dfc6047c5992b652652f",
      "tree": "cae60ad7032bb4fba95857c79f9b2934802f2d27",
      "parents": [
        "cc08faac6b309a1acc9a4eb8c28c3fc9669f8771"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Thu May 31 12:12:59 2018 -0700"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Thu May 31 12:12:59 2018 -0700"
      },
      "message": "Camera: send disable error code to API1 client\n\nTest: CTS CameraEvictionTest + IdleUidTest\nBug: 77486868\nChange-Id: Ib6f151842fa9cc8f1d580455bff0fd00278a989b\n"
    },
    {
      "commit": "33f5b8c456c68cd6b6a74159e0e8d205d264c7ee",
      "tree": "1857423b9c8dca91dda9f11245793fa9ef7ea042",
      "parents": [
        "7e8214620e57d16a79bec79e5f282ab0ab33459b"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed May 30 15:41:28 2018 +0100"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Thu May 31 10:33:49 2018 +0100"
      },
      "message": "Camera: Don\u0027t skip ZSL frames for fixed focus sensors\n\nZSL frames were getting completely discarded in case of fixed\nfocus camera sensors. This can have performance impact for\nlegacy camera clients.\n\nBug: 80482772\nTest: Manual using application,\nCamera CTS\nChange-Id: Ic98c8624226e960cffdcbfcee0b3e34adaf720fb\n"
    },
    {
      "commit": "54844c35a92f9982c2f87ded31291aa46afd8815",
      "tree": "e676c5a70cd408393d0cbdea8665899d0b732a10",
      "parents": [
        "fe1322b98693f335e37f5ab21b742184818fa0a3",
        "811d2959ccdb1df63343291859be8e766b2ec2f0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 29 11:08:35 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 29 11:08:35 2018 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Camera: Load initial session params speculatively\"\"\" into pi-dev"
    },
    {
      "commit": "e8aceb53e9ea4f3e03c0be3be21170a0a43faab4",
      "tree": "4b243809177650c6b1485ffe0dae3247c27cd384",
      "parents": [
        "d3663c97fb8bd44877e07a753a12b838a780b69c"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Mon May 21 12:00:56 2018 -0700"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Fri May 25 08:26:39 2018 -0700"
      },
      "message": "Camera: Filter logical camera ids to API1 app\n\nA lot of API1 apps don\u0027t handle logical/physical cameras well.\nFor each [logical, physical1, phiscal2] id combo, only advertise the\nfirst ids in the HAL id list.\n\nTest: Camera CTS\nBug: 80075565\nChange-Id: I1e300a8e13eff2bfef0a6a157a56717a7b73976c\n"
    },
    {
      "commit": "811d2959ccdb1df63343291859be8e766b2ec2f0",
      "tree": "f8744034d0924ad4d4ec40a98d1e36e3f1d1b3e4",
      "parents": [
        "d3663c97fb8bd44877e07a753a12b838a780b69c"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Fri May 25 11:08:40 2018 +0100"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Fri May 25 13:39:54 2018 +0100"
      },
      "message": "Revert \"Revert \"Camera: Load initial session params speculatively\"\"\n\nThis reverts commit e62ccda6c138e11649500b0125c6bd1e78488729.\n\nBug: 80227606\nTest: Manual using application,\nCamera CTS\nChange-Id: Ie726fe8b36eadfa971d9932e7a4a3116a34e694a\n"
    },
    {
      "commit": "df1ecbf26a2477b92c6802fd42e8c1274eed2b3b",
      "tree": "292d1d3feb993559074090e9d7b9484b557a7536",
      "parents": [
        "caeb7586f1648d7a60f24bc14e7cf145d7a7aa88",
        "f6a57cdbf3adb56c24388f15a6cad0c9d4d9014d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 24 22:35:28 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 24 22:35:28 2018 +0000"
      },
      "message": "Merge \"reduce metrics data for \u0027audiopolicy\u0027\" into pi-dev"
    },
    {
      "commit": "caeb7586f1648d7a60f24bc14e7cf145d7a7aa88",
      "tree": "a33048537b96b4cb38772e3e50eb9c0e9517b709",
      "parents": [
        "13dd40f4b0f6f82fa2c2f6e88030b5b31a60085d",
        "e62ccda6c138e11649500b0125c6bd1e78488729"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 24 20:51:25 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 24 20:51:25 2018 +0000"
      },
      "message": "Merge \"Revert \"Camera: Load initial session params speculatively\"\" into pi-dev"
    },
    {
      "commit": "e62ccda6c138e11649500b0125c6bd1e78488729",
      "tree": "d6ebfe02ce36c394810fad802e80feb23148326c",
      "parents": [
        "b139b178e8aca1343587dc8657360a21a1df8a10"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Thu May 24 19:10:32 2018 +0000"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Thu May 24 19:10:56 2018 +0000"
      },
      "message": "Revert \"Camera: Load initial session params speculatively\"\n\nThis reverts commit b139b178e8aca1343587dc8657360a21a1df8a10.\n\nReason for revert: This breaks camera-camcorder switch on older devices\n\nBug: 80227606\nChange-Id: Idd63652946537abdebed61ea4acf18b79d513048\n"
    },
    {
      "commit": "944c05e8575d63cf53a9a0825465b37f63645784",
      "tree": "253721d4dc3ef04e720e6bdb58527061a57eab0f",
      "parents": [
        "cd182409e34c0bb9da0136fd3a9e436fb09ab313",
        "f3a5a6014a8bf7915bcf9297d536c707c212086d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 23 21:05:37 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 23 21:05:37 2018 +0000"
      },
      "message": "Merge \"audio polcy: fix explicit device routing in call\" into pi-dev"
    },
    {
      "commit": "cd182409e34c0bb9da0136fd3a9e436fb09ab313",
      "tree": "8be33fc2a96b718c2b4a92e134adce6f0b4ff240",
      "parents": [
        "1bba156f15c0cce327c2426cf2a769307d6b4ef4",
        "da7581eca3523a21142a3d259531c938f8dc717c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 23 18:47:23 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 23 18:47:23 2018 +0000"
      },
      "message": "Merge \"audiopolicy: keep BT SCO vol at 0 dB on VoIP\" into pi-dev"
    },
    {
      "commit": "1bba156f15c0cce327c2426cf2a769307d6b4ef4",
      "tree": "38ebbdf1745735269d68140c3cca87b6eed65d1b",
      "parents": [
        "292838cca76071b5adbb25642147cfd4b67d0638",
        "5fa0aed349268d0c6b5884cdc15f0ff026322879"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 23 18:41:38 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 23 18:41:38 2018 +0000"
      },
      "message": "Merge \"audio policy: choose bt-sco and speaker-safe path.\" into pi-dev"
    },
    {
      "commit": "636607016468151b5ac2ceb6d904c8bee33111bf",
      "tree": "29a551a8004be53e54659bc3f4b5c740805acec0",
      "parents": [
        "e70022cfd9dbc02c583847236c0d390c822cffd2",
        "18e3f37a41b1a0eb4d15c9e8ca36e67fbc5103ce"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 23 16:48:58 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 23 16:48:58 2018 +0000"
      },
      "message": "Merge \"Camera: Bump camera splitter output slots\" into pi-dev"
    },
    {
      "commit": "f3a5a6014a8bf7915bcf9297d536c707c212086d",
      "tree": "36e3815839146def5e5a0e1584a3a5bdf2f2bd8d",
      "parents": [
        "c2d0641bc02e08a74c458002d9460299cd1ff490"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 22 18:42:55 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 23 08:51:46 2018 -0700"
      },
      "message": "audio polcy: fix explicit device routing in call\n\nMake sure tracks with an explicit routing request are not systematically invalidated\nwhen starting while another track on the same strategy is already active.\n\nAlso fix a problem where explicit routing is not taken into account by\ngetNewOutputDevice() when in call because the strategy with the\nexplicit routing is not evaluated.\n\nBug: 69680975\nBug: 79878501\nTest: voice call regression, CTS for explicit audio routing, test case\nfor b/79878501\n\nChange-Id: I99b83f8a3304549bf327c3c327f6671f777cfb4b\n"
    },
    {
      "commit": "da7581eca3523a21142a3d259531c938f8dc717c",
      "tree": "d83d3684141ee10394501e147d0e169b739d4d35",
      "parents": [
        "edfea741746883b3ca5898ccfcd6059b1c50204b"
      ],
      "author": {
        "name": "HW Lee",
        "email": "hwlee@google.com",
        "time": "Tue May 22 18:31:34 2018 +0800"
      },
      "committer": {
        "name": "HW Lee",
        "email": "hwlee@google.com",
        "time": "Wed May 23 14:02:07 2018 +0800"
      },
      "message": "audiopolicy: keep BT SCO vol at 0 dB on VoIP\n\nThe BT SCO volume of VoIP is set as the value computed with the volume\nindex, while that of voice call keeps constant (0 dB). It causes the\noutput sound of VoIP being multiplied by a gain computed with the\nvolume index, then the sound hears different if the volume index has\nbeen changed before. Therefore, the volume of VoIP on BT SCO should keep\nat 0 dB as well.\n\nBug:78206701\nTest: manual audio test\nChange-Id: I888b2f7c0869902dd5e0adf77f711e7b9fd7e108\nSigned-off-by: HW Lee \u003chwlee@google.com\u003e\n"
    },
    {
      "commit": "f6a57cdbf3adb56c24388f15a6cad0c9d4d9014d",
      "tree": "de446acf528dadf5c3895f75faf0d78dd339e646",
      "parents": [
        "a5691fa5c6dd06f64f1524f32b3c34fbdb2051ad"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Tue May 22 16:20:54 2018 -0700"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Tue May 22 16:22:59 2018 -0700"
      },
      "message": "reduce metrics data for \u0027audiopolicy\u0027\n\nno longer log audiopolicy records on success, only log on failure.\nThis drastically reduces the volume of data generated.\n\nBug: 78595399\nTest: dumpsys media.metrics, check records\n"
    },
    {
      "commit": "18e3f37a41b1a0eb4d15c9e8ca36e67fbc5103ce",
      "tree": "19584fd2f225272ad4d186d1d6821886accac9c5",
      "parents": [
        "7bb4333ff2298d0cc1a2125e18a21c174bced01d"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Tue May 22 18:55:01 2018 +0100"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Tue May 22 19:13:32 2018 +0100"
      },
      "message": "Camera: Bump camera splitter output slots\n\nCurrently we are configuring the number of output\nslots in each new shared surface as the sum between the\nmaxiumum stream buffers and the minimum undequeued buffers\nper surface. However the total number of buffers that\nwill get allocated in the input stream queue increases\nwith the latter undequeued ammount on each new output.\nThe delta between these values could result in\ninsufficient output slots for some outputs that consume\nbuffers with vastly different speeds combined with a\nslow camera producer that exhausts all dequeued slots.\nTo avoid this set the output slot count the the maximum\nsupported number by the framework. Allocation is disabled\nso this should not increase the number of allocated buffers.\n\nBug: 80079782\nTest: Manual using application,\nCamera CTS\nChange-Id: I36eed94a169a802f33126b640dd1d95725aec8db\n"
    },
    {
      "commit": "b139b178e8aca1343587dc8657360a21a1df8a10",
      "tree": "72da8942c0318e7d0f5b20fc7854447ec5269287",
      "parents": [
        "7bb4333ff2298d0cc1a2125e18a21c174bced01d"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Tue May 22 11:03:59 2018 +0100"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Tue May 22 11:03:59 2018 +0100"
      },
      "message": "Camera: Load initial session params speculatively\n\nIn case camera clients don\u0027t pass any session parameters try to\nload their initial values depending on the last cached default\nrequest.\n\nBug: 79989121\nTest: Camera CTS\nChange-Id: I73dd6b37584f6ae5dc5b9681313eb080ddd53b88\n"
    },
    {
      "commit": "01b32723fb154dce487e20e980a5daff0764badf",
      "tree": "92612c694eb9ae9365202b9c85b0f3918e4c35eb",
      "parents": [
        "1ea2c0f91cb97b17cc8849cf14848b05684b63b7"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 18 13:52:02 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 18 13:52:02 2018 -0700"
      },
      "message": "Effects: Aux effect input is always mono, do not retry as stereo\n\nTest: Solotester on multichannel usb with aux effect\nBug: 79950246\nChange-Id: I6e2c3be88d657a5df547dc1034be0e0eecc4b7c2\n"
    },
    {
      "commit": "1ea2c0f91cb97b17cc8849cf14848b05684b63b7",
      "tree": "3ddb537546057148f5c3b4c09f3c8a24aba2f764",
      "parents": [
        "dc784769ddc50e9579c1a2a739d65d87e6539015",
        "99fcae46d54639e7841d87b1dcacbc229bbf8dc4"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 18 17:58:16 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 18 17:58:16 2018 +0000"
      },
      "message": "Merge \"audio policy: add device to audio record media metrics\" into pi-dev"
    },
    {
      "commit": "dc784769ddc50e9579c1a2a739d65d87e6539015",
      "tree": "01125c585d002d8e3dfe33fa6bc403beb417b76d",
      "parents": [
        "8ebe13e647fff30e9e05870b51e0ab15bdf7ef4b",
        "a14b4ddd3575a01e0cf5af5475365af636d3b46f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 18 09:12:16 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 18 09:12:16 2018 +0000"
      },
      "message": "Merge \"Camera: Limit framerate re-configurations during HFR\" into pi-dev"
    },
    {
      "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": "0ba1ae398e65718fba66bb1bd258d4d0a9ba6c28",
      "tree": "9162db388abd715dfb491e921ba9478e54178c36",
      "parents": [
        "88af67ed2a068280c60bb467b58585fffa9f22a6",
        "3432e0439d3b09756f125dfa734951c654d63baf"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 17 21:47:06 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 17 21:47:06 2018 +0000"
      },
      "message": "Merge \"audiopolicy: Optimize A2DP codec config change\" into pi-dev"
    },
    {
      "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": "5fa0aed349268d0c6b5884cdc15f0ff026322879",
      "tree": "a889369dfba0d702e212f0fe584b6358540e9b70",
      "parents": [
        "88af67ed2a068280c60bb467b58585fffa9f22a6"
      ],
      "author": {
        "name": "juyuchen",
        "email": "juyuchen@google.com",
        "time": "Wed May 16 10:58:37 2018 +0800"
      },
      "committer": {
        "name": "Juyu Chen",
        "email": "juyuchen@google.com",
        "time": "Thu May 17 10:13:05 2018 +0000"
      },
      "message": "audio policy: choose bt-sco and speaker-safe path.\n\nChoose speaker-safe-and-bt-sco path instead of speaker-and-bt-sco when\ndevice is in ringtone mode.\n\nBug: 78257659\nTest: manual audio test on B1/C1.\n\nSigned-off-by: juyuchen \u003cjuyuchen@google.com\u003e\n"
    },
    {
      "commit": "88af67ed2a068280c60bb467b58585fffa9f22a6",
      "tree": "a1319887fd2413232f64355ca9e9186056cc1cdf",
      "parents": [
        "5eb9d967e81ace00d96ab50b9264b25560e9df1d",
        "5fac9c6a6c666775cbc7c63c3b6c44a9384e65f5"
      ],
      "author": {
        "name": "Bubble Fang",
        "email": "bubblefang@google.com",
        "time": "Thu May 17 01:47:43 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 17 01:47:43 2018 +0000"
      },
      "message": "Merge \"audioflinger: clean previously opened input selectedDeviceId if retrying\" into pi-dev"
    },
    {
      "commit": "a14b4ddd3575a01e0cf5af5475365af636d3b46f",
      "tree": "893dfbbb7efe641c6d3ef7f1c10dc2ed9c95ed91",
      "parents": [
        "bf2e1e8debbe1e91549b2defe2345d1a1876a8df"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Tue May 15 11:00:31 2018 +0100"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed May 16 17:06:34 2018 +0100"
      },
      "message": "Camera: Limit framerate re-configurations during HFR\n\nPer API specification the maximum framerate range is the only\nvalue that needs to be considered during constrained camera\nsessions. If target fps is part of the session parameters, then\nwe should only monitor for modifications in the upper range.\n\nBug: 78494729\nTest: Camera CTS\nChange-Id: Ic7de406820347f8e58bf3d4fee7750f694372604\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": "625e3020f8c070c8d8449af1bdaeaa002c11cc03",
      "tree": "26bb1e93bd520b90e68a96a7b51a7f96aec58d10",
      "parents": [
        "c7c321335610ac2ee193c41ef673517ad43d6c42",
        "2fe718b88ebc7e9f10e1195591dd62ae9e26ed8d"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue May 15 20:53:20 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 15 20:53:20 2018 +0000"
      },
      "message": "Merge \"aaudio: fix possible race condition in close()\" into pi-dev"
    },
    {
      "commit": "2fe718b88ebc7e9f10e1195591dd62ae9e26ed8d",
      "tree": "de5712270006a8db8c1cdf2ba70253bffc789c4c",
      "parents": [
        "1267e887bd9d38e2785b601e872a26acf0ec17f9"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon May 14 12:28:32 2018 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue May 15 12:17:04 2018 -0700"
      },
      "message": "aaudio: fix possible race condition in close()\n\nMove increment and decrement of reference count under\nthe same lock used for finding the stream.\n\nBug: 79693915\nTest: run CTS tests\nChange-Id: I206eb09724a81f2d79a03fa756adbcbb8abf5efa\n"
    },
    {
      "commit": "5fac9c6a6c666775cbc7c63c3b6c44a9384e65f5",
      "tree": "3abae3a532b94a1effe64d53da838830deebae84",
      "parents": [
        "bf2e1e8debbe1e91549b2defe2345d1a1876a8df"
      ],
      "author": {
        "name": "Yung Ti Su",
        "email": "andysu@google.com",
        "time": "Tue May 15 15:07:43 2018 +0800"
      },
      "committer": {
        "name": "Yung Ti Su",
        "email": "andysu@google.com",
        "time": "Tue May 15 18:17:43 2018 +0800"
      },
      "message": "audioflinger: clean previously opened input selectedDeviceId if retrying\n\nselectedDeviceId is not cleaned when retrying open input.\nand will add this selectedDeviceId into input routing.\nWhich will cause getDeviceForInputSource() not doing\nmEngine-\u003egetDeviceForInputSource() but only return\nroute-\u003emDeviceDescriptor-\u003etype() and failed to route to\nthe correct device.\nTest: self-test routing is corrected.\n\nBug:79332409\nTest: routing is corrected.\nChange-Id: Ia85c773f3549befb929178469116dc2d4e4945ad\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": "7ad78187b16c5e2ccd0abb4d09883ef5a1411d11",
      "tree": "9f334855da3fbe449093b0f7ffcf8e996d6c59f9",
      "parents": [
        "b3dee358b18472d6623a9d6342d7f2f7e8e45bec"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 10 20:54:29 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 10 20:57:22 2018 -0700"
      },
      "message": "AudioFlinger: Fix tee logging\n\nMissing header file hidden by compile flag.\n\nTest: Compilation is fixed when flag enabled\nBug: 78310170\nChange-Id: Ie938193c5d87de04f22318a8fb4fffb4a4412a53\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": "d3cb8618b05774148c62dc0e6391ba7cb7e7328a",
      "tree": "ae9977e7491acd340303abb5418f4eb251287ea4",
      "parents": [
        "a9879efa62e9c863c234b46510111859158ebb68",
        "66814d4c3bb8819cc81f7fac208cc7936fa40f0d"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Thu May 10 20:08:57 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 10 20:08:57 2018 +0000"
      },
      "message": "Merge \"Camera: use proper input size in ZslProcessor\" into pi-dev"
    },
    {
      "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": "66814d4c3bb8819cc81f7fac208cc7936fa40f0d",
      "tree": "4d307daac3da9b398bc4c880802c769c19eab93f",
      "parents": [
        "527da4c9d30c977c0105a288b20a77f0f9e8d0d3"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed May 09 11:04:36 2018 -0700"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Thu May 10 12:06:42 2018 -0700"
      },
      "message": "Camera: use proper input size in ZslProcessor\n\nTest: API1 CTS + partner testing\nBug: 79405555\nChange-Id: Idba9233aa671beda7bceaa3d0181706df2610012\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": "f62e1a2887bedb440bb98c4e7071896dd3f46163",
      "tree": "e888731841186f29889629dd796fc5bd213ca614",
      "parents": [
        "d5fa1baa8b0a985d80cbfb53c3960504314ca8f6"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 08 18:32:11 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 08 18:38:44 2018 -0700"
      },
      "message": "Fix PatchTrack retry for ClientProxy::obtainBuffer\n\nRestore buffer mFrameCount as error clears it.\n\nTest: phone call with usb device, simulate underrun.\nBug: 79423841\nChange-Id: Ia00d08b6753b5c65cf7f07bf1c889fd6d1eefd0a\n"
    },
    {
      "commit": "06d13227bed31bf4a2dfa30e19198620eb5b120e",
      "tree": "6331425a223849eb00235dbb80642d7f242e020f",
      "parents": [
        "d79fe0de75143dcf71c43b3d533a18a391bb4a5f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 03 20:13:31 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 08 12:15:12 2018 -0700"
      },
      "message": "AudioFlinger: Use actual MonoPipe depth for sleep computation\n\nThis prevents benign underruns from glitching.\n\nTest: instrumented, see bug\nBug: 79227935\nChange-Id: I47be9c06faac4dec736ad809c59cf56c0f3d1dda\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": "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": "70376b122742c515ff6c546f2bd8b3bfaac172cd",
      "tree": "5709bf11cb39f5c0d26f7505e03b9786031fde6f",
      "parents": [
        "4ac3f08fe01117070ea379ae34e8b5f8bb4d7226",
        "9378eb9634d07010bebf8a2d4bda84320ec80e57"
      ],
      "author": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Thu May 03 02:04:57 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 03 02:04:57 2018 +0000"
      },
      "message": "Merge \"Restrict setting silenced in RecordTrack.\" into pi-dev"
    },
    {
      "commit": "4ac3f08fe01117070ea379ae34e8b5f8bb4d7226",
      "tree": "d37b3f983585c870c7b5ff3b2d3b895a6a54783b",
      "parents": [
        "8d1c940af4afef9c066e5924fed495ba8136ae34",
        "7a3dc6bd4795a1b254d1ceef959da2b4d6ef8ba4"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 03 00:28:13 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 03 00:28:13 2018 +0000"
      },
      "message": "Merge \"RecordThread: Adjust sleep time to pipe frames free.\" into pi-dev"
    },
    {
      "commit": "9378eb9634d07010bebf8a2d4bda84320ec80e57",
      "tree": "9d9dd22652b7860882e3155a6d218042d55cd3f6",
      "parents": [
        "6f4512914d90430bf135de221897887638c79f25"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed May 02 15:26:35 2018 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed May 02 17:13:07 2018 -0700"
      },
      "message": "Restrict setting silenced in RecordTrack.\n\nWhen initializing, always set mSilenced as false. Never set silenced for\npatch track.\n\nBug: 77193174\nTest: make phone call with usb headset multiple times.\nChange-Id: I93f4646cc6d88749c602bdd0003afc48f7dec36f\n"
    },
    {
      "commit": "8d1c940af4afef9c066e5924fed495ba8136ae34",
      "tree": "e94300effede657e2e80ab3dd095d3436eb43e91",
      "parents": [
        "3e69b248ef8805b888ea1ec76f3bab773db05589",
        "885691cefdf8f11da3396f60ada0fa35964fab41"
      ],
      "author": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Wed May 02 20:42:09 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 02 20:42:09 2018 +0000"
      },
      "message": "Merge \"Camera: fix frame capture trace pair\" into pi-dev"
    },
    {
      "commit": "7a3dc6bd4795a1b254d1ceef959da2b4d6ef8ba4",
      "tree": "bba043f16dedc7f82531ffc8c5cf1a5351036df7",
      "parents": [
        "0f59472e584f9962a7ef390d1dba90ca2c0ad8be"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 01 16:39:51 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 02 10:38:37 2018 -0700"
      },
      "message": "RecordThread: Adjust sleep time to pipe frames free.\n\nThis fixes FastCapture pipe overrun for normal AudioRecord clients.\n\nTest: instrumented CTS AudioRecord, Photos record.\nBug: 71330194\nBug: 77281929\nChange-Id: I186017aec8d0acb3aefe9e4eb378b71b32f8ad59\n"
    },
    {
      "commit": "1267e887bd9d38e2785b601e872a26acf0ec17f9",
      "tree": "7a08e8098c8fc51ce46c2967c9449986f9a33fa2",
      "parents": [
        "e641294b59e2a0792d894139d739228f182409b4",
        "6e2770ef771b7a3042d606c37f9c3af8a933439b"
      ],
      "author": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Wed May 02 01:14:12 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 02 01:14:12 2018 +0000"
      },
      "message": "Merge \"aaudio: use weak pointer to prevent UAF\" into pi-dev"
    },
    {
      "commit": "885691cefdf8f11da3396f60ada0fa35964fab41",
      "tree": "054e8874ce134deef9d4af5033524b9ef62dbc8b",
      "parents": [
        "6f4512914d90430bf135de221897887638c79f25"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue May 01 15:54:24 2018 -0700"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue May 01 15:54:24 2018 -0700"
      },
      "message": "Camera: fix frame capture trace pair\n\nTest: atrace + HFR\nBug: 78906878\nChange-Id: Ib8e7293f0d056d3b5dec60a9abccf2e7e5d4a933\n"
    },
    {
      "commit": "6e2770ef771b7a3042d606c37f9c3af8a933439b",
      "tree": "502cf6cde6e624096f922f6dadf20a42870e2f04",
      "parents": [
        "e5a37268101a2c9d8019938f4e5ac9eec2e52fca"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue May 01 13:03:52 2018 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue May 01 15:46:47 2018 -0700"
      },
      "message": "aaudio: use weak pointer to prevent UAF\n\nAvoid using the mServiceEndpoint smart pointer\nfrom multiple threads.\n\nBug: 74122779\nTest: see bug for test instructions\nChange-Id: Idaf9e32a163b25e51bde35d6f5ea10a372b5d916\n"
    },
    {
      "commit": "0f59472e584f9962a7ef390d1dba90ca2c0ad8be",
      "tree": "c3fa8b4160c88a463ac49a28df97888718b3d9b4",
      "parents": [
        "8d57302e2deaf84c039d616f6423541813b48c75",
        "d5b638fe57c3ceaf7834d4c2181d4c4c2588f967"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue May 01 13:26:45 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 01 13:26:45 2018 +0000"
      },
      "message": "Merge \"RecordThread: Immediate retry on audio read overrun\" into pi-dev"
    },
    {
      "commit": "d5b638fe57c3ceaf7834d4c2181d4c4c2588f967",
      "tree": "24d5945c47bdde790d316edf7e109a03e1847eac",
      "parents": [
        "0926bb0100b5df3439c49777952d48ce53dd9137"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 30 13:56:10 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 30 14:55:08 2018 -0700"
      },
      "message": "RecordThread: Immediate retry on audio read overrun\n\nOtherwise another sleep and FastCapture write can cause overrun again.\n\nTest: Force OVERRUN fifo error and AudioRecordTest still passes.\nBug: 26983118\nChange-Id: I039e3a42863cbe96ca84d0f03020b836d5c944d1\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": "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": "1f0cbeddf430e24d943892381600262ae3ce542e",
      "tree": "100472aead6a12e105897ec167defecd43bd200f",
      "parents": [
        "e44ca3765fca8d82f7dcf884c53acddb6704dd20",
        "860d10a72cc760b4be280277e86c526ad171e4bb"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Apr 27 23:02:26 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 27 23:02:26 2018 +0000"
      },
      "message": "Merge \"Remove usage of undeclared and unused variable mFastTrackNames\" into pi-dev"
    },
    {
      "commit": "860d10a72cc760b4be280277e86c526ad171e4bb",
      "tree": "786d6f2648ecf9481fea855a82def4cef131b47d",
      "parents": [
        "ed4f0147db29c87d0404f78eb68dc7b7b81deed8"
      ],
      "author": {
        "name": "Dhananjay Kumar",
        "email": "dhakumar@codeaurora.org",
        "time": "Mon Apr 16 12:40:29 2018 +0530"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Apr 27 13:40:50 2018 -0700"
      },
      "message": "Remove usage of undeclared and unused variable mFastTrackNames\n\nCRs-Fixed: 2220445\nBug: 78683817\nTest: at bug\nAuthor: Ramjee Singh \u003cramjee@codeaurora.org\u003e\nChange-Id: I3c51cd30bd5ab0ab25f6a49460895c889ea8fc33\n"
    },
    {
      "commit": "4fe8cfba169b4cc5e5eb4440c6e5bd74c8be502d",
      "tree": "ef478acd1c7ddea7dee36f3fd40e51693f72a3c8",
      "parents": [
        "b0d44131e93e0190351ac50ea7a3fe76da168557",
        "472836998ef2f7499050ae107eecfa0ee47c230a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 26 20:17:48 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 26 20:17:48 2018 +0000"
      },
      "message": "Merge \"Camera: Use short form camera id for conflicting devices\" into pi-dev"
    },
    {
      "commit": "90033d19134e13de6b7829db496925676c9d4d72",
      "tree": "bf0365581a75061d4a3654761d5f8ea82b670f04",
      "parents": [
        "354a89b3960894e0c73384648f3722c9e2a65d4c",
        "2157f5bc0c54a77318e75076365eff739e07056f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 26 18:36:18 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 26 18:36:18 2018 +0000"
      },
      "message": "Merge \"audiopolicy: fix preferred device selection\" into pi-dev"
    },
    {
      "commit": "472836998ef2f7499050ae107eecfa0ee47c230a",
      "tree": "2685a7f071a05f73f4d5a9bffc0dfec24a2608a2",
      "parents": [
        "2db457b39ec52961118359e94e141ceff7eb7c4e"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Tue Apr 24 18:05:02 2018 -0700"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Thu Apr 26 09:08:34 2018 -0700"
      },
      "message": "Camera: Use short form camera id for conflicting devices\n\nThe camera id in CameraService needs to be consistent with the ones in\nconflicting device strings.\n\nStrip the simple form camera id from the fully-qualified id.\n\nTest: Camera CTS\nBug: 78277539\nChange-Id: I081f36eaba4a0a3dc9ba3323eb386833566c15ba\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": "a66243a7d65c6152e4f0c3e0ac6ba3470c73a6a2",
      "tree": "9c2c2b90ccdeff518971f07af89c31228b8e5d5c",
      "parents": [
        "67f280ee7f7ec076cce335c7aa7d3150ae0a3e28"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Wed Apr 18 01:38:29 2018 -0700"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Wed Apr 25 04:21:59 2018 -0700"
      },
      "message": "Allow customized registration of codec services\n\nTest: adb bugreport\n\nBug: 78206546\nChange-Id: Id42d57b8b647570e68de228de856a39b2755862d\n"
    },
    {
      "commit": "67f280ee7f7ec076cce335c7aa7d3150ae0a3e28",
      "tree": "7a7038c48b32aef10e234832b6a61864b51f2555",
      "parents": [
        "ac9d979583c4a10c2ebcf9649d773edf7acce723",
        "2db86ffaebed02c67a08c8c3bd8e265509cd8c05"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Wed Apr 25 01:26:51 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 25 01:26:51 2018 +0000"
      },
      "message": "Merge \"Revert \"Camera: Use fully qualified name for camera eviction logic\"\" into pi-dev"
    },
    {
      "commit": "2db86ffaebed02c67a08c8c3bd8e265509cd8c05",
      "tree": "850a1497330c4aca17eb69ac6d4c751e00d156ba",
      "parents": [
        "9e3055dd2d3f8b47c7f0871d5b6b03c205a7f6fa"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Wed Apr 25 01:11:17 2018 +0000"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Wed Apr 25 01:12:35 2018 +0000"
      },
      "message": "Revert \"Camera: Use fully qualified name for camera eviction logic\"\n\nThis reverts commit 9e3055dd2d3f8b47c7f0871d5b6b03c205a7f6fa.\n\nBug: 78528859\nBug: 78277539\nChange-Id: I9b18760a5573b92676e688915ebf0fe0e1ce3010\n"
    },
    {
      "commit": "2f5bbc76f4efbb21a48ec1210b5b6c2a1a055aa3",
      "tree": "3027ef0d429bfdf73c1e48673462ea7399fd05c5",
      "parents": [
        "1deee1056103f26ae42dc0a84daaf13ea6b0948e",
        "9e3055dd2d3f8b47c7f0871d5b6b03c205a7f6fa"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 23 22:40:02 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 23 22:40:02 2018 +0000"
      },
      "message": "Merge \"Camera: Use fully qualified name for camera eviction logic\" into pi-dev"
    },
    {
      "commit": "bad588e975b093823fd79d657e9e1a90a187fbcf",
      "tree": "55e4fc2669d1ad1bf83d5f9ea0940cb53cb09b09",
      "parents": [
        "030cb3b698958d5b291598b96463b450888e1a27",
        "67f97291bfb7caec5152d2c93913191729db5917"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 23 17:55:48 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 23 17:55:48 2018 +0000"
      },
      "message": "Merge \"audioflinger: fix mmap volume update\" into pi-dev"
    },
    {
      "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": "67f97291bfb7caec5152d2c93913191729db5917",
      "tree": "3d8b3241addba940bf4b8707bf5993fe533fd525",
      "parents": [
        "6b6f4313aae039f2d73664816e45834e65f79bf5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 20 18:05:41 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 20 18:05:41 2018 -0700"
      },
      "message": "audioflinger: fix mmap volume update\n\nMake sure volume callback is sent at least each time a new\nclient stream is started.\n\nBug: 78122737\nTest: repro steps in bug.\nChange-Id: I5b5ac617d604ed23bf8528affa1877b6cc0b5494\n"
    },
    {
      "commit": "9e3055dd2d3f8b47c7f0871d5b6b03c205a7f6fa",
      "tree": "100ad9d8948b9481d1e9d18ec9eedef9729e4e3a",
      "parents": [
        "56aad0ab6a23bfa750a3542f6bdcd21b70f082ac"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Fri Apr 20 14:10:53 2018 -0700"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Fri Apr 20 17:35:42 2018 -0700"
      },
      "message": "Camera: Use fully qualified name for camera eviction logic\n\nThe conflicting device names are fully qualified, but the current\ncamera id isn\u0027t. Make them consistent.\n\nTest: Camera CTS\nBug: 78277539\nChange-Id: I1baf8d39b95bb475ad6a25f2eae7d409efe5d239\n"
    },
    {
      "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": "ed4f0147db29c87d0404f78eb68dc7b7b81deed8",
      "tree": "3fe6906677700427bacfdcde6c9eb1243f0f54c0",
      "parents": [
        "cdcfb309e26fa636eed7768b49376122961d861a",
        "b1fe6e1080fb691803038ebd5d399e62d6b88108"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Apr 20 21:47:42 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 20 21:47:42 2018 +0000"
      },
      "message": "Merge \"AudioFlinger: Fix Tee compilation\" into pi-dev"
    },
    {
      "commit": "cdcfb309e26fa636eed7768b49376122961d861a",
      "tree": "f332447f7f9a1f1ec161fc7a9f368bfa8574c27c",
      "parents": [
        "150b9846f846165344910b9211739cdb3054ccf4",
        "9e75663c56f13d21799bbe6a67f5587659a320e3"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Apr 20 21:17:31 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 20 21:17:31 2018 +0000"
      },
      "message": "Merge \"Don\u0027t create empty .wav files\" into pi-dev"
    },
    {
      "commit": "b1fe6e1080fb691803038ebd5d399e62d6b88108",
      "tree": "36840901ce7e7ac47d11746d644b0cb7cce6e448",
      "parents": [
        "6b6f4313aae039f2d73664816e45834e65f79bf5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 19 19:20:00 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Apr 20 13:04:24 2018 -0700"
      },
      "message": "AudioFlinger: Fix Tee compilation\n\nTest: Enable Tee and check build and output files\nBug: 78310170\nChange-Id: Ic6f1d87a3055ee0f5ce0fe7b57d0fdc74d75d31b\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": "9e75663c56f13d21799bbe6a67f5587659a320e3",
      "tree": "6b89e9981004057393c6bea438f4357e55e67ece",
      "parents": [
        "c4b259a584be3e7dc9aad83e0ead06c913ceb998"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Oct 03 13:01:09 2017 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Apr 19 11:09:57 2018 -0700"
      },
      "message": "Don\u0027t create empty .wav files\n\nBug: 78287983\nTest: follow the tee sink documentation, and then verify there are no empty files\nChange-Id: I0aa98aff5d0d47b86f36dd38a54d0daf3feb1965\n"
    },
    {
      "commit": "56aad0ab6a23bfa750a3542f6bdcd21b70f082ac",
      "tree": "850a1497330c4aca17eb69ac6d4c751e00d156ba",
      "parents": [
        "975ac84ea80330f83cd79189a31f6f8eb6fa6593",
        "79d2b28f3a04d7914bb932a65d87117c0c7c11cf"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 19 17:40:39 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 19 17:40:39 2018 +0000"
      },
      "message": "Merge \"Request cpuset change for 1080p HDR using soft decoder\" into pi-dev"
    },
    {
      "commit": "975ac84ea80330f83cd79189a31f6f8eb6fa6593",
      "tree": "afbc1fae335460110b78c7b1e1b04e05921682d5",
      "parents": [
        "6b6f4313aae039f2d73664816e45834e65f79bf5",
        "bbd5286e99bbacf9907e2ecf1f7181db17ee6e46"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 19 00:25:48 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 19 00:25:48 2018 +0000"
      },
      "message": "Merge \"aaudio: teardown stream based on a port handle\" into pi-dev"
    },
    {
      "commit": "6b6f4313aae039f2d73664816e45834e65f79bf5",
      "tree": "2230658e1118b6d854591e7fbfbc87ca0d2c27dd",
      "parents": [
        "0c4ef750ac29d7b6da306adbfeb8b1535f7a975a",
        "7e820c5cfdc8d9fd2f8c34ffe287f2479b6577d2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 18 20:53:08 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 18 20:53:08 2018 +0000"
      },
      "message": "Merge \"Fix string copy termination\" into pi-dev"
    },
    {
      "commit": "79d2b28f3a04d7914bb932a65d87117c0c7c11cf",
      "tree": "386c0e23123c52191f3c098351898cd6a0bdb4bf",
      "parents": [
        "1cdd674121096020f7f17c216940a14aa58ff31e"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Apr 17 14:14:31 2018 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Apr 18 13:46:03 2018 -0700"
      },
      "message": "Request cpuset change for 1080p HDR using soft decoder\n\nKeep track of cpuset change requests in ResourceManagerService,\nand request changing of cpuset via SchedulingPolicyService.\n\nBug: 72841545\n\nTest:\n\n1)Using modified Youtube/Exoplayer (that uses softMediaCodec\nto decode VP9 profile2), manually verify the following:\n\n- media.codec is put into top-app cpuset playing VP9 1080p HDR\n- media.codec is put back into foreground after done\n- media.codec stays in foreground cpuset playing other content\n- kill the app process, verify media.codec is put back to\n  foreground until new instances request top-app\n- kill mediaserver process, verify media.codec is put back to\n  foreground until new instances request top-app\n- kill media.codec process, starting playback again, verify new\n  media.codec\u0027s cpuset can be changed correctly\n- kill system_server process (using \u0027adb shell stop \u0026\u0026\n  adb shell start\u0027), verify media.codec is put back to\n  foreground. Restart playback and verify the cpuset can be\n  changed correctly.\n\n2) CTS post submit tests\n\nChange-Id: Iba50ede1c08b695821fe4f56dbfc5694eab54e7b\n"
    },
    {
      "commit": "bbd5286e99bbacf9907e2ecf1f7181db17ee6e46",
      "tree": "b523037660dffe33c9aa1d8cb65938b934f16000",
      "parents": [
        "f255369091d48ba7475ee4aae840a8a9c7a15f07"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 13 11:37:42 2018 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 18 10:18:49 2018 -0700"
      },
      "message": "aaudio: teardown stream based on a port handle\n\nNeeded for silencing specific input streams.\nPass AAudioService reference into AAudioServiceEndpointMMAP.\nUse it to find a specific stream by PortHandle then\nstop it and disconnect it.\n\nBug: 72134552\nTest: b/72134552#comment10\nChange-Id: Ibdf242f834c83b47c967c3cc634ed1083b019d4a\n"
    },
    {
      "commit": "0c4ef750ac29d7b6da306adbfeb8b1535f7a975a",
      "tree": "41a91e423856685a4a67a783f2185deed07aa18a",
      "parents": [
        "9d7ffe4f7e3ac10f7b1e19c453d91b4735808e05",
        "7f25e5f57f25ec798edc781423d7a29234e67f1b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 18 14:33:20 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 18 14:33:20 2018 +0000"
      },
      "message": "Merge \"Camera: Synchronize access to torch status map\" into pi-dev"
    },
    {
      "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": "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": "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": "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": "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": "734046ead103df5ec86b1dbd29e9945034a1ecb0",
      "tree": "910d09f7cd3a19d24b6f3e563db9553e07b7d6a4",
      "parents": [
        "331679c8a5cd21a0e6a7a1d851e965e4721f7420"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 16 14:50:52 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 16 17:08:06 2018 -0700"
      },
      "message": "audioflinger: fix mmap interface callback lock\n\nDo not hold the MmapThread mutex when calling methods on\nMmapStreamCallback as AAudioService will synchronously call\nmethods on MmapStreamInterface that will in turn acquire the mutex.\n\nBug: 78118584\nTest: \u0027adb shell write_sine_callback -m3 -pl -s100 -x\u0027 and Plug headphones in and out.\nTest: AAudio CTS tests\n\nChange-Id: I5953bb449e67735271203a2e1dbef0a2b451f5d3\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"
    }
  ],
  "next": "554e08c6b00b2a57348f4545d450915a9e8c870a"
}
