)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "7a196eb6e70b5f9ef92375e9ebf173385f6e8692",
      "tree": "21055d117de920df3e213cd67b78884d0ba9f64c",
      "parents": [
        "ec49ef405b5080e95ace57e5ee7a0c6b7eb593f5"
      ],
      "author": {
        "name": "liuxiaoyu7",
        "email": "liuxiaoyu7@xiaomi.com",
        "time": "Fri Jun 12 17:07:01 2020 +0800"
      },
      "committer": {
        "name": "liuxiaoyu7",
        "email": "liuxiaoyu7@xiaomi.com",
        "time": "Fri Jun 12 17:43:39 2020 +0800"
      },
      "message": "[AudioPolicy][engineconfigurable] audioattribute should match audio_stream_assist first\n\nif app play audio using uage AUDIO_USAGE_ASSISTANT,\nattribute to stream should return audio_stream_assist first instead of audio_stream_music\n\naudio_stream_assist:\n attrBuilder.setUsage(AudioAttributes.USAGE_ASSISTANT);\n attrBuilder.setContentType(AudioAttributes.CONTENT_TYPE_SPEECH);\n\naudio_stream_music:\nattrBuilder.setUsage(AudioAttributes.USAGE_ASSISTANT);\n\nSigned-off-by: liuxiaoyu7 \u003cliuxiaoyu7@xiaomi.com\u003e\nChange-Id: Ied2f0c076c53ecfd374fb58b48f0e5da07e3c7a8\n"
    },
    {
      "commit": "378323f96cc664a497065abbdc8d1203de45e719",
      "tree": "751beaf3acaef72545075764ac7c53118a6225cd",
      "parents": [
        "c692fdac8c3ea74eb4290ee530174cb011596eef",
        "eed62633df1570c20946722408279e883450662d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 09 16:30:06 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jun 09 16:30:06 2020 +0000"
      },
      "message": "Merge \"audio policy: output selection upon dynamic policy registration\" into rvc-dev am: 45d5095e05 am: 94a8cf726a am: de4d382df8 am: eed62633df\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11764552\n\nChange-Id: I8eddd4663478a881a1a9ec46a02716e397e07fdf\n"
    },
    {
      "commit": "c209fe49e74dc30100a6f409c616f04382d48f05",
      "tree": "afa05faf2118a2f09b308341a9d227df57bcb723",
      "parents": [
        "ea5f4133c7c029ffb988f4aa454c45c86294531c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 05 18:11:23 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 08 18:56:15 2020 -0700"
      },
      "message": "audio policy: output selection upon dynamic policy registration\n\nForce reevalution of output selection for AudioTrack clients when a\ndynamic audio policy (DAP) of type RENDER is registered or unregistered.\nFor LOOPBACK policies, this is not needed because the remote submix\ndevice is connected or disconnected triggering output reevaluation.\n\nAlso refactor checkOutputForAttributes to take actual output selection\nfor each client associated to a DAP instead of blindly forcing stream\ninvalidation as soon as an output associated with a DAP is found.\nThis covers direct outputs as the output is not opened when the DAP\nis registered.\n\nBug: 130296239\nTest: AudioHostTest\nTest: AudioServiceHostTest\nTest: audiopolicy_tests\nTest: regression with auto projected mode and live caption\nChange-Id: I07977e7902eb31c59621462a8fe2d7d1a4b1ba36\n"
    },
    {
      "commit": "3f0abebf1326fd2cf10cb90330f437527a1055f1",
      "tree": "b39fbe1f409e1f4d69e4f2ee09bee2d004c1fccf",
      "parents": [
        "d4ca2c4439873a32772dabb03e91041f7e4ae226",
        "42bffe9321739005662a49ca3acbb07cbbde94e2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 02 23:41:34 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jun 02 23:41:34 2020 +0000"
      },
      "message": "Merge \"AudioPolicy: manager: fix patch list growing up\" into rvc-dev am: a9d7640540 am: 5f9bfd99b7 am: 297d8e737d am: 42bffe9321\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11709956\n\nChange-Id: I67b986bbbcbd86b68fd35c6a08180fe7957c3bb9\n"
    },
    {
      "commit": "8e544543add8e4e0e53f6b27a265254e6af2422b",
      "tree": "00175e73755007accffd18f0b48d40a2360bc303",
      "parents": [
        "e0c3d791757109b0302cf74e7027bcada2221b1f"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Mon May 11 14:12:53 2020 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 02 14:17:13 2020 -0700"
      },
      "message": "AudioPolicy: manager: fix patch list growing up\n\ncommit 3b17354a caused potential stale audio patches\nrecords in audio policy manager for patches associated\nwith audio flinger software patches sharing an output mixer.\n\nBug: 136121584\nTest: dumpsys media.audio_policy \u0026\u0026\nadb shell /data/nativetest64/AudioPolicyEmulatorTests/AudioPolicyEmulatorTests --gtest_filter\u003dAudioPatchTest/AudioModeBridgingTest.\n\u0026\u0026 dumpsys media.audio_policy:\nensure list of patches did not grow up\nTest: atest audiopolicy_tests\n\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: Ife8035dc2d2d9c0b568d6847ca5eb0d2cba77cea\n"
    },
    {
      "commit": "78f17d017660de9a1a1f71faf36022fae455473b",
      "tree": "67aeac5d5bb87bf479f7922347d39fa0809e6311",
      "parents": [
        "934f89fa73a3797651302fd2621f216f0b22de91",
        "1f6b66abdb3679d167d0b8a0611e63d0a43a88df"
      ],
      "author": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Sun May 10 05:59:56 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sun May 10 05:59:56 2020 +0000"
      },
      "message": "Merge \"Support query encapsualtion modes and metadata types.\" into rvc-dev am: 05be7e5109 am: dd10311505 am: 4e3eb1b00c am: 1f6b66abdb\n\nChange-Id: I93d4124a39bf53f46c832c1774a01df3012ef77b\n"
    },
    {
      "commit": "1c4794bfdee92c9491312432bd966d2439c49179",
      "tree": "0947f6dea04e00753357a87d2ab38cb9d6fd13e4",
      "parents": [
        "eaad70fbfcec64206f42a11071efa683efe0c3ab"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue May 05 10:08:05 2020 -0700"
      },
      "committer": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Fri May 08 00:37:55 2020 +0000"
      },
      "message": "Support query encapsualtion modes and metadata types.\n\nWhen a new device is attached to hardware module, query the HAL to get\nthe supported encapsulation modes and metadata types.\n\nTest: atest EnumDevicesTest, manually\nTest: atest audiofoundation_parcelable_test\nBug: 155799506\nChange-Id: I903e46e35a44416c9f2d206c128face8a6c61dcb\n"
    },
    {
      "commit": "67cb88ee8eb01b5d745afec056a3b8873267be2a",
      "tree": "b0bc018e3804a64a7f87c0c17c2b4ce303735527",
      "parents": [
        "5c083cb35bcbe9d35bc474e85d69496aa15ee2b4",
        "661da84ff79d93fd0b1352c815656196fc96ea9c"
      ],
      "author": {
        "name": "Hui Yu",
        "email": "huiyu@google.com",
        "time": "Wed May 06 17:29:28 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed May 06 17:29:28 2020 +0000"
      },
      "message": "Merge \"Revert \"Add isUidActiveOrForeground() for camera/audio to use.\"\" into rvc-dev am: cc79094c69 am: 2b5794206e am: f8f28e9d83 am: 661da84ff7\n\nChange-Id: I3a457152c32537a4b2a6aff2df226db09bed508b\n"
    },
    {
      "commit": "cc79094c69bdc85c7c8f52247a00bae1dff68473",
      "tree": "ae20e4e48fc2ccda1611c3010b378e4dc34b2e63",
      "parents": [
        "b3cedfdf595bbb3538a7a6e36b70de5e62a58fa1",
        "12c7ec759a2629c2b11861ec89fd8a3bef778d39"
      ],
      "author": {
        "name": "Hui Yu",
        "email": "huiyu@google.com",
        "time": "Wed May 06 16:59:34 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 06 16:59:34 2020 +0000"
      },
      "message": "Merge \"Revert \"Add isUidActiveOrForeground() for camera/audio to use.\"\" into rvc-dev"
    },
    {
      "commit": "12c7ec759a2629c2b11861ec89fd8a3bef778d39",
      "tree": "f6761f74625adddd3853d93fd8d5e92a7f388950",
      "parents": [
        "ffffffc42242cf06c433e4e4958d7991a7e2848c"
      ],
      "author": {
        "name": "Hui Yu",
        "email": "huiyu@google.com",
        "time": "Mon May 04 17:40:52 2020 +0000"
      },
      "committer": {
        "name": "Hui Yu",
        "email": "huiyu@google.com",
        "time": "Mon May 04 18:06:32 2020 +0000"
      },
      "message": "Revert \"Add isUidActiveOrForeground() for camera/audio to use.\"\n\nRevert \"Add isUidActiveOrForeground() for camera/audio to use.\"\n\nRevert \"Add isUidActiveOrForeground for camera/audio to use.\"\n\nRevert submission 10829580-isUidForeground\n\nReason for revert: In CameraService.cpp, before this change, around \"am.isUidActive\", there was up to 300 ms retry. After this change, the code could move forward fast without retry, but at \"mAppOpsManager-\u003estartOpNoThrow\" call, for the same reason as uid is not updated fast enough, \"mAppOpsManager-\u003estartOpNoThrow\" could also fail.\n\nThis CL does not really fix the root cause, but it changes the timing and now the code fails at \"mAppOpsManager-\u003estartOpNoThrow\" call.\n\nAlso the timing change may also cause recent multiple CTS test failures.\n\n\nBug: 154570809, 155032617, 154849083\n\nReverted Changes:\nIffed63293:Add isUidActiveOrForeground() for camera/audio to ...\nI3685e0c8d:Add isUidActiveOrForeground() for camera/audio to ...\nI51ed1fe78:Add isUidActiveOrForeground for camera/audio to us...\n\nChange-Id: I8acde2524201b6c6d0d5c0ff9cfb2053ffbcb8ef\n"
    },
    {
      "commit": "6ffc516235c5bdda22b06afc7f840ce2a60dc79e",
      "tree": "5929e758151a2343edc6f867873d7023ee7c88e4",
      "parents": [
        "2fc997ef3107415ba111cbe64d4355059830d85f",
        "12b716ce09943cc7b427f192d986e6830822c166"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon May 04 16:30:09 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 04 16:30:09 2020 +0000"
      },
      "message": "Merge \"Enforce basic thread safety in Audio Policy Service\" into rvc-dev"
    },
    {
      "commit": "12b716ce09943cc7b427f192d986e6830822c166",
      "tree": "9c3d2d8e77a1db06766593f620e37b9e3686d48d",
      "parents": [
        "929c3645336dd0e01d3f61ffaedc95fe417ab1bb"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Apr 30 22:37:43 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri May 01 23:29:38 2020 +0000"
      },
      "message": "Enforce basic thread safety in Audio Policy Service\n\nEnable clang thread safety analysis. Convert comments on TS\ninto directives. Fix missing lock acquisitions. Add missing\ndefault initializers for the fields of UidPolicy and\nSensorPrivacyPolicy\n\nAlso remove unused fields mpAudioPolicyDev and mpAudioPolicy\nfrom AudioPolicyService.\n\nTODO: Consider protecting pointers to command threads,\nAPM instance and the client, and system usages with a separate\nlock.\n\nBug: 70398235\nBug: 155336464\nTest: make, flash, and test audio on device\n      execute \"adb shell cmd media.audio_policy\" commands\nChange-Id: I47b132c8b5c977812fad5c89fa57882a37779c18\nMerged-In: I47b132c8b5c977812fad5c89fa57882a37779c18\n"
    },
    {
      "commit": "197d50a057100d12997099b8dc73e988e7fcea21",
      "tree": "07682097b9b7f1319b90223a4a8ca23f9d6aea5c",
      "parents": [
        "da6850898bbd65edc388cc4f1d536f5d3a6ecc86"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Apr 30 22:37:43 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri May 01 16:27:08 2020 -0700"
      },
      "message": "Enforce basic thread safety in Audio Policy Service\n\nEnable clang thread safety analysis. Convert comments on TS\ninto directives. Fix missing lock acquisitions. Add missing\ndefault initializers for the fields of UidPolicy and\nSensorPrivacyPolicy\n\nAlso remove unused fields mpAudioPolicyDev and mpAudioPolicy\nfrom AudioPolicyService.\n\nTODO: Consider protecting pointers to command threads,\nAPM instance and the client, and system usages with a separate\nlock.\n\nBug: 70398235\nBug: 155336464\nTest: make, flash, and test audio on device\n      execute \"adb shell cmd media.audio_policy\" commands\nChange-Id: I47b132c8b5c977812fad5c89fa57882a37779c18\n"
    },
    {
      "commit": "6a9361e43b95d7459da48a1ea063af2fe0df2f6f",
      "tree": "df92db30a8c335f02d9fb8902a737c807ca53954",
      "parents": [
        "22940f18712d52711b443521863fc85082ef5624",
        "94554b659246f0ead851a7cac687f6535bc6d85a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 01 03:23:33 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri May 01 03:23:33 2020 +0000"
      },
      "message": "Merge \"audio policy: add ECHO_REFERENCE to virtual audio sources\" into rvc-dev am: 74dc21be33 am: cd80999e21 am: 472933acf2 am: 94554b6592\n\nChange-Id: I2b265c96306b2c5b4ab78894ae84012e93ccfa10\n"
    },
    {
      "commit": "74dc21be3318f53013d099b6cbf235430296fa08",
      "tree": "4f0aa53d433fe43664222fa2665c409302e3092e",
      "parents": [
        "36c77d400c1e86b0aab5d529f061c158a674a122",
        "68eb212b74e31e43ffa112586cd056a6cf402bfb"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 01 02:09:56 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 01 02:09:56 2020 +0000"
      },
      "message": "Merge \"audio policy: add ECHO_REFERENCE to virtual audio sources\" into rvc-dev"
    },
    {
      "commit": "a7f0c7b9e702736efd2196476ae9fb2f51cb5815",
      "tree": "78c77af7a158376702aa93b674df2d2c17c317e0",
      "parents": [
        "4ae7ddb000b916b802008e2dcbd5143a503b934f",
        "49544b645747ada98448b62aa98b42e6b63f46d5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 01 01:39:23 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri May 01 01:39:23 2020 +0000"
      },
      "message": "Merge \"audio policy: fix crash if output for DAP is not opened\" into rvc-dev am: 36c77d400c am: 2f8e453957 am: 1be392b4ca am: 49544b6457\n\nChange-Id: Iadc112307ae5ac040e4377c7a93ef9455d15447c\n"
    },
    {
      "commit": "68eb212b74e31e43ffa112586cd056a6cf402bfb",
      "tree": "31cf2d726a1727955093c7a543e3a745cfcc7875",
      "parents": [
        "199012b0c66d555207d81fedb7cce16305c865f8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 30 17:40:57 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 30 17:40:57 2020 -0700"
      },
      "message": "audio policy: add ECHO_REFERENCE to virtual audio sources\n\nWhen ECHO_REFERENCE audio source was added, it was omitted\nfrom the list of virtual audio sources (sources protected by privileged\npermission not accessing the mic). This prevents from capturing echo\nreference at the same time as the input from mic.\n\nBug: 154639757\nTest: test app on yukawa\nChange-Id: Ib12e8c817dec7c3f4d3f3f7e7403330c88cead52\n"
    },
    {
      "commit": "c64e0ab206323877dc4bc6cdefa509c0e8f5e08f",
      "tree": "e52e7cac0bccd47305ab7e571d132c8f9737c8a2",
      "parents": [
        "199012b0c66d555207d81fedb7cce16305c865f8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 30 15:59:34 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 30 15:59:34 2020 -0700"
      },
      "message": "audio policy: fix crash if output for DAP is not opened\n\nFix crash in getOutputForAttrInt() if the output corresponding to\nthe mix returned by AudioPolicyMix is not opened and the device\nselected by the mix is not attached.\nBefore commit c529cf6f, a policy mix without opened output would not\nbe retuned by AudioPolicyMix.getOutputForAttr(). With direct\noutput suppoort, this is possible but should be ignored if the device\nselected by the policy mix is not attached.\n\nBug: 155430290\nTest: AudioHostTest\nTest: AudioServiceHostTest\nTest: audiopolicy_tests\nTest: manual mirroring and car projection tests\nChange-Id: I66be4a3c5fb8b9ae0674c0f1e6e39de7f18ed2fb\n"
    },
    {
      "commit": "15bdd1efc32920b58bb81120798bee074b07be02",
      "tree": "1bcfbf37800c7a580b17e147b725412635c623da",
      "parents": [
        "b24b2c4435dbaa91a3543ecacb402b7e8286eb59",
        "f70ea1fff5df26b9ad264d12317e0a9bad2a0974"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 30 01:17:57 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Apr 30 01:17:57 2020 +0000"
      },
      "message": "Merge \"Audio policy: fix areAllDevicesSupported()\" into rvc-dev am: 2c4f8cec92 am: 2e952136d1 am: ff977bd8ff am: f70ea1fff5\n\nChange-Id: I836e61172e3ad255404380adaa1fe8c3d993a3a8\n"
    },
    {
      "commit": "0e26e3f980a9904f23f24b0390844dcfeedd1418",
      "tree": "537c172187d9dd6bf3155c0a2a9c85c7b0a06669",
      "parents": [
        "ec660f185a1e212b1d22125de81e9bd1d0ff58a3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 29 14:24:16 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 30 00:15:50 2020 +0000"
      },
      "message": "Audio policy: fix areAllDevicesSupported()\n\nFix areAllDevicesSupported() where HwModules.getDeviceDescriptor()\nmust be called with matchAddress \u003d\u003d true: if the caller does not want to\ndistinguish on address it can leave the address field empty in the\nAudioDeviceTypeAddr passed which has the same effect as using\nmatchAddress \u003d\u003d false.\n\nAlso fix places where device_distinguishes_on_address() was improperly\nused in place of audio_is_remote_submix_device().\n\nBug: 155224229\nTest: build and launch car emulator\nTest: AudioHostTest\nTest: AudioServiceHostTest\nTest: audiopolicy_tests\nTest: manual mirroring and car projection tests\nChange-Id: I74295de95bcd82e7fa439c396ae32749b9c70c05\n"
    },
    {
      "commit": "07dba6a5feb113e67e17ecdee623a523495eea00",
      "tree": "7ae171190fc24031e3e3f0e7c7a94d4a8dba1d3b",
      "parents": [
        "8b1fc0eb0364c03d0a93fe8c0ee760cf88eed9d6",
        "dc0058779107e87b01da73495e574343250f837b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 28 16:12:48 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Apr 28 16:12:48 2020 +0000"
      },
      "message": "Merge \"audio policy: allow direct outputs for dynamic audio policies\" into rvc-dev am: 6d05a57e70 am: 23c3b34d21 am: af5ac7e9dc am: dc00587791\n\nChange-Id: Ia407815055e6ac5c66a4a242ab662e362c826344\n"
    },
    {
      "commit": "c529cf6fa9b500506d675ec971909dba18cfb71b",
      "tree": "ebd662d9270ac9ca37849fa7a44b16fe73cd4abd",
      "parents": [
        "02d69c15b683418de39901a74f1eea8ddbfcbf40"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 17 18:19:10 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 27 14:42:06 2020 -0700"
      },
      "message": "audio policy: allow direct outputs for dynamic audio policies\n\nAdd support for direct outputs with RENDER audio policy mixes.\nA mix of type render can be registered even if no corresponding\noutput is opened to reach targeted device provided a direct output\nprofile exist for this device.\n\nAlso:\n- Fix setUidDeviceAffinities(): was not closing direct outputs\nopened by checkOutputsForDevice() and was not re-evaluating routes\n\n- Fix removeUidDeviceAffinities(): was not re-evaluating routes\n\n- Implement consistent sanity checks on selected devices in\nsetUidDeviceAffinities(), setUserIdDeviceAffinities() and\nsetPreferredDeviceForStrategy().\n\n- Fix onNewAudioModulesAvailableInt(): attached devices reachable only\nvia direct outputs were not loaded.\n\nBug: 130296239\nTest: AudioHostTest\nTest: AudioServiceHostTest\nTest: audiopolicy_tests\nTest: manual test: Auto projection over USB, screen mirroring\nChange-Id: I54470b61b4bc7e041e3a295764d368c5ded21268\n"
    },
    {
      "commit": "78ad11868d86fea961fd6b4b1b6687b3f5837e79",
      "tree": "e606af6e2ddd5c296e55683bf696d3d6eb383e3f",
      "parents": [
        "d1d151703fee946a8b9de2e31d800be13a278515",
        "74f502b63da65c524293561f0acd60927cce770f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 20 21:03:01 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Apr 20 21:03:01 2020 +0000"
      },
      "message": "Merge \"audio policy: fix volume for unsupported device\" into rvc-dev am: afee5576fa am: 1b4fb61450 am: ffd192c1c6 am: 74f502b63d\n\nChange-Id: I9b02ae50412d72dbdcd17d90a75e25c441ae8b89\n"
    },
    {
      "commit": "afee5576faeef5d557a4dbd233250eb6a8ca8e1e",
      "tree": "c2de0ae50aeabfd1077f3e0edf11b252f5d0fc64",
      "parents": [
        "ccc44f3f72a8d65c1d9fa829515eab478c647ebc",
        "99a3463d17da6c287e6db05790372b5b943d6468"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 20 19:25:21 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 20 19:25:21 2020 +0000"
      },
      "message": "Merge \"audio policy: fix volume for unsupported device\" into rvc-dev"
    },
    {
      "commit": "99a3463d17da6c287e6db05790372b5b943d6468",
      "tree": "acda2bb9a80c4b740768eccd3a1f31c950a090b1",
      "parents": [
        "a4cfeca69f76fbd2eedd6217b058d118844a5d4c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 16 16:52:38 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 20 16:30:13 2020 +0000"
      },
      "message": "audio policy: fix volume for unsupported device\n\nDo not allow changing volume on an output when\nthe specified device is not supported by the\ncorresponding output profile.\n\nThere is a similar sanity check in setOutputDevices()\nbut there was none in AudioOutputDescriptor::setvolume().\n\nBug: 153411189\nTest: atest AudioManagerTest\nTest: manual audio smoke tests\nChange-Id: I539697c54d70c442ba1ce38d212b43cd3ef0138c\n"
    },
    {
      "commit": "27cf37ca3ed87077c4beaceb2f7373c98e16737c",
      "tree": "f22fffa28ae98f0bb8319aaa0a5a82f15ed8fb89",
      "parents": [
        "a6127a935639f127db56974851abc2dda360eca2"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Apr 14 14:47:01 2020 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Apr 17 01:54:47 2020 +0000"
      },
      "message": "audio: Centralize audio configuration paths specification\n\nThe list of possible paths for the audio configuration\nfiles is now retrieved using audio_get_configuration_paths()\nfunction. All duplicated lists of known configuration\ndirectories have been removed.\n\nBug: 153680356\nTest: test audio on built image working\n      atest VtsHalAudioV6_0TargetTest VtsHalAudioPolicyV6_0TargetTest\nChange-Id: I8c369442f5ca7baa17df95e6a001396fc9de5681\nMerged-In: I8c369442f5ca7baa17df95e6a001396fc9de5681\n"
    },
    {
      "commit": "be211756d5f067557069d9038baf14e2b44edfea",
      "tree": "cb49ebe7dc6ead96f7e4755adf6a49492207ef53",
      "parents": [
        "70e08c0ad62ab6052f0d321fc07819f72d5a6575",
        "430fe3030010b41416ce5066250fa1a30b4865ad"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 17 01:16:13 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Apr 17 01:16:13 2020 +0000"
      },
      "message": "Merge \"audio: Centralize audio configuration paths specification\" am: c0884de8b9 am: a89bd207aa am: 2c365b16ad am: 7673dcb329 am: 430fe30300\n\nChange-Id: Iec77e9e80b591b7865877f0efd28e5057fbe5dc9\n"
    },
    {
      "commit": "2c365b16ad0e0b801622b338c558b0f66427c84c",
      "tree": "b0421cbbda51f1f25b58d3fbb19abf1e25e71305",
      "parents": [
        "65412b25fcf6149b739032e9dfe0e02f43c7d78b",
        "a89bd207aad8de70d4376ec7108306f18fcc8133"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 16 23:35:46 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Apr 16 23:35:46 2020 +0000"
      },
      "message": "Merge \"audio: Centralize audio configuration paths specification\" am: c0884de8b9 am: a89bd207aa\n\nChange-Id: I8c5eaa6dd147a68e5380f4638b89e8050eefc308\n"
    },
    {
      "commit": "a89bd207aad8de70d4376ec7108306f18fcc8133",
      "tree": "75372d956702224c0f0624d2d7ee4e486b493e5a",
      "parents": [
        "a85def6612ade71bd31a0d60e45ee7e0068af638",
        "c0884de8b9a3c7ba3755356717b94bfdfc5eb31d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 16 23:21:24 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Apr 16 23:21:24 2020 +0000"
      },
      "message": "Merge \"audio: Centralize audio configuration paths specification\" am: c0884de8b9\n\nChange-Id: I4efd1b4423efe2734c7ba79a3bac75ceb78f0036\n"
    },
    {
      "commit": "c0884de8b9a3c7ba3755356717b94bfdfc5eb31d",
      "tree": "79fd2da36b706d97e239e988221cfd34069d24d6",
      "parents": [
        "ada7c446d5579a57238a2fd89bcee6ca32c68786",
        "edc0ae1ebc8ec716f327269552ceaf81fbd874a0"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 16 23:05:30 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 16 23:05:30 2020 +0000"
      },
      "message": "Merge \"audio: Centralize audio configuration paths specification\""
    },
    {
      "commit": "edc0ae1ebc8ec716f327269552ceaf81fbd874a0",
      "tree": "f393c230c74478be53856618c5169998f0ff71b0",
      "parents": [
        "04f759bfd400f64bd7d17e9e3fd725d1e2cea31e"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Apr 14 14:47:01 2020 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Apr 14 14:47:01 2020 -0700"
      },
      "message": "audio: Centralize audio configuration paths specification\n\nThe list of possible paths for the audio configuration\nfiles is now retrieved using audio_get_configuration_paths()\nfunction. All duplicated lists of known configuration\ndirectories have been removed.\n\nBug: 153680356\nTest: test audio on built image working\n      atest VtsHalAudioV5_0TargetTest VtsHalAudioPolicyV1_0TargetTest\nChange-Id: I8c369442f5ca7baa17df95e6a001396fc9de5681\n"
    },
    {
      "commit": "2beb1dedfdc0c7f92fa4dc4628795578291dc7ad",
      "tree": "1332ca819b7e2d3f222a4afbd39d3585320b87aa",
      "parents": [
        "19b1a8e0b729d0fc06518e5c5619950b747aaaab",
        "8607a8bae7da02e77166da6079f4a1ff24261919"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 14 21:16:47 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Apr 14 21:16:47 2020 +0000"
      },
      "message": "Merge \"AudioPolicy: managerdefault: fix onAudioDeviceUpdate callback\" am: 8607a8bae7\n\nChange-Id: Ie17695801cdb5266c8dd8cb816ced979ae2095f5\n"
    },
    {
      "commit": "8607a8bae7da02e77166da6079f4a1ff24261919",
      "tree": "31b3c6faab94e2e0de3c044bcaa177092ef07055",
      "parents": [
        "a224da5c41cc54a526bfed7a2027223557167f89",
        "3b17354a89c230442c81211ccdb64653a4defa12"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 14 21:00:06 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 14 21:00:06 2020 +0000"
      },
      "message": "Merge \"AudioPolicy: managerdefault: fix onAudioDeviceUpdate callback\""
    },
    {
      "commit": "b547562f4fc2591079a225e45957d5856cd6ebe5",
      "tree": "221301ed59e59b9a186ae7e60539dca842a4eb1f",
      "parents": [
        "07c0312f11f4f7509a36921f4ed22433ebceacc0",
        "43f283bd14eac4148d637e3e813bf0abdc9a6cd3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 14 03:17:42 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Apr 14 03:17:42 2020 +0000"
      },
      "message": "Merge \"audio policy: fix crash in findPreferredDevice() on duplicating outputs\" into rvc-dev am: 9b8c695c48 am: 1f86aef7c9 am: 7238b0061b am: 43f283bd14\n\nChange-Id: I42ec305339e84dc386e825b48d41215dc150e6e4\n"
    },
    {
      "commit": "9b8c695c4879c2e28ee359cc55d6101da8931a9e",
      "tree": "a33496cdd3d5191b868ec2435c453f3908fd0ed2",
      "parents": [
        "7feb854e9ff78e8ca64e012af874503569905924",
        "26874fed269f1f88d5e9eaef831d0d4c14ba74be"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 14 01:52:49 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 14 01:52:49 2020 +0000"
      },
      "message": "Merge \"audio policy: fix crash in findPreferredDevice() on duplicating outputs\" into rvc-dev"
    },
    {
      "commit": "4bfe505fe03d8ad5751b11a8bb4e47f482f1ffb6",
      "tree": "29fb8acd29e692435f2339e0c14bddd534a36675",
      "parents": [
        "8e5d2bb7abbf2c9c8b8ebbe4c7dc3842ccf81e66",
        "732e3de9ebeaaeaa312d569cf82f9d33ac94cac1"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Mon Apr 13 23:24:40 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Apr 13 23:24:40 2020 +0000"
      },
      "message": "AudioPolicy: managerdefault: fix onAudioDeviceUpdate callback am: 7feb854e9f am: 177f92e17e am: 870e7f200c am: 732e3de9eb\n\nChange-Id: I725bc1ffbe2dfd91d91ac4fc4d4fe1fd6018a65e\n"
    },
    {
      "commit": "26874fed269f1f88d5e9eaef831d0d4c14ba74be",
      "tree": "1b53a2407f10fbf3197a7859d24899f79cb8fd1f",
      "parents": [
        "141095dce0006e73b7941367c4b03f64c6ae997d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 13 15:52:39 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 13 15:52:39 2020 -0700"
      },
      "message": "audio policy: fix crash in findPreferredDevice() on duplicating outputs\n\nDuplicating outputs do not have an associated IOProfile and\ngetPolicyAudioPort() returns null.\n\nAdd a method to AudioIODescriptorInterface to query if the\ninput or output descriptor corresponds to MMAP IO profile or not.\n\nBug: 153849965\nTest: repro steps in the bug\nChange-Id: I300356880198f1785e3a5e1359ffd393c6ae4190\n"
    },
    {
      "commit": "3b17354a89c230442c81211ccdb64653a4defa12",
      "tree": "1898597d4c8bcfcf90acea0ca40ae47575d2cf88",
      "parents": [
        "6861be79547c425ee21370bef55adbdd7bcb54c3"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Mon Apr 06 17:39:47 2020 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 13 20:25:00 2020 +0000"
      },
      "message": "AudioPolicy: managerdefault: fix onAudioDeviceUpdate callback\n\nScenario: startAudioSource (SW bridge) started, then stopped.\nAF patch is released, so PlaybackThread has empty patch.\n\nNext playback using the same sink will not recreate any patch\non AF as same device (and output desc has still valid patch handle)\n\nHence, ioconfichanged will get PORT NONE as sink device, no\nonAudioDeviceUpdate cb can be fired.\n\nThis CL fixes this issue by reset of patch handle on the output\n\nTest: startAudioSource / stopAudioSource then playback on the same\nsink. Ensure onAudioDeviceUpdate is fired\n\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: Ia9c2570f687166f38335ed7efae28920f7acc474\nMerged-In: Ia9c2570f687166f38335ed7efae28920f7acc474\n"
    },
    {
      "commit": "7feb854e9ff78e8ca64e012af874503569905924",
      "tree": "5fc22308c6ebd0a7f2066a8d7acf19a18e4347a5",
      "parents": [
        "141095dce0006e73b7941367c4b03f64c6ae997d"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Mon Apr 06 17:39:47 2020 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 13 13:21:15 2020 -0700"
      },
      "message": "AudioPolicy: managerdefault: fix onAudioDeviceUpdate callback\n\nScenario: startAudioSource (SW bridge) started, then stopped.\nAF patch is released, so PlaybackThread has empty patch.\n\nNext playback using the same sink will not recreate any patch\non AF as same device (and output desc has still valid patch handle)\n\nHence, ioconfichanged will get PORT NONE as sink device, no\nonAudioDeviceUpdate cb can be fired.\n\nThis CL fixes this issue by reset of patch handle on the output\n\nBug: 136121584\nTest: startAudioSource / stopAudioSource then playback on the same\nsink. Ensure onAudioDeviceUpdate is fired\nTest: atest RoutingTest\n\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: Ia9c2570f687166f38335ed7efae28920f7acc474\n"
    },
    {
      "commit": "12b147fe0dcc04b93b7791f02e675ed78a72cbac",
      "tree": "7b08546d97178286e2ce82fa601d4877545072c7",
      "parents": [
        "0ab3d3e4e9de4519ff8633437d813526199aec36",
        "3009a12c9a1fe8d8bdfa65ad0d81b832899b1baf"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 10 21:00:01 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 10 21:00:01 2020 +0000"
      },
      "message": "Merge \"Check if calling uid is system uid for setAllowedPolicyCapture.\" into stage-aosp-master"
    },
    {
      "commit": "3009a12c9a1fe8d8bdfa65ad0d81b832899b1baf",
      "tree": "d138c568179ff8a0058ec65cf87258afaf684979",
      "parents": [
        "292e854b4e905ca87861368b8c7ab32e90e6fcd4"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Dec 23 11:17:25 2019 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 10 18:50:17 2020 +0000"
      },
      "message": "Check if calling uid is system uid for setAllowedPolicyCapture.\n\nAudioSystem.setAllowedPolicyCapture is only called from audio service.\nIn that case, checking if the calling uid is system uid to before taking\naction.\n\nBug: 151922109\nBug: 145115448\n\nTest: AudioManagerTest#testAllowedCapturePolicy\nChange-Id: I614ac881ecde6bad13f22f1382de701f314a7ada\nMerged-In: I614ac881ecde6bad13f22f1382de701f314a7ada\n(cherry picked from commit 140a34fbfe829542c2c3651656d5c595201b3b4a)\n"
    },
    {
      "commit": "4da6b39d74fb762d06cda16762514b11df098954",
      "tree": "712d62f18fa99438e6669351161327d2ecf62526",
      "parents": [
        "b3358b86368d4b4bd52bf5ab1b9495c39465b435",
        "674ce2363382aced0104f52addf191364aa4e6a5"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Apr 07 11:26:39 2020 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Apr 07 11:26:39 2020 -0700"
      },
      "message": "DO NOT MERGE - Merge QQ2A.200405.005 into master\n\nBug: 150877681\nMerged-In: I9425baa21c82d5a5edf37c87989adbade0428b67\nChange-Id: I1bb8ab72286578d07cfd23fdad1f0ddc17949db6\n"
    },
    {
      "commit": "d5e595adfcc0dcc7d8b7d5cf2aca92cea51e7a95",
      "tree": "4273f3f1ceba669b66bf78d5096cdac255361fdd",
      "parents": [
        "b7dd0b8eb681836c2a8a463de767c6ec7a5b7f52",
        "327b2dd7bb68b22d570c6bc7de522c629a2e0d07"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 07 02:36:07 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Apr 07 02:36:07 2020 +0000"
      },
      "message": "Merge \"audio policy: fix mmap stream invalidation logic\" into rvc-dev am: 2e717a0265 am: f1f80ac900 am: e45c47ca1d am: 327b2dd7bb\n\nChange-Id: I7b64b7b8347f11dba3fe39e2b2c8afabee3c5cf2\n"
    },
    {
      "commit": "2e717a0265d6b95094946fb5ca41035019fa9716",
      "tree": "a6b431d6066a92be07956c3d8808680ed1b856c7",
      "parents": [
        "65328604dedbb0c01937efa0e831e62a191869f8",
        "85732f4121889191410448cfc19c336e0ea69285"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 07 01:15:26 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 07 01:15:26 2020 +0000"
      },
      "message": "Merge \"audio policy: fix mmap stream invalidation logic\" into rvc-dev"
    },
    {
      "commit": "0530fa71b35120bc35950e7336466fec846296b2",
      "tree": "8ac37e2d53d99be32fbe6761977a5fbbe1e27ef2",
      "parents": [
        "1864510be34a1efc927f6687d470b211aa2ee099",
        "aa44687be83d4bcf0803e3952381605e893f7dbd"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Fri Apr 03 05:57:22 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Apr 03 05:57:22 2020 +0000"
      },
      "message": "Keep the death recipient alive am: 95ec1b8ea4 am: 0c25f72779 am: d3a6e6fc5e am: aa44687be8\n\nChange-Id: I9f91daff364733732f117b54134ebf861b139cae\n"
    },
    {
      "commit": "95ec1b8ea487abbf4ef50d53c227338f559e9599",
      "tree": "59fbb841d724d8012ae7b46e9b9c58c77760dbb5",
      "parents": [
        "944e25516ee01715c74e4e65a2d69ef5b7398d06"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Thu Apr 02 18:08:36 2020 -0700"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Thu Apr 02 19:34:08 2020 -0700"
      },
      "message": "Keep the death recipient alive\n\nBinder doesn\u0027t hold on to the death recipient.\nThis caused audio server to miss notifications about system server\ndeath.\n\nFixes: 153080001\nTest: Manual verification of killing the system process.\nChange-Id: Iad1b2d4c5348d3d9917efc6838e86b736fa33094\n"
    },
    {
      "commit": "85093d5efc28216f8e091f5163092b2a800f8773",
      "tree": "eaab1d0d25dd312af33eee8d6b062e2c19437efe",
      "parents": [
        "987d12c425ba681fb93af150ccb537eac8c683fa"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Thu Mar 26 09:41:15 2020 -0700"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Wed Apr 01 09:59:50 2020 -0700"
      },
      "message": "Invert how sound trigger capture is notified\n\nPreviously, audio policy client would call an method on the sound\ntrigger middleware service. This has been replaced by the sound\ntrigger service registering a callback, in order to avoid a cyclic\ndependency between the services.\n\nBug: 146157104\nMerged-In: I876461a7650d337d6dd05fbe80efaf08f8ef20dd\nChange-Id: Ia8f674d7dd50f6dcdd6595bcbadec2f25fdb3561\n"
    },
    {
      "commit": "987d12c425ba681fb93af150ccb537eac8c683fa",
      "tree": "c4eb387678f39425bd49a219cce9981c8ea46720",
      "parents": [
        "f698ff2d177d62a714d452ce63430606738a4190"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Tue Mar 24 17:35:44 2020 -0700"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Wed Apr 01 09:59:43 2020 -0700"
      },
      "message": "Introduce CaptureStateNotifier\n\nThis is a helper class for notifying a client of capture\nstate changes.\n\nBug: 146157104\nTest: Compiles (further testing as part of the topic).\nMerged-In: Ie27bc404805d319a6969290a6369d59fb68c1f38\nChange-Id: I2902468c4692ba68e4bc9be0e5038d5505da7154\n"
    },
    {
      "commit": "1ef846b2d6850621f77f74ad024fb11fdc8bbee4",
      "tree": "42fba4ae8410848725cdcc456514a817ab161cd4",
      "parents": [
        "e3b67fb179dc36582f27ca442d00c553ec4c2556"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Thu Mar 26 09:41:15 2020 -0700"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Tue Mar 31 15:15:46 2020 -0700"
      },
      "message": "Invert how sound trigger capture is notified\n\nPreviously, audio policy client would call an method on the sound\ntrigger middleware service. This has been replaced by the sound\ntrigger service registering a callback, in order to avoid a cyclic\ndependency between the services.\n\nBug: 146157104\nChange-Id: I876461a7650d337d6dd05fbe80efaf08f8ef20dd\nMerged-In: I876461a7650d337d6dd05fbe80efaf08f8ef20dd\n"
    },
    {
      "commit": "e3b67fb179dc36582f27ca442d00c553ec4c2556",
      "tree": "178f4f55051eef164bc96b5ae7535239930cac78",
      "parents": [
        "6084f64b13c6e9b974896a3961728b46e0a6dfbf"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Tue Mar 24 17:35:44 2020 -0700"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Tue Mar 31 15:00:54 2020 -0700"
      },
      "message": "Introduce CaptureStateNotifier\n\nThis is a helper class for notifying a client of capture\nstate changes.\n\nBug: 146157104\nTest: Compiles (further testing as part of the topic).\nChange-Id: Ie27bc404805d319a6969290a6369d59fb68c1f38\nMerged-In: Ie27bc404805d319a6969290a6369d59fb68c1f38\n"
    },
    {
      "commit": "6c63ced46d7919aa4dc9facd08c2bae6cd66e6ca",
      "tree": "3656deb91913d550e8e25bbf00ee8fbe6488a674",
      "parents": [
        "9b42926cbac917f80be0e626d1fd50cd8e8e8d47",
        "23597d8d6a91ab12c53efb5adb50f2f572d2ff4e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 31 06:01:42 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Mar 31 06:01:42 2020 +0000"
      },
      "message": "Merge \"Allow DEFAULT_INPUT_METHOD to capture audio during RTT call\" into rvc-dev am: e2074d7b4f am: e1aaf52bbd am: ca072af1e3 am: 23597d8d6a\n\nChange-Id: I532268ededa872440de47c8ac74a0879a61ced53\n"
    },
    {
      "commit": "a623a1350d58a0648d6f57829887b04c04ba6782",
      "tree": "bac00f33a30c4f426120836cee511de1bef9d881",
      "parents": [
        "0bf91a9596eba0c4ea2217506370f0f21655e740"
      ],
      "author": {
        "name": "Kohsuke Yatoh",
        "email": "kyatoh@google.com",
        "time": "Tue Mar 24 20:10:26 2020 -0700"
      },
      "committer": {
        "name": "Kohsuke Yatoh",
        "email": "kyatoh@google.com",
        "time": "Mon Mar 30 21:44:46 2020 +0000"
      },
      "message": "Allow DEFAULT_INPUT_METHOD to capture audio during RTT call\n\nThe UID of the current InputMethodService (DEFAULT_INPUT_METHOD) is\npushed from AudioService to AudioPolicyService via AudioSystem.\nAllow capture audio if:\n- the UID is the current InputMethodService\u0027s UID,\n- AND a RTT call is active,\n- AND the source is AUDIO_SOURCE_VOICE_RECOGNITION.\n\nBug: 147037345\nTest: use voice input with Gboard 9.1.4 during a simulated RTT call.\nChange-Id: Ib32ec25e962833eddd0320742e177e3c1e0e5c05\n"
    },
    {
      "commit": "469c02d3af590abc3af9b2f09213b82033ccc81f",
      "tree": "da86d8433115f8be0aea1d88b933b085f77a4f08",
      "parents": [
        "4445ad22c811aa59b86058b9a6f12fa97dff160d",
        "ce9f217c09cec93ac2fd1279d8194fd1f59d14bc"
      ],
      "author": {
        "name": "Paul Mclean",
        "email": "pmclean@google.com",
        "time": "Mon Mar 30 19:53:41 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 30 19:53:41 2020 +0000"
      },
      "message": "Merge \"Check input parameters to avoid a potential divide-by-zero error.\""
    },
    {
      "commit": "1cb0a63dd903b8548685a99eb4d544890e1fd78f",
      "tree": "e10cbe626fe00665539266f21703fd5a122369d0",
      "parents": [
        "4a23235ad6a7a963982888da882f5292ce30e0b3",
        "242a9f8db150d0fe94c9cb95dde768edaa649a1c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 26 19:16:55 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 26 19:16:55 2020 +0000"
      },
      "message": "Merge changes I5e12b2c7,Ic79effb1 into rvc-dev\n\n* changes:\n  [audiopolicy][managerdefault] Filter unknown stream for volume settings\n  [AudioPolicy][engine][Strategy] fallback on music stream\n"
    },
    {
      "commit": "07b846f69ad071c930e61cbe3817d5b0a73831fe",
      "tree": "42bc469402ca37bd592652251485d0714b94c532",
      "parents": [
        "5b615f346d5ba51d2b3923997e755d3dd590db2d",
        "0ec4c815ac927c4dbd76e1df4761425d771de427"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 26 11:13:14 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Mar 26 11:13:14 2020 +0000"
      },
      "message": "Merge \"APM: Notify the client about new audio ports\" am: 272808c329 am: 0ec4c815ac\n\nChange-Id: I9928116b708a496d29aabf382553e98499335b84\n"
    },
    {
      "commit": "0ec4c815ac927c4dbd76e1df4761425d771de427",
      "tree": "687399b671582aa80caf35a37bbdc1518aa1f15c",
      "parents": [
        "a093f06459bcf7ebc9f73783acab06b1eb2f0c51",
        "272808c329b808adee88d4f1d715b9e209236bff"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 26 10:58:49 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Mar 26 10:58:49 2020 +0000"
      },
      "message": "Merge \"APM: Notify the client about new audio ports\" am: 272808c329\n\nChange-Id: I978e68758ab051dd16354054e9743dc98378dd26\n"
    },
    {
      "commit": "272808c329b808adee88d4f1d715b9e209236bff",
      "tree": "dcc1a2264c4c4b96e79332b91a267c105e6fa728",
      "parents": [
        "1d0e52cf31987ec3f91d46caed992971047ae068",
        "a30ec1468fc8c3779673bb91a338956f26b5d807"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 26 10:47:01 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 26 10:47:01 2020 +0000"
      },
      "message": "Merge \"APM: Notify the client about new audio ports\""
    },
    {
      "commit": "dbad2e30cc7e45f2e8eb7131aac4c225acaaf1e9",
      "tree": "57286f507311fcde3e3ad6fd82eb1f01c6efd786",
      "parents": [
        "2977fa7730a89d1673946ee39c3ecc65e95368b6",
        "dcd133194e05e73a5818059cb78208304e2ea04f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 26 04:18:27 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Mar 26 04:18:27 2020 +0000"
      },
      "message": "Merge \"APM: Notify the client about new audio ports\" into rvc-dev am: 7bb5d6abf9 am: 5ba2d37681 am: 7d95f4cd67 am: dcd133194e\n\nChange-Id: If9492d2478eb4f2ae34ad3bab63617ca9baf8c8b\n"
    },
    {
      "commit": "7d95f4cd6795abd7ab6087dbde1823c55f6043c2",
      "tree": "fca7db7c83882122eef4e4bd20a88e33309bd342",
      "parents": [
        "dc6f8cb9fb4ec7a5b6a564f6d7c2218c9fb9027f",
        "5ba2d376819611eff80f69628737d2e91b06ed72"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 26 03:51:27 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Mar 26 03:51:27 2020 +0000"
      },
      "message": "Merge \"APM: Notify the client about new audio ports\" into rvc-dev am: 7bb5d6abf9 am: 5ba2d37681\n\nChange-Id: I60bca6c697727b3654c65405c72fc8a8e6b66447\n"
    },
    {
      "commit": "a30ec1468fc8c3779673bb91a338956f26b5d807",
      "tree": "6b42f2d3e4da6be2f8b594bfbeee8991847a854e",
      "parents": [
        "bc0f22e33fa5adc5a8873489a5270ba93f94b5a1"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Mar 24 09:32:34 2020 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Mar 25 20:22:26 2020 -0700"
      },
      "message": "APM: Notify the client about new audio ports\n\nAdded missing notification to the APM client\nabout new audio ports. This should make the\nports provided by the newly discovered HAL\nto be available to apps.\n\nProcess the onNewAudioModulesAvailable notification\non the \"APM Output\" command thread to avoid clashing\nwith outgoing commands from APM during module\ninitialization.\n\nBug: 149854039\nTest: atest audiopolicy_tests\nChange-Id: I3fede7f5a04419b15e15476d8b5ac7dc6d63c98d\nMerged-In: I3fede7f5a04419b15e15476d8b5ac7dc6d63c98d\n"
    },
    {
      "commit": "7bb5d6abf90125a7eacdd98f1201a694258f9bea",
      "tree": "0cb0bc1d4e01ce78aa4671f7a856f755ecb55bc4",
      "parents": [
        "e3ccb65e2d1f2d99537de0cbf4ce24271a6f7fd1",
        "d0e2c74984f7542cc154a899190bda100ef38671"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 26 03:15:34 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 26 03:15:34 2020 +0000"
      },
      "message": "Merge \"APM: Notify the client about new audio ports\" into rvc-dev"
    },
    {
      "commit": "df9b330f3f0d64962832ec445bbecbd4849d238b",
      "tree": "8ffaec75c099308019654581cc831d3806040d43",
      "parents": [
        "18f0495e723bc7edb8ef0c1abe96876a2f57152c",
        "7c1d7fd0420f189cecef5c605e349a4c90f88d87"
      ],
      "author": {
        "name": "Hui Yu",
        "email": "huiyu@google.com",
        "time": "Thu Mar 26 01:21:51 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Mar 26 01:21:51 2020 +0000"
      },
      "message": "Merge \"Add isUidActiveOrForeground() for camera/audio to use.\" into rvc-dev am: 5a280ea723 am: fa925f944b am: 8f7a45a9b2 am: e6fce4ef69 am: 7c1d7fd042\n\nChange-Id: I0ab2cab6980640d9f667816da1f91c698319c552\n"
    },
    {
      "commit": "7c1d7fd0420f189cecef5c605e349a4c90f88d87",
      "tree": "0f2ffbf4971db67901d04a7831699b0380aff8db",
      "parents": [
        "6fd3caa0241633de38c9941734fee857cab8fe25",
        "e6fce4ef6902f462a25ac40ed18069ad795db8b8"
      ],
      "author": {
        "name": "Hui Yu",
        "email": "huiyu@google.com",
        "time": "Thu Mar 26 00:54:43 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Mar 26 00:54:43 2020 +0000"
      },
      "message": "Merge \"Add isUidActiveOrForeground() for camera/audio to use.\" into rvc-dev am: 5a280ea723 am: fa925f944b am: 8f7a45a9b2 am: e6fce4ef69\n\nChange-Id: I8f3cf8bb97dc9d2ad2d82f1421e9023b4e32a83c\n"
    },
    {
      "commit": "dd21ba4ff3e8e07af8b33f87a54b464048a3f811",
      "tree": "0f2ffbf4971db67901d04a7831699b0380aff8db",
      "parents": [
        "95bd4775ff6f08aa8f88f053bace29c17157208d",
        "fa925f944b0355004c81276a87ccd9fce6b7f7e0"
      ],
      "author": {
        "name": "Hui Yu",
        "email": "huiyu@google.com",
        "time": "Thu Mar 26 00:17:37 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Mar 26 00:17:37 2020 +0000"
      },
      "message": "Merge \"Add isUidActiveOrForeground() for camera/audio to use.\" into rvc-dev am: 5a280ea723 am: fa925f944b\n\nChange-Id: I84a8b2fb5c645f57697ce1459aba186a9f2bc2bc\n"
    },
    {
      "commit": "d0e2c74984f7542cc154a899190bda100ef38671",
      "tree": "ee96ed7f289021026ab9bf29b252cad3240c0c3d",
      "parents": [
        "3006a83565b6863f247bf634faa929b84608026e"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Mar 25 15:59:59 2020 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Mar 25 17:04:49 2020 -0700"
      },
      "message": "APM: Notify the client about new audio ports\n\nAdded missing notification to the APM client\nabout new audio ports. This should make the\nports provided by the newly discovered HAL\nto be available to apps.\n\nProcess the onNewAudioModulesAvailable notification\non the \"APM Output\" command thread to avoid clashing\nwith outgoing commands from APM during module\ninitialization.\n\nBug: 149854039\nTest: atest audiopolicy_tests\nChange-Id: I3fede7f5a04419b15e15476d8b5ac7dc6d63c98d\n"
    },
    {
      "commit": "5a280ea72324ff62472c619c39dd955bd3bcd7d3",
      "tree": "de45b40602dc5fdbe03c245bda68f5aef4737f53",
      "parents": [
        "322300408f13880ff9f1d758a645869e7d19b60e",
        "ffffffc42242cf06c433e4e4958d7991a7e2848c"
      ],
      "author": {
        "name": "Hui Yu",
        "email": "huiyu@google.com",
        "time": "Wed Mar 25 23:47:51 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 25 23:47:51 2020 +0000"
      },
      "message": "Merge \"Add isUidActiveOrForeground() for camera/audio to use.\" into rvc-dev"
    },
    {
      "commit": "242a9f8db150d0fe94c9cb95dde768edaa649a1c",
      "tree": "c2239970a597d68f9cc03863805a7b54287b9108",
      "parents": [
        "fd5779fa71d1a2fcb9f9e57e7e46137cefb65f5c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 23 15:57:04 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 25 11:59:05 2020 -0700"
      },
      "message": "[audiopolicy][managerdefault] Filter unknown stream for volume settings\n\nStream for which no attributes is associated (aka no strategy supports it)\nwill use default attributes hence it will change the default strategy\nvolume (aka Music).\nIt leads to eroneous volume changes.\nThis bug does not happen on phone / tablets targets as all streams are\nlinked to a strategy with specifc attributes.\nIn case of OEM configuration, some stream types may not be supported\nand associated to any strategy.\n\nBug: 136121584\nTest: dumpsys audio \u0026 dumpsus media.audio_policy.\n    Ensure volumes of stream types and their aliases match.\n\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: I5e12b2c7248074d10affb6c28d1866d4589cb9e8\nMerged-In: I5e12b2c7248074d10affb6c28d1866d4589cb9e8\n"
    },
    {
      "commit": "fd5779fa71d1a2fcb9f9e57e7e46137cefb65f5c",
      "tree": "6e62a0be5c936e32081b7288802c4e823b92200b",
      "parents": [
        "e8ca692b95846034bb3edbde60eecaa9a28a2d24"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 23 15:50:02 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 25 11:59:05 2020 -0700"
      },
      "message": "[AudioPolicy][engine][Strategy] fallback on music stream\n\nIf a strategy matches a attributes, whatever a stream type has\nbeen provided, the MUSIC stream type shall be returned as a fallback\nto ensure AudioFlinger will apply the right gain to the right stream\n(which always fallback as music if none is provided)\n\nBug: 136121584\nTest: build \u0026 run cts-dev -m CtsMediaTestCase --test android.media.cts.AudioProductStrategyTest\nrun cts-dev -m CtsMediaTestCase --test android.media.cts.AudioVolumeGroupTest\nrun cts-dev -m CtsMediaTestCase --test android.media.cts.AudioVolumeGroupChangeHandlerTest\nrun cts-dev -m CtsMediaTestCase --test android.media.cts.AudioManagerTest#testPermissionsForVolumePerAttributes\nrun cts-dev -m CtsMediaTestCase --test android.media.cts.AudioManagerTest#testGetAndValidateProductStrategies\nrun cts-dev -m CtsMediaTestCase --test android.media.cts.AudioManagerTest#testGetAndValidateVolumeGroups\nrun cts-dev -m CtsMediaTestCase --test android.media.cts.AudioManagerTest#testSetGetVolumePerAttributesWithInvalidAttributes\nrun cts-dev -m CtsMediaTestCase --test android.media.cts.AudioManagerTest#testSetGetVolumePerAttributes\nrun cts-dev -m CtsMediaTestCase --test android.media.cts.AudioManagerTest#testVolumeGroupCallback\n\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: Ic79effb1341b788d90f5d73d23ae92b983f17225\nMerged-In: Ic79effb1341b788d90f5d73d23ae92b983f17225\n"
    },
    {
      "commit": "ffffffc42242cf06c433e4e4958d7991a7e2848c",
      "tree": "d2ef2ad6334135cd2fde6ae172e163623739da0c",
      "parents": [
        "1939a00071ce5dc757566c7af24a1f5589ea22f7"
      ],
      "author": {
        "name": "Hui Yu",
        "email": "huiyu@google.com",
        "time": "Tue Mar 24 16:13:59 2020 -0700"
      },
      "committer": {
        "name": "Hui Yu",
        "email": "huiyu@google.com",
        "time": "Tue Mar 24 18:22:49 2020 -0700"
      },
      "message": "Add isUidActiveOrForeground() for camera/audio to use.\n\nWhen start/resume activity, WindowManagerService start/resume the\nactivity, then post a runnable to DiaplayThread and\nActivityManagerService to update UidRecord\u0027s\nproc state, because the thread switch, the latency before proc\nstate update is undetermined.\n\nWhen CameraService calls ActivityManagerService.isUidActive(), the proc\nstate may not have been updated and camera access is denied.\n\nisUidActiveOrForeground() will check isUidActive() first, if false,\ncheck isUidForeground() which is actually to check with WindowManagerService if\nthe uid is foreground, which is equivalent to ActivityManagerService\u0027s uid\nactive, just updated earlier.\n\nBug: 151185692, 151777097, 109950150\nTest: manual test.\nChange-Id: I3685e0c8d2e69ca7ff3c4de4bef4ec754c400015\n"
    },
    {
      "commit": "fff2ea98e95dc376ee638161a84654a43cbac15c",
      "tree": "bf99140de522520d439e2ebb52334b6822969956",
      "parents": [
        "dd1a25309802d4e8c181ba6268144aa864845f61",
        "8ad7bb9a89016a307ccb82841261e9bbdb5c874d"
      ],
      "author": {
        "name": "Ricardo Correa",
        "email": "rgcorrea@google.com",
        "time": "Tue Mar 24 17:31:05 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Mar 24 17:31:05 2020 +0000"
      },
      "message": "Merge \"Revert \"Allow call audio access for default dialer application\"\" into rvc-dev am: bb044fc8c8 am: a3accf7375 am: 44272be68e am: 8ad7bb9a89\n\nChange-Id: Ia851ff25fa609c161a4d029bd7069d701a6523a3\n"
    },
    {
      "commit": "44272be68ed5af3db4866c7bc85954a07c03012e",
      "tree": "437f8a6894e56c8ba7afea96a8bf02a9ae1db8d0",
      "parents": [
        "d599f60567ecccfa70cce4d441a2560870356277",
        "a3accf73756ca19fc8af05e5464af2e85e7dbbe3"
      ],
      "author": {
        "name": "Ricardo Correa",
        "email": "rgcorrea@google.com",
        "time": "Tue Mar 24 16:56:09 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Mar 24 16:56:09 2020 +0000"
      },
      "message": "Merge \"Revert \"Allow call audio access for default dialer application\"\" into rvc-dev am: bb044fc8c8 am: a3accf7375\n\nChange-Id: I78d65d319baf3169e969364e3b966f9a2645e2c3\n"
    },
    {
      "commit": "57a3769fb12dc8b2df457e0919850bd976716706",
      "tree": "f170ceb064b6be5d9443af5f2f95ac55c612c270",
      "parents": [
        "3006a83565b6863f247bf634faa929b84608026e"
      ],
      "author": {
        "name": "Ricardo Correa",
        "email": "rgcorrea@google.com",
        "time": "Mon Mar 23 17:27:25 2020 -0700"
      },
      "committer": {
        "name": "Ricardo Correa",
        "email": "rgcorrea@google.com",
        "time": "Tue Mar 24 16:20:36 2020 +0000"
      },
      "message": "Revert \"Allow call audio access for default dialer application\"\n\nThis reverts commit ac26cf749f457e12a3d8d7456bbcd58a3e028d69.\n\nReason for revert: Feature has been postponed\nBug: 151761909\n\nChange-Id: I90a977a23c5b97ddf95976cf2c4d517165f8e8c2\n"
    },
    {
      "commit": "6b9a639aa86cbccb488c4b27d34ece12e89af459",
      "tree": "f27cebd602d834609f90c6c14d2507ce0df011d1",
      "parents": [
        "1aa6feb6dd236c8ed6566570700d7a7d37270238",
        "5605cb2d6952da14f32c2bb234913bd337e917fd"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 16:58:56 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 23 16:58:56 2020 +0000"
      },
      "message": "Merge \"Convert libaudiopolicyservice from Android.mk to Android.bp\""
    },
    {
      "commit": "2ab4d5201c53d8b4d4b2f5765755d1906bf69f85",
      "tree": "4ca029cffcfb726e97e4ab5a49b85d14b9e624a1",
      "parents": [
        "7d46f4180fdbb8e8c7d9687f69bba2df47aedb74",
        "bf664f0351baf786e9d7f4ad8b7f0db49310840e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 21 03:30:31 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Mar 21 03:30:31 2020 +0000"
      },
      "message": "Merge changes I5e12b2c7,Ic79effb1 am: 0141bbe644 am: ae36a0b59b am: c8566c6bb2 am: 7a9ce9e54e am: bf664f0351\n\nChange-Id: Ie71e9ad0d50c4a1406029a46a1fee1d3a5967cef\n"
    },
    {
      "commit": "d6bd328e22c932348a35c46d6fd4c845a1d414b5",
      "tree": "cf3bf4b06123f4f532f250c54fa4a4f3f191830e",
      "parents": [
        "79270b9121b3c2972a281b42860f853e39663692",
        "ae36a0b59be8af2bd7100a9e3e4433daca7a7a69"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 21 02:41:13 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Mar 21 02:41:13 2020 +0000"
      },
      "message": "Merge changes I5e12b2c7,Ic79effb1 am: 0141bbe644 am: ae36a0b59b\n\nChange-Id: I1ed7d32d85e20cccb461d2f2e7acf1efca7d2539\n"
    },
    {
      "commit": "c8566c6bb2771b838d3f0a8240b68732a8e40247",
      "tree": "0c0245f2a395a13843eec2ad4d144c503daf7fdb",
      "parents": [
        "c4f3d646a2545177d3f13993071f264607de8b49",
        "ae36a0b59be8af2bd7100a9e3e4433daca7a7a69"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 21 02:41:09 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Mar 21 02:41:09 2020 +0000"
      },
      "message": "Merge changes I5e12b2c7,Ic79effb1 am: 0141bbe644 am: ae36a0b59b\n\nChange-Id: Ic7fbb59e522a52a03669222882557ad959a9f3fd\n"
    },
    {
      "commit": "ae36a0b59be8af2bd7100a9e3e4433daca7a7a69",
      "tree": "f1b64173fdf992a3af4e209aaede73f51fda7e65",
      "parents": [
        "916c6b14ebb05ecdc0a27b4794226dca53001c15",
        "0141bbe644288f980b4448c430e73ff8b5ea9a30"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 21 02:20:05 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Mar 21 02:20:05 2020 +0000"
      },
      "message": "Merge changes I5e12b2c7,Ic79effb1 am: 0141bbe644\n\nChange-Id: I67e68d4b55b6cea51182ba62a549e74f1c89bdbb\n"
    },
    {
      "commit": "5605cb2d6952da14f32c2bb234913bd337e917fd",
      "tree": "6e4ace9bc1ba0f82c975b86aea989d004a244ac7",
      "parents": [
        "796e3afcea6c1e421a808eb543e5bb97106387d9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 13 17:19:59 2020 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 20 15:34:37 2020 -0700"
      },
      "message": "Convert libaudiopolicyservice from Android.mk to Android.bp\n\nTest: builds OK\nChange-Id: I65da44493079443f1016288842d6d77e6190a7ce\n"
    },
    {
      "commit": "7a6f117bc2d2758b5bee98865e2d97a233b70674",
      "tree": "6b2202efac1dd516509d36ecc7257266d740f0db",
      "parents": [
        "5873588a02a96a78bbbe2132fa48b3cea2d6a1ad",
        "796e3afcea6c1e421a808eb543e5bb97106387d9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 20 21:31:16 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 20 21:31:16 2020 +0000"
      },
      "message": "Merge \"Convert libaudiopolicymanager from Android.mk to Android.bp\""
    },
    {
      "commit": "5992b18e6196af182c549b9c73d805cbc11bb31a",
      "tree": "dc7aebb76fbce56e90b3d521b0618980a6d36af3",
      "parents": [
        "a69a879deb6523416ef882e4d4d4134ffc786fc5"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Fri Mar 20 14:55:14 2020 +0100"
      },
      "committer": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Fri Mar 20 15:03:01 2020 +0100"
      },
      "message": "[audiopolicy][managerdefault] Filter unknown stream for volume settings\n\nStream for which no attributes is associated (aka no strategy supports it)\nwill use default attributes hence it will change the default strategy\nvolume (aka Music).\nIt leads to eroneous volume changes.\nThis bug does not happen on phone / tablets targets as all streams are\nlinked to a strategy with specifc attributes.\nIn case of OEM configuration, some stream types may not be supported\nand associated to any strategy.\n\nTest: dumpsys audio \u0026 dumpsus media.audio_policy.\n    Ensure volumes of stream types and their aliases match.\n\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: I5e12b2c7248074d10affb6c28d1866d4589cb9e8\n"
    },
    {
      "commit": "85732f4121889191410448cfc19c336e0ea69285",
      "tree": "95f34d584a0ad4a2695b67ef7de733a5825b357f",
      "parents": [
        "f57740fc311c80bc7e62fde8b03b4f8f4d34ccda"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 19 11:31:10 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 19 17:49:51 2020 -0700"
      },
      "message": "audio policy: fix mmap stream invalidation logic\n\nImplement a MMAP stream invalidation logic consistent with AAudio\ndisconnect callback policy.\n\n- When a MMAP stream is opened with a preferred device selection:\n  Invalidate the stream only when the preferred device becomes unavailable,\n  either because disconnected or not selectable by highest priority use case.\n- When a MMAP stream is opened without explicit device selection:\n  Invalidate the stream when current device selection changes due to the\n  routing rules applicable to the stream\u0027s audio attributes (attributes\n  of first client on that stream).\n\nBug: 144020984\nTest: OboeTester \u003e TEST DISCONNECT\n\nChange-Id: I70fde0bc8ab9d544b8d3badb713e6239d792cbdb\n"
    },
    {
      "commit": "a69a879deb6523416ef882e4d4d4134ffc786fc5",
      "tree": "9a0e7efa2309f6cd0a82f86e4c7a268cc5c2ef4f",
      "parents": [
        "5995f2146016068b5619445b2f93372f12b5be51"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Wed Feb 26 13:20:52 2020 +0100"
      },
      "committer": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Thu Mar 19 08:42:48 2020 +0100"
      },
      "message": "[AudioPolicy][engine][Strategy] fallback on music stream\n\nIf a strategy matches a attributes, whatever a stream type has\nbeen provided, the MUSIC stream type shall be returned as a fallback\nto ensure AudioFlinger will apply the right gain to the right stream\n(which always fallback as music if none is provided)\n\nTest: build \u0026 run cts-dev -m CtsMediaTestCase --test android.media.cts.AudioProductStrategyTest\nrun cts-dev -m CtsMediaTestCase --test android.media.cts.AudioVolumeGroupTest\nrun cts-dev -m CtsMediaTestCase --test android.media.cts.AudioVolumeGroupChangeHandlerTest\nrun cts-dev -m CtsMediaTestCase --test android.media.cts.AudioManagerTest#testPermissionsForVolumePerAttributes\nrun cts-dev -m CtsMediaTestCase --test android.media.cts.AudioManagerTest#testGetAndValidateProductStrategies\nrun cts-dev -m CtsMediaTestCase --test android.media.cts.AudioManagerTest#testGetAndValidateVolumeGroups\nrun cts-dev -m CtsMediaTestCase --test android.media.cts.AudioManagerTest#testSetGetVolumePerAttributesWithInvalidAttributes\nrun cts-dev -m CtsMediaTestCase --test android.media.cts.AudioManagerTest#testSetGetVolumePerAttributes\nrun cts-dev -m CtsMediaTestCase --test android.media.cts.AudioManagerTest#testVolumeGroupCallback\n\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: Ic79effb1341b788d90f5d73d23ae92b983f17225\n"
    },
    {
      "commit": "796e3afcea6c1e421a808eb543e5bb97106387d9",
      "tree": "317f7c91461e596401354e167c25a6da996f021b",
      "parents": [
        "287b54812feb9736bdc1bd0ba2d1eb7853febecc"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 13 17:18:39 2020 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 18 11:02:25 2020 -0700"
      },
      "message": "Convert libaudiopolicymanager from Android.mk to Android.bp\n\nAlso removes support for USE_CUSTOM_AUDIO_POLICY.\n\nBug: 132646811\nTest: builds OK\nChange-Id: I3e5eff547920322df3ada28a6220a0bd427d24c8\n"
    },
    {
      "commit": "f1dec13713381b1991b9bb8f1988605c9a41bc3c",
      "tree": "a149ed59585509462eb8f06f843a1df36fdf2b8e",
      "parents": [
        "ac2f85bf6b6b5443d1f98b1259beaf5ceda72e0d",
        "22452540c56dfa16b6dad176cddc312d9ba6664d"
      ],
      "author": {
        "name": "Jasmine Cha",
        "email": "chajasmine@google.com",
        "time": "Wed Mar 18 07:09:47 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Mar 18 07:09:47 2020 +0000"
      },
      "message": "audio policy: fix disordered sequence while changing device am: 7f82d1a74e am: 22452540c5\n\nChange-Id: I95fc728e8bb434ff51f495e29f174b682b4798fa\n"
    },
    {
      "commit": "8d386f779d76eb2a87ec570bf6ee3c0ce674085f",
      "tree": "23882c11fc70381e07df23e416d1eb101e1debdc",
      "parents": [
        "c7c50f47ce0998ea6d2ea5f40abc937fbde278e2",
        "7f82d1a74e77e0a89fd8431dbaf68f9b8e8b7118"
      ],
      "author": {
        "name": "Jasmine Cha",
        "email": "chajasmine@google.com",
        "time": "Wed Mar 18 06:51:02 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Mar 18 06:51:02 2020 +0000"
      },
      "message": "audio policy: fix disordered sequence while changing device am: 7f82d1a74e\n\nChange-Id: I8a46ba81d6055e097c7328a79e9d945ad83bda81\n"
    },
    {
      "commit": "7f82d1a74e77e0a89fd8431dbaf68f9b8e8b7118",
      "tree": "2bdca4c4ccac9de11c954108c71c6d2293c66be8",
      "parents": [
        "a5d212cfee978920684ad90f4b9bb3cfb3eeee8a"
      ],
      "author": {
        "name": "Jasmine Cha",
        "email": "chajasmine@google.com",
        "time": "Mon Mar 16 13:21:47 2020 +0800"
      },
      "committer": {
        "name": "Bubble Fang",
        "email": "bubblefang@google.com",
        "time": "Wed Mar 18 01:16:26 2020 +0000"
      },
      "message": "audio policy: fix disordered sequence while changing device\n\n  Disordered sequence will occur when delayMs of muting volume\n  and changing path are the same and no additional delay between\n  both commands (muteWaitMs \u003d\u003d 0).\n  Add half reported latency to delayMs for routing could avoid\n  processing muting stream volume and switching path concurrently.\n\nBug: 149798335\nTest: Make VoIP/voice call and switch device between handset/handsfree.\n      Check if touch tone is truncated in QXDM.\n\nSigned-off-by: Jasmine Cha \u003cchajasmine@google.com\u003e\nChange-Id: Ifa15ba9de330805637cfb20ee96c4293c1c1bd31\n"
    },
    {
      "commit": "76dc4a1ed945d9b985a4da0914a426cda563f2ad",
      "tree": "e2ba6d143c9b116300d09c8873d143c5c2712502",
      "parents": [
        "8570165f927b43188059a689cbad1353d19c560d",
        "49d7f6a78c46196da6c5b5f510a1b927b42f03f5"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Mar 13 19:01:45 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Mar 13 19:01:45 2020 +0000"
      },
      "message": "Merge \"audiopolicy: Remove global static initializers\" am: 676171dab3 am: 49d7f6a78c\n\nChange-Id: I53ec07ae30595a8620c49ef1fdf12eb9e0b62cd1\n"
    },
    {
      "commit": "80ae6b47137017c81d776f9d0e2e5849f96c41ac",
      "tree": "fa7c17eb93859b6008c156fbcdeb519a23ee7c0a",
      "parents": [
        "27c20f484c31ca66b84c43e1cdd09908b0d13c28"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Mar 10 13:15:08 2020 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Mar 13 15:51:54 2020 +0000"
      },
      "message": "audiopolicy: Remove global static initializers\n\nReplace global static instances of non-primitive\ntypes with function static instances. The latter\nget initialized on the first call to the function\ninstead of module load time.\n\nThis also gets rid of ASAN UAF errors reported\nduring unit test execution.\n\nBug: 150649241\nTest: atest audiopolicy_tests\nTest: atest audio_health_tests\n  (for ASAN-instrumented libraries and test)\nChange-Id: I514c9205b9d3e7a3f0a1d8aa71d71fcc792e7a7b\nMerged-In: I514c9205b9d3e7a3f0a1d8aa71d71fcc792e7a7b\n"
    },
    {
      "commit": "fa2ea8d036e6533bdf2116d0db0eb9b71cdd4c0d",
      "tree": "58e017b3391b075c98bd2f70b2728c68e4d28a04",
      "parents": [
        "aa22b0cd8e15c7a97836fcbb3a3f9a2a29c7f3f2",
        "f90036285d193c6903fe8c2ffc4b27ae40701c2d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 12 23:17:39 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 12 23:17:39 2020 +0000"
      },
      "message": "Merge \"audiopolicy: Remove global static initializers\" into rvc-dev"
    },
    {
      "commit": "db51e1f159df4cec37032b436ae6bce746c402c7",
      "tree": "85569a42f99c86375672193fbb7b65ec92d4acfc",
      "parents": [
        "45751ab3db77ae178433c74b8af4a5ea787175fe"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Mar 06 17:02:19 2020 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Mar 11 09:38:07 2020 -0700"
      },
      "message": "Plumb the notification about audio HAL services update to APM\n\nAudioFlinger registers a callback with libaudiohal to receive\nnotifications when new HAL services get registered. It relays\nthe notification to AudioPolicyManager via AudioSystem /\nIAudioPolicyService interface.\n\nBecause AF / APM only interact via Binder interfaces and APM\u0027s\ninterface gets registered later than AF\u0027s, the notification\nfrom AF is made asynchronous.\n\nBug: 149854039\nBug: 151187299\nTest: mmm hardware/interfaces/audio/core/all-versions/vts\n      audio test on a regular phone configuration\n      audio test on a phone with MSD audio HAL module\nChange-Id: I158e941b8f75e2a4614b9d84ca798b0f1f47aa6a\nMerged-In: I158e941b8f75e2a4614b9d84ca798b0f1f47aa6a\n"
    }
  ],
  "next": "560095bfbfb43586c416dbabc33077369293a596"
}
