)]}'
{
  "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": "f1a3910d33e57958e42f62f4fc95107b43d32af4",
      "tree": "77f1c396655d4137d78c3aa6e2d01754b5b7755b",
      "parents": [
        "25194a64e0bb77049d279fdb982c02425095ec01",
        "7dd8e82fce48f92c6344a88be8b821ac135d0c37"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Dec 11 21:17:56 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Dec 11 21:17:56 2018 -0800"
      },
      "message": "Merge \"Fix cert-dcl16-c clang-tidy warnings in audioflinger.\" am: c5a1e23f13 am: 413c961fb0\nam: 7dd8e82fce\n\nChange-Id: I12b46d44c63910a9780f49912407a6b0b98a0c21\n"
    },
    {
      "commit": "c94b0f806352d9384eeb92c2e4d7173851ccc573",
      "tree": "36bd89a1cd2fe27c243a1db1445957be3ad90cba",
      "parents": [
        "45d34272dfa8462adda0f11ccfa169c5afa49621",
        "405733256a9cf62c9e3be2d8dbd5ccb9cb7c5d97"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 12 04:05:07 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 12 04:05:07 2018 +0000"
      },
      "message": "Merge \"Support open output stream with haptic channel mask.\""
    },
    {
      "commit": "405733256a9cf62c9e3be2d8dbd5ccb9cb7c5d97",
      "tree": "b395e3e093aa3010b54f9227e8a7cef08ed1b2a0",
      "parents": [
        "6b6a0f05248fc646d42f09cb891d8b6fda19426e"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Nov 08 12:08:02 2018 -0800"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Dec 11 17:18:05 2018 -0800"
      },
      "message": "Support open output stream with haptic channel mask.\n\nWhen haptic playback is supported according to audio policy\nconfiguration file, try to open the output stream with haptic channel\nmask. When trying to creat a track with haptic channel mask, use haptic\noutput if it is available.\n\nBug: 111454766\nTest: Manually test\nChange-Id: Ia8c70dd7f602a134d0509630eb734b8c540dea7d\n"
    },
    {
      "commit": "3e330f09d70f39463f26ad301c1fc5d3fc45b094",
      "tree": "53c0cea7ed1b55a37eeb89e67d6bd26087771f24",
      "parents": [
        "14c577fac81b8fdcc75e4bf9243f16bd624ba58b"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Dec 11 13:56:07 2018 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Dec 11 14:53:36 2018 -0800"
      },
      "message": "Fix cert-dcl16-c clang-tidy warnings in audioflinger.\n\nBug: 120614316\nTest: make with WITH_TIDY\u003d1 DEFAULT_GLOBAL_TIDY_CHECKS\u003d-*,cert-dcl16-c\nChange-Id: I39f164a4204043042db383ce10ded542437f8447\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": "973db02ac18fa1de9ce6221f47b01af1bdc4bec2",
      "tree": "e2dda15a881c963a14520117128b5b9857834759",
      "parents": [
        "f4a342abd2959904caa18b5a0671e8107581ff24"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 20 14:54:31 2018 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 04 12:06:37 2018 -0800"
      },
      "message": "audio flinger: return port ID as track ID to client\n\nReturn the port ID allocated by audio policy manager instead of the\ninternal track ID allocated by audio flinger when an AudioTrack or\nAudioRecord is created.\nThis information is more useful for logs and allows to associate information coming\nfrom audiopolicy manager with a specific client instance.\n\nBug: 111438757\nTest: Manual playback and capture tests\nChange-Id: Ib467d8fcc34d9a8aa7bcaac0770a741982b847c5\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": "e8ac1b2f52dc760bd1abd3dc720a5d9b59df51ad",
      "tree": "ad1f018ca3eaf10f7394f059831826b00540c2ef",
      "parents": [
        "dd2e7a8ec3894faa66776f058355b1acff2b7e31"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Oct 31 14:22:35 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Oct 31 15:47:58 2018 -0700"
      },
      "message": "Effects: Fix write mode for disabled effects\n\nThis case is generally not encountered; we are fixing this\nto ensure correctness for future code.\n\nTest: No regression with MP3 effects and solo tester\nBug:118775810\nChange-Id: I016e23101d42ffeee1e66102b6f6276f17c47684\n"
    },
    {
      "commit": "dd2e7a8ec3894faa66776f058355b1acff2b7e31",
      "tree": "cd8e83299ec9f2700d73ab1346c72b23bbff8484",
      "parents": [
        "fec151edf5e525c8d8f2a448d1e080d90b63e3a6"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Oct 31 14:19:13 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Oct 31 14:56:21 2018 -0700"
      },
      "message": "Effects: Fix multichannel accumulate when disabled\n\nEnsure all channels are accumulated.\n\nTest: Use 4ch USB device, play MP3 with effects, see bug\nBug: 115693755\nChange-Id: Ic1eb04dcff34284b3fff67266874eca41a43e523\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": "37013f15b32aa124647135d4e14da4d5434902eb",
      "tree": "f4af37df2256b6a6b1796b4b39db9ab37396c44f",
      "parents": [
        "ccf43f5a667979ba2545d330c15086cba6598549",
        "d3934149f5d71f9c795b5b34cd9e2cda8eff2f40"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 02 17:10:10 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 02 17:10:10 2018 +0000"
      },
      "message": "Merge \"Revert \"audioflinger: Temporary disable post-close dumping of input streams\"\""
    },
    {
      "commit": "d3934149f5d71f9c795b5b34cd9e2cda8eff2f40",
      "tree": "6db65fc668fc1bec0ce3364080b915aeb3c23d15",
      "parents": [
        "900e05edf84a3401e0bc9d6c824686c6b16b1e9e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Oct 01 19:19:55 2018 +0000"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Oct 01 19:21:41 2018 +0000"
      },
      "message": "Revert \"audioflinger: Temporary disable post-close dumping of input streams\"\n\nThis reverts commit 900e05edf84a3401e0bc9d6c824686c6b16b1e9e.\n\nReason for revert: Updated FdToString with timeout, avoids hang.\nTest: continuous reboot check\nBug: 116211629\nBug: 116873928\nChange-Id: Ifb954a15932e7754a63ff449c907b8664b134573\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": "900e05edf84a3401e0bc9d6c824686c6b16b1e9e",
      "tree": "2524e5b3cc9df9041f6a623106f7bfe27869cdbe",
      "parents": [
        "3237d6b595d577aafb7a41ac07cf053d67a42d5a"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Sep 24 13:02:09 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Sep 24 13:02:09 2018 -0700"
      },
      "message": "audioflinger: Temporary disable post-close dumping of input streams\n\nThere is a suspicion that dumping HAL state for a recently closed\ninput stream can hang forever, blocking audioflinger and stucking\nsystem boot.\n\nIn order to verify, we disable this dumping to see if it would\nhelp with presubmit bots.\n\nBug: 116211629\nTest: see steps in b/116211629#9\nChange-Id: I189461187a2310c213278cc2b3af2469d1896965\n"
    },
    {
      "commit": "9db3bb488875575f1e405ba5bf69206db9d9e403",
      "tree": "b93608086f18e028e7a823ae0cb4f622c0b3878c",
      "parents": [
        "ffc04957ed8f9c42a3fb7481e8dc8cc90a8ed65c"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Sep 19 14:05:11 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Sep 19 14:06:32 2018 -0700"
      },
      "message": "AudioFlinger: Do not dereference null track\n\nTest: compile (original bug occurred during sanity testing)\nBug: 116142034\nChange-Id: I33d77bf1970dfdd96706ace8f858baf5d473a59f\n"
    },
    {
      "commit": "ffc04957ed8f9c42a3fb7481e8dc8cc90a8ed65c",
      "tree": "70478816b60d2e0cc8e8f3fa3fccc29c27225827",
      "parents": [
        "b3dac3fd55058ed57c5372206259d6417c6a74d7",
        "a37aaa27917d8e89b3ac4913b3146eee78b92174"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Sep 19 18:07:35 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 19 18:07:35 2018 +0000"
      },
      "message": "Merge \"FastThread: Remove unused NBLog variable\""
    },
    {
      "commit": "a37aaa27917d8e89b3ac4913b3146eee78b92174",
      "tree": "758a46261a1873604e7300f9613c115f4a3dd470",
      "parents": [
        "ea055e6dab6bcbf9bf90711d602bcf59395f0d59"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Sep 18 18:15:37 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Sep 18 18:27:04 2018 -0700"
      },
      "message": "FastThread: Remove unused NBLog variable\n\nTest: Compile and verify NBLog\nChange-Id: I145eb480415b076b7f75d266df35fc945563a364\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": "ea055e6dab6bcbf9bf90711d602bcf59395f0d59",
      "tree": "5af1963cd87b4013d777417fa94f6cf697a91bae",
      "parents": [
        "76b54c05e6cc5c674cc126451a88b14b8146d98a",
        "dc099c2cd3ab1d5a9adf4c39dd33e0b5037544f1"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Sep 19 00:15:52 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 19 00:15:52 2018 +0000"
      },
      "message": "Merge \"AudioFlinger: Preserve recent MMapThread history for dumpsys\""
    },
    {
      "commit": "76b54c05e6cc5c674cc126451a88b14b8146d98a",
      "tree": "a5ae72ce1a277ab3a6b27ea72f87b72156e995fc",
      "parents": [
        "99e9db75039f86a73d1a5052b1e3538ddda20de5",
        "01d09d9e408b3b1c97f08cb317631d5b6e13d42f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 18 23:48:53 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 18 23:48:53 2018 +0000"
      },
      "message": "Merge \"audioflinger: Fix RefBase \"exception\" issue from FastThread\""
    },
    {
      "commit": "dc099c2cd3ab1d5a9adf4c39dd33e0b5037544f1",
      "tree": "5b7cc829081ef671cb075e726e8f03baa7405b34",
      "parents": [
        "05fa8856abaa1e050c3c8e6ba97fc8878ed7600a"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Sep 18 13:46:39 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Sep 18 14:38:05 2018 -0700"
      },
      "message": "AudioFlinger: Preserve recent MMapThread history for dumpsys\n\nTest: Aaudio tests, check audioflinger dumpsys\nBug: 116026119\nChange-Id: Ib891686480b2579e4d3b2e419c83aec0a79ba812\n"
    },
    {
      "commit": "05fa8856abaa1e050c3c8e6ba97fc8878ed7600a",
      "tree": "65b40f08e8fa2c8af594de60029286993fdae461",
      "parents": [
        "bf9dba9626c480ad1ab105dccccd114757e98b05",
        "0264e7d611ed4c8151988ad2622b39729492e34e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Sep 18 19:44:59 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 18 19:44:59 2018 +0000"
      },
      "message": "Merge \"AudioFlinger: Preserve recent RecordThread history for dumpsys\""
    },
    {
      "commit": "01d09d9e408b3b1c97f08cb317631d5b6e13d42f",
      "tree": "739ca993df57214891fa598a0fef9a53f5b14f25",
      "parents": [
        "bd9b5935fdbd67d3eaf124e3e80470b8cae1ecd1"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Sep 18 12:38:57 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Sep 18 12:39:53 2018 -0700"
      },
      "message": "audioflinger: Fix RefBase \"exception\" issue from FastThread\n\nDummy NBLog::Writer in FastThread must not be stored by value\nbecause it\u0027s a RefBase descendant. Storing it by value causes\na diagnostic output from ~RefBase because no strong\nreferences to it ever exist. In future this will cause a crash.\n\nTest: verify there are no \"RefBase: Explicit destruction\" messages\n      in logcat\nChange-Id: I95716ec8e29fdd9485ef64a3334cef49bf29bc96\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": "0264e7d611ed4c8151988ad2622b39729492e34e",
      "tree": "d298dee16f0e35825ce3c7c329b2cd5b75bf93a3",
      "parents": [
        "45146a2c3b3cd3aebab46306cc43d27e952e8060"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Sep 17 19:30:46 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Sep 17 19:30:46 2018 -0700"
      },
      "message": "AudioFlinger: Preserve recent RecordThread history for dumpsys\n\nTest: audioflinger dumpsys after record\nBug: 115946219\nChange-Id: Ic551ae38a35acc3ed21eee5da3b42d6b07454899\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": "d975119d1ad25c64faff476b48f3d39b29244bc4",
      "tree": "9ab084833820d5343d8453ab66d5aea03f6429a9",
      "parents": [
        "6d853b134bef4bd750439023664d68542f27bb10",
        "ace588cc1e78f3a83a0e410113009fb31a0f9af7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sat Sep 15 01:38:23 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Sep 15 01:38:23 2018 +0000"
      },
      "message": "Merge \"nblog: split NBLog.cpp into multiple files\""
    },
    {
      "commit": "ace588cc1e78f3a83a0e410113009fb31a0f9af7",
      "tree": "7b82d5a4892f8ea53620c937927b6c9eb363cdb6",
      "parents": [
        "c5fee0a8854f5decd3b567d2383cd38f0aada4f4"
      ],
      "author": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Wed Sep 12 11:44:43 2018 -0700"
      },
      "committer": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Fri Sep 14 15:57:50 2018 -0700"
      },
      "message": "nblog: split NBLog.cpp into multiple files\n\nNBLog.cpp was deleted and split up into Entry.cpp, Merger.cpp,\nReader.cpp, Timeline.cpp, and Writer.cpp. NBLog.h was split up into\nEntry.h, Events.h, Merger.h, Reader.h, Timeline.h, and Writer.h. NBLog.h\nnow includes all of these new headers except Merger.h, which is managed\nexclusively by MediaLogService.\n\nOther changes:\n- changed NBLog from a class to a namespace\n- changed NBLog::thread_info_t.type to enum and replaced magic numbers\n- fixed some fragile build dependencies in libaudioclient and medialog\n\nNo other changes were made, and all functionalities that existed prior\nto this commit remain the same.\n\nTest: build, dumpsys media.log\nBug: 68148948\nChange-Id: I1ce6dcb7b30d004f90584edfad7103a89f7bab0c\n"
    },
    {
      "commit": "2ca73b95dab8abb2c0cf231ca63c1b57f98e9a16",
      "tree": "9d032e7917b8433d5af8d9409518c38b4be87a42",
      "parents": [
        "b83becc21422314de2ad31c286f52437ce88fdc0",
        "6b1c612162ce290c54e0b0a418e1791410f95d47"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Sep 14 16:35:15 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 14 16:35:15 2018 +0000"
      },
      "message": "Merge changes Ifa9c05c0,I7c74af89,I6b3ed72c,I216e2746\n\n* changes:\n  AudioRecord: Add client side track id for logging\n  AudioTrack: Add client side track id for logging\n  AudioFlinger: Use track ids in log messages\n  AudioFlinger: Replace track name with id\n"
    },
    {
      "commit": "6b1c612162ce290c54e0b0a418e1791410f95d47",
      "tree": "51f1213fa8c534e8f403c40a1b6f2f34b7b7fa39",
      "parents": [
        "fb8ede2a020e741cb892ee024fcfba7e689183f2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Sep 12 19:09:07 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Sep 13 17:54:49 2018 -0700"
      },
      "message": "AudioRecord: Add client side track id for logging\n\nTest: Audio sanity test, check logcat\nBug: 115400221\nChange-Id: Ifa9c05c0df66e372e773b5149a0f1ed49a21ef3a\n"
    },
    {
      "commit": "fb8ede2a020e741cb892ee024fcfba7e689183f2",
      "tree": "702e8497e892eaa0d4d8fb7d28ec78fc2762a1f2",
      "parents": [
        "9d84af54244f7ff086afdcc6e477fe4d04874652"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Sep 12 19:03:24 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Sep 13 17:54:36 2018 -0700"
      },
      "message": "AudioTrack: Add client side track id for logging\n\nTest: Audio sanity test, check logcat\nBug: 115400221\nChange-Id: I7c74af8962f7d3b72a7b843df906c54f79f6f009\n"
    },
    {
      "commit": "9d84af54244f7ff086afdcc6e477fe4d04874652",
      "tree": "dc3f3d5c5bc956b413fe3cc234ed45cc20cff1d9",
      "parents": [
        "c06913801424b90dfbc94b401039352869f20e3e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Sep 12 18:03:44 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Sep 13 17:54:07 2018 -0700"
      },
      "message": "AudioFlinger: Use track ids in log messages\n\nTest: Audio sanity test, check logcat\nBug: 115400221\nChange-Id: I6b3ed72c3a2584f03bb2183b099c5a42d2d49527\n"
    },
    {
      "commit": "b8b6097e135cbf0c48a9924a592de992b3396e17",
      "tree": "1a057d2074c0d086f9396531f203597b17f901c6",
      "parents": [
        "c5fee0a8854f5decd3b567d2383cd38f0aada4f4"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Sep 13 12:55:43 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Sep 13 12:55:43 2018 -0700"
      },
      "message": "PatchPanel: Specify latency units for patches\n\nWhen the latency number is too high, it becomes ambiguous\nwhether it\u0027s in milli- or nano-seconds.\n\nTest: dumpsys\nChange-Id: I175a562f403dc4d67e50687927cd4edf9bc7d922\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": "2ca0dcaf432fc4ceffbd40178be860780bd09f9b",
      "tree": "5b8946540ce7da3856c8f5797ff0089df14ee410",
      "parents": [
        "6b5aebe69f5db1c758a192a464dac1f0000dd060",
        "dfb411f91668972faddfc3d175bd3c95ce29673e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 12 01:18:28 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 12 01:18:28 2018 +0000"
      },
      "message": "Merge \"Audioflinger: Dump \"master mute\" state in threads\""
    },
    {
      "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": "fefe316501e06c96ce0d905c793b4d872d60e976",
      "tree": "cd6bb858c1de4d0bba5d7a321a5db065247fc3fc",
      "parents": [
        "bc2a77308b7c197a30a3289e5b75d0f089e65982"
      ],
      "author": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Fri Sep 07 10:09:11 2018 -0700"
      },
      "committer": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Mon Sep 10 19:05:08 2018 -0700"
      },
      "message": "NBLog: log and store warmup times, underruns, overruns, and thread info\n\nTest: dumpsys media.log\nBug: 68148948\n\nChange-Id: Ib6ea96760f7886cba47c8e2f0334114237a2434b\n"
    },
    {
      "commit": "752c7cfc96f1a6ca0f16e0b4d9962c35cbe0e88a",
      "tree": "eacdd2f96287b41aeacad3fbc975cb260e46abcc",
      "parents": [
        "d4a9ce4ba72280b7f3833446925f0bf6e42e1112",
        "f4942d7989993b8d82010dd1047a4c68d625b324"
      ],
      "author": {
        "name": "Shingo Kitajima",
        "email": "shingo.x.kitajima@sony.com",
        "time": "Wed Sep 05 23:42:52 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Sep 05 23:42:52 2018 -0700"
      },
      "message": "Merge \"Allow volume setting only for offloadable effect for Offload\" am: 311d0133a4 am: cdca8b4205\nam: f4942d7989\n\nChange-Id: I47468b938913f77e68a7bde41105b4c92a57f58d\n"
    },
    {
      "commit": "f7996c2c055e617b71c654c2574b939400e9c42c",
      "tree": "294c64457a404e9401ae61e258cc3e425e9b30c2",
      "parents": [
        "89e319f74c394a59f180e88cc57e0afd9993a0a4",
        "cf3d82c34b8a737408113dddad341b8c98251a8e"
      ],
      "author": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Wed Sep 05 16:43:12 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 05 16:43:12 2018 +0000"
      },
      "message": "Merge \"NBLog: refactor Writer API for extensibility\""
    },
    {
      "commit": "cf3d82c34b8a737408113dddad341b8c98251a8e",
      "tree": "358cb91f4b3b812054daab215b754b9920cf4a50",
      "parents": [
        "e98dd6f5496aaba009ed27be8e83af1cd10869c5"
      ],
      "author": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Tue Sep 04 15:44:45 2018 -0700"
      },
      "committer": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Tue Sep 04 18:02:00 2018 -0700"
      },
      "message": "NBLog: refactor Writer API for extensibility\n\nNo new functionality was added, and no existing functionality was\nremoved.\n\nEvent types have been renamed and reorganized according to\nfunctionality. A compile-time mapping from Event to C++ data type allows\nfor a generic Event log() template function to avoid the need to add a\nnew logging function when a new Event is added to enum NBLog::Event.\n\nMost LockedWriter functions were deleted because they did not involve\naccessing shared variables. Only the functions that accessed shared\nvariables were kept in LockedWriter.\n\nTest: dumpsys media.log -r\nBug: 68148948\nChange-Id: I8a27f1690795cdb0b84e92033b7cbf4588ba175e\n"
    },
    {
      "commit": "10caf0e237e9201e0db92fe05d8872f548187f6a",
      "tree": "80cd4bdf113c12ad4bc0b4c913aedc55047959d4",
      "parents": [
        "ce81711fcae028dc1b8c0fc63e78a80d2260014a",
        "e98dd6f5496aaba009ed27be8e83af1cd10869c5"
      ],
      "author": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Thu Aug 30 16:13:15 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 30 16:13:15 2018 +0000"
      },
      "message": "Merge \"NBLog: add latency logging and histogram serialization\""
    },
    {
      "commit": "e98dd6f5496aaba009ed27be8e83af1cd10869c5",
      "tree": "2d3c6b7f683b781d961d22d541d7193ec08f0642",
      "parents": [
        "6af1847b8ea55d9f21e75b0f0ed91dc0e8f68c32"
      ],
      "author": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Wed Aug 22 18:23:50 2018 -0700"
      },
      "committer": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Wed Aug 29 15:10:40 2018 -0700"
      },
      "message": "NBLog: add latency logging and histogram serialization\n\nReportPerformance::writeToFile and the recording of PerformanceAnalysis\nFastMixer timestamps are disabled for now.\n\nTest: dumpsys media.log -r\nBug: 68148948\nChange-Id: I4ba55fc20521ad2278348e6a3f713f9db04d951b\n"
    },
    {
      "commit": "a8115dc6d814c18d1ec68067425485add3ea1af2",
      "tree": "2bed9bcf27ad65a7495f82d59ac259a0072647ff",
      "parents": [
        "51eb281710acec50c28306e03155224cf5198aad"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 24 15:51:59 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Aug 28 15:46:05 2018 -0700"
      },
      "message": "AudioFlinger: Add Thread history to dumpsys\n\nTest: Bluetooth + audioflinger dumpsys\nBug: 80155745\nChange-Id: Icee723a9fe653395119dd639883be5b7d8f3f158\n"
    },
    {
      "commit": "1f8df9ae201bc4405aed068c910b08dc5458864f",
      "tree": "e8be06c94252e28e024523d1c71f4160ba5b1977",
      "parents": [
        "db44c5d13b9972a0d0dd177c31259b74bc2e4376"
      ],
      "author": {
        "name": "Shingo Kitajima",
        "email": "shingo.x.kitajima@sony.com",
        "time": "Tue May 29 11:35:06 2018 +0900"
      },
      "committer": {
        "name": "Tomoharu Kasahara",
        "email": "tomoharu.kasahara@sony.com",
        "time": "Tue Aug 28 17:02:28 2018 +0900"
      },
      "message": "Allow volume setting only for offloadable effect for Offload\n\nMusic volume is set to max for an instant\nwhen enabling non-offloadable effect during compress offload playback.\n\nNon-offloadable effect module having volume control is created\nand linked to Offload thread.\nAfter that,  when enabling it during playback,\nvolume is set max to Offload thread to switch volume control module\nbefore switching Playback thread from Offload to Mixer.\nThen, until completing thread switch,\nOffload Thread works with max volume.\n\nTo avoid this issue, check effect capability\nso that only offloadable effect can set volume on Offload Thread.\n\nBug: 113311497\nTest: Enable non-offloadble effect during offload playback\n\nChange-Id: I91b7313d55ca7cfcde206f158ce553432499e992\n"
    },
    {
      "commit": "99e1f06a37f484315d62c6cdad6078a7e092a900",
      "tree": "b9c6837a3c294c80d43287b976b30c60353cfb1f",
      "parents": [
        "61e9029a7da63282620acf68d8ac13fe4c080744",
        "a0a5d2a9061cfb58b6f7632117502f2061ab74cb"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 21 21:48:22 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 21 21:48:22 2018 +0000"
      },
      "message": "Merge \"Add external setParameter to audioflinger dumpsys\""
    },
    {
      "commit": "2b040b3ee741b859eeff20835dcd511c4662ddec",
      "tree": "aed66de89652797be27b85b80b21a7a4d48f3ea4",
      "parents": [
        "a965d0a8ac30154cffe4ba1ba3ef097be8307300",
        "5786e01d64860448d93b681a59c7d5a60bc12298"
      ],
      "author": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Fri Aug 17 23:30:15 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 17 23:30:15 2018 +0000"
      },
      "message": "Merge \"NBLog: Restore log dump and add new logging types\""
    },
    {
      "commit": "5786e01d64860448d93b681a59c7d5a60bc12298",
      "tree": "5ac379a0d0ce652fd71b9f2fae34fb0b913ded6a",
      "parents": [
        "86be8728fb6efae5a35ed4840c45a2eafce06823"
      ],
      "author": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Wed Aug 15 09:03:47 2018 -0700"
      },
      "committer": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Fri Aug 17 14:57:40 2018 -0700"
      },
      "message": "NBLog: Restore log dump and add new logging types\n\nMerging is temporarily disabled for now because the readers managed by\nthe merger are the same as the ones used for the dumpsys log dump, and\nreading from the log effectively consumes the buffer. Eventually, the\nreaders for the two functionalities will need to be separated to avoid\nconflict. The dump of the merged buffer is also disabled, which removes\nthe dumping of histograms.\n\nThe new types added are monotonic thread cycle time, CPU thread cycle\ntime, CPU frequency, and latency (which will need to be specified in\nfurther detail later). Logging support is added only for monotonic\nthread cycle time at the moment.\n\nTest: build, log monotonic thread cycle time in FastThread, check output\nin dumpsys media.log -r.\n\nChange-Id: I1b781d6db102fb917fd0bac964eeebd0309234c0\nBug: 68148948\n"
    },
    {
      "commit": "21e21510fad00408998cba4dc58b181d0503407c",
      "tree": "cccf6c4ca566d953f28bc8af8a647d0291e814cf",
      "parents": [
        "68360cc2d2d7d6a02e02c7f20257c3e5fc88e241",
        "25942ed63017a57212ac81e5ab2862c71c8cdc6d"
      ],
      "author": {
        "name": "Yuuki Yokoyama",
        "email": "yuuki.x.yokoyama@sonymobile.com",
        "time": "Thu Aug 16 22:47:41 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Aug 16 22:47:41 2018 -0700"
      },
      "message": "Merge \"Use default sample rate for only sw effect\" am: 71a2d52f19 am: 4fd142e2b4\nam: 25942ed630\n\nChange-Id: Ibfff6dfeda67a6248f271a3c5b6394e00e33cb90\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": "71a2d52f19d868751413e7664f208757b9214907",
      "tree": "ac2ec89bc1cfe46c8f517325401087a7e626a1c7",
      "parents": [
        "ec40ae247d125af958489a3067030575fe4c9f52",
        "e17f831ef1ba0844e04826bb85455f7ca9c971c4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 16 22:32:42 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 16 22:32:42 2018 +0000"
      },
      "message": "Merge \"Use default sample rate for only sw effect\""
    },
    {
      "commit": "e17f831ef1ba0844e04826bb85455f7ca9c971c4",
      "tree": "d8d97743c5be994cc75b367db9cccb93ba63e494",
      "parents": [
        "34affaed9cc6374e979e3bd29ccfe1671694bfe9"
      ],
      "author": {
        "name": "Yuuki Yokoyama",
        "email": "yuuki.x.yokoyama@sonymobile.com",
        "time": "Fri May 26 19:06:33 2017 +0900"
      },
      "committer": {
        "name": "Tomoharu Kasahara",
        "email": "tomoharu.kasahara@sony.com",
        "time": "Thu Aug 16 18:37:14 2018 +0900"
      },
      "message": "Use default sample rate for only sw effect\n\nShould not configure effect by thread sample rate\nif effect is not offloadable.\nBecause of offload output may be different from\nthe sample rate supported by sw effect.\n\nBug: 70912361\nTest: Create AudioEffect during 24kHz mp3 playback\n\nChange-Id: Ie5bf264a9790d936c24476ea127bc6da9eefde73\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": "30282562329b3031b6bfa0869bd76ff5f543ebba",
      "tree": "82ba1641c178b26419735faf7f99be6bc1ffc9c1",
      "parents": [
        "182d359515fbf4ba0fc14709b583c29edce30897"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Aug 08 18:27:03 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Aug 13 16:27:59 2018 -0700"
      },
      "message": "AudioFlinger: Add patch latency for direct record/playback\n\nThis relies on being able to obtain presentation position and\ncapture position accurately from the HAL, in the presence\nof potential underruns or overruns.\n\nTest: MSD hal dumpsys\nBug: 112428710\nChange-Id: I9aad574baaff60b5e0c5d8c39a2147d19ee613f5\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": "a0a5d2a9061cfb58b6f7632117502f2061ab74cb",
      "tree": "5d97d831dbb49da3617a6b66630a83fee07c8d72",
      "parents": [
        "5bf00e8858de16b294174c35b338b99b5a3259fb"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Mon Aug 06 15:03:18 2018 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Aug 09 09:38:16 2018 -0700"
      },
      "message": "Add external setParameter to audioflinger dumpsys\n\nApps are not expected to send any setParameter, system should only send\nvery few keys. This log can help verify what is bypassing audioflinger\ncontrol.\n\nOnly the first 1024 characters are logged per SimpleLog limitation\nto avoid high memory retention in the privilege audio service\nin case very big strings are sent.\n\nThus in the worst case around 60*1*3\u003d180kB can be consumed in Audioflinger\nby those logs (aka: no app memory deny of service).\n\nTest: adb shell dumpsys media.audio_flinger\nChange-Id: Ida9c21be9d20528f67a63eddf6ca7a6c962c7cc2\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\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": "05357b120b1ea652cab3d615ba9c3f2e1e03f2fd",
      "tree": "1c5e99fd7c1287e1dd0534bde70a964576c0de95",
      "parents": [
        "7119600ddc4d6e64d6461f338387d49f503e45a4",
        "156317a32323b8a3826a6e9e9eec49b9049c14bd"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Aug 02 23:11:20 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 02 23:11:20 2018 +0000"
      },
      "message": "Merge \"AudioFlinger: Remove unnecessary computation\""
    },
    {
      "commit": "7119600ddc4d6e64d6461f338387d49f503e45a4",
      "tree": "0d90c41af199119a4b995726b8fcd0f32f39f0a7",
      "parents": [
        "7f1732ee0d2c0571f8a00cd6ccbaa74cf8dd260c",
        "433722eeb72ab11bb945664fa939cf7ef737af6d"
      ],
      "author": {
        "name": "Ari Hausman-Cohen",
        "email": "arihc@google.com",
        "time": "Thu Aug 02 23:10:53 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 02 23:10:53 2018 +0000"
      },
      "message": "Merge changes from topic \"dynamic_stream_effects_master\"\n\n* changes:\n  Add dynamic stream default effects\n  Add helper method to convert usage to stream type.\n  Update getEffectDescriptors() to include type\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": "2046ec756ee59acc4cfa1d52eb97aaa84efc9754",
      "tree": "352eca0b14dc5e4a368f0475df975ad431515d9d",
      "parents": [
        "965737edc28bd76f6424f9ff4c1f0315f28a0434"
      ],
      "author": {
        "name": "Ari Hausman-Cohen",
        "email": "arihc@google.com",
        "time": "Tue Apr 24 14:00:55 2018 -0700"
      },
      "committer": {
        "name": "Ari Hausman-Cohen",
        "email": "arihc@google.com",
        "time": "Tue Jul 31 18:01:12 2018 -0700"
      },
      "message": "Update getEffectDescriptors() to include type\n\nAllows getting effect descriptors by type or uuid,\nnot just by uuid.\n\nBug: 78528249\nTest: Builds. Manually tested that an app playing audio with an effect works.\nChange-Id: I9d339a7d6d81161065e1adaf427dd2d3430436c2\n"
    },
    {
      "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": "0f7d299c5e308bc32333766590797992e7690966",
      "tree": "07e8b40c374180e0b34d268e0860313128ffee18",
      "parents": [
        "bc3ee5af87c5815a92aa67729c2d2ed540f4163e",
        "39ec8d62f75ffcf216714856aeab073c878b0abe"
      ],
      "author": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Tue Jul 24 18:58:08 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 24 18:58:08 2018 +0000"
      },
      "message": "Merge \"audioflinger Threads.cpp: size() \u003d\u003d 0 -\u003e isEmpty().\""
    },
    {
      "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": "97373b0fbabf670bb33bcc433ab04848d9594385",
      "tree": "04bb8e2be1de86ebd932ab138aa31ab5bc993de1",
      "parents": [
        "a2a19382e5870fb133b56dacc7ff3048cdaa407d"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jul 23 13:27:24 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jul 23 13:27:24 2018 -0700"
      },
      "message": "audioflinger: Use AUDIO_HARDWARE_MODULE_ID_MSD where appropriate\n\nAfter separating the constants for MSD service and module names,\nuse the module name when working with modules.\n\nBug: 63901775\nTest: make\nChange-Id: Icf80d28903e5c36051e33c4be818fd3d7256ce91\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": "c9932fb7c3fa68e3a56e44346638ce93400d6c62",
      "tree": "a73e1cfa03fe1c32880174b0af5f80411aad48eb",
      "parents": [
        "afa8c7024bdb34650c4c1686410867a05dc0b6d2",
        "776eb210f79bb3f944e4b7405a1f8a9ea00438f6"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 20 20:17:11 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 20 20:17:11 2018 +0000"
      },
      "message": "Merge \"audioflinger: Fix stream type for device-\u003edevice patch\""
    },
    {
      "commit": "776eb210f79bb3f944e4b7405a1f8a9ea00438f6",
      "tree": "368b37a599f29a5052fb9a65ccedcc24941c19dc",
      "parents": [
        "24b617232c7400c9165bde09542bdb41cb113089"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jul 19 15:14:11 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jul 19 15:14:11 2018 -0700"
      },
      "message": "audioflinger: Fix stream type for device-\u003edevice patch\n\nThis logic got broken in ag/668511. The stream type was always\nextracted from the 2nd patch source, which does not present\nfor device-\u003edevice patches.\n\nTest: MSD prototype, USB headset telecom calls in Pixel\nChange-Id: Idc8314819010c3a315c5220785a4190e26e55b47\n"
    },
    {
      "commit": "cb82c8013d8b9be475b8be5b503535c9ca66bf4b",
      "tree": "a8f6d8ee3d7b2572086e755aa36aea0494a2216d",
      "parents": [
        "f4bc76e11fca04c687cf77d7e7a8d23c0582c62f",
        "b261ef51db4891290647ee2fe2365b0ece6a530e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 17 23:00:34 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 17 23:00:34 2018 +0000"
      },
      "message": "Merge \"audioflinger: Forward stream parameters to downstream patches\""
    },
    {
      "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": "b261ef51db4891290647ee2fe2365b0ece6a530e",
      "tree": "9fe80b6600edce4fd80f7feaedbdf972303b9e8c",
      "parents": [
        "24b617232c7400c9165bde09542bdb41cb113089"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jul 16 13:34:38 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jul 17 13:05:34 2018 -0700"
      },
      "message": "audioflinger: Forward stream parameters to downstream patches\n\nWhen passing parameters to immediate output streams also check\nif there are any downstream patch threads that need to receive\nthese parameters.\n\nAdded AudioFlinger::forwardParametersToDownstreamPatches_l\nmethod, similar to existing broacastParametersToRecordThreads_l.\n\nBug: 63901775\nTest: make\nChange-Id: I83229fd6f4890e5e69a40d568d1c3e1eebed6504\n"
    },
    {
      "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": "7eadbbc367d0df612c515146d5e066559d4b07eb",
      "tree": "0ca97fd6ed3b7226439b3afa15a2581c3db45632",
      "parents": [
        "7b071c4e5a1133e2f930d47f579f06843676a764",
        "ce9f265fc4fe60ee24ae334b2e8123ffc2be0bea"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 17 17:50:58 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 17 17:50:58 2018 +0000"
      },
      "message": "Merge \"audioflinger: Allow encoded PCM for RecordThread\""
    },
    {
      "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": "67bae2cd210377e140fac0dc68ebe3e207c34143",
      "tree": "854f37f1420260ba772e1a00e113bd0485cd7aa4",
      "parents": [
        "24b617232c7400c9165bde09542bdb41cb113089"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jul 16 15:44:35 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jul 16 15:44:35 2018 -0700"
      },
      "message": "audioflinger: Honor config flags when opening s/w patch output\n\nIf the patch sink configuration specifies sampling rate, format,\nand channel mask, use them when opening the output side of\na software patch.\n\nBug: 63901775\nTest: MSD prototype; Telecom calls via USB headset on Pixel.\nChange-Id: I705d46524cfcc59c88c57b18a45bee0c6b922b62\n"
    },
    {
      "commit": "9f57d3bdf76079c8d0fde86ddd0c02bf15bcae5c",
      "tree": "b5189115b842572c97e6d36f18b8fa23f9903c72",
      "parents": [
        "5681175a2f47a80be1c217f25db9da02251fbf9b",
        "adca70f3a1526943d69b506922553b15fa58564c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 13 18:27:39 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 13 18:27:39 2018 +0000"
      },
      "message": "Merge \"PatchPanel: store \"downstream\" patches for a device\""
    }
  ],
  "next": "adca70f3a1526943d69b506922553b15fa58564c"
}
