)]}'
{
  "log": [
    {
      "commit": "55773033ed1f23c4e8f3d2704002fbd0cedbf7a5",
      "tree": "54bc894243fa3c52e611c85aed75ee6677056c13",
      "parents": [
        "7aed66e788c8955ddd22a1235856bb9dac34d82a"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 01 15:08:13 2020 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 08 18:12:55 2020 -0700"
      },
      "message": "Convert mask types from uint32_t to enum type\n\nThis applies to the following types:\n\n- audio_gain_mode_t;\n- audio_flags_mask_t;\n- audio_channel_representation_t;\n- audio_channel_mask_t;\n- audio_devices_t.\n\nEnum types are distinct thus proper overloading on the type\nis possible in C++. Also, assignments to enum types are\nless prone to errors.\n\nBug: 169889714\nTest: basic audio functionality\n      m stagefright\n      atest audiopolicy_tests\nChange-Id: I42506484b1d0b0482618b7314fad4c8012a06fb4\n"
    },
    {
      "commit": "049c4be63ef7cdf815abb965568713d773ebff65",
      "tree": "4969c35e8420ab3133d2cf957988c193d0ff7a21",
      "parents": [
        "2f0bf51fb362149cfd88d55b93a3a0bb89779e92"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Sep 24 22:23:06 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Sep 24 23:33:45 2020 +0000"
      },
      "message": "HAL V7.0: Update example APM config files\n\nUse space delimiter for mixPort flags field.\n\nBug: 142480271\nTest: atest VtsHalAudioV7_0TargetTest\nChange-Id: I3eef9bf1e9bcc24a869355724aa333c1f93b4b31\n"
    },
    {
      "commit": "1cd2025ae118e8eca2193c7b23051e24e50c876b",
      "tree": "43fc5394c881b451375d852f0b893eb55a6828da",
      "parents": [
        "8fdf74a2f7def5a70f926114e19672e93559d468",
        "a67ba176f13bc0b1a00cb7f729014f74f0cdf411"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Sep 18 21:29:48 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 18 21:29:48 2020 +0000"
      },
      "message": "Merge \"Fix channel mask for the EARPIECE in example APM config\""
    },
    {
      "commit": "a67ba176f13bc0b1a00cb7f729014f74f0cdf411",
      "tree": "0d67ad6898a9ffa5ba72068b2057145428d5f523",
      "parents": [
        "42dcedca067790d053f32a1bc497fd6f99fb0744"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Sep 18 17:29:45 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Sep 18 17:29:45 2020 +0000"
      },
      "message": "Fix channel mask for the EARPIECE in example APM config\n\nEARPIECE is an output device, must have an output channel\nmask.\n\nBug: 142480271\nTest: N/A\nChange-Id: I676bc7222474f2d366bfb4edcd14b83381d68083\n"
    },
    {
      "commit": "f4de36d17ea278672c61fd1be94d36bc3ea5c340",
      "tree": "17eb2dc1f7c5b7cc4c7b1773ba6ad8684ab5d89d",
      "parents": [
        "a7f98a1ea6d6896673fa7f027c1ff3fc321f6a32"
      ],
      "author": {
        "name": "yucliu",
        "email": "yucliu@google.com",
        "time": "Mon Sep 14 14:57:56 2020 -0700"
      },
      "committer": {
        "name": "Yuchen Liu",
        "email": "yucliu@google.com",
        "time": "Tue Sep 15 17:24:47 2020 +0000"
      },
      "message": "Invalidate stream when unregistering audio policy mix\n\nInvalidate the stream if the audio policy mix on the client is removed,\nso that the client can reconnect to another output stream.\n\nBug: 167605686\nTest: Unregister audio policy by killing the app. Audio resumes.\nChange-Id: I9a00311142613df8c019206c9b7c873ec8f42b88\n"
    },
    {
      "commit": "2bf7f2992eb55bcc410340fb802494ae91bceb7e",
      "tree": "c5b7dacebb47b969a5513928166daf14631f2a17",
      "parents": [
        "14c3722d8f588771771f6d375ed5d09adf682390",
        "ec0f0ec225b7f5a95b305f0c4a345acc78874633"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 09 17:24:06 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Sep 09 17:24:06 2020 +0000"
      },
      "message": "Merge \"Skip devices with multiple bits set.\" am: bd5bb90b4d am: 451a36a9a6 am: 77230bc934 am: 3f185ad132 am: ec0f0ec225\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1421703\n\nChange-Id: I35c49c2538c476a245cff1d0958db4dd8f87d5b2\n"
    },
    {
      "commit": "ec0f0ec225b7f5a95b305f0c4a345acc78874633",
      "tree": "a4da22251dab4aee686d9217e626383376d7e692",
      "parents": [
        "acb4d9ca255eb027141f623d221d87fb30c9fc40",
        "3f185ad132f4dd2c4e31a06b69aec83aa44fcd39"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 09 17:16:19 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Sep 09 17:16:19 2020 +0000"
      },
      "message": "Merge \"Skip devices with multiple bits set.\" am: bd5bb90b4d am: 451a36a9a6 am: 77230bc934 am: 3f185ad132\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1421703\n\nChange-Id: I7205d741c7113277a52b922b777c208a9e3d6beb\n"
    },
    {
      "commit": "3f185ad132f4dd2c4e31a06b69aec83aa44fcd39",
      "tree": "27a7cd1cc44669e7deee1b9be06ff201c80492ba",
      "parents": [
        "8843cf96f564248d4e2b17c559dea377dce34d9c",
        "77230bc934f9646030640993fa3f0a0db4c9ca5e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 09 16:58:41 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Sep 09 16:58:41 2020 +0000"
      },
      "message": "Merge \"Skip devices with multiple bits set.\" am: bd5bb90b4d am: 451a36a9a6 am: 77230bc934\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1421703\n\nChange-Id: I4a44f3cbd6643acb970cf0797954699656b38f63\n"
    },
    {
      "commit": "77230bc934f9646030640993fa3f0a0db4c9ca5e",
      "tree": "2f64e10a0e25e11ec4cbec2997ca61757cdce0e5",
      "parents": [
        "c5c9086d323906f2bdd2d020910291044250081e",
        "451a36a9a67eb9cad6931b908736072c76d30ec2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 09 16:26:47 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Sep 09 16:26:47 2020 +0000"
      },
      "message": "Merge \"Skip devices with multiple bits set.\" am: bd5bb90b4d am: 451a36a9a6\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1421703\n\nChange-Id: Iad96bd32869ba3d798a185c82740684ead3349a8\n"
    },
    {
      "commit": "451a36a9a67eb9cad6931b908736072c76d30ec2",
      "tree": "41e1735a1a979a48cb51e05cd9ac8b165bdbecec",
      "parents": [
        "2cbbfa584a989ce07ac5fa31d8159f31848c9825",
        "bd5bb90b4d0032980a74849a798a52cba0f4a185"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 09 16:18:23 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Sep 09 16:18:23 2020 +0000"
      },
      "message": "Merge \"Skip devices with multiple bits set.\" am: bd5bb90b4d\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1421703\n\nChange-Id: Ic54c8dcf210e9b375e7fdce6444c7d882a1784d6\n"
    },
    {
      "commit": "e3c22e22cac4625e0b5e8052826cc06ec171c45a",
      "tree": "766e8d5c0e353b06334cd1d261f100c2df3774fd",
      "parents": [
        "8028dfb98b90cdb555fd615049165031aa319fb9"
      ],
      "author": {
        "name": "Hongguang Chen",
        "email": "hgchen@google.com",
        "time": "Tue Sep 08 13:22:56 2020 -0700"
      },
      "committer": {
        "name": "Hongguang Chen",
        "email": "hgchen@google.com",
        "time": "Tue Sep 08 22:24:02 2020 -0700"
      },
      "message": "Skip devices with multiple bits set.\n\naosp/1399204 added AUDIO_DEVICE_OUT_BLE_SPEAKER whose value is\n0x20000001. The buildCommonTypesStructureFile.py didn\u0027t cover that kind\nof values and it caused audioserver crashed.\n\nThis CL skips that kind of devices. A general solution (b/168065706)\nshould be addressed in the configurable audio policy and parameter\nframework.\n\nBUG: 167745916\nTest: Check PolicySubsystem-CommonTypes.xml and boot up device.\nChange-Id: Id802d37c18c4fd152a84a5a1579390b464c505f1\n"
    },
    {
      "commit": "ac744ad46d3f98c2fc1e888981cd5b8dafea5991",
      "tree": "38d068655137f9ce33e2ce42630c19843c85691e",
      "parents": [
        "72c38cc36232d08f481b234924c920fe00f06afb",
        "3b98d3208183a6a2ec4d3eb2b24a1cd53cf15c46"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 08 22:46:28 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 08 22:46:28 2020 +0000"
      },
      "message": "Merge \"Revert^2 \"Support device role for capture preset.\"\""
    },
    {
      "commit": "3803ff3ec558396240f6133ecbb22d02b931d142",
      "tree": "5c2b9367155715e704d22f137a64d4a8a1f85905",
      "parents": [
        "9447b48f36b1bf26645e6256dd29224b6a398161",
        "e1f1cb5827a6c99d41e05e090b3b382f3598a58e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 08 20:17:33 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Sep 08 20:17:33 2020 +0000"
      },
      "message": "audio policy: correct force use touch sound delay am: e1f1cb5827\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12539419\n\nChange-Id: I7b8ecc463d043da5c9e479bf92a73654ba8f3ad7\n"
    },
    {
      "commit": "e1f1cb5827a6c99d41e05e090b3b382f3598a58e",
      "tree": "5a867b160cc351c30d777319aad5c3f5fc727eee",
      "parents": [
        "d1fa2375194096937bbdfd2def97969c4336191b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 21 12:50:41 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 08 18:25:21 2020 +0000"
      },
      "message": "audio policy: correct force use touch sound delay\n\nDo not apply the special delay added in setForceUse() multiple times.\nThis delay was meant to be applied only once to avoid truncating touch\nsounds but is actually used multiple times when updating routes on all\noutput streams, thus lengthening the call audio path switch time\nunnecessarily.\n\nBug: 163537547\nTest: manual call routing test\nChange-Id: I6fe15d4ed9b1f37452921585e9f7684637e8a30b\n(cherry picked from commit b36b4accf36ba413529a0b6735802a65f42c2f7c)\n"
    },
    {
      "commit": "3b98d3208183a6a2ec4d3eb2b24a1cd53cf15c46",
      "tree": "40d78318ee59cb23fa5cfbd53fdff57035fe8b32",
      "parents": [
        "bcfb2ce24a4eb736d701197293d4337f23ba59c4"
      ],
      "author": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Thu Sep 03 17:54:16 2020 +0000"
      },
      "committer": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Thu Sep 03 17:54:16 2020 +0000"
      },
      "message": "Revert^2 \"Support device role for capture preset.\"\n\nbcfb2ce24a4eb736d701197293d4337f23ba59c4\n\nChange-Id: I368d562ec2aae68aa239dce75d54ca2772b30e76\n"
    },
    {
      "commit": "8dbd241e279e1a637502e38af32ef6ead483768f",
      "tree": "733edec2f52c4eadf28d30ce670bcdc848cb7fe7",
      "parents": [
        "bf1d0a629c1a606757de52b3e47785bb3304b239",
        "bcfb2ce24a4eb736d701197293d4337f23ba59c4"
      ],
      "author": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Thu Sep 03 17:25:20 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 03 17:25:20 2020 +0000"
      },
      "message": "Merge \"Revert \"Support device role for capture preset.\"\""
    },
    {
      "commit": "bcfb2ce24a4eb736d701197293d4337f23ba59c4",
      "tree": "e4a01d8d1e3c5ccbd3ab7db611315a1b5ea97239",
      "parents": [
        "dddc2aef4e5f9f27a79909f475c31c96eb688200"
      ],
      "author": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Thu Sep 03 02:45:05 2020 +0000"
      },
      "committer": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Thu Sep 03 02:45:05 2020 +0000"
      },
      "message": "Revert \"Support device role for capture preset.\"\n\nRevert \"Support set/clear/get preferred device for capture preset.\"\n\nRevert submission 12409575-devicesRoleForCapturePreset\n\nReason for revert: break CarAudioZonesHelperTest\nReverted Changes:\nI92fdb2cbd:Support set/clear/get preferred device for capture...\nI44e67d5b0:Add a helper function of checking if an audio sour...\nIb16ab2ec8:Support device role for capture preset.\nI46bd8dfb5:Add tests for set/get/clearPreferredDeviceForCaptu...\n\nChange-Id: I80f5267a01b48d01681a2d97cf3eb9de573ca6b5\n"
    },
    {
      "commit": "9447b48f36b1bf26645e6256dd29224b6a398161",
      "tree": "62bc6e0895af051df03446dc2c5ecca8dd288d0f",
      "parents": [
        "37e93d1bc4df8b2d9682c48236bb4dae87d6dd1b",
        "d1fa2375194096937bbdfd2def97969c4336191b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 03 00:53:20 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Sep 03 00:53:20 2020 +0000"
      },
      "message": "Merge \"audio flinger: handle race condition in AudioRecord creation\" into rvc-qpr-dev am: d1fa237519\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12484593\n\nChange-Id: I5e330127a6ef2efe394b06524af5ae20f01a71bc\n"
    },
    {
      "commit": "d1fa2375194096937bbdfd2def97969c4336191b",
      "tree": "f2873c68b18cd34fec81208f8b5286c86b66985e",
      "parents": [
        "35238dd6585645018f7a7a8a32fdece432458ce7",
        "717bc28fc5959c0edb2bbd86692ba5164893f719"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 03 00:22:46 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 03 00:22:46 2020 +0000"
      },
      "message": "Merge \"audio flinger: handle race condition in AudioRecord creation\" into rvc-qpr-dev"
    },
    {
      "commit": "5294eb92f5e27c9872edcd6a449370a3bf5cd7aa",
      "tree": "789d0b6bdb31ea469f7d645b0194aab3e76a82f3",
      "parents": [
        "738f5ecdaea2af982ba00c4b974a33dbac8f7d0c",
        "35238dd6585645018f7a7a8a32fdece432458ce7"
      ],
      "author": {
        "name": "Hayden Gomes",
        "email": "haydengomes@google.com",
        "time": "Wed Sep 02 16:33:33 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Sep 02 16:33:33 2020 +0000"
      },
      "message": "Merge \"audio policy: fix concurrent capture policy for virtual sources\" into rvc-qpr-dev am: 35238dd658\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12196105\n\nChange-Id: I6029ece39734bea6bdcad7cc1ea5f2b2ab5e593a\n"
    },
    {
      "commit": "42c0447db6f279e23cf4a3dabf4e0a6764277b6b",
      "tree": "5586a760a9464d5a3617fd942f8c1967fa130dbf",
      "parents": [
        "a85c486cc4226cf2cb63c7f1542d436b6610ab86",
        "dddc2aef4e5f9f27a79909f475c31c96eb688200"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 02 16:12:47 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 02 16:12:47 2020 +0000"
      },
      "message": "Merge \"Support device role for capture preset.\""
    },
    {
      "commit": "35238dd6585645018f7a7a8a32fdece432458ce7",
      "tree": "acebd01148680908072bb155c37217cf0aaad8e8",
      "parents": [
        "23d433f4a27a05dc89e558c06032b305ad0337f6",
        "55fd81d7e1011565e894a4530eb8693c824f45b4"
      ],
      "author": {
        "name": "Hayden Gomes",
        "email": "haydengomes@google.com",
        "time": "Wed Sep 02 15:55:30 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 02 15:55:30 2020 +0000"
      },
      "message": "Merge \"audio policy: fix concurrent capture policy for virtual sources\" into rvc-qpr-dev"
    },
    {
      "commit": "3f1a1165d04ed5bd45e993624b4b19a9eeb84cd1",
      "tree": "5af63735f8315796709b4cb08aa60b573b73c96f",
      "parents": [
        "a75189ef58bafa6d0f4e4afa99ce37996604f788",
        "45d6dc964d0fbcfde10dcef07fda68a84b6a2516"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 01 22:23:39 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Sep 01 22:23:39 2020 +0000"
      },
      "message": "Merge \"Fix file permissions to remove execute bit on ordinary files\" am: 96a663b0ef am: 0e30ca6437 am: 4984eb5e21 am: 37e9654973 am: 45d6dc964d\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1416258\n\nChange-Id: Ic7a15541f3f6a835fdd95786a722f92252223e3c\n"
    },
    {
      "commit": "37e9654973cf0458a30805ef2180265e356e1987",
      "tree": "46ce02739a2899d0c4c1c356ec955d7242ea753b",
      "parents": [
        "ff30ed79d2c4715e355824980c4978c066ebf177",
        "4984eb5e21d5918e9195ccb3d9540ed155820ec6"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 01 21:31:21 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Sep 01 21:31:21 2020 +0000"
      },
      "message": "Merge \"Fix file permissions to remove execute bit on ordinary files\" am: 96a663b0ef am: 0e30ca6437 am: 4984eb5e21\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1416258\n\nChange-Id: Ibe802a15ab203d206d898ee4feb7d4a94037e5cf\n"
    },
    {
      "commit": "4984eb5e21d5918e9195ccb3d9540ed155820ec6",
      "tree": "313257662bcc66636d05c6a27e530a2ea72429f1",
      "parents": [
        "e75114727d73502257ef503451453c6f85ded175",
        "0e30ca64372f8e4dab5cbe3d2b0e326081c4fb2f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 01 20:22:55 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Sep 01 20:22:55 2020 +0000"
      },
      "message": "Merge \"Fix file permissions to remove execute bit on ordinary files\" am: 96a663b0ef am: 0e30ca6437\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1416258\n\nChange-Id: Idb94e55c869c66e18349e9ef7f1f02c87bb4ef9d\n"
    },
    {
      "commit": "4ffca8764be4b177cd08dfbd0705ad1e236709ce",
      "tree": "be2657e20b7222754d29d14d8f2f1fe309bffc62",
      "parents": [
        "0e30ca64372f8e4dab5cbe3d2b0e326081c4fb2f",
        "2e40c302d6117ec6eb65f25832a71488367b4dfb"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Sep 01 20:03:43 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 01 20:03:43 2020 +0000"
      },
      "message": "Merge \"Merge Android R (rvc-dev-plus-aosp-without-vendor@6692709)\" into stage-aosp-master"
    },
    {
      "commit": "58fb14aa84f41329fccc7185701ffbf502f77114",
      "tree": "6e40f2c53934ba0246207e8be722204106f0a5d7",
      "parents": [
        "579a5284be48aec4905160464716011cc7e89b9c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 31 12:13:12 2020 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 31 12:16:26 2020 -0700"
      },
      "message": "Fix file permissions to remove execute bit on ordinary files\n\nTest: N/A\nChange-Id: I9e85ebe5479ae7f021a69942630fc9c876d4116b\n"
    },
    {
      "commit": "2e40c302d6117ec6eb65f25832a71488367b4dfb",
      "tree": "ce2cff004a09076114faabf595b1a116bcb461ff",
      "parents": [
        "054de8d6440fd30238fa9330bcc038cda745b244",
        "924eccfd6f6d3aaed5db627a0bdcfcaaf9b09a18"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Aug 28 08:38:54 2020 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Aug 28 21:23:54 2020 -0700"
      },
      "message": "Merge Android R (rvc-dev-plus-aosp-without-vendor@6692709)\n\nBug: 166295507\nMerged-In: Ie94127c1e981cb18671d5137ba0d39355d1353da\nChange-Id: Ib22ad33bda8d561af537499b6d31ab6134eeae02\n"
    },
    {
      "commit": "717bc28fc5959c0edb2bbd86692ba5164893f719",
      "tree": "9f55d492e1032f4224dc3420345868cf8d613456",
      "parents": [
        "0b3f254028404b4772e02f9d1cdfcefba0e264b4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 21 17:10:39 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 28 22:51:36 2020 +0000"
      },
      "message": "audio flinger: handle race condition in AudioRecord creation\n\nA rare race condition can cause a failure to create an AudioRecord if\ntwo creation requests are processed concurrently and thread preemption happens\nat a specific time within the sequence between audioflinger and\naudio policy manager.\n\nThis CL implements a retry mechanism on client side when this particular failure\nis detected.\n\nBug: 161656190\nTest: Regression tests for audio capture use cases.\nTest: CTS tests for AudiRecord\nChange-Id: I155ee4899baeec21e10a1141cb9e323cbc8aa23b\n(cherry picked from commit d52a28ca2c19db7d10bc6c4639a8bd78e1afd5f1)\n"
    },
    {
      "commit": "d52a28ca2c19db7d10bc6c4639a8bd78e1afd5f1",
      "tree": "c687eda00e2c45823cdb1857c64ad48b67578819",
      "parents": [
        "615364792b6fe07869c685e4bccbf7837e1ba97b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 21 17:10:39 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 25 13:33:12 2020 -0700"
      },
      "message": "audio flinger: handle race condition in AudioRecord creation\n\nA rare race condition can cause a failure to create an AudioRecord if\ntwo creation requests are processed concurrently and thread preemption happens\nat a specific time within the sequence between audioflinger and\naudio policy manager.\n\nThis CL implements a retry mechanism on client side when this particular failure\nis detected.\n\nBug: 161656190\nTest: Regression tests for audio capture use cases.\nTest: CTS tests for AudiRecord\nChange-Id: I155ee4899baeec21e10a1141cb9e323cbc8aa23b\n"
    },
    {
      "commit": "dddc2aef4e5f9f27a79909f475c31c96eb688200",
      "tree": "40d78318ee59cb23fa5cfbd53fdff57035fe8b32",
      "parents": [
        "4a603cd0594d22d1a3a2bae5bb22009343d4b5bb"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Aug 19 11:20:48 2020 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Aug 25 09:42:58 2020 -0700"
      },
      "message": "Support device role for capture preset.\n\nSupport set/add/remove/clear/get device role for capture preset. The\ndevice role can be DEVICE_ROLE_PREFERRED and DEVICE_ROLE_DISABLED. The\npreferred and disabled devices can be multiple devices. In this CL,\nonly cache preferred devices in engine but not use for audio routing.\n\nBug: 160352965\nTest: atest AudioServiceHostTest\nTest: atest audiopolicy_tests\nChange-Id: Ib16ab2ec82bc288421c20df9470ac3835c71b1e8\n"
    },
    {
      "commit": "b36b4accf36ba413529a0b6735802a65f42c2f7c",
      "tree": "2a2ed23141d96dc9e9b64b2ff5d3ccbe05af5ac8",
      "parents": [
        "36f99424e9904b39adeb193273083db176ce9fd9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 21 12:50:41 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 21 12:50:41 2020 -0700"
      },
      "message": "audio policy: correct force use touch sound delay\n\nDo not apply the special delay added in setForceUse() multiple times.\nThis delay was meant to be applied only once to avoid truncating touch\nsounds but is actually used multiple times when updating routes on all\noutput streams, thus lengthening the call audio path switch time\nunnecessarily.\n\nBug: 163537547\nTest: manual call routing test\nChange-Id: I6fe15d4ed9b1f37452921585e9f7684637e8a30b\n"
    },
    {
      "commit": "47480fbfc2346a541b4513d93553a08bc6273f47",
      "tree": "bee95b2c1c98576f056a91299cd24c7ee9e11fe4",
      "parents": [
        "8dff4ae2e40d385869cdb28be4af50b615af37a2",
        "cbf9fbdcb5739b88c2f8b81ed2f7ad98071ad405"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 20 19:24:20 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Aug 20 19:24:20 2020 +0000"
      },
      "message": "Merge \"AudioPolicy: manager: force gain on startSource when using HW Gain\" am: ae1df9155c am: be7cabc2e0 am: a818367360 am: ac71d9d2e5 am: cbf9fbdcb5\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1296441\n\nChange-Id: Id874fbf1875ab66c5ba241a8194f307bab4cae2e\n"
    },
    {
      "commit": "ac71d9d2e53f58058228b1e20aac362dc847b16b",
      "tree": "6313174dff7755c884316a11c5b1adeadee64ba2",
      "parents": [
        "7dd78282f0963605ab978ddd3cfd38847e5d1442",
        "a818367360c9262c56d0317d4f2ee76057d8c606"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 20 19:01:57 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Aug 20 19:01:57 2020 +0000"
      },
      "message": "Merge \"AudioPolicy: manager: force gain on startSource when using HW Gain\" am: ae1df9155c am: be7cabc2e0 am: a818367360\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1296441\n\nChange-Id: I213aa0ad8905a82e6c8679c8d0eec2d522c2e10c\n"
    },
    {
      "commit": "a818367360c9262c56d0317d4f2ee76057d8c606",
      "tree": "ffa16c1cc2bd1a706fc6c08ba13e0c34f55061eb",
      "parents": [
        "693f515a9ee576dbad44413c06802a8aafbe4ccb",
        "be7cabc2e0681e4b30afed1587be71f3c3e90b25"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 20 18:40:32 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Aug 20 18:40:32 2020 +0000"
      },
      "message": "Merge \"AudioPolicy: manager: force gain on startSource when using HW Gain\" am: ae1df9155c am: be7cabc2e0\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1296441\n\nChange-Id: I6a5ad41a3b34ca3a2ca209352100c868b277b007\n"
    },
    {
      "commit": "ae1df9155cd8244cc716a2b1fdfca9975220453d",
      "tree": "0736254f088e27512ee83a33a2e73c727ed27f7d",
      "parents": [
        "246b31dc7641b7e57f113fb89e429c75ed3d5b68",
        "d11442b6e4521d825779dd55494509e046f2c9f8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 20 18:13:16 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 20 18:13:16 2020 +0000"
      },
      "message": "Merge \"AudioPolicy: manager: force gain on startSource when using HW Gain\""
    },
    {
      "commit": "d3b79ff2569d99017a4db733a025db5a253f2657",
      "tree": "a18d1f1165fb3c4b6641d81f869ada870e849e53",
      "parents": [
        "7c11c55958faf7fadcf0ec504c6679d8febcb158",
        "8f262df7238502942ff5745970eb98ed2b863d53"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 18 18:27:16 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 18 18:27:16 2020 +0000"
      },
      "message": "Merge changes from topic \"audio-hal-7\"\n\n* changes:\n  Add Audio Policy Manager config files for HAL V7.0\n  Temporarily disable Audio HAL V7 modules\n  Add Audio HAL V7\n"
    },
    {
      "commit": "8f262df7238502942ff5745970eb98ed2b863d53",
      "tree": "7034667c2a5459c3fd2db6bf499aee9565dc0de4",
      "parents": [
        "2c0a3015ea3d710dde90f99538335f99e6d971fc"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Aug 14 20:43:06 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Aug 14 21:04:09 2020 +0000"
      },
      "message": "Add Audio Policy Manager config files for HAL V7.0\n\nIn Audio HAL V7.0 lists of sample rates and channel\nmasks are written in the XSD-compatible way using\nspace as delimiter (instead of comma).\n\nBug: 142480271\nTest: m\nChange-Id: I0e5a15d65974421443c00d4f0edaf0514a71673f\n"
    },
    {
      "commit": "decc00bbcfb68106625bd21fd74cff969c9a6f35",
      "tree": "d21ba1fe2702a29732b1234f3ecc4c5991904367",
      "parents": [
        "c10197dee26ed6006d956149d4fe4969f9caa264",
        "c9ad9878f49137b748ec5dfcf905e778e99441c8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 14 02:03:49 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Aug 14 02:03:49 2020 +0000"
      },
      "message": "Merge \"audio: add device definitions for BLE Audio\" am: 3ce5f38a37 am: 0f109dd701 am: c9ad9878f4\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1398473\n\nChange-Id: I1fcb2be05809e3f3518907fec30852e2469eefc9\n"
    },
    {
      "commit": "c9ad9878f49137b748ec5dfcf905e778e99441c8",
      "tree": "871d3b03564f3c94570cffa87a2dfcb1b7bf4786",
      "parents": [
        "32ec02978e0b9f943795070120c2eee04427802d",
        "0f109dd701e3d326e6c0369f3fb3cbf028b9fa09"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 14 01:43:30 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Aug 14 01:43:30 2020 +0000"
      },
      "message": "Merge \"audio: add device definitions for BLE Audio\" am: 3ce5f38a37 am: 0f109dd701\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1398473\n\nChange-Id: I923a8efdf00dc6249c28576ec3972d8a2d80437c\n"
    },
    {
      "commit": "7a62f2936519104f93dc9015df22369127b37803",
      "tree": "33a0d431ef21fd9e9dce4d74981c1800dc186506",
      "parents": [
        "8debb9f333ed410669e3acbd0fb5cb7d694a2bad"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 07 10:51:53 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 13 20:19:00 2020 +0000"
      },
      "message": "audio: add device definitions for BLE Audio\n\nAdd support for device type enums for BLE Audio.\nThis CL just adds basic support in parsers and voloume curve\ncategories.\nNo policy implemented yet for the new devices.\n(cherry picked from commit c42df45d4b99c06391bca841638563335d0f59ef)\n\nBug: 161358428\nTest: make flash and boot\nChange-Id: I86134ea8436b24f817a9fe0f856e3489dd22fcc8\nMerged-In: I86134ea8436b24f817a9fe0f856e3489dd22fcc8\n"
    },
    {
      "commit": "d11442b6e4521d825779dd55494509e046f2c9f8",
      "tree": "e0aab3cd028428ddb9266ef55d98486cfd4fc59a",
      "parents": [
        "8debb9f333ed410669e3acbd0fb5cb7d694a2bad"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Mon Apr 27 11:51:09 2020 +0200"
      },
      "committer": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Thu Aug 13 13:04:39 2020 +0200"
      },
      "message": "AudioPolicy: manager: force gain on startSource when using HW Gain\n\nWhen a setVolume is called for a given volume source on a SwOutput,\nand if the SwOutput is connected to a device using HW Gain, the sync\nof the gain on AudioHAL is guarded by the activity of this volume source.\n\nWhen a new index is applied on a given volume source, if this source is\nnot active, the new index is cached but is not synced on AudioHAL.\n\nHence, once a client (aka a source) starts on a SwOutput,\nSwAudioOutputDescriptor::setVolume is called, but as index has not changed,\nsetVolume will bail out before applying the gain to the AudioHAL.\n\nThis CL forces to sync the volume upon startSource event if the SwOutput\ninvolved is connected to a device with HW Gain enabled.\n\nTest: build \u0026 basic audio tests.\n\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: Ief1d5314b7970de78298750550320e329283ee1a\n"
    },
    {
      "commit": "f9cddbfe7dd95817c26b513ce6b0eecd6ec1bdfa",
      "tree": "d561c698108b245469a558f1266d39154bd54068",
      "parents": [
        "242cf3379de223e0ae5c9ceeba05e6a397b44e2d",
        "0a488938fa1c1b2b0c02b1c101281c01ff8ed103"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 13 02:24:42 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 13 02:24:42 2020 +0000"
      },
      "message": "Merge changes from topics \"devicesRoleForStrategy\", \"useAudioDevicesTypeAddrVector\"\n\n* changes:\n  Introduce device(s) role for strategy.\n  Use AudioDeviceTypeAddrVector instead of Vector\u003cAudioDeviceTypeAddr\u003e\n"
    },
    {
      "commit": "0a488938fa1c1b2b0c02b1c101281c01ff8ed103",
      "tree": "4686aa2bca38cccbbc572bbb75a2bd82d2b9153b",
      "parents": [
        "6a02d53b76d0a3ccb234a3e3d56318883cadd733"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Aug 07 17:32:40 2020 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Aug 12 16:19:35 2020 -0700"
      },
      "message": "Introduce device(s) role for strategy.\n\nAdding interface to get/set/removeDevicesRoleForStrategy. The interfaces\nallows to modify the devices\u0027 role, such as preferred, for strategy.\nGet/set/removePreferredDeviceForStrategy is reimplemented by the new\ninterfaces.\n\nTest: atest AudioHostTest\nTest: atest AudioServiceHostTest\nTest: atest AudioServiceTest\nTest: atest audiopolicy_tests\nBug: 160352965\nChange-Id: I0af737542a8599938cae4e142b733159f21ed5a8\n"
    },
    {
      "commit": "6a02d53b76d0a3ccb234a3e3d56318883cadd733",
      "tree": "4bd9652fccb6530787e8a25292aeb81c1d93c612",
      "parents": [
        "1d2a159395df0767ecb2320aff4dd4db3d26e6b2"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Aug 07 11:56:38 2020 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Aug 12 11:24:46 2020 -0700"
      },
      "message": "Use AudioDeviceTypeAddrVector instead of Vector\u003cAudioDeviceTypeAddr\u003e\n\nAudioDeviceTypeAddrVector is std::vector\u003cAudioDeviceTypeAddr\u003e. In that\ncase, it is not needed to use Vector\u003cAudioDeviceTypeAddr\u003e. It is also\nsuggested to use the std::vector instead of Vector.\n\nTest: atest AudioHostTest\nTest: atest AudioServiceHostTest\nTest: atest audiopolicy_tests\nBug: 160352965\nChange-Id: Ibcd91fcba95c53e3c172ae62fc6f30e70509de51\n"
    },
    {
      "commit": "5ce77ca4aaa406fd3d21b86c82f0d847ad4b39fb",
      "tree": "212b27f783be6c16aa9f73b5a2c5becd863f67b4",
      "parents": [
        "dabaf72cf774fefcd788f9f057214d8bfde3f471",
        "c42df45d4b99c06391bca841638563335d0f59ef"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 10 21:25:55 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 10 21:25:55 2020 +0000"
      },
      "message": "Merge \"audio: add device definitions for BLE Audio\""
    },
    {
      "commit": "dabaf72cf774fefcd788f9f057214d8bfde3f471",
      "tree": "845ec4b18d7077f86ad05705286edb0f5cb65a9b",
      "parents": [
        "fa273c148ccca300dd85135079825573d1869aa4",
        "94c4d97bcdfa068d44d27f5164d5e13ddb07dc7f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 10 19:01:22 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Aug 10 19:01:22 2020 +0000"
      },
      "message": "Merge \"Fix music output to speaker\" am: fc9e26a3e9 am: af034fc9cb am: 23b282c9f9 am: cdf738e373 am: 94c4d97bcd\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1360120\n\nChange-Id: Id5add51825a810ec1038b9baf3441692b39e8ce8\n"
    },
    {
      "commit": "cdf738e37397def04c2418406ca46da4cf3d7380",
      "tree": "b1932b1bd26afdcad7783ad23806c23b69ba3bf0",
      "parents": [
        "a42085c0ef9841d360eb423f7873e096ced2865d",
        "23b282c9f9a7dacb0cc9000940c755a21970f1b6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 10 18:15:36 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Aug 10 18:15:36 2020 +0000"
      },
      "message": "Merge \"Fix music output to speaker\" am: fc9e26a3e9 am: af034fc9cb am: 23b282c9f9\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1360120\n\nChange-Id: I6296d6dd227058a728f9a4718b198bba9756e019\n"
    },
    {
      "commit": "23b282c9f9a7dacb0cc9000940c755a21970f1b6",
      "tree": "601935ac55c38bd96ed660bbeac909d2c8d0f263",
      "parents": [
        "85bf50bfc09cf24d8454015e7553ab31f1946ff2",
        "af034fc9cb1d3de4334bb303d53b5dc8f83aa6f5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 10 17:53:53 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Aug 10 17:53:53 2020 +0000"
      },
      "message": "Merge \"Fix music output to speaker\" am: fc9e26a3e9 am: af034fc9cb\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1360120\n\nChange-Id: I84066fdea62f4ac3f559ddb7c7b1c37f5880e0fb\n"
    },
    {
      "commit": "fc9e26a3e931e267a274aa73f5d9b9381b95f6a0",
      "tree": "ea13855ba4e26f8c0d5e39be18595883a2aea4ed",
      "parents": [
        "43b32b29c5744f11c3a05579c5f37a086cbbebda",
        "bd2dcc4d0d6cf0ba6d7663bfb7ccfc60b9292f10"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 10 17:32:07 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 10 17:32:07 2020 +0000"
      },
      "message": "Merge \"Fix music output to speaker\""
    },
    {
      "commit": "34eb33f650590a6bfbb387597411017e03621b08",
      "tree": "e5e64b58732ff2abeb37447056ecd8c4698fd49a",
      "parents": [
        "df0691496ea76cadd3961741b473c1ea50ff4b34",
        "d976693ddd4f716146d4e3640f18520e9e160a53"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 10 14:52:20 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 10 14:52:20 2020 +0000"
      },
      "message": "Merge \"audio policy: remove useless warning\""
    },
    {
      "commit": "bd2dcc4d0d6cf0ba6d7663bfb7ccfc60b9292f10",
      "tree": "ff0ee2efcda5b139f75dda189547424b241d633d",
      "parents": [
        "7c44826eaba2e3ff4483b127c6bc091e46d0604c"
      ],
      "author": {
        "name": "cnx421",
        "email": "cnx421@gmail.com",
        "time": "Sat Jul 11 14:58:44 2020 +0800"
      },
      "committer": {
        "name": "恶魔 地狱",
        "email": "cnx421@gmail.com",
        "time": "Mon Aug 10 01:24:35 2020 +0000"
      },
      "message": "Fix music output to speaker\n\nThis CL fixes a bug in audio policy where music switches to speaker when A2DP output mode switches from software encoder to offloaded encoder.\n\nBug: 153895044\n\nChange-Id: I15f707c9e96294b6cd6f21c0821c795d0570c39a\n"
    },
    {
      "commit": "d976693ddd4f716146d4e3640f18520e9e160a53",
      "tree": "5ec30e0f26248d751e7d898bc3383fe7f4c9f274",
      "parents": [
        "a524c363821353a541442e3b23449875b797b09d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 07 14:01:22 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 07 14:07:00 2020 -0700"
      },
      "message": "audio policy: remove useless warning\n\nRemove warning in Engine::getDevicesForStrategyInt() if the\nstrategy passed is a system internal strategy (not a legacy strategy).\n\nTest: make, flash and boot.\nChange-Id: I258f39ebd50f86abe55df72bdd5bf4a5ad0d29a7\n"
    },
    {
      "commit": "f356189f05884926290b1f7920241ef15674cbc6",
      "tree": "e22f60c5bc88e0a1d332a2d0728de52df0ce74af",
      "parents": [
        "b44da94f383678f71f9adaeb3c340b3701a4e161",
        "3e17f40a7288ea33c23161dd921d2d22ddaf5354"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Aug 07 18:36:37 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 07 18:36:37 2020 +0000"
      },
      "message": "Merge \"APM: Do not add null DeviceDescriptor to DeviceVector.\""
    },
    {
      "commit": "c42df45d4b99c06391bca841638563335d0f59ef",
      "tree": "e5dd396d67122456532e0b9ca6fee8d19871273e",
      "parents": [
        "a524c363821353a541442e3b23449875b797b09d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 07 10:51:53 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 07 11:05:01 2020 -0700"
      },
      "message": "audio: add device definitions for BLE Audio\n\nAdd support for device type enums for BLE Audio.\nThis CL just adds basic support in parsers and voloume curve\ncategories.\nNo policy implemented yet for the new devices.\n\nBug: 161358428\nTest: make flash and boot\nChange-Id: I86134ea8436b24f817a9fe0f856e3489dd22fcc8\n"
    },
    {
      "commit": "3e17f40a7288ea33c23161dd921d2d22ddaf5354",
      "tree": "da24935ffe8ca470fbab7d868ba7a5ccc38ef0ba",
      "parents": [
        "3dd716be2d145b1f58651dd6b0dd471a412b2c95"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Aug 03 17:53:06 2020 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Aug 05 18:14:41 2020 -0700"
      },
      "message": "APM: Do not add null DeviceDescriptor to DeviceVector.\n\nIt make no sense to have null pointer kept in DeviceVector. In that\ncase, never add null to DeviceVector.\n\nBug: 162772516\nTest: make\nChange-Id: Iebf850189de025be9fe205ef0797eb4660898cae\n"
    },
    {
      "commit": "207254fe39fd9687b206773148dbdd69cfcabd33",
      "tree": "73596b06fb83f3625ad05770c154cc0611f58cf6",
      "parents": [
        "080c5d4dcc68d65408022f50db2214637db8f995",
        "9585fa95cc06988974c10e569f2990b62373efec"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 05 22:04:09 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Aug 05 22:04:09 2020 +0000"
      },
      "message": "Merge \"Update OWNERS\" am: 8e2fbf6665 am: 588d9b1c07 am: 385de9f023 am: 89d9e3f30d am: 9585fa95cc\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1391639\n\nChange-Id: Id28762b6c03511760623e4314523db384aff9702\n"
    },
    {
      "commit": "89d9e3f30d9644df802dcbfdd6fa0788e5af59d4",
      "tree": "14e8e58b23b22ec6d0d1b5d94b9ae2b2f881a71c",
      "parents": [
        "6fafd73af139e33f8e0157dec461836645e5d5ba",
        "385de9f0230a72bd8f72dc650f0e483ff3895a8b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 05 21:18:23 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Aug 05 21:18:23 2020 +0000"
      },
      "message": "Merge \"Update OWNERS\" am: 8e2fbf6665 am: 588d9b1c07 am: 385de9f023\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1391639\n\nChange-Id: I216cd96527efaed4b4b08efe927227debef78246\n"
    },
    {
      "commit": "385de9f0230a72bd8f72dc650f0e483ff3895a8b",
      "tree": "95a5fac3e2a0b2c5924e827a7b2f5d2f9d593913",
      "parents": [
        "3ece0964200c8e0e7c3aa371dd8a47ce578bdf22",
        "588d9b1c07ec0363b6bfaf982f00afd1ba35bd68"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 05 21:00:37 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Aug 05 21:00:37 2020 +0000"
      },
      "message": "Merge \"Update OWNERS\" am: 8e2fbf6665 am: 588d9b1c07\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1391639\n\nChange-Id: I92ce762ac562acd9c2c6c420761111f6ae14ce0f\n"
    },
    {
      "commit": "2c7d0d39443ac8e64987d3a73a6d8b20da1ed807",
      "tree": "e8a2a325299fa4b9024ca8fbbd07af9129f99daa",
      "parents": [
        "70e96c8d72768b76314a77a7d7b37157fb7f1ae4"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 15 14:18:59 2020 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Aug 05 10:04:47 2020 -0700"
      },
      "message": "Update OWNERS\n\nTest: N/A\nChange-Id: I2d34e3c05e99191ae1d95fd3c5e6557c2b982965\n"
    },
    {
      "commit": "6fafd73af139e33f8e0157dec461836645e5d5ba",
      "tree": "0a8486f8ae275a0aefcd9922ae98c3fbeb02ca85",
      "parents": [
        "3f188dc16b84e0fe23259f184afb23af365b3d6f",
        "44f9ee26f6cd904c96492c58cbef616eeecb6cb0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 05 16:32:47 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Aug 05 16:32:47 2020 +0000"
      },
      "message": "audio policy: fix attributes for strategy \"rerouting\" am: 44f9ee26f6\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12311082\n\nChange-Id: I4913aa2c7643d8b1713a30a0ac3f111e754b56e6\n"
    },
    {
      "commit": "44f9ee26f6cd904c96492c58cbef616eeecb6cb0",
      "tree": "5d5a90b7386555c49cb19e6a8c1d2580a192fb5f",
      "parents": [
        "5525faf28e9e112f8ae0dabace9360bd39a1ce10"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 31 16:08:03 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 05 01:59:34 2020 +0000"
      },
      "message": "audio policy: fix attributes for strategy \"rerouting\"\n\nStrategy rerouting is used for audio injection to a recorder\ndynamic audio policy mix. As such, the correponding audio attributes\nmust contain usage AUDIO_USAGE_VIRTUAL_SOURCE.\n\nBug: 162239551\nTest: gts-tradefed run gts --skip-device-info -m GtsGmscoreHostTestCases -t \u0027com.google.android.gts.audioservice.AudioServiceHostTest#testInjectForRecord\u0027\nChange-Id: Id175b9583faf8910aef7b2988ac5019d0cbbcb53\n(cherry picked from commit ed49c8644a89304cd5ae3056245a07d04a8911de)\n"
    },
    {
      "commit": "c8e17eebc955749f5dc0fb0a58ad93ff312aef39",
      "tree": "087fd6e158c1f3c0cbd507fc50c4f9904393aef5",
      "parents": [
        "7c9913d5d5a35242a617ccb82ba4659e777ee007"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Jul 31 17:36:08 2020 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Aug 04 00:41:43 2020 +0000"
      },
      "message": "Avoid storing \u0027this\u0027 in a wp\u003cAudioEffect\u003e while in constructor\n\nStoring \u0027this\u0027 into wp\u003cAudioEffect\u003e while running the constructor\nof an AudioEffect can lead to premature instance destruction\nbecause the owner of this weak pointer may promote to sp\u003c\u003e\non a thread running in parallel to the constructor.\n\nFixed by removing a call to AudioEffect::set from the constructor\nand moving the responsibility for calling it to client code.\n\nBug: 162323621\nTest: repro steps from the bug\n      atest android.media.cts.VisualizerTest\nChange-Id: Ice5f510b1c9020b5ba73bd6223c1669ab8eae24c\nMerged-In: Ice5f510b1c9020b5ba73bd6223c1669ab8eae24c\n"
    },
    {
      "commit": "69d41cc6ca5d63e5484874dc3dcaf78530b55b6a",
      "tree": "423c2ef2a2dc0410c94c32ef5736fcfd5574d777",
      "parents": [
        "1fc724e954b4b0384ae12b095424214754c15d94"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Jul 31 17:36:08 2020 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Aug 03 23:44:56 2020 +0000"
      },
      "message": "Avoid storing \u0027this\u0027 in a wp\u003cAudioEffect\u003e while in constructor\n\nStoring \u0027this\u0027 into wp\u003cAudioEffect\u003e while running the constructor\nof an AudioEffect can lead to premature instance destruction\nbecause the owner of this weak pointer may promote to sp\u003c\u003e\non a thread running in parallel to the constructor.\n\nFixed by removing a call to AudioEffect::set from the constructor\nand moving the responsibility for calling it to client code.\n\nBug: 162012829\nBug: 162323621\nTest: repro steps from the bug\n      atest android.media.cts.VisualizerTest\nChange-Id: Ice5f510b1c9020b5ba73bd6223c1669ab8eae24c\nMerged-In: Ice5f510b1c9020b5ba73bd6223c1669ab8eae24c\n"
    },
    {
      "commit": "6d384bbae176ed277032ff512fece5fe3c40babc",
      "tree": "8aca43953afcc779a386b702ffa52b337054633a",
      "parents": [
        "eabfd6e04a3fc57ecb3065478129e5612864f50b",
        "416fffe5fa7037171ead858f702accfb990fd3bc"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 03 20:45:39 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 03 20:45:39 2020 +0000"
      },
      "message": "Merge \"Avoid storing \u0027this\u0027 in a wp\u003cAudioEffect\u003e while in constructor\""
    },
    {
      "commit": "8a69313f34eba95d35832520fb22eb13376c3d8e",
      "tree": "614aac9eca7b82a6f057b9bbb918f3b304fda7bc",
      "parents": [
        "d4ae33f6f8860c9011cafc720ffd65ea826b66b0",
        "ed49c8644a89304cd5ae3056245a07d04a8911de"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 03 14:46:19 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 03 14:46:19 2020 +0000"
      },
      "message": "Merge \"audio policy: fix attributes for strategy \"rerouting\"\""
    },
    {
      "commit": "d4ae33f6f8860c9011cafc720ffd65ea826b66b0",
      "tree": "23f3882504aa97136b87b24f99e5c14d5b5e5ca6",
      "parents": [
        "610ee6d10b62796a04f94fef253b70e55b27d2e6",
        "571ef96c1d93a19e152e06b8b4c1f1face7496db"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Aug 01 01:33:25 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Aug 01 01:33:25 2020 +0000"
      },
      "message": "Merge \"audio policy: remove log spam for voice and sco volumes\""
    },
    {
      "commit": "416fffe5fa7037171ead858f702accfb990fd3bc",
      "tree": "dd54d20f53388b16848e8451eea76435df01427c",
      "parents": [
        "aacaf2d4cdf898109d8027e39dbd0befc87251e9"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Jul 31 17:36:08 2020 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Jul 31 17:36:08 2020 -0700"
      },
      "message": "Avoid storing \u0027this\u0027 in a wp\u003cAudioEffect\u003e while in constructor\n\nStoring \u0027this\u0027 into wp\u003cAudioEffect\u003e while running the constructor\nof an AudioEffect can lead to premature instance destruction\nbecause the owner of this weak pointer may promote to sp\u003c\u003e\non a thread running in parallel to the constructor.\n\nFixed by removing a call to AudioEffect::set from the constructor\nand moving the responsibility for calling it to client code.\n\nBug: 162323621\nTest: repro steps from the bug\n      atest android.media.cts.VisualizerTest\nChange-Id: Ice5f510b1c9020b5ba73bd6223c1669ab8eae24c\n"
    },
    {
      "commit": "ed49c8644a89304cd5ae3056245a07d04a8911de",
      "tree": "36dce91849ed810a8df805020b7eac5abd5959d6",
      "parents": [
        "8362149affc7676be78dfc1e7cd60fa654abc91b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 31 16:08:03 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 31 16:08:03 2020 -0700"
      },
      "message": "audio policy: fix attributes for strategy \"rerouting\"\n\nStrategy rerouting is used for audio injection to a recorder\ndynamic audio policy mix. As such, the correponding audio attributes\nmust contain usage AUDIO_USAGE_VIRTUAL_SOURCE.\n\nTest: gts-tradefed run gts --skip-device-info -m GtsGmscoreHostTestCases -t \u0027com.google.android.gts.audioservice.AudioServiceHostTest#testInjectForRecord\u0027\nChange-Id: Id175b9583faf8910aef7b2988ac5019d0cbbcb53\n"
    },
    {
      "commit": "c581f4f5efb6e6f9be16823203cfed1711f465a0",
      "tree": "fc1ce79b1314dc17fff8623f49c5073cc836929b",
      "parents": [
        "6af7e11e739f272bf2215b21a65eb154bd7f9ca6",
        "478a0f32b8212bc72a269be4a539277129d33e4e"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Jul 31 05:30:08 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Jul 31 05:30:08 2020 +0000"
      },
      "message": "Do not log sensitive information. am: 827df1b7f9 am: 8d82281992 am: 478a0f32b8\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12276952\n\nChange-Id: If8627b9da11a0b4f649709c50049a86185076d48\n"
    },
    {
      "commit": "827df1b7f99d30de9cf65755f5fc4d674ec577a2",
      "tree": "eb64fc7f0561740301a008396eaa0064f990480f",
      "parents": [
        "39075258a92d969a6ea438cfe2ad298de01de7ad"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Jul 29 15:09:52 2020 -0700"
      },
      "committer": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Fri Jul 31 03:03:43 2020 +0000"
      },
      "message": "Do not log sensitive information.\n\nWhen logging device descriptor, do not log the IP address and MAC\naddress.\n\nTest: make, dumpsys media.audio_policy\nBug: 162299985\nChange-Id: Ia255d733d9d638786d0f3b444c57e787c45ad8d7\n"
    },
    {
      "commit": "571ef96c1d93a19e152e06b8b4c1f1face7496db",
      "tree": "ed7f9ede52ef0957a91967983188aafaa3269588",
      "parents": [
        "04698a346d637e4db1fc400b102f04fdfa9b5835"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 24 11:43:48 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 24 13:51:35 2020 -0700"
      },
      "message": "audio policy: remove log spam for voice and sco volumes\n\nDo not return an error in checkAndSetVolume() when SCO volume is modified\nwhile SCO is not active as AudioService will always set both voice call\nand SCO volumes at the same time regardless of SCO activity.\n\nTest: Use call screening to check downlink mute.\nChange-Id: I7501b28266ec4d591378d7bc4453bb5840e03af1\n"
    },
    {
      "commit": "cdb2b35c0f159a1a244599010ee9210d1e34c71d",
      "tree": "b939b6b611f12a4fa7dffb396fe85bd148d55151",
      "parents": [
        "04698a346d637e4db1fc400b102f04fdfa9b5835"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 23 10:57:02 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 23 10:57:02 2020 -0700"
      },
      "message": "audio policy: fix beacon mute delay\n\nOnly take output latency into account when the output is active\nwhen muting TTS stream. This avoid a systematic long delay the\nfirst time we play audio due to first beacon mute state change.\n\nBug: 37923452\nTest: repro steps in bug\nChange-Id: I10b21a55c0fad28344108b67756f600a29e41fea\n"
    },
    {
      "commit": "55fd81d7e1011565e894a4530eb8693c824f45b4",
      "tree": "d0e29c28a094661314467df63dc930386750507f",
      "parents": [
        "480b74d285c11a0bf08222d2f2dd2d1d6c674f62"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 16 12:28:30 2020 -0700"
      },
      "committer": {
        "name": "Hayden Gomes",
        "email": "haydengomes@google.com",
        "time": "Mon Jul 20 22:41:48 2020 +0000"
      },
      "message": "audio policy: fix concurrent capture policy for virtual sources\n\nDo not consider virtual sources when determining\nlastest active capture client. As a virtual source\ncapturing does not silence other captures, it should not\nprevent another client from being selected as the latest active.\n\nBug: 160820363\nBug: 161725794\nTest: Verify capture with Solotester in background and projecting to\nDHU.\n\nChange-Id: I2f28026dbecfa72b5d44f52b95538fc13996627b\nMerged-In: I2f28026dbecfa72b5d44f52b95538fc13996627b\n(cherry picked from commit 14a88630162b96d0d52354261ee09216c0bed0d7)\n"
    },
    {
      "commit": "14a88630162b96d0d52354261ee09216c0bed0d7",
      "tree": "da882f8626cba6ccc46b975d7e7b49a04e6ce4de",
      "parents": [
        "36cd068a02066558ea5884d33c5623f639436eb0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 16 12:28:30 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 16 12:28:30 2020 -0700"
      },
      "message": "audio policy: fix concurrent capture policy for virtual sources\n\nDo not consider virtual sources when determining\nlastest active capture client. As a virtual source\ncapturing does not silence other captures, it should not\nprevent another client from being selected as the latest active.\n\nBug: 160820363\nTest: Verify capture with Solotester in background and projecting to\nDHU.\n\nChange-Id: I2f28026dbecfa72b5d44f52b95538fc13996627b\n"
    },
    {
      "commit": "2fc9d15ee62c7291c30c33dd82c386bf8e071f07",
      "tree": "7b8034a795fd0cc519d80992c292f1c8e658f1fb",
      "parents": [
        "c19184310b3e24433d23658e4f2e72314b557225",
        "ebb6af45d3741a33259ea6bf8a5fc87881982943"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 07 00:06:16 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 07 00:06:16 2020 +0000"
      },
      "message": "Merge \"Select haptic output when haptic-generating effect exists.\""
    },
    {
      "commit": "56e1dff20683e4bae886da9326e3f927a16cfbf6",
      "tree": "b59f25a43e69aaaab9b031ceca2e44753e9801d9",
      "parents": [
        "18125ce86afecc1139cd4b128b2ec5a7e97d99e5",
        "0dc1dcfd867044ccd7645c5bdc770c74e76e10c7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Thu Jul 02 00:06:18 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jul 02 00:06:18 2020 +0000"
      },
      "message": "Merge \"Include what you use: \u003ccutils/bitops.h\u003e for popcount\" am: a4d629d311 am: e9458106aa am: 7997351bc4 am: 13738ffa12 am: 0dc1dcfd86\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1354145\n\nChange-Id: I6e996992ffa39615466fe8f59351058d51f19164\n"
    },
    {
      "commit": "7997351bc447cbbff9dc255faf62bc89c1c180c6",
      "tree": "c7c20ace22c488e57290f9f51ea4c599e4acc5c2",
      "parents": [
        "40eb0159372c16376a0755e5b86a3f7586fc3294",
        "e9458106aa39881cfa08673faf752f6ca6ea8e94"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Wed Jul 01 23:11:06 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jul 01 23:11:06 2020 +0000"
      },
      "message": "Merge \"Include what you use: \u003ccutils/bitops.h\u003e for popcount\" am: a4d629d311 am: e9458106aa\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1354145\n\nChange-Id: I1613f16bdb589ab57f6d687578b0af9cbc7c664b\n"
    },
    {
      "commit": "76a13443cbfc7af0561522af166937ef370e2b68",
      "tree": "ce5cd8c1203122b61d05e446929977a85856c4b3",
      "parents": [
        "dbb9895007a7ecee6e2cc62705b24ba08b09932d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 01 12:10:59 2020 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 01 12:14:19 2020 -0700"
      },
      "message": "Include what you use: \u003ccutils/bitops.h\u003e for popcount\n\nTest: builds OK\nChange-Id: Ie717272df285303a63518f0342e1a4d2f41362c3\n"
    },
    {
      "commit": "3f16cb3b9a95dd2bdf8befbca8fb56c82777e787",
      "tree": "329d738c55703880b5b3cf9be0b0057a8f42f5ee",
      "parents": [
        "cf2952bc08a776596cc90b580d3747278c603c25",
        "0d144c8163b0745ff96be2e2f1908e3bbd8f6103"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 01 00:23:48 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jul 01 00:23:48 2020 +0000"
      },
      "message": "Merge \"audio policy: remove capture restrictions for IN_COMMUNICATION mode\" into rvc-dev am: cdde799ce5 am: 3b2563bde8 am: 872274c05f am: 0d144c8163\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12048628\n\nChange-Id: Ifa7968821fa603d2bce09af541c50dc1b7d372fa\n"
    },
    {
      "commit": "872274c05f70ca893b01bd0abf87968c554e34de",
      "tree": "8e12612ceb80c0f509acb941304049838b93d065",
      "parents": [
        "398f3cfe129b36a2b4dc9e5864a00bce0b3e0553",
        "3b2563bde8979200c4380df0c95bb686fafc12a8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 30 23:58:36 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jun 30 23:58:36 2020 +0000"
      },
      "message": "Merge \"audio policy: remove capture restrictions for IN_COMMUNICATION mode\" into rvc-dev am: cdde799ce5 am: 3b2563bde8\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12048628\n\nChange-Id: I53714188860b93b176284eac6aba0e49c40506d2\n"
    },
    {
      "commit": "cd56f5cea93ba1aef7e446f1dc783e049a291fd2",
      "tree": "8e12612ceb80c0f509acb941304049838b93d065",
      "parents": [
        "fd904533d2d238cb155afd5fce8c9e43aa6a055f",
        "cdde799ce524c18e19baf24f0ec20a163e1c0eec"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 30 23:45:38 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jun 30 23:45:38 2020 +0000"
      },
      "message": "Merge \"audio policy: remove capture restrictions for IN_COMMUNICATION mode\" into rvc-dev am: cdde799ce5\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12048628\n\nChange-Id: I5f300a5ba8b94b08f817dfd88950c409be6db4cd\n"
    },
    {
      "commit": "ffabb49539cfa682feb9f77c93e050b27e0fa151",
      "tree": "8aa81baece273a4c6dcab48cdcf544791a294836",
      "parents": [
        "498c4ed2faa20036408a8790a90a3b2575976f6a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 30 14:06:37 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 30 14:06:37 2020 -0700"
      },
      "message": "audio policy: remove capture restrictions for IN_COMMUNICATION mode\n\nRemove capture restrictions added to prevent apps from capturing\nwhen audio mode is IN_COMMUNICATION if they are not the audio mode\nowner.\n\nBug: 153934174\nBug: 160260850\nTest: repro steps in bug.\nTest: regression for VoIP calls\nTest: atest AudioManagerTest#testAccessMode\nTest: atest AudioRecordTest\nChange-Id: Iba423e0aceec7e07089440ad1efb9e1325953305\n"
    },
    {
      "commit": "a069304fe522a0849b075940768fcc8fb79be6d7",
      "tree": "13dfcf2783f02e0278aaa160ded3e7bcb9bda8a4",
      "parents": [
        "a6eda0cf36f629e5849e704a6966ec3ea323b1c1",
        "2b51eb33af3c4f61708bffaa671383ef2372994b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 30 17:23:10 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jun 30 17:23:10 2020 +0000"
      },
      "message": "Merge \"Fix direct/offload thread output devices into MSD\" am: 24c46f1741 am: 5f829dead3 am: 456051d0b9 am: 37a8cbea2e am: 2b51eb33af\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1340017\n\nChange-Id: I5f885470d75362697716772bbd0a8e5d3f235136\n"
    },
    {
      "commit": "456051d0b9f41986e982b07d4b5462e377534bfe",
      "tree": "78cb394b36e0265d54823dff9d826f582951acf6",
      "parents": [
        "04435f6bec3e65c1d4cfd0e356b89a2d025fb696",
        "5f829dead32af6da25656e77203f4ca59e578ba5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 30 16:39:05 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jun 30 16:39:05 2020 +0000"
      },
      "message": "Merge \"Fix direct/offload thread output devices into MSD\" am: 24c46f1741 am: 5f829dead3\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1340017\n\nChange-Id: Ib15f682b137b827cd6d3cdf4ff75803ed06bf17c\n"
    },
    {
      "commit": "514b431cac26626260df703a7b1504717b948e22",
      "tree": "15050e1e0fd465901076dfc1fa8a65b9179bd7cf",
      "parents": [
        "c1d40b64b1ee652f173153fb2520201bbed56679"
      ],
      "author": {
        "name": "Dean Wheatley",
        "email": "dwhea@dolby.com",
        "time": "Wed Jun 17 21:45:00 2020 +1000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jun 29 23:13:56 2020 +0000"
      },
      "message": "Fix direct/offload thread output devices into MSD\n\nWithout this change, direct/offload threads show\n\"Output devices:  (Empty device types)\". Empty device\ncauses timestamp correction to always be disabled for\noutput threads requiring timestamp correction.\n\nTest: check direct/offload output into MSD dumpsys output devices\n      atest audiopolicy_tests\nBug: 159948389\nChange-Id: I7006c9da2f0a228dd49ce0297c30035fef983090\n"
    },
    {
      "commit": "ffccc1d5c4d0d3435edfae793bdb6da00b74f0e8",
      "tree": "de23efdd210b3a2ebe82450220b2d8cc6e1e33d9",
      "parents": [
        "809d430fa30dfb7a4b9014e3a59f0d9e60b8f68b",
        "cdee29ca357bcb2cccc3079af95ecc6de70bbb59"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 24 20:39:40 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jun 24 20:39:40 2020 +0000"
      },
      "message": "Merge \"audio policy: do not consider telephony TX device as a local device\" into rvc-dev am: 8847f120b6 am: e963d9d683 am: a3a0258a72 am: cdee29ca35\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11931587\n\nChange-Id: Ibee385fdcc8edcca19aac3c09c42ce3817c5d2f0\n"
    },
    {
      "commit": "e963d9d6832ce89aff1f0535f4f7b62a335067c8",
      "tree": "89e76e8044c3cccbc654781eb0372eb154fe5aa4",
      "parents": [
        "cac3ba5c6e49b19e8a8ce842f839ae8a48679faa",
        "8847f120b6fd52b852d7770f67b58af725f5b43e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 24 19:42:24 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jun 24 19:42:24 2020 +0000"
      },
      "message": "Merge \"audio policy: do not consider telephony TX device as a local device\" into rvc-dev am: 8847f120b6\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11931587\n\nChange-Id: Ic9ede3f6cfbd13e99b1c4d26e607f6b8401cc299\n"
    },
    {
      "commit": "ebb6af45d3741a33259ea6bf8a5fc87881982943",
      "tree": "f4ce87071a3b0a650d5dc12d9301436417c58e09",
      "parents": [
        "1495d23d7b282a1e9a5d522eafe565a924667351"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Jun 09 17:31:17 2020 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Jun 23 15:25:17 2020 -0700"
      },
      "message": "Select haptic output when haptic-generating effect exists.\n\nHaptic-generating effect must be attached to haptic output thread as it\nrequires writing haptic channels. In that case, when haptic-generating\neffect exist, try to select the output that it is attatched to.\n\nBug: 136490803\nTest: make\nChange-Id: I6be84a3edac1094d6e457b3226c3930f28219167\n"
    },
    {
      "commit": "af6d36f23a359a6d1ae6629c084655d776bfe2c5",
      "tree": "ef3d18d83d3a9c3eca74302031f5bca53234d0b5",
      "parents": [
        "f00b91b986fca9d87b900ed0e34c963bb85519f1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jun 20 13:14:09 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jun 20 20:25:57 2020 +0000"
      },
      "message": "audio policy: do not consider telephony TX device as a local device\n\nExclude playback over AUDIO_DEVICE_OUT_TELEPHONY_TX when evaluating\nlocal playback activity on a HW module as this is a virtual device\ninjecting audio to telephony TX path and as such not interfering\nwith local playback.\n\nBug: 159480161\nTest: repro steps in bug\nChange-Id: I8cd27acc0033725fa66f95c7661c58b38d31532a\n"
    },
    {
      "commit": "906ab3315352998c9119695b9733042f070fa43e",
      "tree": "5faf744901a25c0767e4223e9d4c82c9740c0eb4",
      "parents": [
        "01e02c1ad1d838eb678733d246793d582d603b00",
        "8c7669e999929b2f8dac92706dfc32e6d83cfa99"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 17 03:33:31 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jun 17 03:33:31 2020 +0000"
      },
      "message": "Merge \"Rename \"Westworld\" to \"Statsd\"\" into rvc-dev am: e28883fe1b am: 48658f8a11 am: ec407509b5 am: 8c7669e999\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11887808\n\nChange-Id: I8a8562f9492a9d59b7afc59d6caed3a79fbaface\n"
    },
    {
      "commit": "48658f8a11e5a91180e5dac77da10bfb092dd68b",
      "tree": "960eb7189d5696b56b3c445fd667399506d6c7d8",
      "parents": [
        "e220e69f9bdffb71b8f7a2e0b3ee6486f91a2460",
        "e28883fe1be2f291516adb167ff0dc4367f8adf5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 17 02:33:23 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jun 17 02:33:23 2020 +0000"
      },
      "message": "Merge \"Rename \"Westworld\" to \"Statsd\"\" into rvc-dev am: e28883fe1b\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11887808\n\nChange-Id: I87efa4fdc9f3c362a1673e24f0b75ba78bfc66e6\n"
    },
    {
      "commit": "e28883fe1be2f291516adb167ff0dc4367f8adf5",
      "tree": "af691e6c23d56a65c2d52ec30a07b568e5bff4fb",
      "parents": [
        "d3c372d58bf7345e9d7646ee45591fb72af7f2f5",
        "087b37c360200e3e97935efd958ce4384a6675cd"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 17 02:21:55 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 02:21:55 2020 +0000"
      },
      "message": "Merge \"Rename \"Westworld\" to \"Statsd\"\" into rvc-dev"
    },
    {
      "commit": "087b37c360200e3e97935efd958ce4384a6675cd",
      "tree": "72d22173c3730582683e078d8e1a7192e3c8d94c",
      "parents": [
        "19d51164324653a7312c6d7bc0fd0ac43d581503"
      ],
      "author": {
        "name": "Muhammad Qureshi",
        "email": "muhammadq@google.com",
        "time": "Tue Jun 16 16:37:36 2020 -0700"
      },
      "committer": {
        "name": "Muhammad Qureshi",
        "email": "muhammadq@google.com",
        "time": "Tue Jun 16 18:05:47 2020 -0700"
      },
      "message": "Rename \"Westworld\" to \"Statsd\"\n\nBug: 158725651\nTest: N/A; trivial name change\nChange-Id: I39f8847059c6decac070aaea901b7d0d418c75e9\n"
    },
    {
      "commit": "a8f6f318c8776411ea00df7eed0a5e1d8be144d8",
      "tree": "d010784f632fce3d355ebec5c083fdf9b5a6c1ed",
      "parents": [
        "8129d4eedf8d509a42bc9831f9009c450978da7d",
        "d6e383838a792c17ff66deacb912b4fa470acb89"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 16 22:08:12 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jun 16 22:08:12 2020 +0000"
      },
      "message": "Merge \"Audio policy: fix failure to unmute strategy.\" into rvc-dev am: 6b72bc88b6 am: e9b0bf3402 am: 9906e54d2c am: d6e383838a\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11845532\n\nChange-Id: Ibe40ea1d3c9eb18c85005c8cb8be10d085a932b5\n"
    },
    {
      "commit": "d6e383838a792c17ff66deacb912b4fa470acb89",
      "tree": "3b5a2d85d74064a6cbcc6a6d0f9621de498c5c86",
      "parents": [
        "096c68661f526baac05d8d1830fd0cc6418b71ae",
        "9906e54d2cf8ba6d761b8b230e6640cbb3766dae"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 16 21:55:57 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jun 16 21:55:57 2020 +0000"
      },
      "message": "Merge \"Audio policy: fix failure to unmute strategy.\" into rvc-dev am: 6b72bc88b6 am: e9b0bf3402 am: 9906e54d2c\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11845532\n\nChange-Id: Ib76da0f7615fa1cc6e17c337ff846331b2dac79a\n"
    },
    {
      "commit": "c77f67424618a98258abf23ee2043d08cc614e62",
      "tree": "3b5a2d85d74064a6cbcc6a6d0f9621de498c5c86",
      "parents": [
        "59db65fba7a8268728187a468f86d41635399f96",
        "6b72bc88b6a0bc575b2b73fcb7cc46f6ca6af43a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 16 21:12:34 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jun 16 21:12:34 2020 +0000"
      },
      "message": "Merge \"Audio policy: fix failure to unmute strategy.\" into rvc-dev am: 6b72bc88b6\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11845532\n\nChange-Id: Id7adbf1271d06d00c73ee3b1dc3d18ac467c54e4\n"
    },
    {
      "commit": "425f5edba6ba21783ede6440e65e3fd97df52a23",
      "tree": "d280802a97c79523523b6be21ec1c967435d31e4",
      "parents": [
        "aa885fc71f57de6aff3fe3e3d55f4be34282cb3c",
        "b8563e005d291f09f80555089ab7c08ecac8b28f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jun 13 02:55:31 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Jun 13 02:55:31 2020 +0000"
      },
      "message": "Merge \"[AudioPolicy][engineconfigurable] audioattribute should match audio_stream_assist first\" am: 84b712329f am: 649738b538 am: 74e2e7c68d am: 1a59728840 am: b8563e005d\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1332917\n\nChange-Id: Icd9568ea77447fe470fb3433d4828db4529afe43\n"
    },
    {
      "commit": "74e2e7c68d4e337d35cfe31b908849efe7a622d8",
      "tree": "654193be9c41ce12dc26c99f98e58bc553d4571d",
      "parents": [
        "c953348bfc2b419105e09a895073e317f89eeb59",
        "649738b538419944edbfd6ea153a0154b97a04a0"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jun 13 02:21:02 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Jun 13 02:21:02 2020 +0000"
      },
      "message": "Merge \"[AudioPolicy][engineconfigurable] audioattribute should match audio_stream_assist first\" am: 84b712329f am: 649738b538\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1332917\n\nChange-Id: Ie9074caca5c79262050092b74cda97b753376105\n"
    },
    {
      "commit": "79ea958e3bedbdfe625fffdd0423a4b94dfc1182",
      "tree": "bf4ff094fd9c8e233c4db2fc9f9bde4cf128ebbf",
      "parents": [
        "3244d0db9d52223d417df71b6343064adbcad957"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 11 18:49:24 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 12 17:26:33 2020 -0700"
      },
      "message": "Audio policy: fix failure to unmute strategy.\n\nWhen setOutputDevices() is called with a device not supported by the\noutput profile, checkDeviceMuteStrategies() was not called.\nIf a strategy was muted by this output because of a previous\ndevice combination, it will never be unmuted.\nA typical repro scenario is:\n1) music plays over A2DP via offload path\n2) incoming call: ringtone plays over speaker + A2DP\n   \u003d\u003e music is paused by audio focus\n3) music manually resumed\n   \u003d\u003e media strategy is muted because it cannot play over\na2dp + speaker\n4) call answered and routed to earpiece\n   a) offload output is routed to earpiece which is not\nsupported by offload output profile\n   \u003d\u003e we fail to unmute media\n   b) music stream is invalidated because earpiece is\n   not supported by offload output\n   \u003d\u003e offload output is closed and we will never unmute media strategy\n\nFixed by calling checkDeviceMuteStrategies() before exiting in\ncase of unsupported device.\n\nBug: 157344812\nTest: repro steps in bug\nTest: audio regression tests\nChange-Id: I0c1c189c038803a584dc222aee50c3a99c572263\n"
    }
  ],
  "next": "7a196eb6e70b5f9ef92375e9ebf173385f6e8692"
}
