)]}'
{
  "log": [
    {
      "commit": "3c03c8ba1504003f25ee04b49609eb10b20e1bdf",
      "tree": "78956d959c2684a79768a6dffca77bdc7d561dbc",
      "parents": [
        "8dd9d107e9056283bc38c5921cff29c481adc99f",
        "245cdd91559873aeacf21b7c780655ef43c01682"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 12 22:38:27 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 12 22:38:27 2018 +0000"
      },
      "message": "Merge changes Ic5f780de,I3f963307\n\n* changes:\n  Support audio-haptic coupled playback.\n  Add buffer provider that can adjust channels.\n"
    },
    {
      "commit": "245cdd91559873aeacf21b7c780655ef43c01682",
      "tree": "336ec5eaea56659c21e9441c0d2b5a03102b9b32",
      "parents": [
        "dce8f8cc41cb6be63d13ad0099d61807746ff5d7"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Dec 07 17:55:15 2018 -0800"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Dec 12 11:33:47 2018 -0800"
      },
      "message": "Support audio-haptic coupled playback.\n\nWhen trying to play with haptic channel mask, use adjust channels\nbuffer provider to make the haptic channel the same as the output one.\nIf haptic playback is supported, use adjust channel non destructive\nbuffer provider to output haptic data to the end of the sink buffer.\nOtherwise, haptic data will be ignored.\n\nTest: Manually\nBug: 111454766\nChange-Id: Ic5f780de48c1e71de6ba5c4774d1ed2e9c8c51a0\n"
    },
    {
      "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": "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": "0209452544dfd347de2ddb4e8cfaf89f51bc039c",
      "tree": "0acbac2e5800fb862f703dde637c61a8ee5027f6",
      "parents": [
        "b852e79b827e0a78f9ea20ab44603031dcc8f1b5",
        "f054fc342205c670b0b88c5040da196aefd0164a"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Dec 07 01:01:56 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 07 01:01:56 2018 +0000"
      },
      "message": "Merge \"AudioFlinger: add check for NULL mInput in MMAP Thread\""
    },
    {
      "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": "f054fc342205c670b0b88c5040da196aefd0164a",
      "tree": "6d5556e581185e1a7f20646a22d9facf44cfc7dd",
      "parents": [
        "b079c02b1fa4f1b5c5b6334b93af584797b4454f"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Dec 06 09:45:59 2018 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Dec 06 09:45:59 2018 -0800"
      },
      "message": "AudioFlinger: add check for NULL mInput in MMAP Thread\n\nexitStandby() was crashing if headphones were\nunplugged between the open and start of a MMAP stream.\n\nBug: 120564294\nTest: see repro steps in bug\nChange-Id: Ic42743682ffeb48f2869eaa90581b4e4f7fcb1ab\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": "f4a342abd2959904caa18b5a0671e8107581ff24",
      "tree": "bd8a54b016803bbc5e08a47f250f093e7036d0f4",
      "parents": [
        "e8c8b4359835a12a3d1bf84f281c36bce031bb33"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Dec 04 08:55:41 2018 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Dec 04 08:55:41 2018 -0800"
      },
      "message": "Fix potential nullptr dereference in RecordThread::dumpInternals\n\nThe code introduced in ag/5195499 can deref a nullptr.\n\nBug: 117299316\nTest: make\nChange-Id: I6d38f769e583a11d09c137d7b7a1ffd0b547f161\n"
    },
    {
      "commit": "63d2d774249b0f06b2f1b0eae79e844d92fb96ac",
      "tree": "92e223e69d84d865bcb44481dd1613ff4f705c27",
      "parents": [
        "1268b28c5c65691532d3ffb503a199c677c801b9",
        "5d3d956d695cac9551ecffd4ec33f56a7ab40989"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Dec 03 21:12:21 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 03 21:12:21 2018 +0000"
      },
      "message": "Merge \"AudioFlinger: Remove latency reporting for AUDIO_INPUT_FLAG_HW_AV_SYNC\""
    },
    {
      "commit": "ac917aca235ff5170f00c2ee933f41f07a40232d",
      "tree": "2927cc6419b7fe615ccdc977224f6f3ed656f58e",
      "parents": [
        "e4eb88fa5fe62a9b6b709fbf2ff26f37acf6db20"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Nov 28 14:03:52 2018 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Nov 28 14:44:17 2018 -0800"
      },
      "message": "Add selectPresentation API to IAudioTrack\n\nThe Java AudioTrack interface has a setPresentation API. This\ncalls the setParameters API in IAudioTrack. However, this does\nnot eventuate into a call into the android.hardware.audio@4.0\nIStreamOut selectPresentation API.\n\nAdd selectPresentation API to IAudioTrack and call down to the\nandroid.hardware.audio@4.0 IStreamOut selectPresentation API.\nTranslate into calls to setParameters API for legacy HAL\ninterfaces.\n\nBug: 63901775\nTest: compile\nChange-Id: Id634a107f3f93ab18dc80d2bd0af67bda35e859f\n"
    },
    {
      "commit": "30d284228310e1f086d6ff82893882b466c019f0",
      "tree": "f45d6747e0fe070ec4774e30a24311a8f71577bc",
      "parents": [
        "0332f621e2e65e7edddd6e9bacd874f429de8061"
      ],
      "author": {
        "name": "Dean Wheatley",
        "email": "dwhea@dolby.com",
        "time": "Tue Nov 06 10:27:40 2018 +1100"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Nov 15 02:17:55 2018 +0000"
      },
      "message": "Offset direct/offload timestamps by downstream latency\n\nTest: A/V sync of direct/offload DD+ non HW A/V sync playback thread\n      through MSD, and MSD -\u003e Audio HAL patch in DD+ non HW A/V sync\n      mode.\nChange-Id: I244e9fda9741fe9a9ea913f39901654ebefb973c\n(cherry picked from commit 8729c2eb3eabda3f6b6985a113bd2022b5b379c9)\n"
    },
    {
      "commit": "6aa0a3104e18ac318f75c13e32af05cdd077a356",
      "tree": "6f11104a3c11808cc10ef090ccc4a03335887293",
      "parents": [
        "158ce41988f3706465514265eed1d7e4b6fb123c"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Nov 09 11:00:01 2018 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Nov 13 10:41:57 2018 -0800"
      },
      "message": "audio: Allow higher downstream latency\n\nIncrease allowed downstream latency to 5 seconds.\n\nSometimes software patch might cause \u003e1 second of latency.\n\nBug: 63901775\nTest: MSD prototype\nChange-Id: Ie111fa8b87bc7694ef787c6c4b1deca81bda2abb\n"
    },
    {
      "commit": "ce685406448709895391dcc83a75fa165a72174e",
      "tree": "a4a1490819ffce35bd113ca96b905ff83de168e0",
      "parents": [
        "b5be68edecd62d8edbf86fd4858d1ceb81a74b6c"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Oct 05 17:23:27 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Oct 15 18:53:25 2018 -0700"
      },
      "message": "AudioRecord: Clean up state handling\n\nHandle spurious wakeups in stop.\nHandle track invalidation.\nClarify state.\n\nNote: start and stop should not be called simultaneously from different\nbinder threads.\n\nTest: audio sanity\nBug: 117303225\nChange-Id: I587d9cda7b0eac5215eb6a88f93ee08e396e3ef9\n"
    },
    {
      "commit": "5d3d956d695cac9551ecffd4ec33f56a7ab40989",
      "tree": "abde7e0f65bb718fe56e4b81ba4cfe82ab1fa826",
      "parents": [
        "d10b735cfd4eea74846bb5f53d37c8c2a3114d58"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Oct 04 19:27:26 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Oct 04 19:40:51 2018 -0700"
      },
      "message": "AudioFlinger: Remove latency reporting for AUDIO_INPUT_FLAG_HW_AV_SYNC\n\nTest: No regression\nBug: 117299316\nChange-Id: I8f7c70454baf93f36e87ea98ba795beea8d75678\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": "9e2376ebbe9d9ddf5e692ce4e340aafb6a56b890",
      "tree": "eabe8df6826f6ff33a2f1db2d32398814eec742f",
      "parents": [
        "a9e84bc851221c34c0a8a3355636fa7b38efa3a5"
      ],
      "author": {
        "name": "Daniel Van Veen",
        "email": "dvanv@dolby.com",
        "time": "Thu Sep 27 14:37:58 2018 +1000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Sep 27 11:05:24 2018 -0700"
      },
      "message": "audio: Fix memcpy num bytes for direct RecordThread\n\nThe num bytes to copy was missing frame size multiplier.\n\nTest: MSD prototype\nBug: 63901775\nChange-Id: I1606bcf41b81d841f39b19512cc7b019c50662d5\n"
    },
    {
      "commit": "2942a4e2d97edb8b14d7fac16f9cad12f78048bc",
      "tree": "97f3fd66a453766e390a4bba7e9c863834855ce8",
      "parents": [
        "ea055e6dab6bcbf9bf90711d602bcf59395f0d59"
      ],
      "author": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Wed Sep 12 17:41:27 2018 -0700"
      },
      "committer": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Tue Sep 18 17:32:33 2018 -0700"
      },
      "message": "Remove --json option from dumpsys media.audio_flinger\n\nThe more recent work that this was supposed to become is reflected in\ndumpsys media.log, so this commit removes some code clutter that is not\nused anymore.\n\nOther Changes:\n- Use std::make_unique for creating unique_ptr objects\n\nTest: build, dumpsys media.audio_flinger\nBug: 68148948\nChange-Id: I4841e118c2cdee4ada4c6cdc0fff1ec2e12b38c4\n"
    },
    {
      "commit": "c8e0e91ab96014861840010b45330d3865e0ae80",
      "tree": "f8b179578bbc18a7df94bb4d59d5a0b897192afe",
      "parents": [
        "718279d64684126d4607e02d98071ec4a8556fde",
        "0513b5dfd08a813dd29b95b79e5a52677500206f"
      ],
      "author": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Tue Sep 18 17:56:08 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 18 17:56:08 2018 +0000"
      },
      "message": "Merge changes If9771427,Idde42ba6\n\n* changes:\n  Add options to dumpsys media.log and dump visualizations\n  Improve ReportPerformance::Histogram implementation and add drawing\n"
    },
    {
      "commit": "0513b5dfd08a813dd29b95b79e5a52677500206f",
      "tree": "4f780d0d72ace741eaf3bc3631f353452dc357f8",
      "parents": [
        "cfa7c4b96ced4a086bffabdd4394fb19c9400524"
      ],
      "author": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Mon Sep 17 10:32:48 2018 -0700"
      },
      "committer": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Mon Sep 17 18:29:49 2018 -0700"
      },
      "message": "Add options to dumpsys media.log and dump visualizations\n\nOther Changes:\n- added thread_params_t type to NBLog\n- rearranged ordering of macros in TypedLogger.h\n\nTest: dumpsys media.log with --json, --pa, and --plots options\nBug: 68148948\nChange-Id: If97714271a085a99bba0ab3ae0c268a9f407f053\n"
    },
    {
      "commit": "17a4a0feba513a721b23edeb9a915e4ce87b58a8",
      "tree": "8def40ef260d85ecf5414654a2af5cc1a7e3a94c",
      "parents": [
        "bd9b5935fdbd67d3eaf124e3e80470b8cae1ecd1",
        "d06ae78ee7169fc80c8a29390b2156e33c846c08"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Sep 17 16:44:40 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Sep 17 16:44:40 2018 -0700"
      },
      "message": "Merge \"Suppress implicit-fallthrough warnings in audioflinger etc.\" am: a494bb1527 am: 8662f3b9a2\nam: d06ae78ee7\n\nChange-Id: Iee095b6e1278d372b3a7c171f926bd730dbc388b\n"
    },
    {
      "commit": "2b48703770efab81143d389d7389166eb1a6c8db",
      "tree": "f309a4bbfbb4f716dee1af20f82ca95aa04b907e",
      "parents": [
        "f8d13dee65d3708ea527e9f565be85031d7021ba"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Sep 13 14:16:02 2018 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Sep 17 12:50:12 2018 -0700"
      },
      "message": "Suppress implicit-fallthrough warnings in audioflinger etc.\n\nAdd FALLTHROUGH_INTENDED for clang compiler.\n\nBug: 112564944\nTest: build with global -Wimplicit-fallthrough.\nChange-Id: I8875bc7ed073aae84d5df97eb39c8c745ca627ef\n"
    },
    {
      "commit": "c06913801424b90dfbc94b401039352869f20e3e",
      "tree": "5b648a0897db335b91c9365bdd2ba01d0eb708e6",
      "parents": [
        "867f39f2797ae01139fe956fe4f029548de4d662"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Sep 12 18:01:57 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Sep 13 10:44:18 2018 -0700"
      },
      "message": "AudioFlinger: Replace track name with id\n\nSimplifies Mixer handling, makes debug messages consistent.\n\nTest: Audio sanity test, check logcat\nBug: 115435564\nChange-Id: I216e2746170605dfb7994ac660c5534869e887fe\n"
    },
    {
      "commit": "dfb411f91668972faddfc3d175bd3c95ce29673e",
      "tree": "df481e8f5dc63df36dc8a469d6e248383f9beba1",
      "parents": [
        "aec9c3e4b573862dacb4b4cec4c87cf736a3a28e"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Sep 11 13:39:56 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Sep 11 13:39:56 2018 -0700"
      },
      "message": "Audioflinger: Dump \"master mute\" state in threads\n\n\"Master mute\" which can be toggled on via \"ro.audio.silent\" property\nhas user-hearable effect, but is not reflected in the dumpsys.\nThis can cause confusion (see the bug referenced).\n\nNote that we need to dump PlaybackThread::mMasterMute, not\nAudioFlinger::mMasterMute, as the latter does not get updated\nby threads in order to avoid taking a lock.\n\nBug: 113348789\nTest: toggle property, check media.audio_flinger dump\nChange-Id: I7f276b233df2f5eca585ffb30031835c030858e1\n"
    },
    {
      "commit": "0c167267e1dd521a1288bd1746c42b0680ab5b88",
      "tree": "24f78cc75a992dd5a2865408f26591326769cc3a",
      "parents": [
        "88d5a224a3727ae03ff1bed629912435620fbc39",
        "97f00044dc1553b4baa0f94d5e6acbf1a552c115"
      ],
      "author": {
        "name": "Tomoharu Kasahara",
        "email": "tomoharu.kasahara@sony.com",
        "time": "Thu Aug 16 20:44:07 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Aug 16 20:44:07 2018 -0700"
      },
      "message": "Merge \"Set volume for output when effect is enabled/disabled.\" am: e778547997 am: e414f58cf5\nam: 97f00044dc\n\nChange-Id: I5430650ffe90b7f4f38ba97d85df91a2262420c7\n"
    },
    {
      "commit": "1990bd40ebb6fcbb876fae42e43792b9dc6d308b",
      "tree": "533950b805a77a744c2100b9c286059406ace779",
      "parents": [
        "34affaed9cc6374e979e3bd29ccfe1671694bfe9"
      ],
      "author": {
        "name": "Tomoharu Kasahara",
        "email": "tomoharu.kasahara@sony.com",
        "time": "Fri Dec 12 14:04:11 2014 +0900"
      },
      "committer": {
        "name": "Tomoharu Kasahara",
        "email": "tomoharu.kasahara@sony.com",
        "time": "Thu Aug 16 17:42:13 2018 +0900"
      },
      "message": "Set volume for output when effect is enabled/disabled.\n\nEven though effect module has \"EFFECT_FLAG_VOLUME_CTRL\" flag,\nthere is some case where volume setting is not sent to offload thread.\nThat leads to sudden increase of audio volume or too low volume.\nThis change is to support delegation of volume control completely\nfor offload audio effect.\n\nBug: 37443095\nTest: Enable/Disable Audio effects during offload playback\nChange-Id: I7033071edc99fadc519efd7adc895dc10f7b9d86\n"
    },
    {
      "commit": "2dbffc2af5e200dbddfa1aeb79569e7811dfbc9a",
      "tree": "4dad85d78b86420b84000686f13d4de995623eff",
      "parents": [
        "c8fddf3dc6a1d51058d9d3b207e818e84ac80fed"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Aug 08 18:50:41 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Aug 13 18:21:03 2018 -0700"
      },
      "message": "AudioFlinger: Incorporate downstream patch latency into timestamps\n\nAvailable for MSD BUS devices.\n\nTest: MSD YouTube playback and audioflinger dumpsys\nBug: 112435419\nChange-Id: Ifd35b68a77464e0db79ad1ed50b72b00a616c253\n"
    },
    {
      "commit": "c8fddf3dc6a1d51058d9d3b207e818e84ac80fed",
      "tree": "d75a5b3a7a8a47af6e009a67659cb1aad08c3caa",
      "parents": [
        "30282562329b3031b6bfa0869bd76ff5f543ebba"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Aug 08 18:32:37 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Aug 13 18:19:36 2018 -0700"
      },
      "message": "AudioFlinger: Add timestamp correction to MSD BUS Threads\n\nTest: MSD YouTube playback\nBug: 112431914\nChange-Id: Ic15ace24d6ab3613be08978b925fd7b9dc7aef38\n"
    },
    {
      "commit": "3488ab97b8fd9d002f6092e1424de9a519e64039",
      "tree": "45a9cc3dc6149f218b9f881d3cc12b007ec74489",
      "parents": [
        "0fe90f2954e897fd13418ce978f3864766b301c7",
        "7f39f56e33bc0feb5188cc0372e0be69239ba78f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 10 00:43:06 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 10 00:43:06 2018 +0000"
      },
      "message": "Merge \"AudioFlinger:  Do not show latency for non-PCM record in dumpsys\""
    },
    {
      "commit": "6427e44be65e3b2fed6da30b4e442d25fe7769ec",
      "tree": "6ed2472bc21023ebc436d531d17e9036e4b5af1b",
      "parents": [
        "66aa339f416e907aa704bb01ac55d109c8bbca38"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Aug 09 12:51:02 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Aug 09 16:20:03 2018 -0700"
      },
      "message": "AudioFlinger: Add record frames read to dumpsys\n\nAllows comparison to playback frames written for patches.\n\nTest: audioflinger dumpsys\nChange-Id: I2ef0ccbc36819d48b05756115de70f5a24a2c2cd\n"
    },
    {
      "commit": "7f39f56e33bc0feb5188cc0372e0be69239ba78f",
      "tree": "c80bffac38de0e373d6455b46ae5ff382a2c33eb",
      "parents": [
        "a29488990bcb34a2723ec4ece2ea34f714070f5f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Aug 08 17:30:20 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Aug 09 23:08:30 2018 +0000"
      },
      "message": "AudioFlinger:  Do not show latency for non-PCM record in dumpsys\n\nTest: Check AudioFlinger dumpsys during MSD direct record\nBug: 112388863\nChange-Id: Id404c70af0c0e23a1e349522568b20f50573b1e9\n(cherry picked from commit 2ceaf3dee96d1696b315afdee9ffc0df662f88d8)\n"
    },
    {
      "commit": "442868f036df6e9966f824ec256619b2923a9ed4",
      "tree": "f823452661efd87177897ba4b82d32ef944fd6ec",
      "parents": [
        "4455af941c4d33859215b836ac03571ee7a360cf",
        "1882f16c80d6e1e047a43c1e685a005034b138e4"
      ],
      "author": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Fri Aug 03 23:58:32 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 03 23:58:32 2018 +0000"
      },
      "message": "Merge \"Audioflinger dumpsys: Use libjsoncpp for json dump\""
    },
    {
      "commit": "1882f16c80d6e1e047a43c1e685a005034b138e4",
      "tree": "29fb74695be6d869ca6a0f51e310e6752eb8c36b",
      "parents": [
        "5b13ff8f66e4b376127af9cfb6fa3f075f17eaa2"
      ],
      "author": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Thu Aug 02 18:05:39 2018 -0700"
      },
      "committer": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Fri Aug 03 15:44:15 2018 -0700"
      },
      "message": "Audioflinger dumpsys: Use libjsoncpp for json dump\n\nTest: dumpsys media.audio_flinger --json\nBug: 68148948\nChange-Id: Ieebe2c52e3613e48a5ec5cbb2b1f167a32d5a47d\n"
    },
    {
      "commit": "156317a32323b8a3826a6e9e9eec49b9049c14bd",
      "tree": "b8ca88f5f4269cb6d001cbe8c911b346cca8c2c0",
      "parents": [
        "7f1732ee0d2c0571f8a00cd6ccbaa74cf8dd260c"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Aug 02 11:49:29 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Aug 02 11:49:29 2018 -0700"
      },
      "message": "AudioFlinger: Remove unnecessary computation\n\nTest: Build and basic record sanity\nBug: 112142872\nChange-Id: Ibfc0c715930593c23e58acd4afda6986d69d53b2\n"
    },
    {
      "commit": "978dcac6101c416158ca234e6ef01baa861bbcd0",
      "tree": "77eab020fb6e9d933facfe37b4018b941ccf7128",
      "parents": [
        "1441fdc2037c00bf9106dad98dcd7a02886fbd02",
        "16698b8c36aa6cba8a3dab3432cbed361264a509"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Aug 02 16:42:06 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 02 16:42:06 2018 +0000"
      },
      "message": "Merge \"AudioFlinger: Update namespace for Statistics\""
    },
    {
      "commit": "16698b8c36aa6cba8a3dab3432cbed361264a509",
      "tree": "b908af64a0a93b58b7265cd903e3167c74262345",
      "parents": [
        "965737edc28bd76f6424f9ff4c1f0315f28a0434"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Aug 01 10:48:38 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Aug 01 10:48:38 2018 -0700"
      },
      "message": "AudioFlinger: Update namespace for Statistics\n\nTest: Build and basic sanity\nBug: 80502521\nChange-Id: I4f9180d1eb1eb53b75bf6fdb9f98cdcb03b6e9f2\n"
    },
    {
      "commit": "d02904c6d5b30d2e32cdd57495c4a182b6187b32",
      "tree": "b34a28279a94ae1c1e8fa3c92e047d9fad96beea",
      "parents": [
        "965737edc28bd76f6424f9ff4c1f0315f28a0434",
        "01c8f5681ce875bb60b6451929bb3fbd0876ca61"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 01 17:47:49 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 01 17:47:49 2018 +0000"
      },
      "message": "Merge \"Use fast mode with patch track and patch record if possible.\""
    },
    {
      "commit": "01c8f5681ce875bb60b6451929bb3fbd0876ca61",
      "tree": "eb31a887a84e973ead1f4266a4a8f45db9909306",
      "parents": [
        "88585f96fe27f60c8c90699466f9da80fca6d658"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Jul 19 17:47:28 2018 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Jul 27 16:20:49 2018 -0700"
      },
      "message": "Use fast mode with patch track and patch record if possible.\n\nUse fast mode with patch track/patch record if fast mixer/fast capture\nis enabled. With the fast track and fast mixer/fast capture, we can get\na better performance on latency.\n\nBug: 111800664\nTest: make phone call on marlin/walleye with enabling legacy usb hal\nChange-Id: I0edd5978049e7c55da217a7a19e45fcbe5c3ac62\n"
    },
    {
      "commit": "5b13ff8f66e4b376127af9cfb6fa3f075f17eaa2",
      "tree": "e2f3cd20f0d8dc994356e5b5451492360b3481ba",
      "parents": [
        "19283e9de83b5ade80a93b43589ea9a799414290"
      ],
      "author": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Fri Jul 27 11:20:17 2018 -0700"
      },
      "committer": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Fri Jul 27 14:32:42 2018 -0700"
      },
      "message": "audioflinger: Replace cpustats/CentralTendencyStatistics with audio_utils/Statistics\n\nRevert CPU_FREQUENCY_STATISTICS macro in Configuration.h.\n\nTest: build with different #define, dumpsys media.audio_flinger\nChange-Id: I91680c462b069779d8db3b7a10603fb11a81a135\n"
    },
    {
      "commit": "39ec8d62f75ffcf216714856aeab073c878b0abe",
      "tree": "1c4640f0e895eafe14bfb6e456f6138293384c1d",
      "parents": [
        "a2a19382e5870fb133b56dacc7ff3048cdaa407d"
      ],
      "author": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Tue Jul 24 09:49:29 2018 -0700"
      },
      "committer": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Tue Jul 24 09:49:29 2018 -0700"
      },
      "message": "audioflinger Threads.cpp: size() \u003d\u003d 0 -\u003e isEmpty().\n\nClean up PerformanceAnalysis.cpp reportPerformance code.\n\nTest: build, dumpsys media.audio_flinger\nChange-Id: I1e89b16872384e589b2060272daa3116184ec4d8\n"
    },
    {
      "commit": "a746b36f237e6b05b207afac9a507cc706f5cdc6",
      "tree": "15cbe3725413b1345c5684c5e908620879f85482",
      "parents": [
        "c3fd2a4396d692d9940b09e7a933b53bc808daab",
        "7b651154476414dcb15b822a9ebea2b4bf25cd3d"
      ],
      "author": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Sat Jul 21 00:31:51 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jul 21 00:31:51 2018 +0000"
      },
      "message": "Merge \"dumpsys: add --json option to media.audio_flinger.\""
    },
    {
      "commit": "7b651154476414dcb15b822a9ebea2b4bf25cd3d",
      "tree": "04ebf92f0b3181d4cfbcb3cf460ddd5f9fb2a846",
      "parents": [
        "8180b74a8e2c02eee7938b32fd0ecfeda53c91be"
      ],
      "author": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Fri Jul 13 10:17:19 2018 -0700"
      },
      "committer": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Fri Jul 20 14:56:51 2018 -0700"
      },
      "message": "dumpsys: add --json option to media.audio_flinger.\n\nCurrently only extracting audio performance data.\n\nTest: dumpsys media.audio_flinger --json\nBug: 68148948\nChange-Id: If207e7e20683dcf8d8d5874417cd7466c78a5df0\n"
    },
    {
      "commit": "4aa394d12d519b0763b232e0e1d177c6795e0f9e",
      "tree": "27bd138bae4ba7a6d65aceeafc8e6593da53bd92",
      "parents": [
        "7eadbbc367d0df612c515146d5e066559d4b07eb",
        "d7fe086d3b45f088083170006367dfc4246f70b0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 17 21:30:49 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 17 21:30:49 2018 +0000"
      },
      "message": "Merge \"audio policy: refactor audio playback APIs\""
    },
    {
      "commit": "d7fe086d3b45f088083170006367dfc4246f70b0",
      "tree": "fa89edfbebbd2cffdccc0ab6f01caa9a06d02390",
      "parents": [
        "b05e9b139f8cc5c20f7e94d0a9cf2f7430b52cf2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jul 14 16:48:01 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 17 13:02:28 2018 -0700"
      },
      "message": "audio policy: refactor audio playback APIs\n\nRefactor audio policy service APIs controlling audio playback (startOutput, stopOutput, releaseOutput)\nTo allow finer grain control per AudioTrack client.\n\nTest: AudioTrack CTS test. manual test of playback use cases.\nChange-Id: I49a681f3c2a8211e524824993049b24d8086376d\n"
    },
    {
      "commit": "ce9f265fc4fe60ee24ae334b2e8123ffc2be0bea",
      "tree": "89b3e17e645874fc28956b6f70b330982cbf7f28",
      "parents": [
        "24b617232c7400c9165bde09542bdb41cb113089"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jul 16 11:09:24 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jul 17 09:26:51 2018 -0700"
      },
      "message": "audioflinger: Allow encoded PCM for RecordThread\n\nChange the fatal condition in AudioFlinger::RecordThread to info.\nRequire AUDIO_INPUT_FLAG_DIRECT when creating tracks on such streams\nfrom the client side. Note that PatchPanel uses PatchRecord constructor\ndirectly.\n\nBug: 63901775\nTest: on MSD prototype\nChange-Id: Ic94e51e6b8a089f3100131851db8c3ce0994b4ac\n"
    },
    {
      "commit": "f323451b24b06c4f3375488409af7c93ce08ba73",
      "tree": "593f3e5441d6f69e653e0d7a2e7fde1a2f5190b6",
      "parents": [
        "999ad2cf2a0a687abfb7ee147c3261f609cc4806"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jul 03 14:51:47 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jul 10 10:59:21 2018 -0700"
      },
      "message": "AudioFlinger: Dump Direct and Offload timestamp statistics\n\nTest: AudioFlinger dumpsys during offload playback\nBug: 80502521\nChange-Id: I8b4cb5eb47000a075a8ecaefdf4eb4c4ee23a304\n"
    },
    {
      "commit": "deb9827a463e77092fd96b4503f9fb50ee0468da",
      "tree": "cbf9b3e7b2933aedc5c4696e84d40d8fb847dd48",
      "parents": [
        "644c9d20cc6b0a08a104a3d56ac5dc1cf81b1b80",
        "2e2c0bbe19c4cc50ee9ae8bef7955229fe2fb058"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jun 26 18:10:12 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 26 18:10:12 2018 +0000"
      },
      "message": "Merge \"Timestamp: Collect and dump statistics\""
    },
    {
      "commit": "2e2c0bbe19c4cc50ee9ae8bef7955229fe2fb058",
      "tree": "c7c8defc8161838cd5f7dd8f3d221493a9d441ff",
      "parents": [
        "14dc10deebda497664a5ec0943c1083f64d2ed9d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jun 11 19:13:11 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jun 18 15:16:41 2018 -0700"
      },
      "message": "Timestamp: Collect and dump statistics\n\nTest: Audioflinger dumpsys\nBug: 80502521\nChange-Id: I8c7c8b0c2f0f51dc898ed96f6a973e20490022f1\n"
    },
    {
      "commit": "ecc422b33a983b0393aa33a6b1f580453a194c1f",
      "tree": "22a413b0a422c7e53d605f8b4c384ad28ca6d958",
      "parents": [
        "42c47a6a60e5bffc99f306b434cdce4befbc8cbc",
        "7c6ae98049e422454f6e9ea21d9d3fd6a7bfd217"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 15 18:38:47 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 15 18:38:47 2018 +0000"
      },
      "message": "Merge \"audioflinger: Add support for RecordTrack with no conversion\""
    },
    {
      "commit": "7c6ae98049e422454f6e9ea21d9d3fd6a7bfd217",
      "tree": "06f9d2dc1df52505e59968677bc1dc8d042a1e55",
      "parents": [
        "495d8f29c82be95d499f8897311411ccc74ec52b"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jun 14 12:33:38 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jun 14 17:03:06 2018 -0700"
      },
      "message": "audioflinger: Add support for RecordTrack with no conversion\n\nWhen piping encoded audio data via software patch, it needs\nto be created without the buffer converter. In this case the audio\ndata is copied directly from ResamplerBufferProvider.\n\nAdded input flag AUDIO_INPUT_FLAG_DIRECT to indicate to PatchPanel\nthat the PatchRecord track needs to be opened in this mode.\nThis flag can be later added to minor Audio HAL update.\n\nBug: 63901775\nTest: MSD scenario; verified that phone over USB headset still works\n      on marlin / sailfish\n\nChange-Id: If2745778d356769b143fb3c29910275ddef119ac\n"
    },
    {
      "commit": "79a7782b708920dbe5cf7167601bcabb39f6c074",
      "tree": "15b62326c6b079cfe9586a2759e0f94ca37807aa",
      "parents": [
        "495d8f29c82be95d499f8897311411ccc74ec52b"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu May 10 15:57:25 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jun 14 09:02:26 2018 -0700"
      },
      "message": "Increase RecordThread heap size\n\nWhen creating a software patch for transporting encoded\naudio (AC3), the old heap size was not sufficient.\n\nBug: 63901775\nTest: check for \"not enough memory for pipe buffer\" log message\n      while creating a patch for transporting AC3\nChange-Id: Idb0b2604f35f00e65e28bf8c066f6d861b2dd3c9\n"
    },
    {
      "commit": "495d8f29c82be95d499f8897311411ccc74ec52b",
      "tree": "23e0f0c1fc5af2b845f1434672602689a8b445bf",
      "parents": [
        "7048c863f5cc4eb793bb96fd8e37da5107208e26",
        "5f2136e6323c1e241c918a59cd06e715480241cb"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 13 15:36:21 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 13 15:36:21 2018 +0000"
      },
      "message": "Merge \"AudioFlinger: Log audio attributes in dumpsys\""
    },
    {
      "commit": "5f2136e6323c1e241c918a59cd06e715480241cb",
      "tree": "e79e161a8adce8ea6722def58dd64933078ab6ab",
      "parents": [
        "70b576df7d88c2d5843fc31eb726ed7c33c1af89"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri May 11 22:03:00 2018 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Jun 12 19:16:38 2018 -0700"
      },
      "message": "AudioFlinger: Log audio attributes in dumpsys\n\nTest: adb shell dumpsys media.audio_flinger|grep FrmRdy -A1\nChange-Id: I47d402133ab30d0f2276577d2b51c30956f873c6\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "5c6fdc586f5503d24c25b286ee02561b01b94fd2",
      "tree": "30d7f6f2bd084514077813300b6a4dabe1a6ad18",
      "parents": [
        "e9d3429a35068c50592060dc14bd55e5fed39dbf",
        "9b11c026344077dab9591bb8b9afdf3e7bd93eb1"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 08 01:48:27 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 08 01:48:27 2018 +0000"
      },
      "message": "Merge \"sound trigger: more checks on IMemory received from client\""
    },
    {
      "commit": "9b11c026344077dab9591bb8b9afdf3e7bd93eb1",
      "tree": "44bd2406c5d45c730437b4003535983df4d404f9",
      "parents": [
        "7e19897b405318df20eccb1d697a8ecccd70fbc7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 06 19:19:22 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 07 16:50:45 2018 -0700"
      },
      "message": "sound trigger: more checks on IMemory received from client\n\nAdd a verification on actual size of the fd backing up the IMemory\nrecevied for sound model or recognition config.\n\nFix similar problem for AudioTrack shared buffer.\n\nBug: 78596657\nTest: run POC. OK Google regression.\nChange-Id: I7cb02785f8ba46c437c7fcaa5b821f4b7e3240a0\n"
    },
    {
      "commit": "1c86ebe110381daa6b05d07020fb75f166280f34",
      "tree": "3fb0e5e985a35d01ad428098d4cadb1f66a03b0a",
      "parents": [
        "dfc0730c3375c64b001b5672eedf94a2dbda59e1"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 29 20:29:08 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jun 07 09:58:09 2018 -0700"
      },
      "message": "AudioFlinger: Add latency information for duplicating threads\n\nTest: Bluetooth and ringtones\nBug: 80447941\nChange-Id: I0af9090f08636609e4c5a8c47d1d4c10f446746d\n"
    },
    {
      "commit": "000adb5e9135a739b5e3a0607604cdf6be6fe11b",
      "tree": "9d751b3c072179e53bf4b9796f72dc9958dd55c6",
      "parents": [
        "cef2daaf49e8802e3377ebc604012aa244b7231a"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 01 15:43:26 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jun 04 10:30:06 2018 -0700"
      },
      "message": "AudioFlinger: Add latency information for RecordTrack\n\nTest: audioflinger dumpsys\nBug: 80493498\nChange-Id: I902783b7705f69f00a5f5bd713d93d8657ba3ccb\n"
    },
    {
      "commit": "cef2daaf49e8802e3377ebc604012aa244b7231a",
      "tree": "5cd12c0b322858c80d616b40d65bd7ecadc59eac",
      "parents": [
        "20bd30baf9fcd59e7000e7c626cc8bc1e85637bc"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 01 15:31:49 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jun 04 10:27:52 2018 -0700"
      },
      "message": "AudioFlinger: refine latency computation if track is drained\n\nUse server timestamp if track has no actively presented frames\n(i.e. drained). Sometimes track frames may not have reached the HAL.\n\nTest: audioflinger dumpsys with BT audio\nBug: 80447764\nChange-Id: Iffc52f4cfcbadd419c6b6ccfa278e0712f3af4af\n"
    },
    {
      "commit": "20bd30baf9fcd59e7000e7c626cc8bc1e85637bc",
      "tree": "fc3e7131fe247d2af15d28d0bf8bec419b2526f9",
      "parents": [
        "ace6feea9e956df06cfa75c0d2698c12d1477f34"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 01 15:39:35 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Jun 02 00:29:42 2018 +0000"
      },
      "message": "AudioFlinger: Add latency information for RecordThread\n\nTest: audioflinger dumpsys\nBug: 80493498\nChange-Id: I52e481432b73f019c4eea06f1e11e41ad8a79b5c\n"
    },
    {
      "commit": "1ee5077f7b6a0129492494aa55f92089c4cc2049",
      "tree": "5563effd5447c224ee873c1655f75c1e0fc52cf7",
      "parents": [
        "8f0e90accb88380dea7d99280aa25b1f18eae507",
        "32abc2bfbf3bc8db0bdcbdc0f700350d7a5bc547"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 31 00:51:45 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 31 00:51:45 2018 +0000"
      },
      "message": "Merge \"Use the new audio_port_config.flags field\""
    },
    {
      "commit": "32abc2bfbf3bc8db0bdcbdc0f700350d7a5bc547",
      "tree": "15f2b1791e1d27b28779b330392c7c1f0f97f5e4",
      "parents": [
        "f4d3741b3a721f8e1f72ec3ca2684efe22526d80"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu May 24 12:57:11 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed May 30 15:48:58 2018 -0700"
      },
      "message": "Use the new audio_port_config.flags field\n\n- When filling out audio_port_config from AudioPortConfig and\n  AudioFlinger\u0027s threads, populate audio_port_config.flags when needed.\n\n- When creating software patches, apply the flags provided\n  in audio_port_config_flags to the created threads.\n\nBug: 63901775\nTest: use USB headset for telephony on sailfish\nChange-Id: I7704797a84427f7a9431e5132b8f5c51538f9217\n"
    },
    {
      "commit": "f6ab58dfbc394e88115eb1483aaf47db91279981",
      "tree": "3a1c63e4a0e66fcb960201ec9852cc8c7e8dc8c0",
      "parents": [
        "59fef32845e5fec2f5c97c9637965b8c3ca24a6f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 25 12:50:39 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 25 14:03:16 2018 -0700"
      },
      "message": "AudioFlinger: Add latency measurements from timestamp\n\nReplaces main and aux buf from track dump.\n\nBug: 80272001\nTest: adb shell dumpsys media.audio_flinger\nChange-Id: I5d6565410e652ec7fc6701b171d299dea9f7bc3e\n"
    },
    {
      "commit": "ab5311412e7c5c6fca7de1beeb9a2d045dd3d470",
      "tree": "704af11d1927dfb97ab573e86a83ab93f346bcfc",
      "parents": [
        "775c5bc1e1dd6860299e3154bd4fffa3cf719b75",
        "bd3b2b01a297c913dea182f89a0009f9a2f83ab9"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 25 00:01:19 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 25 00:01:19 2018 +0000"
      },
      "message": "Merge \"AudioFlinger: remove false underruns if we retry for data\""
    },
    {
      "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": "bd3b2b01a297c913dea182f89a0009f9a2f83ab9",
      "tree": "88b8f21e83b52dcbb938e49d69c720e3c61d6e8e",
      "parents": [
        "acb7d9ddc1955682379ea514082511b9ea44482e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon May 21 10:53:11 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon May 21 14:31:51 2018 -0700"
      },
      "message": "AudioFlinger: remove false underruns if we retry for data\n\nTest: see bug\nBug: 79999301\nChange-Id: Ib35bd43ca59ea9f8857f08c5d6e7e3dbf68236a7\n"
    },
    {
      "commit": "8946a28aaaadf426ee22b098b4aec7be4d9edc00",
      "tree": "85a9520841616e8c1188d51fd44591543148e874",
      "parents": [
        "acb7d9ddc1955682379ea514082511b9ea44482e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 19 20:04:56 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon May 21 11:37:46 2018 -0700"
      },
      "message": "AudioFlinger: Fix Tee logging\n\n1) Fix bad WAV files for tee sources that aren\u0027t 16 bit PCM.\n2) Allow multiple RecordThread tees instead of one.\n3) Allow dump from non-fast MixerThreads (e.g. deep buffer).\n4) Parallelize tee dumping for improved concurrency;\n   dump outside of AF lock.\n5) Async dumping to allow dump to be issued in time critical code.\n6) Improve file naming to distinguish record vs playback tracks,\n   threads, and dump reason.\n7) Allow Tee insertion anywhere in code with global running\n   Tee management.\n8) Increase resolution of filename time to msec avoid file overwrite.\n9) Dump track data upon removal from active tracks to improve\n   timeliness of dumped data.\n10) Dump tee data on tee destruction.\n11) Refactor Tee code out of AudioFlinger.cpp; minimize footprint.\n\nAudioFlinger enabling code requires Configuration.h define TEE_SINK;\nthis is disabled, hence avoiding regression risk.\n\nTest: Enable tee log, repeatedly call dumpsys, examine files.\nBug: 78369241\nChange-Id: I7b22cfa7dbbc1601828de931522065a509ab4047\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": "ab7ef300b74904bce6c5c810d9e5679abfa582e6",
      "tree": "dadb05ba8da176c046139ca43c3fae48a14191c3",
      "parents": [
        "1f2bfd3ac9d61982acb348d2c78f95c7d4b0bf05"
      ],
      "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": "Wed May 16 18:49:09 2018 -0700"
      },
      "message": "Move ServiceUtilities from audioflinger to libmediautils\n\nTest: Play Music, Play Movies, Camera, Photos\nBug: 79485140\nChange-Id: Ib8382547828e386024145c416321d24e4af182db\n"
    },
    {
      "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": "6c529b103e2a4079295c39c32b7aedcbae3295c8",
      "tree": "58028bd1c4f94faf702c73b8f7e62845a3ab50b1",
      "parents": [
        "a75a00e57d5c88910d46a31ce3b23292c8d58e8b",
        "c9948499fe578a4f7a10af98eedbb807880f3d44"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 11 01:26:30 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 11 01:26:30 2018 +0000"
      },
      "message": "Merge \"AudioFlinger: Add missing channel names for thread dump\""
    },
    {
      "commit": "c9948499fe578a4f7a10af98eedbb807880f3d44",
      "tree": "52d6351b7ae725fbe40d6ef434c3e318d8b47d6c",
      "parents": [
        "99c58a82ce17440d3b050c8efbaa99f6db3f0668"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu May 10 17:25:28 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu May 10 17:25:28 2018 -0700"
      },
      "message": "AudioFlinger: Add missing channel names for thread dump\n\nchannelMaskToString in Threads.cpp was missing some of newly\nadded discrete channels.\n\nTest: adb shell dumpsys media.audio_flinger\nChange-Id: I09c60b0cbbf3e10bcac6bc30e47f5009e50ccc93\n"
    },
    {
      "commit": "2a669ce59f60dff63593b6ed93833161b199f0d9",
      "tree": "5c9bf357eaca159e6a3af23ba3dfb4d53f9102cb",
      "parents": [
        "08c80574ee6c3c5587098e13347f3aac3d475a08",
        "9382876687b3be53a09100c44c26c437652023a3"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 08 17:27:19 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 08 17:27:19 2018 -0700"
      },
      "message": "Merge \"AudioFlinger: Use actual MonoPipe depth for sleep computation\" into pi-dev am: d5fa1baa8b\nam: 9382876687\n\nChange-Id: Ia4007533ca86aa922f849b88e68dde5df60ede49\n"
    },
    {
      "commit": "06d13227bed31bf4a2dfa30e19198620eb5b120e",
      "tree": "6331425a223849eb00235dbb80642d7f242e020f",
      "parents": [
        "d79fe0de75143dcf71c43b3d533a18a391bb4a5f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 03 20:13:31 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 08 12:15:12 2018 -0700"
      },
      "message": "AudioFlinger: Use actual MonoPipe depth for sleep computation\n\nThis prevents benign underruns from glitching.\n\nTest: instrumented, see bug\nBug: 79227935\nChange-Id: I47be9c06faac4dec736ad809c59cf56c0f3d1dda\n"
    },
    {
      "commit": "a80b03f6b5492380dad797faeb2c44626ecf4f72",
      "tree": "d796993d6bc15ded67a9c29a1ca1e4e8635385c1",
      "parents": [
        "e57f2cd69dc94618afa27c4764d895082f806c0a",
        "444ecc3476107a1e80f1573b20ceca5e9949e4ae"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri May 04 23:03:00 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 04 23:03:00 2018 +0000"
      },
      "message": "Merge \"PatchPanel: Cleanup and refactoring\""
    },
    {
      "commit": "444ecc3476107a1e80f1573b20ceca5e9949e4ae",
      "tree": "0c431300c26a616e77e1200f3d3b46638f1668e5",
      "parents": [
        "6205a06d20d6b92d52044e8076beaac4c7873a21"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue May 01 17:40:05 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri May 04 11:05:38 2018 -0700"
      },
      "message": "PatchPanel: Cleanup and refactoring\n\n  * Unified software patch endpoints management code.\n\n  * Noticed that Patch::clearConnections is only called before\n    getting rid of Patch instance, so there is no need\n    to explicitly clear references to endpoints\u0027 Track and Thread.\n\n  * Fixed out-of-memory handling when creating tracks for\n    a software patch.\n\n  * Factored out finding HAL Device by module handle.\n\nTest: verify transitions to/from BT while playing media and making calls\nChange-Id: If6459c477054d6dff60dfa13f2d99ee2d6e887ad\n"
    },
    {
      "commit": "7a3dc6bd4795a1b254d1ceef959da2b4d6ef8ba4",
      "tree": "bba043f16dedc7f82531ffc8c5cf1a5351036df7",
      "parents": [
        "0f59472e584f9962a7ef390d1dba90ca2c0ad8be"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 01 16:39:51 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 02 10:38:37 2018 -0700"
      },
      "message": "RecordThread: Adjust sleep time to pipe frames free.\n\nThis fixes FastCapture pipe overrun for normal AudioRecord clients.\n\nTest: instrumented CTS AudioRecord, Photos record.\nBug: 71330194\nBug: 77281929\nChange-Id: I186017aec8d0acb3aefe9e4eb378b71b32f8ad59\n"
    },
    {
      "commit": "d5b638fe57c3ceaf7834d4c2181d4c4c2588f967",
      "tree": "24d5945c47bdde790d316edf7e109a03e1847eac",
      "parents": [
        "0926bb0100b5df3439c49777952d48ce53dd9137"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 30 13:56:10 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 30 14:55:08 2018 -0700"
      },
      "message": "RecordThread: Immediate retry on audio read overrun\n\nOtherwise another sleep and FastCapture write can cause overrun again.\n\nTest: Force OVERRUN fifo error and AudioRecordTest still passes.\nBug: 26983118\nChange-Id: I039e3a42863cbe96ca84d0f03020b836d5c944d1\n"
    },
    {
      "commit": "67f97291bfb7caec5152d2c93913191729db5917",
      "tree": "3d8b3241addba940bf4b8707bf5993fe533fd525",
      "parents": [
        "6b6f4313aae039f2d73664816e45834e65f79bf5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 20 18:05:41 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 20 18:05:41 2018 -0700"
      },
      "message": "audioflinger: fix mmap volume update\n\nMake sure volume callback is sent at least each time a new\nclient stream is started.\n\nBug: 78122737\nTest: repro steps in bug.\nChange-Id: I5b5ac617d604ed23bf8528affa1877b6cc0b5494\n"
    },
    {
      "commit": "734046ead103df5ec86b1dbd29e9945034a1ecb0",
      "tree": "910d09f7cd3a19d24b6f3e563db9553e07b7d6a4",
      "parents": [
        "331679c8a5cd21a0e6a7a1d851e965e4721f7420"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 16 14:50:52 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 16 17:08:06 2018 -0700"
      },
      "message": "audioflinger: fix mmap interface callback lock\n\nDo not hold the MmapThread mutex when calling methods on\nMmapStreamCallback as AAudioService will synchronously call\nmethods on MmapStreamInterface that will in turn acquire the mutex.\n\nBug: 78118584\nTest: \u0027adb shell write_sine_callback -m3 -pl -s100 -x\u0027 and Plug headphones in and out.\nTest: AAudio CTS tests\n\nChange-Id: I5953bb449e67735271203a2e1dbef0a2b451f5d3\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": "c16f23e399969e9d82f0b245afb0870fa448e78e",
      "tree": "39c75acf7d8a311cce349d3edf4f0dd89d0873da",
      "parents": [
        "247cc0a3c81ec629a2ae51b40bdcb2afc0e94210",
        "a2f478ca0b2bda8db9b321f0cfa9e9d3cf6130f9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 13 00:39:54 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 13 00:39:54 2018 +0000"
      },
      "message": "Merge \"audioflinger: implement silenced capture for mmap\" into pi-dev"
    },
    {
      "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": "c1428baf1badc3e5ea817d6266f42b2719374ed2",
      "tree": "706631b0f16acc5a19180ebdef764a99364b4946",
      "parents": [
        "6bcc99198f9be597705be1277977828037d48a1d",
        "b0eeaf121e896f7158ee9961cb9009554d37e53e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 11 23:54:19 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 11 23:54:19 2018 +0000"
      },
      "message": "Merge changes I53055724,I06914911 into pi-dev\n\n* changes:\n  Send stream volume to fast track\n  Revert \"Revert \"Audio V4: Send volume and duplicated track attr in update metadata\"\"\n"
    },
    {
      "commit": "ec84cede0192c5fe0d0b87f1a1865a75e6d14f38",
      "tree": "5ad4707397874e6f03704246f9a1d5c89ba0b172",
      "parents": [
        "f592b938a97e14d965018ad5caf500b0c0e0f359",
        "80ee2722d64a73777fa76027b1568e61dec8d910"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Apr 11 18:47:25 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 11 18:47:25 2018 +0000"
      },
      "message": "Merge \"Revert \"Audio V4: Send volume and duplicated track attr in update metadata\"\" into pi-dev"
    },
    {
      "commit": "f592b938a97e14d965018ad5caf500b0c0e0f359",
      "tree": "69fc73fdd299ab5c192f53c9bd83a5b829c6535c",
      "parents": [
        "32c74e9e97c843f56023bf7de30fb6316e01ee1d",
        "80d03d292e006e7c474e12d06450f63b5ea3b197"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 11 18:20:46 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 11 18:20:46 2018 +0000"
      },
      "message": "Merge \"AudioFinger: Release buffers in AudioMixer when track becomes inactive\" into pi-dev"
    },
    {
      "commit": "b0eeaf121e896f7158ee9961cb9009554d37e53e",
      "tree": "9ab63ba1ff15a3290f54ba82c16fa63ed3cd514a",
      "parents": [
        "12381092fdb5810cb27f738435ea8a0e3d2d0f42"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Apr 11 08:30:16 2018 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Apr 11 16:27:18 2018 +0000"
      },
      "message": "Send stream volume to fast track\n\nBug: 77892019\nTest: Play Pokemon GO and change volume\nChange-Id: I53055724d5885a4283fdb8670f76fcc8d98fb247\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "12381092fdb5810cb27f738435ea8a0e3d2d0f42",
      "tree": "534768433f4916952e94e212fdb923b6a3ed5b40",
      "parents": [
        "80ee2722d64a73777fa76027b1568e61dec8d910"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Apr 11 09:19:59 2018 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Apr 11 16:26:58 2018 +0000"
      },
      "message": "Revert \"Revert \"Audio V4: Send volume and duplicated track attr in update metadata\"\"\n\nThe original patch was breaking the fast track volume, so it was\nreverted.\nIn order to fix the original patch, revert the revert and in the\nfollowing patch apply the fix.\nThis makes review easier as only the difference to the original patch\nwill be present.\n\nBug: 38184704\nBug: 69623109\nBug: 77892019\nTest: Patch already tested for original patch and is tested for following\n      patch that fixes this patch.\nThis reverts commit 80ee2722d64a73777fa76027b1568e61dec8d910.\nChange-Id: I06914911c2435df167fff05ce5ca40dd1ed90f39\n"
    },
    {
      "commit": "80ee2722d64a73777fa76027b1568e61dec8d910",
      "tree": "e3e8744cefcf0785addf9ceb1519fceac3020293",
      "parents": [
        "c86a7f7de52f0ff0059e8c6c4fa4619aa7fae5c5"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Apr 11 15:53:48 2018 +0000"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Apr 11 16:09:19 2018 +0000"
      },
      "message": "Revert \"Audio V4: Send volume and duplicated track attr in update metadata\"\n\nThis reverts commit c86a7f7de52f0ff0059e8c6c4fa4619aa7fae5c5.\n\nReason for revert: fast track volume broken\nTest: none, it is a revert\nBug: 77892019\nChange-Id: If00616afae5c069cf0b6bd7c2da2a6d4af72180e\n"
    },
    {
      "commit": "80d03d292e006e7c474e12d06450f63b5ea3b197",
      "tree": "4d77d9f74e9479b389e583d5337c95280e5273a4",
      "parents": [
        "7121c67c340048fb520cd71bf510769140cc5bcd"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 10 10:32:11 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 10 13:09:07 2018 -0700"
      },
      "message": "AudioFinger: Release buffers in AudioMixer when track becomes inactive\n\nTest: Regression check, some instrumented test\nBug: 77813646\nChange-Id: Ia0ab75d4af1ae2c865256a02e956cf40f56628f5\n"
    },
    {
      "commit": "c86a7f7de52f0ff0059e8c6c4fa4619aa7fae5c5",
      "tree": "534768433f4916952e94e212fdb923b6a3ed5b40",
      "parents": [
        "b31f96ffee12f920d32d868c627cf34f1afeb988"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Apr 03 09:00:09 2018 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Mon Apr 09 16:19:11 2018 -0700"
      },
      "message": "Audio V4: Send volume and duplicated track attr in update metadata\n\nOnly the volume of MMAP thread was previously sent and\nthe attributes of duplicated tracks were skipped.\n\nBug: 38184704\nBug: 69623109\nTest: check that the HAL receives correct track metadata volume\nTest: check that the HAL receives correct duplicated track metadata\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n\nChange-Id: I1e3b14edd8c9a5a65d2b9f4cf8660997c81c701c\n"
    },
    {
      "commit": "b31f96ffee12f920d32d868c627cf34f1afeb988",
      "tree": "e3e8744cefcf0785addf9ceb1519fceac3020293",
      "parents": [
        "dab059e964ea373d8e18a063e80d7d421e27925f"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Apr 03 09:00:09 2018 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Apr 06 22:18:34 2018 +0000"
      },
      "message": "Audio V4: Do not send metadata of Output Track\n\nOutput track currently do not support audio attributes,\nnevertheless the placeholders values were erroneously\npropagated to the HAL.\n\nBug: 38184704\nBug: 69623109\nTest: check that the HAL does not receive metadata about duplicated\n      tracks.\nChange-Id: I9a646faf4a43b1ebc09c03329827aee4a49674f9\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "069c2719e753732d5af9ba51e5fcc34342b0c9f2",
      "tree": "e3cfa2f8e2ceecd6e20d91b484865a33c195d7ec",
      "parents": [
        "1f564acca544826daaf7dca44e39cec6016b82fd"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Mar 29 19:09:14 2018 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Mar 30 14:09:23 2018 -0700"
      },
      "message": "Audio V4: Propagate track attributes to HAL\n\nThis patch does not propagate the volume.\n\nBug: 38184704\nBug: 69623109\nTest: log metadata in HAL\nChange-Id: I313563cafd9f2b29a13839c3c075beb65a170632\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "1f564acca544826daaf7dca44e39cec6016b82fd",
      "tree": "4adc2f15866c6c7bb47f7eb351aa251a94b1aaa2",
      "parents": [
        "a8975a7e857fd745fc88d226d86b53ae088eafb9"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Mar 29 13:53:10 2018 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Mar 30 13:15:05 2018 -0700"
      },
      "message": "Audio V4: Propagate audio attributes to tracks\n\nThis patch has not functional changes.\n\nBug: 38184704\nBug: 69623109\nTest: play music and a audio\nChange-Id: Ide6ec7de4dbfab4af2653475901c3b3daee36e52\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "9ff780e58ff96ff98acaae4166bb218880bf9e73",
      "tree": "b54bf56b7f6ebc5950064d2908004abfe35d7162",
      "parents": [
        "2ca700737c14edc9141af170ee278853fd99fa87"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Mar 19 18:19:52 2018 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Mar 28 10:17:36 2018 -0700"
      },
      "message": "Support query microphones information.\n\nGet list of all/currently active microphones from hal.\n\nBug: 64038649\nTest: Manual Testing and Cts test\nChange-Id: Id39cae38ba040f9bc91571e713487f87c2eb67b0\n"
    },
    {
      "commit": "56ecf3e3ce36d111a17d67485047836660128629",
      "tree": "79a1a5a3992f0bb116d3d2e8473c1e76b84034e2",
      "parents": [
        "553a1a42fceba2f5315238355de2b20687185160"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Mar 12 15:38:17 2018 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Mar 21 01:14:13 2018 +0000"
      },
      "message": "audioflinger: only update mHalVolFloat on success\n\nThis will fix a regression with AAudio MMAP stream not getting\nits initial volume set correctly.\nAlso initialize mHalVolFloat.\n\nBug: 74547253\nTest: adb shell write_sine_callback -pl -s10 -m1\nTest: should have the same initial volume as\nTest: adb shell write_sine_callback -pl -s10 -m3\nChange-Id: Ie0c1f9ba51e2059a888d2273f41588f101b09a5c\n"
    },
    {
      "commit": "5ff7b0da6f51af96b530951c72fe06a711280282",
      "tree": "ce3e9dc8c66cb2a05da1b73c0e3906e0b7d3cbd6",
      "parents": [
        "7dccfdd8f0752db2717d554d0cf1925c34202639"
      ],
      "author": {
        "name": "haobo10173529",
        "email": "hao.bo15@zte.com.cn",
        "time": "Fri Mar 17 17:44:03 2017 +0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 16 17:35:03 2018 -0700"
      },
      "message": "AudioFlinger: Fix deadlock when createEffect_l fails.\n\nThe handle.clear() will cause deadlock if init of EffectHandle\nfailed due to NO_MEMORY in createEffect_l.\n\nTest: Monkey test, Instrumented test.\nBug: 75031792\nChange-Id: Ie0f38d76a66aeafe26903dda6690d1fe7fca4464\n"
    },
    {
      "commit": "0568dedb5008a24c2aca661a6891f9923abfa6d2",
      "tree": "f81bbac0f9fc5ff1fcad245560713868d968b754",
      "parents": [
        "dc9df6a12d848b32fbd041421c663d2014f32403"
      ],
      "author": {
        "name": "Jakub Pawlowski",
        "email": "jpawlowski@google.com",
        "time": "Wed Mar 14 11:20:05 2018 -0700"
      },
      "committer": {
        "name": "Jakub Pawlowski",
        "email": "jpawlowski@google.com",
        "time": "Wed Mar 14 11:29:00 2018 -0700"
      },
      "message": "Prevent Hearing Aid fromn spamming logs\n\nHearing Aid uses same mechanism as A2DP for obtaining audio stream,\nthus causing same throttling issue.\n\nBug: 69623109\nTest: stream music through Hearing Aid, observe logcat output\nChange-Id: I6445f6c85d9600fdb12008b0c353242f799b963e\n"
    },
    {
      "commit": "ad9c7e47d26bbeb2f3be96b3ad6988a6023a1021",
      "tree": "0d7cce2a82c78d215ae7c7cd8aac1148ad8c81a2",
      "parents": [
        "b95a5989190a427a7ea092dc18741af524009bdb"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Mar 05 12:25:58 2018 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Mar 05 20:39:11 2018 +0000"
      },
      "message": "Revert \"audioflinger: Remove \"exiting\u003d1\" parameter\"\n\nThis reverts commit e2bc208f05ed430a18a9078799b6b6d56e3d6dda.\n\nBug: 74142786\nTest: with Android Auto head unit simulator\n\nChange-Id: I9f96da7ba67b3ed774c9b9bdab7cee390d3f0ca2\n"
    }
  ],
  "next": "e2bc208f05ed430a18a9078799b6b6d56e3d6dda"
}
