)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "6aecd3553601595e2c33689d459c28fff738729e",
      "tree": "a9459c055169ab5dd90492e308ef8607f8fbe215",
      "parents": [
        "7377a7822adb06797de13ce64d7a3981009a7e8c",
        "3e7eb5eb24e6bf9a31495dee5e5f8252728a2b7d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 27 03:31:19 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 27 03:31:19 2018 +0000"
      },
      "message": "Merge \"audiopolicy: fix for ringtone and offload music playback concurrency\""
    },
    {
      "commit": "5654fa737782fb27f3f79f77e4a4b41b1280e1fa",
      "tree": "af22fc7cf781bb43e07c97322cc0b9988aca666c",
      "parents": [
        "d3dcfbe703e2ed596516eaa208c021e740590fa0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 10 15:05:24 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 10 15:05:24 2018 -0700"
      },
      "message": "audio policy: fix bad auto merge conflict resolution\n\nWhen commit a81f098f1 was merged from aosp to pi-dev-plus-aosp\nthere was a problem where a code block already present in pi-dev\nfor the same fix (commit b62d78b72d9) was duplicated.\nThis caused double muting of notifications and alarms when a camera\nsound is played in countries where this sound is enforced while unmuting\nonly once when camera sound stops.\n\nBug: 110913234\nTest: force camera sound and verify mute/unmute counts after using the\ncamera.\n\nChange-Id: Ie97e3642803310acbe5eb85a53a850e010a9f42f\n"
    },
    {
      "commit": "89bbe9e07c48fe5036a44b51951fe3b44ab4ac8f",
      "tree": "6b5d8e4ba69f3cdae0c4642c07919c238ff39492",
      "parents": [
        "93ea89f1d0f47994231ebde31c2f2665177fb513",
        "1d539d95ea476c525cc26ff059f6f6a1f6e3ea42"
      ],
      "author": {
        "name": "Carter Hsu",
        "email": "carterhsu@google.com",
        "time": "Tue Aug 07 02:15:14 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 07 02:15:14 2018 +0000"
      },
      "message": "Merge \"audiopolicy: reset capture state when input is closed\""
    },
    {
      "commit": "1d539d95ea476c525cc26ff059f6f6a1f6e3ea42",
      "tree": "7536317c06d311a10931b3d0feffa8b2be1799a6",
      "parents": [
        "965737edc28bd76f6424f9ff4c1f0315f28a0434"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Fri Mar 16 11:40:49 2018 -0700"
      },
      "committer": {
        "name": "Carter Hsu",
        "email": "carterhsu@google.com",
        "time": "Fri Aug 03 11:41:42 2018 +0800"
      },
      "message": "audiopolicy: reset capture state when input is closed\n\nAn active input can be closed before stopInput is called, thus\nleaving the input handle to be an unknown input, then the capture\nstate can keep in true which blocks sound trigger session.\nReset the capture state if needed when input is closed.\n\nBug: 75253700\nTest: manual\nauthored-by: Zhou Song \u003czhous@codeaurora.org\u003e\nChange-Id: I969aa346e503cab593c33b6ca408845d058f00bc\n"
    },
    {
      "commit": "5c00d01c85430178d19f6266f1bc5c94a29853c1",
      "tree": "652dbc8b4f49e1e8b384531c118dd0da3dd18a59",
      "parents": [
        "2046ec756ee59acc4cfa1d52eb97aaa84efc9754"
      ],
      "author": {
        "name": "Ari Hausman-Cohen",
        "email": "arihc@google.com",
        "time": "Tue Jun 26 17:09:11 2018 -0700"
      },
      "committer": {
        "name": "Ari Hausman-Cohen",
        "email": "arihc@google.com",
        "time": "Tue Jul 31 18:01:28 2018 -0700"
      },
      "message": "Add helper method to convert usage to stream type.\n\nAdds audio_usage_to_stream_type method to aid in converting\naudio_usage_t to the legacy audio_stream_type_t.\n\nBug: 78527120\nTest: Builds\nChange-Id: I411bb687d0f46b82afef3a2e9ac6a974f922da91\n"
    },
    {
      "commit": "3e6c7e15913a812b8658504105100063d57d1d6e",
      "tree": "2ec1571636c46201df600aa9c25f57a727617b48",
      "parents": [
        "f344afa981e537b5f354352284272a8a51cf6759"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 27 17:09:23 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 30 11:34:53 2018 -0700"
      },
      "message": "audio policy: refactor HW audio sources\n\nRefactor management of hardware audio sources to make use of\nClientDescriptor class:\n- HW sources are now tracked by port ID and not audio patch handle.\n- startAudioSource() and stopAudioSource() APIs are updated to use\naudio_port_handle_t as source identifier.\n- AudioSourceDescriptor class is deleted and replaced by\nSourceClientDescriptor class deriving from TrackClientDescriptor\n\nTest: make.\nChange-Id: Ie418b566519a591f036b538a77319f8e30aa99a8\n"
    },
    {
      "commit": "83289653ef22399dae84f1e7bb75c32e1c432c95",
      "tree": "47957a89fa62912f428935fbb1a48ed721d38887",
      "parents": [
        "8248fbb82a2362791258eaedd7d9615ac8f20351"
      ],
      "author": {
        "name": "Greg Kaiser",
        "email": "gkaiser@google.com",
        "time": "Mon Jul 30 06:13:57 2018 -0700"
      },
      "committer": {
        "name": "Greg Kaiser",
        "email": "gkaiser@google.com",
        "time": "Mon Jul 30 06:13:57 2018 -0700"
      },
      "message": "AudioPolicyManager: Fix logging statement\n\nWe move our \u0027return\u0027 to after our ALOGD statement, so we\u0027ll\nget the information logged.\n\nTest: Treehugger\nChange-Id: Ieb6953633d197baf4311ca51a381f31bec884afc\n"
    },
    {
      "commit": "15be9d2bb881e79c06d90c855f9efa426fd42b78",
      "tree": "e5f3b8ac8934c4a7eb7c9d38a2a9252c68af46aa",
      "parents": [
        "fa69dc61def2931f01a1e14a3b385ffc56a4f2bc"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Nov 08 14:18:13 2017 +1100"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Jul 27 16:37:31 2018 -0700"
      },
      "message": "audiopolicy: Add support for the MSD prototype\n\nMSD is a Multi-Stream Decoder. It\u0027s an optional module\nthat allows mixing of encoded surround streams with\nPCM streams.\n\nThis patch adds elementary support for setting up\na patch between the MSD module and actual output device,\nand prioritizing the MSD module\u0027s device for output.\n\nThe patch is always set up, and is automatically\nre-establishes itself if the actual output device changes.\n\nBug: 63901775\nTest: MSD prototype\nChange-Id: I9efa714455dae10b58bd5cc5cdf5557c0227b40c\n"
    },
    {
      "commit": "23e617d032700449f4a24521cc89734e514a6bf6",
      "tree": "d26b170b13b8f19c4f440882f22d7635e0c56ed4",
      "parents": [
        "9366193e6ba8e2c554de747a3ab58a336297c067",
        "8fc147b21a7627eeda6383ae501add4dc903634e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 27 00:06:24 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 27 00:06:24 2018 +0000"
      },
      "message": "Merge \"audio policy: use client descriptors\""
    },
    {
      "commit": "8fc147b21a7627eeda6383ae501add4dc903634e",
      "tree": "a2f8b9232c40384188296887ab22a66d8200ce54",
      "parents": [
        "fa4fd528583279049b334a75e3782c12e832403b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Jul 22 19:13:55 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 27 00:05:08 2018 +0000"
      },
      "message": "audio policy: use client descriptors\n\nFirst step in implementing use of ClientDescriptor class to keep track\nof playback and capture activity:\n- update AudioPolicyInterface methods to just use port ID as\nclient identifier\n- add list of clients in input and output descriptors and update list\nwhen clients are added and removed.\n- list clients in audio policy manager dump.\n\nTest: Audio smoke tests. CTS tests for AudioTrack, AudioRecord, routing, recording and playback configurations\n\nChange-Id: Ia0f62f295d421fb845d57afcaa0ce77cd2c58775\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": "3fcfb3c014335da69e381cef47d0065ef01350e6",
      "tree": "d1fd0eee10a2c0acc3eb91a1fcbc10afa57c9914",
      "parents": [
        "a18d8004284b7fb0e0372f595716974141cc6e79"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 23 11:24:05 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 24 19:09:40 2018 -0700"
      },
      "message": "audio policy: remove unused concurrent capture code\n\nRemove obsolete concurrent capture logic in audio policy manager\ngiven it is not reusable by the new policy being defined for\nconcurrent capture situations.\n\nTest: make\nChange-Id: I2f5d9f13b0e1d00889968ff4e97930eb464b4799\n"
    },
    {
      "commit": "a18d8004284b7fb0e0372f595716974141cc6e79",
      "tree": "1e286ccfb6943b979fc5f6706c6c69a7756237c7",
      "parents": [
        "0f7d299c5e308bc32333766590797992e7690966",
        "a18dced5af77307be66d8c05ac05e6160ab8d8ed"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 24 22:20:00 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 24 22:20:00 2018 +0000"
      },
      "message": "Merge \"audio policy: refactor record activity tracking (AudioSession)\""
    },
    {
      "commit": "9de8bd18b21642f6f1fb4e3ef75e44a2cc79f3ce",
      "tree": "3be2f968af8f8c7b3b52ae8fa52e7a052fa80fee",
      "parents": [
        "a2a19382e5870fb133b56dacc7ff3048cdaa407d"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jul 23 16:41:31 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jul 24 08:52:14 2018 -0700"
      },
      "message": "AudioPolicy: Reuse SortedVector comparison from AudioProfile\n\nOperation for comparing sorted vectors was defined twice in APM code:\nonce in AudioProfile.h as operator\u003d\u003d, then in APM as \u0027vectorsEqual\u0027\nmethod. Remove the latter and use the operator instead.\n\nTest: make\nChange-Id: I0697843aabb13539b7b552773d96dbb7fb56daa4\n"
    },
    {
      "commit": "759427dba449a06ccc6139fbdcce0ab7e47bf454",
      "tree": "f5a3ac68cf809e376e82176be0334acc839e288b",
      "parents": [
        "a746b36f237e6b05b207afac9a507cc706f5cdc6",
        "749fc66a89fc2e7dc5b9f9126ed2736e6afe678d"
      ],
      "author": {
        "name": "Nadav Bar",
        "email": "nadavbar@google.com",
        "time": "Sat Jul 21 23:57:07 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Jul 21 23:57:07 2018 -0700"
      },
      "message": "Merge \"Allow playing output to default output device when during uplink playback\" into pi-dev am: 6497af909a\nam: 749fc66a89\n\nChange-Id: I77e7c4d654ed82ef80fb9a0c3a93580a661e9933\n"
    },
    {
      "commit": "749fc66a89fc2e7dc5b9f9126ed2736e6afe678d",
      "tree": "dace26d094c03a68f925b2a9dae3d1bbbae38179",
      "parents": [
        "12e2425b4f6f81145153455c5914736a3f8e99b8",
        "6497af909a1218a842ae65f12f7d1f4c98159580"
      ],
      "author": {
        "name": "Nadav Bar",
        "email": "nadavbar@google.com",
        "time": "Sat Jul 21 23:54:08 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Jul 21 23:54:08 2018 -0700"
      },
      "message": "Merge \"Allow playing output to default output device when during uplink playback\" into pi-dev\nam: 6497af909a\n\nChange-Id: I692795874fe5b90ca04a2ff424cd19034bde1512\n"
    },
    {
      "commit": "a18dced5af77307be66d8c05ac05e6160ab8d8ed",
      "tree": "f23e3ffe92d2753871f194de45d8a69a60180726",
      "parents": [
        "68234ec840e4eefdb9d0bf400c745a09a07156c9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 20 15:14:54 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 20 15:30:25 2018 -0700"
      },
      "message": "audio policy: refactor record activity tracking (AudioSession)\n\nRefactor input activity ref counting and callbacks to align\nwith implementation for output.\n\nThis will help migration to per client activity tracking.\n\nTest: audio smoke test, CTS for AudioRecord\nChange-Id: I8806446f33d3090f1042e0956df81318646d5285\n"
    },
    {
      "commit": "b2f18166ff6a85305e8921a64c47f8cbff4575e2",
      "tree": "fc3f2f6aa205c71c4319945227b588a1e5787fea",
      "parents": [
        "b14fef4aba730eba6bd0b1426b726ac77987158f"
      ],
      "author": {
        "name": "Nadav Bar",
        "email": "nadavbar@google.com",
        "time": "Wed Jul 18 13:01:53 2018 +0300"
      },
      "committer": {
        "name": "Nadav Bar",
        "email": "nadavbar@google.com",
        "time": "Thu Jul 19 16:25:52 2018 +0300"
      },
      "message": "Allow playing output to default output device when during uplink playback\n\nChange the current behavior of AudioPolicyManager during incall music playback to allow apps that want to play audio with AUDIO_STREAM_MUSIC to default device to route the audio to the default device chosen by the engine (and not the one forced by the ongoing incall music routing). The current behavior still playes the audio to the default output device, which will be set to the TELEPHONY_TX device whenever there is ongoing uplink playback. This change will only affect a case in which uplink playback is in progress and another app tries to play audio using the music stream at that time.\n\nTest: Tested manually that the behavior described in the bug is fixed and that both apps can play audio to two different output devices.\nBug: 111467967.\nChange-Id: I25bccb635ea436bb6827483732e53c49c4b27825\n"
    },
    {
      "commit": "e2594d983278c9fef290593eea6e9d91b048bb2c",
      "tree": "a2e300d501f95b67d1851e6463117b21c200622c",
      "parents": [
        "5b7d2948d4ec82107b6f1a6fa2b8d9d875c91e27",
        "37977159598ff6a85d37ee8dad812cb0b24dc737"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 13 16:47:54 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 13 16:47:54 2018 +0000"
      },
      "message": "Merge \"APM: Coalesce calls to check and update outputs\""
    },
    {
      "commit": "37977159598ff6a85d37ee8dad812cb0b24dc737",
      "tree": "27834557f2a16a2da716cb336f9abcc4f5bb7ee2",
      "parents": [
        "66c153a4e59006920865383372f86e829fdd0263"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Jul 11 15:54:44 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Jul 11 15:57:30 2018 -0700"
      },
      "message": "APM: Coalesce calls to check and update outputs\n\nIntroduce a method \u0027checkForDeviceAndOutputChanges\u0027 that calls\n\u0027check...\u0027 and \u0027update...\u0027 methods in the correct sequence.\n\nBug: 63901775\nTest: make\nChange-Id: I32fc39d5b62a29e9c1801cb89046fad6fa156073\n"
    },
    {
      "commit": "3839bc0122c23a33d52ff0247bfa70016d9769be",
      "tree": "41c27ee5f6a549144b266b8db56c4c63c38c7ef8",
      "parents": [
        "84c05cdca73f0378c92ed06147463c2962b5c1b6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 10 18:33:34 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 10 18:38:47 2018 -0700"
      },
      "message": "audio policy: rescale volume index in setStreamVolumeIndex\n\nFix a problem in setStreamVolumeIndex() introduced by commit dcd4ab18\nwhere stream volumes where applied systematically when in call for\nall streams regardless of streamsMatchForvolume().\nAlso add index rescaling as in theory two streams matching for volume\ndo not have necessarily the same index range.\n\nBug: 111194621\nTest: repro steps in bug.\nChange-Id: I713b35921d4df19b521fc98281636a9c17483998\n"
    },
    {
      "commit": "84c05cdca73f0378c92ed06147463c2962b5c1b6",
      "tree": "a0c1a0e2e0c661e4254b0846f50924b2e566b553",
      "parents": [
        "93cef54d92ec55dac31a992a3ca8faccb960f54a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 10 16:56:27 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 10 16:56:27 2018 -0700"
      },
      "message": "audio policy: limit voice call index to max index\n\nWorkaround for issue 111194621: limit voice call volume\nindex to max value before computing voice volume.\n\nBug: 111194621\nTest: repro steps in bug.\nChange-Id: Id965a3cc9d0d20900c910f43f41d998917e6040d\n"
    },
    {
      "commit": "80182df39aedd2cd2b589e289e9196f524b9436d",
      "tree": "f4b661f5b5dc99d52a707b78c7ac992fd2cd2d97",
      "parents": [
        "b404289cd9fb7c7e3ac1b6ec4a546ab46bbf20ec",
        "7b1fd2308ed3404557b2b81ae582d281b0f33362"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 10 19:03:26 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 10 19:03:26 2018 +0000"
      },
      "message": "Merge \"setPreferedDevice considered ahead of Dynamic Rules\""
    },
    {
      "commit": "137c7aaab7cc8f41ed49c51b865af41fdac2a84b",
      "tree": "04002ea83574d8d7c3444bed134648ddececa1a5",
      "parents": [
        "cd56a1c2a0adcd21aad3a64c761aa3562d915be1",
        "ac9858be02edea7770ab3bb27d1cc15e4640fb26"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 09 23:31:25 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 09 23:31:25 2018 +0000"
      },
      "message": "Merge \"Use and test patch utilities from system/audio.h\""
    },
    {
      "commit": "ac9858be02edea7770ab3bb27d1cc15e4640fb26",
      "tree": "ff0385983e0302f6f81a902d0e63b680d6c83ff5",
      "parents": [
        "908c7d77355ae2c63a179a4ebfce69b7a6d31e3f"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Jun 15 13:12:37 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jul 09 14:01:15 2018 -0700"
      },
      "message": "Use and test patch utilities from system/audio.h\n\nUse `audio_patch_is_valid` function.\n\nAdd basic tests for the following functions:\n  audio_patch_is_valid\n  audio_port_config_has_hw_av_sync\n  audio_patches_are_equal\n\nBug: 63901775\nTest: systemaudio_tests\nChange-Id: I378ab544e4148fda0dd7b9520d6fd57ff01cb34b\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": "7b1fd2308ed3404557b2b81ae582d281b0f33362",
      "tree": "50ab0dd7048a1494247e2c971b8ab82cf511550b",
      "parents": [
        "a0d382085046ed3b3bea256fbe13051528596418"
      ],
      "author": {
        "name": "Scott Randolph",
        "email": "randolphs@google.com",
        "time": "Mon Jun 18 15:33:03 2018 -0700"
      },
      "committer": {
        "name": "Scott Randolph",
        "email": "randolphs@google.com",
        "time": "Fri Jun 22 17:03:50 2018 -0700"
      },
      "message": "setPreferedDevice considered ahead of Dynamic Rules\n\nAudio policy is updated to allow an applications expressed preference\nfor a specific audio device to override dynamic policy rules, just as it\nalready overrides the rest of the policy engine\u0027s logic.\nThis is important in allowing 1st party automotive applications to\nexplicitly targets specific audio buses.\n\nTest: build and run on Mojave\nChange-Id: I482b74cba40f6d6150f69856769a998158a54a94\n"
    },
    {
      "commit": "3e7eb5eb24e6bf9a31495dee5e5f8252728a2b7d",
      "tree": "c94d954e4295d662b78db83f37f06c46b42f5865",
      "parents": [
        "c22b754fa944017c5d4c5ca58a077fdf89842947"
      ],
      "author": {
        "name": "Yung Ti Su",
        "email": "andysu@google.com",
        "time": "Wed Jun 13 11:48:42 2018 +0800"
      },
      "committer": {
        "name": "Yung Ti Su",
        "email": "andysu@google.com",
        "time": "Fri Jun 22 07:13:21 2018 +0000"
      },
      "message": "audiopolicy: fix for ringtone and offload music playback concurrency\n\nRoot cause: music output is still active when setphonestate and will be\nreevaluate routing and change back to normal speaker.\n\nfollow the change of https://googleplex-android-review.git.corp.google.com/c/platform/frameworks/av/+/4292147\n\nBug: 110072502\nTest: self-tested over 30 times.\n\nChange-Id: Iec1c85f9cd24e3eae149fa27ad8d1ec2b23019e0\nSigned-off-by: Yung Ti Su \u003candysu@google.com\u003e\n"
    },
    {
      "commit": "9b6e81afbffda68de3cda913965c2dd64751fd4a",
      "tree": "0ef1b4671908592a4afdba7b318386d16178a921",
      "parents": [
        "cab5c6676d6cc9f42a0cbe9d864c6f677997c154",
        "4782b353e11d2658a25abf3ee77bfc3b9fa917e1"
      ],
      "author": {
        "name": "Android Build Merger (Role)",
        "email": "noreply-android-build-merger@google.com",
        "time": "Wed Jun 13 00:19:50 2018 +0000"
      },
      "committer": {
        "name": "Android Build Merger (Role)",
        "email": "noreply-android-build-merger@google.com",
        "time": "Wed Jun 13 00:19:50 2018 +0000"
      },
      "message": "[automerger] Merge \"audiopolicy: fix VoIP and system sound routing concurrency\" into pi-dev am: 70c2e5ea61 am: 4782b353e1\n\nChange-Id: I3efe62fd5318a2ef19a45f9a12a8d37d9997f152\n"
    },
    {
      "commit": "d21563205d17b6c61653501f5350812cbf18f58d",
      "tree": "2a7740e7f25caadf7165561429e3ba9e2a18295c",
      "parents": [
        "b58447bf324dca7be1989134deb10e3c78c1e7e7",
        "70c2e5ea61daffd458fd0e57be8376036281f737"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 12 17:14:53 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jun 12 17:14:53 2018 -0700"
      },
      "message": "Merge \"audiopolicy: fix VoIP and system sound routing concurrency\" into pi-dev\nam: 70c2e5ea61\n\nChange-Id: I8467ad2d0a86e2f04bd9aad1fc490900f2207fab\n"
    },
    {
      "commit": "484e927cf9e9bdd91f21796d52ea23c8fe49f670",
      "tree": "a4613c94a81ea09cbae3010205d513260782bc19",
      "parents": [
        "bebb9d118340d2ce7b518539eba23f877b6fd8ad"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 07 17:29:23 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 07 18:17:08 2018 -0700"
      },
      "message": "audiopolicy: fix VoIP and system sound routing concurrency\n\nOn platforms with dedicated output profiles for VoIP, activity on\nall output streams should be considered when use case priority is\nevaluated while selecting current device on a given output stream.\n\nFor now, implement a simple rule taking only into account output streams\nattached to the same audio HAL module and limited to voice call use\ncase.\nThis should be extended to all use cases with a refined rule\nconsidering mutually exclusive devices (using same backend) as opposed\nto all streams on the same audio HAL module.\n\nBug: 109640706\nTest: repro steps in b/109640706\nChange-Id: I2cea35911a6121980f128a3a3d694699364854eb\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": "bd1a7046c0ad30f5a6ca214023c618a6080da04e",
      "tree": "a4720becac883cefd1f37444986eb94a98397196",
      "parents": [
        "150bbbc71adc612b45264ad7a5fa180e8deef4ef",
        "c65863d32ed0bf83128b72346bdbd8ec1fd791d4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 24 12:25:31 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 24 12:25:31 2018 -0700"
      },
      "message": "Merge \"audio polcy: fix explicit device routing in call\" into pi-dev am: 944c05e857\nam: c65863d32e\n\nChange-Id: I291dc90b37f3ac07135ab2bfa7f2e748c16c0304\n"
    },
    {
      "commit": "150bbbc71adc612b45264ad7a5fa180e8deef4ef",
      "tree": "a00050208c87a40db933b74853a0adf55025830a",
      "parents": [
        "b1dd2d9b7b0a3da1db8d3e3c2a76509a53a316e9",
        "d4f615b1743d2810be6f83ebd4dc4c266c455dab"
      ],
      "author": {
        "name": "HW Lee",
        "email": "hwlee@google.com",
        "time": "Thu May 24 10:59:40 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 24 10:59:40 2018 -0700"
      },
      "message": "Merge \"audiopolicy: keep BT SCO vol at 0 dB on VoIP\" into pi-dev am: cd182409e3\nam: d4f615b174\n\nChange-Id: I7985bc296c3c9a29fdfcbc066143c310052787b5\n"
    },
    {
      "commit": "7be71d225fd6d44cc38eaef532c2eb502dcadb91",
      "tree": "fd930e9c5f1f45015264e9548c75301b7e16cc61",
      "parents": [
        "85599801bae7907bd1bc0e4cad1b834d16920776"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed May 23 16:51:46 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed May 23 17:15:11 2018 -0700"
      },
      "message": "Zero initialize audio_port_config and containing structs\n\nAdd zero initialization for struct audio_port_config and\nthe structures that contain it: audio_port and audio_patch.\n\nLeft intact places where the struct is overwritten completely\nor memset\u0027d right after declaration.\n\nTest: make\nChange-Id: I889e55fd7c7b8810ef840090a9f0a85d55eaedb3\n"
    },
    {
      "commit": "c65863d32ed0bf83128b72346bdbd8ec1fd791d4",
      "tree": "787db022ccbe0783a56dcea56d2e64b19def8746",
      "parents": [
        "d4f615b1743d2810be6f83ebd4dc4c266c455dab",
        "944c05e8575d63cf53a9a0825465b37f63645784"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 23 15:17:25 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 23 15:17:25 2018 -0700"
      },
      "message": "Merge \"audio polcy: fix explicit device routing in call\" into pi-dev\nam: 944c05e857\n\nChange-Id: I5809839168eef59067e6ed46fafc223f519ced46\n"
    },
    {
      "commit": "d4f615b1743d2810be6f83ebd4dc4c266c455dab",
      "tree": "0ff4e83124a4583d6afa678a2e4f076188ba64ed",
      "parents": [
        "ca39936b7aae51f69e98f6ba978f82546d2ef264",
        "cd182409e34c0bb9da0136fd3a9e436fb09ab313"
      ],
      "author": {
        "name": "HW Lee",
        "email": "hwlee@google.com",
        "time": "Wed May 23 14:32:15 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 23 14:32:15 2018 -0700"
      },
      "message": "Merge \"audiopolicy: keep BT SCO vol at 0 dB on VoIP\" into pi-dev\nam: cd182409e3\n\nChange-Id: Ic64d424613765327c77d211888776a6b976b8bd1\n"
    },
    {
      "commit": "944c05e8575d63cf53a9a0825465b37f63645784",
      "tree": "253721d4dc3ef04e720e6bdb58527061a57eab0f",
      "parents": [
        "cd182409e34c0bb9da0136fd3a9e436fb09ab313",
        "f3a5a6014a8bf7915bcf9297d536c707c212086d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 23 21:05:37 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 23 21:05:37 2018 +0000"
      },
      "message": "Merge \"audio polcy: fix explicit device routing in call\" into pi-dev"
    },
    {
      "commit": "f3a5a6014a8bf7915bcf9297d536c707c212086d",
      "tree": "36e3815839146def5e5a0e1584a3a5bdf2f2bd8d",
      "parents": [
        "c2d0641bc02e08a74c458002d9460299cd1ff490"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 22 18:42:55 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 23 08:51:46 2018 -0700"
      },
      "message": "audio polcy: fix explicit device routing in call\n\nMake sure tracks with an explicit routing request are not systematically invalidated\nwhen starting while another track on the same strategy is already active.\n\nAlso fix a problem where explicit routing is not taken into account by\ngetNewOutputDevice() when in call because the strategy with the\nexplicit routing is not evaluated.\n\nBug: 69680975\nBug: 79878501\nTest: voice call regression, CTS for explicit audio routing, test case\nfor b/79878501\n\nChange-Id: I99b83f8a3304549bf327c3c327f6671f777cfb4b\n"
    },
    {
      "commit": "da7581eca3523a21142a3d259531c938f8dc717c",
      "tree": "d83d3684141ee10394501e147d0e169b739d4d35",
      "parents": [
        "edfea741746883b3ca5898ccfcd6059b1c50204b"
      ],
      "author": {
        "name": "HW Lee",
        "email": "hwlee@google.com",
        "time": "Tue May 22 18:31:34 2018 +0800"
      },
      "committer": {
        "name": "HW Lee",
        "email": "hwlee@google.com",
        "time": "Wed May 23 14:02:07 2018 +0800"
      },
      "message": "audiopolicy: keep BT SCO vol at 0 dB on VoIP\n\nThe BT SCO volume of VoIP is set as the value computed with the volume\nindex, while that of voice call keeps constant (0 dB). It causes the\noutput sound of VoIP being multiplied by a gain computed with the\nvolume index, then the sound hears different if the volume index has\nbeen changed before. Therefore, the volume of VoIP on BT SCO should keep\nat 0 dB as well.\n\nBug:78206701\nTest: manual audio test\nChange-Id: I888b2f7c0869902dd5e0adf77f711e7b9fd7e108\nSigned-off-by: HW Lee \u003chwlee@google.com\u003e\n"
    },
    {
      "commit": "298e1b3db0f94396249933c823b6ff55cf8fc1cc",
      "tree": "8deeed6f3a7001d40440a130e9f377ec3fb59a89",
      "parents": [
        "868c0a9e91df17dcad52b5a0dcacc51205dd8f46",
        "4ef19fa450e8b523741a22fabee8f62691abec37"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 22 20:47:54 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 22 20:47:54 2018 +0000"
      },
      "message": "Merge \"Update audio permission checking\""
    },
    {
      "commit": "d8ba3c4d8a56abf3afb8e793caaec97216251b41",
      "tree": "f7c31740b155cf5a8bba9c87e50b8e498322619c",
      "parents": [
        "31e2127d4b78daeedd36b6daabc4ba7dfe1b7ec7",
        "1888c866419cb11a422a36ad08e2e6ca2c2f8aeb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 18 11:30:44 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri May 18 11:30:44 2018 -0700"
      },
      "message": "Merge \"audio policy: add device to audio record media metrics\" into pi-dev am: 1ea2c0f91c\nam: 1888c86641\n\nChange-Id: Ic914228c52f19b2f745541aa5edd12bbd2f66419\n"
    },
    {
      "commit": "1888c866419cb11a422a36ad08e2e6ca2c2f8aeb",
      "tree": "2eb76c155a3bf0438ef3a105db30832010f9d3ea",
      "parents": [
        "34dfaeb3f46e45e538e21b6d788200f85b53d6be",
        "1ea2c0f91cb97b17cc8849cf14848b05684b63b7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 18 11:18:06 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri May 18 11:18:06 2018 -0700"
      },
      "message": "Merge \"audio policy: add device to audio record media metrics\" into pi-dev\nam: 1ea2c0f91c\n\nChange-Id: Ic9cacf6f5b2b9f3aa51367914f71c8c03592a415\n"
    },
    {
      "commit": "99fcae46d54639e7841d87b1dcacbc229bbf8dc4",
      "tree": "f1f6c0ffb8e22e7df27fbe5b5cd42e3bef3e7658",
      "parents": [
        "0ba1ae398e65718fba66bb1bd258d4d0a9ba6c28"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 17 16:59:18 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 17 18:17:44 2018 -0700"
      },
      "message": "audio policy: add device to audio record media metrics\n\nAdd information about requested and active input device type in\naudiopolicy media metrics on recording clients.\n\nBug: 78595399\nTest: recording over several devices, dumpsys media.metrics\nChange-Id: Ifeeb2c51ee3ed2dbb86406c0e8d74e7aa70dd8fb\n"
    },
    {
      "commit": "4ef19fa450e8b523741a22fabee8f62691abec37",
      "tree": "5d0eaaf73cebe029d1d8dd935d5c6fddb12ee70f",
      "parents": [
        "ab7ef300b74904bce6c5c810d9e5679abfa582e6"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 15 19:35:29 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 17 18:11:55 2018 -0700"
      },
      "message": "Update audio permission checking\n\nChange captureAudioOutputAllowed to check client pid.\n\nCheck calling uid with AID_AUDIOSERVER instead of calling pid with\nown pid. This is consistent, and works if AudioFlinger and\nAudioPolicyManager exist as different processes.\n\nRemove getpid_cached since getpid() is very fast. This removes\nany initialization issues.\n\nReplace getuid() with AID_AUDIOSERVER to remove ambiguity of\nmultiple native audio services for multiple users. Only\none exists regardless of users.\n\nDo not use multiuser UID checks for certain native services\nthat do not spawn for multiple users to prevent accidently exposure.\n\nMove permission checks to use ServiceUtilities for control and\nconsistency.\n\nRename isTrustedCallingUid to isAudioServerOrMediaServerUid\nso that permission check is explicitly known to caller.\n\nUpdate MediaLogService to use ServiceUtilities.\n\nTest: Basic sanity\nTest: AudioTrackTest, AudioRecordTest, SoundPool, SoundTrigger\nBug: 79485140\nChange-Id: Ib8ccb36929a9b4806c01626f32fa023a046d6020\n"
    },
    {
      "commit": "b1410279236c35e05edfb7aa96dec563759d073e",
      "tree": "7228325d07710a7366a5601b11e974b2f9dfdd02",
      "parents": [
        "18a64dc9e1bdb6f0bf80a76b86b3ca96ed5be333",
        "7221451768a69fa5bc8dbbff8ea76af47d3ea70a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 17 15:03:40 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 17 15:03:40 2018 -0700"
      },
      "message": "Merge \"audiopolicy: Optimize A2DP codec config change\" into pi-dev am: 0ba1ae398e\nam: 7221451768\n\nChange-Id: Iab6dde9d368f6647aeb1eab49dc7b45a6b96f756\n"
    },
    {
      "commit": "7221451768a69fa5bc8dbbff8ea76af47d3ea70a",
      "tree": "862cc3e9533ab6d1220c351fab87017e4a24dd77",
      "parents": [
        "52f0c23904b2249fb92ad015d74d9c6969930cdb",
        "0ba1ae398e65718fba66bb1bd258d4d0a9ba6c28"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 17 14:58:36 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 17 14:58:36 2018 -0700"
      },
      "message": "Merge \"audiopolicy: Optimize A2DP codec config change\" into pi-dev\nam: 0ba1ae398e\n\nChange-Id: I8a8da84dafe1f941b7fb0240ac353c35ea06ace3\n"
    },
    {
      "commit": "3432e0439d3b09756f125dfa734951c654d63baf",
      "tree": "a5ccde7855da94bf284d302e61adf0d155f0dcfa",
      "parents": [
        "5eb9d967e81ace00d96ab50b9264b25560e9df1d"
      ],
      "author": {
        "name": "Aniket Kumar Lata",
        "email": "alata@codeaurora.org",
        "time": "Fri Apr 06 14:22:15 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 17 11:18:25 2018 -0700"
      },
      "message": "audiopolicy: Optimize A2DP codec config change\n\nHandle A2DP codec config change in audio HAL without\nclosing / re-opening outputs or invalidating streams\nfrom AudioPolicyManager.\n\nBug: 79476124\nTest: music playback over BT A2DP\nChange-Id: I87263da32815a4d4f6273068ef0b2a5b93c73b75\n"
    },
    {
      "commit": "4dbb7193c5fde752707bee899a018511e872f1e5",
      "tree": "e1b3fe47323886a0fd5751aafe35ce7dc5add0d6",
      "parents": [
        "815fc56caa35b91df0c8a4bb4659438e59e91152",
        "dc769682023ba8a8a5da07c3e3a3adfabe4bd612"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 16 17:47:25 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 16 17:47:25 2018 +0000"
      },
      "message": "Merge \"audio_server: Unify audio_patch creation\""
    },
    {
      "commit": "dc769682023ba8a8a5da07c3e3a3adfabe4bd612",
      "tree": "6f6a0991e71927cda302c4c489f69bd239023597",
      "parents": [
        "f1040d20210338eb850b000d4344ddc9a04eb493"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri May 04 15:34:08 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed May 16 09:43:33 2018 -0700"
      },
      "message": "audio_server: Unify audio_patch creation\n\nProvide PatchBuilder helper class instead of fiddling with\nstruct audio_patch directly.\n\nRename \u0027getAudioPortConfig\u0027 methods of AudioFlinger helper\nclasses into \u0027toAudioPortConfig\u0027 to match classes\nof AudioPolicyManager.\n\nFactor out common code in AudioPolicyManager that was\nadding audio patches. For that, AudioOutputDescriptor now inherits\nfrom AudioSessionInfoProvider, and the latter has been extended\nwith \u0027setPatchHandle\u0027 method.\n\nTest: switch to/from Bluetooth on phone calls and media playback,\n      use camcorder\nChange-Id: Idd99645dc6943ed078c4d94d0197fead7831ab4d\n"
    },
    {
      "commit": "f38ae75e82876fa231cc55bca761e6e22ede1867",
      "tree": "41c05c6b412169df2cf5c392684f27b32f974803",
      "parents": [
        "8bc70f7fc17d70e3d3be44d55e17c827fb6e2fb1",
        "0e66c708f9afc27195d6854977f70f070ba1e46b"
      ],
      "author": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Tue May 15 14:52:05 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 15 14:52:05 2018 -0700"
      },
      "message": "Merge \"Add support for manually set surround formats.\" into pi-dev am: f824853eab\nam: 0e66c708f9\n\nChange-Id: If0fb97fcf33cb8b1b712238102d17f2c84c24f38\n"
    },
    {
      "commit": "0e66c708f9afc27195d6854977f70f070ba1e46b",
      "tree": "41f18c0a17321ae6f19a513fac91baaecb8a62cd",
      "parents": [
        "cfc4aff2d73d329bbc56dd1c322524d733a5972b",
        "f824853eabf8eab483de7387c001493dda63966b"
      ],
      "author": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Tue May 15 14:01:54 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 15 14:01:54 2018 -0700"
      },
      "message": "Merge \"Add support for manually set surround formats.\" into pi-dev\nam: f824853eab\n\nChange-Id: Id134ce99f99d0fa067a95ed5e2f109ec96c7cfbf\n"
    },
    {
      "commit": "f824853eabf8eab483de7387c001493dda63966b",
      "tree": "2d56a1a846f7adf1e25a7cf4465d34d648cd861a",
      "parents": [
        "625e3020f8c070c8d8449af1bdaeaa002c11cc03",
        "817729095966c338615a8a791d2dbf774fc034ef"
      ],
      "author": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Tue May 15 20:54:28 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 15 20:54:28 2018 +0000"
      },
      "message": "Merge \"Add support for manually set surround formats.\" into pi-dev"
    },
    {
      "commit": "98da2a62079704c8f9b3963ed250d547addf45bd",
      "tree": "4bd61aa5282d38737277a251920ac9b5074b47d1",
      "parents": [
        "c84ef0a6d4d931caebbf1dfec5265d944de45dcb",
        "84b79e642ba977143d882c8270426dacfd6e117f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 15 12:42:20 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 15 12:42:20 2018 -0700"
      },
      "message": "Merge \"audio policy: reduce mute time when invalidating tracks\" into pi-dev am: c7c3213356\nam: 84b79e642b\n\nChange-Id: I22dc4c6d8ac63fe1e75e2cd03732261ad913e089\n"
    },
    {
      "commit": "84b79e642ba977143d882c8270426dacfd6e117f",
      "tree": "c3e546e33984a0d04088e07f906605b9187e099b",
      "parents": [
        "a18b655832a629d7d14967b137f27ed0a36417af",
        "c7c321335610ac2ee193c41ef673517ad43d6c42"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 15 12:12:35 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 15 12:12:35 2018 -0700"
      },
      "message": "Merge \"audio policy: reduce mute time when invalidating tracks\" into pi-dev\nam: c7c3213356\n\nChange-Id: I3d617996be5d86a74b5b1f113d5e37e75fbc4780\n"
    },
    {
      "commit": "ac3a690c79467612a12e2c3a216c8ea2c4efbd64",
      "tree": "b192daca5cbceadc29316e9b22413bcb3914a856",
      "parents": [
        "2c82a511797920451aa20ad5e089fc71aaff78af"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 11 16:39:10 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon May 14 18:35:05 2018 -0700"
      },
      "message": "audio policy: reduce mute time when invalidating tracks\n\nReplace fixed 2 seconds mute time in checkOutputForStrategy() by\na variable time based on actual maximum output latency.\n\nAlso fix problem where src outputs where queried from mOutputs list\ninstead of from mPreviousOutputs.\n\nBug: 70632415\nTest: manual connections/disconnection of BT A2DP and USB headset\nChange-Id: I3a9ea915a134d95a2dc5abea2fbfe6152f147e80\n"
    },
    {
      "commit": "315ebb417fedf88d42240844479604e79ea3ca2a",
      "tree": "7a12a33194ae96121e8322211945f0e9b211efe7",
      "parents": [
        "6c529b103e2a4079295c39c32b7aedcbae3295c8",
        "812511dbb573f2630a2a98d197e5cbeb3c595671"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 10 19:08:29 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 10 19:08:29 2018 -0700"
      },
      "message": "Merge \"audiopolicy: clean delayMs to 0 before reevaluate all outputs routing when call state changes\" into pi-dev am: ff9407d5c6\nam: 812511dbb5\n\nChange-Id: I2ce7d66029e81b7c0e47362bbcef54cf9ba2092b\n"
    },
    {
      "commit": "812511dbb573f2630a2a98d197e5cbeb3c595671",
      "tree": "16d2b76a2f6f2373f0a892aecd4ab68e2a18f29e",
      "parents": [
        "e34561be0524fc177c3c1ba973a4e739e6f01ec9",
        "ff9407d5c6eb3598edc2dd2405fb0d3367e726d4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 10 19:03:51 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 10 19:03:51 2018 -0700"
      },
      "message": "Merge \"audiopolicy: clean delayMs to 0 before reevaluate all outputs routing when call state changes\" into pi-dev\nam: ff9407d5c6\n\nChange-Id: Ica74623612e88680887789288c744a4a4a6a0275\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": "f60c824b23de449d3e31e69d5b91e3dba83067b1",
      "tree": "ba06f79b07ed975db58456cddb214248b3a48fbd",
      "parents": [
        "ec2c0359ecc1225ea8d15bd16fd6e01d5c006933"
      ],
      "author": {
        "name": "Yung Ti Su",
        "email": "andysu@google.com",
        "time": "Thu May 10 18:07:26 2018 +0800"
      },
      "committer": {
        "name": "Carter Hsu",
        "email": "carterhsu@google.com",
        "time": "Fri May 11 06:40:15 2018 +0800"
      },
      "message": "audiopolicy: clean delayMs to 0 before reevaluate all outputs routing when call state changes\n\nsince the delayMs is for updateCallRouting(),\nwe need to clean delayMs to 0 before reevaluate\nall outputs routing when call state changes.\nOtherwise, setPhoneState will cost too much time\nwhich will block UI making phone call.\nTest: self-test making phone call and check for delay time\nBug: 79187322\n\nTest: delayed time is reduced.\nChange-Id: I3f71af700efb958c0716b4bf28aa436d85c5af66\nSigned-off-by: Yung Ti Su \u003candysu@google.com\u003e\n"
    },
    {
      "commit": "99c58a82ce17440d3b050c8efbaa99f6db3f0668",
      "tree": "58fa385167bbb63f87487495fb34e1b9f1d5ec06",
      "parents": [
        "c3cb8cf7a9ceb364328183336fcacb1285aba883",
        "3b7f469b1ead2428a50bf4049e32b7a81fb2b7f6"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon May 07 11:20:57 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon May 07 11:20:57 2018 -0700"
      },
      "message": "collect more media metrics around audio am: 84e84a5dd3\nam: 3b7f469b1e\n\nChange-Id: I03941e3b776ba3cdb84ea39b07f1dcb903cbbf14\n"
    },
    {
      "commit": "3b7f469b1ead2428a50bf4049e32b7a81fb2b7f6",
      "tree": "210e40b23a608b6862988f838364434bdd6508cb",
      "parents": [
        "00838b0bc08a3eee51c458a8e560d36985973ef5",
        "84e84a5dd3b6d9ee4cf032e8d6206c70969b7107"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon May 07 11:14:24 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon May 07 11:14:24 2018 -0700"
      },
      "message": "collect more media metrics around audio\nam: 84e84a5dd3\n\nChange-Id: I3403aa6ec0f4bfd53a7ec80c8c45d28267797763\n"
    },
    {
      "commit": "84e84a5dd3b6d9ee4cf032e8d6206c70969b7107",
      "tree": "49fd8e4e911d62ac8be44ae91fdaf35902a234d9",
      "parents": [
        "527da4c9d30c977c0105a288b20a77f0f9e8d0d3"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu May 03 18:45:07 2018 -0700"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon May 07 16:32:02 2018 +0000"
      },
      "message": "collect more media metrics around audio\n\nnew fields in the media metrics \u0027audiorecord\u0027 record for more detail\nlength of time recorded, error conditions\nadd new media metrics type \u0027audiopolicy\u0027 that describes attempts to get\nmicrophone access -- success, failure on contention, what type of access\nwas requested, and (important for the contention) which programs are\ndoing the requesting and holding of the microphones.\n\nwhitelist the \u0027audiopolicy\u0027 metrics type with the  media.metrics service.\n\nBug: 78595399\nTest: concurrent/serial recordings, dumpsys media.metrics\nChange-Id: Ia17860940d4c329b0215b4cf97c6dacacb6a8e32\n"
    },
    {
      "commit": "b9e2f649aedfbd92d1ead1c8c06f51dadf38c962",
      "tree": "4b27a226e73911c9945fabb1ada7f95d16cc0a30",
      "parents": [
        "2334e15ad68771d58bd5913a1e9e164b5b94b585",
        "126495229dde741826639e3e48eaa371cf58d4ee"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 30 17:58:33 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Apr 30 17:58:33 2018 -0700"
      },
      "message": "Merge \"AudioPolicyManager: Ensure direct output matches exact format\" into pi-dev am: 8d57302e2d\nam: 126495229d\n\nChange-Id: Ibd4368290502f620bc67d144253490442f9eaba2\n"
    },
    {
      "commit": "126495229dde741826639e3e48eaa371cf58d4ee",
      "tree": "88711211e303476d1c859c9e0e3ae51e00d041ab",
      "parents": [
        "f4326116945b1d7a2717eb8b2a8a7cb8f31257c7",
        "8d57302e2deaf84c039d616f6423541813b48c75"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 30 17:54:37 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Apr 30 17:54:37 2018 -0700"
      },
      "message": "Merge \"AudioPolicyManager: Ensure direct output matches exact format\" into pi-dev\nam: 8d57302e2d\n\nChange-Id: I3005367e98e840800b72289565760488a47a9af2\n"
    },
    {
      "commit": "5659ed5327fbd6a412ecd65235eea68a5a59fd39",
      "tree": "cdbee9dc70ddf66800ec413587af91e182e98d81",
      "parents": [
        "e5a37268101a2c9d8019938f4e5ac9eec2e52fca"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 30 10:31:26 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 30 10:56:52 2018 -0700"
      },
      "message": "AudioPolicyManager: Ensure direct output matches exact format\n\nOtherwise AudioFlinger will fail on createTrack.\n\nTest: No regression on Play Music Offload playback\nBug: 77507038\nChange-Id: I0702e3047e385889861288072d4f5c6e99e8924d\n"
    },
    {
      "commit": "47d76fdbb237562b22100ee63e2b03c749c201e4",
      "tree": "0ccd08b3865813b4c5806db6e06e035db8dcaaf8",
      "parents": [
        "b34d37bb68f276dbc27581ea985220328b4891ee",
        "fd3ac44e7de0cd303ad12530378d4dfaf23e3526"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 30 09:56:35 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Apr 30 09:56:35 2018 -0700"
      },
      "message": "Merge \"Fix getOutputForAttr to avoid binder parameter in/out change\" into pi-dev am: e5a3726810\nam: fd3ac44e7d\n\nChange-Id: Ife87d98b5f9faebc0c5445ea81eb451fc70da8cb\n"
    },
    {
      "commit": "fd3ac44e7de0cd303ad12530378d4dfaf23e3526",
      "tree": "620a89afbb1ada5dd32a4924282e1a300d61efe8",
      "parents": [
        "9bdd82e1fcb4b74988c314eec3b506730a7b0c0d",
        "e5a37268101a2c9d8019938f4e5ac9eec2e52fca"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 30 09:51:29 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Apr 30 09:51:29 2018 -0700"
      },
      "message": "Merge \"Fix getOutputForAttr to avoid binder parameter in/out change\" into pi-dev\nam: e5a3726810\n\nChange-Id: Ic33233a6ccb3e291636f3d17cdc585ec7ce50b6b\n"
    },
    {
      "commit": "e5a37268101a2c9d8019938f4e5ac9eec2e52fca",
      "tree": "7d0c6be8f2a9bd25dc6703675a1df112a6d19172",
      "parents": [
        "487109674141a0adb4b173d9f7d682d29587fec3",
        "c88b06445e53ae806e94483a6ae8b2241fe3bf6f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 30 16:43:27 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 30 16:43:27 2018 +0000"
      },
      "message": "Merge \"Fix getOutputForAttr to avoid binder parameter in/out change\" into pi-dev"
    },
    {
      "commit": "c88b06445e53ae806e94483a6ae8b2241fe3bf6f",
      "tree": "af4d4c39a33d69d72813b2cf2b307669c892286b",
      "parents": [
        "ed4f0147db29c87d0404f78eb68dc7b7b81deed8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Apr 27 15:42:35 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Apr 27 18:28:00 2018 -0700"
      },
      "message": "Fix getOutputForAttr to avoid binder parameter in/out change\n\nBug: 78796725\nTest: test_interference.cpp\nChange-Id: Iab9f337d750910c896839c8905c945a181a133c7\n"
    },
    {
      "commit": "5c3c29e53490558a8e538044921daa263df22414",
      "tree": "7f12f78fb46190f2802c9257775ddbed498d55db",
      "parents": [
        "5ec6e0d87fba281c66dd1644fcf9989bb9c95762",
        "e9108d0f23dfb59f59da8a55db8c91f2bdc3297f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 26 11:58:22 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 26 11:58:22 2018 -0700"
      },
      "message": "Merge \"audiopolicy: fix preferred device selection\" into pi-dev am: 90033d1913\nam: e9108d0f23\n\nChange-Id: I8ee6ed31b4f205f7c6178db8219439a56168bf95\n"
    },
    {
      "commit": "e9108d0f23dfb59f59da8a55db8c91f2bdc3297f",
      "tree": "bd2851c0307e2b9897570dd682b28cc705584a96",
      "parents": [
        "f854156ae82ba41965a3129df7fc1912fd36da5f",
        "90033d19134e13de6b7829db496925676c9d4d72"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 26 11:46:45 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 26 11:46:45 2018 -0700"
      },
      "message": "Merge \"audiopolicy: fix preferred device selection\" into pi-dev\nam: 90033d1913\n\nChange-Id: Id90deaf535ea24fcbc7024ca5832de675a9c847f\n"
    },
    {
      "commit": "2157f5bc0c54a77318e75076365eff739e07056f",
      "tree": "5e7ba0e1b401517aeaaebb68a8c6d2f7eab9a6e8",
      "parents": [
        "64da22285776f07a775afd45f9fc36cea1aa05e3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 25 18:33:02 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 25 18:33:02 2018 -0700"
      },
      "message": "audiopolicy: fix preferred device selection\n\nMake sure preferred device selection is taken into account\nin getOutputForAttr() even if called twice on the same session:\nForce changed flag when adding a SessionRoute even if\nthe same device is specified.\n\nAlso renamed SessionRoute isActive() to isActiveOrChanged() and\nhasRouteChanged() to getAndClearRouteChanged() for clarity.\n\nBug: 69680975\nTest: manual\nChange-Id: I3f3a659568c4dfc825a788753b0302136fd89871\n"
    },
    {
      "commit": "4dc3cb0ce536ecb4c58d08889cf482267825446d",
      "tree": "24526dcfc7e6655b5bd826eb414fa7b70957555c",
      "parents": [
        "f005be5fb524e98f3ada87693d2e2911229dab16",
        "2e5167e17a4c860a297c451e9892660db0ad8dab"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 23 18:08:22 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 23 18:08:22 2018 +0000"
      },
      "message": "Merge \"AudioPolicy: Print the actual config file name in the dump\""
    },
    {
      "commit": "f4f01aafa5d45d2c5b1acb80bba9fcaa64e70e61",
      "tree": "b860d7d086757ab2c862f0a29059949e3e4f3084",
      "parents": [
        "f5afe9d02a05dee2dee99e5fd23c920bd38bcac9",
        "030cb3b698958d5b291598b96463b450888e1a27"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 20 19:23:33 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Apr 20 19:23:33 2018 -0700"
      },
      "message": "Merge \"audiopolicy: evaluate all outputs routing when call state changes\" into pi-dev\nam: 030cb3b698\n\nChange-Id: I237d237b388a1434b3dda8e4c3da682d5595e865\n"
    },
    {
      "commit": "030cb3b698958d5b291598b96463b450888e1a27",
      "tree": "3838e8db0f932797f143a4996ca07d2bfbfcf411",
      "parents": [
        "ed4f0147db29c87d0404f78eb68dc7b7b81deed8",
        "2e2a8a993de1aa65a7e174ee1152240779350456"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Apr 21 01:41:19 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Apr 21 01:41:19 2018 +0000"
      },
      "message": "Merge \"audiopolicy: evaluate all outputs routing when call state changes\" into pi-dev"
    },
    {
      "commit": "2e5167e17a4c860a297c451e9892660db0ad8dab",
      "tree": "7ada8498a06a1f3226fc0ec4bc035fbbf5bc6bba",
      "parents": [
        "c08db98c40e76a49da296e8834fd0a5a51214f60"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Apr 19 13:41:22 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Apr 20 16:45:53 2018 -0700"
      },
      "message": "AudioPolicy: Print the actual config file name in the dump\n\nSince the audio policy config file is looked up in many locations,\nspecify which one we have ended up using.\n\nSimplify rendering of the audio policy state header.\n\nTest: adb shell dumpsys media.audio_policy\nChange-Id: I0d410eb697898acf4e4beb2333949b1daf08c92b\n"
    },
    {
      "commit": "2e2a8a993de1aa65a7e174ee1152240779350456",
      "tree": "a49c322cbf9216ed7258c28539388b98d343de06",
      "parents": [
        "6b6f4313aae039f2d73664816e45834e65f79bf5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 20 16:21:33 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 20 16:30:02 2018 -0700"
      },
      "message": "audiopolicy: evaluate all outputs routing when call state changes\n\nWhen call state changes, it is possible that some outputs are active in\nwhich case their routing must be reevaluated.\nThis generalizes this behavior already implemented when a device is\nconnected/disconnected or a forced usage changed.\n\nThis is normally not needed as music is paused when a call is active\nbut there can be some race conditions where music resumes before the\naudio mode is actually updated due to the asynchronous nature of audio\nfocus and audio mode management.\n\nBug: 78248310\nTest: repro steps in bug. Audio smoke tests\nChange-Id: If491eb879a90cf29025bedb2bc77210f052bcb6a\n"
    },
    {
      "commit": "150b9846f846165344910b9211739cdb3054ccf4",
      "tree": "cb14ef2c92dc6210a145e34eef3e310f475262ff",
      "parents": [
        "56aad0ab6a23bfa750a3542f6bdcd21b70f082ac"
      ],
      "author": {
        "name": "Petri Gynther",
        "email": "pgynther@google.com",
        "time": "Tue Apr 17 18:46:10 2018 -0700"
      },
      "committer": {
        "name": "Petri Gynther",
        "email": "pgynther@google.com",
        "time": "Fri Apr 20 01:07:22 2018 -0700"
      },
      "message": "A2DP offload: switch to new properties + swap audio XML files\n\nBug: 63932139\nBug: 76201991\nTest: Manual A2DP testing (A2DP offload enabled and disabled)\nChange-Id: I08363a5ee3ede339f1c25baa70d44066d657d967\nMerged-In: I08363a5ee3ede339f1c25baa70d44066d657d967\n"
    },
    {
      "commit": "5a17cf8d6cf2bff974965d87e3ac5f6a05b3c666",
      "tree": "b71116c3a0be80ab0dc62d7ec1a17ea0f775c6ed",
      "parents": [
        "b7d75dd1106af8d0b1c1d82826b317d88598a963",
        "0bd5a3661d38b9c84cfc87b70d415e55d05e2f6f"
      ],
      "author": {
        "name": "Petri Gynther",
        "email": "pgynther@google.com",
        "time": "Fri Apr 20 00:55:21 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Apr 20 00:55:21 2018 -0700"
      },
      "message": "Merge \"A2DP offload: switch to new properties + swap audio XML files\" am: 80236d253e\nam: 0bd5a3661d\n\nChange-Id: If6509649831cf90112d83e485f9718300dfe924e\n"
    },
    {
      "commit": "f497f293021d2f983547c271db2cd11038100e93",
      "tree": "11d0ad8e3c0b6836d277bea01708e7bf3491d9f5",
      "parents": [
        "91a45a421b3598e3519a3d459957959e94b4d3c1"
      ],
      "author": {
        "name": "Petri Gynther",
        "email": "pgynther@google.com",
        "time": "Tue Apr 17 18:46:10 2018 -0700"
      },
      "committer": {
        "name": "Petri Gynther",
        "email": "pgynther@google.com",
        "time": "Thu Apr 19 11:34:50 2018 -0700"
      },
      "message": "A2DP offload: switch to new properties + swap audio XML files\n\nBug: 63932139\nBug: 76201991\nTest: Manual A2DP testing (A2DP offload enabled and disabled)\nChange-Id: I08363a5ee3ede339f1c25baa70d44066d657d967\n"
    },
    {
      "commit": "b3015a96982378dfe6ac5578f941c3480d303816",
      "tree": "3a345235085043df7704cd5c15f66244050723a2",
      "parents": [
        "56f91c54055d2d36b19d22abf391004fb1d9843e",
        "f255369091d48ba7475ee4aae840a8a9c7a15f07"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 17 10:15:36 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 17 10:15:36 2018 -0700"
      },
      "message": "Merge changes from topic \"silence_mmap_capture_fix\" into pi-dev\nam: f255369091\n\nChange-Id: I2e7140f8c5ff6fb26783adcc38c03641a2e0aac8\n"
    },
    {
      "commit": "f255369091d48ba7475ee4aae840a8a9c7a15f07",
      "tree": "41a75f7dece0aae3664a6ab896535580bd38a85d",
      "parents": [
        "85d2e91d3cb2faaf42338df28d34c1cc1bc968bd",
        "0389387677385a5ab0341e7505258f489e5aacf5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 17 16:55:26 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 17 16:55:26 2018 +0000"
      },
      "message": "Merge changes from topic \"silence_mmap_capture_fix\" into pi-dev\n\n* changes:\n  audiopolicy: fix shared mmap capture\n  audioflinger: fix mmap interface callback lock\n  Revert \"Revert \"audioflinger: implement silenced capture for mmap\"\"\n"
    },
    {
      "commit": "56f91c54055d2d36b19d22abf391004fb1d9843e",
      "tree": "7611968dd6e86273c66464a67057c4b72606e66c",
      "parents": [
        "f0d93bf6e4955892e9ae76c158e226ce9dec758a",
        "85d2e91d3cb2faaf42338df28d34c1cc1bc968bd"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Apr 17 07:50:30 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 17 07:50:30 2018 -0700"
      },
      "message": "Merge \"Make AudioPolicyManager::getInputForDevice prefer profile match on input fast flag\" into pi-dev\nam: 85d2e91d3c\n\nChange-Id: I53a34a352c845373aca3f8441c5e15db5f7c58e0\n"
    },
    {
      "commit": "85d2e91d3cb2faaf42338df28d34c1cc1bc968bd",
      "tree": "da64b9ee9d8f23b0dfa295ffd241121bb924d17f",
      "parents": [
        "554e08c6b00b2a57348f4545d450915a9e8c870a",
        "730b926555ccb9ad5f7d4c47bf01ade526cceef0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Apr 17 14:39:19 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 17 14:39:19 2018 +0000"
      },
      "message": "Merge \"Make AudioPolicyManager::getInputForDevice prefer profile match on input fast flag\" into pi-dev"
    },
    {
      "commit": "f0d93bf6e4955892e9ae76c158e226ce9dec758a",
      "tree": "da4697cf6ccff34fe53c071ab1d3386ea059d0cc",
      "parents": [
        "3fab4693929df83e5963f68e4f40d1d20a16bc0e",
        "554e08c6b00b2a57348f4545d450915a9e8c870a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 16 17:29:43 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Apr 16 17:29:43 2018 -0700"
      },
      "message": "Merge \"Revert \"audioflinger: implement silenced capture for mmap\"\" into pi-dev\nam: 554e08c6b0\n\nChange-Id: I4844d586d7e0916bf1308d663ad486445021a125\n"
    },
    {
      "commit": "331679c8a5cd21a0e6a7a1d851e965e4721f7420",
      "tree": "9e3835bb805631ca42a90ded01796b73307a4642",
      "parents": [
        "554e08c6b00b2a57348f4545d450915a9e8c870a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 16 17:03:16 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 16 17:08:06 2018 -0700"
      },
      "message": "Revert \"Revert \"audioflinger: implement silenced capture for mmap\"\"\n\nThis reverts commit 611ebb95e76c230214780b7b583b8a3c5277ac7a.\n\nBug: 78118584\nbug: 72134552\nTest: \u0027adb shell write_sine_callback -m3 -pl -s100 -x\u0027 and Plug headphones in and out.\nTest: AAudio CTS tests\nChange-Id: I7558ad7b9c6c2d352ebce105382fe914c26fd35e\n"
    },
    {
      "commit": "554e08c6b00b2a57348f4545d450915a9e8c870a",
      "tree": "b66615256ee7a7eeac8a7e54c54c2fd872a3fdd0",
      "parents": [
        "c620796251df712274c16858c76628d802bbb4b1",
        "611ebb95e76c230214780b7b583b8a3c5277ac7a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 16 23:52:19 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 16 23:52:19 2018 +0000"
      },
      "message": "Merge \"Revert \"audioflinger: implement silenced capture for mmap\"\" into pi-dev"
    },
    {
      "commit": "611ebb95e76c230214780b7b583b8a3c5277ac7a",
      "tree": "1c8ef30309a0954a51a6b4c872f30ca399f064d2",
      "parents": [
        "a2f478ca0b2bda8db9b321f0cfa9e9d3cf6130f9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 16 19:43:59 2018 +0000"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 16 19:43:59 2018 +0000"
      },
      "message": "Revert \"audioflinger: implement silenced capture for mmap\"\n\nThis reverts commit a2f478ca0b2bda8db9b321f0cfa9e9d3cf6130f9.\n\nBug: 78118584\nChange-Id: Ie0da3dea445f2474c7a889c5f9919305c1c96d40\n"
    },
    {
      "commit": "730b926555ccb9ad5f7d4c47bf01ade526cceef0",
      "tree": "86d3404a2113dca7252c57f56829ec73d8569690",
      "parents": [
        "c4b259a584be3e7dc9aad83e0ead06c913ceb998"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 29 15:01:26 2018 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 16 12:16:16 2018 -0700"
      },
      "message": "Make AudioPolicyManager::getInputForDevice prefer profile match on input fast flag\n\nBug: 77292903\nTest: log name of selected profile\nChange-Id: Idad75627f399f01f353d49d5fd78d7cdb2953d60\n"
    },
    {
      "commit": "d25975fd2a84fa2bdc2f1b230d8ce1b3ffb683db",
      "tree": "dea0abd4e315faf0f7d8db96d54ec3749a1f59e6",
      "parents": [
        "476d050d3d4044b78a37b98411e33cc5f92d9b2d",
        "258fb48d1498c8d34d6877700db993938cc89f71"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 13 08:21:28 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Apr 13 08:21:28 2018 -0700"
      },
      "message": "Merge \"audio policy: make input device selection more consistent\" into pi-dev\nam: 258fb48d14\n\nChange-Id: I0a66540bd05d6e376fde5e24c5a2bdf0f1776a95\n"
    },
    {
      "commit": "258fb48d1498c8d34d6877700db993938cc89f71",
      "tree": "cec857b4eae1562b17b5a1e37faeadd3cbe2064b",
      "parents": [
        "c16f23e399969e9d82f0b245afb0870fa448e78e",
        "dc95a25769edbe9c47efd1e25962dbd399056157"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 13 15:14:34 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 13 15:14:34 2018 +0000"
      },
      "message": "Merge \"audio policy: make input device selection more consistent\" into pi-dev"
    },
    {
      "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": "476d050d3d4044b78a37b98411e33cc5f92d9b2d",
      "tree": "8bed5d50f8d97ebbb323e0ff3564cdba0d708a3c",
      "parents": [
        "43e143a93a1a730354ed0913c73b50a614599981",
        "c16f23e399969e9d82f0b245afb0870fa448e78e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 12 18:22:59 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 12 18:22:59 2018 -0700"
      },
      "message": "Merge \"audioflinger: implement silenced capture for mmap\" into pi-dev\nam: c16f23e399\n\nChange-Id: I14571f66f097e067edc8b93f0eeaf2c778f1c962\n"
    },
    {
      "commit": "a2f478ca0b2bda8db9b321f0cfa9e9d3cf6130f9",
      "tree": "00e39e41acac99cc35c292c65c7bca60973fdd5a",
      "parents": [
        "9fc25229e0723c93b453ab34957f22a643e2b602"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 10 19:09:40 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 11 19:07:45 2018 -0700"
      },
      "message": "audioflinger: implement silenced capture for mmap\n\nImplement silencing of audio capture for idle UIDs for\nMMAP streams.\n\nUse audio HAL setMicGain() API to silence the mmap buffer for\nexclusive mode and when only one client is active in shared mode.\n\nAdd new MmapStreamCallback method onStreamSilenced() for AAudio\nservice to selectively silence streams from silenced UIDs in\nshared mode.\n\nBug: 72134552\nTest: manual\nChange-Id: I7c92ba0002bc5ba003c1a3c887edddf9ae53b538\n"
    },
    {
      "commit": "2c4019fab93d23523b07820ecf21f30849b78f1f",
      "tree": "a46a309917c64ea9591c3816fc8670fa0edc43fc",
      "parents": [
        "18008a8b4560bb421a90f2cd5fbc2c9e0fffc142",
        "4354cf89469067ef9a264d67b4bfef35213fa60a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 09 12:20:50 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Apr 09 12:20:50 2018 -0700"
      },
      "message": "Merge \"audio policy: fix notification + voicemail routing\" into pi-dev\nam: 4354cf8946\n\nChange-Id: I9d2a33601be09730530b05343f43570438976ed7\n"
    },
    {
      "commit": "4354cf89469067ef9a264d67b4bfef35213fa60a",
      "tree": "05578bff5e5334784f0dc036b11059cc6933c188",
      "parents": [
        "fa33327eb3b81bf1f2173bef0d13ced98b1221c1",
        "7731b5add3a8ba0f57d8f4b299ba7a432ecc7119"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 09 19:00:14 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 09 19:00:14 2018 +0000"
      },
      "message": "Merge \"audio policy: fix notification + voicemail routing\" into pi-dev"
    },
    {
      "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": "42a6dd5492869f33f42faa86cee4be3ee8395239",
      "tree": "363e9e674ae392346a4622beaecad15a3db57718",
      "parents": [
        "eead9b0533a7bdee199e93cff112e37bce5bc313",
        "2383098d54b6503875bdf0c6b649fa66f22d79ac"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Apr 05 11:48:02 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 05 11:48:02 2018 -0700"
      },
      "message": "Merge \"Clear input routing when closeAllInputs().\" into pi-dev\nam: 2383098d54\n\nChange-Id: Ic35aca73024b4676d1776e2532b45f4d33781607\n"
    }
  ],
  "next": "829a00bd6e54ce78fe1a28d8739988e24ec4ab6d"
}
