)]}'
{
  "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": "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": "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": "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": "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": "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": "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": "320fd852fb98174804e5f505773500f1cf76f3af",
      "tree": "3eb8319d3076340883afe026b540c05ef7b8c50a",
      "parents": [
        "24bf51ae92285202bdbe3fa00c7c83e93c5a03e2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Oct 09 14:06:37 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Oct 10 11:12:37 2018 -0700"
      },
      "message": "audio: fix switch to break or use FALLTHROUGH_INTENDED\n\nTest: compile, sanity\nBug: 117509050\nChange-Id: I9439f201b3d1f4485ab698d7bed063a02f17f8f0\n"
    },
    {
      "commit": "17a4a0feba513a721b23edeb9a915e4ce87b58a8",
      "tree": "8def40ef260d85ecf5414654a2af5cc1a7e3a94c",
      "parents": [
        "bd9b5935fdbd67d3eaf124e3e80470b8cae1ecd1",
        "d06ae78ee7169fc80c8a29390b2156e33c846c08"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Sep 17 16:44:40 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Sep 17 16:44:40 2018 -0700"
      },
      "message": "Merge \"Suppress implicit-fallthrough warnings in audioflinger etc.\" am: a494bb1527 am: 8662f3b9a2\nam: d06ae78ee7\n\nChange-Id: Iee095b6e1278d372b3a7c171f926bd730dbc388b\n"
    },
    {
      "commit": "2b48703770efab81143d389d7389166eb1a6c8db",
      "tree": "f309a4bbfbb4f716dee1af20f82ca95aa04b907e",
      "parents": [
        "f8d13dee65d3708ea527e9f565be85031d7021ba"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Sep 13 14:16:02 2018 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Sep 17 12:50:12 2018 -0700"
      },
      "message": "Suppress implicit-fallthrough warnings in audioflinger etc.\n\nAdd FALLTHROUGH_INTENDED for clang compiler.\n\nBug: 112564944\nTest: build with global -Wimplicit-fallthrough.\nChange-Id: I8875bc7ed073aae84d5df97eb39c8c745ca627ef\n"
    },
    {
      "commit": "9366193e6ba8e2c554de747a3ab58a336297c067",
      "tree": "f6d9fe9e7cbe37902d023b33c24463f99d26b3fd",
      "parents": [
        "19283e9de83b5ade80a93b43589ea9a799414290"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jul 26 14:37:41 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jul 26 14:37:41 2018 -0700"
      },
      "message": "audiopolicy: Refactor DeviceVector::getDevicesFromHwModule\n\nRename method audio_devices_t DeviceVector::getDevicesFromHwModule\ninto getDeviceTypesFromHwModule.\n\nIntroduce method DeviceVector DeviceVector::getDevicesFromHwModule.\n\nBug: 63901775\nTest: make\nChange-Id: Ieec0c116fa0a6ff20241d61f65202a8eaf9f0674\n"
    },
    {
      "commit": "00c14ee32d650cd2abffe154aad4718daa3eeccd",
      "tree": "e90c921bcf75d6ddbdc2d4a109016eeaf722de5f",
      "parents": [
        "a2a19382e5870fb133b56dacc7ff3048cdaa407d",
        "31a86b9cfcb4464e37b3a039499728737bc21f7e"
      ],
      "author": {
        "name": "Dan Zhang",
        "email": "danielzhang@google.com",
        "time": "Mon Jul 23 13:49:33 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jul 23 13:49:33 2018 -0700"
      },
      "message": "Merge \"Add USB MIC in case of AUDIO_SOURCE_CAMCORDER\" am: 69b9593594 am: 671b05bf3c am: 5bdda71a19\nam: 31a86b9cfc\n\nChange-Id: I600300a828fe589c942ebae4dd6c060e5799a8c6\n"
    },
    {
      "commit": "671b05bf3c82131612bf761a742f38ca45b453cf",
      "tree": "c8082ee953b1dac0da1c6a1a00ff819ca2e1f11f",
      "parents": [
        "28301383d38d81b44d6a9b6b1f5822e90e440625",
        "69b9593594de8b2836ca3e6a7881b2268e9cb56d"
      ],
      "author": {
        "name": "Dan Zhang",
        "email": "danielzhang@google.com",
        "time": "Mon Jul 23 13:05:01 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jul 23 13:05:01 2018 -0700"
      },
      "message": "Merge \"Add USB MIC in case of AUDIO_SOURCE_CAMCORDER\"\nam: 69b9593594\n\nChange-Id: I050fd29adc4950b50bc63f3230d7af7201ebc245\n"
    },
    {
      "commit": "86ad3d1057f03036217af3ae201c0fafb658a829",
      "tree": "6b6726e094696a6a1667150f300b74a4c49d9f59",
      "parents": [
        "cd17b7453da3323634662e7ddb9712e5e0ae00c5"
      ],
      "author": {
        "name": "Takeshi Oishi",
        "email": "Takeshi.Oishi@jp.sony.com",
        "time": "Fri Jul 20 16:13:06 2018 +0900"
      },
      "committer": {
        "name": "Takeshi Oishi",
        "email": "Takeshi.Oishi@jp.sony.com",
        "time": "Mon Jul 23 14:32:56 2018 +0900"
      },
      "message": "Add USB MIC in case of AUDIO_SOURCE_CAMCORDER\n\nA device which supports USB camera cannot record audio stream\nbecause there is no definition of USB audio input device when\nspecifying CAMCORDER. For getting audio from USB camera,\nAUDIO_DEVICE_IN_USB_DEVICE should be added as an audio input device\nin case of CAMCORDER.\n\nTest: run cts -m CtsCameraTestCases\nChange-Id: I47140a4ae3c6a8c1b5ee1d4b302c97d860cb18d6\n"
    },
    {
      "commit": "dcd4ab18a3cdb8f5d382a635c8602a18288137c1",
      "tree": "c0f4c63eef85a850dc01687bc7f17be4cd24031e",
      "parents": [
        "87a837c62a1bd1be9143aee3660bb171424a08a5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 29 17:45:13 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 02 18:03:17 2018 -0700"
      },
      "message": "audio policy: remove special notifications handling in call\n\nNot needed anymore as this is handled by NotificationManager.\nExtend caping of alarm and ringtone volume to call volume to all\noutput devices (was only done for earpiece).\n\nTest: make\nChange-Id: I9a1cd8610e42fefd0518f6ccc68e50e5541884ed\n"
    },
    {
      "commit": "708e038f7e6c452de8186e2d6981de7540495094",
      "tree": "fef4228ffb73cd20eb8a2a921ee6df687c92adc2",
      "parents": [
        "f4d3741b3a721f8e1f72ec3ca2684efe22526d80"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed May 30 09:53:04 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Jun 01 12:39:15 2018 -0700"
      },
      "message": "audiopolicy: Brush up DeviceVector::getDevice... methods\n\nThe semantics of these methods wasn\u0027t consistent and wasn\u0027t clear\nfrom their names (and aggravated by the fact that audio_devices_t can\nbe used either as a single device, or as a mask):\n\n * sp\u003cDeviceDescriptor\u003e getDevice(type, address) -- \u0027type\u0027 is a single\n   device; if \u0027address\u0027 is an empty string, and no matching device\n   with an empty address is found, returns any device of this type;\n\n * DeviceVector getDevicesFromType(type) -- \u0027type\u0027 is a mask,\n   device addresses get ignored;\n\n * DeviceVector getDevicesFromTypeAddr(type, address) -- \u0027type\u0027 is\n   a single device, address is matched exactly. So in practice, only\n   1 device could be returned.\n\nChanges:\n\n * \u0027getDevicesFromType\u0027 renamed to \u0027getDevicesFromTypeMask\u0027 --\n   emhpasizes the fact that \u0027type\u0027 can be a mask;\n\n * \u0027getDevicesFromTypeAddr\u0027 removed, usages replaced with a call to\n   \u0027getDevice\u0027. There were just 2 usages, and their intent seem\n   to be covered by the semantics of \u0027getDevice\u0027.\n\nTest: verified basic audio functionality and Auto with simulator\nChange-Id: If3e42e4c06f42573fd33ba1303febe0625e079e6\n"
    },
    {
      "commit": "5fa0aed349268d0c6b5884cdc15f0ff026322879",
      "tree": "a889369dfba0d702e212f0fe584b6358540e9b70",
      "parents": [
        "88af67ed2a068280c60bb467b58585fffa9f22a6"
      ],
      "author": {
        "name": "juyuchen",
        "email": "juyuchen@google.com",
        "time": "Wed May 16 10:58:37 2018 +0800"
      },
      "committer": {
        "name": "Juyu Chen",
        "email": "juyuchen@google.com",
        "time": "Thu May 17 10:13:05 2018 +0000"
      },
      "message": "audio policy: choose bt-sco and speaker-safe path.\n\nChoose speaker-safe-and-bt-sco path instead of speaker-and-bt-sco when\ndevice is in ringtone mode.\n\nBug: 78257659\nTest: manual audio test on B1/C1.\n\nSigned-off-by: juyuchen \u003cjuyuchen@google.com\u003e\n"
    },
    {
      "commit": "817729095966c338615a8a791d2dbf774fc034ef",
      "tree": "b9c23fc427ec841575b37c59280000467c5a1648",
      "parents": [
        "183eb5fb74b9c723ba8e8da9b3c962031bac2c6a"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Apr 02 17:52:27 2018 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu May 10 18:20:24 2018 -0700"
      },
      "message": "Add support for manually set surround formats.\n\nTo make surround sound setting more clear to users, we are changing\nsurround setting from ALWAYS to MANUAL. With MANUAL, users could enable\nsurround formats according to their need.\n\nBug: 67479735\nTest: Try creating AudioTrack with enable/disable surround formats.\nChange-Id: Ia6c0e1210ff6215f4b80a278a0aa90ca9543f262\n"
    },
    {
      "commit": "dc95a25769edbe9c47efd1e25962dbd399056157",
      "tree": "eccaa28c2227d69213c7649cb191a96e3e6b23b6",
      "parents": [
        "9fc25229e0723c93b453ab34957f22a643e2b602"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 12 12:46:56 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 12 18:33:50 2018 -0700"
      },
      "message": "audio policy: make input device selection more consistent\n\nMove logic forcing capture device selection when in call\nto engine so that the selection made when opening a capture stream\nis consistent with the selection made when starting the stream.\n\nBug: 73148976\nTest: manual with Oboe tester\nChange-Id: Iee91ffff7d06fc98fdb2c6b54ff1528e7a82596d\n"
    },
    {
      "commit": "7731b5add3a8ba0f57d8f4b299ba7a432ecc7119",
      "tree": "504268c3b58c3cd373ce4a0062b7b70edb107615",
      "parents": [
        "79d1ed9b6473f4d094aaa6b53f41a6ba92916e42"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 06 15:47:22 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 09 09:13:56 2018 -0700"
      },
      "message": "audio policy: fix notification + voicemail routing\n\nConsider an active VOICE_CALL stream as an indication\nthat notification routing and volume should match voice call routing.\n\nAlso limit notification volume to match current VOICE_CALL volume index,\nnot just VOICE_CALL volume curve with notification volume index.\n\nBug: 74019016\nTest: manual: receive notification while listening to voicemail and\ncheck volume and routing.\n\nChange-Id: Ia9309bdb10b42f6a4fa8745daf3129c90d44f0b8\n"
    },
    {
      "commit": "96117aeb26568ff9aecc97c189a297d5f0fca620",
      "tree": "b475374bf0e62cd7b0ac6e67a1789d69f492c134",
      "parents": [
        "ec57d7b565e1352e2c76040fb5df7614a164b157"
      ],
      "author": {
        "name": "Jack He",
        "email": "siyuanh@google.com",
        "time": "Mon Feb 12 20:52:53 2018 -0800"
      },
      "committer": {
        "name": "Jack He",
        "email": "siyuanh@google.com",
        "time": "Fri Mar 23 06:14:59 2018 +0000"
      },
      "message": "Bluetooth: Enable in-band ringing in vibration mode (3/4)\n\n* Add AUDIO_POLICY_FORCE_FOR_VIBRATE_RINGING mode to force Bluetooth SCO\n  in vibration mode\n* Modify default audio policy engine to route audio through SCO only\n  in AUDIO_POLICY_FORCE_FOR_VIBRATE_RINGING mode\n\nBug: 72647074\nTest: Call phone in vibration mode and hear ringtone on HFP enabled\n      headset, verify that ringtone is only played through headset.\n      Then disconnect headset and call again to verify that ringtone\n      does not play through phone speaker in vibration mode.\n\nChange-Id: I2185955bd51166b76156ffd4efdd1f2f01757518\n(cherry picked from commit 644693eee633980d356afcfedc7518ea7fed2c47)\n"
    },
    {
      "commit": "323717613f804aa507faaec2f6bd6fcd75273849",
      "tree": "656cb69b8076293c0a3a65807903cafe10e99d5a",
      "parents": [
        "05fa245462238847528cd18e04aa77f85b0491a4"
      ],
      "author": {
        "name": "Aniket Kumar Lata",
        "email": "alata@codeaurora.org",
        "time": "Wed Jan 31 20:24:23 2018 -0800"
      },
      "committer": {
        "name": "Pavlin Radoslavov",
        "email": "pavlin@google.com",
        "time": "Mon Mar 12 13:36:06 2018 -0700"
      },
      "message": "audiopolicy: Check if A2DP playback happens via primary output\n\nAudio policy implementation assumes A2DP playback to happen\nvia HW module other than the primary HAL. This need not be true\nalways, since primary audio HAL can support A2DP playback too.\nAdd an API to check if A2DP playback is supported via primary HAL,\nand if it is supported avoid suspendOutput.\n\nBug: 68824150\nTest: A2DP offload verified on supported codecs\nChange-Id: Ic5546bc2df632462dcc28442af561d05ba2d7c58\n(cherry picked from commit 68364ffbd312cdc28dd44e66c4d80ce5a6ec49ba)\n"
    },
    {
      "commit": "a8ee996bc065d6938c0e0a5904df7fff5d946fea",
      "tree": "e335626781eed7e03d6bc68b110297ca2dedcd4f",
      "parents": [
        "dce7559514917e7975a0d2dcc11aaa97d770367a"
      ],
      "author": {
        "name": "Aniket Kumar Lata",
        "email": "alata@codeaurora.org",
        "time": "Wed Jan 31 20:24:23 2018 -0800"
      },
      "committer": {
        "name": "Petri Gynther",
        "email": "pgynther@google.com",
        "time": "Mon Mar 12 19:16:49 2018 +0000"
      },
      "message": "audiopolicy: Check if A2DP playback happens via primary output\n\nAudio policy implementation assumes A2DP playback to happen\nvia HW module other than the primary HAL. This need not be true\nalways, since primary audio HAL can support A2DP playback too.\nAdd an API to check if A2DP playback is supported via primary HAL,\nand if it is supported avoid suspendOutput.\n\nBug: 63932139\nBug: 68824150\nTest: A2DP offload verified on supported codecs\nChange-Id: Ic5546bc2df632462dcc28442af561d05ba2d7c58\n(cherry picked from commit 68364ffbd312cdc28dd44e66c4d80ce5a6ec49ba)\n"
    },
    {
      "commit": "58a73fc8445db7fc587e4ef494e59bf5663f8b77",
      "tree": "953f7a1db4c4b6da60818709f0efea126902d3b1",
      "parents": [
        "966c158717dea42a7aa4f69a002f30a73c8713cb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Feb 21 18:46:13 2018 -0800"
      },
      "committer": {
        "name": "Jakub Pawlowski",
        "email": "jpawlowski@google.com",
        "time": "Sat Mar 10 00:44:56 2018 +0000"
      },
      "message": "Add Bluetooth Hearing Aid routing and configuration\n\nBug: 69623109\nTest: connect to Hearing Aid, make phone call, verify audio is heard\nChange-Id: I92267fb48608fb721c5c4ef7ec9fceeafc8ea192\n"
    },
    {
      "commit": "61309523e6332addbd648c0d1bf25d35d6fd7b90",
      "tree": "d7bd244a6e75f5d7b443606ade3d2809b0ef6fc3",
      "parents": [
        "bd1f998721a5c17623043c415fa2a0bb3e57601f"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Jan 23 09:58:17 2018 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Jan 23 17:36:24 2018 -0800"
      },
      "message": "Notifications are not duplicated over multiple devices\n\nSonifications follow media routing, except for speaker playback\n  where they follow the \"safe\" path when available in the\n  absence of media playback.\n\nTest: 1/ plug headphones on phone, play notification, verify it\n         comes only from headset\n      2/ mirror device and play media, then notification, verify\n         it only comes from the speaker\n\nChange-Id: I762ad0688e879ad1e5565b4b77a7393fa7ce7ac5\n"
    },
    {
      "commit": "94c26c06d8f1c3821cc0c7994e233874f5c8ea84",
      "tree": "7fc9ce5c37fe9c0508cc957f7f5419a55f9f2488",
      "parents": [
        "f3ffd1ced8c4709388f8ed5c9a49284f36aa5b97"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Jun 30 14:50:01 2017 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Jun 30 14:50:01 2017 -0700"
      },
      "message": "Audio routing: Fix notification routing during A11y playback\n\nWhen notifications are played, the audio policy checks if media\n  is playing for deciding which devices will play it. In the\n  absence of media, the notification is duplicated on speaker\n  and headset. With media playing, the notification routing\n  is set to that of the media strategy.\nThe bug is observed during A11y playback on headset with a\n  notification playing: A11y is playing on headset, but the\n  device can\u0027t play the notification on speaker + headset at\n  the same time, resulting in the notification playing in and\n  out based on the A11y playback in headset.\nThe fix is to also consider A11y activity when routing\n  notification playback (under STRATEGY_SONIFICATION_RESPECTFUL).\n  This improves the UX the notification is not missed, and\n  doesn\u0027t cut in and out.\n\nTest: play Talkback on headset, receive notification at the same time.\nBug: 62907561\nChange-Id: Ib924ec41cb7e16d6f2686d8615facba08e256ade\n"
    },
    {
      "commit": "2ee7aab4a39139a86a24ca14f718eb20a1b355db",
      "tree": "1a7501567d6af64aa958f26453ee9360833bfd4a",
      "parents": [
        "bcbc56bfd43e071cf8b199e9e6dfc835d1f29ab6"
      ],
      "author": {
        "name": "YOUNG HO CHA",
        "email": "ganadist@gmail.com",
        "time": "Thu May 25 23:16:51 2017 +0900"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu May 25 11:26:52 2017 -0700"
      },
      "message": "Android.mk: remove $TOP in LOCAL_C_INCLUDES\n\nTest: make systemimage\n\nChange-Id: I5f83786afe3f2c65819b127b041cb74fc4c989ac\nSigned-off-by: YOUNG HO CHA \u003cganadist@gmail.com\u003e\n"
    },
    {
      "commit": "654afa04273ca78f2d61b21dd04aaf54f3bb051e",
      "tree": "11d3398c6e1e0952f9ddb159053ee6b096e74c83",
      "parents": [
        "2f35206b77dd7d8a8c761e0a81ea327c10787036"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu May 11 14:12:33 2017 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu May 11 14:31:23 2017 -0700"
      },
      "message": "Audio policy: use SPEAKER_SAFE device for alarms and ringtones\n\nUse AUDIO_DEVICE_OUT_SPEAKER_SAFE when available for\n  STRATEGY_SONIFICATION instead of AUDIO_DEVICE_OUT_SPEAKER.\nIt is alrady the case for STRATEGY_SONIFICATION_RESPECTFUL\n  (notifications).\n\nTest: play an alarm on a device with SPEAKER_SAFE in the policy conf, verify routing matches mixer path\nBug: 35675592\nChange-Id: I03a4f4238a1ac73165d44f72e4e587b31ec88cc5\n"
    },
    {
      "commit": "904d632a24db8f94de83e44f7179d1c0af022b03",
      "tree": "e86d16495e3fe207153c0f2bcadcb00d14d76aec",
      "parents": [
        "93e29c0846e0f7583ae96edafbf5e8a3169711ee"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 17 17:20:47 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 22 14:40:29 2017 -0700"
      },
      "message": "Add support for USB headset device\n\nAdd missing rules for USB headset devices in routing, volume and effects\nmanagement.\n\nTest: playback and catpure regression tests.\nChange-Id: I42cd157f483deba2371a05d332cd11dceb2b2fa3\n"
    },
    {
      "commit": "f3df83d5957fd717c1663d97cd96eb5b733902c6",
      "tree": "cb29c02e2cfe66a4d24542c710ae19ba12e8970c",
      "parents": [
        "9c544bb666bc990812422797c326a76a1bf53beb",
        "6e51336da3487318459b47191270391f3cf98b96"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 16 02:05:50 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Mar 16 02:05:50 2017 +0000"
      },
      "message": "Merge \"audio policy: add rule for ringtone duplication over speaker + SCO\" am: dc671c4e33 am: 42d5e65d2b\nam: 6e51336da3\n\nChange-Id: I67dd17852ae81df011eeb232daab5c1f290ab18a\n"
    },
    {
      "commit": "a8e0f02dee635b88ea21c20f26356354e83ec83a",
      "tree": "bd1c001a61973da976f11ed75554113ccdcd8cfa",
      "parents": [
        "5052e9cf9f8c5a62163e5dacb7999b2552873c74"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 27 17:41:53 2017 -0800"
      },
      "committer": {
        "name": "Jack He",
        "email": "siyuanh@google.com",
        "time": "Thu Mar 16 01:11:33 2017 +0000"
      },
      "message": "audio policy: add rule for ringtone duplication over speaker + SCO\n\nBug: 19171297\nTest: make, testplans/79248\n\nChange-Id: Ic539256e53782806d5dbbca5fb6ebe9f2ca5ec76\n"
    },
    {
      "commit": "36867767ba86244b0d942255b9d241b092151309",
      "tree": "1fa1b0a4cf8fe6b7f780bb8950f6ad659ae7a5d5",
      "parents": [
        "af86dcee9d97e02e9069548684ef8c9db5190ff9"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Dec 29 12:03:28 2016 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Dec 29 12:35:25 2016 -0800"
      },
      "message": "USAGE_ASSISTANT/ACCESSIBILITY in audio policy manager\n\nAdd support for USAGE_ASSISTANT.\nFix stream type for USAGE_ACCESSIBILITY.\n\nTest: enable Talkback, check volume; make\nBug: 30947943\n\nChange-Id: Ie35adf0115dce1fac6d3deddc1e57e36b36913f6\n"
    },
    {
      "commit": "e4c3c4310f4e4a76195dc08323c4a26dd28ffd08",
      "tree": "17ad3264c033a26754c3cf4aed1e5d25ca4ab49c",
      "parents": [
        "0a2ea58394190408a3d532bfcc242ba64ca71538"
      ],
      "author": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Fri Dec 16 12:13:40 2016 +0900"
      },
      "committer": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Fri Dec 16 15:10:26 2016 +0900"
      },
      "message": "Use libxml2 as shared lib.\n\nThe dependencies to static libraries in frameworks should be removed\nas many as possible to reduce a size of the system partition.\nAnd that will improve coverage of the VNDK libraries because this\neffort might find new necessary shared libs which were linked\nstatically before.\n\nSize diffs of affected binaries on sailfish-userdebug build are as\nfollows.\n\nlibaudiopolicymanagerdefault.so: 583440 -\u003e 267288 (-316152)\nlibaudiopolicymanager.so       : 16008 -\u003e 16004 (-4)\n\ntotal                          : (-316156)\n\nTest: building succeeded, and the image was tested on sailfish.\nBug: 33056637\nChange-Id: I51d98c5c2b5d94561190a1651063737fb1cb06ff\n"
    },
    {
      "commit": "08dab5ae92ddd1f3b337b6e35f918fea8c284a56",
      "tree": "4ebbef53fa801437efecb2de9135543c5f1326c6",
      "parents": [
        "8526d86ab12284135ed4ca27aeb816371c10c0e6"
      ],
      "author": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Wed Dec 07 15:08:17 2016 +0900"
      },
      "committer": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Thu Dec 08 18:13:28 2016 +0900"
      },
      "message": "Use libmedia_helper as shared lib.\n\nThe dependencies to static libraries in frameworks should be removed\nas many as possible to reduce a size of the system partition.\nAnd that will improve coverage of the VNDK libraries because this\neffort might find new necessary shared libs which were linked\nstatically before.\n\nSize diffs of affected binaries on angler-userdebug build are as\nfollows.\n\nlibmedia                    : 598056 -\u003e 547928 (-50128)\nlibstagefright              : 1496420 -\u003e 1492124 (-4296)\nlibaudiopolicyservice       : 75372 -\u003e 66940 (-8432)\nlibaudiopolicymanagerdefault: 613168 -\u003e 583516 (-29652)\nlibaudioflinger             : 397840 -\u003e 364380 (-33460)\nlibaudiohal                 : 114752 -\u003e 68684 (-46068)\nlibaudiopolicyenginedefault : 122096 -\u003e 71968 (-50128)\nlibmedia_helper             : 0 -\u003e 66288 (+66288)\n\ntotal                       : (-155876)\n\nTest: building succeeded, and the image was tested on angler.\nBug: 33056637\nChange-Id: I00a71e518337a1efcf7f55256145776311596991\n"
    },
    {
      "commit": "913d06c099bd689375483a839e11057ccf284d1c",
      "tree": "25d7f40231f47897013b0984348f40bf05b72ea7",
      "parents": [
        "267e07cd8432679bcdd72b0bdf38846446c1c4ed"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Nov 01 12:49:22 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Nov 07 09:29:37 2016 -0800"
      },
      "message": "Move TypeConverter into a shared library\n\nThis will be needed for the default implementation of the audio HAL\nin TREBLE for parsing supported formats etc. provided by HAL in\na form of string literals.\n\nAs a bonus, remove some hand-written type conversions in AudioFlinger\nused in dumps.\n\nExample changes in the dump output:\n\n   HAL format: 0x1 (pcm16) \u003d\u003d\u003e HAL format: 0x1 (AUDIO_FORMAT_PCM_16_BIT)\n   Processing format: 0x5 (pcmfloat) \u003d\u003d\u003e Processing format: 0x5 (AUDIO_FORMAT_PCM_FLOAT)\n   Output device: 0x2 (SPEAKER) \u003d\u003d\u003e Output device: 0x2 (AUDIO_DEVICE_OUT_SPEAKER)\n   Input device: 0 (NONE) \u003d\u003d\u003e Input device: 0 (AUDIO_DEVICE_NONE)\n   AudioStreamOut: 0x... flags 0x6 (PRIMARY|FAST) \u003d\u003d\u003e\n       AudioStreamOut: 0x... flags 0x6 (AUDIO_OUTPUT_FLAG_PRIMARY|AUDIO_OUTPUT_FLAG_FAST)\n\nTest: make \u0026 run\nChange-Id: I9cde640e6827b7aa6d62e9caade9e738227e299f\n"
    },
    {
      "commit": "263506542fbe480ddb247597bdcef16c437b48dd",
      "tree": "1ad06b1495a50534199f1aa5068b8519dd5d50c5",
      "parents": [
        "712690b37495816a3f55e2d000f1f68caf1c20a4"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 25 13:17:47 2016 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Nov 04 14:17:07 2016 -0700"
      },
      "message": "Remove unneeded links with dynamic libraries\n\nVarious media components were linking against dynamic libraries that weren\u0027t needed.\n\nTest: built and booted\n\nChange-Id: I7379506fd06d4e28e0eff0001fd073a2d3860f8e\n"
    },
    {
      "commit": "c661ae6165338fd5f0bca50a63058b4bcd6def4b",
      "tree": "1fabefad176045b256eb3282f391b9e1ae4ee654",
      "parents": [
        "bf2e61f54c7dcc37c97b4908c9ed6871cf3d2b49"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 25 13:17:47 2016 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Oct 26 15:42:11 2016 -0700"
      },
      "message": "Remove unneeded links with dynamic libraries\n\nVarious media components were linking against dynamic libraries that weren\u0027t needed.\n\nTest: built and booted\n\nChange-Id: I7379506fd06d4e28e0eff0001fd073a2d3860f8e\n"
    },
    {
      "commit": "9ee0540d3a61bff03d561ca431a371c3d9335d2b",
      "tree": "1bf7817725f35ec9c0755e819cb5f58fdf0bf487",
      "parents": [
        "e7e8d636b486cf49487db1d8da5e8e7cb15d9549"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 13 15:58:17 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Oct 19 09:46:33 2016 -0700"
      },
      "message": "Remove last references to hardware/audio.h\n\nDeviceHalInterface transitioned to \"capabilities\" model\n(similar to the one already used by streams, e.g. \u0027supportsDrain\u0027).\nNo direct checking of the HAL version is needed.\n\nAudioPolicy uses its own version read from the configuration,\nand these values never checked against the actual HAL version,\nthus it does not need versions and macroses from hardware/*.\n\nTest: make \u0026 run on N6P\nChange-Id: Ic4a56bfa19a9a61edac2b9f9a163fd8f63a0ff87\n"
    },
    {
      "commit": "e7557336920ca7e7d53e8ccc03d23359b41957af",
      "tree": "d9c490d2ba3d28176436b5d0374248322f0a349d",
      "parents": [
        "aadc29b910a22c1d2b422d5a96faef07dfc97292"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Oct 17 15:12:12 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Oct 17 15:23:03 2016 -0700"
      },
      "message": "Remove executable bit from ordinary files\n\nTest: builds OK\nChange-Id: I7912c9c9c85dc500d33698fc174ba2a0db387407\n"
    },
    {
      "commit": "df5d9246f9607b1c2f8b134c46a05af06e206da3",
      "tree": "7cd9fcb42c86c8cfe950db239e21e8b5ece98369",
      "parents": [
        "7ad2854adc0abe8dd7909a6ed401107ad09bc3d2",
        "fd923e7fe2779bcd69d79471b8c30c8b98918f62"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 15:40:39 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 16:10:32 2016 -0700"
      },
      "message": "resolve merge conflicts of fd923e7 to stage-aosp-master\n\nChange-Id: I75b44b89bae41197a1fd68362d20b8ba2b4dd192\n"
    },
    {
      "commit": "e964d4e421e2d1ca937227a580c0c837091a11e3",
      "tree": "876478fb4d5b18ddf8ba3b761440e46651b45ecb",
      "parents": [
        "f6d5a13c3a7a84e35e28b9840dde0f29728b6849"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Aug 09 14:31:32 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 11:35:57 2016 -0700"
      },
      "message": "Fix clang-tidy warnings in audio and playerservice.\n\n* Add explicit keyword to conversion constructors.\nBug: 28341362\n* Use const reference type for read-only parameters.\nBug: 30407689\nTest: build with WITH_TIDY\u003d1\n\nChange-Id: I265f3b094e08d5705b506b3fbba51439c134af84\n"
    },
    {
      "commit": "36d0ca16024820df9a12903d2ac443fabcc180bc",
      "tree": "51e8f285ae66ad7cb922caeb7ba8d5f1d20367e3",
      "parents": [
        "67fbddfdc2cafd63c83d3bb55a2451d4c26f546d"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Aug 09 14:31:32 2016 -0700"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 17:56:35 2016 +0000"
      },
      "message": "Fix clang-tidy warnings in audio and playerservice.\n\n* Add explicit keyword to conversion constructors.\nBug: 28341362\n* Use const reference type for read-only parameters.\nBug: 30407689\nTest: build with WITH_TIDY\u003d1\n\nChange-Id: I265f3b094e08d5705b506b3fbba51439c134af84\nMerged-In: I265f3b094e08d5705b506b3fbba51439c134af84\n"
    },
    {
      "commit": "010b235b26dea3913374b688939120f2542c0225",
      "tree": "f8e67b2376f599ed9883d8f8d3b1725b22b21aa3",
      "parents": [
        "fd9003de5d25f05405aa326f43514c4c75618d58",
        "21c4ffc9af1b6c8663a075bc5cf4d447288be7ef"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 19 17:18:49 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 19 17:18:49 2016 +0000"
      },
      "message": "Merge \"audio policy: support platforms with no audio devices\" into nyc-dev am: 8111860\nam: 21c4ffc\n\n* commit \u002721c4ffc9af1b6c8663a075bc5cf4d447288be7ef\u0027:\n  audio policy: support platforms with no audio devices\n\nChange-Id: I2bef297f529f40e7b900f659c9b56b6898d6e027\n"
    },
    {
      "commit": "8731a0a7b991470156db4dfa021be38f6b73eb8c",
      "tree": "f8e67b2376f599ed9883d8f8d3b1725b22b21aa3",
      "parents": [
        "eb059113754c54b178d6de6feec13daadd244672",
        "8111860ba116d84034b2aa21445feec71c65a9d4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 19 17:15:19 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 19 17:15:19 2016 +0000"
      },
      "message": "Merge \"audio policy: support platforms with no audio devices\" into nyc-dev\nam: 8111860\n\n* commit \u00278111860ba116d84034b2aa21445feec71c65a9d4\u0027:\n  audio policy: support platforms with no audio devices\n\nChange-Id: Iae933bddfccc3955c1cc93a1418accb0c0ca12e7\n"
    },
    {
      "commit": "5a2b62984c7cecd1761fe272c078dd814c167942",
      "tree": "e93fb96c43df88df2f05f23cb1160ecd91aead7b",
      "parents": [
        "bc0c73e05ec935bc478ee0e40aee79f80771a482"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 14 18:05:57 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 18 18:35:02 2016 -0700"
      },
      "message": "audio policy: support platforms with no audio devices\n\nRemove requirement to declare an AUDIO_DEVICE_OUT_SPEAKER device\nfor platforms without audio output.\n\nBy convention:\n- platforms without audio output should declare a single output\ndevice of type AUDIO_DEVICE_OUT_STUB also declared as default\noutput device\n- platforms without audio input should declare a single input\ndevice of type AUDIO_DEVICE_IN_STUB\n\nPlatforms with no audio at all can use stub audio policy configuration\nfile and audio HAL with the following instructions in device.mk file:\n\nUSE_XML_AUDIO_POLICY_CONF :\u003d 1\nPRODUCT_PACKAGES +\u003d \\\n    audio.stub.default\nPRODUCT_COPY_FILES +\u003d \\\n    frameworks/av/services/audiopolicy/config/audio_policy_configuration_stub.xml:system/etc/audio_policy_configuration.xml\n\nBug: 25075342\nChange-Id: Id700978559427edd3c7cc38d98f2fd52928367ed\n"
    },
    {
      "commit": "9088fdabc555053306169fc30f5f0418ff5e6b96",
      "tree": "7b9386b778fce4a0106a6f000573cb0697c48959",
      "parents": [
        "c7241e4390a26fd100415e04f8761f3dad8c938e",
        "03e015d2e6d38de6e7041766b37fe03746e9c940"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 21 23:28:44 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Mar 21 23:28:44 2016 +0000"
      },
      "message": "Merge \"audio policy: fix getDeviceForStrategy()\" into nyc-dev\nam: 03e015d\n\n* commit \u002703e015d2e6d38de6e7041766b37fe03746e9c940\u0027:\n  audio policy: fix getDeviceForStrategy()\n"
    },
    {
      "commit": "0f928fab9963f15c524f4416b3d52d2df4a93eec",
      "tree": "e32ddb682d5835ddea58ac51c098378a3b81cb39",
      "parents": [
        "02c4f1c02b832868bbae2bf2c62039e54dc0b6d4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 21 12:06:20 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 21 14:19:31 2016 -0700"
      },
      "message": "audio policy: fix getDeviceForStrategy()\n\nModification of getDEviceForStrategy by commit 28d09f064 made\nwrong use of available output devices vector passed by reference\nand caused an update of the actual list of connected devices instead\nof the local list.\n\nBug: 27586202\n\nChange-Id: I805b9cf27e1fb28494e6e23b2b874e0e5c3487e6\n"
    },
    {
      "commit": "73ea4299306f18ae7e8ee1deff00933522abccbf",
      "tree": "b2c8da1eca8cd9dee847ca843d2d734a2ee34834",
      "parents": [
        "b363544cc78b94517081dc3eb8647f39fbd0a7bb",
        "560a198f1f95a085e24944b20df536e75e21cedb"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 18 20:28:45 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 18 20:28:45 2016 +0000"
      },
      "message": "Merge \"Update audio services for 64 bit compilation\" into nyc-dev\nam: 560a198\n\n* commit \u0027560a198f1f95a085e24944b20df536e75e21cedb\u0027:\n  Update audio services for 64 bit compilation\n"
    },
    {
      "commit": "560a198f1f95a085e24944b20df536e75e21cedb",
      "tree": "bdecbf10f8294847938d4b0baa5dcf1a8ca3f9a8",
      "parents": [
        "c40fcb01669240e9c1a6af74bcb0fcd85147fa87",
        "8fa2697e21c61998f78c346251d2c08f77d720ea"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 18 20:23:25 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 18 20:23:26 2016 +0000"
      },
      "message": "Merge \"Update audio services for 64 bit compilation\" into nyc-dev"
    },
    {
      "commit": "8fa2697e21c61998f78c346251d2c08f77d720ea",
      "tree": "17e06c62a4e47b816e63cf5fbae0907fbb2efb5f",
      "parents": [
        "7e258e85368ccc8e714235a22206527090685a9b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Mar 03 13:19:27 2016 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Mar 17 18:06:46 2016 -0700"
      },
      "message": "Update audio services for 64 bit compilation\n\naudioserver still runs in 32 bits\n\nBug: 27479136\nChange-Id: I99ac607e4ce006a87abc2a3f838023e00ef78647\n"
    },
    {
      "commit": "506ab3a8b1563cc21677e5b532c84067acb918c3",
      "tree": "1b8f8ce2e67a39cc0e43c2570d7ef35de42f922a",
      "parents": [
        "d10f1be6b036522742f99ee4da97b6be6a970201",
        "a8b282504d103f1156e7d4e14104e5e91317e374"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 08 23:48:41 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Mar 08 23:48:41 2016 +0000"
      },
      "message": "Merge \"audio policy: improve accessibility volume\" into nyc-dev\nam: a8b282504d\n\n* commit \u0027a8b282504d103f1156e7d4e14104e5e91317e374\u0027:\n  audio policy: improve accessibility volume\n"
    },
    {
      "commit": "a8b282504d103f1156e7d4e14104e5e91317e374",
      "tree": "fe9d35ff271fc74e3da284d594c0752ac485b1e8",
      "parents": [
        "0c07db6e89ec1daec156b6aff9bb05027d79b32a",
        "28d09f06422841b4274d7fed6ad3441dc97382b2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 08 22:52:38 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 08 22:52:38 2016 +0000"
      },
      "message": "Merge \"audio policy: improve accessibility volume\" into nyc-dev"
    },
    {
      "commit": "28d09f06422841b4274d7fed6ad3441dc97382b2",
      "tree": "87d1d7baa2a1d6079efc1ec6f929e9d987423998",
      "parents": [
        "9322ba85a06ae149575ab102dc9bcffb4388cc7e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 08 10:43:05 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 08 14:41:50 2016 -0800"
      },
      "message": "audio policy: improve accessibility volume\n\nFix some regressions caused by the introduction of accessibility\nstream type and strategy in M.\n\n- change the way ACCESSIBILITY usage maps to a given strategy: always map\nto strategy ACCESSIBILITY but implement a specific device selection for\nstrategy ACCESSIBILITY in getDeviceForStrategy(). This makes sure that\naccessibility prompts always use ACCESSIBILITY stream type.\n\n- optimize getDeviceForStrategy() to avoid reloading the list of outputs\nand devices from the observer when called recursively.\n\n-  make sure that all volume APIs also take into account ACCESSIBILITY stream\nwhen called for MUSIC stream. Generalize the concept of matching strategies\nfor straqegies that should be considered equivalent for volume control.\nModifications in:\n- initStreamVolume()\n- setStreamVolumeIndex()\n- isStreamActive()\n- getDevicesForStream()\n\nBug: 25067903\nBug: 25616373\nChange-Id: Id8c7dd3231f79572b278407bc73186fc42dcc028\n"
    },
    {
      "commit": "d10f1be6b036522742f99ee4da97b6be6a970201",
      "tree": "ee98463c309385af33e0c5ed172350a6d01f78c9",
      "parents": [
        "f416959aeda09922c8f4f9bc6043c9c086d58100",
        "0c07db6e89ec1daec156b6aff9bb05027d79b32a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 08 21:00:21 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Mar 08 21:00:21 2016 +0000"
      },
      "message": "Merge \"audio policy: change default in call routing for line out device\" into nyc-dev\nam: 0c07db6e89\n\n* commit \u00270c07db6e89ec1daec156b6aff9bb05027d79b32a\u0027:\n  audio policy: change default in call routing for line out device\n"
    },
    {
      "commit": "a0b18ce8f737c0d6ccd728e17c3f355a250ae1dc",
      "tree": "405e015e521d8688831df089f31446b2e1f2f241",
      "parents": [
        "9322ba85a06ae149575ab102dc9bcffb4388cc7e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 08 11:05:00 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 08 11:13:25 2016 -0800"
      },
      "message": "audio policy: change default in call routing for line out device\n\nCurrent strategy is to use LINE OUT for calls only when speaker phone mode\nis enabled.\nThis creates confusion because most users don\u0027t understand why the behavior\ndiffers between a headset and a line out.\nAlso the main use of a line out device for calls is when connected to a car kit\nvia an aux cable. In this case, you want to use the car kit by default without\nhaving to touch your phone and select speaker phone.\n\nBug: 27548502\n\nChange-Id: I3e8a540b91dc80516439a97dabc9641b95ce23a7\n"
    },
    {
      "commit": "a3b8c24661eb8d7bab718029dbbfe35b4cfc57ac",
      "tree": "f35fc78d626d5533341bdb2f9ab7adfb38be0706",
      "parents": [
        "0cfae5863be38dec0247b3f8b88e6c5914dcb6bb",
        "65e74d0b8b60fddc9543c5e954628feb5941dd3c"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Mar 01 00:12:24 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Mar 01 00:12:24 2016 +0000"
      },
      "message": "Merge \"AudioPolicyManager: force encoded surround setting\" into nyc-dev\nam: 65e74d0b8b\n\n* commit \u002765e74d0b8b60fddc9543c5e954628feb5941dd3c\u0027:\n  AudioPolicyManager: force encoded surround setting\n"
    },
    {
      "commit": "09bc4612bdd5874d744c5da1183d96fbd2ad0235",
      "tree": "fc94045495e98c0f750c4bc262aea88c0f406e3b",
      "parents": [
        "1ba1eeca713c118ce12c97ac8bbdadbdd0cc5ff1"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Feb 24 15:58:15 2016 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Feb 29 12:24:21 2016 -0800"
      },
      "message": "AudioPolicyManager: force encoded surround setting\n\nBug: 26373761\nChange-Id: I0f7a486bf1aa7a27f15cf220e2c75ef23f8f8536\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "4b10421d8f8abb11907a4c54e4e225b6d9330ece",
      "tree": "f67d12d4813227d1169b83a3201ce03bf0c5038b",
      "parents": [
        "aca058c6e86a975dff03038347eb73ead4b71201",
        "11c3022b6e5fcf48c8ba7c13bba899ff1b00a9e9"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Sat Feb 13 01:26:14 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Feb 13 01:26:14 2016 +0000"
      },
      "message": "Merge \"Add missing liblog dependency\"\nam: 11c3022b6e\n\n* commit \u002711c3022b6e5fcf48c8ba7c13bba899ff1b00a9e9\u0027:\n  Add missing liblog dependency\n"
    },
    {
      "commit": "d1a9f491e7850136c203ba118a5f045933cd5d29",
      "tree": "12459b91970a7da72616db60b1676b9bba9fa4d5",
      "parents": [
        "e27e223dedcc8f7970d550cebd4a7dda3599ef03"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Feb 12 16:19:48 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Feb 12 16:21:07 2016 -0800"
      },
      "message": "Add missing liblog dependency\n\nBug: http://b/27171986\nChange-Id: I5f62e39b54b7dfc0aa03992a20373a0a6daf1e2f\n"
    },
    {
      "commit": "d1ab2bd4f1ea166a7e9e81cfd7f3e5dd47135d4d",
      "tree": "14c1b9bb94c6b5bf6820be9cce3484995486696e",
      "parents": [
        "987f953298169027df001409fbd82991d82900bc"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Wed Dec 02 18:20:06 2015 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 21 14:40:54 2016 -0800"
      },
      "message": "audio policy: move volume table to XML file\n\nThis patch allows to store in XML file volume tables.\nThe compatibility is maintained for legacy conf file.\nConfigurable Engine is only compatible with new XML conf.\nThis patch removes from configurable engine Structure / Settings the volume\ntable but keep the configurabllity of switching volume profiles from\none another according to criteria like phone state...\n(ex: DTMF stream type is following Voice Profile in call)\n\nChange-Id: I78c91bc3378b6c47202abe7b5c1c1e011ff62eed\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "f4ad6e5637b6deccdac4b60615383f290b3806cf",
      "tree": "c5f1796e20a7e7d34f71cb2c6ef0b0ab3a9cde4d",
      "parents": [
        "74a930b2bb7c61c25232c4f06b67abdbeaca8116"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Thu Nov 19 16:59:57 2015 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 15 09:53:00 2016 -0800"
      },
      "message": "Audio policy: implement configuration file in XML\n\nThis patch introduces configuration file of the policy in XML.\nLegacy configuration file is used by default and\ncompilation flag USE_XML_AUDIO_POLICY_CONF must be defined to\nuse XML file format.\n\nChange-Id: I352b788b5829d42ed82c851a4faef0e526be582e\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "8a397d583a4f4cf24ad88facaf2fd33990cfb811",
      "tree": "3d35ebfc3bfbc18e0983e35d1f59892c2c3ee42c",
      "parents": [
        "df9e6aaf716279baf0e27b99acf10005924245ed"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Wed Dec 02 11:27:57 2015 -0800"
      },
      "committer": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Tue Jan 05 07:04:37 2016 -0800"
      },
      "message": "Adding UNPROCESSED to the available audio_sources\n\nbug: 25564291\nChange-Id: I86d8feda4d687352f98b640819211207a06d6b50\n"
    },
    {
      "commit": "d0609ad390ff8bb1cafebdf363bf1d15e63b949f",
      "tree": "4fb8bed9270800f907acac087806227114577689",
      "parents": [
        "3f273d10817ddb2f792ae043de692efcdf1988ae"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Tue Dec 01 17:56:08 2015 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 02 10:33:18 2015 -0800"
      },
      "message": "audio policy: move device_category type outside volume class\n\nThis patch prepares the removal of hard coded volume tables by\nmoving outside volume class the device_category enumeration.\n\nChange-Id: Ic712377898276a39bb782ac0bc7f793cdd7fa8bd\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "b9017af21e097ef12867e0d4b72c432579f29674",
      "tree": "a9283a1f2a1846508e6eeb8579b166ddc85d21ed",
      "parents": [
        "0f05031545e43c8fe49a9dda0cfd9dce202d1ef3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 10 18:38:08 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 11 14:30:52 2015 -0700"
      },
      "message": "Force fixed volume for TTS stream\n\nAlways play Transmitted Through Speaker stream at max volume instead\nof tracking media stream volume.\n\nBug: 23729461.\nChange-Id: I61021f59617bb851a4cd7da80924e587029e96a3\n"
    },
    {
      "commit": "9a7d922796c61353e30cea5878f41b921adc79b0",
      "tree": "a52b00294822963dd4f6d2d85b9b9d90a757e6fa",
      "parents": [
        "065f6572752dca646b7d60df8e80b6d4ac159281"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 02 15:30:23 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 07 14:07:37 2015 -0700"
      },
      "message": "audio policy: add support for device combo with speaker safe\n\ncombo devices with AUDIO_DEVICE_OUT_SPEAKER_SAFE were not\nsupported by audio policy manager causing selection\nof speaker+headphone when spekaer_safe+headphone would be\nthe right selection.\n\nBug: 21537010.\nChange-Id: I9865352559c9d32c6754ad3d2b84bddfe2dc8aac\n"
    },
    {
      "commit": "a20d4fa431d1091abf66f9d426ef0cf441db6623",
      "tree": "71404014cc365b5d4640254f3f6ff907a20ccfcc",
      "parents": [
        "d16a8ef26fd1f7a86061c396c5865564af2f1abb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 04 18:39:28 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 08 10:27:58 2015 -0700"
      },
      "message": "audio policy: route media to BT SCO in call\n\nAllow media (and Navigation instructions) to be routed\nto BT SCO in call.\n\nBug: 18986190.\n\nChange-Id: I1fa4decfbf035623fdcc8681b53cbd61e1d5f933\n"
    },
    {
      "commit": "a9b84966942fc4e7ab100376a4c5c41271fede8e",
      "tree": "598c0914fe1bdb8bbdd96ca75e3fdff8b7497cac",
      "parents": [
        "f52b2284405ec1d8941334718f580157417f9d60"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu May 07 12:29:05 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu May 07 21:52:46 2015 +0000"
      },
      "message": "Kill a new user of stlport.\n\nBug: http://b/15193147\nChange-Id: I20d21a040f0c2c6c291053fe02fdf82e33ed56a0\n(cherry picked from commit 1b5a73358b72b8ff1bee05cc44d94b47b73ede44)\n"
    },
    {
      "commit": "ffbc80f5908eaf67a033c6e93a343c39dd6894eb",
      "tree": "c97aa681b8c70d7429f7be93f851f04e9dee5900",
      "parents": [
        "c75307b73d324d590d0dbc05b44bce9aa89b7145"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 18 18:30:19 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 08 18:08:24 2015 -0700"
      },
      "message": "audio policy: volume in dBs\n\nVolumes are now stored and exchanged in dBs to be\nconsistent with the volume tables.\n\nThey are converted if needed when applied to the target\ngain controller.\n\nChange-Id: I916cbb0bbe65c916444b8c65a2bdca9645c58399\n"
    },
    {
      "commit": "c75307b73d324d590d0dbc05b44bce9aa89b7145",
      "tree": "824a23a9ffbebb3ace63146c171e938df6630fdd",
      "parents": [
        "303db9de6506db0c2b300863c39ece81721dd4e9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 17 15:29:32 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 08 18:08:11 2015 -0700"
      },
      "message": "audio policy: volume control reorganization\n\nOutput volume and routing control by AudioOutputDescriptor\nis reorganized to prepare hardware source volume and routing\ncontrol.\nAudioOutputDescriptor contains all volume, device and activity\nstate common to software (audio flinger mixers) and\nhardware sources (tuners, A2DP, HDMI).\nA new class SwAudioOutputDescriptor is derived from\nAudioOutputDescriptor and is specific to software sources.\n\nLow level routing and volume control methods receive an\nAudioOutputDescriptor parameter instead of an IO handle.\n\nmPrimaryOutput is now an AudioOutputDescriptor.\n\nChange-Id: Ie90943ee3102cdb8adf89fdd2addd2c279b1e5bf\n"
    },
    {
      "commit": "322b4d25387a04c9afebe998326d005bbdf17ede",
      "tree": "3cf0c2912dc7cb75acb60526bef382dd90e9a51d",
      "parents": [
        "6dc4dc4ad23dc82eca9af3112292f3e6d5b17b15"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 03 15:57:54 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 08 12:37:35 2015 -0700"
      },
      "message": "audio policy: fix unique audio port ID.\n\nRemove mId member from AudioPort as it was shadowed\nby mId in DeviceDescriptor.\n\nAdd getters for Id, and HW module name and version to device,\noutput and input descriptors.\n\nFix DeviceDescriptor name initialization.\n\nChange-Id: I4a69f385e40330954d9dad5f2926c521f60b2ec1\n"
    },
    {
      "commit": "5c233f8b772719371475624edf1002ed80e1d0e8",
      "tree": "be755bf0280875c5f6087bc63fe921a7d46da53c",
      "parents": [
        "d4d55cdf31a3faa619bfa043f5b0f170f6ffd139"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Apr 03 09:21:24 2015 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Apr 03 09:21:24 2015 -0700"
      },
      "message": "AudioPolicy: remove extraneous parentheses\n\nChange-Id: Ibcea37b90cc0aaacb3b6194745bf569edad8992a\n"
    },
    {
      "commit": "2110e04cdfbf9ad85ce154ce5f778ee5ccfc95eb",
      "tree": "5051da296e1fbc067db7ac190334d7d98a4410eb",
      "parents": [
        "dfd7409c1b708f6c429aa43722ca8493a91d8df0"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Tue Mar 24 08:41:51 2015 +0100"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 01 10:22:42 2015 -0700"
      },
      "message": "Split ManagerDefault into manager and engine\n\nThis patch defines an interface for a new component: policy engine.\nThe APIs found under this interface are the one we may want to customize\nand to configure easily.\nThis patch also split the current manager code into manager and engine to\nprovide a default version of the policy engine.\n\nChange-Id: I97cf59760b53d248fe9efe466ae5e73bd7e5cc06\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    }
  ]
}
