)]}'
{
  "log": [
    {
      "commit": "a9f86651eaaf2f702b3759ec38dbb64ca8858356",
      "tree": "913a55b14107e7f94335bec0ad6705f9557255a0",
      "parents": [
        "c241b0dfc49014087123dae92f7341db8d30d443"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 28 17:23:11 2018 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 19 18:05:00 2018 -0800"
      },
      "message": "audo policy: more info in onRecordingConfigurationUpdate\n\nReport more information in onRecordingConfigurationUpdate() callback:\n- For client:\n  - Port ID\n  - Enabled effects\n  - Silenced by policy\n- For stream:\n  - Active effects\n  - Active audio source\n\nBug: 111438757\nTest: make\nChange-Id: I34c3d0ee6251576de7d793bfaa2bc2c34efa2319\n"
    },
    {
      "commit": "c241b0dfc49014087123dae92f7341db8d30d443",
      "tree": "9662b3ddd3860f1043da86eea159698331dfb81f",
      "parents": [
        "424993f0655c18f91562efc9d127f0ac970da6fa"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 28 09:08:49 2018 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 19 12:45:47 2018 -0800"
      },
      "message": "audo policy: add effects to record clients\n\nAdd list of active effects on input streams and record\nclients for further reporting in AudioRecordingConfiguration.\n\nBug: 111438757\nTest: make and dumpsys\nChange-Id: I1ae00d2431c80b053f67e2b780f368d5a4822b01\n"
    },
    {
      "commit": "cfd2830436e4bd400c4bf9c223642ef567c5aa6e",
      "tree": "48b0ac20dd90fba526d31467e6058fc7c7c965e1",
      "parents": [
        "e21f3418be2e323ad1ed64d79f862474f2c98c76"
      ],
      "author": {
        "name": "Michael Groover",
        "email": "mpgroover@google.com",
        "time": "Tue Dec 11 19:16:46 2018 -0800"
      },
      "committer": {
        "name": "Michael Groover",
        "email": "mpgroover@google.com",
        "time": "Tue Dec 18 10:59:53 2018 -0800"
      },
      "message": "Prevent recording when sensor privacy is enabled\n\nTest: Manually verified audio was not recorded when sensor privacy \\\n      was enabled.\nBug: 110842805\n\nChange-Id: I3bb966d9322e258a8aba43fb4e9f65badd7c3506\n"
    },
    {
      "commit": "aca677cf5fbd2a2d5aaccae3af4da6c1d700eb93",
      "tree": "c331bde769a019c47dccc80c09a0c3f8190a8661",
      "parents": [
        "2b167173e145d8846c9a248039f0f4dc423ade73"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Thu May 03 10:47:50 2018 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 13 17:24:46 2018 -0800"
      },
      "message": "audiopolicy: common: add several helper function on DeviceDesc\n\n-Add another DeviceVector constructor to simplify usage\n-report tagname as port name\n-migrate API from apm\n-search/filter helpers\n\nTest: Audio smoke tests.\nTest: CTS tests for AudioRecord, AudioTrack and AudioEffect\n\nChange-Id: Ie37a2d9db2e8a15a37743e7129159fa77a4c6b51\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "2b167173e145d8846c9a248039f0f4dc423ade73",
      "tree": "395f2c76fd05edb48c42ab76f5c2eb6994a04675",
      "parents": [
        "83d789d6234f5cd5eb90f02a47ab04d4f6ea8299"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Mon Jun 04 16:05:14 2018 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 13 17:24:46 2018 -0800"
      },
      "message": "audiopolicy: update type convertion library\n\nTest: Audio smoke tests.\nTest: CTS tests for AudioRecord, AudioTrack and AudioEffect\n\nChange-Id: I3ed8c7d7ee8a97f0bd41a5ae9f28d673994d7f07\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "83d789d6234f5cd5eb90f02a47ab04d4f6ea8299",
      "tree": "73e9caf4a7eb025194119abb51236609b6adef31",
      "parents": [
        "99896dab5f368916c86acb97e82bf72c86a14922"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Tue May 29 13:29:19 2018 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 13 17:24:46 2018 -0800"
      },
      "message": "audiopolicy: apm: connectAudioSource: use Sw brigding according to hal support\n\nEven if the implementation is not ready, this patch updates the conditions\nof audio patch creation delegation to audio hal not only if HAL\nis at least supporting 3.0 routing API but also has declared within\npolicy configuration file that a route between Device port is supported.\n\nIf the route is not declared in configuration file, Audio HAL is not able\nto do the connexion, let AudioFlinger do the the Sw Bridging.\n\nTest: Audio smoke tests.\nTest: CTS tests for AudioRecord, AudioTrack and AudioEffect\n\nChange-Id: I6ed11be04473be2edfcf16e922d1c6864184b6cd\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "99896dab5f368916c86acb97e82bf72c86a14922",
      "tree": "67cc39b5e30b396ce6f62cbac583e373c9919515",
      "parents": [
        "d00c4607a5f7d25dfe925a20a1fc5fd7cfcee67a"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Mon Apr 09 11:05:33 2018 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 13 17:21:41 2018 -0800"
      },
      "message": "audiopolicy: Fix sofware bridge creation for AudioHAL supporting routing APIs\n\nAudioPolicy roughly checks if HAL supports routing APIs 3.0 to enable or\nnot software bridge in case of device to device patch requests.\n\nHowever, Audio HAL declares in XML file routes supported. AudioPolicy\nshall refine its decision upon information available in the policy configuration\nfile.\n\nTest: Audio smoke tests.\nTest: CTS tests for AudioRecord, AudioTrack and AudioEffect\n\nChange-Id: Idc2e1ccd7d9fb6385f9a05ee002bec045e608232\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "d00c4607a5f7d25dfe925a20a1fc5fd7cfcee67a",
      "tree": "a10c63ea495cd157ae091a0376ebc4e41dc1bb14",
      "parents": [
        "61cf6c171c70c771c8de83549d99a979d37b5e4e",
        "bb93dfb7823e6abe4d4d7862559599803da1ad01"
      ],
      "author": {
        "name": "Hongwei Wang",
        "email": "hwwang@google.com",
        "time": "Fri Dec 14 00:58:25 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 14 00:58:25 2018 +0000"
      },
      "message": "Merge \"In favor of SW patch in AudioPolicyManager::connectAudioSource\""
    },
    {
      "commit": "9f4d651815e3089d2019a9fcf42e9b6eced6b1cd",
      "tree": "6cca21fe4726496e8a48df33c1c8bd6ed174cc63",
      "parents": [
        "156082a18c9186359d2a6bf434d76c338c8db43f",
        "dd6da3e10b2757a059165d636b0927392e745a9d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 13 02:07:25 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 13 02:07:25 2018 +0000"
      },
      "message": "Merge \"Audio Policy: enable surround sound configuration in xml\""
    },
    {
      "commit": "bb93dfb7823e6abe4d4d7862559599803da1ad01",
      "tree": "1ef9d11f9d4ad4b6a1db6169c7657c31eacb1323",
      "parents": [
        "7763cf3b0eb9ae0ed5c375d19324fa068a070229"
      ],
      "author": {
        "name": "Hongwei Wang",
        "email": "hwwang@google.com",
        "time": "Tue Oct 23 13:54:22 2018 -0700"
      },
      "committer": {
        "name": "Hongwei Wang",
        "email": "hwwang@google.com",
        "time": "Wed Dec 12 13:39:14 2018 -0800"
      },
      "message": "In favor of SW patch in AudioPolicyManager::connectAudioSource\n\nIn case the dynamic routing rule is present, creates the SW patch from\naudio source device to Android mixer (specified by dynamic routing rule)\n\nA typical use case is to route broadcast radio to the same media output\nas other media applications.\n\nBug: 118763832\nTest: connectAudioSource from FM Radio and dumpsys media.audio_flinger\n\nChange-Id: Id07d3a6dd9fc5f322f4eb38efe02c302018253cd\n"
    },
    {
      "commit": "c94b0f806352d9384eeb92c2e4d7173851ccc573",
      "tree": "36bd89a1cd2fe27c243a1db1445957be3ad90cba",
      "parents": [
        "45d34272dfa8462adda0f11ccfa169c5afa49621",
        "405733256a9cf62c9e3be2d8dbd5ccb9cb7c5d97"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 12 04:05:07 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 12 04:05:07 2018 +0000"
      },
      "message": "Merge \"Support open output stream with haptic channel mask.\""
    },
    {
      "commit": "45d34272dfa8462adda0f11ccfa169c5afa49621",
      "tree": "45450f514f133a91a4746eb6b232c86dc3280806",
      "parents": [
        "cf80f34cc5e8d16d939df21879d770200defaf6e",
        "6012f913f0772cf0b73f379778efc671ce72c557"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 12 02:32:28 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 12 02:32:28 2018 +0000"
      },
      "message": "Merge \"Querying capability of haptic playback.\""
    },
    {
      "commit": "405733256a9cf62c9e3be2d8dbd5ccb9cb7c5d97",
      "tree": "b395e3e093aa3010b54f9227e8a7cef08ed1b2a0",
      "parents": [
        "6b6a0f05248fc646d42f09cb891d8b6fda19426e"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Nov 08 12:08:02 2018 -0800"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Dec 11 17:18:05 2018 -0800"
      },
      "message": "Support open output stream with haptic channel mask.\n\nWhen haptic playback is supported according to audio policy\nconfiguration file, try to open the output stream with haptic channel\nmask. When trying to creat a track with haptic channel mask, use haptic\noutput if it is available.\n\nBug: 111454766\nTest: Manually test\nChange-Id: Ia8c70dd7f602a134d0509630eb734b8c540dea7d\n"
    },
    {
      "commit": "6012f913f0772cf0b73f379778efc671ce72c557",
      "tree": "c77bb87b93b7fd9e3ad78532761d7e4ac7cfe9e6",
      "parents": [
        "6b6a0f05248fc646d42f09cb891d8b6fda19426e"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Nov 02 17:06:30 2018 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Dec 11 16:18:09 2018 -0800"
      },
      "message": "Querying capability of haptic playback.\n\nBug: 111454766\nTest: Manually test\nChange-Id: Ib200d6b8f02354a01cf599a96fb1a9062dcd3050\n"
    },
    {
      "commit": "dd6da3e10b2757a059165d636b0927392e745a9d",
      "tree": "1cbe818faf080d8fc9b3c2456eab9b9e373e4004",
      "parents": [
        "6b01bf3f93113ea19c4f1e8dfd65fe9da7f1a0c9"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Dec 11 14:41:41 2018 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Dec 11 16:05:40 2018 -0800"
      },
      "message": "Audio Policy: enable surround sound configuration in xml\n\nThe surround sound configuration used to be disabled. This patch\nenables it, and moves out the surround sound configuration into\na dedicated file.\n\nBug: 116356348\nTest: xmllint --noout --xinclude --schema \\\n      hardware/interfaces/audio/5.0/config/audio_policy_configuration.xsd \\\n      frameworks/av/services/audiopolicy/config/audio_policy_configuration.xml\n\nChange-Id: I26eb55b818d813494fc31812d00e33851b79f02b\n"
    },
    {
      "commit": "a223769e7767765ba7a546f66887508fbb19f54d",
      "tree": "a24bbadad46856fca743a3d6d31d0c046f55f73f",
      "parents": [
        "7ce82e7ccf47ec5ea00a85a15665eb51edd9b258",
        "a94fbb22404ef26d12fbb3ad0376df15f84f47ec"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 11 13:54:38 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 11 13:54:38 2018 +0000"
      },
      "message": "Merge \"Implement AudioTrack.isDirectPlaybackSupported method\""
    },
    {
      "commit": "d0f1bffe98354848dc23f4492d8f86987459f179",
      "tree": "516eb8f048077f2672ecfa749c7c617bde4df602",
      "parents": [
        "6c5157eaa8682ee60db576c49fcf56a3d61174f0",
        "a46bedb84a6c972f128e17e7bed114ad0863b0b3"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 11 03:34:44 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 11 03:34:44 2018 +0000"
      },
      "message": "Merge changes I2fc54853,If58ff214\n\n* changes:\n  audio policy: fix capture policy for assistant\n  Revert \"Revert \"audio policy: concurrent capture\"\"\n"
    },
    {
      "commit": "3ca78ae0f955c27a561d590bad7e76cc33fd1ec8",
      "tree": "1dfb2c3d4d67150ea408f123fb53f7384880f8e6",
      "parents": [
        "7f6f0fd0009dc5991af995cc369d9fd7e1ac36b5",
        "261413ac043ea80ed4e068847b4060c93be20dbe"
      ],
      "author": {
        "name": "nobuaki tanaka",
        "email": "nobuaki.xb.tanaka@sony.com",
        "time": "Mon Dec 10 15:49:54 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Dec 10 15:49:54 2018 -0800"
      },
      "message": "Merge \"Apply stream volume for the correct device\" am: c6b48fe627 am: 03a9cbbeb0\nam: 261413ac04\n\nChange-Id: Id5e366ce17585f2c7f0ed1240ecaf71e75a603af\n"
    },
    {
      "commit": "a46bedb84a6c972f128e17e7bed114ad0863b0b3",
      "tree": "d0a35a7aa88bf66dea6334eecfdf3689a1dd22f2",
      "parents": [
        "4eb58f1f36606ad7af392a920e1d029a5fb1e797"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 07 18:01:26 2018 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 10 15:45:51 2018 -0800"
      },
      "message": "audio policy: fix capture policy for assistant\n\nFix concurrent capture policy for assistant: allow assistant to capture if\nrunning as foreground service too and not only if on top.\n\nSame fix for accessibility service.\nAlso refine logic for single active client on top by retaining the\nlatest started capture from an app on top (in case several apps can be on top).\nAlso fix priority between app on top and app with foreground service.\n\nBug: 120588242\nBug: 111438757\nTest: Manual capture tests with solotester and Camera, Assistant and Duo\nTest: CTS tests for AudioReco\nChange-Id: I2fc54853a584b9e9e48c012b0c3a2bcc8436a340\n"
    },
    {
      "commit": "c6b48fe6272db5d3ca910598565c2b48b547ce7f",
      "tree": "211582ffa4ab12ca3a22757fffb0d7d1cf353a98",
      "parents": [
        "14c577fac81b8fdcc75e4bf9243f16bd624ba58b",
        "985d15a9c7e45e7e7021aa53a48de3fa222e3815"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Dec 10 22:53:45 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 10 22:53:45 2018 +0000"
      },
      "message": "Merge \"Apply stream volume for the correct device\""
    },
    {
      "commit": "4eb58f1f36606ad7af392a920e1d029a5fb1e797",
      "tree": "c1599fda024344eaf6da5e1d33fc410384127550",
      "parents": [
        "5a2048c3095478482a5ac16639514d3a0a214713"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 07 16:41:02 2018 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 10 14:10:05 2018 -0800"
      },
      "message": "Revert \"Revert \"audio policy: concurrent capture\"\"\n\nThis reverts commit df628924e691e01da190c1ac5db173304442e54a.\n\nBug: 120588242\nBug: 111438757\nTest: make\nChange-Id: If58ff2143fdb744678bb84394598104ced01f5b9\n"
    },
    {
      "commit": "100f0121068605a10b0a254b7ee5784409d09229",
      "tree": "07435569751b97014e448e3162ca28b02926187f",
      "parents": [
        "0422892023dcd4616f00028fd223fef056bc0e16"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Nov 29 11:22:16 2018 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Dec 10 09:25:14 2018 -0800"
      },
      "message": "APM: Improve surround formats management, include MSD\n\nThis is what this change does:\n\n1) Renames APM::mSurroundFormats into mManualSurroundFormats\n   and avoids modifying it in modifySurroundFormats, because\n   multiple surround-capable devices are possible.\n   modifySurroundFormats logic is also a bit simplified.\n\n2) Changes the way APM::getSurroundFormats reports enabled\n   formats, after the change  1).\n\n3) Includes MSD module into consideration as a surround-capable\n   device.\n\n4) Changes APM::dump to only show mManualSurroundFormats\n   when surround sound is enforced into manual management.\n\n5) Adds Dolby AC-4 to the list of surround formats.\n\n6) Declares surround formats on the devicePort of MSD.\n\nBug: 117602867\nTest: Surround Sound settings with MSD module\nChange-Id: I5cdd3c012a3febcf7170cc5fa7378224b3ef9e4f\n"
    },
    {
      "commit": "0422892023dcd4616f00028fd223fef056bc0e16",
      "tree": "11dfbf1d69b4357e8c940e1ee12405d59b9797b3",
      "parents": [
        "07567d630dbda88b9a25a439a5936e507d1caeca",
        "df628924e691e01da190c1ac5db173304442e54a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 07 16:39:03 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 07 16:39:03 2018 +0000"
      },
      "message": "Merge \"Revert \"audio policy: concurrent capture\"\""
    },
    {
      "commit": "df628924e691e01da190c1ac5db173304442e54a",
      "tree": "e2dda15a881c963a14520117128b5b9857834759",
      "parents": [
        "4c1ef4b64d113be6ee1106375bd10cdc643e80d8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 06 21:45:51 2018 +0000"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 06 21:45:51 2018 +0000"
      },
      "message": "Revert \"audio policy: concurrent capture\"\n\nThis reverts commit 4c1ef4b64d113be6ee1106375bd10cdc643e80d8.\n\nReason for revert: b/120588242\n\nBug: 120588242\nChange-Id: Iac41f371cb739c54d5ce519232688bebe2285c72\nTest: Launch QSB and capture from mic icon\n"
    },
    {
      "commit": "d5e180520a5b7aeb970bc796abc3ef8070d5174c",
      "tree": "485ebba16f82af8928f02e627773fd02963dcf95",
      "parents": [
        "71738ebf94589faa5aef3c1ba8d53cd17b7fec0f"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Nov 30 14:55:45 2018 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Dec 06 18:25:48 2018 +0000"
      },
      "message": "Audio Policy: Parametrize encoded formats supported by device\n\nFor various reasons, we need to store the list of audio\nformats supported by devices. Here we add support for this\ninto DeviceDescriptor. We don\u0027t read them yet from\nthe APM config file, but we will eventually.\n\nAlso in this change, use the formats list for parametrizing\nthe behavior of surround sound configuration. The special\nlogic for AC3 and IEC69137 formats used to be hardcoded\ninto \u0027filterSurroundFormats\u0027 function, now it is\nparametrized by the device descriptor information.\n\nFix behavior of \u0027filterSurroundFormats\u0027 in \u0027manual\u0027\nmode, where it was removing PCM formats from the list.\n\nRename \u0027filterSurround...\u0027 functions to \u0027modifySurround...\u0027\nsince they can both add and remove items from the provided\nlist.\n\nBug: 67479735\nBug: 117602867\nTest: compare A/B APM dumps while modifying Surround Sound\n      settings; tested with a HDMI sink that doesn\u0027t support\n      any surround, and with an AV receiver\nChange-Id: Ie46480d5e9519366b1f3553645c9ca20f64bdc80\n"
    },
    {
      "commit": "a94fbb22404ef26d12fbb3ad0376df15f84f47ec",
      "tree": "b4a8052d5ce8726541ba7a25e3f1f449d351acd9",
      "parents": [
        "b079c02b1fa4f1b5c5b6334b93af584797b4454f"
      ],
      "author": {
        "name": "Michael Chan",
        "email": "mzchan@dolby.com",
        "time": "Tue Apr 24 14:31:19 2018 +1000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Dec 05 15:35:35 2018 -0800"
      },
      "message": "Implement AudioTrack.isDirectPlaybackSupported method\n\nThe method checks whether the provided AudioFormat can be played\nvia currently connected output devices w/o SRC or downmixing\nby the framework.\n\nThe implementation methods are called \u0027isDirectOutputSupported\u0027\nto match APM\u0027s terminology.\n\nBug: 120044865\nTest: atest CtsMediaTestCases:AudioTrackTest#testBuilderValidate\nChange-Id: I11769f796c34583fb2641415d2faab00ac526123\n"
    },
    {
      "commit": "79222e7a39a73f5c635958a62f6f0ccde250e04c",
      "tree": "8a38da61031fdf19af175b79dbce4b1559f593aa",
      "parents": [
        "92125f621579089621d4e8251761dae453f22b1f",
        "4c1ef4b64d113be6ee1106375bd10cdc643e80d8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 05 22:28:55 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 05 22:28:55 2018 +0000"
      },
      "message": "Merge \"audio policy: concurrent capture\""
    },
    {
      "commit": "9e29ea8bd0be596c65d93ae196afac8339e00bfa",
      "tree": "42ba005a56b01d721e223bff6b9b894e239d641c",
      "parents": [
        "973db02ac18fa1de9ce6221f47b01af1bdc4bec2"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Thu Nov 08 14:28:10 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 04 13:51:20 2018 -0800"
      },
      "message": "Fix build issue\n\nTest: make\n\nChange-Id: I5563ff049ddc384556976f577a6d0ebc020516c8\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "4c1ef4b64d113be6ee1106375bd10cdc643e80d8",
      "tree": "203b9b1ca84efc9342514175d616c0a7c22150ad",
      "parents": [
        "973db02ac18fa1de9ce6221f47b01af1bdc4bec2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 13 16:46:26 2018 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 04 12:06:37 2018 -0800"
      },
      "message": "audio policy: concurrent capture\n\nImplement concurrent capture in audio policy manager:\n- Attach AudioRecord client to already opened input when possible\ninstead of systematically opening a new input for each client.\n- Always allow inputs to start even in case of concurrency.\n- Clients are selectively silenced based on their app state by audio\npolicy service.\n- In case of concurrency on a given input stream, device and source is\nchosen based app states and source priority.\n\nBug: 111438757\nTest: Manual capture tests with solotester and Camera, Assistant and Duo\nTest: CTS tests for AudioRecord\n\nChange-Id: I302710ff545f67361d9aca89e81de40771ce7fb0\n"
    },
    {
      "commit": "e8c8b4359835a12a3d1bf84f281c36bce031bb33",
      "tree": "cac3af958f25ed4f7163b8ddfe2134a957aafc9b",
      "parents": [
        "6b6a0f05248fc646d42f09cb891d8b6fda19426e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 17 10:08:02 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 03 16:28:21 2018 -0800"
      },
      "message": "audio policy: implement uid state management for capture\n\nReceive app state updates from ActivityManager and use it to implement\nconcurrent capture policy.\n\nBug: 111438757\nTest: Manual test with solotester app concurrently with Camera, Duo and\nAssistant\n\nChange-Id: I979ad4ecc8b926abb64e1b321b43bd7bd442a8f1\n"
    },
    {
      "commit": "1268b28c5c65691532d3ffb503a199c677c801b9",
      "tree": "b83077c5746df6b313973b86f9aa94e52383f310",
      "parents": [
        "d46012025aed1bc366982bc0edc93c56c034828e",
        "dfa1e8ab20ce54f3cde479e1305861867abcdbea"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Nov 30 23:24:18 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 30 23:24:18 2018 +0000"
      },
      "message": "Merge \"Policy config parser: migrate to BP and drop legacy format\""
    },
    {
      "commit": "dfa1e8ab20ce54f3cde479e1305861867abcdbea",
      "tree": "fa10b8bfcbc2e3378249a7a67afc2fdd455c5c93",
      "parents": [
        "7a9f05a68512926f81339d3e42def2ecd9adffa0"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Oct 26 16:42:07 2018 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Nov 30 09:44:42 2018 -0800"
      },
      "message": "Policy config parser: migrate to BP and drop legacy format\n\nMigrate to android.bp as test need to use the library.\nAs bp do not support conditional statement, and this format has been\ndeprecated for 3 years, drop the pre-treble .conf parser.\n\nAUDIOSERVER_MULTILIB is no longer use as it does not make sense for a\nstatic lib.\n\nBug: 114303641\nBug: 111681420\nTest: compile, boots\nChange-Id: I9f429b306ecfbb80116445ba6297a4b3d6dc57f6\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "c55606b22fb908f030150b82194ded0c2038cab3",
      "tree": "cf9a36b5d97e15a944902bd7734aafe466a402c6",
      "parents": [
        "cdbd8711a9a77f4cb5b53729334cf582afbc0110",
        "02743e21156fa3063dc3718982e291cf60ec37cd"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 29 20:58:49 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 29 20:58:49 2018 +0000"
      },
      "message": "Merge \"Audio policy: Use surround formats from audio config instead of hardcoded\""
    },
    {
      "commit": "02743e21156fa3063dc3718982e291cf60ec37cd",
      "tree": "0339c12971b8145ebca1b5c523390dc02654b945",
      "parents": [
        "e4eb88fa5fe62a9b6b709fbf2ff26f37acf6db20"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Nov 28 15:56:55 2018 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Nov 29 19:21:45 2018 +0000"
      },
      "message": "Audio policy: Use surround formats from audio config instead of hardcoded\n\nThis is a follow-up to ag/3835377, where the intention was to\nuse SURROND_FORMATS array, which is lately been replaced by\nan array from APM\u0027s config.\n\nBug: 67479735\nBug: 117602867\nTest: make\nChange-Id: I31f63856d8fb06ff9ac0f03b9ec1600f0fcee30b\n"
    },
    {
      "commit": "938b6ca467c19285ec89b98316a13891012887d4",
      "tree": "b99f63d14bc9d9dea0ab69cfcc983d11ede7c725",
      "parents": [
        "4183d37fcc58ed1e221c72b298f2d95c9b656c01",
        "2091949018103af337a5cd48de789d51fa3a6dc0"
      ],
      "author": {
        "name": "Nadav Bar",
        "email": "nadavbar@google.com",
        "time": "Thu Nov 29 17:14:32 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 29 17:14:32 2018 +0000"
      },
      "message": "Merge \"Support playing to uplink stream using the VOICE_CALL stream as well\""
    },
    {
      "commit": "2091949018103af337a5cd48de789d51fa3a6dc0",
      "tree": "1a17e433d9bc01c1332e096afe56e8e704289511",
      "parents": [
        "9a4f4c23bf39f9e8169a62c55b3ccbde3e26693f"
      ],
      "author": {
        "name": "Nadav Bar",
        "email": "nadavbar@google.com",
        "time": "Tue Nov 20 10:20:51 2018 +0200"
      },
      "committer": {
        "name": "Nadav Bar",
        "email": "nadavbar@google.com",
        "time": "Thu Nov 29 15:01:35 2018 +0200"
      },
      "message": "Support playing to uplink stream using the VOICE_CALL stream as well\n\nAdded support for playing audio to the uplink stream also using the\nVOICE_CALL stream. This will ensure the uplink playback have the same\ncharacteristics as other audio which is being played back during a call,\nand can by pass the DND mute.\n\nChange-Id: I1830bebb5fca724de561fbde8445fcee95f9c930\nTest: tested manually.\nBug: 117866278.\n"
    },
    {
      "commit": "73c3a18dcc23703fa51a550cca9d290f392de1bc",
      "tree": "03fa4f3e45e97b7bb6dfcb8e0031ead5f69a11b3",
      "parents": [
        "f1188418c6220f27ed7ec6491380062c039a7b42",
        "b78763e6098baa33f441abef74d53636f72c6d6e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 28 23:38:13 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 28 23:38:13 2018 +0000"
      },
      "message": "Merge \"audio policy: receive assistant and a11y service UIDs\""
    },
    {
      "commit": "e6714284a250fe474e57cc9744e08c76e23c5c3b",
      "tree": "c3f27de568de1d9d82b765980f9ebfc6326128fc",
      "parents": [
        "db0532ba88de07e3ee8aa48db31e0ed5b5eff903",
        "f32108e7bab9ce2eb8107678c74701d1428a7b2c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 28 18:08:24 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 28 18:08:24 2018 +0000"
      },
      "message": "Merge \"audio policy: extend API used to silence capture from a given app\""
    },
    {
      "commit": "c3ce0d0f9b4a4be2df370407ee5540a7dd6f67e4",
      "tree": "a6246b7b160b407eaf926790eb52e8c804de5980",
      "parents": [
        "9a4842894af7b5b7db4f152ddd1420660876c36f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 23 14:15:40 2018 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Nov 27 14:23:27 2018 -0800"
      },
      "message": "audio policy: fix regression in Audio MMAP device selection\n\nCommit f3a5a601 caused a regression for AAudio MMAP playback use case\nwhere disconnecting currently selected device does not generate a\ndisconnect callback to client causing silent audio until the\nstream is closed and reopened.\n\nThis CL fixes a logical flaw in method SessionRouteMap::getActiveDeviceForStream()\nintroduced by commit f3a5a601 causing a stale forced device to be\nreturned after this device was disconnected.\n\nBug: 111711159\nBug: 79878501\nTest: CTS tests for audi routing and AAudio. Audio smoke tests\nMerged-In: Ibb16e26bc59b9e3f99bc74eb944601c6be5026dd\nChange-Id: Ibb16e26bc59b9e3f99bc74eb944601c6be5026dd\n"
    },
    {
      "commit": "b708035c652d32b85942f5fd5b5b12376daae03e",
      "tree": "8b8f7ee148e986ec38ea22704a0f214ac86e14a3",
      "parents": [
        "3db425c9c47eeae48b0585e5650e8d4a4c939942",
        "71085b5a772c4b50ce80692a6268713bd2eae585"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Nov 27 11:32:20 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Nov 27 11:32:20 2018 -0800"
      },
      "message": "Merge \"Keep verbose log statements, but silence them by default\" am: 9a4842894a am: b4dfe1c017\nam: 71085b5a77\n\nChange-Id: I60026496b923e303f97adebb365f24fe3a25d845\n"
    },
    {
      "commit": "71085b5a772c4b50ce80692a6268713bd2eae585",
      "tree": "0b106f24d62dc68dda5bf43f28085d31eabfcc3d",
      "parents": [
        "b860930ae9d631c520b6e69f50223fd69bde2d30",
        "b4dfe1c0179cb6894c43583cdb6a01e2c33de70f"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Nov 27 11:28:06 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Nov 27 11:28:06 2018 -0800"
      },
      "message": "Merge \"Keep verbose log statements, but silence them by default\" am: 9a4842894a\nam: b4dfe1c017\n\nChange-Id: I76fb0c7d906533f9fb10026f43dde25ab45e7755\n"
    },
    {
      "commit": "9a4842894af7b5b7db4f152ddd1420660876c36f",
      "tree": "86abb7b1098b96270d492644f166f8de2c1f14d5",
      "parents": [
        "5f14ecce213ec2152e1cb8470663e2b89ee74235",
        "71c9091118aefb3cadb96955e7618ca4e296dd33"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Nov 27 19:16:26 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 27 19:16:26 2018 +0000"
      },
      "message": "Merge \"Keep verbose log statements, but silence them by default\""
    },
    {
      "commit": "b78763e6098baa33f441abef74d53636f72c6d6e",
      "tree": "f9dbf113c768761cfa7b10ebcce917a2b7a2beba",
      "parents": [
        "f32108e7bab9ce2eb8107678c74701d1428a7b2c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 17 10:08:02 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 26 14:32:41 2018 -0800"
      },
      "message": "audio policy: receive assistant and a11y service UIDs\n\nAdd APIs to communicate assistant and accessibility service UIDs\nto audio policy service in order to implement the new concurrent\ncapture policy.\n\nBug: 111438757\nTest: enable and disable Google Assistant and Voice Access.\n\nChange-Id: Ia804613051edab2ebd57d317b5b7509c98e7c6b4\n"
    },
    {
      "commit": "f32108e7bab9ce2eb8107678c74701d1428a7b2c",
      "tree": "4282d410be7fde9df128a6c3ecb5775198aebc5f",
      "parents": [
        "3df5310387cb396892d49f3576ba52a22413baa6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 04 17:22:04 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 26 14:32:41 2018 -0800"
      },
      "message": "audio policy: extend API used to silence capture from a given app\n\nIn preparation for concurrent capture policy, extend current audio policy\ninterface setRecordSilenced(uid...) to a more generic API setAppState(uid...)\n\nBug: 111438757\nTest: CTS test AudioRecord.testRecordNoDataForIdleUids\nChange-Id: Idba540e2724a6c71ec275a5ff73c312e5b6040a4\n"
    },
    {
      "commit": "b2e9548ad4fb65707bb04054918bdadd46bae405",
      "tree": "91a4c3e0e6de11dbddf26aaeb6cb43041e568316",
      "parents": [
        "b74ba734a6268dffc5ff5a68a04531478e9d9079",
        "4515129c59206406322d2efb4581cf0dcd66096d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 26 19:07:34 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 26 19:07:34 2018 +0000"
      },
      "message": "Merge \"audiopolicy: use an exact match for MMAP input\""
    },
    {
      "commit": "4326a4cc0353a34d6a229214352f529c0a69bf92",
      "tree": "3c382d8bc4c232e1e8366427fc7dd32ceaa56f38",
      "parents": [
        "5a6631a12b381864a0a612a3dea21a2c887dc5a6",
        "0303a7d7922f95e59f310805557b7d9e0a78fbc8"
      ],
      "author": {
        "name": "haobo10173529",
        "email": "hao.bo15@zte.com.cn",
        "time": "Mon Nov 26 09:22:41 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Nov 26 09:22:41 2018 -0800"
      },
      "message": "Merge \"audiopolicy: Fixed bug for rule file of strategy sonification respectful\" am: 829a6bd189 am: 6f960fad88\nam: 0303a7d792\n\nChange-Id: I46b5a1b2e8d3d8ff1f756650e0453b62e5c4a016\n"
    },
    {
      "commit": "0303a7d7922f95e59f310805557b7d9e0a78fbc8",
      "tree": "f597aa5a9ed832fa9d922d2615332e49fea81a5c",
      "parents": [
        "cbe2ae8b9cad60a02dcd47b6385f9d2a1e5f15ec",
        "6f960fad88c2af0e1c0674e3a7d65206e47d03c8"
      ],
      "author": {
        "name": "haobo10173529",
        "email": "hao.bo15@zte.com.cn",
        "time": "Mon Nov 26 09:13:13 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Nov 26 09:13:13 2018 -0800"
      },
      "message": "Merge \"audiopolicy: Fixed bug for rule file of strategy sonification respectful\" am: 829a6bd189\nam: 6f960fad88\n\nChange-Id: I766471101b5826d0022afc07e5bab0e41c6b0c2b\n"
    },
    {
      "commit": "829a6bd189bacce2aff6360dda2137b297673ccb",
      "tree": "b653503fef85b9f9b7c1f34ab358f0728672bb23",
      "parents": [
        "1d70702b178cf317dd4df58583e44c1d4507da79",
        "acb5f586becd1cd13872ebe711e339be9b14ff3a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 26 16:52:00 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 26 16:52:00 2018 +0000"
      },
      "message": "Merge \"audiopolicy: Fixed bug for rule file of strategy sonification respectful\""
    },
    {
      "commit": "f7adb3f07332a6b7af8272a04757f282ad311b58",
      "tree": "5458ac5666292f4b6e34c754cc1b7f9cc33a1de8",
      "parents": [
        "d4d7f1ffcab75a365939ee43d5cb83fc3e0acad4",
        "5928ec9661758549cbda50710a152050136d5ddc"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 21 08:35:40 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 21 08:35:40 2018 -0800"
      },
      "message": "Merge \"Ignore outputs with direct flag when selectOutput.\" am: a1270b044b am: f3bcc30de3\nam: 5928ec9661\n\nChange-Id: Id97fcda0eb511f0711cd0adc93763d46c940cf4c\n"
    },
    {
      "commit": "5928ec9661758549cbda50710a152050136d5ddc",
      "tree": "862e2f8b138619700196c4a82524120b2af9aade",
      "parents": [
        "4ec50b592b4d5fac7abf50561f1d74732127371a",
        "f3bcc30de39025aa1950af7685aad5107116724d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 21 08:32:26 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 21 08:32:26 2018 -0800"
      },
      "message": "Merge \"Ignore outputs with direct flag when selectOutput.\" am: a1270b044b\nam: f3bcc30de3\n\nChange-Id: Ia48350c386e665ebeecb095a58e2aca64f1a1312\n"
    },
    {
      "commit": "1794d71f7a3777595503b5c6c667c3e0d83baad6",
      "tree": "330b5f020b020c586fea46daa61d0f3588dbffd2",
      "parents": [
        "4462ff08c41880644903702e4734cda7a320aadd"
      ],
      "author": {
        "name": "chenhg",
        "email": "chenhg@synaptics.com",
        "time": "Tue Oct 09 15:20:37 2018 -0700"
      },
      "committer": {
        "name": "chenhg",
        "email": "chenhg@synaptics.com",
        "time": "Tue Nov 20 16:56:21 2018 -0800"
      },
      "message": "Ignore outputs with direct flag when selectOutput.\n\nBUG: 117479947\nTest: android.media.cts.AudioNativeTest#testPlayStreamData\n\nChange-Id: I0eec86185b5582f82267a24f3568244bf1c8378f\n"
    },
    {
      "commit": "4515129c59206406322d2efb4581cf0dcd66096d",
      "tree": "ecd075adb351fc3cc59b31fc71e189b377ccd2a7",
      "parents": [
        "eb8b659add93161d169edbe1f94243939df953a6"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Nov 20 16:37:29 2018 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Nov 20 16:43:37 2018 -0800"
      },
      "message": "audiopolicy: use an exact match for MMAP input\n\nAudioFlinger was returning a stereo input if mono was requested\nbut not supported.\nBut AAudio did not know it was stereo so the data was corrupted.\nSo if MMAP input is requested, do an exact match in\nisCompatibleProfile().\n\nBug: 119518992\nTest: see bug for repo steps\nTest: adb shell aaudio_loopback -tm -pl -Pl -x -X -C1\nChange-Id: I925efecca9c99b8a2b7bde3826da4d9e9e663ee1\n"
    },
    {
      "commit": "acb5f586becd1cd13872ebe711e339be9b14ff3a",
      "tree": "72a2d922a63545657bac722473cf9736ae47b958",
      "parents": [
        "6bff4d55bf5a904e00cc9f2d189925d64ebdd6fd"
      ],
      "author": {
        "name": "haobo10173529",
        "email": "hao.bo15@zte.com.cn",
        "time": "Mon Nov 19 11:32:15 2018 +0800"
      },
      "committer": {
        "name": "Jia Jia",
        "email": "jia.jia@zte.com.cn",
        "time": "Mon Nov 19 15:25:04 2018 +0000"
      },
      "message": "audiopolicy: Fixed bug for rule file of strategy sonification respectful\n\nIf \u0027USE_CONFIGURABLE_AUDIO_POLICY\u0027 enabled, \u0027engineconfigurable\u0027\nwill be used for devices selection. A bug was found in rule file\nfor strategy_sonification_respectful if rule file used to generate\nPolicyConfigurableDomains.xml, and in that case the function of\nAudioPolicyManager::getDevicesForStream will always return wrong\ndevices after device2, e.g., headset, connected and removed.\n\nAfter removed, device2 should be reset to \u0027none\u0027, otherwise the\ndevices returned for strategy_sonification_respecful will always\nnot changed.\n\nChange-Id: I656781ed46b73c5bef1f18612700a5547ea0043f\n"
    },
    {
      "commit": "7bd9b8d6f218550323db5e8c191175217a349812",
      "tree": "e5afd822491fed511c660d9f0413dd6896893988",
      "parents": [
        "f02f367f5ae3376a8305d0ae97548819696f457e"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Nov 15 02:09:03 2018 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Nov 15 02:09:03 2018 +0000"
      },
      "message": "Revert \"Audio Policy: add audio.msd.disable property for MSD detour\"\n\nThis reverts commit f02f367f5ae3376a8305d0ae97548819696f457e.\n\nReason for revert: Committed accidentally\n\nChange-Id: I3cc92123fc2dca1f1ab497655c6d2f9b10853920\n"
    },
    {
      "commit": "71c9091118aefb3cadb96955e7618ca4e296dd33",
      "tree": "df749f6e0410b0aa5046a4a5d53dc385633f086f",
      "parents": [
        "a0fd81b4ceeee9a946aa1c7ec033e659a556988b"
      ],
      "author": {
        "name": "Tomoharu Kasahara",
        "email": "tomoharu.kasahara@sony.com",
        "time": "Wed Oct 31 09:10:12 2018 +0900"
      },
      "committer": {
        "name": "Tomoharu Kasahara",
        "email": "tomoharu.kasahara@sony.com",
        "time": "Thu Nov 15 09:16:54 2018 +0900"
      },
      "message": "Keep verbose log statements, but silence them by default\n\nDo not strip out ALOGV statements in production builds,\nbut keep them silent by setting the default log level\nfor AudioPolicyManager to D.\n\nBug: 113756665\nTest: adb shell setprop log.tag.APM_AudioPolicyManager V\n      check logcat for verbose log messages from APM\nChange-Id: I0129a07e3afa11634945763b8d976699ce13093e\n"
    },
    {
      "commit": "f02f367f5ae3376a8305d0ae97548819696f457e",
      "tree": "9551f31b1aaabfa9a283c5536e362ffe713201b2",
      "parents": [
        "69985f830f322ef33cf0b947a2fe09ec04d34de2"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Nov 09 12:44:16 2018 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Nov 09 12:47:41 2018 -0800"
      },
      "message": "Audio Policy: add audio.msd.disable property for MSD detour\n\nAPM checks audio.msd.disable property before reporting presence\nof the MSD module to allow bypassing the MSD in tests and\nfor vendors to create tracks directly on the main output.\n\nBug: 63901775\nTest: MSD prototype\nChange-Id: I8ffb12fc81b3c71d810eeb8d90f54fef282e80f2\n"
    },
    {
      "commit": "ee168999ca451a0c1b03cd6acd0449f24e487e25",
      "tree": "e0d71d95bac4aa704e2341fa51f89165736ec0aa",
      "parents": [
        "824d1ff69c0487ee8ecdb8836ebfd056c2daf83e"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Oct 12 09:27:45 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Nov 01 16:21:58 2018 +0000"
      },
      "message": "MSD: Add HW A/V Sync flag for the output connection from MSD\n\nThis is recommended for TV confugrations.\n\nBug: 63901775\nBug: 111746865\nTest: MSD prototype with surround and stereo-only sinks\nChange-Id: Ia3e0d077f41bcee8e3b0ee05838d023f4572b66f\n(cherry picked from commit 726c9947933ed4a9153c56d8e3b5d0757ee03144)\n"
    },
    {
      "commit": "985d15a9c7e45e7e7021aa53a48de3fa222e3815",
      "tree": "08ff1bb1abb133aa5c1a50c8f1fbb0640c53b6a2",
      "parents": [
        "efd99ec863f5a69f20dfacea3f6f4835962c5362"
      ],
      "author": {
        "name": "nobuaki tanaka",
        "email": "nobuaki.xb.tanaka@sony.com",
        "time": "Wed Jul 19 13:38:51 2017 +0900"
      },
      "committer": {
        "name": "Tomoharu Kasahara",
        "email": "tomoharu.kasahara@sony.com",
        "time": "Tue Oct 30 16:06:36 2018 +0900"
      },
      "message": "Apply stream volume for the correct device\n\nDuring music playback via headset, if sonification stream sounds,\nsonification volume is limited to music volume in computeVolume().\nHowever if application plays sonification stream continuously,\nsetStreamVolumeIndex can be called before previous sonification\nsound stops.\nThis behavior leads unexpected volume settings then\nsonification volume is not limited to music volume.\nThis fix sets the correct device which is not filtered by\nVolume::getDeviceForVolume then avoid to update incorrect device volume.\n\nBug: 118098429\nTest: Repeat alarm during music playback from headset\n\nChange-Id: I92f9bd070dd9d5b7b523147e6c2ca1f233a53eb4\n"
    },
    {
      "commit": "d6b4110320591df820d9c9db5e31b20a0072f47e",
      "tree": "af94208f43671baedf417ed7e488d26690ac99b1",
      "parents": [
        "e0bc1a9b8ee77919211819d03404aca893f8bcbf",
        "dc3d7f5b463381e6c8043b06de6e2de7a2176517"
      ],
      "author": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Wed Oct 24 14:46:51 2018 -0700"
      },
      "committer": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Wed Oct 24 14:46:51 2018 -0700"
      },
      "message": "Merge pie-platform-release to aosp-master - DO NOT MERGE\n\nChange-Id: Ie34345bdf4de88a81005e7afa4db54a3be7478f9\n"
    },
    {
      "commit": "688a97a281ab08efc9284c85ce8e803b40c00d66",
      "tree": "d3bcf5b339bb374aecb385145d8d5ebb548fc606",
      "parents": [
        "5cdad66f74fffa82410f51677ab489084c3be799",
        "6e97e8078287f5c0a49be6283de401c454796320"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Oct 16 18:19:39 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 16 18:19:39 2018 -0700"
      },
      "message": "Merge \"audio: fix switch to break or use FALLTHROUGH_INTENDED\" am: 599f3305dc\nam: 6e97e80782\n\nChange-Id: Iabe50e2862e3b667763b6d868764465c915fb818\n"
    },
    {
      "commit": "6e97e8078287f5c0a49be6283de401c454796320",
      "tree": "a4e55f3a8388fa21ef3fac084cb6db646831b20e",
      "parents": [
        "387b0b64c245d66b55ac33db4b551b612bdda4ed",
        "599f3305dcb7f482289fac679cb1a63ad78aae4e"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Oct 16 18:12:06 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 16 18:12:06 2018 -0700"
      },
      "message": "Merge \"audio: fix switch to break or use FALLTHROUGH_INTENDED\"\nam: 599f3305dc\n\nChange-Id: I179a79cc58c02c59dc08a8cc8ef1e6e33899ccf3\n"
    },
    {
      "commit": "39399600e89237ba8e3f27f68b58c204c3cdd679",
      "tree": "e3b24ce1074058b20cc54ae46a54e118b6342526",
      "parents": [
        "f5b1d442c7e2bf4de3ba0378af29585a5adcdc93"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Oct 16 14:42:13 2018 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Oct 16 14:42:13 2018 -0700"
      },
      "message": "audio: fix switch to break or use FALLTHROUGH_INTENDED\n\nTest: compile, sanity\nBug: 117509050\nChange-Id: I9439f201b3d1f4485ab698d7bed063a02f17f8f0\nMerged-In: 320fd852fb98174804e5f505773500f1cf76f3af\n(cherry picked from commit 320fd852fb98174804e5f505773500f1cf76f3af)\n"
    },
    {
      "commit": "00987aac7d29168b94cb8263af7d9783f62ef6b5",
      "tree": "1835dca88b28b82d24cf760450187674a578bcbb",
      "parents": [
        "a1e48aa38987cd0460bbfc57e2b0fc513df17283"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Oct 10 15:59:33 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Oct 10 17:49:41 2018 -0700"
      },
      "message": "AudioPolicyManager: Update StreamDescriptor dump to fix warning/build break\n\nFix for partner-q-fs-release-generic-fs mini_arm64-userdebug\nwhich doesn\u0027t define USE_XML_AUDIO_POLICY_CONF.\nThis define must be removed otherwise StreamDescriptor.cpp\nisn\u0027t compiled.\n\nTest: compile with removed USE_XML_AUDIO_POLICY_CONF\nBug: 117574496\nChange-Id: Ic196739ed26b81092d14fbc2779b89a7ec9ecba8\n"
    },
    {
      "commit": "320fd852fb98174804e5f505773500f1cf76f3af",
      "tree": "3eb8319d3076340883afe026b540c05ef7b8c50a",
      "parents": [
        "24bf51ae92285202bdbe3fa00c7c83e93c5a03e2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Oct 09 14:06:37 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Oct 10 11:12:37 2018 -0700"
      },
      "message": "audio: fix switch to break or use FALLTHROUGH_INTENDED\n\nTest: compile, sanity\nBug: 117509050\nChange-Id: I9439f201b3d1f4485ab698d7bed063a02f17f8f0\n"
    },
    {
      "commit": "24bf51ae92285202bdbe3fa00c7c83e93c5a03e2",
      "tree": "a5a5b4eb56e7edefcb3ffc1c6742f2e6f1c16404",
      "parents": [
        "72b9ee114d4b5b0017578afe826e8431f0362f96",
        "9baf44fbba5b0e794cb9f2cbe0c7cbe154b27e98"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Oct 09 19:34:53 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 09 19:34:53 2018 +0000"
      },
      "message": "Merge \"AudioPolicyManager: Abort on input descriptor inconsistency\""
    },
    {
      "commit": "72b9ee114d4b5b0017578afe826e8431f0362f96",
      "tree": "1d110a34c0f7b6442be8e316c1936294a7fac87c",
      "parents": [
        "b003ba18ad8746ef945d0622586b140f3dfadcbe",
        "c29d82b089c3a6409640c697c4832eb5de357a54"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Oct 09 17:32:16 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 09 17:32:16 2018 +0000"
      },
      "message": "Merge \"AudioPolicyManager: Convert dump to use String8 (part 2)\""
    },
    {
      "commit": "b003ba18ad8746ef945d0622586b140f3dfadcbe",
      "tree": "4a6052b8a04ee6b14e262b8aa30a7a0e964560cb",
      "parents": [
        "7e8b1832c6f99a7998f81b942472f456efd24830",
        "bb54e20ba9afcf61cc6b41500ff8ab3dfc897203"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Oct 09 17:07:14 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 09 17:07:14 2018 +0000"
      },
      "message": "Merge \"AudioPolicyManager: Convert dump to use String8 (part 1)\""
    },
    {
      "commit": "c29d82b089c3a6409640c697c4832eb5de357a54",
      "tree": "3e61976439f1942204d30a084a602a081b0ea918",
      "parents": [
        "bb54e20ba9afcf61cc6b41500ff8ab3dfc897203"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Oct 05 12:23:17 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Oct 08 13:11:51 2018 -0700"
      },
      "message": "AudioPolicyManager: Convert dump to use String8 (part 2)\n\nTest: dumpsys of APM, diffs.\nBug: 117333182\nChange-Id: I18761416ec9dc97418b41054f85af67e6eb59f3a\n"
    },
    {
      "commit": "bb54e20ba9afcf61cc6b41500ff8ab3dfc897203",
      "tree": "99d0c86990fbf905083d4f41c215311ec75c4e09",
      "parents": [
        "d10b735cfd4eea74846bb5f53d37c8c2a3114d58"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Oct 05 11:42:02 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Oct 08 12:59:33 2018 -0700"
      },
      "message": "AudioPolicyManager: Convert dump to use String8 (part 1)\n\nTest: dumpsys of APM, diffs.\nBug: 117333182\nChange-Id: Ic046acb491efa363423b38a389b046c09ae9d5c9\n"
    },
    {
      "commit": "9baf44fbba5b0e794cb9f2cbe0c7cbe154b27e98",
      "tree": "0bdd4f54a8972b4bee5e4b2aa87c3f4b9383a88e",
      "parents": [
        "4cc873cc1dcf9e69572c2e52b68af1aebea0ad98"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Oct 05 17:58:00 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Oct 08 19:34:25 2018 +0000"
      },
      "message": "AudioPolicyManager: Abort on input descriptor inconsistency\n\nTest: audio sanity\nBug: 116415490\nChange-Id: I8e1953f75af5d886a6109c05473234eb4268ac5b\n"
    },
    {
      "commit": "778bc1f6393c5437acb45943866d88607c67b1e5",
      "tree": "31e6043ab875d05a18636faa5da5d3f6313f3b2b",
      "parents": [
        "b4e880abdcde87ff89937f4f8de819af0cfe371f"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Sep 14 16:28:52 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Oct 05 09:32:51 2018 -0700"
      },
      "message": "audiopolicy: Move surround configuration to xml\n\nMove the configuration for supported surround formats\ninto APM xml config file.\n\nBug: 116356348\nTest: on elfin\nChange-Id: Ifba218fa2c03136a3a59eeee8077b00fba77c069\n"
    },
    {
      "commit": "4db16c962ff102e3fb722940c039654407e997f2",
      "tree": "aa117525900f92c290d301247edb2b465949c28d",
      "parents": [
        "dadea6249d41c155a9835dfd8005c6dbe63c773e",
        "86112351b499214284a4f52a6e0b4a38c81162cf"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 04 17:00:29 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 04 17:00:29 2018 +0000"
      },
      "message": "Merge \"audiopolicy: Fix crash in getMsdPatches\""
    },
    {
      "commit": "86112351b499214284a4f52a6e0b4a38c81162cf",
      "tree": "51feef4606253b8085589c55e3b89ff62bc75f9d",
      "parents": [
        "1a45cef93b8df626bed1d19e8830148627151d8b"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 04 09:02:49 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 04 09:07:19 2018 -0700"
      },
      "message": "audiopolicy: Fix crash in getMsdPatches\n\nAdded a missing check for the possibility of not having an MSD module.\nRemove a check for the module handle, as mHwModules by design\ncan\u0027t contain modules with AUDIO_MODULE_HANDLE_NONE (see\nAudioPolicyManager::initialize).\n\nBug: 117253728\nTest: see the repro steps in the bug\nChange-Id: Ia8761a2e3ceccf9595b672c8ba48e086b457e3ae\n"
    },
    {
      "commit": "d10b735cfd4eea74846bb5f53d37c8c2a3114d58",
      "tree": "7085e4a58570440af04b040fe466e8d0b7d0725b",
      "parents": [
        "5e0659c82240821cfa6766d33cca438a5f09ef32",
        "39efb7a1267ac8b1131eecab260a7ae2887a9b0c"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Oct 04 00:52:06 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 04 00:52:06 2018 +0000"
      },
      "message": "Merge changes I7835e753,I5fe4d3e7\n\n* changes:\n  AudioPolicyManager: abort when client is removed while active\n  AudioOutputDescriptor: improve refcount logging\n"
    },
    {
      "commit": "9caa518c50c52f9b9051331a8a191c615f37c0fb",
      "tree": "078f242ca190c29a220c196b807fbf93be783943",
      "parents": [
        "dd3556092f0a20a0d4dd4646863f00c679c955a8",
        "3023b3822714916959d428cfef35d77d3fed4850"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 03 18:12:29 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 03 18:12:29 2018 +0000"
      },
      "message": "Merge \"Release MSD patch for non-MSD direct outputs\""
    },
    {
      "commit": "39efb7a1267ac8b1131eecab260a7ae2887a9b0c",
      "tree": "c47ad805bdc6aa615b9d84e4632f3320267362a3",
      "parents": [
        "af036dab1e2075e1277883ef696a48f47d974413"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Sep 26 15:39:28 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Oct 02 20:05:13 2018 -0700"
      },
      "message": "AudioPolicyManager: abort when client is removed while active\n\nThis can result in a refcount mismatch. It is safer to\nabort immediately.\n\nTest: Audio sanity, phone call\nBug: 112067674\nChange-Id: I7835e75342b4c1aa3d6d910ee782d3bc818bd553\n"
    },
    {
      "commit": "af036dab1e2075e1277883ef696a48f47d974413",
      "tree": "bc775cb5a2823dbe73354b5f36dd5fd0acaaf518",
      "parents": [
        "bbbfdd69d89ca651f855777c3c66b12793dc85ae"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Sep 21 10:46:21 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Oct 02 18:18:11 2018 -0700"
      },
      "message": "AudioOutputDescriptor: improve refcount logging\n\nImprove refcount to match exact client descriptor\nAbort on invalid client descriptor refcounts\nLog changes to active clients and refcounts\n\nTest: dumpsys of media.audio_policy\nBug: 112067674\nChange-Id: I5fe4d3e7135efbf9bc5bffb258374115d87c24e6\n"
    },
    {
      "commit": "fe726a6ecb1ff0787d2610540134901cab813fe3",
      "tree": "db480c62c456ec4329bd02a6f8c1cb29204065a0",
      "parents": [
        "37013f15b32aa124647135d4e14da4d5434902eb"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Sep 27 15:17:25 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Oct 02 13:49:38 2018 -0700"
      },
      "message": "AudioFlinger: Synchronize removing client from output descriptor\n\nAvoids race condition where APM::stopOutput is called after\nAPM::releaseOutput.\n\nTest: audio sanity\nBug: 112067674\nChange-Id: I244267d4a157078961589649b1e184206ee23248\n"
    },
    {
      "commit": "3023b3822714916959d428cfef35d77d3fed4850",
      "tree": "b9afbf081b424a63cedfd0a6512be05b7c1f67a4",
      "parents": [
        "1212e0ad891e6ab2054761dcbf1a588e1ef843b3"
      ],
      "author": {
        "name": "Dean Wheatley",
        "email": "dwhea@dolby.com",
        "time": "Thu Aug 09 07:42:40 2018 +1000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Oct 01 11:26:18 2018 -0700"
      },
      "message": "Release MSD patch for non-MSD direct outputs\n\nGive best chance of finding an Audio HAL output stream for the\nnon MSD direct output, by releasing the MSD patch before the request\nif it is using the same output device. The MSD patch is recreated\nall direct outputs have been closed.\n\nTest: atest CtsMediaTestCases:AudioTrackSurroundTest#testPlayIEC61937_48000\n      on an Android TV device with HDMI output active and an MSD that does\n      not support IEC61937\n\nChange-Id: Id2a7eb2fee165dcf6630e819b34b8be815ea512e\n"
    },
    {
      "commit": "8f8fbb09efe1462073a28139879482e5f3e5abfb",
      "tree": "09470929324cf0b41cae9bb2d7581ccb4fd599a2",
      "parents": [
        "1212e0ad891e6ab2054761dcbf1a588e1ef843b3",
        "43c386c8c686b73c4a9a7ffc3537753aa3d1a56d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 28 23:05:12 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 28 23:05:12 2018 +0000"
      },
      "message": "Merge \"audiopolicy: More XML deserializer refactorings\""
    },
    {
      "commit": "43c386c8c686b73c4a9a7ffc3537753aa3d1a56d",
      "tree": "aa5c33e07c114985173a6af230b9342ac62af18c",
      "parents": [
        "a77c9edb91589d8673d3af6e2243b6f087430a11"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Sep 19 12:38:29 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Sep 28 20:17:33 2018 +0000"
      },
      "message": "audiopolicy: More XML deserializer refactorings\n\n -- use root and cur argument names consistently;\n\n -- replace \u0027while\u0027 loops with \u0027for\u0027 loops;\n\n -- avoid passing around of \u0027xmlDoc\u0027;\n\n -- get rid of PtrElement, parametrize adding to collections.\n\n -- make possible to return immutable elements via Return\u003c\u003e\n    container from android::hardware.\n\nTest: Compare dumpsys media.audio_policy A/B, check audio\nChange-Id: I5e499bdd7196703c4f788d881f331eb9629bf790\n"
    },
    {
      "commit": "2563f23c315ba45c1f319843c413f90630616dd3",
      "tree": "3a873d5cc0180f8824ace52a615b821137916b89",
      "parents": [
        "a9e84bc851221c34c0a8a3355636fa7b38efa3a5"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Sep 27 14:48:01 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Sep 27 15:52:51 2018 -0700"
      },
      "message": "Audio Policy: Use cached values for getSurroundFormats()\n\nDo not re-open outputs for dynamic parameter resolution.\nAPM opens outputs for dynamic parameters in checkOutputsForDevice.\n\nRemove \u0027Manual\u0027 word the from dump of surround formats,\nas \u0027mSurroundFormats\u0027 is also filled out in \u0027Auto\u0027 mode.\n\nTest: manual using Surround Sound Settings panel\nChange-Id: I55870ca7c021e80565722fd1d3ab1553a753a6b6\n"
    },
    {
      "commit": "e754a45738ac25ff23790e86431503be23525016",
      "tree": "6219140fc4ff41e8cb3bac88185b24ee2c3771eb",
      "parents": [
        "e84a3e65acb3e77404dd2007947f364197952cdd"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Thu Sep 20 17:08:23 2018 -0700"
      },
      "committer": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Thu Sep 20 18:12:09 2018 -0700"
      },
      "message": "Remove invalid constexpr until we get to C++17.\n\nframeworks/av/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp:236:16: error: constexpr variable cannot have non-literal type \u0027const android::(anonymous namespace)::(lambda at frameworks/av/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp:236:38)\u0027\nconstexpr auto xmlDeleter\u003cxmlChar\u003e \u003d [](xmlChar *s) { xmlFree(s); };\n               ^\nframeworks/av/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp:236:38: note: lambda closure types are non-literal types before C++17\nconstexpr auto xmlDeleter\u003cxmlChar\u003e \u003d [](xmlChar *s) { xmlFree(s); };\n                                     ^\n\nBug: http://b/110779387\nBug: http://b/111067277\nTest: Builds with new compiler.\nChange-Id: Ia7ed01bf0ff064f422be2cf6026cfe8329c404bf\n"
    },
    {
      "commit": "a289aea016a66fd8929e120e46268da8cf5a2f34",
      "tree": "677b63bd14f4c341eb707d003db0acdab46ebb1c",
      "parents": [
        "05fa8856abaa1e050c3c8e6ba97fc8878ed7600a"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Sep 17 15:26:23 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Sep 20 09:11:24 2018 -0700"
      },
      "message": "audiopolicy: Refactor XML deserializer for the APM config\n\n -- Move deserialization traits classes into the .cpp file;\n\n -- Use unique_ptr for managing libxml objects lifetime;\n\n -- Define node and attribute names inline. This makes them\n    inlined in the code, but that\u0027s OK since they are typically\n    only used once.\n\n -- Avoid using reference types for \"out\" parameters.\n\n -- Check the status of deserializing collections.\n\n -- Misc renamings and generalizations for clarity.\n\nTest: Compare dumpsys media.audio_policy A/B, check audio\nChange-Id: Ib188964dee94acbccd701a58d45d3df206487d81\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": "d06ae78ee7169fc80c8a29390b2156e33c846c08",
      "tree": "e6a38674514d0d9e5f93a9e21decf75729f4c35d",
      "parents": [
        "36fc92d5c30b0cae6aea48f85b9d4cc11eae696b",
        "8662f3b9a2043ac2805396bbc35721ffa083d6d9"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Sep 17 16:32:42 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Sep 17 16:32:42 2018 -0700"
      },
      "message": "Merge \"Suppress implicit-fallthrough warnings in audioflinger etc.\" am: a494bb1527\nam: 8662f3b9a2\n\nChange-Id: Idf355953d5c7675b5e1be24758cc84b5f6d872cf\n"
    },
    {
      "commit": "8662f3b9a2043ac2805396bbc35721ffa083d6d9",
      "tree": "9345367e07985a0325373ca99a07c41d37703ef5",
      "parents": [
        "4d9a25ccf002a9eec0dc3d69767418379bdf871e",
        "a494bb1527f8ad67eeeaf80021c0faf57c71ef55"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Sep 17 16:28:31 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Sep 17 16:28:31 2018 -0700"
      },
      "message": "Merge \"Suppress implicit-fallthrough warnings in audioflinger etc.\"\nam: a494bb1527\n\nChange-Id: I3055f24de3e79e30214a669650fec3d4a229ad0b\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": "bd9b5935fdbd67d3eaf124e3e80470b8cae1ecd1",
      "tree": "d8aeb92342d15ec51bf074630fcd2e5ec54cbc83",
      "parents": [
        "ca7988602fe3b281bdc814e549d84d15557b99ac",
        "36fc92d5c30b0cae6aea48f85b9d4cc11eae696b"
      ],
      "author": {
        "name": "Hochi Huang",
        "email": "hochi.huang@mediatek.com",
        "time": "Sun Sep 16 08:09:15 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sun Sep 16 08:09:15 2018 -0700"
      },
      "message": "Merge \"audio policy: fix getOutputFromId and getInputFromId\" am: f8d13dee65 am: 4d9a25ccf0\nam: 36fc92d5c3\n\nChange-Id: I0eb25c089d36a36c2546b017cee33c4c7492adc7\n"
    },
    {
      "commit": "36fc92d5c30b0cae6aea48f85b9d4cc11eae696b",
      "tree": "c712fcf42f0135f875f5b57d278bdacf81ccc2eb",
      "parents": [
        "6ff79a0dd1cc27302c466764bf9b9d4f21502e1a",
        "4d9a25ccf002a9eec0dc3d69767418379bdf871e"
      ],
      "author": {
        "name": "Hochi Huang",
        "email": "hochi.huang@mediatek.com",
        "time": "Sun Sep 16 08:03:02 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sun Sep 16 08:03:02 2018 -0700"
      },
      "message": "Merge \"audio policy: fix getOutputFromId and getInputFromId\" am: f8d13dee65\nam: 4d9a25ccf0\n\nChange-Id: I676995ac79a1900df5ccee86a9f36fbed70fb0b7\n"
    },
    {
      "commit": "4d9a25ccf002a9eec0dc3d69767418379bdf871e",
      "tree": "3244a6ca5248b3a791ccfce765d069bba03e2c27",
      "parents": [
        "6808238a516e8e45be450655d8412a31e0d5b3d4",
        "f8d13dee65d3708ea527e9f565be85031d7021ba"
      ],
      "author": {
        "name": "Hochi Huang",
        "email": "hochi.huang@mediatek.com",
        "time": "Sun Sep 16 07:55:52 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sun Sep 16 07:55:52 2018 -0700"
      },
      "message": "Merge \"audio policy: fix getOutputFromId and getInputFromId\"\nam: f8d13dee65\n\nChange-Id: Iee57bd1b88e95a7a4d50acbcb625c1b9ff479883\n"
    },
    {
      "commit": "f731de72e9eff742fcb1f860321aa15fae7dccd9",
      "tree": "17bdda0c0f45e4546f6a0486f02a805b390296b1",
      "parents": [
        "79b9d483d346fc2c2bd680c2154569adf199f26b"
      ],
      "author": {
        "name": "Hochi Huang",
        "email": "hochi.huang@mediatek.com",
        "time": "Wed Sep 05 22:03:19 2018 +0800"
      },
      "committer": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Sun Sep 16 14:47:27 2018 +0000"
      },
      "message": "audio policy: fix getOutputFromId and getInputFromId\n\nIt should return NULL instead of the last descriptor handle\nif mismatching specific output/input id.\n\nBug: 115474937\nTest: manual test.\nChange-Id: I37ff9622392f3fa3fbfd0c2a3362c704340bd72c\n"
    },
    {
      "commit": "6d853b134bef4bd750439023664d68542f27bb10",
      "tree": "9450cbc9b0135496c75adec82cb0d6d0ce490524",
      "parents": [
        "45146a2c3b3cd3aebab46306cc43d27e952e8060",
        "227342aa95b7994dc6fa361aea2f1cc4f039be46"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Sep 15 00:50:14 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Sep 15 00:50:14 2018 +0000"
      },
      "message": "Merge \"Add missing SPEAKER_SAFE device in DEVICE_CATEGORY_SPEAKER\""
    },
    {
      "commit": "227342aa95b7994dc6fa361aea2f1cc4f039be46",
      "tree": "f0bc62cf5bda69988481513c1d1aed8c7446f4e7",
      "parents": [
        "c5fee0a8854f5decd3b567d2383cd38f0aada4f4"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Sep 14 11:42:37 2018 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Sep 14 11:42:37 2018 -0700"
      },
      "message": "Add missing SPEAKER_SAFE device in DEVICE_CATEGORY_SPEAKER\n\nExplicitly list AUDIO_DEVICE_OUT_SPEAKER_SAFE in getDeviceCategory\n  function, so it\u0027s not relying on default case.\n\nTest: build\nChange-Id: If465311694c405a35aa8a5d36bfe16948a3b56b4\n"
    },
    {
      "commit": "5dddbfdd9d7df353e69a48c571f37c435a9cf0fd",
      "tree": "1e15b0e168f7a04d38292e0eacf500df72661d71",
      "parents": [
        "c5fee0a8854f5decd3b567d2383cd38f0aada4f4"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Sep 11 14:15:05 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Sep 12 16:24:19 2018 -0700"
      },
      "message": "AudioPolicyManager: Add more logging for surround formats\n\nHelpful changes for debugging the TV Surround Sound Settings:\n\n- add a couple of ALOGV messages for get/setSurroundFormats;\n\n- add more ALOGW for problems to setSurroundFormatEnabled;\n\n- add dumping for APM::mSurroundFormats.\n\nTest: check logcat and dumpsys of APM\nChange-Id: Iedcdf8bc55d9c23937c1c5754dac47c37402b535\n"
    },
    {
      "commit": "b0688d699b8c2f406e001a5c991f3e0515c84ab9",
      "tree": "0b2444fe7f07c79f9cda5a683303e6cd52961564",
      "parents": [
        "592dd7bf150cee7990958632425c411366252083"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 14 15:49:18 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 10 14:07:45 2018 -0700"
      },
      "message": "audio policy: fix getDevicesForStream() with preferred route\n\nFix getDevicesForStream() to return correct device when the stream\nis active with an explicit preferred device selection.\n\nTest: manual test with AudioExplicitRouting app.\nChange-Id: I3f135b98b50c570ac7123c723f195da64a2d1e20\n"
    },
    {
      "commit": "592dd7bf150cee7990958632425c411366252083",
      "tree": "4cee35a646c148839ed4839a96d03a2464b425ba",
      "parents": [
        "8f42ea1fd1c813d9ed97ade72d7514e883cf7cb9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Aug 05 18:58:48 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 10 14:07:45 2018 -0700"
      },
      "message": "audiopolicy: refactor playback activity ref counting\n\nPlayback activity ref couting is now based on active state\nof PlaybackClientDescriptor.\n\nThe active reference count per stream on each output is still\nused because it provides a simple implementation for duplicated output.\n\nTest: CTS tests for AudioTrack and Routing\nTest: manual audio smoke test\n\nChange-Id: Ifadb1d24131581461aace14a5b25e7c7582c57cb\n"
    },
    {
      "commit": "8f42ea1fd1c813d9ed97ade72d7514e883cf7cb9",
      "tree": "4a6c16fd8b856a10fd122170d55a93899cc2613c",
      "parents": [
        "97ac871cd4f075b3d4b47557a81e9e05ad7762ec"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 08 09:08:25 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 10 14:07:45 2018 -0700"
      },
      "message": "audio policy: remove AudioSession class\n\nNow that clients are tracked individually, tracking by\naudio session is no needed anymore.\nModify management of client activity, preempted sound trigger\nsessions and silenced uids to rely on RecordClientDescriptor\ninstead of AudioSession.\n\nTest: CTS test for AudioRecord\nTest: manual capture audio tests for all use cases\n\nChange-Id: Ieef3e05daea98aec9320412393f912bd6bd7e046\n"
    },
    {
      "commit": "97ac871cd4f075b3d4b47557a81e9e05ad7762ec",
      "tree": "a6a547e02e4d736e45f275b4c93c2576ef30e675",
      "parents": [
        "dd6f1835aa352c167d04f4280289988faed7f590"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 27 18:59:02 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 10 14:07:45 2018 -0700"
      },
      "message": "audio policy: refactor preferred route implementation\n\nRemove SessionRoute class and replace by use of\npreferredDevice and active state in ClientDescriptor\n\nAlso fix the behavior for other clients using same strategy as\nclient with preferred route: the preferred route is only used if\nno other clients using the same strategy are active without a preferred\nroute.\nIf all clients have a preferred route, the route of the last active\nclient is used.\n\nAlso fixed getOutputForAttr() to return correct selected device ID when\ndynamic policies are used.\n\nTest: CTS RoutingTest, AudioPlayRoutingNative, AudioRecordRoutingNative\nTest: Manual: AudioExplicitRouting, UplinkMusicSampleApp\n\nChange-Id: Id342c2241ace3e1a359ea74f4a539a395f793b86\n"
    },
    {
      "commit": "0f6e640075173b76c3925f2cf92d9faf5ce8caba",
      "tree": "e0b4dc6b94fd7f516b411e1fdbd6f115d772a083",
      "parents": [
        "9d83f9d405290b952ba519213eeef918df2b2a76"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Sep 06 11:20:45 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Sep 06 11:21:22 2018 -0700"
      },
      "message": "AudioPolicyManager: Update property get\n\nUse built-in prop_get_bool and prop_get_int32 for consistent behavior.\n\nTest: Play Music and disable offload\nChange-Id: I0a76430ceffadac529c193f3b19b5dd1cd7aa467\n"
    }
  ],
  "next": "20993fa7abe98f7821cf4039b43a1503751610a7"
}
