)]}'
{
  "log": [
    {
      "commit": "7f0f4312d70c0712b23c3af594e0f8ba02bab742",
      "tree": "ab0da85993e7a9d7a643bebbc9fcb9254710a7fc",
      "parents": [
        "88a1999cbae5c555d2e10fdc3e8ce8b91b641a67"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 18 10:47:14 2019 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 18 10:50:51 2019 -0800"
      },
      "message": "audi policy manager: fix use after free in initialize()\n\nFix regression introduced by commit 11d30104 in cleanup loop in\nAudioPolicyManager::initialize().\n\nBug: 123080575\nTest: make\nChange-Id: I048eeb5f5c6e6bc83dd2b31af4dd600bc07ab1a2\n"
    },
    {
      "commit": "1cbfc5d16ad592d9aea60d1a4ffcb9dd369f66cd",
      "tree": "fdb774c86e61e23e9315019174ba5913fae0a873",
      "parents": [
        "bf06f7afdbd7019614c9e31ce43301457a3a7d55",
        "b141c526eac14ad0f92c9ec6aae6a3b3ebc35708"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 17 22:19:08 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 17 22:19:08 2019 +0000"
      },
      "message": "Merge changes Ic9ecd592,I5e809296,I822097f1\n\n* changes:\n  audiopolicy: apm: Fix segfault when using bus device without Policy Mix\n  audiopolicy: fix rsubmix / device with dynamic address regressions\n  audiopolicy: apm: Prepare the future: use DeviceDescriptor/DeviceVector\n"
    },
    {
      "commit": "3724095f1f64585fd7318631b86f3e31c1903a3c",
      "tree": "cb570423bc9a435b9447d5866379a9ab93263119",
      "parents": [
        "25d3eb576ca166b23ff294595e9efedc3a6923c8",
        "ae4b6ecfbcbea56cca160715a2ef710d8d87a40f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 16 23:58:05 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 16 23:58:05 2019 +0000"
      },
      "message": "Merge \"add new audio sources for audio capture\""
    },
    {
      "commit": "ae4b6ecfbcbea56cca160715a2ef710d8d87a40f",
      "tree": "124f24314b3f95b48a47dc8cc6f4ab0a6a0cc88e",
      "parents": [
        "96024c18126150259ba123ef48d180c6e0a2cf7e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 15 18:34:38 2019 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 16 09:52:55 2019 -0800"
      },
      "message": "add new audio sources for audio capture\n\nThis commit adds the following audio capture sources:\n- AUDIO_SOURCE_VOICE_PERFORMANCE: for real time live performances like Karaoke.\n- AUDIO_SOURCE_ECHO_REFERENCE: for capturing the reference signal to suppress by an echo\ncanceller. Protected by privileged permission CAPTURE_AUDIO_OUTPUT.\n\nAlso added device AUDIO_DEVICE_IN_ECHO_REFERENCE selected when the requested\ncapture source is AUDIO_SOURCE_ECHO_REFERENCE.\n\nBug: 118203066\nTest: CTS tests for audio capture\n\nChange-Id: Ieb159ea82a7b81acf762506a44e24ec80111609f\n"
    },
    {
      "commit": "20f9bf837fa3102bbd9e15b8a8c6ed14b72df292",
      "tree": "6d4065463e8bdf7a12809b9e3c1cb5bdf9d8cf8a",
      "parents": [
        "96024c18126150259ba123ef48d180c6e0a2cf7e"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jan 15 14:46:30 2019 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jan 15 15:50:14 2019 -0800"
      },
      "message": "audio: Add presubmit tests for APM\n\nHook up audiopolicy_tests and systemaudio_tests as presubmit tests.\nThese tests are native C++Unit tests, it takes a couple of millisec\nto run them.\n\nBug: 122855449\nTest: cd frameworks/av/services/audiopolicy \u0026\u0026 atest\nChange-Id: I7abfeb81472ff2a2610948aa514eb506bed7546b\n"
    },
    {
      "commit": "b141c526eac14ad0f92c9ec6aae6a3b3ebc35708",
      "tree": "230c5d40ac6c887d5d2b9049a67c615e0c46e6e3",
      "parents": [
        "716e1435b2b0af38c801f2bf3872b9edc2ba7c33"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Mon Mar 12 11:47:40 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 15 11:09:30 2019 -0800"
      },
      "message": "audiopolicy: apm: Fix segfault when using bus device without Policy Mix\n\nTest: manual audio smoke tests\nChange-Id: Ic9ecd5928931d63d42cecea7283c7282ec43ebc0\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "716e1435b2b0af38c801f2bf3872b9edc2ba7c33",
      "tree": "f1ef7a9110c4ff61e73f2da9a9cec97b15ea9254",
      "parents": [
        "11d301045991dd66bf3f64ba510e069b7c09fedb"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Mon Jan 14 16:58:59 2019 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 15 11:09:13 2019 -0800"
      },
      "message": "audiopolicy: fix rsubmix / device with dynamic address regressions\n\nOrphan devices (aka devices not declared in configuration file) used to be\nmanaged by apm::mAvailable\u003cOutput|Input\u003eDevices and affinity with profile\nwas done by type only.\nAs the device affinity with profile is now enforced by checking with descriptor\nrather than with type, profile\u0027s supported devices list shall be dynamically\nupdated.\n\nTest: manual audio smoke tests\nChange-Id: I5e8092968bbdb03ac7dc1aa1a3f15a0bc1b09251\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "11d301045991dd66bf3f64ba510e069b7c09fedb",
      "tree": "d9aa2e368424bc164a81f5bdcddef1fe328cdca1",
      "parents": [
        "526aa572bbc5dd1fa1b103a98d9f91a758d8d5c4"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Fri Nov 02 16:09:09 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 15 11:08:17 2019 -0800"
      },
      "message": "audiopolicy: apm: Prepare the future: use DeviceDescriptor/DeviceVector\n\nThis patch updates the policy manager and common to widely use (vector of)\ndevice descriptor rather than the device type mask each time it is possible.\nIt will allow taking into account the address of the device.\n\nTest: manual audio smoke tests\nChange-Id: I822097f1240d379b2f89aaad1e6609059942e61c\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "2b6834483ea55538b87f840f1f2294d7cc9b6c03",
      "tree": "9b8ea443e9b782044a1dd93d840c3cc762a711f4",
      "parents": [
        "9a2e50be1cb1e5cbbae5e33c0f62f5f03ebabe77",
        "17dc17828f0aedb037cf974daeb44645f390cb49"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 15 02:54:20 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 15 02:54:20 2019 +0000"
      },
      "message": "Merge \"Audio policy: uid device affinity deterministic rule\""
    },
    {
      "commit": "beab72f726d2e18cf2cbd4d74819cf146a2f3fdc",
      "tree": "9226eb49e7c37e93b81747d00dc942ab87a591ca",
      "parents": [
        "8292a716361d0f02de2b79242aec4630664bc770",
        "df2e359d5c19c142fe400980cd15b0b60bea507b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 15 00:19:32 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 15 00:19:32 2019 +0000"
      },
      "message": "Merge \"AudioPolicy: Add unit tests for the MSD use cases\""
    },
    {
      "commit": "df2e359d5c19c142fe400980cd15b0b60bea507b",
      "tree": "5fbb45d0a3f448e60b2c1464eaf0bc5f9bf4c28a",
      "parents": [
        "ff7397bb08bf9953615d7b3416f4839bc0b1d2ff"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Dec 19 14:27:42 2018 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Jan 11 21:01:07 2019 -0800"
      },
      "message": "AudioPolicy: Add unit tests for the MSD use cases\n\nTest the following scenarios:\n  - inputs / outputs update due to setForceUse change;\n  - MSD device selection and downstream patch creation\n    when an output for a supported format is opened;\n  - default device selection and downstream patch teardown\n    when an output for an unsupported format is opened;\n  - swiching outputs depending on the format.\n\nBug: 121048134\nTest: audiopolicy_tests\nChange-Id: I3a07c758ea7fd87250f425c27fbf0c38eb5bf8b5\n"
    },
    {
      "commit": "26f23259c6ccbebf59e5266b9b39057db92e9dc6",
      "tree": "7c794113412c7979eb8841389718b9d35c80b173",
      "parents": [
        "475d0e85f68acf3ff49169b63de6fef289020a50",
        "fc078cd2f085fdc24a2ab7d34f90a0d5e08ae756"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 11 15:37:15 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 11 15:37:15 2019 +0000"
      },
      "message": "Merge changes I8c3a4dbd,I608ed8d7,I4a70abba,I61fcf6fe,I9ae8dd64, ...\n\n* changes:\n  audiopolicy: engineconfigurable: Get rid of criteria text file\n  AudioFlinger: update cache in/out configuration on device port id change\n  audiopolicy: engineconfigurable: Forward device connection state to Policy PFW wrapper\n  audiopolicy: engineconfigurable: switch to unix socket for PFW debug\n  audiopolicy: engineconfigurable: Simplify policy PFW plugin: remove Id from structure\n  audiopolicy: engineconfigurable: Migrate to XML criteria and criterion type defintion\n  audiopolicy: engineconfigurable: apply coding style\n"
    },
    {
      "commit": "17dc17828f0aedb037cf974daeb44645f390cb49",
      "tree": "a269ec1665e47843b76ef33fde2ffcc1c57f5e02",
      "parents": [
        "33d6adcebbac541a803a08013db15a84e4b82bcf"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Jan 10 19:00:05 2019 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Jan 10 19:00:05 2019 -0800"
      },
      "message": "Audio policy: uid device affinity deterministic rule\n\nWhen setting a uid device affinity, make the rules deterministic\n  by applying an \"exclude\" rule on all mixes that don\u0027t reach\n  the devices (existing), but also a \"match\" on the mixes that\n  do (new).\nBug: 111647296\nTest: requires device with routing policy started by CarService\n\nChange-Id: I3bb844156ade75e4b9576c1e18200ca90ce26cf9\n"
    },
    {
      "commit": "fc078cd2f085fdc24a2ab7d34f90a0d5e08ae756",
      "tree": "a02f2595142a7a917b270acac54ff743e56faf49",
      "parents": [
        "0c280aa1bdef93e318fb987e0cd239c1bcf0d438"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Thu Feb 22 09:20:24 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 10 10:46:09 2019 -0800"
      },
      "message": "audiopolicy: engineconfigurable: Get rid of criteria text file\n\nTest: make\n\nChange-Id: I8c3a4dbd99f6c1ee8bac60e28b69429f1356ba30\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "3305c11ac31fc595a3bb313e765aa4b2f6dcfe71",
      "tree": "83d41c0c8f1410768f2e99063c59fd22193d3dab",
      "parents": [
        "d544f1c61fce0050aacfe5ef8a01213cf8040fba"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Thu Feb 22 10:56:49 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 10 10:46:08 2019 -0800"
      },
      "message": "audiopolicy: engineconfigurable: Forward device connection state to Policy PFW wrapper\n\nTest: make\nChange-Id: I4a70abbae6c6bd0e683447d32d964728a9acc3fd\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "d544f1c61fce0050aacfe5ef8a01213cf8040fba",
      "tree": "ea7dd2859fd4097757883dbbad9f80f755019636",
      "parents": [
        "177d3f83ae46fb5fe6b9d0841d395314b802259e"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Mon Jun 25 15:25:48 2018 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 10 10:46:08 2019 -0800"
      },
      "message": "audiopolicy: engineconfigurable: switch to unix socket for PFW debug\n\nSEPolicy rule prevents the audioserver to use tcp / udp sockets.\nThe Parameter-framework has been updated to use unix socket.\nThis patch makes use of the unix socket and adds the corresponding\nsepolicy rules.\n\nTest: make\nChange-Id: I61fcf6fec06a78cf3189c93a86469070ef15bba4\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "177d3f83ae46fb5fe6b9d0841d395314b802259e",
      "tree": "7fff549d1d1d35f01cfba113aed4d91156436e93",
      "parents": [
        "a56b5c2686910731a070e2fd36ee2f64a0ff0266"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Thu Feb 22 09:52:39 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 10 10:46:08 2019 -0800"
      },
      "message": "audiopolicy: engineconfigurable: Simplify policy PFW plugin: remove Id from structure\n\nTest: make\nChange-Id: I9ae8dd640c692ec0895094f60424fe77752a01bd\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "a56b5c2686910731a070e2fd36ee2f64a0ff0266",
      "tree": "0d6ccc40075d84106cc932bf79f6e1d206050fb7",
      "parents": [
        "f19cf79e38507cc5e32d1e23825921a5019cd833"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Wed Feb 21 18:04:39 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 10 10:46:08 2019 -0800"
      },
      "message": "audiopolicy: engineconfigurable: Migrate to XML criteria and criterion type defintion\n\nTest: make\nChange-Id: Ia7eb6b86dffb31bcb4191f5e265e85135934dc36\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "f19cf79e38507cc5e32d1e23825921a5019cd833",
      "tree": "0782df3fbe0968e3cdd377483a7576e1c6723e56",
      "parents": [
        "35288162c7fcece56f43c1b1862636b02e6c51b0"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Wed May 30 17:22:17 2018 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 10 10:46:08 2019 -0800"
      },
      "message": "audiopolicy: engineconfigurable: apply coding style\n\nTest: make\n\nChange-Id: Ibfa26a5893e4481619f407f9b1cb679f96e8a7e9\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "ce727fe64f379a0fced2d3b0713e5323806c6ffa",
      "tree": "e9e109f5d6aa58158dec15abbfd39b20066fa97e",
      "parents": [
        "435ba2e250da24bed173d4ca7415f5adb5f7846b"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Wed Jan 09 12:59:02 2019 +0000"
      },
      "committer": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Wed Jan 09 15:33:00 2019 +0000"
      },
      "message": "Remove unused ICU4C dependency in audio policy\n\nBug: 117094880\nTest: m droid\nChange-Id: I8ba3db496f11630eebabb7184c532d59237279b0\n"
    },
    {
      "commit": "b6a2daca03f37b95d999aae53dce9a68a0cdb936",
      "tree": "31f6b4bb2bbb6cfd89284e61f1d509ca80d9104f",
      "parents": [
        "03de12c486f8db9db83f4ec2555b1d28ec01acf6",
        "b6826d9e88b521c5c970cf748db83b43c70d56d1"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Mon Jan 07 18:18:16 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 07 18:18:16 2019 +0000"
      },
      "message": "Merge \"Use ICU in libandroidicu\""
    },
    {
      "commit": "52e19d498d28d176c754740b55c025deca70d990",
      "tree": "4022e604169245f585428cabbe3d4318dd9677c4",
      "parents": [
        "53b94f90f542a245e10af849bbc05980cfd70175",
        "20729a775fb11b0d20abfe13b156b1e11ff2bb46"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jan 05 02:02:39 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jan 05 02:02:39 2019 +0000"
      },
      "message": "Merge \"Use setAddress to set microphone address when it is empty.\""
    },
    {
      "commit": "20729a775fb11b0d20abfe13b156b1e11ff2bb46",
      "tree": "8ce7765746c27d244dfa4f3470ff01ddc2d46ee1",
      "parents": [
        "77a428b58b1ab5d5f7212d8b1d4dbac20a985018"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Jan 04 16:01:55 2019 -0800"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Jan 04 16:01:55 2019 -0800"
      },
      "message": "Use setAddress to set microphone address when it is empty.\n\nIt is impossible to set address for input device via address(). Use\nsetAddress instead.\n\nBug: 122330994\nTest: run cts\nChange-Id: Ia588ad0b5c0d71dc532422bc2434105716b924c9\n"
    },
    {
      "commit": "bda70da1f0fb32d37abd704ff8618e55661be0a9",
      "tree": "a850374439d404da29938e2b038457926197d826",
      "parents": [
        "abf2929e8d084d2ca99d4d8712abbf31c2cb5178"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Dec 19 07:30:15 2018 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Jan 02 12:27:35 2019 -0800"
      },
      "message": "Dynamic audio policies: multi-zone through uid/device affinity\n\nSetting audio device affinity for a given uid augments all\n audio mix criteria that do not route to the given devices\n to exclude the uid.\nAudioPolicyManager: after changing the device affinity,\n check the outputs addressing the devices to re-evaluate\n audio routing\n\nBug: 111647296\nTest: requires device with routing policy started by CarService\nChange-Id: I72de54ae067151fe6ac2ec43b78fe544a9fd9888\n"
    },
    {
      "commit": "b6826d9e88b521c5c970cf748db83b43c70d56d1",
      "tree": "f6ad0f52bc55d3c13f71f4a572a16fd80d8e26e6",
      "parents": [
        "d1265e14e77943e84a52fd7c04922280dd598899"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Tue Nov 20 19:11:07 2018 +0000"
      },
      "committer": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Wed Jan 02 17:30:17 2019 +0000"
      },
      "message": "Use ICU in libandroidicu\n\nlibicuuc and libicui18n are moved into APEX, but\nthey have no stable ABI due to the version suffix.\n\nUse libandroidicu which provides stable symbol.\nSee http://go/apex-stable-icu4c-interface for the design.\nSee http://aosp/801855 for libandroidicu implementation.\n\nBug: 117094880\nTest: m checkbuild\nChange-Id: Ida6aac85dfb79bf8e7a3a2540e567ee211279e09\n"
    },
    {
      "commit": "31cb08bc991cef0d0d45d0b09bb29a2901f6c077",
      "tree": "8f974754db88aed47b4cd856dee4d7660968bb68",
      "parents": [
        "1b5d1cd06f91f1f777553cd3caa9494c3d960bb7",
        "e78b676a4de85f228ae4d717f225c0cf00dbe767"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 20 22:52:26 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 20 22:52:26 2018 +0000"
      },
      "message": "Merge \"audio policy: fix flag matching in output selection\""
    },
    {
      "commit": "e78b676a4de85f228ae4d717f225c0cf00dbe767",
      "tree": "131b2878cc137d1757b4bdb71026ee94046f773f",
      "parents": [
        "dac7329f1ef3c3e70b8b1ce673c35df1dfebe2e0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 19 16:29:01 2018 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 19 18:10:16 2018 -0800"
      },
      "message": "audio policy: fix flag matching in output selection\n\nMake sure we don\u0027t pick an output profile with specific functional\nrequirements (e.g HW A/V sync) for a client not compatible with those\nrequriements.\n\nBug: 118704067\nTest: Play Netflix and assistant simultaneously\nChange-Id: I6529deb6aa322be9f76433b1ead307a8ba367768\n"
    },
    {
      "commit": "a9f86651eaaf2f702b3759ec38dbb64ca8858356",
      "tree": "913a55b14107e7f94335bec0ad6705f9557255a0",
      "parents": [
        "c241b0dfc49014087123dae92f7341db8d30d443"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 28 17:23:11 2018 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 19 18:05:00 2018 -0800"
      },
      "message": "audo policy: more info in onRecordingConfigurationUpdate\n\nReport more information in onRecordingConfigurationUpdate() callback:\n- For client:\n  - Port ID\n  - Enabled effects\n  - Silenced by policy\n- For stream:\n  - Active effects\n  - Active audio source\n\nBug: 111438757\nTest: make\nChange-Id: I34c3d0ee6251576de7d793bfaa2bc2c34efa2319\n"
    },
    {
      "commit": "c241b0dfc49014087123dae92f7341db8d30d443",
      "tree": "9662b3ddd3860f1043da86eea159698331dfb81f",
      "parents": [
        "424993f0655c18f91562efc9d127f0ac970da6fa"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 28 09:08:49 2018 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 19 12:45:47 2018 -0800"
      },
      "message": "audo policy: add effects to record clients\n\nAdd list of active effects on input streams and record\nclients for further reporting in AudioRecordingConfiguration.\n\nBug: 111438757\nTest: make and dumpsys\nChange-Id: I1ae00d2431c80b053f67e2b780f368d5a4822b01\n"
    },
    {
      "commit": "cfd2830436e4bd400c4bf9c223642ef567c5aa6e",
      "tree": "48b0ac20dd90fba526d31467e6058fc7c7c965e1",
      "parents": [
        "e21f3418be2e323ad1ed64d79f862474f2c98c76"
      ],
      "author": {
        "name": "Michael Groover",
        "email": "mpgroover@google.com",
        "time": "Tue Dec 11 19:16:46 2018 -0800"
      },
      "committer": {
        "name": "Michael Groover",
        "email": "mpgroover@google.com",
        "time": "Tue Dec 18 10:59:53 2018 -0800"
      },
      "message": "Prevent recording when sensor privacy is enabled\n\nTest: Manually verified audio was not recorded when sensor privacy \\\n      was enabled.\nBug: 110842805\n\nChange-Id: I3bb966d9322e258a8aba43fb4e9f65badd7c3506\n"
    },
    {
      "commit": "aca677cf5fbd2a2d5aaccae3af4da6c1d700eb93",
      "tree": "c331bde769a019c47dccc80c09a0c3f8190a8661",
      "parents": [
        "2b167173e145d8846c9a248039f0f4dc423ade73"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Thu May 03 10:47:50 2018 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 13 17:24:46 2018 -0800"
      },
      "message": "audiopolicy: common: add several helper function on DeviceDesc\n\n-Add another DeviceVector constructor to simplify usage\n-report tagname as port name\n-migrate API from apm\n-search/filter helpers\n\nTest: Audio smoke tests.\nTest: CTS tests for AudioRecord, AudioTrack and AudioEffect\n\nChange-Id: Ie37a2d9db2e8a15a37743e7129159fa77a4c6b51\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "2b167173e145d8846c9a248039f0f4dc423ade73",
      "tree": "395f2c76fd05edb48c42ab76f5c2eb6994a04675",
      "parents": [
        "83d789d6234f5cd5eb90f02a47ab04d4f6ea8299"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Mon Jun 04 16:05:14 2018 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 13 17:24:46 2018 -0800"
      },
      "message": "audiopolicy: update type convertion library\n\nTest: Audio smoke tests.\nTest: CTS tests for AudioRecord, AudioTrack and AudioEffect\n\nChange-Id: I3ed8c7d7ee8a97f0bd41a5ae9f28d673994d7f07\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "83d789d6234f5cd5eb90f02a47ab04d4f6ea8299",
      "tree": "73e9caf4a7eb025194119abb51236609b6adef31",
      "parents": [
        "99896dab5f368916c86acb97e82bf72c86a14922"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Tue May 29 13:29:19 2018 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 13 17:24:46 2018 -0800"
      },
      "message": "audiopolicy: apm: connectAudioSource: use Sw brigding according to hal support\n\nEven if the implementation is not ready, this patch updates the conditions\nof audio patch creation delegation to audio hal not only if HAL\nis at least supporting 3.0 routing API but also has declared within\npolicy configuration file that a route between Device port is supported.\n\nIf the route is not declared in configuration file, Audio HAL is not able\nto do the connexion, let AudioFlinger do the the Sw Bridging.\n\nTest: Audio smoke tests.\nTest: CTS tests for AudioRecord, AudioTrack and AudioEffect\n\nChange-Id: I6ed11be04473be2edfcf16e922d1c6864184b6cd\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "99896dab5f368916c86acb97e82bf72c86a14922",
      "tree": "67cc39b5e30b396ce6f62cbac583e373c9919515",
      "parents": [
        "d00c4607a5f7d25dfe925a20a1fc5fd7cfcee67a"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Mon Apr 09 11:05:33 2018 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 13 17:21:41 2018 -0800"
      },
      "message": "audiopolicy: Fix sofware bridge creation for AudioHAL supporting routing APIs\n\nAudioPolicy roughly checks if HAL supports routing APIs 3.0 to enable or\nnot software bridge in case of device to device patch requests.\n\nHowever, Audio HAL declares in XML file routes supported. AudioPolicy\nshall refine its decision upon information available in the policy configuration\nfile.\n\nTest: Audio smoke tests.\nTest: CTS tests for AudioRecord, AudioTrack and AudioEffect\n\nChange-Id: Idc2e1ccd7d9fb6385f9a05ee002bec045e608232\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "d00c4607a5f7d25dfe925a20a1fc5fd7cfcee67a",
      "tree": "a10c63ea495cd157ae091a0376ebc4e41dc1bb14",
      "parents": [
        "61cf6c171c70c771c8de83549d99a979d37b5e4e",
        "bb93dfb7823e6abe4d4d7862559599803da1ad01"
      ],
      "author": {
        "name": "Hongwei Wang",
        "email": "hwwang@google.com",
        "time": "Fri Dec 14 00:58:25 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 14 00:58:25 2018 +0000"
      },
      "message": "Merge \"In favor of SW patch in AudioPolicyManager::connectAudioSource\""
    },
    {
      "commit": "9f4d651815e3089d2019a9fcf42e9b6eced6b1cd",
      "tree": "6cca21fe4726496e8a48df33c1c8bd6ed174cc63",
      "parents": [
        "156082a18c9186359d2a6bf434d76c338c8db43f",
        "dd6da3e10b2757a059165d636b0927392e745a9d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 13 02:07:25 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 13 02:07:25 2018 +0000"
      },
      "message": "Merge \"Audio Policy: enable surround sound configuration in xml\""
    },
    {
      "commit": "bb93dfb7823e6abe4d4d7862559599803da1ad01",
      "tree": "1ef9d11f9d4ad4b6a1db6169c7657c31eacb1323",
      "parents": [
        "7763cf3b0eb9ae0ed5c375d19324fa068a070229"
      ],
      "author": {
        "name": "Hongwei Wang",
        "email": "hwwang@google.com",
        "time": "Tue Oct 23 13:54:22 2018 -0700"
      },
      "committer": {
        "name": "Hongwei Wang",
        "email": "hwwang@google.com",
        "time": "Wed Dec 12 13:39:14 2018 -0800"
      },
      "message": "In favor of SW patch in AudioPolicyManager::connectAudioSource\n\nIn case the dynamic routing rule is present, creates the SW patch from\naudio source device to Android mixer (specified by dynamic routing rule)\n\nA typical use case is to route broadcast radio to the same media output\nas other media applications.\n\nBug: 118763832\nTest: connectAudioSource from FM Radio and dumpsys media.audio_flinger\n\nChange-Id: Id07d3a6dd9fc5f322f4eb38efe02c302018253cd\n"
    },
    {
      "commit": "c94b0f806352d9384eeb92c2e4d7173851ccc573",
      "tree": "36bd89a1cd2fe27c243a1db1445957be3ad90cba",
      "parents": [
        "45d34272dfa8462adda0f11ccfa169c5afa49621",
        "405733256a9cf62c9e3be2d8dbd5ccb9cb7c5d97"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 12 04:05:07 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 12 04:05:07 2018 +0000"
      },
      "message": "Merge \"Support open output stream with haptic channel mask.\""
    },
    {
      "commit": "45d34272dfa8462adda0f11ccfa169c5afa49621",
      "tree": "45450f514f133a91a4746eb6b232c86dc3280806",
      "parents": [
        "cf80f34cc5e8d16d939df21879d770200defaf6e",
        "6012f913f0772cf0b73f379778efc671ce72c557"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 12 02:32:28 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 12 02:32:28 2018 +0000"
      },
      "message": "Merge \"Querying capability of haptic playback.\""
    },
    {
      "commit": "405733256a9cf62c9e3be2d8dbd5ccb9cb7c5d97",
      "tree": "b395e3e093aa3010b54f9227e8a7cef08ed1b2a0",
      "parents": [
        "6b6a0f05248fc646d42f09cb891d8b6fda19426e"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Nov 08 12:08:02 2018 -0800"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Dec 11 17:18:05 2018 -0800"
      },
      "message": "Support open output stream with haptic channel mask.\n\nWhen haptic playback is supported according to audio policy\nconfiguration file, try to open the output stream with haptic channel\nmask. When trying to creat a track with haptic channel mask, use haptic\noutput if it is available.\n\nBug: 111454766\nTest: Manually test\nChange-Id: Ia8c70dd7f602a134d0509630eb734b8c540dea7d\n"
    },
    {
      "commit": "6012f913f0772cf0b73f379778efc671ce72c557",
      "tree": "c77bb87b93b7fd9e3ad78532761d7e4ac7cfe9e6",
      "parents": [
        "6b6a0f05248fc646d42f09cb891d8b6fda19426e"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Nov 02 17:06:30 2018 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Dec 11 16:18:09 2018 -0800"
      },
      "message": "Querying capability of haptic playback.\n\nBug: 111454766\nTest: Manually test\nChange-Id: Ib200d6b8f02354a01cf599a96fb1a9062dcd3050\n"
    },
    {
      "commit": "dd6da3e10b2757a059165d636b0927392e745a9d",
      "tree": "1cbe818faf080d8fc9b3c2456eab9b9e373e4004",
      "parents": [
        "6b01bf3f93113ea19c4f1e8dfd65fe9da7f1a0c9"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Dec 11 14:41:41 2018 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Dec 11 16:05:40 2018 -0800"
      },
      "message": "Audio Policy: enable surround sound configuration in xml\n\nThe surround sound configuration used to be disabled. This patch\nenables it, and moves out the surround sound configuration into\na dedicated file.\n\nBug: 116356348\nTest: xmllint --noout --xinclude --schema \\\n      hardware/interfaces/audio/5.0/config/audio_policy_configuration.xsd \\\n      frameworks/av/services/audiopolicy/config/audio_policy_configuration.xml\n\nChange-Id: I26eb55b818d813494fc31812d00e33851b79f02b\n"
    },
    {
      "commit": "a223769e7767765ba7a546f66887508fbb19f54d",
      "tree": "a24bbadad46856fca743a3d6d31d0c046f55f73f",
      "parents": [
        "7ce82e7ccf47ec5ea00a85a15665eb51edd9b258",
        "a94fbb22404ef26d12fbb3ad0376df15f84f47ec"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 11 13:54:38 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 11 13:54:38 2018 +0000"
      },
      "message": "Merge \"Implement AudioTrack.isDirectPlaybackSupported method\""
    },
    {
      "commit": "d0f1bffe98354848dc23f4492d8f86987459f179",
      "tree": "516eb8f048077f2672ecfa749c7c617bde4df602",
      "parents": [
        "6c5157eaa8682ee60db576c49fcf56a3d61174f0",
        "a46bedb84a6c972f128e17e7bed114ad0863b0b3"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 11 03:34:44 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 11 03:34:44 2018 +0000"
      },
      "message": "Merge changes I2fc54853,If58ff214\n\n* changes:\n  audio policy: fix capture policy for assistant\n  Revert \"Revert \"audio policy: concurrent capture\"\"\n"
    },
    {
      "commit": "3ca78ae0f955c27a561d590bad7e76cc33fd1ec8",
      "tree": "1dfb2c3d4d67150ea408f123fb53f7384880f8e6",
      "parents": [
        "7f6f0fd0009dc5991af995cc369d9fd7e1ac36b5",
        "261413ac043ea80ed4e068847b4060c93be20dbe"
      ],
      "author": {
        "name": "nobuaki tanaka",
        "email": "nobuaki.xb.tanaka@sony.com",
        "time": "Mon Dec 10 15:49:54 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Dec 10 15:49:54 2018 -0800"
      },
      "message": "Merge \"Apply stream volume for the correct device\" am: c6b48fe627 am: 03a9cbbeb0\nam: 261413ac04\n\nChange-Id: Id5e366ce17585f2c7f0ed1240ecaf71e75a603af\n"
    },
    {
      "commit": "a46bedb84a6c972f128e17e7bed114ad0863b0b3",
      "tree": "d0a35a7aa88bf66dea6334eecfdf3689a1dd22f2",
      "parents": [
        "4eb58f1f36606ad7af392a920e1d029a5fb1e797"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 07 18:01:26 2018 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 10 15:45:51 2018 -0800"
      },
      "message": "audio policy: fix capture policy for assistant\n\nFix concurrent capture policy for assistant: allow assistant to capture if\nrunning as foreground service too and not only if on top.\n\nSame fix for accessibility service.\nAlso refine logic for single active client on top by retaining the\nlatest started capture from an app on top (in case several apps can be on top).\nAlso fix priority between app on top and app with foreground service.\n\nBug: 120588242\nBug: 111438757\nTest: Manual capture tests with solotester and Camera, Assistant and Duo\nTest: CTS tests for AudioReco\nChange-Id: I2fc54853a584b9e9e48c012b0c3a2bcc8436a340\n"
    },
    {
      "commit": "c6b48fe6272db5d3ca910598565c2b48b547ce7f",
      "tree": "211582ffa4ab12ca3a22757fffb0d7d1cf353a98",
      "parents": [
        "14c577fac81b8fdcc75e4bf9243f16bd624ba58b",
        "985d15a9c7e45e7e7021aa53a48de3fa222e3815"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Dec 10 22:53:45 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 10 22:53:45 2018 +0000"
      },
      "message": "Merge \"Apply stream volume for the correct device\""
    },
    {
      "commit": "4eb58f1f36606ad7af392a920e1d029a5fb1e797",
      "tree": "c1599fda024344eaf6da5e1d33fc410384127550",
      "parents": [
        "5a2048c3095478482a5ac16639514d3a0a214713"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 07 16:41:02 2018 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 10 14:10:05 2018 -0800"
      },
      "message": "Revert \"Revert \"audio policy: concurrent capture\"\"\n\nThis reverts commit df628924e691e01da190c1ac5db173304442e54a.\n\nBug: 120588242\nBug: 111438757\nTest: make\nChange-Id: If58ff2143fdb744678bb84394598104ced01f5b9\n"
    },
    {
      "commit": "100f0121068605a10b0a254b7ee5784409d09229",
      "tree": "07435569751b97014e448e3162ca28b02926187f",
      "parents": [
        "0422892023dcd4616f00028fd223fef056bc0e16"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Nov 29 11:22:16 2018 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Dec 10 09:25:14 2018 -0800"
      },
      "message": "APM: Improve surround formats management, include MSD\n\nThis is what this change does:\n\n1) Renames APM::mSurroundFormats into mManualSurroundFormats\n   and avoids modifying it in modifySurroundFormats, because\n   multiple surround-capable devices are possible.\n   modifySurroundFormats logic is also a bit simplified.\n\n2) Changes the way APM::getSurroundFormats reports enabled\n   formats, after the change  1).\n\n3) Includes MSD module into consideration as a surround-capable\n   device.\n\n4) Changes APM::dump to only show mManualSurroundFormats\n   when surround sound is enforced into manual management.\n\n5) Adds Dolby AC-4 to the list of surround formats.\n\n6) Declares surround formats on the devicePort of MSD.\n\nBug: 117602867\nTest: Surround Sound settings with MSD module\nChange-Id: I5cdd3c012a3febcf7170cc5fa7378224b3ef9e4f\n"
    },
    {
      "commit": "0422892023dcd4616f00028fd223fef056bc0e16",
      "tree": "11dfbf1d69b4357e8c940e1ee12405d59b9797b3",
      "parents": [
        "07567d630dbda88b9a25a439a5936e507d1caeca",
        "df628924e691e01da190c1ac5db173304442e54a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 07 16:39:03 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 07 16:39:03 2018 +0000"
      },
      "message": "Merge \"Revert \"audio policy: concurrent capture\"\""
    },
    {
      "commit": "df628924e691e01da190c1ac5db173304442e54a",
      "tree": "e2dda15a881c963a14520117128b5b9857834759",
      "parents": [
        "4c1ef4b64d113be6ee1106375bd10cdc643e80d8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 06 21:45:51 2018 +0000"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 06 21:45:51 2018 +0000"
      },
      "message": "Revert \"audio policy: concurrent capture\"\n\nThis reverts commit 4c1ef4b64d113be6ee1106375bd10cdc643e80d8.\n\nReason for revert: b/120588242\n\nBug: 120588242\nChange-Id: Iac41f371cb739c54d5ce519232688bebe2285c72\nTest: Launch QSB and capture from mic icon\n"
    },
    {
      "commit": "d5e180520a5b7aeb970bc796abc3ef8070d5174c",
      "tree": "485ebba16f82af8928f02e627773fd02963dcf95",
      "parents": [
        "71738ebf94589faa5aef3c1ba8d53cd17b7fec0f"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Nov 30 14:55:45 2018 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Dec 06 18:25:48 2018 +0000"
      },
      "message": "Audio Policy: Parametrize encoded formats supported by device\n\nFor various reasons, we need to store the list of audio\nformats supported by devices. Here we add support for this\ninto DeviceDescriptor. We don\u0027t read them yet from\nthe APM config file, but we will eventually.\n\nAlso in this change, use the formats list for parametrizing\nthe behavior of surround sound configuration. The special\nlogic for AC3 and IEC69137 formats used to be hardcoded\ninto \u0027filterSurroundFormats\u0027 function, now it is\nparametrized by the device descriptor information.\n\nFix behavior of \u0027filterSurroundFormats\u0027 in \u0027manual\u0027\nmode, where it was removing PCM formats from the list.\n\nRename \u0027filterSurround...\u0027 functions to \u0027modifySurround...\u0027\nsince they can both add and remove items from the provided\nlist.\n\nBug: 67479735\nBug: 117602867\nTest: compare A/B APM dumps while modifying Surround Sound\n      settings; tested with a HDMI sink that doesn\u0027t support\n      any surround, and with an AV receiver\nChange-Id: Ie46480d5e9519366b1f3553645c9ca20f64bdc80\n"
    },
    {
      "commit": "a94fbb22404ef26d12fbb3ad0376df15f84f47ec",
      "tree": "b4a8052d5ce8726541ba7a25e3f1f449d351acd9",
      "parents": [
        "b079c02b1fa4f1b5c5b6334b93af584797b4454f"
      ],
      "author": {
        "name": "Michael Chan",
        "email": "mzchan@dolby.com",
        "time": "Tue Apr 24 14:31:19 2018 +1000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Dec 05 15:35:35 2018 -0800"
      },
      "message": "Implement AudioTrack.isDirectPlaybackSupported method\n\nThe method checks whether the provided AudioFormat can be played\nvia currently connected output devices w/o SRC or downmixing\nby the framework.\n\nThe implementation methods are called \u0027isDirectOutputSupported\u0027\nto match APM\u0027s terminology.\n\nBug: 120044865\nTest: atest CtsMediaTestCases:AudioTrackTest#testBuilderValidate\nChange-Id: I11769f796c34583fb2641415d2faab00ac526123\n"
    },
    {
      "commit": "79222e7a39a73f5c635958a62f6f0ccde250e04c",
      "tree": "8a38da61031fdf19af175b79dbce4b1559f593aa",
      "parents": [
        "92125f621579089621d4e8251761dae453f22b1f",
        "4c1ef4b64d113be6ee1106375bd10cdc643e80d8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 05 22:28:55 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 05 22:28:55 2018 +0000"
      },
      "message": "Merge \"audio policy: concurrent capture\""
    },
    {
      "commit": "9e29ea8bd0be596c65d93ae196afac8339e00bfa",
      "tree": "42ba005a56b01d721e223bff6b9b894e239d641c",
      "parents": [
        "973db02ac18fa1de9ce6221f47b01af1bdc4bec2"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Thu Nov 08 14:28:10 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 04 13:51:20 2018 -0800"
      },
      "message": "Fix build issue\n\nTest: make\n\nChange-Id: I5563ff049ddc384556976f577a6d0ebc020516c8\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "4c1ef4b64d113be6ee1106375bd10cdc643e80d8",
      "tree": "203b9b1ca84efc9342514175d616c0a7c22150ad",
      "parents": [
        "973db02ac18fa1de9ce6221f47b01af1bdc4bec2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 13 16:46:26 2018 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 04 12:06:37 2018 -0800"
      },
      "message": "audio policy: concurrent capture\n\nImplement concurrent capture in audio policy manager:\n- Attach AudioRecord client to already opened input when possible\ninstead of systematically opening a new input for each client.\n- Always allow inputs to start even in case of concurrency.\n- Clients are selectively silenced based on their app state by audio\npolicy service.\n- In case of concurrency on a given input stream, device and source is\nchosen based app states and source priority.\n\nBug: 111438757\nTest: Manual capture tests with solotester and Camera, Assistant and Duo\nTest: CTS tests for AudioRecord\n\nChange-Id: I302710ff545f67361d9aca89e81de40771ce7fb0\n"
    },
    {
      "commit": "e8c8b4359835a12a3d1bf84f281c36bce031bb33",
      "tree": "cac3af958f25ed4f7163b8ddfe2134a957aafc9b",
      "parents": [
        "6b6a0f05248fc646d42f09cb891d8b6fda19426e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 17 10:08:02 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 03 16:28:21 2018 -0800"
      },
      "message": "audio policy: implement uid state management for capture\n\nReceive app state updates from ActivityManager and use it to implement\nconcurrent capture policy.\n\nBug: 111438757\nTest: Manual test with solotester app concurrently with Camera, Duo and\nAssistant\n\nChange-Id: I979ad4ecc8b926abb64e1b321b43bd7bd442a8f1\n"
    },
    {
      "commit": "1268b28c5c65691532d3ffb503a199c677c801b9",
      "tree": "b83077c5746df6b313973b86f9aa94e52383f310",
      "parents": [
        "d46012025aed1bc366982bc0edc93c56c034828e",
        "dfa1e8ab20ce54f3cde479e1305861867abcdbea"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Nov 30 23:24:18 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 30 23:24:18 2018 +0000"
      },
      "message": "Merge \"Policy config parser: migrate to BP and drop legacy format\""
    },
    {
      "commit": "dfa1e8ab20ce54f3cde479e1305861867abcdbea",
      "tree": "fa10b8bfcbc2e3378249a7a67afc2fdd455c5c93",
      "parents": [
        "7a9f05a68512926f81339d3e42def2ecd9adffa0"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Oct 26 16:42:07 2018 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Nov 30 09:44:42 2018 -0800"
      },
      "message": "Policy config parser: migrate to BP and drop legacy format\n\nMigrate to android.bp as test need to use the library.\nAs bp do not support conditional statement, and this format has been\ndeprecated for 3 years, drop the pre-treble .conf parser.\n\nAUDIOSERVER_MULTILIB is no longer use as it does not make sense for a\nstatic lib.\n\nBug: 114303641\nBug: 111681420\nTest: compile, boots\nChange-Id: I9f429b306ecfbb80116445ba6297a4b3d6dc57f6\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "c55606b22fb908f030150b82194ded0c2038cab3",
      "tree": "cf9a36b5d97e15a944902bd7734aafe466a402c6",
      "parents": [
        "cdbd8711a9a77f4cb5b53729334cf582afbc0110",
        "02743e21156fa3063dc3718982e291cf60ec37cd"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 29 20:58:49 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 29 20:58:49 2018 +0000"
      },
      "message": "Merge \"Audio policy: Use surround formats from audio config instead of hardcoded\""
    },
    {
      "commit": "02743e21156fa3063dc3718982e291cf60ec37cd",
      "tree": "0339c12971b8145ebca1b5c523390dc02654b945",
      "parents": [
        "e4eb88fa5fe62a9b6b709fbf2ff26f37acf6db20"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Nov 28 15:56:55 2018 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Nov 29 19:21:45 2018 +0000"
      },
      "message": "Audio policy: Use surround formats from audio config instead of hardcoded\n\nThis is a follow-up to ag/3835377, where the intention was to\nuse SURROND_FORMATS array, which is lately been replaced by\nan array from APM\u0027s config.\n\nBug: 67479735\nBug: 117602867\nTest: make\nChange-Id: I31f63856d8fb06ff9ac0f03b9ec1600f0fcee30b\n"
    },
    {
      "commit": "938b6ca467c19285ec89b98316a13891012887d4",
      "tree": "b99f63d14bc9d9dea0ab69cfcc983d11ede7c725",
      "parents": [
        "4183d37fcc58ed1e221c72b298f2d95c9b656c01",
        "2091949018103af337a5cd48de789d51fa3a6dc0"
      ],
      "author": {
        "name": "Nadav Bar",
        "email": "nadavbar@google.com",
        "time": "Thu Nov 29 17:14:32 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 29 17:14:32 2018 +0000"
      },
      "message": "Merge \"Support playing to uplink stream using the VOICE_CALL stream as well\""
    },
    {
      "commit": "2091949018103af337a5cd48de789d51fa3a6dc0",
      "tree": "1a17e433d9bc01c1332e096afe56e8e704289511",
      "parents": [
        "9a4f4c23bf39f9e8169a62c55b3ccbde3e26693f"
      ],
      "author": {
        "name": "Nadav Bar",
        "email": "nadavbar@google.com",
        "time": "Tue Nov 20 10:20:51 2018 +0200"
      },
      "committer": {
        "name": "Nadav Bar",
        "email": "nadavbar@google.com",
        "time": "Thu Nov 29 15:01:35 2018 +0200"
      },
      "message": "Support playing to uplink stream using the VOICE_CALL stream as well\n\nAdded support for playing audio to the uplink stream also using the\nVOICE_CALL stream. This will ensure the uplink playback have the same\ncharacteristics as other audio which is being played back during a call,\nand can by pass the DND mute.\n\nChange-Id: I1830bebb5fca724de561fbde8445fcee95f9c930\nTest: tested manually.\nBug: 117866278.\n"
    },
    {
      "commit": "73c3a18dcc23703fa51a550cca9d290f392de1bc",
      "tree": "03fa4f3e45e97b7bb6dfcb8e0031ead5f69a11b3",
      "parents": [
        "f1188418c6220f27ed7ec6491380062c039a7b42",
        "b78763e6098baa33f441abef74d53636f72c6d6e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 28 23:38:13 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 28 23:38:13 2018 +0000"
      },
      "message": "Merge \"audio policy: receive assistant and a11y service UIDs\""
    },
    {
      "commit": "e6714284a250fe474e57cc9744e08c76e23c5c3b",
      "tree": "c3f27de568de1d9d82b765980f9ebfc6326128fc",
      "parents": [
        "db0532ba88de07e3ee8aa48db31e0ed5b5eff903",
        "f32108e7bab9ce2eb8107678c74701d1428a7b2c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 28 18:08:24 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 28 18:08:24 2018 +0000"
      },
      "message": "Merge \"audio policy: extend API used to silence capture from a given app\""
    },
    {
      "commit": "c3ce0d0f9b4a4be2df370407ee5540a7dd6f67e4",
      "tree": "a6246b7b160b407eaf926790eb52e8c804de5980",
      "parents": [
        "9a4842894af7b5b7db4f152ddd1420660876c36f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 23 14:15:40 2018 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Nov 27 14:23:27 2018 -0800"
      },
      "message": "audio policy: fix regression in Audio MMAP device selection\n\nCommit f3a5a601 caused a regression for AAudio MMAP playback use case\nwhere disconnecting currently selected device does not generate a\ndisconnect callback to client causing silent audio until the\nstream is closed and reopened.\n\nThis CL fixes a logical flaw in method SessionRouteMap::getActiveDeviceForStream()\nintroduced by commit f3a5a601 causing a stale forced device to be\nreturned after this device was disconnected.\n\nBug: 111711159\nBug: 79878501\nTest: CTS tests for audi routing and AAudio. Audio smoke tests\nMerged-In: Ibb16e26bc59b9e3f99bc74eb944601c6be5026dd\nChange-Id: Ibb16e26bc59b9e3f99bc74eb944601c6be5026dd\n"
    },
    {
      "commit": "b708035c652d32b85942f5fd5b5b12376daae03e",
      "tree": "8b8f7ee148e986ec38ea22704a0f214ac86e14a3",
      "parents": [
        "3db425c9c47eeae48b0585e5650e8d4a4c939942",
        "71085b5a772c4b50ce80692a6268713bd2eae585"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Nov 27 11:32:20 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Nov 27 11:32:20 2018 -0800"
      },
      "message": "Merge \"Keep verbose log statements, but silence them by default\" am: 9a4842894a am: b4dfe1c017\nam: 71085b5a77\n\nChange-Id: I60026496b923e303f97adebb365f24fe3a25d845\n"
    },
    {
      "commit": "71085b5a772c4b50ce80692a6268713bd2eae585",
      "tree": "0b106f24d62dc68dda5bf43f28085d31eabfcc3d",
      "parents": [
        "b860930ae9d631c520b6e69f50223fd69bde2d30",
        "b4dfe1c0179cb6894c43583cdb6a01e2c33de70f"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Nov 27 11:28:06 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Nov 27 11:28:06 2018 -0800"
      },
      "message": "Merge \"Keep verbose log statements, but silence them by default\" am: 9a4842894a\nam: b4dfe1c017\n\nChange-Id: I76fb0c7d906533f9fb10026f43dde25ab45e7755\n"
    },
    {
      "commit": "9a4842894af7b5b7db4f152ddd1420660876c36f",
      "tree": "86abb7b1098b96270d492644f166f8de2c1f14d5",
      "parents": [
        "5f14ecce213ec2152e1cb8470663e2b89ee74235",
        "71c9091118aefb3cadb96955e7618ca4e296dd33"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Nov 27 19:16:26 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 27 19:16:26 2018 +0000"
      },
      "message": "Merge \"Keep verbose log statements, but silence them by default\""
    },
    {
      "commit": "b78763e6098baa33f441abef74d53636f72c6d6e",
      "tree": "f9dbf113c768761cfa7b10ebcce917a2b7a2beba",
      "parents": [
        "f32108e7bab9ce2eb8107678c74701d1428a7b2c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 17 10:08:02 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 26 14:32:41 2018 -0800"
      },
      "message": "audio policy: receive assistant and a11y service UIDs\n\nAdd APIs to communicate assistant and accessibility service UIDs\nto audio policy service in order to implement the new concurrent\ncapture policy.\n\nBug: 111438757\nTest: enable and disable Google Assistant and Voice Access.\n\nChange-Id: Ia804613051edab2ebd57d317b5b7509c98e7c6b4\n"
    },
    {
      "commit": "f32108e7bab9ce2eb8107678c74701d1428a7b2c",
      "tree": "4282d410be7fde9df128a6c3ecb5775198aebc5f",
      "parents": [
        "3df5310387cb396892d49f3576ba52a22413baa6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 04 17:22:04 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 26 14:32:41 2018 -0800"
      },
      "message": "audio policy: extend API used to silence capture from a given app\n\nIn preparation for concurrent capture policy, extend current audio policy\ninterface setRecordSilenced(uid...) to a more generic API setAppState(uid...)\n\nBug: 111438757\nTest: CTS test AudioRecord.testRecordNoDataForIdleUids\nChange-Id: Idba540e2724a6c71ec275a5ff73c312e5b6040a4\n"
    },
    {
      "commit": "b2e9548ad4fb65707bb04054918bdadd46bae405",
      "tree": "91a4c3e0e6de11dbddf26aaeb6cb43041e568316",
      "parents": [
        "b74ba734a6268dffc5ff5a68a04531478e9d9079",
        "4515129c59206406322d2efb4581cf0dcd66096d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 26 19:07:34 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 26 19:07:34 2018 +0000"
      },
      "message": "Merge \"audiopolicy: use an exact match for MMAP input\""
    },
    {
      "commit": "4326a4cc0353a34d6a229214352f529c0a69bf92",
      "tree": "3c382d8bc4c232e1e8366427fc7dd32ceaa56f38",
      "parents": [
        "5a6631a12b381864a0a612a3dea21a2c887dc5a6",
        "0303a7d7922f95e59f310805557b7d9e0a78fbc8"
      ],
      "author": {
        "name": "haobo10173529",
        "email": "hao.bo15@zte.com.cn",
        "time": "Mon Nov 26 09:22:41 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Nov 26 09:22:41 2018 -0800"
      },
      "message": "Merge \"audiopolicy: Fixed bug for rule file of strategy sonification respectful\" am: 829a6bd189 am: 6f960fad88\nam: 0303a7d792\n\nChange-Id: I46b5a1b2e8d3d8ff1f756650e0453b62e5c4a016\n"
    },
    {
      "commit": "0303a7d7922f95e59f310805557b7d9e0a78fbc8",
      "tree": "f597aa5a9ed832fa9d922d2615332e49fea81a5c",
      "parents": [
        "cbe2ae8b9cad60a02dcd47b6385f9d2a1e5f15ec",
        "6f960fad88c2af0e1c0674e3a7d65206e47d03c8"
      ],
      "author": {
        "name": "haobo10173529",
        "email": "hao.bo15@zte.com.cn",
        "time": "Mon Nov 26 09:13:13 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Nov 26 09:13:13 2018 -0800"
      },
      "message": "Merge \"audiopolicy: Fixed bug for rule file of strategy sonification respectful\" am: 829a6bd189\nam: 6f960fad88\n\nChange-Id: I766471101b5826d0022afc07e5bab0e41c6b0c2b\n"
    },
    {
      "commit": "829a6bd189bacce2aff6360dda2137b297673ccb",
      "tree": "b653503fef85b9f9b7c1f34ab358f0728672bb23",
      "parents": [
        "1d70702b178cf317dd4df58583e44c1d4507da79",
        "acb5f586becd1cd13872ebe711e339be9b14ff3a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 26 16:52:00 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 26 16:52:00 2018 +0000"
      },
      "message": "Merge \"audiopolicy: Fixed bug for rule file of strategy sonification respectful\""
    },
    {
      "commit": "f7adb3f07332a6b7af8272a04757f282ad311b58",
      "tree": "5458ac5666292f4b6e34c754cc1b7f9cc33a1de8",
      "parents": [
        "d4d7f1ffcab75a365939ee43d5cb83fc3e0acad4",
        "5928ec9661758549cbda50710a152050136d5ddc"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 21 08:35:40 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 21 08:35:40 2018 -0800"
      },
      "message": "Merge \"Ignore outputs with direct flag when selectOutput.\" am: a1270b044b am: f3bcc30de3\nam: 5928ec9661\n\nChange-Id: Id97fcda0eb511f0711cd0adc93763d46c940cf4c\n"
    },
    {
      "commit": "5928ec9661758549cbda50710a152050136d5ddc",
      "tree": "862e2f8b138619700196c4a82524120b2af9aade",
      "parents": [
        "4ec50b592b4d5fac7abf50561f1d74732127371a",
        "f3bcc30de39025aa1950af7685aad5107116724d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 21 08:32:26 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 21 08:32:26 2018 -0800"
      },
      "message": "Merge \"Ignore outputs with direct flag when selectOutput.\" am: a1270b044b\nam: f3bcc30de3\n\nChange-Id: Ia48350c386e665ebeecb095a58e2aca64f1a1312\n"
    },
    {
      "commit": "1794d71f7a3777595503b5c6c667c3e0d83baad6",
      "tree": "330b5f020b020c586fea46daa61d0f3588dbffd2",
      "parents": [
        "4462ff08c41880644903702e4734cda7a320aadd"
      ],
      "author": {
        "name": "chenhg",
        "email": "chenhg@synaptics.com",
        "time": "Tue Oct 09 15:20:37 2018 -0700"
      },
      "committer": {
        "name": "chenhg",
        "email": "chenhg@synaptics.com",
        "time": "Tue Nov 20 16:56:21 2018 -0800"
      },
      "message": "Ignore outputs with direct flag when selectOutput.\n\nBUG: 117479947\nTest: android.media.cts.AudioNativeTest#testPlayStreamData\n\nChange-Id: I0eec86185b5582f82267a24f3568244bf1c8378f\n"
    },
    {
      "commit": "4515129c59206406322d2efb4581cf0dcd66096d",
      "tree": "ecd075adb351fc3cc59b31fc71e189b377ccd2a7",
      "parents": [
        "eb8b659add93161d169edbe1f94243939df953a6"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Nov 20 16:37:29 2018 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Nov 20 16:43:37 2018 -0800"
      },
      "message": "audiopolicy: use an exact match for MMAP input\n\nAudioFlinger was returning a stereo input if mono was requested\nbut not supported.\nBut AAudio did not know it was stereo so the data was corrupted.\nSo if MMAP input is requested, do an exact match in\nisCompatibleProfile().\n\nBug: 119518992\nTest: see bug for repo steps\nTest: adb shell aaudio_loopback -tm -pl -Pl -x -X -C1\nChange-Id: I925efecca9c99b8a2b7bde3826da4d9e9e663ee1\n"
    },
    {
      "commit": "acb5f586becd1cd13872ebe711e339be9b14ff3a",
      "tree": "72a2d922a63545657bac722473cf9736ae47b958",
      "parents": [
        "6bff4d55bf5a904e00cc9f2d189925d64ebdd6fd"
      ],
      "author": {
        "name": "haobo10173529",
        "email": "hao.bo15@zte.com.cn",
        "time": "Mon Nov 19 11:32:15 2018 +0800"
      },
      "committer": {
        "name": "Jia Jia",
        "email": "jia.jia@zte.com.cn",
        "time": "Mon Nov 19 15:25:04 2018 +0000"
      },
      "message": "audiopolicy: Fixed bug for rule file of strategy sonification respectful\n\nIf \u0027USE_CONFIGURABLE_AUDIO_POLICY\u0027 enabled, \u0027engineconfigurable\u0027\nwill be used for devices selection. A bug was found in rule file\nfor strategy_sonification_respectful if rule file used to generate\nPolicyConfigurableDomains.xml, and in that case the function of\nAudioPolicyManager::getDevicesForStream will always return wrong\ndevices after device2, e.g., headset, connected and removed.\n\nAfter removed, device2 should be reset to \u0027none\u0027, otherwise the\ndevices returned for strategy_sonification_respecful will always\nnot changed.\n\nChange-Id: I656781ed46b73c5bef1f18612700a5547ea0043f\n"
    },
    {
      "commit": "7bd9b8d6f218550323db5e8c191175217a349812",
      "tree": "e5afd822491fed511c660d9f0413dd6896893988",
      "parents": [
        "f02f367f5ae3376a8305d0ae97548819696f457e"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Nov 15 02:09:03 2018 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Nov 15 02:09:03 2018 +0000"
      },
      "message": "Revert \"Audio Policy: add audio.msd.disable property for MSD detour\"\n\nThis reverts commit f02f367f5ae3376a8305d0ae97548819696f457e.\n\nReason for revert: Committed accidentally\n\nChange-Id: I3cc92123fc2dca1f1ab497655c6d2f9b10853920\n"
    },
    {
      "commit": "71c9091118aefb3cadb96955e7618ca4e296dd33",
      "tree": "df749f6e0410b0aa5046a4a5d53dc385633f086f",
      "parents": [
        "a0fd81b4ceeee9a946aa1c7ec033e659a556988b"
      ],
      "author": {
        "name": "Tomoharu Kasahara",
        "email": "tomoharu.kasahara@sony.com",
        "time": "Wed Oct 31 09:10:12 2018 +0900"
      },
      "committer": {
        "name": "Tomoharu Kasahara",
        "email": "tomoharu.kasahara@sony.com",
        "time": "Thu Nov 15 09:16:54 2018 +0900"
      },
      "message": "Keep verbose log statements, but silence them by default\n\nDo not strip out ALOGV statements in production builds,\nbut keep them silent by setting the default log level\nfor AudioPolicyManager to D.\n\nBug: 113756665\nTest: adb shell setprop log.tag.APM_AudioPolicyManager V\n      check logcat for verbose log messages from APM\nChange-Id: I0129a07e3afa11634945763b8d976699ce13093e\n"
    },
    {
      "commit": "f02f367f5ae3376a8305d0ae97548819696f457e",
      "tree": "9551f31b1aaabfa9a283c5536e362ffe713201b2",
      "parents": [
        "69985f830f322ef33cf0b947a2fe09ec04d34de2"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Nov 09 12:44:16 2018 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Nov 09 12:47:41 2018 -0800"
      },
      "message": "Audio Policy: add audio.msd.disable property for MSD detour\n\nAPM checks audio.msd.disable property before reporting presence\nof the MSD module to allow bypassing the MSD in tests and\nfor vendors to create tracks directly on the main output.\n\nBug: 63901775\nTest: MSD prototype\nChange-Id: I8ffb12fc81b3c71d810eeb8d90f54fef282e80f2\n"
    },
    {
      "commit": "ee168999ca451a0c1b03cd6acd0449f24e487e25",
      "tree": "e0d71d95bac4aa704e2341fa51f89165736ec0aa",
      "parents": [
        "824d1ff69c0487ee8ecdb8836ebfd056c2daf83e"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Oct 12 09:27:45 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Nov 01 16:21:58 2018 +0000"
      },
      "message": "MSD: Add HW A/V Sync flag for the output connection from MSD\n\nThis is recommended for TV confugrations.\n\nBug: 63901775\nBug: 111746865\nTest: MSD prototype with surround and stereo-only sinks\nChange-Id: Ia3e0d077f41bcee8e3b0ee05838d023f4572b66f\n(cherry picked from commit 726c9947933ed4a9153c56d8e3b5d0757ee03144)\n"
    },
    {
      "commit": "985d15a9c7e45e7e7021aa53a48de3fa222e3815",
      "tree": "08ff1bb1abb133aa5c1a50c8f1fbb0640c53b6a2",
      "parents": [
        "efd99ec863f5a69f20dfacea3f6f4835962c5362"
      ],
      "author": {
        "name": "nobuaki tanaka",
        "email": "nobuaki.xb.tanaka@sony.com",
        "time": "Wed Jul 19 13:38:51 2017 +0900"
      },
      "committer": {
        "name": "Tomoharu Kasahara",
        "email": "tomoharu.kasahara@sony.com",
        "time": "Tue Oct 30 16:06:36 2018 +0900"
      },
      "message": "Apply stream volume for the correct device\n\nDuring music playback via headset, if sonification stream sounds,\nsonification volume is limited to music volume in computeVolume().\nHowever if application plays sonification stream continuously,\nsetStreamVolumeIndex can be called before previous sonification\nsound stops.\nThis behavior leads unexpected volume settings then\nsonification volume is not limited to music volume.\nThis fix sets the correct device which is not filtered by\nVolume::getDeviceForVolume then avoid to update incorrect device volume.\n\nBug: 118098429\nTest: Repeat alarm during music playback from headset\n\nChange-Id: I92f9bd070dd9d5b7b523147e6c2ca1f233a53eb4\n"
    },
    {
      "commit": "d6b4110320591df820d9c9db5e31b20a0072f47e",
      "tree": "af94208f43671baedf417ed7e488d26690ac99b1",
      "parents": [
        "e0bc1a9b8ee77919211819d03404aca893f8bcbf",
        "dc3d7f5b463381e6c8043b06de6e2de7a2176517"
      ],
      "author": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Wed Oct 24 14:46:51 2018 -0700"
      },
      "committer": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Wed Oct 24 14:46:51 2018 -0700"
      },
      "message": "Merge pie-platform-release to aosp-master - DO NOT MERGE\n\nChange-Id: Ie34345bdf4de88a81005e7afa4db54a3be7478f9\n"
    },
    {
      "commit": "688a97a281ab08efc9284c85ce8e803b40c00d66",
      "tree": "d3bcf5b339bb374aecb385145d8d5ebb548fc606",
      "parents": [
        "5cdad66f74fffa82410f51677ab489084c3be799",
        "6e97e8078287f5c0a49be6283de401c454796320"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Oct 16 18:19:39 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 16 18:19:39 2018 -0700"
      },
      "message": "Merge \"audio: fix switch to break or use FALLTHROUGH_INTENDED\" am: 599f3305dc\nam: 6e97e80782\n\nChange-Id: Iabe50e2862e3b667763b6d868764465c915fb818\n"
    },
    {
      "commit": "6e97e8078287f5c0a49be6283de401c454796320",
      "tree": "a4e55f3a8388fa21ef3fac084cb6db646831b20e",
      "parents": [
        "387b0b64c245d66b55ac33db4b551b612bdda4ed",
        "599f3305dcb7f482289fac679cb1a63ad78aae4e"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Oct 16 18:12:06 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 16 18:12:06 2018 -0700"
      },
      "message": "Merge \"audio: fix switch to break or use FALLTHROUGH_INTENDED\"\nam: 599f3305dc\n\nChange-Id: I179a79cc58c02c59dc08a8cc8ef1e6e33899ccf3\n"
    },
    {
      "commit": "39399600e89237ba8e3f27f68b58c204c3cdd679",
      "tree": "e3b24ce1074058b20cc54ae46a54e118b6342526",
      "parents": [
        "f5b1d442c7e2bf4de3ba0378af29585a5adcdc93"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Oct 16 14:42:13 2018 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Oct 16 14:42:13 2018 -0700"
      },
      "message": "audio: fix switch to break or use FALLTHROUGH_INTENDED\n\nTest: compile, sanity\nBug: 117509050\nChange-Id: I9439f201b3d1f4485ab698d7bed063a02f17f8f0\nMerged-In: 320fd852fb98174804e5f505773500f1cf76f3af\n(cherry picked from commit 320fd852fb98174804e5f505773500f1cf76f3af)\n"
    },
    {
      "commit": "00987aac7d29168b94cb8263af7d9783f62ef6b5",
      "tree": "1835dca88b28b82d24cf760450187674a578bcbb",
      "parents": [
        "a1e48aa38987cd0460bbfc57e2b0fc513df17283"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Oct 10 15:59:33 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Oct 10 17:49:41 2018 -0700"
      },
      "message": "AudioPolicyManager: Update StreamDescriptor dump to fix warning/build break\n\nFix for partner-q-fs-release-generic-fs mini_arm64-userdebug\nwhich doesn\u0027t define USE_XML_AUDIO_POLICY_CONF.\nThis define must be removed otherwise StreamDescriptor.cpp\nisn\u0027t compiled.\n\nTest: compile with removed USE_XML_AUDIO_POLICY_CONF\nBug: 117574496\nChange-Id: Ic196739ed26b81092d14fbc2779b89a7ec9ecba8\n"
    },
    {
      "commit": "320fd852fb98174804e5f505773500f1cf76f3af",
      "tree": "3eb8319d3076340883afe026b540c05ef7b8c50a",
      "parents": [
        "24bf51ae92285202bdbe3fa00c7c83e93c5a03e2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Oct 09 14:06:37 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Oct 10 11:12:37 2018 -0700"
      },
      "message": "audio: fix switch to break or use FALLTHROUGH_INTENDED\n\nTest: compile, sanity\nBug: 117509050\nChange-Id: I9439f201b3d1f4485ab698d7bed063a02f17f8f0\n"
    },
    {
      "commit": "24bf51ae92285202bdbe3fa00c7c83e93c5a03e2",
      "tree": "a5a5b4eb56e7edefcb3ffc1c6742f2e6f1c16404",
      "parents": [
        "72b9ee114d4b5b0017578afe826e8431f0362f96",
        "9baf44fbba5b0e794cb9f2cbe0c7cbe154b27e98"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Oct 09 19:34:53 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 09 19:34:53 2018 +0000"
      },
      "message": "Merge \"AudioPolicyManager: Abort on input descriptor inconsistency\""
    },
    {
      "commit": "72b9ee114d4b5b0017578afe826e8431f0362f96",
      "tree": "1d110a34c0f7b6442be8e316c1936294a7fac87c",
      "parents": [
        "b003ba18ad8746ef945d0622586b140f3dfadcbe",
        "c29d82b089c3a6409640c697c4832eb5de357a54"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Oct 09 17:32:16 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 09 17:32:16 2018 +0000"
      },
      "message": "Merge \"AudioPolicyManager: Convert dump to use String8 (part 2)\""
    },
    {
      "commit": "b003ba18ad8746ef945d0622586b140f3dfadcbe",
      "tree": "4a6052b8a04ee6b14e262b8aa30a7a0e964560cb",
      "parents": [
        "7e8b1832c6f99a7998f81b942472f456efd24830",
        "bb54e20ba9afcf61cc6b41500ff8ab3dfc897203"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Oct 09 17:07:14 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 09 17:07:14 2018 +0000"
      },
      "message": "Merge \"AudioPolicyManager: Convert dump to use String8 (part 1)\""
    },
    {
      "commit": "c29d82b089c3a6409640c697c4832eb5de357a54",
      "tree": "3e61976439f1942204d30a084a602a081b0ea918",
      "parents": [
        "bb54e20ba9afcf61cc6b41500ff8ab3dfc897203"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Oct 05 12:23:17 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Oct 08 13:11:51 2018 -0700"
      },
      "message": "AudioPolicyManager: Convert dump to use String8 (part 2)\n\nTest: dumpsys of APM, diffs.\nBug: 117333182\nChange-Id: I18761416ec9dc97418b41054f85af67e6eb59f3a\n"
    },
    {
      "commit": "bb54e20ba9afcf61cc6b41500ff8ab3dfc897203",
      "tree": "99d0c86990fbf905083d4f41c215311ec75c4e09",
      "parents": [
        "d10b735cfd4eea74846bb5f53d37c8c2a3114d58"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Oct 05 11:42:02 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Oct 08 12:59:33 2018 -0700"
      },
      "message": "AudioPolicyManager: Convert dump to use String8 (part 1)\n\nTest: dumpsys of APM, diffs.\nBug: 117333182\nChange-Id: Ic046acb491efa363423b38a389b046c09ae9d5c9\n"
    },
    {
      "commit": "9baf44fbba5b0e794cb9f2cbe0c7cbe154b27e98",
      "tree": "0bdd4f54a8972b4bee5e4b2aa87c3f4b9383a88e",
      "parents": [
        "4cc873cc1dcf9e69572c2e52b68af1aebea0ad98"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Oct 05 17:58:00 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Oct 08 19:34:25 2018 +0000"
      },
      "message": "AudioPolicyManager: Abort on input descriptor inconsistency\n\nTest: audio sanity\nBug: 116415490\nChange-Id: I8e1953f75af5d886a6109c05473234eb4268ac5b\n"
    },
    {
      "commit": "778bc1f6393c5437acb45943866d88607c67b1e5",
      "tree": "31e6043ab875d05a18636faa5da5d3f6313f3b2b",
      "parents": [
        "b4e880abdcde87ff89937f4f8de819af0cfe371f"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Sep 14 16:28:52 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Oct 05 09:32:51 2018 -0700"
      },
      "message": "audiopolicy: Move surround configuration to xml\n\nMove the configuration for supported surround formats\ninto APM xml config file.\n\nBug: 116356348\nTest: on elfin\nChange-Id: Ifba218fa2c03136a3a59eeee8077b00fba77c069\n"
    },
    {
      "commit": "4db16c962ff102e3fb722940c039654407e997f2",
      "tree": "aa117525900f92c290d301247edb2b465949c28d",
      "parents": [
        "dadea6249d41c155a9835dfd8005c6dbe63c773e",
        "86112351b499214284a4f52a6e0b4a38c81162cf"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 04 17:00:29 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 04 17:00:29 2018 +0000"
      },
      "message": "Merge \"audiopolicy: Fix crash in getMsdPatches\""
    },
    {
      "commit": "86112351b499214284a4f52a6e0b4a38c81162cf",
      "tree": "51feef4606253b8085589c55e3b89ff62bc75f9d",
      "parents": [
        "1a45cef93b8df626bed1d19e8830148627151d8b"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 04 09:02:49 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 04 09:07:19 2018 -0700"
      },
      "message": "audiopolicy: Fix crash in getMsdPatches\n\nAdded a missing check for the possibility of not having an MSD module.\nRemove a check for the module handle, as mHwModules by design\ncan\u0027t contain modules with AUDIO_MODULE_HANDLE_NONE (see\nAudioPolicyManager::initialize).\n\nBug: 117253728\nTest: see the repro steps in the bug\nChange-Id: Ia8761a2e3ceccf9595b672c8ba48e086b457e3ae\n"
    }
  ],
  "next": "d10b735cfd4eea74846bb5f53d37c8c2a3114d58"
}
