)]}'
{
  "log": [
    {
      "commit": "153f92d57b6a1d2fdc7fa601bbc86db31646a8f9",
      "tree": "0d380f13a58ff8fdf073dd974dcb55e4d18ef75c",
      "parents": [
        "45986c74cd5253bcc81b1b4954e3ff3300f7e6d8"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Dec 18 18:33:28 2018 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Feb 06 15:49:11 2019 -0800"
      },
      "message": "Add secondary output to audio tracks\n\nThe secondary are returned from mixes (from DAP loopback\u0026render),\nfrom getOutputForAttr.\nAll getOutputForAttr* of the stack are update.\nInternal getOutputForAttr use descriptor, external one use handles.\n\nThe secondary output are saved in each track and the track is\ninvalidated if the list of secondary output changes.\n\nIn audio flinger, create a pair of recordTrack \u0026 patchTrack to pipe\nthe intercepted audio audio to the secondary output.\n\nTest: adb shell audiorecorder --target /data/file.raw\nBug: 111453086\nChange-Id: Id6523d9e383c15a0e39313d5f355df809b7e72fe\n"
    },
    {
      "commit": "ba98acb34e60b2bf2dac5a55c4acbb80b5408568",
      "tree": "e55683923a4060bbfd59f87f1030b0218371ef18",
      "parents": [
        "1086b05f7d3cb296d55facd88621f16c2737cf33"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Dec 18 16:51:44 2018 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Feb 06 09:38:23 2019 -0800"
      },
      "message": "Audiopolicy: Move AudioPolicyMixCollection in helper function\n\nNo functional changes\n\nTest: adb shell audiorecorder --target /data/file.raw\nBug: 111453086\nChange-Id: I300450742a3d6f0b22f69a25eeda7800e0a27943\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "1086b05f7d3cb296d55facd88621f16c2737cf33",
      "tree": "58254c1bc6f07d5d9f8645ae32b131239e74ffa8",
      "parents": [
        "0435a4dcb66366da53cf4544c941a40ed2b9c2bd"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Dec 18 17:52:55 2018 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Feb 05 17:19:46 2019 -0800"
      },
      "message": "Add MIX_ROUTE_FLAG_LOOP_BACK_RENDER\n\nTest: adb shell audiorecorder --target /data/file.raw\nBug: 111453086\nChange-Id: I276a10921aac9f5e709c0a44c661cbbdc94e49db\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "0435a4dcb66366da53cf4544c941a40ed2b9c2bd",
      "tree": "d0963c6f1081a0f6008a56fbc03f6f5f33ae3505",
      "parents": [
        "f63dbf127223716fad9de179862eb4fde4fd64e7"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Feb 01 18:17:25 2019 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Feb 05 02:31:49 2019 +0000"
      },
      "message": "Audiopolicy: Fix DeviceVector::getDevice logic\n\nIt was currently ignoring address even if the default format was passed.\n\nTest: adb shell audiorecorder --target /data/file.raw\nBug: 111453086\nChange-Id: I44a17fa32c4dd32c426d20bf0902bd406682743c\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "58d4be5a5a5d24f18b7a207148c7caa317fef366",
      "tree": "37e0a5e790187815757bd906c7767cfcea0e1f74",
      "parents": [
        "6054a7765cfd65c34d49a5a435bee1d0cdfb2d32"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Tue Nov 06 15:30:12 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Feb 05 00:18:00 2019 +0000"
      },
      "message": "audio: get rid of hardcoded translation stream \u003c--\u003e attributes\n\nIMPORTANT NOTE:\n    CL depends on another CL in frameworks/base\n    https://partner-android-review.googlesource.com/c/platform/frameworks/base/+/1206275\n\nAudioProductStrategies offers the possibility to dynamically\ntranslate attributes to stream types (and vice versa) within\naudio policy engine.\nLegacy engine has hard coded rules to maintain the translation\nservice.\n\nThis patch removes the hardcoded translation within the helper\nand replaces them by AudioProductStrategy APIs.\n\nTest: AudioPolicyTests: AudioProductStrategiesAllStreamsTest\nIt loops on all stream types supported by strategy and ensures\ndevice selection matches. Hard coded stuff would prevent right device\nselection.\nTest: CTS: AudioTrackTest AudioRecordTest\nTest: audio smoke test on sailfish, walleye blueline\n\n\nChange-Id: I76589df5555136ed49dbacc7aac9b0b5e828bef2\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "6054a7765cfd65c34d49a5a435bee1d0cdfb2d32",
      "tree": "37390182206a6401daead33e48e1d60d6336d521",
      "parents": [
        "f579db5aa9e1cbbe5a8b7689e319913e154cda3b"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Tue Nov 06 13:10:58 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Feb 02 10:43:22 2019 -0800"
      },
      "message": "audiopolicy: engine: remove deprecated APIs\n\nTest: make\n\nChange-Id: Idfcb060095da92adb286706d4eaf9b9a78a8c61a\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "f579db5aa9e1cbbe5a8b7689e319913e154cda3b",
      "tree": "8cbb24a261decd14aad3fcbfa4e5e32abe607686",
      "parents": [
        "c005e569c7bae3f8c49660c9388c3076046069f5"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Tue Nov 13 11:25:16 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Feb 02 10:43:22 2019 -0800"
      },
      "message": "audiopolicy: exclusive Preferred Device\n\nIt allows to force the routing of music during call without\naffecting clients that does not explicitely requested to use\nanother device than the one decided by the policy during call\n(which is TELEPHONY TX).\n\nIt fixes differently Bug 111467967.\n\nTest: make\n\nChange-Id: I6034f0d2568e1b2a1e600d9ae1453fd0c60ed02e\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "c005e569c7bae3f8c49660c9388c3076046069f5",
      "tree": "8612dc3a3d69c018b303bf8e56aa142db5465e8e",
      "parents": [
        "d0ba9ed06c61ab3e66627e027fbc34ba998140ee"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Tue Nov 06 15:04:49 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Feb 02 10:31:32 2019 -0800"
      },
      "message": "audiopolicy: apm: switch to new Engine APIs\n\nTest: make\nChange-Id: Iedc2268852ee0bce32b67cfd324395c48cb33424\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "d0ba9ed06c61ab3e66627e027fbc34ba998140ee",
      "tree": "49948f80335bea4a358c7f455dfd6a5e59a94e30",
      "parents": [
        "7188f1ad365cd9d475723b639d521b491eaca389"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Mon Nov 05 11:50:42 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 01 18:05:54 2019 -0800"
      },
      "message": "audio policy service: Add introspection API to retrieve AudioProductStrategies\n\nThis CL adds required introspection APIs to deal with product strategies:\n\n-getter of the collection of product strategies\n-helper function to return the strategy associated to a given attributes.\nThis API is mandatory to avoid duplicating the logic that compiles the strategy\nfor a given Audio Attributes structure.\n\nTest: make\n\nChange-Id: I0e107570a44227bb52a4f359954c93215d4f8bae\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "7188f1ad365cd9d475723b639d521b491eaca389",
      "tree": "029a0714c5c9e517d2eecc6ad4149f519c52b813",
      "parents": [
        "f1e9508a70f5eff6d9e9d2cfdf5b19ac6a6974b7"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Fri Nov 02 14:35:42 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 01 18:05:49 2019 -0800"
      },
      "message": "audiopolicy: engineconfigurable: Merge Policy Engine and Wrapper configuration files\n\nTest: make\nChange-Id: I0a905752218438378d9ca87457cd55f6cd0f2586\n"
    },
    {
      "commit": "f1e9508a70f5eff6d9e9d2cfdf5b19ac6a6974b7",
      "tree": "10c058fa91f37171cd140e17a1eaa3680d605ca6",
      "parents": [
        "dc7553ff1bf7ec88e17a8577b94bb9dd9a1cbb43"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Fri Nov 02 13:53:31 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 01 18:05:38 2019 -0800"
      },
      "message": "audiopolicy: engineconfigurable: add configuration of ProductStrategies\n\n-Update Policy PFW plugin to support product strategies\n-Provides example structure/Settings to configure Product Strategies\n\nTest: make\nChange-Id: I2493e261f302b78f3b96e17d87fb7028d9cde23e\n"
    },
    {
      "commit": "dc7553ff1bf7ec88e17a8577b94bb9dd9a1cbb43",
      "tree": "e51119764c576e4e051cef763280f8d35c7a7b27",
      "parents": [
        "612be7ff334b6c2c1051bd6dbb4088922af0336e"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Fri Nov 02 10:39:57 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 01 18:05:21 2019 -0800"
      },
      "message": "audiopolicy: engine: Add ProductStrategy common code\n\n-Adds new Engine APIs for Product Strategy management\n-Adds a common engine code to handle product strategies\n-Adds a parsing configuration library to feed the strategies\n-Prepare both engine for the switch\n\nTest: make\nChange-Id: I00f57ece798893bc6f9aa9ed54a3e5237e8d5cf1\n"
    },
    {
      "commit": "dddc39e44c6bc1c8658e5f3fd6c087abad017fdd",
      "tree": "2149b7d6ef7555bd11912481982f76f8a11569d1",
      "parents": [
        "642f662a0dba2732cacf05774758723f09aa188e",
        "f86268a0aa3c98cc5acdd18f43de82e780772b5b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 31 23:53:10 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 31 23:53:10 2019 +0000"
      },
      "message": "Merge \"Prepend instead of append for criterias to remove\""
    },
    {
      "commit": "6a3052232c606bc2f74a849c6758fd44b6c01158",
      "tree": "529ee3bb94a17c06e19c8642daf9993f23d531f2",
      "parents": [
        "2637984613a75eb2640a73e186a6dd1f08cebbc0"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon Jan 28 20:33:18 2019 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu Jan 31 11:19:44 2019 -0800"
      },
      "message": "use MediaAnalyticsItem::create() instead of new\n\nBug: 123543489\nTest: boot/logcat, select CtsMediaTests\nChange-Id: I92f8b9987b78466fae74ce4c0b177f8bb1e7dea8\n"
    },
    {
      "commit": "4df18892dca915d1b737043baab2dc74c9f7d96a",
      "tree": "820afce3906a04e5fc576a009b581ece84158856",
      "parents": [
        "760e6c2581b49a95abced90730319d3d248a1518",
        "f024a9eb29122a42179608372cb25129d1158e3b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jan 31 02:28:22 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 31 02:28:22 2019 +0000"
      },
      "message": "Merge \"AudioPolicyManager: Fix nullptr device check\""
    },
    {
      "commit": "f86268a0aa3c98cc5acdd18f43de82e780772b5b",
      "tree": "198997a295d7b62c19fc58392350f3a0db08d9c5",
      "parents": [
        "1c0a9fb458cc97a2b3e7b93e58c02bf11512b950"
      ],
      "author": {
        "name": "Hongwei Wang",
        "email": "hwwang@google.com",
        "time": "Wed Jan 30 16:52:10 2019 -0800"
      },
      "committer": {
        "name": "Hongwei Wang",
        "email": "hwwang@google.com",
        "time": "Wed Jan 30 17:22:47 2019 -0800"
      },
      "message": "Prepend instead of append for criterias to remove\n\nBug: 123661699\nTest: manually call removeUidDeviceAffinity\nChange-Id: I729b02bbc45125638baefdccdedfaf046e146dd2\n"
    },
    {
      "commit": "f024a9eb29122a42179608372cb25129d1158e3b",
      "tree": "8b95f2175e985295dd9c266785a76e5409a26600",
      "parents": [
        "a3e4fe3fd4f24ebcf9e69de52e2f0d3e2be3a816"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jan 30 16:01:02 2019 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jan 30 16:41:07 2019 -0800"
      },
      "message": "AudioPolicyManager: Fix nullptr device check\n\nRegression from commit 11d301045991dd66bf3f64ba510e069b7c09fedb\n\nTest: CTS AudioRecordTest passes\nBug: 123597808\nChange-Id: I3b1de479ebd8a279309d33f58db3e40b851f98e4\n"
    },
    {
      "commit": "8851bff7a82aa8986e2a790bab13a0921c81b24d",
      "tree": "9e2f66ba729573b907f16be916564c948e57a75a",
      "parents": [
        "4a4c264480b52a1b909f786f37601c95efc86bcc",
        "308d50bf3b08f8197d7fed76a75f43d7398fc5a1"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 30 21:33:25 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 30 21:33:25 2019 +0000"
      },
      "message": "Merge \"audio policy: fix regression in USB audio\""
    },
    {
      "commit": "308d50bf3b08f8197d7fed76a75f43d7398fc5a1",
      "tree": "adfaa79def42c27e6ee83e379bc9af6af94b3bc2",
      "parents": [
        "0684bf1ac795c8a112cdc168004cdf0bad6a6647"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 30 11:57:16 2019 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 30 11:59:26 2019 -0800"
      },
      "message": "audio policy: fix regression in USB audio\n\nFix regression in audio device selection introduced by\ncommit 4e4647077f\n\nBug: 123500997\nTest: play music over USB and BT A2DP\nChange-Id: I9a86e1a8f34f3b02f0dbb53b719884ab6c567265\n"
    },
    {
      "commit": "ee1f655728b31b4c74c4f211b96bfd117daaeacb",
      "tree": "9e48f54ce76fff0e693b9b480ff5900eefdfa42c",
      "parents": [
        "0684bf1ac795c8a112cdc168004cdf0bad6a6647"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 29 18:22:02 2019 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 29 18:37:44 2019 -0800"
      },
      "message": "audio policy: fix call audio hearing aid\n\nRemove assert added by mistake on a valid configuration.\n\nBug: 123551930\nTest: place a call with an hearing aid device.\nChange-Id: Ib279d1bea460026da45ffeb5a69910ac0c3d3c4f\n"
    },
    {
      "commit": "373924b48ed782a555cec070f24a198444cef53d",
      "tree": "eefe453ce8e4708ac8837aec0e9d00562f9035f2",
      "parents": [
        "1c0a9fb458cc97a2b3e7b93e58c02bf11512b950",
        "bcbb3006925bc2aee73b555b2d9e85c17597a115"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Jan 29 20:07:14 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 29 20:07:14 2019 +0000"
      },
      "message": "Merge \"Deal with new PROCESS_STATE\""
    },
    {
      "commit": "c41dc110a1fe7418a4118f3541d15d4ac703ad72",
      "tree": "816b46271fba980ae94d93d6e9fb40bdd0e3a0ab",
      "parents": [
        "00174ae636c4160df106f44e3edfc32270cf513c"
      ],
      "author": {
        "name": "Mingwei Shi",
        "email": "mingwei.shi@intel.com",
        "time": "Wed Jul 26 10:02:40 2017 +0800"
      },
      "committer": {
        "name": "Hongwei Wang",
        "email": "hwwang@google.com",
        "time": "Mon Jan 28 18:46:48 2019 +0000"
      },
      "message": "PFW: support to load the config policy from vendor partition\n\nFor treble compliance, loading the config policy from vendor partition\nshould be supported.\n\nBug: 80626872\nTest: audio works normally with USE_CONFIGURABLE_AUDIO_POLICY set\nChange-Id: I7fec31346b80874c323556e28debb4a0888b27e6\nSigned-off-by: Mingwei Shi \u003cmingwei.shi@intel.com\u003e\nSigned-off-by: Qin, Xiaokang \u003cxiaokang.qin@intel.com\u003e\n(cherry picked from commit 955e35cb670ff210535be268aa3589d68d92b148)\n"
    },
    {
      "commit": "0ac26a451483ddea3be4fafe620b8fa01669149b",
      "tree": "a811b5d3b33e090c45899cf8a4f8b2c0f67a9bb3",
      "parents": [
        "0d405c1e55c9a1b9dbf898724dd1b6dc41fa8c46",
        "d84e8f7fdf1a61956953660d3af226c3b147e3bb"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jan 26 04:58:28 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jan 26 04:58:28 2019 +0000"
      },
      "message": "Merge \"audio policy: fix legacy Ad2P with advanced codecs\""
    },
    {
      "commit": "0d405c1e55c9a1b9dbf898724dd1b6dc41fa8c46",
      "tree": "806b6c042782871d7aa81095fccc103682b79fd8",
      "parents": [
        "911ef8fd5231d990de15bc1e16dd937b7e81f5f7",
        "dcbda2a2efc838cf5b9597e6d346b3603e48bc40"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jan 26 02:28:33 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jan 26 02:28:33 2019 +0000"
      },
      "message": "Merge \"audio policy: fix recording activity reporting\""
    },
    {
      "commit": "d84e8f7fdf1a61956953660d3af226c3b147e3bb",
      "tree": "f2c1784fa749f8ba511cb333d404ec296eb438b4",
      "parents": [
        "049aa255f9c1746f22cd9c562bd9cb8faaddb3d2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 25 18:15:35 2019 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 25 18:15:35 2019 -0800"
      },
      "message": "audio policy: fix legacy Ad2P with advanced codecs\n\nThe changes for hybrid A2DP broke advanced codec support for devices\nrunning a HAL V4.0 and no A2DP offload.\n\nFix: consider that if no encoded format is explicitely listed in the\ndevice descriptor in audio policy configuration file, then no rule on\nencoded format should be enforced.\n\nBug: 123399421\nTest: connect Sony MDR-1 headphones and play music.\nChange-Id: Idd13cf0e0cdeb71554b23d178e61cc1d82abea60\n"
    },
    {
      "commit": "5cc71c5fedf82cccf701ce24db79818cbce20b64",
      "tree": "ac1a064c9e621e1258ab33915be69f76ed22e9bf",
      "parents": [
        "5b723961c9456aa46ea3315bbcc80a3f6d0acc70"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 25 14:10:42 2019 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 25 16:16:11 2019 -0800"
      },
      "message": "AudioPolicyManager: fix offload playback for speaker and BT\n\nWithout this, deep buffer playback is used.\nFixes regression from commit 4e4647077f00c47650d6ecd66cd812073371bd10\n\nTest: Play music with Speaker and BT\nBug: 123371431\nChange-Id: Ic5d23c6863223f5456414c887c14fda90aa06f5f\n"
    },
    {
      "commit": "dcbda2a2efc838cf5b9597e6d346b3603e48bc40",
      "tree": "f7d655a341e386c1eb045f98d08444719496b2cc",
      "parents": [
        "049aa255f9c1746f22cd9c562bd9cb8faaddb3d2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 24 18:36:37 2019 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 24 18:36:37 2019 -0800"
      },
      "message": "audio policy: fix recording activity reporting\n\nAdd missing active clients management when an output or input\nis force closed by the audio policy manager. This resulted in\nstale activity monitoring entries in AuduiService.\n\nBug: 123312504\nTest: connect and disconnect a headset while recording a video\nChange-Id: I66fe96daed2475ae6ada700ef1210d38ad099da2\n"
    },
    {
      "commit": "86f1dd852787f2b240eed2d2bdfa65b9fe114d56",
      "tree": "be74f7639fc8507fffad5e151983f6a2f1596850",
      "parents": [
        "d53525f4fd79a7ecbadd621630c23c0e925c731e"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jan 24 13:17:59 2019 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jan 24 16:58:56 2019 -0800"
      },
      "message": "audiopolicy: Specify the suite for presubmit tests\n\nThis is required to actually run them on presubmit.\n\nBug: 122855449\nTest: run a presubmit check on a CL while the tests are broken\nChange-Id: Id95234d6a4198a246051c869d56ab5c62f6972f4\n"
    },
    {
      "commit": "d53525f4fd79a7ecbadd621630c23c0e925c731e",
      "tree": "bc2262cc60fdbc6f071d1286c1e8309c5f8bbd53",
      "parents": [
        "049aa255f9c1746f22cd9c562bd9cb8faaddb3d2"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jan 24 13:15:46 2019 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jan 24 16:58:56 2019 -0800"
      },
      "message": "audiopolicy: Improve patch count checks\n\nMove ASSERT_ into the body of the test function, because assert\nfailure only shows the code line where it has happened.\n\nUpdate names to emphasize that the delta is from the initial\nsnapshot, not from the previous check.\n\nTest: audiopolicy_tests\nChange-Id: I4328d9d74c0632097150732727c123a446c8ee89\n"
    },
    {
      "commit": "db80386712cfc0a4c7642f72992a3933a21f4458",
      "tree": "773349e66b7d11eb9a8a9330f5fc86bfbdb99267",
      "parents": [
        "50b7ff208ff31b00c6e95478edb633eb7a193cb6",
        "2d4e170f3ee7ec77cbc267ca7cff78861382d112"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 24 23:05:10 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 24 23:05:10 2019 +0000"
      },
      "message": "Merge \"audiopolicy: Fix after commit 11d301045991dd66bf3f64ba510e069b7c09fedb\""
    },
    {
      "commit": "7d7dcd9a36970cdde9f276b08872552be2d93ede",
      "tree": "75da1ed2bb3eb795736a8c9e8d819e8b08ec48ab",
      "parents": [
        "6f4aa5c6dda203551ab814c64362e6c8a1d72eeb",
        "2c80be0e59e65e424862af426962939ad96e6b92"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 24 21:10:16 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 24 21:10:16 2019 +0000"
      },
      "message": "Merge \"audio policy: fix dynamic policy registration\""
    },
    {
      "commit": "2d4e170f3ee7ec77cbc267ca7cff78861382d112",
      "tree": "21620a55b0d872b6671bdfa62080671ae50612d6",
      "parents": [
        "e75dca3feec77fac58f1fa5f7a9b1195b4898368"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jan 24 12:59:44 2019 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jan 24 12:59:44 2019 -0800"
      },
      "message": "audiopolicy: Fix after commit 11d301045991dd66bf3f64ba510e069b7c09fedb\n\nThe change ag/5874343 switched to DeviceVector usage instead of\naudio_devices_t. In AudioPolicyManager::setOutputDevices, one of\nthe conditions comparing a device to AUDIO_DEVICE_NONE had been\ninverted.\n\nThis was resulting in resetting of default patches during\na call to \u0027setForceUse\u0027 function.\n\nTest: audiopolicy_tests\nChange-Id: Idc43bc152c3d749cd1dab9b696e7e1e700ef3926\n"
    },
    {
      "commit": "15131dadc6c058521e84dd6a01bcf7097ad77cff",
      "tree": "8d1570fc10ee57de272a31c818d7c7f014a3d424",
      "parents": [
        "41b1f7d790ef176f67e4c15924222e1c57939a59",
        "dfe079463b7042291d8dae96052c95f68398cdc6"
      ],
      "author": {
        "name": "Tomoharu Kasahara",
        "email": "tomoharu.kasahara@sony.com",
        "time": "Wed Jan 23 22:59:58 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jan 23 22:59:58 2019 -0800"
      },
      "message": "Merge \"AudioPolicy: enable apps to mute BLUETOOTH_SCO\" am: dac49ac4ee am: 9437a06269\nam: dfe079463b\n\nChange-Id: I1324a49456e523838939294ce505dad0e020d92f\n"
    },
    {
      "commit": "0121b9ecee64ba42b8bc26c224f1bb3af73e37bf",
      "tree": "f564596d5a75e2b5c2cddd64e086fb68233b6779",
      "parents": [
        "ad36699c757285227810b809658c3ca2a0d22229",
        "2c93e51abf2bf6b30ed69f02892287f40e64f5df"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 24 03:28:32 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 24 03:28:32 2019 +0000"
      },
      "message": "Merge changes I57d364f7,I6668cffa,Id62ab388\n\n* changes:\n  audiopolicy: engineconfigurable: fix legacy remote submix\n  audiopolicy: apm: Fix default bus device issue\n  audiopolicy: apm: updateCallRouting shall use SW Bridging if no external route support\n"
    },
    {
      "commit": "2c80be0e59e65e424862af426962939ad96e6b92",
      "tree": "2eb3b83b92cab021fef04b1c749a84b99fd7eaa8",
      "parents": [
        "04a71420a809f8bf21ec5152d469c06161cd0a80"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 23 18:06:37 2019 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 23 18:10:47 2019 -0800"
      },
      "message": "audio policy: fix dynamic policy registration\n\nRely on supported devices rather than active patches to match\na render mix to an output.\n\nBug: 123294474\nTest: run the car emulator and check installed dynamic policies.\nChange-Id: If8a68678ba541f343894c563592d82447b37fe13\n"
    },
    {
      "commit": "7b91592726928f879fceeb3d3248892d273dbcd2",
      "tree": "9c45779b427ffc5f9490ff5f2e717a68dd2a6c5b",
      "parents": [
        "87c117f9d6e91262ce7e11ece4147c469140d27c",
        "fe0fb8b050e0acc8f749bcee482b8c157ed8233b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 24 00:12:25 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 24 00:12:25 2019 +0000"
      },
      "message": "Merge changes from topic \"new_formats_huawei\"\n\n* changes:\n  audiopolicy: fix wrong volume db value for voice call stream\n  audio: add new audio formats\n"
    },
    {
      "commit": "bcbb3006925bc2aee73b555b2d9e85c17597a115",
      "tree": "8f76e9f83bd2f881ff6f4d4541b8254811d2b07a",
      "parents": [
        "701768e80731da3df0edac97fb8fc442ffbbd33f"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Jan 23 13:53:33 2019 -0800"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Jan 23 13:53:33 2019 -0800"
      },
      "message": "Deal with new PROCESS_STATE\n\nIntroduced a new PROCESS_STATE_FOREGROUND_SERVICE_LOCATION.\nDeal with it.\n\nBug: 111453223\nTest: atest CtsAppTestCases:ActivityManagerProcessStateTest\nChange-Id: I918bd58bfc7df0849a1d8548c785be756f7103e1\n"
    },
    {
      "commit": "fe0fb8b050e0acc8f749bcee482b8c157ed8233b",
      "tree": "facb2d56b33c78e715b6eff77cbcce828dbe5ef4",
      "parents": [
        "d55083d1449834d523cd3d9b5976b7e5011dce03"
      ],
      "author": {
        "name": "Revathi Uddaraju",
        "email": "revathiu@codeaurora.org",
        "time": "Thu Jul 27 17:05:37 2017 +0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 23 11:45:26 2019 -0800"
      },
      "message": "audiopolicy: fix wrong volume db value for voice call stream\n\nWhen apply mute for voice stream, vol index 0 is set, while\nvoice stream minimum vol index is 1. This will cause negative\nvol index is calculated and maximum db value is set.\n\nEnsure vol index is valide to calculate.\n\nAlso add range check in rescaleVolumeIndex().\n\nBug: 123063166\nTest: make\nCRs-Fixed: 2056642\nChange-Id: I89ee64d0914a971194a72b4de483d88b5029d80e\n"
    },
    {
      "commit": "0c1c7a2351f73a76bb8cabe2eb134cca98b7965d",
      "tree": "24088dfed6bf52c501fff781690ecb3475059428",
      "parents": [
        "e75dca3feec77fac58f1fa5f7a9b1195b4898368"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jan 17 14:58:28 2019 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Jan 23 11:11:18 2019 -0800"
      },
      "message": "audiopolicy: Read supported encoded formats from config file\n\nAdds reading of \u0027encodedFormats\u0027 attribute in \u0027devicePort\u0027.\nKeep fallback for an empty value for HDMI in case the framework\nruns against pre 5.0 audio HAL.\n\nAdd generic (example) APM config files for TV devices.\n\nBug: 120860184\nTest: on a TV device\n      tested that Pixel 1 a_p_c.xml file is not updated\nChange-Id: I85013a9e6172decd6ad72079d9c77e5f80e29d19\n"
    },
    {
      "commit": "63c15500e555b086bcff0b9e73e6a4c396b588a8",
      "tree": "f61ca45e82d7af25dd48d1662c8ef4dbb1ac26d4",
      "parents": [
        "b2e28dac2e5d4c00a797e50e9f2e486f90234acd"
      ],
      "author": {
        "name": "Tomoharu Kasahara",
        "email": "tomoharu.kasahara@sony.com",
        "time": "Wed Jan 23 12:42:04 2019 +0900"
      },
      "committer": {
        "name": "Tomoharu Kasahara",
        "email": "tomoharu.kasahara@sony.com",
        "time": "Wed Jan 23 20:59:02 2019 +0900"
      },
      "message": "AudioPolicy: enable apps to mute BLUETOOTH_SCO\n\nThis change enables an app that has the MODIFY_PHONE_STATE\npermission to mute the BULETOOTH_SCO stream.\nThe change adds specific handling in AudioPolicyManager\nfor the case in which volume index is 0 and stream type is\nBLUETOOTH_SCO.\nThe permission check is done in the AudioService Java code for the\ncalling process.\n\nBug: 111195322\nTest: Tested manually\nChange-Id: I5085826a7287dfbc2cfb17a9bd2d3ca1af66ea4a\n"
    },
    {
      "commit": "2c93e51abf2bf6b30ed69f02892287f40e64f5df",
      "tree": "292afaf39b462964b4e1d602a0153de5c1bdcbc3",
      "parents": [
        "a807ef99610c73ace4627ca65b4c3eb4ed84b604"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Fri Jan 04 16:07:50 2019 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 22 19:18:31 2019 -0800"
      },
      "message": "audiopolicy: engineconfigurable: fix legacy remote submix\n\nTest: make\n\nChange-Id: I57d364f7b1db5833f51ed75c2dba1f198414a54f\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "a807ef99610c73ace4627ca65b4c3eb4ed84b604",
      "tree": "78f1fbc56d67403452a25ce2e694ccaf7ccfd62a",
      "parents": [
        "9eb18550939321e37affd2260e3bb72716cb33d6"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Mon Nov 05 10:44:33 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 22 19:18:23 2019 -0800"
      },
      "message": "audiopolicy: apm: Fix default bus device issue\n\nWhen a bus device is used as default, when calling setForceUse,\na given SwOutputDescriptor might be asked to switch to another\nbus device (the default), violating the Policy Mix rule.\n\nTest: see below\n -start an automotive device with PolicyMix registered and\n  bus device as the default.\n -Consider having a system bus for system sound and media for music.\n -Play touch sound (check played in system bus).\n -launch music player.\n\nResult:\n -Music shall be played on media bus device\n -Touch sound still played on system bus device\n\nChange-Id: I6668cffa525af51af6ed0838745658f72ae00a62\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "9eb18550939321e37affd2260e3bb72716cb33d6",
      "tree": "10b892d1d51abe28b9c649727da97fd65b9e2122",
      "parents": [
        "c4d1bc2b3645988256ee06a04a8b82960cb676c2"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Mon Nov 05 10:33:26 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 22 18:35:31 2019 -0800"
      },
      "message": "audiopolicy: apm: updateCallRouting shall use SW Bridging if no external route support\n\nWhile using Routing3.0 API, and XML configuration file, the route section\nshall declare the topology supported by a given platform.\nA Device sink to device source route declaration implies that an external\nroute is supported and AudioHAL can configure it.\n\nIn case of call, even if the Rx and Tx device belongs to respectively\nprimary output and input of the primary module, it does not mean AudioHAL\ncan connect the telephony Rx and Tx by itself unless a Route it declared.\n\nThis is the purpose of this patch to take benefit of XML file.\n\nTest: make\n\nChange-Id: Id62ab3889f20b4daacf7adcce4d7688caf509443\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "11029ad02b64c74b8d49eb5e69c4db254e9f3e68",
      "tree": "e67c2ccf2261305299eb5141a3b5e224662c1708",
      "parents": [
        "4e4647077f00c47650d6ecd66cd812073371bd10"
      ],
      "author": {
        "name": "Arun Mirpuri",
        "email": "quic_amirpuri@quicinc.com",
        "time": "Wed Dec 19 20:45:19 2018 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Jan 20 21:32:41 2019 +0000"
      },
      "message": "audiopolicy: Implement API for querying A2DP offload formats\n\nAdd support in AudioPolicyManager to return supported encoding\nformats for A2DP on the primary HAL. Current implementation is\nto query prop defined and convert this to a list of audio formats\n\nBug: 111812273\nTest: make\nChange-Id: Ic3ea72e19aa4c0bd4c156f62e45e6225f9ce6b11\n"
    },
    {
      "commit": "4e4647077f00c47650d6ecd66cd812073371bd10",
      "tree": "db114451fc37f571667f8fab24e88b142f49eee2",
      "parents": [
        "fa66483acb53c575fc476f04bebf0d0463752297"
      ],
      "author": {
        "name": "Aniket Kumar Lata",
        "email": "alata@quicinc.com",
        "time": "Thu Jan 10 23:38:46 2019 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Jan 20 21:32:16 2019 +0000"
      },
      "message": "audiopolicy: Add support for hybrid mode on A2DP\n\nAdd support in AudioPolicyManager to select a module,\ndevice or output based on device type and codec.\nImplement hybrid mode with A2DP which enables runtime\nswitching between HALs for A2DP based on offload support\nfor specific A2DP codecs.\nOptimize A2DP active device change and device config\nchange in AudioPolicyManager.\n\nBug: 111812273\nTest: make\nChange-Id: I246d71dd08bacbca6ed9b0012e7d7698bd8a0953\n"
    },
    {
      "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": "d0df15067028549ca83645c008be9a5737dcfeb7",
      "tree": "f99e7f1a524ed7cd5eb8c7d8d93623b439ee70cd",
      "parents": [
        "f36cccb50b189965177ecd7bdc3b3f36ad207fa6"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Wed Jan 09 12:59:02 2019 +0000"
      },
      "committer": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Thu Jan 10 21:38:07 2019 +0000"
      },
      "message": "Remove unused ICU4C dependency in audio policy\n\nBug: 117094880\nTest: m droid\nMerged-In: I8ba3db496f11630eebabb7184c532d59237279b0\nChange-Id: I8ba3db496f11630eebabb7184c532d59237279b0\n(cherry picked from commit ce727fe64f379a0fced2d3b0713e5323806c6ffa)\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": "f36cccb50b189965177ecd7bdc3b3f36ad207fa6",
      "tree": "fc90e02d7d10e42bb9665678d9ac85437ae4cd5a",
      "parents": [
        "1ce37f1de3f7185ccffd4d9145b036941a582fe4"
      ],
      "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": "Mon Jan 07 18:36:10 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\nMerged-In: Ida6aac85dfb79bf8e7a3a2540e567ee211279e09\nChange-Id: Ida6aac85dfb79bf8e7a3a2540e567ee211279e09\n(cherry picked from commit b6826d9e88b521c5c970cf748db83b43c70d56d1)\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"
    }
  ],
  "next": "79222e7a39a73f5c635958a62f6f0ccde250e04c"
}
