)]}'
{
  "log": [
    {
      "commit": "1c87855ff4c3c55e191a2e6da66bb82011c91c1b",
      "tree": "e4cbf214056b965017c1f727ad0881b85ef1e54d",
      "parents": [
        "e690a6da57c95da65b4a179e35fa4dc72510024f"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Thu Nov 22 16:53:21 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Feb 19 15:58:32 2019 -0800"
      },
      "message": "audiopolicy: rework stream activity for volume management on output\n\n-Manage duplicated output ref count in client itself\n-Use VolumeSource to track volume activity in output\n(today mapped on legacy stream type)\n-Use accessor APIs to control activity/mute from apm.\n\nTest: audio smoke tests\nBug: 124767636\n\nChange-Id: I452e3973f6869d41231d984896a5886ebb86afb1\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "8b0e6fa090b6013899d48112761f45e12705f838",
      "tree": "7c9a0c96c1f4eba2619974522b22482e7a213b9d",
      "parents": [
        "43af2f970b8a0fe4b1a93e4487eaf7d1eaaff684",
        "9a183af20f950c33af5e4e60b2370b92b747f976"
      ],
      "author": {
        "name": "Sapir Caduri",
        "email": "sapir@google.com",
        "time": "Tue Feb 19 13:40:13 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 19 13:40:13 2019 +0000"
      },
      "message": "Merge \"audio policy fix: allow cocurrent capture for VOICE_DOWNLINK, VOICE_CALL, VOICE_UPLINK.\""
    },
    {
      "commit": "9a183af20f950c33af5e4e60b2370b92b747f976",
      "tree": "2cb17474772f9f8ca9393b5d965f4108acce0e73",
      "parents": [
        "4a0be4d3f8e1489657053613208c3214f8f7654b"
      ],
      "author": {
        "name": "Sapir Caduri",
        "email": "sapir@google.com",
        "time": "Thu Feb 14 22:23:47 2019 +0200"
      },
      "committer": {
        "name": "Sapir Caduri",
        "email": "sapir@google.com",
        "time": "Sun Feb 17 15:41:02 2019 +0200"
      },
      "message": "audio policy fix: allow cocurrent capture for VOICE_DOWNLINK,\nVOICE_CALL, VOICE_UPLINK.\n\nThis update will allow features like Call Screen (go/callscreen), Tap to Caption (go/whatist2c) and\nTulip (go/tulip) to work simultaneously.\n\nBug: b/124457248\nTest: Manual testing. See videos in folder: http://go/audio-fix-videos\nand README.txt\n\nChange-Id: Ic279dde6c99eca51b880bb340dfc3235d8680121\n"
    },
    {
      "commit": "2224c5a0f7ff52d8b40cc3e8b67f3f71560f842e",
      "tree": "d87577ba156774092ce9395bb281f5bbbc115eed",
      "parents": [
        "e04ba51703c3fb797f6b7e22d5848d0ed3801bc6"
      ],
      "author": {
        "name": "juyuchen",
        "email": "juyuchen@google.com",
        "time": "Mon Jan 21 12:00:58 2019 +0800"
      },
      "committer": {
        "name": "juyuchen",
        "email": "juyuchen@google.com",
        "time": "Wed Feb 13 12:00:28 2019 +0800"
      },
      "message": "audio: use SinkMetaData to route voice call with hearing aid.\n\nBug: 121173695\nTest: manual audio test\n\nChange-Id: If51b7c5063d0578ec4b8b16ec8ccd1712ae2c85c\n"
    },
    {
      "commit": "f0de5ce5d1629cd18effe1b70ed6500c1d648955",
      "tree": "92f059c8bff4024c0ebb112a4d93e69121372340",
      "parents": [
        "06a3967bee29fcfd0dde8fbdfff795e7e705c0f4"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Feb 05 09:28:44 2019 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Feb 08 22:39:10 2019 +0000"
      },
      "message": "Restrict APC to usages and opt-in streams\n\nTest: adb shell audiorecorder --target /data/file.raw\nBug: 111453086\nChange-Id: I17d48bfa89f3187535d211ef1c9ba6cb435fd777\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "cc423d49c662a03627d7f855f8111c5938f0cf11",
      "tree": "570bc367e3eb5caa28d44f6904bea6065afa8edb",
      "parents": [
        "0cefb10674a51e975cbe1c5d090198786614a31c",
        "3fff3f502d536f8a35744c859cc93823ad29a8cc"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Feb 08 19:02:45 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 08 19:02:45 2019 +0000"
      },
      "message": "Merge \"AudioPolicy: make mixes const correct\""
    },
    {
      "commit": "0cefb10674a51e975cbe1c5d090198786614a31c",
      "tree": "c00b9229485006c69e1c609e34fde5e0cc0470f7",
      "parents": [
        "9fcae9fdc6102ac7e92cb91777d79114f7996452",
        "f4f5c817ed4ba6f10287cb37b9f71f6c27723359"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Feb 08 19:01:40 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 08 19:01:40 2019 +0000"
      },
      "message": "Merge \"AudioPolicy: make input attributes parameter const\u0026\""
    },
    {
      "commit": "4c8d916a69fe9a65af5d606a1a129bfda1fc5fef",
      "tree": "378c36119753159647c707c037480e72185e2342",
      "parents": [
        "aea65a0f1ede2446f05ce186f04a419e36f4e311",
        "ba2cf0f2e39d8302babbda3a98127daaf2ea7376"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 08 03:00:26 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 08 03:00:26 2019 +0000"
      },
      "message": "Merge \"audiopolicy: fix dynamic device \u0026 explicit routing management\""
    },
    {
      "commit": "f4f5c817ed4ba6f10287cb37b9f71f6c27723359",
      "tree": "695ece5a81488ca3e98992707e01c9b4a0675a8b",
      "parents": [
        "d6454722c21495fb5effae4176cc689ec8900f9a"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Feb 05 09:28:02 2019 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Feb 08 01:11:13 2019 +0000"
      },
      "message": "AudioPolicy: make input attributes parameter const\u0026\n\nTest: compile\nBug: 111453086\nChange-Id: I3b08d11481471dc080ed2ab89ae59e6268542c25\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "3fff3f502d536f8a35744c859cc93823ad29a8cc",
      "tree": "1d7e0807ecd9d2701cf94c3208ebbcca595f3352",
      "parents": [
        "d6454722c21495fb5effae4176cc689ec8900f9a"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Feb 05 09:24:40 2019 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Feb 08 01:09:26 2019 +0000"
      },
      "message": "AudioPolicy: make mixes const correct\n\nTest: compile\nBug: 111453086\nChange-Id: Ic3b1e414bcf0e2de20bdecebdd71920030ecc1ec\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "d6454722c21495fb5effae4176cc689ec8900f9a",
      "tree": "81771f5041b17dcd2972e40e81f8669df711fbbc",
      "parents": [
        "6787e25ae1c63731e254d5afa5edacb02f4d3e02",
        "c2afbdf2a57dd2e84ae2fe20e72c45c67b1aa4da"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Feb 08 01:08:14 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 08 01:08:14 2019 +0000"
      },
      "message": "Merge \"Dynamic audio policy should reject non pcm\""
    },
    {
      "commit": "ba2cf0f2e39d8302babbda3a98127daaf2ea7376",
      "tree": "4a86852dbc034802d93ab5528591dc941a68c01c",
      "parents": [
        "ffb2516cc730b5ac621ad8a92e827faf4e86b8ca"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Wed Dec 12 16:40:25 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 07 11:20:57 2019 -0800"
      },
      "message": "audiopolicy: fix dynamic device \u0026 explicit routing management\n\nWhile a playback is ongoing using explicit routing\nand the device is disconnected, setOutputDevices() will bail out\nif the new device is incompatible with the io profile. So the device\nwill not be reset in the output.\nMoreover, if another device of the same type/address is connected,\nthis device will have a new unique ID.\nIf a track wants to use it as explicit, as the first playback/capture is still\non going, the function findPreferredDevice will return the previous device id.\n\nThis CL enforces:\n-setOutputDevices() to check if new device is not compatible AND previous devices\nare still available\n- When a device is disconnected, go over all clients to clear any preferred device\nreferring to the device being removed.\n- Sanitize preferred device received by get\u003cOutput|Input\u003eForAttr() according to\nconnected devices.\n\nTest: AudioPolicyTests --gtest_filter\u003dDynamicAddressOutputDevice/DeviceConnectionTest.DeviceConnectionState/*\nTest: audio smoke tests\nTest: CTS tests for AudioTrack, AudioRecord, AudioRouting\n\nChange-Id: Ib3a2d54d902def0fcfc2a623c25bb92d65b1ab98\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "3f58b1194375d5c8008ec8fd4ce2ef068e8955b8",
      "tree": "d7260eb26fc40d284df23e7264b19ef53059bbed",
      "parents": [
        "5edb6fbe8febd18961895a4edd45a1c6e6a6db85",
        "c43ea147033817dc46b76d8993a84f0e5ee4e4e0"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Feb 07 03:10:10 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 07 03:10:10 2019 +0000"
      },
      "message": "Merge changes from topic \"APC\"\n\n* changes:\n  Propagate track status to interception patch track\n  Add secondary output to audio tracks\n  Audioflinger: add timeout to PatchTrack\n  Audiopolicy: Move AudioPolicyMixCollection in helper function\n  Add MIX_ROUTE_FLAG_LOOP_BACK_RENDER\n"
    },
    {
      "commit": "5edb6fbe8febd18961895a4edd45a1c6e6a6db85",
      "tree": "5d36a428baf06831716677af2949221576255902",
      "parents": [
        "62748c6d29225b1b3b3c5d8caa789a31a45feaeb",
        "5dd3130076526467611a374d32e2a4f81b49f38d"
      ],
      "author": {
        "name": "Cheney Ni",
        "email": "cheneyni@google.com",
        "time": "Wed Feb 06 18:10:14 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 06 18:10:14 2019 -0800"
      },
      "message": "Merge \"Introduce a new Audio HW module: bluetooth_audio\" am: 6b890b0b89 am: 1d2eedd9b9\nam: 5dd3130076\n\nChange-Id: I41874f1b1709041a50c4326baaf5376777b841e2\n"
    },
    {
      "commit": "c2afbdf2a57dd2e84ae2fe20e72c45c67b1aa4da",
      "tree": "bad704e7e1461de7372754856e84042428f2fd5b",
      "parents": [
        "c43ea147033817dc46b76d8993a84f0e5ee4e4e0"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Jan 31 18:18:06 2019 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Feb 06 16:13:13 2019 -0800"
      },
      "message": "Dynamic audio policy should reject non pcm\n\nTest: adb shell audiorecorder --target /data/file.raw\nBug: 111453086\nChange-Id: I4691b19b1fa2f3b8e8e5045c9ea5be0a5c9effb6\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "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": "6851adba7a6e8543638c69224bad73355d858c9f",
      "tree": "81d20756ad54cc11318c3bddc01befa4a1a1c465",
      "parents": [
        "4ae8b0c37c4b9852c15098cc5ba4129745d1d07b"
      ],
      "author": {
        "name": "Cheney Ni",
        "email": "cheneyni@google.com",
        "time": "Thu Nov 01 06:30:37 2018 +0800"
      },
      "committer": {
        "name": "Hansong Zhang",
        "email": "hsz@google.com",
        "time": "Wed Feb 06 15:21:08 2019 -0800"
      },
      "message": "Introduce a new Audio HW module: bluetooth_audio\n\nWhen persist.bluetooth.bluetooth_audio_hal.enabled is true, the audio\nserver will load audio_policy_configuration_bluetooth_hal_enabled.xml\nto enable BluetoothAudio HAL 2.0\n\nBug: 111519504\nBug: 121411420\nBug: 122556667\nTest: manual\n\nChange-Id: I52df919be8525aa58384163e9505c02a52773506\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": "b9b7a56a58c71bbc069bcb23e1a5c679480b8f7d",
      "tree": "d5145c838f72869b36f9824ee62d4d8c60268a50",
      "parents": [
        "8ec576b7abfc01ac99f3542d29a86ddc3533541b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Feb 05 12:45:13 2019 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Feb 05 12:45:13 2019 -0800"
      },
      "message": "audio policy: fix build\n\nremove unused dependency from parameter lib in engine config.\n\nTest: make.\nChange-Id: I95ca407ab213fd7a9a976873c7e711b60d078156\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\""
    }
  ],
  "next": "bb93dfb7823e6abe4d4d7862559599803da1ad01"
}
