)]}'
{
  "log": [
    {
      "commit": "6f44f305512f1a18508331e988fe8c07e416993d",
      "tree": "522c9221d569b99564916d9cbc7a9f554a9a7bca",
      "parents": [
        "7d9fcc55fe4bc133a5465306941aecc5f2e4629b",
        "cbf8ba955c3d0c95f15791a72b0e29fae873fd02"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 03 01:21:17 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Dec 03 01:21:17 2020 +0000"
      },
      "message": "Merge changes from topic \"aosp-hal-enum-strings\" am: 691ebfea2d am: cbf8ba955c\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1515660\n\nChange-Id: Id8ceeda379f65c445e48f92ffad450d7ffd61e88\n"
    },
    {
      "commit": "7d9fcc55fe4bc133a5465306941aecc5f2e4629b",
      "tree": "b7cf5883546d9ce77e72199383da4644efb7e8bd",
      "parents": [
        "9abebbaebcaaa09e98fd1d966289032406089521",
        "d9847734736729512b7621675835193e3767ea27"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Dec 03 01:21:15 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Dec 03 01:21:15 2020 +0000"
      },
      "message": "Fix buildCommonTypesStructureFile.py script am: be73c52729 am: d984773473\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1515659\n\nChange-Id: Icee17a7a174b6d4abd18b2ed523f48a23952ab12\n"
    },
    {
      "commit": "9abebbaebcaaa09e98fd1d966289032406089521",
      "tree": "7126439c267d64cdc59a062cdb7a040f2f28ec09",
      "parents": [
        "5ffb3ef0be0aff54df6b554e5c78c598c4a5ce55",
        "a69f0713ab8ae25a7323773c97dfe707c34acdda"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Dec 03 01:21:13 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Dec 03 01:21:13 2020 +0000"
      },
      "message": "Use system/audio to/from string converters in TypeConverter am: dc6be0d575 am: a69f0713ab\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1515658\n\nChange-Id: I7a32469c35e17c15bb5d147fcac930eef04c14ff\n"
    },
    {
      "commit": "46f16a9e7a3ced614ae5dfd6ac6e53e1971c7ce3",
      "tree": "2c4bcc8ae758fd636a042755cdd3915fcb1b3e79",
      "parents": [
        "be73c52729c8061cd86903007ab5483fd69f8175"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Sep 18 17:29:45 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Dec 01 23:42:06 2020 +0000"
      },
      "message": "Fix channel mask for the EARPIECE in example APM config\n\nEARPIECE is an output device, must have an output channel\nmask.\n\nBug: 142480271\nTest: N/A\nChange-Id: I676bc7222474f2d366bfb4edcd14b83381d68083\nMerged-In: I676bc7222474f2d366bfb4edcd14b83381d68083\n"
    },
    {
      "commit": "be73c52729c8061cd86903007ab5483fd69f8175",
      "tree": "a03c24135fa6e03660b2f5ca705ece0a4d787f27",
      "parents": [
        "dc6be0d5754e65ffa07fe8ef04ca4d28c2c0268b"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Nov 10 21:35:52 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Dec 01 23:41:03 2020 +0000"
      },
      "message": "Fix buildCommonTypesStructureFile.py script\n\nThe PFW script buildCommonTypesStructureFile.py got broken\nby the change which had moved many enums to audio-hal-enums.h\nheader. This change makes necessary adjustments to restore\nits functionality and preserve the generated PFW config file\ncontents.\n\nBug: 142480271\nBug: 172641529\nTest: m\nTest: atest libmedia_helper_tests\nTest: diff vendor/etc/parameter-framework contents for a device\nChange-Id: I15db2ce6bf9c408b96b6921a45093e2849826e24\nMerged-In: I15db2ce6bf9c408b96b6921a45093e2849826e24\n"
    },
    {
      "commit": "dc6be0d5754e65ffa07fe8ef04ca4d28c2c0268b",
      "tree": "33e22ce5f12c4b75414dfa242de2190ae0515091",
      "parents": [
        "d19faf826761db767dc8ee967149fe8939416850"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Sep 25 23:03:05 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Dec 01 23:39:39 2020 +0000"
      },
      "message": "Use system/audio to/from string converters in TypeConverter\n\nUse of system functions eliminates the need for listing all enum\nvalues in TypeConverter tables.\n\nSlight changes in the converting functions:\n\n1. \u0027channelMaskFromString\u0027 function now also accepts indexed\n   masks.\n2. Fixed UB in \u0027formatFromString\u0027 function.\n3. Removed \u0027deviceFromString\u0027 function, use\n   \u0027DeviceConverter::fromString\u0027 instead.\n\nReplaced direct includes of \u0027system/audio-base.h\u0027 with\nincludes of \u0027system/audio.h\u0027.\n\nBug: 142480271\nTest: m\nTest: atest libmedia_helper_tests\nChange-Id: Ia0e725026be80621bdc797299e63e134419b2b3d\nMerged-In: Ia0e725026be80621bdc797299e63e134419b2b3d\n"
    },
    {
      "commit": "1d9fbfd8a630c91c3f00b5abd0c6c18abd361eb8",
      "tree": "2df7afa58c8e58bc3ff046c9f18506c85f1eafac",
      "parents": [
        "8e654fb2bde447d96ffe40edf339fb12a83bafc7",
        "75f20e195a2c460162cc85f733dcbd6a6a3908c7"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 01 18:50:32 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Dec 01 18:50:32 2020 +0000"
      },
      "message": "Merge \"audio policy manager: fix BT SCO stream mute\" into rvc-qpr-dev am: 75f20e195a\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12820562\n\nChange-Id: Id8ac86ffcb91652ea570b1541704337b4b83af0d\n"
    },
    {
      "commit": "8e654fb2bde447d96ffe40edf339fb12a83bafc7",
      "tree": "63d1de06e932b7d5850a2dbe79b2a98e3f795d24",
      "parents": [
        "ef888a66e6fc1013af4b24fed98f48dfb462ef01",
        "c410c10dfa725baf4307312d6c8abd8af02df3c5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 01 18:08:52 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Dec 01 18:08:52 2020 +0000"
      },
      "message": "Merge \"Convert mask types from uint32_t to enum type\" am: 7cd031828f am: c410c10dfa\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1510515\n\nChange-Id: I90c3487ebb936f37eb92bf862205c9bdb5eb1d09\n"
    },
    {
      "commit": "e3b59ac285356dfe1bd416d46672fe0b1f10dc6f",
      "tree": "cc260c7b2867101599cdba75b53b4e0578c7345f",
      "parents": [
        "7aacb78d8d049af5e9949de9fc34be4650b5b176"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 01 15:08:13 2020 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Nov 24 22:56:29 2020 +0000"
      },
      "message": "Convert mask types from uint32_t to enum type\n\nThis applies to the following types:\n\n- audio_gain_mode_t;\n- audio_flags_mask_t;\n- audio_channel_representation_t;\n- audio_channel_mask_t;\n- audio_devices_t.\n\nEnum types are distinct thus proper overloading on the type\nis possible in C++. Also, assignments to enum types are\nless prone to errors.\n\nBug: 169889714\nTest: basic audio functionality\n      m stagefright\n      atest audiopolicy_tests\nChange-Id: I42506484b1d0b0482618b7314fad4c8012a06fb4\nMerged-In: I42506484b1d0b0482618b7314fad4c8012a06fb4\n"
    },
    {
      "commit": "55f23e06509010a2a6ace293b4c723c8bba40b33",
      "tree": "e22e9965055ee0f74b1edbc8238d808de89101f3",
      "parents": [
        "5e8c23fe504cda5b272ad80065a3c5fb359dbe74",
        "b466f2f8cccc71ffa4bf2e9d3369c980a8436101"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 23 20:18:44 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Nov 23 20:18:44 2020 +0000"
      },
      "message": "Merge \"HAL V7.0: Update example APM config files\" am: 7aacb78d8d am: b466f2f8cc\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1507587\n\nChange-Id: Idef4aac9d11960f0b5a621d8b528e6eaa7eb051d\n"
    },
    {
      "commit": "dd68139d0fcbbd8923cabbee4bb35df49900556a",
      "tree": "0e5cd5c06cd18c3a4f4a4aed414ce84e15fd8d30",
      "parents": [
        "fe4094eacee9c5e248b2d8ac87dff51b46a3d972"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Sep 24 22:23:06 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Sat Nov 21 01:12:40 2020 +0000"
      },
      "message": "HAL V7.0: Update example APM config files\n\nUse space delimiter for mixPort flags field.\n\nBug: 142480271\nTest: atest VtsHalAudioV7_0TargetTest\nChange-Id: I3eef9bf1e9bcc24a869355724aa333c1f93b4b31\nMerged-In: I3eef9bf1e9bcc24a869355724aa333c1f93b4b31\n"
    },
    {
      "commit": "226b8e657189db6601611e639473e97d1a2f8146",
      "tree": "dda1198c597d342c1d2d239540ad3c299f076593",
      "parents": [
        "337d387d8d3d759adc286a154074692076a04d87",
        "b04f29c95890fd96eedef2290da98a39009a08f0"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 20 21:09:08 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Nov 20 21:09:08 2020 +0000"
      },
      "message": "Merge changes from topic \"audio-hal-7\" am: aa2e608a99 am: b04f29c958\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1506615\n\nChange-Id: I8f9172e4fc55359015a55fa6d844f63237c785ee\n"
    },
    {
      "commit": "8448c4b30b45b04cb615e6114015bb34f1619da2",
      "tree": "9494cee51f448ab9b4d716e3b147efffea715a76",
      "parents": [
        "e1877efb7964bcb3be72e3ebea75505ca9c4a6e8"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Aug 14 20:43:06 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Nov 20 01:31:09 2020 +0000"
      },
      "message": "Add Audio Policy Manager config files for HAL V7.0\n\nIn Audio HAL V7.0 lists of sample rates and channel\nmasks are written in the XSD-compatible way using\nspace as delimiter (instead of comma).\n\nBug: 142480271\nTest: m\nChange-Id: I0e5a15d65974421443c00d4f0edaf0514a71673f\nMerged-In: I0e5a15d65974421443c00d4f0edaf0514a71673f\n"
    },
    {
      "commit": "9be089441122ce796038bf488e6f7241528525bc",
      "tree": "5623eb428fec0a0560f579315acb413bbb573668",
      "parents": [
        "388cf0ebfad4982fe27c71959acf1c9ac11653f8",
        "e37dec36cf51125e7cfae11c53c066a1aaded686"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 28 23:04:31 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Oct 28 23:04:31 2020 +0000"
      },
      "message": "Merge \"audiopolicy: HW Bridge Sink matching rule\" am: d68950bbc3 am: d7214629e1 am: e37dec36cf\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1439012\n\nChange-Id: I783e207093062d0e89655fb8db8d8528e9e1e17f\n"
    },
    {
      "commit": "4c34434aff546fd6c0414e6e6c658eac1784c59f",
      "tree": "1609e6f9deeeb26fac19ff19bb76fdd8adadad69",
      "parents": [
        "adec76d0eb5889bc6675069548df2ee156d59414"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Fri Sep 25 18:02:26 2020 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 28 18:28:43 2020 +0000"
      },
      "message": "audiopolicy: HW Bridge Sink matching rule\n\nIn order to use an HW Bridge, audio policy configuration file\nmust declare that a given sink may be reacheable from a given source\ndevice.\nThe declaration is made using the \"Tag Name\", which is a human readable\nname given to a device / mix Port.\n\nThis CL adds an equality operator based only on this tag name, which\nidentify uniquely the device port.\n\nThis CL manages also dynamic device cases, the tagName shall be assigned\nto all dynamically created device.\n\nTest: adb shell ./data/AudioPolicyEmulatorTests/AudioPolicyEmulatorTests --gtest_filter\u003d*VoiceCallBridgingTest*\n\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: I0fc6435dcc5f40634be5392dd92dcd2f377809c2\n"
    },
    {
      "commit": "3ea637c72fc519fd3e1d8eb8bd56c5b53122a1e7",
      "tree": "281967d765ac8260479b56730d3638598b80398c",
      "parents": [
        "5e710feacb9b8d8f7db1f4e15d2e9d2aac83da0e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Oct 12 17:10:23 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Oct 12 17:10:23 2020 -0700"
      },
      "message": "audio policy manager: fix BT SCO stream mute\n\nAllow setting voice and bluetooth SCO stream volume to 0\nin checkAndSetVolume() even when the selected device is\nbluetooth SCO to allow muting VoIP call downlink.\n\nBug: 170489272\nTest: repro steps in bug.\nChange-Id: If8b2d225742f9589cd21718d8a439531996434f9\n"
    },
    {
      "commit": "c56875f2eca1be6322cc56d22fc7d8e95a298a3f",
      "tree": "c7815d87fe139577da298073a18c449738c6dc41",
      "parents": [
        "346ea4a53844a1b2cb03a72599d9e4dd3ee2ecf3",
        "3d232f21110c3bb1b2d077ba8a96698303b5cba7"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Thu Oct 08 23:15:20 2020 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Thu Oct 08 23:15:20 2020 -0700"
      },
      "message": "Merge ab/6749736 in stage.\n\nBug: 167233921\nMerged-In: I869dc9ae03ddf2391bb1ee9c595cacd9c4bcc552\nChange-Id: I59223c2640cc074c3be60f02f310f9341be976e2\n"
    },
    {
      "commit": "88f8f94606933ec389ea50b07f5394622750819e",
      "tree": "03de782f4f7e84193c84ee6dcb8e8f5462e94f60",
      "parents": [
        "181438e955bac2e0137d991c468f583bdf3de153",
        "d127644025c5820e39a2908a249691284b4447d6"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Sep 11 13:09:19 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Sep 11 13:09:19 2020 +0000"
      },
      "message": "DO NOT MERGE Attribute SOURCE_HOTWORD to OP_RECORD_AUDIO_HOTWORD. am: d127644025\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12468978\n\nChange-Id: I3253b81c324ae91762a54533a2c1708c80026e8e\n"
    },
    {
      "commit": "ed3dca686bd7eac70200a0b068206615fc0f7288",
      "tree": "96ba30f7f36738482d869c1082a265cddea34f87",
      "parents": [
        "b197286f8c5e01c02e5a04d4e8332c8eca3fda5e",
        "d127644025c5820e39a2908a249691284b4447d6"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Sep 11 12:19:36 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 11 12:19:36 2020 +0000"
      },
      "message": "Merge \"DO NOT MERGE Attribute SOURCE_HOTWORD to OP_RECORD_AUDIO_HOTWORD.\" into rvc-qpr-dev"
    },
    {
      "commit": "85109f953b728cbd50b36c18c48e52ef71f3bb95",
      "tree": "0f822ade4b9c29f5295be9f18a51cc2ef0d9b9d5",
      "parents": [
        "ec0f0ec225b7f5a95b305f0c4a345acc78874633",
        "b197286f8c5e01c02e5a04d4e8332c8eca3fda5e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 10 15:52:31 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Sep 10 15:52:31 2020 +0000"
      },
      "message": "Merge \"audio policy: fix beacon mute delay\" into rvc-qpr-dev am: b197286f8c\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12383405\n\nChange-Id: I899bd7396e7e54aef461ef75f5d78c65c7b40b85\n"
    },
    {
      "commit": "b197286f8c5e01c02e5a04d4e8332c8eca3fda5e",
      "tree": "e84d3182bbb1eab2b1a7c63b2fdb4b21c7695627",
      "parents": [
        "5fc17f2fae4fd72e7695bc828200eb3b8202a754",
        "33897bac9744f10c126b9f44488d390b4de49331"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 10 15:17:07 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 10 15:17:07 2020 +0000"
      },
      "message": "Merge \"audio policy: fix beacon mute delay\" into rvc-qpr-dev"
    },
    {
      "commit": "ec0f0ec225b7f5a95b305f0c4a345acc78874633",
      "tree": "a4da22251dab4aee686d9217e626383376d7e692",
      "parents": [
        "acb4d9ca255eb027141f623d221d87fb30c9fc40",
        "3f185ad132f4dd2c4e31a06b69aec83aa44fcd39"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 09 17:16:19 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Sep 09 17:16:19 2020 +0000"
      },
      "message": "Merge \"Skip devices with multiple bits set.\" am: bd5bb90b4d am: 451a36a9a6 am: 77230bc934 am: 3f185ad132\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1421703\n\nChange-Id: I7205d741c7113277a52b922b777c208a9e3d6beb\n"
    },
    {
      "commit": "3f185ad132f4dd2c4e31a06b69aec83aa44fcd39",
      "tree": "27a7cd1cc44669e7deee1b9be06ff201c80492ba",
      "parents": [
        "8843cf96f564248d4e2b17c559dea377dce34d9c",
        "77230bc934f9646030640993fa3f0a0db4c9ca5e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 09 16:58:41 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Sep 09 16:58:41 2020 +0000"
      },
      "message": "Merge \"Skip devices with multiple bits set.\" am: bd5bb90b4d am: 451a36a9a6 am: 77230bc934\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1421703\n\nChange-Id: I4a44f3cbd6643acb970cf0797954699656b38f63\n"
    },
    {
      "commit": "77230bc934f9646030640993fa3f0a0db4c9ca5e",
      "tree": "2f64e10a0e25e11ec4cbec2997ca61757cdce0e5",
      "parents": [
        "c5c9086d323906f2bdd2d020910291044250081e",
        "451a36a9a67eb9cad6931b908736072c76d30ec2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 09 16:26:47 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Sep 09 16:26:47 2020 +0000"
      },
      "message": "Merge \"Skip devices with multiple bits set.\" am: bd5bb90b4d am: 451a36a9a6\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1421703\n\nChange-Id: Iad96bd32869ba3d798a185c82740684ead3349a8\n"
    },
    {
      "commit": "451a36a9a67eb9cad6931b908736072c76d30ec2",
      "tree": "41e1735a1a979a48cb51e05cd9ac8b165bdbecec",
      "parents": [
        "2cbbfa584a989ce07ac5fa31d8159f31848c9825",
        "bd5bb90b4d0032980a74849a798a52cba0f4a185"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 09 16:18:23 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Sep 09 16:18:23 2020 +0000"
      },
      "message": "Merge \"Skip devices with multiple bits set.\" am: bd5bb90b4d\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1421703\n\nChange-Id: Ic54c8dcf210e9b375e7fdce6444c7d882a1784d6\n"
    },
    {
      "commit": "e3c22e22cac4625e0b5e8052826cc06ec171c45a",
      "tree": "766e8d5c0e353b06334cd1d261f100c2df3774fd",
      "parents": [
        "8028dfb98b90cdb555fd615049165031aa319fb9"
      ],
      "author": {
        "name": "Hongguang Chen",
        "email": "hgchen@google.com",
        "time": "Tue Sep 08 13:22:56 2020 -0700"
      },
      "committer": {
        "name": "Hongguang Chen",
        "email": "hgchen@google.com",
        "time": "Tue Sep 08 22:24:02 2020 -0700"
      },
      "message": "Skip devices with multiple bits set.\n\naosp/1399204 added AUDIO_DEVICE_OUT_BLE_SPEAKER whose value is\n0x20000001. The buildCommonTypesStructureFile.py didn\u0027t cover that kind\nof values and it caused audioserver crashed.\n\nThis CL skips that kind of devices. A general solution (b/168065706)\nshould be addressed in the configurable audio policy and parameter\nframework.\n\nBUG: 167745916\nTest: Check PolicySubsystem-CommonTypes.xml and boot up device.\nChange-Id: Id802d37c18c4fd152a84a5a1579390b464c505f1\n"
    },
    {
      "commit": "3803ff3ec558396240f6133ecbb22d02b931d142",
      "tree": "5c2b9367155715e704d22f137a64d4a8a1f85905",
      "parents": [
        "9447b48f36b1bf26645e6256dd29224b6a398161",
        "e1f1cb5827a6c99d41e05e090b3b382f3598a58e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 08 20:17:33 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Sep 08 20:17:33 2020 +0000"
      },
      "message": "audio policy: correct force use touch sound delay am: e1f1cb5827\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12539419\n\nChange-Id: I7b8ecc463d043da5c9e479bf92a73654ba8f3ad7\n"
    },
    {
      "commit": "e1f1cb5827a6c99d41e05e090b3b382f3598a58e",
      "tree": "5a867b160cc351c30d777319aad5c3f5fc727eee",
      "parents": [
        "d1fa2375194096937bbdfd2def97969c4336191b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 21 12:50:41 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 08 18:25:21 2020 +0000"
      },
      "message": "audio policy: correct force use touch sound delay\n\nDo not apply the special delay added in setForceUse() multiple times.\nThis delay was meant to be applied only once to avoid truncating touch\nsounds but is actually used multiple times when updating routes on all\noutput streams, thus lengthening the call audio path switch time\nunnecessarily.\n\nBug: 163537547\nTest: manual call routing test\nChange-Id: I6fe15d4ed9b1f37452921585e9f7684637e8a30b\n(cherry picked from commit b36b4accf36ba413529a0b6735802a65f42c2f7c)\n"
    },
    {
      "commit": "9447b48f36b1bf26645e6256dd29224b6a398161",
      "tree": "62bc6e0895af051df03446dc2c5ecca8dd288d0f",
      "parents": [
        "37e93d1bc4df8b2d9682c48236bb4dae87d6dd1b",
        "d1fa2375194096937bbdfd2def97969c4336191b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 03 00:53:20 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Sep 03 00:53:20 2020 +0000"
      },
      "message": "Merge \"audio flinger: handle race condition in AudioRecord creation\" into rvc-qpr-dev am: d1fa237519\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12484593\n\nChange-Id: I5e330127a6ef2efe394b06524af5ae20f01a71bc\n"
    },
    {
      "commit": "d1fa2375194096937bbdfd2def97969c4336191b",
      "tree": "f2873c68b18cd34fec81208f8b5286c86b66985e",
      "parents": [
        "35238dd6585645018f7a7a8a32fdece432458ce7",
        "717bc28fc5959c0edb2bbd86692ba5164893f719"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 03 00:22:46 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 03 00:22:46 2020 +0000"
      },
      "message": "Merge \"audio flinger: handle race condition in AudioRecord creation\" into rvc-qpr-dev"
    },
    {
      "commit": "5294eb92f5e27c9872edcd6a449370a3bf5cd7aa",
      "tree": "789d0b6bdb31ea469f7d645b0194aab3e76a82f3",
      "parents": [
        "738f5ecdaea2af982ba00c4b974a33dbac8f7d0c",
        "35238dd6585645018f7a7a8a32fdece432458ce7"
      ],
      "author": {
        "name": "Hayden Gomes",
        "email": "haydengomes@google.com",
        "time": "Wed Sep 02 16:33:33 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Sep 02 16:33:33 2020 +0000"
      },
      "message": "Merge \"audio policy: fix concurrent capture policy for virtual sources\" into rvc-qpr-dev am: 35238dd658\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12196105\n\nChange-Id: I6029ece39734bea6bdcad7cc1ea5f2b2ab5e593a\n"
    },
    {
      "commit": "35238dd6585645018f7a7a8a32fdece432458ce7",
      "tree": "acebd01148680908072bb155c37217cf0aaad8e8",
      "parents": [
        "23d433f4a27a05dc89e558c06032b305ad0337f6",
        "55fd81d7e1011565e894a4530eb8693c824f45b4"
      ],
      "author": {
        "name": "Hayden Gomes",
        "email": "haydengomes@google.com",
        "time": "Wed Sep 02 15:55:30 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 02 15:55:30 2020 +0000"
      },
      "message": "Merge \"audio policy: fix concurrent capture policy for virtual sources\" into rvc-qpr-dev"
    },
    {
      "commit": "37e9654973cf0458a30805ef2180265e356e1987",
      "tree": "46ce02739a2899d0c4c1c356ec955d7242ea753b",
      "parents": [
        "ff30ed79d2c4715e355824980c4978c066ebf177",
        "4984eb5e21d5918e9195ccb3d9540ed155820ec6"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 01 21:31:21 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Sep 01 21:31:21 2020 +0000"
      },
      "message": "Merge \"Fix file permissions to remove execute bit on ordinary files\" am: 96a663b0ef am: 0e30ca6437 am: 4984eb5e21\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1416258\n\nChange-Id: Ibe802a15ab203d206d898ee4feb7d4a94037e5cf\n"
    },
    {
      "commit": "4984eb5e21d5918e9195ccb3d9540ed155820ec6",
      "tree": "313257662bcc66636d05c6a27e530a2ea72429f1",
      "parents": [
        "e75114727d73502257ef503451453c6f85ded175",
        "0e30ca64372f8e4dab5cbe3d2b0e326081c4fb2f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 01 20:22:55 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Sep 01 20:22:55 2020 +0000"
      },
      "message": "Merge \"Fix file permissions to remove execute bit on ordinary files\" am: 96a663b0ef am: 0e30ca6437\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1416258\n\nChange-Id: Idb94e55c869c66e18349e9ef7f1f02c87bb4ef9d\n"
    },
    {
      "commit": "4ffca8764be4b177cd08dfbd0705ad1e236709ce",
      "tree": "be2657e20b7222754d29d14d8f2f1fe309bffc62",
      "parents": [
        "0e30ca64372f8e4dab5cbe3d2b0e326081c4fb2f",
        "2e40c302d6117ec6eb65f25832a71488367b4dfb"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Sep 01 20:03:43 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 01 20:03:43 2020 +0000"
      },
      "message": "Merge \"Merge Android R (rvc-dev-plus-aosp-without-vendor@6692709)\" into stage-aosp-master"
    },
    {
      "commit": "58fb14aa84f41329fccc7185701ffbf502f77114",
      "tree": "6e40f2c53934ba0246207e8be722204106f0a5d7",
      "parents": [
        "579a5284be48aec4905160464716011cc7e89b9c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 31 12:13:12 2020 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 31 12:16:26 2020 -0700"
      },
      "message": "Fix file permissions to remove execute bit on ordinary files\n\nTest: N/A\nChange-Id: I9e85ebe5479ae7f021a69942630fc9c876d4116b\n"
    },
    {
      "commit": "2e40c302d6117ec6eb65f25832a71488367b4dfb",
      "tree": "ce2cff004a09076114faabf595b1a116bcb461ff",
      "parents": [
        "054de8d6440fd30238fa9330bcc038cda745b244",
        "924eccfd6f6d3aaed5db627a0bdcfcaaf9b09a18"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Aug 28 08:38:54 2020 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Aug 28 21:23:54 2020 -0700"
      },
      "message": "Merge Android R (rvc-dev-plus-aosp-without-vendor@6692709)\n\nBug: 166295507\nMerged-In: Ie94127c1e981cb18671d5137ba0d39355d1353da\nChange-Id: Ib22ad33bda8d561af537499b6d31ab6134eeae02\n"
    },
    {
      "commit": "717bc28fc5959c0edb2bbd86692ba5164893f719",
      "tree": "9f55d492e1032f4224dc3420345868cf8d613456",
      "parents": [
        "0b3f254028404b4772e02f9d1cdfcefba0e264b4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 21 17:10:39 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 28 22:51:36 2020 +0000"
      },
      "message": "audio flinger: handle race condition in AudioRecord creation\n\nA rare race condition can cause a failure to create an AudioRecord if\ntwo creation requests are processed concurrently and thread preemption happens\nat a specific time within the sequence between audioflinger and\naudio policy manager.\n\nThis CL implements a retry mechanism on client side when this particular failure\nis detected.\n\nBug: 161656190\nTest: Regression tests for audio capture use cases.\nTest: CTS tests for AudiRecord\nChange-Id: I155ee4899baeec21e10a1141cb9e323cbc8aa23b\n(cherry picked from commit d52a28ca2c19db7d10bc6c4639a8bd78e1afd5f1)\n"
    },
    {
      "commit": "d127644025c5820e39a2908a249691284b4447d6",
      "tree": "e249c7f931d01a69f44f0d42ef99617ed7cc58bc",
      "parents": [
        "0b3f254028404b4772e02f9d1cdfcefba0e264b4"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Aug 20 17:19:57 2020 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Aug 28 16:44:58 2020 +0100"
      },
      "message": "DO NOT MERGE Attribute SOURCE_HOTWORD to OP_RECORD_AUDIO_HOTWORD.\n\nWhenever we startRecording / finishRecording with a source\nof SOURCE_HOTWORD, attribute them to OP_RECORD_AUDIO_HOTWORD\ninstead of OP_RECORD_AUDIO. In either case, OP_RECORD_AUDIO\nis checked before the recording commences. Note that we also\ncheck that all recordings with SOURCE_HOTWORD are initiated\nby a uid that holds the privileged CAPTURE_AUDIO_HOTWORD\npermission.\n\nNote that this change will be superseded in the future once\nwe have stronger guarantees around hotword handling.\n\nBug: 162547999\nTest: manual with dumpsys appops on AGSA\n\nChange-Id: I70e0b652c357597770a18a5a385d62668a69059a\n"
    },
    {
      "commit": "ac71d9d2e53f58058228b1e20aac362dc847b16b",
      "tree": "6313174dff7755c884316a11c5b1adeadee64ba2",
      "parents": [
        "7dd78282f0963605ab978ddd3cfd38847e5d1442",
        "a818367360c9262c56d0317d4f2ee76057d8c606"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 20 19:01:57 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Aug 20 19:01:57 2020 +0000"
      },
      "message": "Merge \"AudioPolicy: manager: force gain on startSource when using HW Gain\" am: ae1df9155c am: be7cabc2e0 am: a818367360\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1296441\n\nChange-Id: I213aa0ad8905a82e6c8679c8d0eec2d522c2e10c\n"
    },
    {
      "commit": "a818367360c9262c56d0317d4f2ee76057d8c606",
      "tree": "ffa16c1cc2bd1a706fc6c08ba13e0c34f55061eb",
      "parents": [
        "693f515a9ee576dbad44413c06802a8aafbe4ccb",
        "be7cabc2e0681e4b30afed1587be71f3c3e90b25"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 20 18:40:32 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Aug 20 18:40:32 2020 +0000"
      },
      "message": "Merge \"AudioPolicy: manager: force gain on startSource when using HW Gain\" am: ae1df9155c am: be7cabc2e0\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1296441\n\nChange-Id: I6a5ad41a3b34ca3a2ca209352100c868b277b007\n"
    },
    {
      "commit": "ae1df9155cd8244cc716a2b1fdfca9975220453d",
      "tree": "0736254f088e27512ee83a33a2e73c727ed27f7d",
      "parents": [
        "246b31dc7641b7e57f113fb89e429c75ed3d5b68",
        "d11442b6e4521d825779dd55494509e046f2c9f8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 20 18:13:16 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 20 18:13:16 2020 +0000"
      },
      "message": "Merge \"AudioPolicy: manager: force gain on startSource when using HW Gain\""
    },
    {
      "commit": "33897bac9744f10c126b9f44488d390b4de49331",
      "tree": "5a9eddf934ce44652c6f1211aa582ceb0c4ec253",
      "parents": [
        "e52b8fa8fabd74555dd1ebb2e9405460a545a919"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 23 10:57:02 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Aug 15 01:13:44 2020 +0000"
      },
      "message": "audio policy: fix beacon mute delay\n\nOnly take output latency into account when the output is active\nwhen muting TTS stream. This avoid a systematic long delay the\nfirst time we play audio due to first beacon mute state change.\n\nBug: 37923452\nTest: repro steps in bug\nChange-Id: I10b21a55c0fad28344108b67756f600a29e41fea\n(cherry picked from commit cdb2b35c0f159a1a244599010ee9210d1e34c71d)\n"
    },
    {
      "commit": "decc00bbcfb68106625bd21fd74cff969c9a6f35",
      "tree": "d21ba1fe2702a29732b1234f3ecc4c5991904367",
      "parents": [
        "c10197dee26ed6006d956149d4fe4969f9caa264",
        "c9ad9878f49137b748ec5dfcf905e778e99441c8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 14 02:03:49 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Aug 14 02:03:49 2020 +0000"
      },
      "message": "Merge \"audio: add device definitions for BLE Audio\" am: 3ce5f38a37 am: 0f109dd701 am: c9ad9878f4\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1398473\n\nChange-Id: I1fcb2be05809e3f3518907fec30852e2469eefc9\n"
    },
    {
      "commit": "c9ad9878f49137b748ec5dfcf905e778e99441c8",
      "tree": "871d3b03564f3c94570cffa87a2dfcb1b7bf4786",
      "parents": [
        "32ec02978e0b9f943795070120c2eee04427802d",
        "0f109dd701e3d326e6c0369f3fb3cbf028b9fa09"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 14 01:43:30 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Aug 14 01:43:30 2020 +0000"
      },
      "message": "Merge \"audio: add device definitions for BLE Audio\" am: 3ce5f38a37 am: 0f109dd701\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1398473\n\nChange-Id: I923a8efdf00dc6249c28576ec3972d8a2d80437c\n"
    },
    {
      "commit": "7a62f2936519104f93dc9015df22369127b37803",
      "tree": "33a0d431ef21fd9e9dce4d74981c1800dc186506",
      "parents": [
        "8debb9f333ed410669e3acbd0fb5cb7d694a2bad"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 07 10:51:53 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 13 20:19:00 2020 +0000"
      },
      "message": "audio: add device definitions for BLE Audio\n\nAdd support for device type enums for BLE Audio.\nThis CL just adds basic support in parsers and voloume curve\ncategories.\nNo policy implemented yet for the new devices.\n(cherry picked from commit c42df45d4b99c06391bca841638563335d0f59ef)\n\nBug: 161358428\nTest: make flash and boot\nChange-Id: I86134ea8436b24f817a9fe0f856e3489dd22fcc8\nMerged-In: I86134ea8436b24f817a9fe0f856e3489dd22fcc8\n"
    },
    {
      "commit": "d11442b6e4521d825779dd55494509e046f2c9f8",
      "tree": "e0aab3cd028428ddb9266ef55d98486cfd4fc59a",
      "parents": [
        "8debb9f333ed410669e3acbd0fb5cb7d694a2bad"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Mon Apr 27 11:51:09 2020 +0200"
      },
      "committer": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Thu Aug 13 13:04:39 2020 +0200"
      },
      "message": "AudioPolicy: manager: force gain on startSource when using HW Gain\n\nWhen a setVolume is called for a given volume source on a SwOutput,\nand if the SwOutput is connected to a device using HW Gain, the sync\nof the gain on AudioHAL is guarded by the activity of this volume source.\n\nWhen a new index is applied on a given volume source, if this source is\nnot active, the new index is cached but is not synced on AudioHAL.\n\nHence, once a client (aka a source) starts on a SwOutput,\nSwAudioOutputDescriptor::setVolume is called, but as index has not changed,\nsetVolume will bail out before applying the gain to the AudioHAL.\n\nThis CL forces to sync the volume upon startSource event if the SwOutput\ninvolved is connected to a device with HW Gain enabled.\n\nTest: build \u0026 basic audio tests.\n\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: Ief1d5314b7970de78298750550320e329283ee1a\n"
    },
    {
      "commit": "cdf738e37397def04c2418406ca46da4cf3d7380",
      "tree": "b1932b1bd26afdcad7783ad23806c23b69ba3bf0",
      "parents": [
        "a42085c0ef9841d360eb423f7873e096ced2865d",
        "23b282c9f9a7dacb0cc9000940c755a21970f1b6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 10 18:15:36 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Aug 10 18:15:36 2020 +0000"
      },
      "message": "Merge \"Fix music output to speaker\" am: fc9e26a3e9 am: af034fc9cb am: 23b282c9f9\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1360120\n\nChange-Id: I6296d6dd227058a728f9a4718b198bba9756e019\n"
    },
    {
      "commit": "23b282c9f9a7dacb0cc9000940c755a21970f1b6",
      "tree": "601935ac55c38bd96ed660bbeac909d2c8d0f263",
      "parents": [
        "85bf50bfc09cf24d8454015e7553ab31f1946ff2",
        "af034fc9cb1d3de4334bb303d53b5dc8f83aa6f5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 10 17:53:53 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Aug 10 17:53:53 2020 +0000"
      },
      "message": "Merge \"Fix music output to speaker\" am: fc9e26a3e9 am: af034fc9cb\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1360120\n\nChange-Id: I84066fdea62f4ac3f559ddb7c7b1c37f5880e0fb\n"
    },
    {
      "commit": "fc9e26a3e931e267a274aa73f5d9b9381b95f6a0",
      "tree": "ea13855ba4e26f8c0d5e39be18595883a2aea4ed",
      "parents": [
        "43b32b29c5744f11c3a05579c5f37a086cbbebda",
        "bd2dcc4d0d6cf0ba6d7663bfb7ccfc60b9292f10"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 10 17:32:07 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 10 17:32:07 2020 +0000"
      },
      "message": "Merge \"Fix music output to speaker\""
    },
    {
      "commit": "bd2dcc4d0d6cf0ba6d7663bfb7ccfc60b9292f10",
      "tree": "ff0ee2efcda5b139f75dda189547424b241d633d",
      "parents": [
        "7c44826eaba2e3ff4483b127c6bc091e46d0604c"
      ],
      "author": {
        "name": "cnx421",
        "email": "cnx421@gmail.com",
        "time": "Sat Jul 11 14:58:44 2020 +0800"
      },
      "committer": {
        "name": "恶魔 地狱",
        "email": "cnx421@gmail.com",
        "time": "Mon Aug 10 01:24:35 2020 +0000"
      },
      "message": "Fix music output to speaker\n\nThis CL fixes a bug in audio policy where music switches to speaker when A2DP output mode switches from software encoder to offloaded encoder.\n\nBug: 153895044\n\nChange-Id: I15f707c9e96294b6cd6f21c0821c795d0570c39a\n"
    },
    {
      "commit": "89d9e3f30d9644df802dcbfdd6fa0788e5af59d4",
      "tree": "14e8e58b23b22ec6d0d1b5d94b9ae2b2f881a71c",
      "parents": [
        "6fafd73af139e33f8e0157dec461836645e5d5ba",
        "385de9f0230a72bd8f72dc650f0e483ff3895a8b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 05 21:18:23 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Aug 05 21:18:23 2020 +0000"
      },
      "message": "Merge \"Update OWNERS\" am: 8e2fbf6665 am: 588d9b1c07 am: 385de9f023\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1391639\n\nChange-Id: I216cd96527efaed4b4b08efe927227debef78246\n"
    },
    {
      "commit": "385de9f0230a72bd8f72dc650f0e483ff3895a8b",
      "tree": "95a5fac3e2a0b2c5924e827a7b2f5d2f9d593913",
      "parents": [
        "3ece0964200c8e0e7c3aa371dd8a47ce578bdf22",
        "588d9b1c07ec0363b6bfaf982f00afd1ba35bd68"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 05 21:00:37 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Aug 05 21:00:37 2020 +0000"
      },
      "message": "Merge \"Update OWNERS\" am: 8e2fbf6665 am: 588d9b1c07\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1391639\n\nChange-Id: I92ce762ac562acd9c2c6c420761111f6ae14ce0f\n"
    },
    {
      "commit": "2c7d0d39443ac8e64987d3a73a6d8b20da1ed807",
      "tree": "e8a2a325299fa4b9024ca8fbbd07af9129f99daa",
      "parents": [
        "70e96c8d72768b76314a77a7d7b37157fb7f1ae4"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 15 14:18:59 2020 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Aug 05 10:04:47 2020 -0700"
      },
      "message": "Update OWNERS\n\nTest: N/A\nChange-Id: I2d34e3c05e99191ae1d95fd3c5e6557c2b982965\n"
    },
    {
      "commit": "6fafd73af139e33f8e0157dec461836645e5d5ba",
      "tree": "0a8486f8ae275a0aefcd9922ae98c3fbeb02ca85",
      "parents": [
        "3f188dc16b84e0fe23259f184afb23af365b3d6f",
        "44f9ee26f6cd904c96492c58cbef616eeecb6cb0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 05 16:32:47 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Aug 05 16:32:47 2020 +0000"
      },
      "message": "audio policy: fix attributes for strategy \"rerouting\" am: 44f9ee26f6\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12311082\n\nChange-Id: I4913aa2c7643d8b1713a30a0ac3f111e754b56e6\n"
    },
    {
      "commit": "44f9ee26f6cd904c96492c58cbef616eeecb6cb0",
      "tree": "5d5a90b7386555c49cb19e6a8c1d2580a192fb5f",
      "parents": [
        "5525faf28e9e112f8ae0dabace9360bd39a1ce10"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 31 16:08:03 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 05 01:59:34 2020 +0000"
      },
      "message": "audio policy: fix attributes for strategy \"rerouting\"\n\nStrategy rerouting is used for audio injection to a recorder\ndynamic audio policy mix. As such, the correponding audio attributes\nmust contain usage AUDIO_USAGE_VIRTUAL_SOURCE.\n\nBug: 162239551\nTest: gts-tradefed run gts --skip-device-info -m GtsGmscoreHostTestCases -t \u0027com.google.android.gts.audioservice.AudioServiceHostTest#testInjectForRecord\u0027\nChange-Id: Id175b9583faf8910aef7b2988ac5019d0cbbcb53\n(cherry picked from commit ed49c8644a89304cd5ae3056245a07d04a8911de)\n"
    },
    {
      "commit": "c8e17eebc955749f5dc0fb0a58ad93ff312aef39",
      "tree": "087fd6e158c1f3c0cbd507fc50c4f9904393aef5",
      "parents": [
        "7c9913d5d5a35242a617ccb82ba4659e777ee007"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Jul 31 17:36:08 2020 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Aug 04 00:41:43 2020 +0000"
      },
      "message": "Avoid storing \u0027this\u0027 in a wp\u003cAudioEffect\u003e while in constructor\n\nStoring \u0027this\u0027 into wp\u003cAudioEffect\u003e while running the constructor\nof an AudioEffect can lead to premature instance destruction\nbecause the owner of this weak pointer may promote to sp\u003c\u003e\non a thread running in parallel to the constructor.\n\nFixed by removing a call to AudioEffect::set from the constructor\nand moving the responsibility for calling it to client code.\n\nBug: 162323621\nTest: repro steps from the bug\n      atest android.media.cts.VisualizerTest\nChange-Id: Ice5f510b1c9020b5ba73bd6223c1669ab8eae24c\nMerged-In: Ice5f510b1c9020b5ba73bd6223c1669ab8eae24c\n"
    },
    {
      "commit": "69d41cc6ca5d63e5484874dc3dcaf78530b55b6a",
      "tree": "423c2ef2a2dc0410c94c32ef5736fcfd5574d777",
      "parents": [
        "1fc724e954b4b0384ae12b095424214754c15d94"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Jul 31 17:36:08 2020 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Aug 03 23:44:56 2020 +0000"
      },
      "message": "Avoid storing \u0027this\u0027 in a wp\u003cAudioEffect\u003e while in constructor\n\nStoring \u0027this\u0027 into wp\u003cAudioEffect\u003e while running the constructor\nof an AudioEffect can lead to premature instance destruction\nbecause the owner of this weak pointer may promote to sp\u003c\u003e\non a thread running in parallel to the constructor.\n\nFixed by removing a call to AudioEffect::set from the constructor\nand moving the responsibility for calling it to client code.\n\nBug: 162012829\nBug: 162323621\nTest: repro steps from the bug\n      atest android.media.cts.VisualizerTest\nChange-Id: Ice5f510b1c9020b5ba73bd6223c1669ab8eae24c\nMerged-In: Ice5f510b1c9020b5ba73bd6223c1669ab8eae24c\n"
    },
    {
      "commit": "827df1b7f99d30de9cf65755f5fc4d674ec577a2",
      "tree": "eb64fc7f0561740301a008396eaa0064f990480f",
      "parents": [
        "39075258a92d969a6ea438cfe2ad298de01de7ad"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Jul 29 15:09:52 2020 -0700"
      },
      "committer": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Fri Jul 31 03:03:43 2020 +0000"
      },
      "message": "Do not log sensitive information.\n\nWhen logging device descriptor, do not log the IP address and MAC\naddress.\n\nTest: make, dumpsys media.audio_policy\nBug: 162299985\nChange-Id: Ia255d733d9d638786d0f3b444c57e787c45ad8d7\n"
    },
    {
      "commit": "55fd81d7e1011565e894a4530eb8693c824f45b4",
      "tree": "d0e29c28a094661314467df63dc930386750507f",
      "parents": [
        "480b74d285c11a0bf08222d2f2dd2d1d6c674f62"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 16 12:28:30 2020 -0700"
      },
      "committer": {
        "name": "Hayden Gomes",
        "email": "haydengomes@google.com",
        "time": "Mon Jul 20 22:41:48 2020 +0000"
      },
      "message": "audio policy: fix concurrent capture policy for virtual sources\n\nDo not consider virtual sources when determining\nlastest active capture client. As a virtual source\ncapturing does not silence other captures, it should not\nprevent another client from being selected as the latest active.\n\nBug: 160820363\nBug: 161725794\nTest: Verify capture with Solotester in background and projecting to\nDHU.\n\nChange-Id: I2f28026dbecfa72b5d44f52b95538fc13996627b\nMerged-In: I2f28026dbecfa72b5d44f52b95538fc13996627b\n(cherry picked from commit 14a88630162b96d0d52354261ee09216c0bed0d7)\n"
    },
    {
      "commit": "7997351bc447cbbff9dc255faf62bc89c1c180c6",
      "tree": "c7c20ace22c488e57290f9f51ea4c599e4acc5c2",
      "parents": [
        "40eb0159372c16376a0755e5b86a3f7586fc3294",
        "e9458106aa39881cfa08673faf752f6ca6ea8e94"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Wed Jul 01 23:11:06 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jul 01 23:11:06 2020 +0000"
      },
      "message": "Merge \"Include what you use: \u003ccutils/bitops.h\u003e for popcount\" am: a4d629d311 am: e9458106aa\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1354145\n\nChange-Id: I1613f16bdb589ab57f6d687578b0af9cbc7c664b\n"
    },
    {
      "commit": "76a13443cbfc7af0561522af166937ef370e2b68",
      "tree": "ce5cd8c1203122b61d05e446929977a85856c4b3",
      "parents": [
        "dbb9895007a7ecee6e2cc62705b24ba08b09932d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 01 12:10:59 2020 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 01 12:14:19 2020 -0700"
      },
      "message": "Include what you use: \u003ccutils/bitops.h\u003e for popcount\n\nTest: builds OK\nChange-Id: Ie717272df285303a63518f0342e1a4d2f41362c3\n"
    },
    {
      "commit": "cd56f5cea93ba1aef7e446f1dc783e049a291fd2",
      "tree": "8e12612ceb80c0f509acb941304049838b93d065",
      "parents": [
        "fd904533d2d238cb155afd5fce8c9e43aa6a055f",
        "cdde799ce524c18e19baf24f0ec20a163e1c0eec"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 30 23:45:38 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jun 30 23:45:38 2020 +0000"
      },
      "message": "Merge \"audio policy: remove capture restrictions for IN_COMMUNICATION mode\" into rvc-dev am: cdde799ce5\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12048628\n\nChange-Id: I5f300a5ba8b94b08f817dfd88950c409be6db4cd\n"
    },
    {
      "commit": "ffabb49539cfa682feb9f77c93e050b27e0fa151",
      "tree": "8aa81baece273a4c6dcab48cdcf544791a294836",
      "parents": [
        "498c4ed2faa20036408a8790a90a3b2575976f6a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 30 14:06:37 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 30 14:06:37 2020 -0700"
      },
      "message": "audio policy: remove capture restrictions for IN_COMMUNICATION mode\n\nRemove capture restrictions added to prevent apps from capturing\nwhen audio mode is IN_COMMUNICATION if they are not the audio mode\nowner.\n\nBug: 153934174\nBug: 160260850\nTest: repro steps in bug.\nTest: regression for VoIP calls\nTest: atest AudioManagerTest#testAccessMode\nTest: atest AudioRecordTest\nChange-Id: Iba423e0aceec7e07089440ad1efb9e1325953305\n"
    },
    {
      "commit": "456051d0b9f41986e982b07d4b5462e377534bfe",
      "tree": "78cb394b36e0265d54823dff9d826f582951acf6",
      "parents": [
        "04435f6bec3e65c1d4cfd0e356b89a2d025fb696",
        "5f829dead32af6da25656e77203f4ca59e578ba5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 30 16:39:05 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jun 30 16:39:05 2020 +0000"
      },
      "message": "Merge \"Fix direct/offload thread output devices into MSD\" am: 24c46f1741 am: 5f829dead3\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1340017\n\nChange-Id: Ib15f682b137b827cd6d3cdf4ff75803ed06bf17c\n"
    },
    {
      "commit": "514b431cac26626260df703a7b1504717b948e22",
      "tree": "15050e1e0fd465901076dfc1fa8a65b9179bd7cf",
      "parents": [
        "c1d40b64b1ee652f173153fb2520201bbed56679"
      ],
      "author": {
        "name": "Dean Wheatley",
        "email": "dwhea@dolby.com",
        "time": "Wed Jun 17 21:45:00 2020 +1000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jun 29 23:13:56 2020 +0000"
      },
      "message": "Fix direct/offload thread output devices into MSD\n\nWithout this change, direct/offload threads show\n\"Output devices:  (Empty device types)\". Empty device\ncauses timestamp correction to always be disabled for\noutput threads requiring timestamp correction.\n\nTest: check direct/offload output into MSD dumpsys output devices\n      atest audiopolicy_tests\nBug: 159948389\nChange-Id: I7006c9da2f0a228dd49ce0297c30035fef983090\n"
    },
    {
      "commit": "e963d9d6832ce89aff1f0535f4f7b62a335067c8",
      "tree": "89e76e8044c3cccbc654781eb0372eb154fe5aa4",
      "parents": [
        "cac3ba5c6e49b19e8a8ce842f839ae8a48679faa",
        "8847f120b6fd52b852d7770f67b58af725f5b43e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 24 19:42:24 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jun 24 19:42:24 2020 +0000"
      },
      "message": "Merge \"audio policy: do not consider telephony TX device as a local device\" into rvc-dev am: 8847f120b6\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11931587\n\nChange-Id: Ic9ede3f6cfbd13e99b1c4d26e607f6b8401cc299\n"
    },
    {
      "commit": "af6d36f23a359a6d1ae6629c084655d776bfe2c5",
      "tree": "ef3d18d83d3a9c3eca74302031f5bca53234d0b5",
      "parents": [
        "f00b91b986fca9d87b900ed0e34c963bb85519f1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jun 20 13:14:09 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jun 20 20:25:57 2020 +0000"
      },
      "message": "audio policy: do not consider telephony TX device as a local device\n\nExclude playback over AUDIO_DEVICE_OUT_TELEPHONY_TX when evaluating\nlocal playback activity on a HW module as this is a virtual device\ninjecting audio to telephony TX path and as such not interfering\nwith local playback.\n\nBug: 159480161\nTest: repro steps in bug\nChange-Id: I8cd27acc0033725fa66f95c7661c58b38d31532a\n"
    },
    {
      "commit": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "9b8c695c4879c2e28ee359cc55d6101da8931a9e",
      "tree": "a33496cdd3d5191b868ec2435c453f3908fd0ed2",
      "parents": [
        "7feb854e9ff78e8ca64e012af874503569905924",
        "26874fed269f1f88d5e9eaef831d0d4c14ba74be"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 14 01:52:49 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 14 01:52:49 2020 +0000"
      },
      "message": "Merge \"audio policy: fix crash in findPreferredDevice() on duplicating outputs\" into rvc-dev"
    },
    {
      "commit": "26874fed269f1f88d5e9eaef831d0d4c14ba74be",
      "tree": "1b53a2407f10fbf3197a7859d24899f79cb8fd1f",
      "parents": [
        "141095dce0006e73b7941367c4b03f64c6ae997d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 13 15:52:39 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 13 15:52:39 2020 -0700"
      },
      "message": "audio policy: fix crash in findPreferredDevice() on duplicating outputs\n\nDuplicating outputs do not have an associated IOProfile and\ngetPolicyAudioPort() returns null.\n\nAdd a method to AudioIODescriptorInterface to query if the\ninput or output descriptor corresponds to MMAP IO profile or not.\n\nBug: 153849965\nTest: repro steps in the bug\nChange-Id: I300356880198f1785e3a5e1359ffd393c6ae4190\n"
    },
    {
      "commit": "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"
    }
  ],
  "next": "3009a12c9a1fe8d8bdfa65ad0d81b832899b1baf"
}
